mbed library sources

Fork of mbed-src by mbed official

Files at this revision

API Documentation at this revision

Comitter:
mbed_official
Date:
Tue Mar 18 12:30:07 2014 +0000
Parent:
122:6790158fd562
Child:
124:73383cc04afd
Commit message:
Synchronized with git revision 3e40310534d854400e01b2e9612ef7edf44a2dc9

Full URL: https://github.com/mbedmicro/mbed/commit/3e40310534d854400e01b2e9612ef7edf44a2dc9/

Changed in this revision

targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/doc/ble_api.dox Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/ble.h Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/ble_err.h Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/ble_gap.h Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/ble_gatt.h Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/ble_gattc.h Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/ble_gatts.h Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/ble_hci.h Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/ble_l2cap.h Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/ble_ranges.h Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/ble_types.h Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/nrf_error.h Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/nrf_error_sdm.h Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/nrf_error_soc.h Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/nrf_sdm.h Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/nrf_soc.h Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/nrf_svc.h Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/softdevice_assert.h Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_license.txt Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_migration-document.pdf Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_readme.txt Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_releasenotes.pdf Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_softdevice.hex Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/doc/ble_api.dox Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/ble.h Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/ble_err.h Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/ble_gap.h Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/ble_gatt.h Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/ble_gattc.h Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/ble_gatts.h Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/ble_hci.h Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/ble_l2cap.h Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/ble_ranges.h Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/ble_types.h Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/nrf_error.h Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/nrf_error_sdm.h Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/nrf_error_soc.h Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/nrf_sdm.h Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/nrf_soc.h Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/nrf_svc.h Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/softdevice_assert.h Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_license.txt Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_migration-document.pdf Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_readme.txt Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_releasenotes.pdf Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_softdevice.hex Show annotated file Show diff for this revision Revisions of this file
--- a/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/doc/ble_api.dox	Tue Mar 18 11:00:08 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1177 +0,0 @@
-/**
- * @addtogroup BLE_COMMON 
- * @{
- * @defgroup BLE_COMMON_MSC Message Sequence Charts
- * @{
- * @defgroup BLE_COMMON_IRQ_EVT_MSC Interrupt-driven Event Retrieval
- * @msc
- * hscale = "1.5";
- * APP,SD;
- * |||;
- * APP=>SD [label = "sd_softdevice_enable(clock, assertion_handler);"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * APP=>SD [label = "sd_nvic_EnableIRQ(SD_EVENT_IRQn)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * |||;
- * APP rbox SD [label="Application runs and uses SD API"];
- * |||;
- * SD rbox SD [label="Event Available for the App"];
- * |||;
- * APP<-SD [label = "SD_EVENT_IRQn", textcolor="#800080", linecolor="#800080"];
- * APP=>APP [label = "SD_EVENT_IRQHandler()"];
- * APP=>SD [label = "sd_ble_evt_get(buffer);"];
- * APP<<SD [label = "{NRF_SUCCESS, event}"];
- * |||;
- * @endmsc
- *
- * @defgroup BLE_COMMON_THREAD_EVT_MSC Thread Mode Event Retrieval
- * @msc
- * hscale = "1.5";
- * APP,SD;
- * |||;
- * APP=>SD [label = "sd_softdevice_enable(clock, assertion_handler);"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * |||;
- * APP=>SD [label = "sd_app_evt_wait(void);"];
- * APP rbox APP [label="App Thread Mode blocked, CPU in low power mode"];
- * |||;
- * ...;
- * |||;
- * SD rbox SD [label="Event Available for the App"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * APP=>SD [label = "sd_ble_evt_get(buffer);"];
- * APP<<SD [label = "{NRF_SUCCESS, event}"];
- * APP=>SD [label = "sd_app_evt_wait(void);"];
- * APP rbox APP [label="App Thread Mode blocked, CPU in low power mode"];
- * |||;
- * ...;
- * |||;
- * SD rbox SD [label="Event Available for the App"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * APP=>SD [label = "sd_ble_evt_get(buffer);"];
- * APP<<SD [label = "{NRF_SUCCESS, event}"];
- * APP=>SD [label = "sd_app_evt_wait(void);"];
- * APP rbox APP [label="App Thread Mode blocked, CPU in low power mode"];
- * |||;
- * ...;
- * |||;
- * @endmsc
- *
- * @defgroup BLE_COMMON_APP_BUFF_MSC App Buffer Management
- * @msc
- * hscale = "1.5";
- * APP,SD,PEER;
- * |||;
- * APP=>SD [label = "sd_ble_tx_buffer_count_get();"];
- * APP<<SD [label = "{NRF_SUCCESS, N}"];
- * APP rbox APP [label="available = N"];
- * |||;
- * APP rbox PEER [label="Connection Established"];
- * |||;
- * APP=>SD [label = "sd_ble_gattc_write(handle, value)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * APP rbox APP [label="available--"];
- * SD:>PEER [label = "ATT Write Command", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_EVT_TX_COMPLETE {1}"];
- * APP rbox APP [label="available += 1"];
- * |||;
- * ...;
- * |||;
- * APP=>SD [label = "sd_ble_gatts_hvx(NOTIFICATION, app_value)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * APP rbox APP [label="available--"];
- * SD:>PEER [label = "ATT Handle Value Notification", textcolor="#000080", linecolor="#000080"];
- * APP=>SD [label = "sd_ble_gatts_hvx(NOTIFICATION, app_value)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * APP rbox APP [label="available--"];
- * SD:>PEER [label = "ATT Handle Value Notification", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_EVT_TX_COMPLETE {2}"];
- * APP rbox APP [label="available += 2"];
- * |||;
- * ...;
- * |||;
- * APP rbox PEER [label="Terminate Connection"];
- * |||;
- * APP rbox APP [label="available = N"];
- * |||;
- * @endmsc
- * @}
- * @}
- */
-
-/**
- * @addtogroup BLE_GAP 
- * @{
- * @defgroup BLE_GAP_MSC Message Sequence Charts
- * @{
- * @defgroup BLE_GAP_ADV_MSC GAP Advertisement
- * @msc
- * hscale = "1.5";
- * APP,SD,SCANNERS;
- * |||;
- * APP=>SD [label = "sd_ble_gap_address_set(addr)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * APP=>SD [label = "sd_ble_gap_adv_data_set(adv, sr)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * APP=>SD [label = "sd_ble_gap_adv_start(params)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * |||;
- * SD->SCANNERS [label = "ADV packet", textcolor="#000080", linecolor="#000080"];
- * SD->SCANNERS [label = "ADV packet", textcolor="#000080", linecolor="#000080"];
- * SD->SCANNERS [label = "ADV packet", textcolor="#000080", linecolor="#000080"];
- * ...;
- * SD->SCANNERS [label = "ADV packet", textcolor="#000080", linecolor="#000080"];
- * |||;
- * --- [label = " Variant #1 App Stops Advertisement "];
- * APP=>SD [label = "sd_ble_gap_adv_stop()"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * |||;
- * --- [label = " Variant #2 Advertisement Timeout "];
- * APP<<=SD [label = "BLE_GAP_EVT_TIMEOUT"];
- * @endmsc
- *
- * @defgroup BLE_GAP_CONN_MSC GAP Connection Establishment and Termination
- * @msc
- * hscale = "1.5";
- * APP,SD,CENTRAL;
- * |||;
- * APP rbox CENTRAL [label="Start Advertising"];
- * |||;
- * SD<:>CENTRAL [label = "Connection Establishment", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GAP_EVT_CONNECTED"];
- * |||;
- * --- [label = " Variant #1 Local Disconnection "];
- * APP=>SD [label = "sd_ble_gap_disconnect(reason)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>CENTRAL [label = "Connection Termination", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GAP_EVT_DISCONNECTED {reason}"];
- * |||;
- * --- [label = " Variant #2 Remote Disconnection "];
- * SD<:CENTRAL [label = "Connection Termination", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GAP_EVT_DISCONNECTED {reason}"];
- * @endmsc
- *
- * @defgroup BLE_GAP_CPU_MSC GAP Connection Parameter Update
- * @msc
- * hscale = "1.5";
- * APP,SD,CENTRAL;
- * |||;
- * APP rbox CENTRAL [label="Connection Established with conn. params. CP#1"];
- * |||;
- * APP=>SD [label = "sd_ble_gap_conn_param_update(CP#2)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>CENTRAL [label = "L2CAP CPU Request", textcolor="#000080", linecolor="#000080"];
- * |||;
- * --- [label = " Variant #1 Central Accepts "];
- * |||;
- * SD<:CENTRAL [label = "L2CAP CPU Response: Accepted", textcolor="#000080", linecolor="#000080"];
- * |||;
- * SD<:CENTRAL [label = "Connection Update", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GAP_EVT_CONN_PARAM_UPDATE {CP#2}"];
- * |||;
- * --- [label = " Variant #2 Central Rejects "];
- * |||;
- * SD<:CENTRAL [label = "L2CAP CPU Response: Rejected", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GAP_EVT_CONN_PARAM_UPDATE {CP#1}"];
- * --- [label = " Variant #3 Central Ignores "];
- * |||;
- * ...;
- * |||;
- * SD box SD [label="Timeout"];
- * APP<<=SD [label = "BLE_GAP_EVT_CONN_PARAM_UPDATE {CP#1}"];
- * @endmsc
- *
- * @defgroup BLE_GAP_RSSI_MSC GAP RSSI
- * @msc
- * hscale = "1.5";
- * APP,SD,PEER;
- * |||;
- * APP rbox PEER [label="Connection Established"];
- * |||;
- * APP=>SD [label = "sd_ble_gap_rssi_start()"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * |||;
- * SD<-PEER [label = "RSSI Sample", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GAP_EVT_RSSI_CHANGED {RSSI#1}"];
- * |||;
- * SD<-PEER [label = "RSSI Sample", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GAP_EVT_RSSI_CHANGED {RSSI#2}"];
- * |||;
- * SD<-PEER [label = "RSSI Sample", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GAP_EVT_RSSI_CHANGED {RSSI#3}"];
- * |||;
- * APP=>SD [label = "sd_ble_gap_rssi_stop()"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * @endmsc
- *
- * @defgroup BLE_GAP_PAIRING_JW_MSC GAP Pairing: Just Works
- * @msc
- * hscale = "2";
- * APP,SD,CENTRAL;
- * |||;
- * APP rbox CENTRAL [label="Connection Established"];
- * |||;
- * SD<:CENTRAL [label = "SMP Pairing Request", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GAP_EVT_SEC_PARAMS_REQUEST {central_params: no_bond, no_mitm, no_io_caps}"];
- * APP=>SD [label = "sd_ble_gap_sec_params_reply(SUCCESS, periph_params: no_bond, no_mitm, no_io_caps)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>CENTRAL [label = "SMP Pairing Response", textcolor="#000080", linecolor="#000080"];
- * |||;
- * SD abox CENTRAL [label="SMP Pairing Phase 2", textbgcolor="#7f7fff"];
- * |||;
- * APP<<=SD [label = "BLE_GAP_EVT_AUTH_STATUS {SUCCESS}"];
- * APP rbox CENTRAL [label = "Encrypted with STK"];
- * APP<<=SD [label = "BLE_GAP_EVT_CONN_SEC_UPDATE {ENC_NO_MITM}"];
- * @endmsc
- *
- * @defgroup BLE_GAP_BONDING_JW_MSC GAP Bonding: Just Works
- * @msc
- * hscale = "2";
- * APP,SD,CENTRAL;
- * |||;
- * APP rbox CENTRAL [label="Connection Established"];
- * |||;
- * SD<:CENTRAL [label = "SMP Pairing Request", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GAP_EVT_SEC_PARAMS_REQUEST {central_params: bond, no_mitm, no_io_caps}"];
- * APP=>SD [label = "sd_ble_gap_sec_params_reply(SUCCESS, periph_params: bond, no_mitm, no_io_caps)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>CENTRAL [label = "SMP Pairing Response", textcolor="#000080", linecolor="#000080"];
- * |||;
- * SD abox CENTRAL [label="SMP Pairing Phase 2", textbgcolor="#7f7fff"];
- * |||;
- * APP rbox CENTRAL [label = "Encrypted with STK"];
- * APP<<=SD [label = "BLE_GAP_EVT_CONN_SEC_UPDATE {ENC_NO_MITM}"];
- * |||;
- * SD abox CENTRAL [label="SMP Pairing Phase 3", textbgcolor="#7f7fff"];
- * |||;
- * APP<<=SD [label = "BLE_GAP_EVT_AUTH_STATUS {SUCCESS, periph_keys}"];
- * APP rbox APP [label = "Store Peripheral Keys"];
- * @endmsc
- *
- * @defgroup BLE_GAP_BONDING_PK_PERIPH_MSC GAP Bonding: Passkey Entry, Peripheral displays
- * @msc
- * hscale = "2";
- * APP,SD,CENTRAL;
- * |||;
- * APP rbox CENTRAL [label="Connection Established"];
- * |||;
- * SD<:CENTRAL [label = "SMP Pairing Request", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GAP_EVT_SEC_PARAMS_REQUEST {central_params: bond, mitm, keyboard}"];
- * APP=>SD [label = "sd_ble_gap_sec_params_reply(SUCCESS, periph_params: bond, mitm, display)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>CENTRAL [label = "SMP Pairing Response", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GAP_EVT_PASSKEY_DISPLAY {passkey}"];
- * APP rbox APP [label="Passkey displayed to the user"];
- * |||;
- * SD abox CENTRAL [label="SMP Pairing Phase 2", textbgcolor="#7f7fff"];
- * |||;
- * APP rbox CENTRAL [label = "Encrypted with STK"];
- * APP<<=SD [label = "BLE_GAP_EVT_CONN_SEC_UPDATE {ENC_MITM}"];
- * |||;
- * SD abox CENTRAL [label="SMP Pairing Phase 3", textbgcolor="#7f7fff"];
- * |||;
- * APP<<=SD [label = "BLE_GAP_EVT_AUTH_STATUS {SUCCESS, periph_keys}"];
- * APP rbox APP [label = "Store Peripheral Keys"];
- * @endmsc
- *
- * @defgroup BLE_GAP_BONDING_PK_CENTRAL_OOB_MSC GAP Bonding: Passkey Entry (Central display) or OOB MSC
- * @msc
- * hscale = "2";
- * APP,SD,CENTRAL;
- * |||;
- * APP rbox CENTRAL [label="Connection Established"];
- * |||;
- * SD<:CENTRAL [label = "SMP Pairing Request", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GAP_EVT_SEC_PARAMS_REQUEST {central_params: bond, mitm, display}"];
- * APP=>SD [label = "sd_ble_gap_sec_params_reply(SUCCESS, periph_params: bond, mitm, keyboard)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>CENTRAL [label = "SMP Pairing Response", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GAP_EVT_AUTH_KEY_REQUEST {type}"];
- * APP rbox APP [label="User enters Passkey or data received Out Of Band"];
- * APP=>SD [label = "sd_ble_gap_auth_key_reply(passkey or OOB)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * |||;
- * SD abox CENTRAL [label="SMP Pairing Phase 2", textbgcolor="#7f7fff"];
- * |||;
- * APP rbox CENTRAL [label = "Encrypted with STK"];
- * APP<<=SD [label = "BLE_GAP_EVT_CONN_SEC_UPDATE {ENC_MITM}"];
- * |||;
- * SD abox CENTRAL [label="SMP Pairing Phase 3", textbgcolor="#7f7fff"];
- * |||;
- * APP<<=SD [label = "BLE_GAP_EVT_AUTH_STATUS {SUCCESS, periph_keys}"];
- * APP rbox APP [label = "Store Peripheral Keys"];
- * @endmsc
- *
- * @defgroup BLE_GAP_SEC_MSC GAP Security Establishment using stored keys
- * @msc
- * hscale = "1.5";
- * APP,SD,CENTRAL;
- * |||;
- * APP rbox CENTRAL [label="Connection Established"];
- * |||;
- * SD<:CENTRAL [label = "LL Encryption Request", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GAP_EVT_SEC_INFO_REQUEST {addr, div}"];
- * |||;
- * --- [label = " Variant #1 App Replies with Keys "];
- * |||;
- * APP rbox APP [label = "Load Peripheral Keys"];
- * APP=>SD [label = "sd_ble_gap_sec_info_reply(div, LTK)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>CENTRAL [label = "LL Encryption Response", textcolor="#000080", linecolor="#000080"];
- * APP rbox CENTRAL [label = "Encrypted with LTK"];
- * APP<<=SD [label = "BLE_GAP_EVT_CONN_SEC_UPDATE"];
- * |||;
- * --- [label = " Variant #2 App Replies without Keys "];
- * |||;
- * APP=>SD [label = "sd_ble_gap_sec_info_reply(NULL)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>CENTRAL [label = "LL Reject Ind: Pin or Key Missing", textcolor="#000080", linecolor="#000080"];
- * APP rbox CENTRAL [label = "Link Not Encrypted"];
- * @endmsc
- *
- * @defgroup BLE_GAP_PERIPH_SEC_MSC GAP Peripheral Initiated Security Establishment
- * @msc
- * hscale = "1.5";
- * APP,SD,CENTRAL;
- * |||;
- * APP rbox CENTRAL [label="Connection Established"];
- * |||;
- * APP=>SD [label = "sd_ble_gap_authenticate(params)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>CENTRAL [label = "SMP Security Request", textcolor="#000080", linecolor="#000080"];
- * |||;
- * --- [label = " Variant #1 Central initiates Security Establishment "];
- * |||;
- * APP rbox CENTRAL [label="Encryption or Pairing/Bonding initiated by Central"];
- * |||;
- * --- [label = " Variant #2 Central ignores "];
- * |||;
- * ...;
- * |||;
- * APP<<=SD [label = "BLE_GAP_EVT_TIMEOUT"];
- * |||;
- * @endmsc
- * @}
- * @}
- */
-
-/**
- * @addtogroup BLE_GATTC 
- * @{
- * @defgroup BLE_GATTC_MSC Message Sequence Charts
- * @{
- * @defgroup BLE_GATTC_PRIM_SRVC_DISC_MSC GATTC Primary Service Discovery
- * @msc
- * hscale = "2";
- * APP,SD,PEER;
- * |||;
- * APP rbox PEER [label="Connection Established"];
- * |||;
- * --- [label = " Variant #1 Discover All Services "];
- * |||;
- * APP=>SD [label = "sd_ble_gattc_primary_services_discover(handle, NULL)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Read By Group Type Request", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Read By Group Type Response", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP {SUCCESS, services}"];
- * APP=>SD [label = "sd_ble_gattc_primary_services_discover(handle + N, NULL)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Read By Group Type Request", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Read By Group Type Response", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP {SUCCESS, services}"];
- * APP=>SD [label = "sd_ble_gattc_primary_services_discover(handle + N + M, NULL)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Read By Group Type Request", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Error Response: Attribute Not Found", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTC_EVT {ATTRIBUTE_NOT_FOUND}"];
- * |||;
- * --- [label = " Variant #2 Discover a Specific Service "];
- * |||;
- * APP=>SD [label = "sd_ble_gattc_primary_services_discover(handle, uuid)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Find By Type Value Request", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Find By Type Value Response", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP {SUCCESS, services}"];
- * APP=>SD [label = "sd_ble_gattc_primary_services_discover(handle + N, uuid)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Find By Type Value Request", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Find By Type Value Response", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP {SUCCESS, services}"];
- * APP=>SD [label = "sd_ble_gattc_primary_services_discover(handle + N + M, uuid)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Find By Type Value Request", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Error Response: Attribute Not Found", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTC_EVT {ATTRIBUTE_NOT_FOUND}"];
- * @endmsc
- *
- * @defgroup BLE_GATTC_REL_DISC_MSC GATTC Relationship Discovery
- * @msc
- * hscale = "2";
- * APP,SD,PEER;
- * |||;
- * APP rbox PEER [label="Connection Established"];
- * |||;
- * APP=>SD [label = "sd_ble_gattc_relationships_discover(handle_range)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Read By Type Request", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Read By Type Response", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTC_EVT_REL_DISC_RSP {SUCCESS, includes}"];
- * APP=>SD [label = "sd_ble_gattc_relationships_discover(handle_range + N)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Read By Type Request", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Read By Type Response", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTC_EVT_REL_DISC_RSP {SUCCESS, includes}"];
- * APP=>SD [label = "sd_ble_gattc_relationships_discover(handle_range + N + M)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Read By Type Request", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Error Response: Attribute Not Found", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTC_EVT {ATTRIBUTE_NOT_FOUND}"];
- * @endmsc
- *
- * @defgroup BLE_GATTC_CHAR_DISC_MSC GATTC Characteristic Discovery
- * @msc
- * hscale = "2";
- * APP,SD,PEER;
- * |||;
- * APP rbox PEER [label="Connection Established"];
- * |||;
- * APP=>SD [label = "sd_ble_gattc_characteristics_discover(handle_range)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Read By Type Request", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Read By Type Response", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTC_EVT_CHAR_DISC_RSP {SUCCESS, chars}"];
- * APP=>SD [label = "sd_ble_gattc_characteristics_discover(handle_range + N)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Read By Type Request", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Read By Type Response", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTC_EVT_CHAR_DISC_RSP {SUCCESS, chars}"];
- * APP=>SD [label = "sd_ble_gattc_characteristics_discover(handle_range + N + M)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Read By Type Request", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Error Response: Attribute Not Found", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTC_EVT {ATTRIBUTE_NOT_FOUND}"];
- * @endmsc
- *
- * @defgroup BLE_GATTC_DESC_DISC_MSC GATTC Descriptor Discovery
- * @msc
- * hscale = "2";
- * APP,SD,PEER;
- * |||;
- * APP rbox PEER [label="Connection Established"];
- * |||;
- * APP=>SD [label = "sd_ble_gattc_descriptors_discover(handle_range)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Find Information Request", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Find Information Response", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTC_EVT_DESC_DISC_RSP {SUCCESS, descs}"];
- * APP=>SD [label = "sd_ble_gattc_descriptors_discover(handle_range + N)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Find Information Request", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Find Information Response", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTC_EVT_DESC_DISC_RSP {SUCCESS, descs}"];
- * APP=>SD [label = "sd_ble_gattc_descriptors_discover(handle_range + N + M)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Find Information Request", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Error Response: Attribute Not Found", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTC_EVT {ATTRIBUTE_NOT_FOUND}"];
- * @endmsc
- *
- * @defgroup BLE_GATTC_READ_UUID_MSC GATTC Read Characteristic Value by UUID
- * @msc
- * hscale = "2";
- * APP,SD,PEER;
- * |||;
- * APP rbox PEER [label="Connection Established"];
- * |||;
- * APP=>SD [label = "sd_ble_gattc_char_value_by_uuid_read(uuid, handle_range)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Read By Type Request", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Read By Type Response", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP {SUCCESS, char_values}"];
- * APP=>SD [label = "sd_ble_gattc_char_value_by_uuid_read(uuid, handle_range + N)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Read By Type Request", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Read By Type Response", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP {SUCCESS, char_values}"];
- * APP=>SD [label = "sd_ble_gattc_char_value_by_uuid_read(uuid, handle_range + N + M)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Read By Type Request", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Error Response: Attribute Not Found", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTC_EVT {ATTRIBUTE_NOT_FOUND}"];
- * @endmsc
- *
- * @defgroup BLE_GATTC_VALUE_READ_MSC GATTC Characteristic or Descriptor Value Read
- * @msc
- * hscale = "2";
- * APP,SD,PEER;
- * |||;
- * APP rbox PEER [label="Connection Established"];
- * |||;
- * --- [label = " Variant #1 offset == 0 "];
- * |||;
- * APP=>SD [label = "sd_ble_gattc_read(handle, 0)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Read Request", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Read Response", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTC_EVT_READ_RSP {SUCCESS, value}"];
- * |||;
- * --- [label = " Variant #2 offset != 0 "];
- * |||;
- * APP=>SD [label = "sd_ble_gattc_read(handle, offset)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Read Blob Request", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Read Blob Response", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTC_EVT_READ_RSP {SUCCESS, value}"];
- * APP=>SD [label = "sd_ble_gattc_read(handle, offset + N)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Read Blob Request", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Read Blob Response", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTC_EVT_READ_RSP {SUCCESS, value}"];
- * APP=>SD [label = "sd_ble_gattc_read(handle, offset + N + M + 1)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Read Blob Request", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Error Response: Invalid Offset", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTC_EVT {INVALID_OFFSET}"];
- * @endmsc
- *
- * @defgroup BLE_GATTC_READ_MULT_MSC GATTC Read Multiple Characteristic Values
- * @msc
- * hscale = "2";
- * APP,SD,PEER;
- * |||;
- * APP rbox PEER [label="Connection Established"];
- * |||;
- * --- [label = " Variant #1 Successful request "];
- * |||;
- * APP=>SD [label = "sd_ble_gattc_char_values_read(handles)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Read Multiple Request", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Read Multiple Response", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTC_EVT_CHAR_VALS_READ_RSP {SUCCESS, char_values}"];
- * |||;
- * --- [label = " Variant #2 Failing request (invalid handle) "];
- * |||;
- * APP=>SD [label = "sd_ble_gattc_char_values_read(handles)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Read Multiple Request", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Error Response: Invalid Handle", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTC_EVT {INVALID_HANDLE, error_handle=<invalid handle>}"];
- * @endmsc
- *
- * @defgroup BLE_GATTC_VALUE_WRITE_MSC GATTC Characteristic or Descriptor Value Write
- * @msc
- * hscale = "2";
- * APP,SD,PEER;
- * |||;
- * APP rbox PEER [label="Connection Established"];
- * |||;
- * --- [label = " Variant #1 write_op == BLE_GATT_OP_WRITE_CMD "];
- * |||;
- * APP=>SD [label = "sd_ble_gattc_write(handle, value)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Write Command", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_EVT_TX_COMPLETE"];
- * |||;
- * --- [label = " Variant #2 write_op == BLE_GATT_OP_WRITE_REQ "];
- * |||;
- * APP=>SD [label = "sd_ble_gattc_write(handle, value)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Write Request", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Write Response", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTC_EVT_WRITE_RSP {SUCCESS}"];
- * @endmsc
- *
- * @defgroup BLE_GATTC_HVI_MSC GATTC Handle Value Indication
- * <b> GATTC Handle Value Indication MSC </b>
- * @msc
- * hscale = "2";
- * APP,SD,PEER;
- * |||;
- * APP rbox PEER [label="Connection Established"];
- * |||;
- * SD<:PEER [label = "ATT Handle Value Indication", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTC_EVT_HVX {INDICATION, data}"];
- * APP=>SD [label = "sd_ble_gattc_hv_confirm(handle)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Handle Value Confirmation", textcolor="#000080", linecolor="#000080"];
- * @endmsc
- *
- * @defgroup BLE_GATTC_HVN_MSC GATTC Handle Value Notification
- * @msc
- * hscale = "2";
- * APP,SD,PEER;
- * |||;
- * APP rbox PEER [label="Connection Established"];
- * |||;
- * SD<:PEER [label = "ATT Handle Value Notification", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTC_EVT_HVX {NOTIFICATION, data}"];
- * @endmsc
- *
- * @defgroup BLE_GATTC_TIMEOUT_MSC GATTC Timeout
- * @msc
- * hscale = "2";
- * APP,SD,PEER;
- * |||;
- * APP rbox PEER [label="Connection Established"];
- * |||;
- * APP rbox PEER [label="Any GATTC API used"];
- * SD:>PEER [label = "ATT Packet", textcolor="#000080", linecolor="#000080"];
- * APP note PEER [label = "No Response from Peer"];
- * |||;
- * ...;
- * |||;
- * SD box SD [label="Timeout"];
- * APP<<=SD [label = "BLE_GATTC_EVT_TIMEOUT {source}"];
- * APP rbox PEER [label="No additional ATT Traffic Allowed", textbgcolour="#ff7f7f"];
- * APP=>SD [label = "Any API call"];
- * APP<<SD [label = "NRF_ERROR_BUSY"];
- * @endmsc
- * @}
- * @}
- */
-
-/**
- * @addtogroup BLE_GATTS 
- * @{
- * @defgroup BLE_GATTS_MSC Message Sequence Charts
- * @{
- * @defgroup BLE_GATTS_ATT_TABLE_POP_MSC GATTS ATT Table Population
- * @msc
- * hscale = "1.5";
- * APP,SD;
- * |||;
- * APP=>SD [label = "sd_ble_gatts_service_add(uuid#1)"];
- * APP<<SD [label = "{NRF_SUCCESS, handle_srvc#1}"];
- * APP=>SD [label = "sd_ble_gatts_characteristic_add(handle_srvc#1, char_md, value)"];
- * APP<<SD [label = "{NRF_SUCCESS, handle_char#1, ...}"];
- * APP=>SD [label = "sd_ble_gatts_descriptor_add(handle_char#1, value)"];
- * APP<<SD [label = "{NRF_SUCCESS, handle_desc#1}"];
- * APP=>SD [label = "sd_ble_gatts_descriptor_add(handle_char#1, value)"];
- * APP<<SD [label = "{NRF_SUCCESS, handle_desc#2}"];
- * APP=>SD [label = "sd_ble_gatts_characteristic_add(handle_srvc#1, char_md, value)"];
- * APP<<SD [label = "{NRF_SUCCESS, handle_char#2, ...}"];
- * APP=>SD [label = "sd_ble_gatts_descriptor_add(handle_char#2, value)"];
- * APP<<SD [label = "{NRF_SUCCESS, handle_desc#3}"];
- * APP=>SD [label = "sd_ble_gatts_service_add(uuid#2)"];
- * APP<<SD [label = "{NRF_SUCCESS, handle_srvc#2}"];
- * APP=>SD [label = "sd_ble_gatts_include_add(handle_srvc#2, handle_srvc#1)"];
- * APP<<SD [label = "{NRF_SUCCESS, handle_inc#1}"];
- * |||;
- * ...;
- * |||;
- * @endmsc
- *
- * @defgroup BLE_GATTS_READ_REQ_NO_AUTH_MSC Read Request without Authorization
- * @msc
- * hscale = "1.5";
- * APP,SD,PEER;
- * |||;
- * APP rbox PEER [label="Connection Established"];
- * |||;
- * SD<:PEER [label = "ATT Read Request", textcolor="#000080", linecolor="#000080"];
- * SD:>PEER [label = "ATT Read Response", textcolor="#000080", linecolor="#000080"];
- * @endmsc
- *
- * @defgroup BLE_GATTS_WRITE_REQ_NO_AUTH_MSC GATTS Write Request without Authorization
- * @msc
- * hscale = "1.5";
- * APP,SD,PEER;
- * |||;
- * APP rbox PEER [label="Connection Established"];
- * |||;
- * SD<:PEER [label = "ATT Write Request", textcolor="#000080", linecolor="#000080"];
- * SD:>PEER [label = "ATT Write Response", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTS_EVT_WRITE {WRITE_REQ, data}"];
- * @endmsc
- *
- * @defgroup BLE_GATTS_WRITE_CMD_NO_AUTH_MSC GATTS Write Command with or without Authorization
- * @msc
- * hscale = "1.5";
- * APP,SD,PEER;
- * |||;
- * APP rbox PEER [label="Connection Established"];
- * |||;
- * SD<:PEER [label = "ATT Write Command", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTS_EVT_WRITE {WRITE_CMD, data}"];
- * @endmsc
- *
- * @defgroup BLE_GATTS_READ_REQ_AUTH_MSC GATTS Read Request with Authorization
- * @msc
- * hscale = "2";
- * APP,SD,PEER;
- * |||;
- * APP rbox PEER [label="Connection Established"];
- * |||;
- * SD rbox SD [label="Value in ATT Table: current_value"];
- * SD<:PEER [label = "ATT Read Request", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {READ, current_value}"];
- * --- [label = " Variant #1 App Authorizes "];
- * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(SUCCESS, app_value)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD rbox SD [label="Value in ATT Table: app_value"];
- * SD:>PEER [label = "ATT Read Response {app_value}", textcolor="#000080", linecolor="#000080"];
- * --- [label = " Variant #2 App Disallows "];
- * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(READ_NOT_PERMITTED)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Error Response", textcolor="#000080", linecolor="#000080"];
- * @endmsc
- *
- * @defgroup BLE_GATTS_WRITE_REQ_AUTH_MSC GATTS Write Request with Authorization
- * @msc
- * hscale = "2";
- * APP,SD,PEER;
- * |||;
- * APP rbox PEER [label="Connection Established"];
- * |||;
- * SD rbox SD [label="Value in ATT Table: current_value"];
- * SD<:PEER [label = "ATT Write Request {peer_data}", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, peer_value}"];
- * --- [label = " Variant #1 App Authorizes "];
- * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(SUCCESS)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD rbox SD [label="Value in ATT Table: peer_data"];
- * SD:>PEER [label = "ATT Write Response", textcolor="#000080", linecolor="#000080"];
- * --- [label = " Variant #2 App Disallows "];
- * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE_NOT_PERMITTED)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Error Response", textcolor="#000080", linecolor="#000080"];
- * SD rbox SD [label="Value in ATT Table: current_value"];
- * @endmsc
- *
- * @defgroup BLE_GATTS_QUEUED_WRITE_BUF_NOAUTH_MSC GATTS Queued Writes: Stack handled, no attributes require authorization
- * @msc
- * hscale = "2";
- * APP,SD,PEER;
- * |||;
- * APP rbox PEER [label="Connection Established"];
- * |||;
- * SD rbox SD [label="Values in ATT Table:\nhandle_1: current_value_1\nhandle_2: current_value_2"];
- * SD<:PEER [label = "ATT Prepare Write Request {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_EVT_USER_MEM_REQUEST {BLE_USER_MEM_TYPE_GATTS_QUEUED_WRITES}"];
- * APP=>SD [label = "sd_ble_user_mem_reply {user_mem_block}"];
- * SD:>PEER [label = "ATT Prepare Write Response {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Prepare Write Request {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
- * SD:>PEER [label = "ATT Prepare Write Response {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
- * |||;
- * --- [label = " Variant #1 Attribute Values validation passed "];
- * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
- * SD rbox SD [label="Values in ATT Table:\nhandle_1: peer_value_1\nhandle_2: peer_value_2"];
- * APP<<=SD [label = "BLE_GATTS_EVT_WRITE {EXEC_WRITE_REQ_NOW}"];
- * APP rbox APP [label="App parses the memory it provided"];
- * SD:>PEER [label = "ATT Execute Write Response", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_EVT_USER_MEM_RELEASE {user_mem_block}"];
- * |||;
- * --- [label = " Variant #2 Attribute Values validation failed "];
- * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
- * SD rbox SD [label="Values in ATT Table:\nhandle_1: current_value_1\nhandle_2: current_value_2"];
- * SD:>PEER [label = "ATT Error Response {Invalid Value Length / Offset}", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_EVT_USER_MEM_RELEASE {user_mem_block}"];
- * |||;
- * --- [label = " Variant #3 Peer cancels operation "];
- * SD<:PEER [label = "ATT Execute Write Request {CANCEL}", textcolor="#000080", linecolor="#000080"];
- * SD rbox SD [label="Values in ATT Table:\nhandle_1: current_value_1\nhandle_2: current_value_2"];
- * SD:>PEER [label = "ATT Execute Write Response", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_EVT_USER_MEM_RELEASE {user_mem_block}"];
- * |||;
- * @endmsc
- *
- * @defgroup BLE_GATTS_QUEUED_WRITE_BUF_AUTH_MSC GATTS Queued Writes: Stack handled, one or more attributes require authorization
- * @msc
- * hscale = "2";
- * APP,SD,PEER;
- * |||;
- * APP rbox PEER [label="Connection Established"];
- * |||;
- * SD rbox SD [label="Values in ATT Table:\nhandle_1: current_value_1\nhandle_2: current_value_2"];
- * SD<:PEER [label = "ATT Prepare Write Request {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_EVT_USER_MEM_REQUEST {BLE_USER_MEM_TYPE_GATTS_QUEUED_WRITES}"];
- * APP=>SD [label = "sd_ble_user_mem_reply {user_mem_block}"];
- * SD:>PEER [label = "ATT Prepare Write Response {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Prepare Write Request {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, PREP_WRITE_REQ, handle_2, offset_2, peer_value_2}"];
- * |||;
- * --- [label = " Variant #1 App Authorizes both Prepare Write and Execute Write"];
- * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
- * SD:>PEER [label = "ATT Prepare Write Response {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, EXEC_WRITE_REQ_NOW}"];
- * APP rbox APP [label="App parses the memory it provided"];
- * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
- * SD rbox SD [label="Values in ATT Table:\nhandle_1: peer_value_1\nhandle_2: peer_value_2"];
- * SD:>PEER [label = "ATT Execute Write Response", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_EVT_USER_MEM_RELEASE {user_mem_block}"];
- * |||;
- * --- [label = " Variant #2 App Disallows Prepare Write and Authorizes Execute Write "];
- * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, INSUF_AUTHORIZATION)"];
- * SD:>PEER [label = "ATT Error Response {Insufficient Authorization}", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, EXEC_WRITE_REQ_NOW}"];
- * APP rbox APP [label="App parses the memory it provided"];
- * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
- * SD rbox SD [label="Values in ATT Table:\nhandle_1: peer_value_1\nhandle_2: current_value_2"];
- * SD:>PEER [label = "ATT Execute Write Response", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_EVT_USER_MEM_RELEASE {user_mem_block}"];
- * |||;
- * --- [label = " Variant #3 App Authorizes Prepare Write and Disallows Execute Write "];
- * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
- * SD:>PEER [label = "ATT Prepare Write Response {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, EXEC_WRITE_REQ_NOW}"];
- * APP rbox APP [label="App parses the memory it provided"];
- * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, APP_ERROR_CODE)"];
- * SD rbox SD [label="Values in ATT Table:\nhandle_1: current_value_1\nhandle_2: current_value_2"];
- * SD:>PEER [label = "ATT Error Response {APP_ERROR_CODE}", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_EVT_USER_MEM_RELEASE {user_mem_block}"];
- * @endmsc
- *
- * @defgroup BLE_GATTS_QUEUED_WRITE_NOBUF_NOAUTH_MSC GATTS Queued Writes: App handled, no attributes require authorization
- * @msc
- * hscale = "2";
- * APP,SD,PEER;
- * |||;
- * APP rbox PEER [label="Connection Established"];
- * |||;
- * APP rbox SD [label="Values in ATT Table:\nhandle_1: current_value_1\nhandle_2: current_value_2"];
- * SD<:PEER [label = "ATT Prepare Write Request {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_EVT_USER_MEM_REQUEST {BLE_USER_MEM_TYPE_GATTS_QUEUED_WRITES}"];
- * APP=>SD [label = "sd_ble_user_mem_reply {NULL}"];
- * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, PREP_WRITE_REQ, handle_1, offset_1, peer_value_1}"];
- * APP rbox APP [label="App queues {handle_1, offset_1, peer_value_1}"];
- * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
- * SD:>PEER [label = "ATT Prepare Write Response {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Prepare Write Request {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, PREP_WRITE_REQ, handle_2, offset_2, peer_value_2}"];
- * APP rbox APP [label="App queues {handle_2, offset_2, peer_value_2}"];
- * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
- * SD:>PEER [label = "ATT Prepare Write Response {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, EXEC_WRITE_REQ_NOW}"];
- * |||;
- * --- [label = " Variant #1 Attribute values in stack memory (VLOC_STACK), attribute values validation passed "];
- * APP=>SD [label = "sd_ble_gatts_value_set {handle_1, offset_1, peer_value_1}"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * APP=>SD [label = "sd_ble_gatts_value_set {handle_2, offset_2, peer_value_2}"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD rbox SD [label="Values in ATT Table:\nhandle_1: peer_value_1\nhandle_2: peer_value_2"];
- * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
- * SD:>PEER [label = "ATT Execute Write Response", textcolor="#000080", linecolor="#000080"];
- * |||;
- * --- [label = " Variant #2 Attribute values in user memory (VLOC_USER), attribute values validation passed "];
- * APP rbox APP [label="Application traverses its queue and executes the write operations (memcpy)"];
- * APP rbox APP [label="Values in ATT Table:\nhandle_1: peer_value_1\nhandle_2: peer_value_2"];
- * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
- * SD:>PEER [label = "ATT Execute Write Response", textcolor="#000080", linecolor="#000080"];
- * |||;
- * --- [label = " Variant #3 Attribute values validation failed "];
- * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, INVALID_OFFSET)"];
- * APP rbox SD [label="Values in ATT Table:\nhandle_1: current_value_1\nhandle_2: current_value_2"];
- * SD:>PEER [label = "ATT Error Response {Invalid Offset}", textcolor="#000080", linecolor="#000080"];
- * @endmsc
- *
- * @defgroup BLE_GATTS_QUEUED_WRITE_NOBUF_AUTH_MSC GATTS Queued Writes: App handled, one or more attributes require authorization
- * @msc
- * hscale = "2";
- * APP,SD,PEER;
- * |||;
- * APP rbox PEER [label="Connection Established"];
- * |||;
- * APP rbox APP [label="Values in ATT Table (in user memory):\nhandle_1: current_value_1\nhandle_2: current_value_2"];
- * SD<:PEER [label = "ATT Prepare Write Request {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_EVT_USER_MEM_REQUEST {BLE_USER_MEM_TYPE_GATTS_QUEUED_WRITES}"];
- * APP=>SD [label = "sd_ble_user_mem_reply {NULL}"];
- * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, PREP_WRITE_REQ, handle_1, offset_1, peer_value_1}"];
- * APP rbox APP [label="App queues {handle_1, offset_1, peer_value_1}"];
- * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
- * SD:>PEER [label = "ATT Prepare Write Response {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Prepare Write Request {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, PREP_WRITE_REQ, handle_2, offset_2, peer_value_2}"];
- * |||;
- * --- [label = " Variant #1 App Authorizes both Prepare Write and Execute Write"];
- * APP rbox APP [label="App queues {handle_2, offset_2, peer_value_2}"];
- * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
- * SD:>PEER [label = "ATT Prepare Write Response {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, EXEC_WRITE_REQ_NOW}"];
- * APP rbox APP [label="Application traverses its queue and executes the write operations (memcpy)"];
- * APP rbox APP [label="Values in ATT Table:\nhandle_1: peer_value_1\nhandle_2: peer_value_2"];
- * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
- * SD:>PEER [label = "ATT Execute Write Response", textcolor="#000080", linecolor="#000080"];
- * |||;
- * --- [label = " Variant #2 App Disallows Prepare Write and Authorizes Execute Write "];
- * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, INSUF_AUTHORIZATION)"];
- * SD:>PEER [label = "ATT Error Response {Insufficient Authorization}", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, EXEC_WRITE_REQ_NOW}"];
- * APP rbox APP [label="Application traverses its queue and executes the write operations (memcpy)"];
- * APP rbox APP [label="Values in ATT Table:\nhandle_1: peer_value_1\nhandle_2: current_value_2"];
- * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
- * SD:>PEER [label = "ATT Execute Write Response", textcolor="#000080", linecolor="#000080"];
- * |||;
- * --- [label = " Variant #3 App Authorizes Prepare Write and Disallows Execute Write "];
- * APP rbox APP [label="App queues {handle_2, offset_2, peer_value_2}"];
- * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
- * SD:>PEER [label = "ATT Prepare Write Response {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, EXEC_WRITE_REQ_NOW}"];
- * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, APP_ERROR_CODE)"];
- * APP rbox APP [label="Values in ATT Table:\nhandle_1: current_value_1\nhandle_2: current_value_2"];
- * SD:>PEER [label = "ATT Error Response {APP_ERROR_CODE}", textcolor="#000080", linecolor="#000080"];
- * @endmsc
- *
- * @defgroup BLE_GATTS_QUEUED_WRITE_QUEUE_FULL_MSC GATTS Queued Writes: Prepare Queue Full
- * @msc
- * hscale = "2";
- * APP,SD,PEER;
- * |||;
- * APP rbox PEER [label="Connection Established"];
- * |||;
- * SD rbox SD [label="Values in ATT Table:\nhandle_1: current_value_1\nhandle_2: current_value_2"];
- * SD<:PEER [label = "ATT Prepare Write Request {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_EVT_USER_MEM_REQUEST {BLE_USER_MEM_TYPE_GATTS_QUEUED_WRITES}"];
- * |||;
- * --- [label = " Variant #1 Stack handled "];
- * APP=>SD [label = "sd_ble_user_mem_reply {user_mem_block}"];
- * SD:>PEER [label = "ATT Prepare Write Response {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Prepare Write Request {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
- * SD:>PEER [label = "ATT Error Response {Prepare Queue Full}", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
- * SD rbox SD [label="Values in ATT Table:\nhandle_1: peer_value_1\nhandle_2: current_value_2"];
- * APP<<=SD [label = "BLE_GATTS_EVT_WRITE {EXEC_WRITE_REQ_NOW}"];
- * APP rbox APP [label="App parses the memory it provided"];
- * SD:>PEER [label = "ATT Execute Write Response", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_EVT_USER_MEM_RELEASE {user_mem_block}"];
- * |||;
- * --- [label = " Variant #2 App handled "];
- * APP=>SD [label = "sd_ble_user_mem_reply {NULL}"];
- * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, PREP_WRITE_REQ, handle_1, offset_1, peer_value_1}"];
- * APP rbox APP [label="App queues {handle_1, offset_1, peer_value_1}"];
- * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
- * SD:>PEER [label = "ATT Prepare Write Response {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Prepare Write Request {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, PREP_WRITE_REQ, handle_2, offset_2, peer_value_2}"];
- * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, PREPARE_QUEUE_FULL)"];
- * SD:>PEER [label = "ATT Error Response {Prepare Queue Full}", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, EXEC_WRITE_REQ_NOW}"];
- * APP=>SD [label = "sd_ble_gatts_value_set {handle_1, offset_1, peer_value_1}"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
- * SD rbox SD [label="Values in ATT Table:\nhandle_1: peer_value_1\nhandle_2: current_value_2"];
- * SD:>PEER [label = "ATT Execute Write Response", textcolor="#000080", linecolor="#000080"];
- * @endmsc
- *
- * @defgroup BLE_GATTS_HVI_MSC GATTS Handle Value Indication
- * @msc
- * hscale = "1.5";
- * APP,SD,PEER;
- * |||;
- * APP rbox PEER [label="Connection Established"];
- * |||;
- * APP rbox PEER [label="Indications Enabled in CCCD"];
- * |||;
- * SD rbox SD [label="Value in ATT Table: current_value"];
- * APP=>SD [label = "sd_ble_gatts_hvx(INDICATION, app_value)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD rbox SD [label="Value in ATT Table: app_value"];
- * SD:>PEER [label = "ATT Handle Value Indication {app_value}", textcolor="#000080", linecolor="#000080"];
- * --- [label = " Variant #1 Peer Confirms "];
- * SD<:PEER [label = "ATT Handle Value Confirmation", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTS_EVT_HVC"];
- * --- [label = " Variant #2 Peer Ignores "];
- * |||;
- * ...;
- * |||;
- * SD box SD [label="Timeout"];
- * APP<<=SD [label = "BLE_GATTS_EVT_TIMEOUT"];
- * @endmsc
- *
- * @defgroup BLE_GATTS_HVN_MSC GATTS Handle Value Notification
- * @msc
- * hscale = "1.5";
- * APP,SD,PEER;
- * |||;
- * APP rbox PEER [label="Connection Established"];
- * |||;
- * APP rbox PEER [label="Notifications Enabled in CCCD"];
- * |||;
- * SD rbox SD [label="Value in ATT Table: current_value"];
- * APP=>SD [label = "sd_ble_gatts_hvx(NOTIFICATION, app_value)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD rbox SD [label="Value in ATT Table: app_value"];
- * SD:>PEER [label = "ATT Handle Value Notification {app_value}", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_EVT_TX_COMPLETE"];
- * @endmsc
- *
- * @defgroup BLE_GATTS_HVX_DISABLED_MSC GATTS Handle Value Indication or Notification disabled
- * @msc
- * hscale = "1.5";
- * APP,SD,PEER;
- * |||;
- * APP rbox PEER [label="Connection Established"];
- * |||;
- * APP rbox PEER [label="Indications and Notifications Disabled in CCCD"];
- * |||;
- * SD rbox SD [label="Value in ATT Table: current_value"];
- * APP=>SD [label = "sd_ble_gatts_hvx(INDICATION or NOTIFICATION, app_value)"];
- * APP<<SD [label = "NRF_ERROR_INVALID_STATE"];
- * SD rbox SD [label="Value in ATT Table: current_value"];
- * @endmsc
- *
- * @defgroup BLE_GATTS_HVX_SYS_ATTRS_MISSING_MSC GATTS Handle Value Indication or Notification with System Attributes Missing
- * @msc
- * hscale = "1.5";
- * APP,SD,PEER;
- * |||;
- * APP rbox PEER [label="Connection Established"];
- * |||;
- * APP rbox PEER [label="System Attributes Uninitialized"];
- * |||;
- * SD rbox SD [label="Value in ATT Table: current_value"];
- * APP=>SD [label = "sd_ble_gatts_hvx(INDICATION or NOTIFICATION, app_value)"];
- * APP<<SD [label = "BLE_ERROR_GATTS_SYS_ATTR_MISSING"];
- * SD rbox SD [label="Value in ATT Table: current_value"];
- * APP=>SD [label = "sd_ble_gatts_sys_attr_set()"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * |||;
- * ...;
- * @endmsc
- *
- * @defgroup BLE_GATTS_SC_MSC GATTS Service Changed
- * @msc
- * hscale = "1.5";
- * APP,SD,PEER;
- * |||;
- * APP rbox SD [label="Entries added to the ATT Table between handles N and M"];
- * |||;
- * APP rbox PEER [label="Connection Established with a Bonded Peer"];
- * |||;
- * APP=>SD [label = "sd_ble_gatts_service_changed(N, M)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Handle Value Indication {N, M}", textcolor="#000080", linecolor="#000080"];
- * SD<:PEER [label = "ATT Handle Value Confirmation", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTS_EVT_SC_CONFIRM"];
- * |||;
- * SD rbox PEER [label="Service Discovery"];
- * @endmsc
- *
- * @defgroup BLE_GATTS_SYS_ATTRS_UNK_PEER_MSC GATTS System Attributes Handling: Unknown Peer
- * @msc
- * hscale = "1.5";
- * APP,SD,PEER;
- * |||;
- * APP rbox PEER [label="Connection Established with an Unknown Peer"];
- * |||;
- * SD<:PEER [label = "ATT Read Request {sys_attr_handle}", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTS_EVT_SYS_ATTR_MISSING"];
- * APP=>SD [label = "sd_ble_gatts_sys_attr_set(NULL)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Read Response {sys_attr_value}", textcolor="#000080", linecolor="#000080"];
- * @endmsc
- *
- * @defgroup BLE_GATTS_SYS_ATTRS_BONDED_PEER_MSC GATTS System Attributes Handling: Bonded Peer
- * @msc
- * hscale = "1.5";
- * APP,SD,PEER;
- * |||;
- * APP rbox PEER [label="Connection Established with a Bonded Peer"];
- * |||;
- * APP rbox PEER [label="ATT Traffic"];
- * |||;
- * APP rbox PEER [label="Connection Terminated"];
- * APP<<=SD [label = "BLE_GAP_EVT_DISCONNECTED {reason}"];
- * |||;
- * APP=>SD [label = "sd_ble_gatts_sys_attr_get()"];
- * APP<<SD [label = "{NRF_SUCCESS, sys_attr_data}"];
- * APP rbox APP [label="Store System Attributes"];
- * |||;
- * APP rbox SD [label="Shut down IC"];
- * |||;
- * APP rbox SD [label="Power up IC"];
- * |||;
- * APP rbox PEER [label="Connection Established with the Bonded Peer"];
- * SD<:PEER [label = "ATT Read Request {sys_attr_handle}", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_GATTS_EVT_SYS_ATTR_MISSING"];
- * APP rbox APP [label="Load System Attributes"];
- * APP=>SD [label = "sd_ble_gatts_sys_attr_set(sys_attr_data)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "ATT Read Response {sys_attr_value}", textcolor="#000080", linecolor="#000080"];
- * @endmsc
- * @}
- *
- * @addtogroup BLE_GATTS_QUEUED_WRITES_USER_MEM User memory layout for Queued Writes
- * @{ 
- *  The following table shows the memory layout used by the SoftDevice to queue a Queued Write operation (Prepare Write ATT packet) in user memory:
- *
- *  <table style="border:1px solid black;border-collapse:collapse;">
- *  <caption>Queued Write</caption>
- *  <tr>
- *  <th style="border:1px solid black;padding:5px;">Parameter</th>
- *  <th style="border:1px solid black;padding:5px;">Size (octets)</th>
- *  <th style="border:1px solid black;padding:5px;">Description</th>
- *  </tr>
- *  <tr>
- *  <td style="border:1px solid black;padding:5px;">Handle</td>
- *  <td style="border:1px solid black;padding:5px;">2</td>
- *  <td style="border:1px solid black;padding:5px;">Attribute Handle</td>
- *  </tr>
- *  <tr>
- *  <td style="border:1px solid black;padding:5px;">Offset</td>
- *  <td style="border:1px solid black;padding:5px;">2</td>
- *  <td style="border:1px solid black;padding:5px;">Value Offset</td>
- *  </tr>
- *  <tr>
- *  <td style="border:1px solid black;padding:5px;">Length</td>
- *  <td style="border:1px solid black;padding:5px;">2</td>
- *  <td style="border:1px solid black;padding:5px;">Value Length</td>
- *  </tr>
- *  <tr>
- *  <td style="border:1px solid black;padding:5px;">Value</td>
- *  <td style="border:1px solid black;padding:5px;">Length</td>
- *  <td style="border:1px solid black;padding:5px;">Attribute Value</td>
- *  </tr>
- *  </table>
- *
- *  The application can parse the array of Queued Write instances at any time, but it is recommended to do so whenever an Execute Write ATT packet 
- *  has been received over the air. See the GATT Server Queued Writes MSCs for more details.
- *  The array will be terminated by an Queued Write instance with its handle set to @ref BLE_GATT_HANDLE_INVALID.
- * @}
- * @}
- */
-
-/**
- * @addtogroup BLE_L2CAP 
- * @{
- * @defgroup BLE_L2CAP_MSC Message Sequence Charts
- * @{
- * @defgroup BLE_L2CAP_API_MSC L2CAP API
- * @msc
- * hscale = "1.5";
- * APP,SD,PEER;
- * |||;
- * APP=>SD [label = "sd_ble_l2cap_cid_register(cid)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * |||;
- * APP rbox PEER [label="Connection Established"];
- * |||;
- * APP=>SD [label = "sd_ble_l2cap_tx(data)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "L2CAP packet", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_EVT_TX_COMPLETE"];
- * SD<:PEER [label = "L2CAP packet", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_L2CAP_EVT_RX"];
- * SD<:PEER [label = "L2CAP packet", textcolor="#000080", linecolor="#000080"];
- * APP<<=SD [label = "BLE_L2CAP_EVT_RX"];
- * |||;
- * APP=>SD [label = "sd_ble_l2cap_tx(data)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * SD:>PEER [label = "L2CAP packet", textcolor="#000080", linecolor="#000080"];
- * SD=>>APP [label = "BLE_EVT_TX_COMPLETE"];
- * |||;
- * APP rbox PEER [label="Terminate Connection"];
- * |||;
- * APP=>SD [label = "sd_ble_l2cap_cid_unregister(cid)"];
- * APP<<SD [label = "NRF_SUCCESS"];
- * @endmsc
- * @}
- * @}
- */
--- a/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/ble.h	Tue Mar 18 11:00:08 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,302 +0,0 @@
-/* Copyright (c) 2011 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is confidential property of Nordic Semiconductor. The use,
- * copying, transfer or disclosure of such information is prohibited except by express written
- * agreement with Nordic Semiconductor.
- *
- */
-/**
-  @addtogroup BLE_COMMON BLE SoftDevice Common
-  @{
-  @defgroup ble_api Events, type definitions and API calls
-  @{
-
-  @brief Module independent events, type definitions and API calls for the S110 SoftDevice.
-
- */
-
-#ifndef BLE_H__
-#define BLE_H__
-
-#include "ble_ranges.h"
-#include "ble_types.h"
-#include "ble_gap.h"
-#include "ble_l2cap.h"
-#include "ble_gatt.h"
-#include "ble_gattc.h"
-#include "ble_gatts.h"
-
-/**
- * @brief Common API SVC numbers.
- */
-enum BLE_COMMON_SVCS
-{
-  SD_BLE_EVT_GET  = BLE_SVC_BASE,       /**< Get an event from the pending events queue. */
-  SD_BLE_TX_BUFFER_COUNT_GET,           /**< Get the total number of available application transmission buffers from the stack. */
-  SD_BLE_UUID_VS_ADD,                   /**< Add a Vendor Specific UUID. */
-  SD_BLE_UUID_DECODE,                   /**< Decode UUID bytes. */
-  SD_BLE_UUID_ENCODE,                   /**< Encode UUID bytes. */
-  SD_BLE_VERSION_GET,                   /**< Get the local version information (company id, LMP Version, LMP Subversion). */
-  SD_BLE_USER_MEM_REPLY,                /**< User Memory Reply. */
-};
-
-/** @brief  Required pointer alignment for BLE Events.
-*/
-#define BLE_EVTS_PTR_ALIGNMENT    4
-
-/** @defgroup BLE_USER_MEM_TYPES User Memory Types
- * @{ */
-#define BLE_USER_MEM_TYPE_INVALID               0x00  /**< Invalid User Memory Types. */
-#define BLE_USER_MEM_TYPE_GATTS_QUEUED_WRITES   0x01  /**< User Memory for GATTS queued writes. */
-/** @} */
-
-/** @brief  Maximum number of Vendor Specific UUIDs.
-*/
-#define BLE_UUID_VS_MAX_COUNT     10
-
-/**
- * @brief BLE Module Independent Event IDs.
- */
-enum BLE_COMMON_EVTS
-{
-  BLE_EVT_TX_COMPLETE  = BLE_EVT_BASE,  /**< Transmission Complete. */
-  BLE_EVT_USER_MEM_REQUEST,             /**< User Memory request. */
-  BLE_EVT_USER_MEM_RELEASE              /**< User Memory release. */
-};
-
-/**@brief User Memory Block. */
-typedef struct
-{
-  uint8_t*          p_mem;      /**< Pointer to the start of the user memory block. */
-  uint16_t          len;        /**< Length in bytes of the user memory block. */
-} ble_user_mem_block_t;
-
-/**
- * @brief TX complete event.
- */
-typedef struct
-{
-  uint8_t count;                        /**< Number of packets transmitted. */
-} ble_evt_tx_complete_t;
-
-/**@brief Event structure for BLE_EVT_USER_MEM_REQUEST. */
-typedef struct
-{
-  uint8_t                     type;     /**< User memory type, see @ref BLE_USER_MEM_TYPES. */
-} ble_evt_user_mem_request_t;
-
-/**@brief Event structure for BLE_EVT_USER_MEM_RELEASE. */
-typedef struct
-{
-  uint8_t                     type;       /**< User memory type, see @ref BLE_USER_MEM_TYPES. */
-  ble_user_mem_block_t        mem_block;  /**< User memory block */
-} ble_evt_user_mem_release_t;
-
-
-/**@brief Event structure for events not associated with a specific function module. */
-typedef struct
-{
-  uint16_t conn_handle;                 /**< Connection Handle on which this event occured. */
-  union
-  {
-    ble_evt_tx_complete_t           tx_complete;        /**< Transmission Complete. */
-    ble_evt_user_mem_request_t      user_mem_request;   /**< User Memory Request Event Parameters. */
-    ble_evt_user_mem_release_t      user_mem_release;   /**< User Memory Release Event Parameters. */
-  } params;
-} ble_common_evt_t;
-
-/**@brief BLE Event header. */
-typedef struct
-{
-  uint16_t evt_id;                      /**< Value from a BLE_<module>_EVT series. */
-  uint16_t evt_len;                     /**< Length in octets excluding this header. */
-} ble_evt_hdr_t;
-
-/**@brief Common BLE Event type, wrapping the module specific event reports. */
-typedef struct
-{
-  ble_evt_hdr_t header;                 /**< Event header. */
-  union
-  {
-    ble_common_evt_t  common_evt;         /**< Common Event, evt_id in BLE_EVT_* series. */
-    ble_gap_evt_t     gap_evt;            /**< GAP originated event, evt_id in BLE_GAP_EVT_* series. */
-    ble_l2cap_evt_t   l2cap_evt;          /**< L2CAP originated event, evt_id in BLE_L2CAP_EVT* series. */
-    ble_gattc_evt_t   gattc_evt;          /**< GATT client originated event, evt_id in BLE_GATTC_EVT* series. */
-    ble_gatts_evt_t   gatts_evt;          /**< GATT server originated event, evt_id in BLE_GATTS_EVT* series. */
-  } evt;
-} ble_evt_t;
-
-
-/**
- * @brief Version Information.
- */
-typedef struct
-{
-  uint8_t   version_number;             /**< LMP Version number for BT 4.0 spec is 6 (https://www.bluetooth.org/technical/assignednumbers/link_layer.htm). */
-  uint16_t  company_id;                 /**< Company ID, Nordic Semiconductor's company ID is 89 (0x0059) (https://www.bluetooth.org/apps/content/Default.aspx?doc_id=49708). */
-  uint16_t  subversion_number;          /**< LMP Sub Version number corresponds to the SoftDevice Config ID. */
-} ble_version_t;
-
-
-/**@brief Get an event from the pending events queue.
- *
- * @param[in] p_dest Pointer to buffer to be filled in with an event, or NULL to retrieve the event length. This buffer <b>must be 4-byte aligned in memory</b>.
- * @param[in, out] p_len Pointer the length of the buffer, on return it is filled with the event length.
- *
- * @details This call allows the application to pull a BLE event from the BLE stack. The application is signalled that an event is 
- * available from the BLE Stack by the triggering of the SD_EVT_IRQn interrupt (mapped to IRQ 22).
- * The application is free to choose whether to call this function from thread mode (main context) or directly from the Interrupt Service Routine
- * that maps to SD_EVT_IRQn. In any case however, and because the BLE stack runs at a higher priority than the application, this function should be called
- * in a loop (until @ref NRF_ERROR_NOT_FOUND is returned) every time SD_EVT_IRQn is raised to ensure that all available events are pulled from the stack. 
- * Failure to do so could potentially leave events in the internal queue without the application being aware of this fact.
- * Sizing the p_dest buffer is equally important, since the application needs to provide all the memory necessary for the event to be copied into
- * application memory. If the buffer provided is not large enough to fit the entire contents of the event, @ref NRF_ERROR_DATA_SIZE will be returned
- * and the application can then call again with a larger buffer size.
- * Please note that because of the variable length nature of some events, sizeof(ble_evt_t) will not always be large enough to fit certain events, 
- * and so it is the application's responsability to provide an amount of memory large enough so that the relevant event is copied in full.
- * The application may "peek" the event length by providing p_dest as a NULL pointer and inspecting the value of *p_len upon return.
- *
- * @note The pointer supplied must be aligned to the extend defined by @ref BLE_EVTS_PTR_ALIGNMENT
- *
- * @return @ref NRF_SUCCESS Event pulled and stored into the supplied buffer.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid or not sufficiently aligned pointer supplied.
- * @return @ref NRF_ERROR_NOT_FOUND No events ready to be pulled.
- * @return @ref NRF_ERROR_DATA_SIZE Event ready but could not fit into the supplied buffer.
- */
-SVCALL(SD_BLE_EVT_GET, uint32_t, sd_ble_evt_get(uint8_t* p_dest, uint16_t *p_len));
-
-
-/**@brief Get the total number of available application transmission buffers in the BLE stack.
- *
- * @details This call allows the application to obtain the total number of
- *          transmission buffers available for application data. Please note that
- *          this does not give the number of free buffers, but rather the total amount of them.
- *          The application has two options to handle its own application transmission buffers:
- *          - Use a simple arithmetic calculation: at boot time the application should use this function
- *          to find out the total amount of buffers available to it and store it in a variable.
- *          Every time a packet that consumes an application buffer is sent using any of the 
- *          exposed functions in this BLE API, the application should decrement that variable.
- *          Conversely, whenever a @ref BLE_EVT_TX_COMPLETE event is received by the application
- *          it should retrieve the count field in such event and add that number to the same
- *          variable storing the number of available packets.
- *          This mechanism allows the application to be aware at any time of the number of
- *          application packets available in the BLE stack's internal buffers, and therefore
- *          it can know with certainty whether it is possible to send more data or it has to
- *          wait for a @ref BLE_EVT_TX_COMPLETE event before it proceeds.
- *          - Choose to simply not keep track of available buffers at all, and instead handle the 
- *          @ref BLE_ERROR_NO_TX_BUFFERS error by queueing the packet to be transmitted and 
- *          try again as soon as a @ref BLE_EVT_TX_COMPLETE event arrives.
- *
- *          The API functions that <b>may</b> consume an application buffer depending on 
- *          the parameters supplied to them can be found below:
- *
- *          - @ref sd_ble_gattc_write (write witout response only)
- *          - @ref sd_ble_gatts_hvx (notifications only)
- *          - @ref sd_ble_l2cap_tx (all packets)
- *
- * @param[out] p_count Pointer to a uint8_t which will contain the number of application transmission buffers upon
- *                     successful return.
- *
- * @return @ref NRF_SUCCESS Number of application transmission buffers retrieved successfully.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- */
-SVCALL(SD_BLE_TX_BUFFER_COUNT_GET, uint32_t, sd_ble_tx_buffer_count_get(uint8_t* p_count));
-
-
-/**@brief Add a Vendor Specific UUID.
- *
- * @details This call enables the application to add a vendor specific UUID to the BLE stack's table,
- *          for later use all other modules and APIs. This then allows the application to use the shorter,
- *          24-bit @ref ble_uuid_t format when dealing with both 16-bit and 128-bit UUIDs without having to
- *          check for lengths and having split code paths. The way that this is accomplished is by extending the 
- *          grouping mechanism that the Bluetooth SIG standard base UUID uses for all other 128-bit UUIDs. The 
- *          type field in the @ref ble_uuid_t structure is an index (relative to @ref BLE_UUID_TYPE_VENDOR_BEGIN) 
- *          to the table populated by multiple calls to this function, and the uuid field in the same structure 
- *          contains the 2 bytes at indices 12 and 13. The number of possible 128-bit UUIDs available to the 
- *          application is therefore the number of Vendor Specific UUIDs added with the help of this function times 65536, 
- *          although restricted to modifying bytes 12 and 13 for each of the entries in the supplied array.
- *
- * @note Bytes 12 and 13 of the provided UUID will not be used internally, since those are always replaced by 
- * the 16-bit uuid field in @ref ble_uuid_t.
- *
- *
- * @param[in]  p_vs_uuid    Pointer to a 16-octet (128-bit) little endian Vendor Specific UUID disregarding
- *                          bytes 12 and 13.
- * @param[out] p_uuid_type  Pointer where the type field in @ref ble_uuid_t corresponding to this UUID will be stored.
- *
- * @return @ref NRF_SUCCESS Successfully added the Vendor Specific UUID.
- * @return @ref NRF_ERROR_INVALID_ADDR If p_vs_uuid or p_uuid_type is NULL or invalid.
- * @return @ref NRF_ERROR_NO_MEM If there are no more free slots for VS UUIDs.
- * @return @ref NRF_ERROR_FORBIDDEN If p_vs_uuid has already been added to the VS UUID table.
- */
-SVCALL(SD_BLE_UUID_VS_ADD, uint32_t, sd_ble_uuid_vs_add(ble_uuid128_t const * const p_vs_uuid, uint8_t * const p_uuid_type));
-
-
-/** @brief Decode little endian raw UUID bytes (16-bit or 128-bit) into a 24 bit @ref ble_uuid_t structure.
- * 
- * @details The raw UUID bytes excluding bytes 12 and 13 (i.e. bytes 0-11 and 14-15) of p_uuid_le are compared 
- * to the corresponding ones in each entry of the table of vendor specific UUIDs pouplated with @ref sd_ble_uuid_vs_add 
- * to look for a match. If there is such a match, bytes 12 and 13 are returned as p_uuid->uuid and the index 
- * relative to @ref BLE_UUID_TYPE_VENDOR_BEGIN as p_uuid->type. 
- *
- * @note If the UUID length supplied is 2, then the type set by this call will always be @ref BLE_UUID_TYPE_BLE.
- *
- * @param[in]      uuid_le_len Length in bytes of the buffer pointed to by p_uuid_le (must be 2 or 16 bytes).
- * @param[in]      p_uuid_le   Pointer pointing to little endian raw UUID bytes.
- * @param[in,out]  p_uuid      Pointer to a @ref ble_uuid_t structure to be filled in.
- *
- * @return @ref NRF_SUCCESS Successfully decoded into the @ref ble_uuid_t structure.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- * @return @ref NRF_ERROR_INVALID_LENGTH Invalid UUID length.
- * @return @ref NRF_ERROR_NOT_FOUND For a 128-bit UUID, no match in the populated table of UUIDs.
- */                                                 
-SVCALL(SD_BLE_UUID_DECODE, uint32_t, sd_ble_uuid_decode(uint8_t uuid_le_len, uint8_t const * const p_uuid_le, ble_uuid_t * const p_uuid));
-
-
-/** @brief Encode a @ref ble_uuid_t structure into little endian raw UUID bytes (16-bit or 128-bit).
- *
- * @note The pointer to the destination buffer p_uuid_le may be NULL, in which case only the validitiy and size of p_uuid is computed.
- *
- * @param[in]      p_uuid        Pointer to a @ref ble_uuid_t structure that will be encoded into bytes.
- * @param[out]     p_uuid_le_len Pointer to a uint8_t that will be filled with the encoded length (2 or 16 bytes).
- * @param[out]     p_uuid_le     Pointer to a buffer where the little endian raw UUID bytes (2 or 16) will be stored.
- *
- * @return @ref NRF_SUCCESS Successfully encoded into the buffer.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- * @return @ref NRF_ERROR_INVALID_PARAM Invalid UUID type.
- */
-SVCALL(SD_BLE_UUID_ENCODE, uint32_t, sd_ble_uuid_encode(ble_uuid_t const * const p_uuid, uint8_t * const  p_uuid_le_len, uint8_t * const p_uuid_le));
-
-
-/**@brief Get Version Information.
- *
- * @details This call allows the application to get the BLE stack version information.
- *
- * @param[in] p_version Pointer to ble_version_t structure to be filled in.
- *
- * @return @ref NRF_SUCCESS  Version information stored successfully.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- * @return @ref NRF_ERROR_BUSY The stack is busy (typically doing a locally-initiated disconnection procedure).
- */
-SVCALL(SD_BLE_VERSION_GET, uint32_t, sd_ble_version_get(ble_version_t * p_version));
-
-
-/**@brief Provide a user memory block.
- *
- * @note This call can only be used as a response to a @ref BLE_EVT_USER_MEM_REQUEST event issued to the application.
- *
- * @param[in] conn_handle                 Connection handle.
- * @param[in] p_block                     Pointer to a user memory block structure.
- *
- * @return @ref NRF_SUCCESS               Successfully queued a response to the peer.
- * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
- * @return @ref NRF_ERROR_INVALID_STATE   No execute write request pending.
- */
-SVCALL(SD_BLE_USER_MEM_REPLY, uint32_t, sd_ble_user_mem_reply(uint16_t conn_handle, ble_user_mem_block_t *p_block));
-
-#endif /* BLE_H__ */
-
-/**
-  @}
-  @}
-*/
--- a/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/ble_err.h	Tue Mar 18 11:00:08 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
- * Copyright (c) 2012 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is confidential property of Nordic Semiconductor. The use,
- * copying, transfer or disclosure of such information is prohibited except by express written
- * agreement with Nordic Semiconductor.
- *
- */
- /**
-  @addtogroup BLE_COMMON
-  @{
-  @addtogroup  nrf_error
-  @{
-    @ingroup BLE_COMMON
-  @}
-
-  @defgroup ble_err General error codes
-  @{
-
-  @brief General error code definitions for the BLE API.
-
-  @ingroup BLE_COMMON
-*/
-#ifndef NRF_BLE_ERR_H__
-#define NRF_BLE_ERR_H__
-
-#include "nrf_error.h"
-
-/* @defgroup BLE_ERRORS Error Codes
- * @{ */
-#define BLE_ERROR_INVALID_CONN_HANDLE    (NRF_ERROR_STK_BASE_NUM+0x001) /**< Invalid connection handle. */
-#define BLE_ERROR_INVALID_ATTR_HANDLE    (NRF_ERROR_STK_BASE_NUM+0x002) /**< Invalid attribute handle. */
-#define BLE_ERROR_NO_TX_BUFFERS          (NRF_ERROR_STK_BASE_NUM+0x003) /**< Buffer capacity exceeded. */
-/** @} */
-
-
-/** @defgroup BLE_ERROR_SUBRANGES Module specific error code subranges
- *  @brief Assignment of subranges for module specific error codes.
- *  @note For specific error codes, see ble_<module>.h or ble_error_<module>.h.
- * @{ */
-#define NRF_L2CAP_ERR_BASE             (NRF_ERROR_STK_BASE_NUM+0x100) /**< L2CAP specific errors. */
-#define NRF_GAP_ERR_BASE               (NRF_ERROR_STK_BASE_NUM+0x200) /**< GAP specific errors. */
-#define NRF_GATTC_ERR_BASE             (NRF_ERROR_STK_BASE_NUM+0x300) /**< GATT client specific errors. */
-#define NRF_GATTS_ERR_BASE             (NRF_ERROR_STK_BASE_NUM+0x400) /**< GATT server specific errors. */
-/** @} */
-
-#endif
-
-
-/**
-  @}
-  @}
-*/
--- a/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/ble_gap.h	Tue Mar 18 11:00:08 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,895 +0,0 @@
-/* Copyright (c) 2011 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is confidential property of Nordic Semiconductor. The use,
- * copying, transfer or disclosure of such information is prohibited except by express written
- * agreement with Nordic Semiconductor.
- *
- */
-/**
-  @addtogroup BLE_GAP Generic Access Profile (GAP)
-  @{
-  @brief Definitions and prototypes for the GAP interface.
- */
-
-#ifndef BLE_GAP_H__
-#define BLE_GAP_H__
-
-#include "ble_types.h"
-#include "ble_ranges.h"
-#include "nrf_svc.h"
-
-/**
- * @brief GAP API SVC numbers.
- */
-enum BLE_GAP_SVCS
-{
-  SD_BLE_GAP_ADDRESS_SET  = BLE_GAP_SVC_BASE,  /**< Set own Bluetooth Address. */
-  SD_BLE_GAP_ADDRESS_GET,                      /**< Get own Bluetooth Address. */
-  SD_BLE_GAP_ADV_DATA_SET,                     /**< Set Advertisement Data. */
-  SD_BLE_GAP_ADV_START,                        /**< Start Advertising. */
-  SD_BLE_GAP_ADV_STOP,                         /**< Stop Advertising. */
-  SD_BLE_GAP_CONN_PARAM_UPDATE,                /**< Connection Parameter Update. */
-  SD_BLE_GAP_DISCONNECT,                       /**< Disconnect. */
-  SD_BLE_GAP_TX_POWER_SET,                     /**< Set TX Power. */
-  SD_BLE_GAP_APPEARANCE_SET,                   /**< Set Appearance. */
-  SD_BLE_GAP_APPEARANCE_GET,                   /**< Get Appearance. */
-  SD_BLE_GAP_PPCP_SET,                         /**< Set PPCP. */
-  SD_BLE_GAP_PPCP_GET,                         /**< Get PPCP. */
-  SD_BLE_GAP_DEVICE_NAME_SET,                  /**< Set Device Name. */
-  SD_BLE_GAP_DEVICE_NAME_GET,                  /**< Get Device Name. */
-  SD_BLE_GAP_AUTHENTICATE,                     /**< Initiate Pairing/Bonding. */
-  SD_BLE_GAP_SEC_PARAMS_REPLY,                 /**< Reply with Security Parameters. */
-  SD_BLE_GAP_AUTH_KEY_REPLY,                   /**< Reply with an authentication key. */
-  SD_BLE_GAP_SEC_INFO_REPLY,                   /**< Reply with Security Information. */
-  SD_BLE_GAP_CONN_SEC_GET,                     /**< Obtain connection security level. */
-  SD_BLE_GAP_RSSI_START,                       /**< Start reporting of changes in RSSI. */ 
-  SD_BLE_GAP_RSSI_STOP,                        /**< Stop reporting of changes in RSSI. */ 
-};
-
-
-/** @addtogroup BLE_GAP_DEFINES Defines
- * @{ */
-
-/** @defgroup BLE_ERRORS_GAP SVC return values specific to GAP
- * @{ */
-#define BLE_ERROR_GAP_UUID_LIST_MISMATCH            (NRF_GAP_ERR_BASE + 0x000)  /**< UUID list does not contain an integral number of UUIDs. */
-#define BLE_ERROR_GAP_DISCOVERABLE_WITH_WHITELIST   (NRF_GAP_ERR_BASE + 0x001)  /**< Use of Whitelist not permitted with discoverable advertising. */
-#define BLE_ERROR_GAP_INVALID_BLE_ADDR              (NRF_GAP_ERR_BASE + 0x002)  /**< The upper two bits of the address do not correspond to the specified address type. */
-/** @} */
-
-
-/** @defgroup BLE_GAP_ROLES GAP Roles
- * @note Not explicitly used in peripheral API, but will be relevant for central API.
- * @{ */
-#define BLE_GAP_ROLE_INVALID     0x0            /**< Invalid Role. */
-#define BLE_GAP_ROLE_PERIPH      0x1            /**< Peripheral Role. */
-#define BLE_GAP_ROLE_CENTRAL     0x2            /**< Central Role. */
-/** @} */
-
-
-/** @defgroup BLE_GAP_TIMEOUT_SOURCES GAP Timeout sources
- * @{ */
-#define BLE_GAP_TIMEOUT_SRC_ADVERTISEMENT              0x00 /**< Advertisement timeout. */
-#define BLE_GAP_TIMEOUT_SRC_SECURITY_REQUEST           0x01 /**< Security request timeout. */
-/** @} */
-
-
-/** @defgroup BLE_GAP_ADDR_TYPES GAP Address types
- * @{ */
-#define BLE_GAP_ADDR_TYPE_PUBLIC                        0x00 /**< Public address. */
-#define BLE_GAP_ADDR_TYPE_RANDOM_STATIC                 0x01 /**< Random Static address. */
-#define BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE     0x02 /**< Private Resolvable address. */
-#define BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_NON_RESOLVABLE 0x03 /**< Private Non-Resolvable address. */
-/** @} */
-
-
-/** @brief BLE address length. */
-#define BLE_GAP_ADDR_LEN            6
-
-
-/** @defgroup BLE_GAP_AD_TYPE_DEFINITIONS GAP Advertising and Scan Response Data format
- *  @note Found at https://www.bluetooth.org/Technical/AssignedNumbers/generic_access_profile.htm
- * @{ */
-#define BLE_GAP_AD_TYPE_FLAGS                               0x01 /**< Flags for discoverability. */
-#define BLE_GAP_AD_TYPE_16BIT_SERVICE_UUID_MORE_AVAILABLE   0x02 /**< Partial list of 16 bit service UUIDs. */
-#define BLE_GAP_AD_TYPE_16BIT_SERVICE_UUID_COMPLETE         0x03 /**< Complete list of 16 bit service UUIDs. */
-#define BLE_GAP_AD_TYPE_32BIT_SERVICE_UUID_MORE_AVAILABLE   0x04 /**< Partial list of 32 bit service UUIDs. */
-#define BLE_GAP_AD_TYPE_32BIT_SERVICE_UUID_COMPLETE         0x05 /**< Complete list of 32 bit service UUIDs. */
-#define BLE_GAP_AD_TYPE_128BIT_SERVICE_UUID_MORE_AVAILABLE  0x06 /**< Partial list of 128 bit service UUIDs. */
-#define BLE_GAP_AD_TYPE_128BIT_SERVICE_UUID_COMPLETE        0x07 /**< Complete list of 128 bit service UUIDs. */
-#define BLE_GAP_AD_TYPE_SHORT_LOCAL_NAME                    0x08 /**< Short local device name. */
-#define BLE_GAP_AD_TYPE_COMPLETE_LOCAL_NAME                 0x09 /**< Complete local device name. */
-#define BLE_GAP_AD_TYPE_TX_POWER_LEVEL                      0x0A /**< Transmit power level. */
-#define BLE_GAP_AD_TYPE_CLASS_OF_DEVICE                     0x0D /**< Class of device. */
-#define BLE_GAP_AD_TYPE_SIMPLE_PAIRING_HASH_C               0x0E /**< Simple Pairing Hash C. */
-#define BLE_GAP_AD_TYPE_SIMPLE_PAIRING_RANDOMIZER_R         0x0F /**< Simple Pairing Randomizer R. */
-#define BLE_GAP_AD_TYPE_SECURITY_MANAGER_TK_VALUE           0x10 /**< Security Manager TK Value. */
-#define BLE_GAP_AD_TYPE_SECURITY_MANAGER_OOB_FLAGS          0x11 /**< Security Manager Out Of Band Flags. */
-#define BLE_GAP_AD_TYPE_SLAVE_CONNECTION_INTERVAL_RANGE     0x12 /**< Slave Connection Interval Range. */
-#define BLE_GAP_AD_TYPE_SOLICITED_SERVICE_UUIDS_16BIT       0x14 /**< List of 16-bit Service Solicitation UUIDs. */
-#define BLE_GAP_AD_TYPE_SOLICITED_SERVICE_UUIDS_128BIT      0x15 /**< List of 128-bit Service Solicitation UUIDs. */
-#define BLE_GAP_AD_TYPE_SERVICE_DATA                        0x16 /**< Service Data. */
-#define BLE_GAP_AD_TYPE_PUBLIC_TARGET_ADDRESS               0x17 /**< Public Target Address. */
-#define BLE_GAP_AD_TYPE_RANDOM_TARGET_ADDRESS               0x18 /**< Random Target Address. */
-#define BLE_GAP_AD_TYPE_APPEARANCE                          0x19 /**< Appearance. */
-#define BLE_GAP_AD_TYPE_MANUFACTURER_SPECIFIC_DATA          0xFF /**< Manufacturer Specific Data. */
-/** @} */
-
-
-/** @defgroup BLE_GAP_ADV_FLAGS GAP Advertisement Flags
- * @{ */
-#define BLE_GAP_ADV_FLAG_LE_LIMITED_DISC_MODE         (0x01)   /**< LE Limited Discoverable Mode. */
-#define BLE_GAP_ADV_FLAG_LE_GENERAL_DISC_MODE         (0x02)   /**< LE General Discoverable Mode. */
-#define BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED         (0x04)   /**< BR/EDR not supported. */
-#define BLE_GAP_ADV_FLAG_LE_BR_EDR_CONTROLLER         (0x08)   /**< Simultaneous LE and BR/EDR, Controller. */
-#define BLE_GAP_ADV_FLAG_LE_BR_EDR_HOST               (0x10)   /**< Simultaneous LE and BR/EDR, Host. */
-#define BLE_GAP_ADV_FLAGS_LE_ONLY_LIMITED_DISC_MODE   (BLE_GAP_ADV_FLAG_LE_LIMITED_DISC_MODE | BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED)   /**< LE Limited Discoverable Mode, BR/EDR not supported. */
-#define BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE   (BLE_GAP_ADV_FLAG_LE_GENERAL_DISC_MODE | BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED)   /**< LE General Discoverable Mode, BR/EDR not supported. */
-/** @} */
-
-
-/** @defgroup BLE_GAP_ADV_INTERVALS GAP Advertising interval max and min
- * @{ */
-#define BLE_GAP_ADV_INTERVAL_MIN        0x0020 /**< Minimum Advertising interval in 625 us units, i.e. 20 ms. */
-#define BLE_GAP_ADV_NONCON_INTERVAL_MIN 0x00A0 /**< Minimum Advertising interval in 625 us units for non connectable mode, i.e. 100 ms. */
-#define BLE_GAP_ADV_INTERVAL_MAX        0x4000 /**< Maximum Advertising interval in 625 us units, i.e. 10.24 s. */
- /** @}  */
-
-
-/** @brief Maximum size of advertising data in octets. */
-#define  BLE_GAP_ADV_MAX_SIZE       31
-
-
-/** @defgroup BLE_GAP_ADV_TYPES GAP Advertising types
- * @{ */
-#define BLE_GAP_ADV_TYPE_ADV_IND          0x00   /**< Connectable undirected. */
-#define BLE_GAP_ADV_TYPE_ADV_DIRECT_IND   0x01   /**< Connectable directed. */
-#define BLE_GAP_ADV_TYPE_ADV_SCAN_IND     0x02   /**< Scannable undirected. */
-#define BLE_GAP_ADV_TYPE_ADV_NONCONN_IND  0x03   /**< Non connectable undirected. */
-/** @} */
-
-
-/** @defgroup BLE_GAP_ADV_FILTER_POLICIES GAP Advertising filter policies
- * @{ */
-#define BLE_GAP_ADV_FP_ANY                0x00   /**< Allow scan requests and connect requests from any device. */
-#define BLE_GAP_ADV_FP_FILTER_SCANREQ     0x01   /**< Filter scan requests with whitelist. */
-#define BLE_GAP_ADV_FP_FILTER_CONNREQ     0x02   /**< Filter connect requests with whitelist. */
-#define BLE_GAP_ADV_FP_FILTER_BOTH        0x03   /**< Filter both scan and connect requests with whitelist. */
-/** @} */
-
-
-/** @defgroup BLE_GAP_ADV_TIMEOUT_VALUES GAP Advertising timeout values
- * @{ */
-#define BLE_GAP_ADV_TIMEOUT_LIMITED_MAX      180 /**< Maximum advertising time in limited discoverable mode (TGAP(lim_adv_timeout) = 180s in spec (Addendum 2)). */
-#define BLE_GAP_ADV_TIMEOUT_GENERAL_UNLIMITED  0 /**< Unlimited advertising in general discoverable mode. */
-/** @} */
-
-
-/** @defgroup BLE_GAP_DISC_MODES GAP Discovery modes
- * @{ */
-#define BLE_GAP_DISC_MODE_NOT_DISCOVERABLE  0x00   /**< Not discoverable discovery Mode. */
-#define BLE_GAP_DISC_MODE_LIMITED           0x01   /**< Limited Discovery Mode. */
-#define BLE_GAP_DISC_MODE_GENERAL           0x02   /**< General Discovery Mode. */
-/** @} */
-
-/** @defgroup BLE_GAP_IO_CAPS GAP IO Capabilities
- * @{ */
-#define BLE_GAP_IO_CAPS_DISPLAY_ONLY      0x00   /**< Display Only. */
-#define BLE_GAP_IO_CAPS_DISPLAY_YESNO     0x01   /**< Display and Yes/No entry. */
-#define BLE_GAP_IO_CAPS_KEYBOARD_ONLY     0x02   /**< Keyboard Only. */
-#define BLE_GAP_IO_CAPS_NONE              0x03   /**< No I/O capabilities. */
-#define BLE_GAP_IO_CAPS_KEYBOARD_DISPLAY  0x04   /**< Keyboard and Display. */
-/** @} */
-
-
-/** @defgroup BLE_GAP_AUTH_KEY_TYPES GAP Authentication Key Types
- * @{ */
-#define BLE_GAP_AUTH_KEY_TYPE_NONE        0x00   /**< No key (may be used to reject). */
-#define BLE_GAP_AUTH_KEY_TYPE_PASSKEY     0x01   /**< 6-digit Passkey. */
-#define BLE_GAP_AUTH_KEY_TYPE_OOB         0x02   /**< Out Of Band data. */
-/** @} */
-
-/** @defgroup BLE_GAP_SEC_STATUS GAP Security status
- * @{ */
-#define BLE_GAP_SEC_STATUS_SUCCESS                0x00  /**< Successful parameters. */
-#define BLE_GAP_SEC_STATUS_TIMEOUT                0x01  /**< Procedure timed out. */
-#define BLE_GAP_SEC_STATUS_PDU_INVALID            0x02  /**< Invalid PDU received. */
-#define BLE_GAP_SEC_STATUS_PASSKEY_ENTRY_FAILED   0x81  /**< Passkey entry failed (user cancelled or other). */
-#define BLE_GAP_SEC_STATUS_OOB_NOT_AVAILABLE      0x82  /**< Out of Band Key not available. */
-#define BLE_GAP_SEC_STATUS_AUTH_REQ               0x83  /**< Authentication requirements not met. */
-#define BLE_GAP_SEC_STATUS_CONFIRM_VALUE          0x84  /**< Confirm value failed. */
-#define BLE_GAP_SEC_STATUS_PAIRING_NOT_SUPP       0x85  /**< Pairing not supported.  */
-#define BLE_GAP_SEC_STATUS_ENC_KEY_SIZE           0x86  /**< Encryption key size. */
-#define BLE_GAP_SEC_STATUS_SMP_CMD_UNSUPPORTED    0x87  /**< Unsupported SMP command. */
-#define BLE_GAP_SEC_STATUS_UNSPECIFIED            0x88  /**< Unspecified reason. */
-#define BLE_GAP_SEC_STATUS_REPEATED_ATTEMPTS      0x89  /**< Too little time elapsed since last attempt. */
-#define BLE_GAP_SEC_STATUS_INVALID_PARAMS         0x8A  /**< Invalid parameters. */
-/** @} */
-
-/** @defgroup BLE_GAP_SEC_STATUS_SOURCES GAP Security status sources
- * @{ */
-#define BLE_GAP_SEC_STATUS_SOURCE_LOCAL           0x00  /**< Local failure. */
-#define BLE_GAP_SEC_STATUS_SOURCE_REMOTE          0x01  /**< Remote failure. */
-/** @} */
-
-/** @defgroup BLE_GAP_CP_LIMITS GAP Connection Parameters Limits
- * @{ */
-#define BLE_GAP_CP_MIN_CONN_INTVL_NONE           0xFFFF  /**< No new minimum connction interval specified in connect parameters. */
-#define BLE_GAP_CP_MIN_CONN_INTVL_MIN            0x0006  /**< Lowest mimimum connection interval permitted, in units of 1.25 ms, i.e. 7.5 ms. */
-#define BLE_GAP_CP_MIN_CONN_INTVL_MAX            0x0C80  /**< Highest minimum connection interval permitted, in units of 1.25 ms, i.e. 4 s. */
-#define BLE_GAP_CP_MAX_CONN_INTVL_NONE           0xFFFF  /**< No new maximum connction interval specified in connect parameters. */
-#define BLE_GAP_CP_MAX_CONN_INTVL_MIN            0x0006  /**< Lowest maximum connection interval permitted, in units of 1.25 ms, i.e. 7.5 ms. */
-#define BLE_GAP_CP_MAX_CONN_INTVL_MAX            0x0C80  /**< Highest maximum connection interval permitted, in units of 1.25 ms, i.e. 4 s. */
-#define BLE_GAP_CP_SLAVE_LATENCY_MAX             0x03E8  /**< Highest slave latency permitted, in connection events. */
-#define BLE_GAP_CP_CONN_SUP_TIMEOUT_NONE         0xFFFF  /**< No new supervision timeout specified in connect parameters. */
-#define BLE_GAP_CP_CONN_SUP_TIMEOUT_MIN          0x000A  /**< Lowest supervision timeout permitted, in units of 10 ms, i.e. 100 ms. */
-#define BLE_GAP_CP_CONN_SUP_TIMEOUT_MAX          0x0C80  /**< Highest supervision timeout permitted, in units of 10 ms, i.e. 32 s. */
-/** @} */
-
-
-/**@brief GAP device name maximum length. */
-#define BLE_GAP_DEVNAME_MAX_LEN           31
-
-
-/** @defgroup BLE_GAP_CONN_SEC_MODE_SET_MACROS GAP attribute security requirement setters
- *
- * See @ref ble_gap_conn_sec_mode_t.
- * @{ */
-/** @brief Set sec_mode pointed to by ptr to have no access rights.*/
-#define BLE_GAP_CONN_SEC_MODE_SET_NO_ACCESS(ptr)         do {(ptr)->sm = 0; (ptr)->lv = 0;} while(0)
-/** @brief Set sec_mode pointed to by ptr to require no protection, open link.*/
-#define BLE_GAP_CONN_SEC_MODE_SET_OPEN(ptr)              do {(ptr)->sm = 1; (ptr)->lv = 1;} while(0)
-/** @brief Set sec_mode pointed to by ptr to require encryption, but no MITM protection.*/
-#define BLE_GAP_CONN_SEC_MODE_SET_ENC_NO_MITM(ptr)       do {(ptr)->sm = 1; (ptr)->lv = 2;} while(0)
-/** @brief Set sec_mode pointed to by ptr to require encryption and MITM protection.*/
-#define BLE_GAP_CONN_SEC_MODE_SET_ENC_WITH_MITM(ptr)     do {(ptr)->sm = 1; (ptr)->lv = 3;} while(0)
-/** @brief Set sec_mode pointed to by ptr to require signing or encryption, no MITM protection needed.*/
-#define BLE_GAP_CONN_SEC_MODE_SET_SIGNED_NO_MITM(ptr)    do {(ptr)->sm = 2; (ptr)->lv = 1;} while(0)
-/** @brief Set sec_mode pointed to by ptr to require signing or encryption with MITM protection.*/
-#define BLE_GAP_CONN_SEC_MODE_SET_SIGNED_WITH_MITM(ptr)  do {(ptr)->sm = 2; (ptr)->lv = 2;} while(0)
-/** @} */
-
-
-/**@brief GAP Security Key Length. */
-#define BLE_GAP_SEC_KEY_LEN 16
-
-/**@brief Maximum amount of addresses in a whitelist. */
-#define BLE_GAP_WHITELIST_ADDR_MAX_COUNT (8)
-
-/**@brief Maximum amount of IRKs in a whitelist.
- * @note  The number of IRKs is limited to 8, even if the hardware supports more.
- */
-#define BLE_GAP_WHITELIST_IRK_MAX_COUNT (8)
-
-/** @defgroup GAP_SEC_MODES GAP Security Modes
- * @{ */
-#define BLE_GAP_SEC_MODE 0x00 /**< No key (may be used to reject). */
-
-/** @} */
-
-
-/** @} */
-
-/**@brief Bluetooth Low Energy address. */
-typedef struct
-{
-  uint8_t addr_type;                    /**< See @ref BLE_GAP_ADDR_TYPES. */
-  uint8_t addr[BLE_GAP_ADDR_LEN];       /**< 48-bit address, LSB format. */
-} ble_gap_addr_t;
-
-
-/**@brief GAP connection parameters.
- *
- * @note  When ble_conn_params_t is received in an event, both min_conn_interval and
- *        max_conn_interval will be equal to the connection interval set by the central.
- */
-typedef struct
-{
-  uint16_t min_conn_interval;         /**< Minimum Connection Interval in 1.25 ms units, see @ref BLE_GAP_CP_LIMITS.*/
-  uint16_t max_conn_interval;         /**< Maximum Connection Interval in 1.25 ms units, see @ref BLE_GAP_CP_LIMITS.*/
-  uint16_t slave_latency;             /**< Slave Latency in number of connection events, see @ref BLE_GAP_CP_LIMITS.*/
-  uint16_t conn_sup_timeout;          /**< Connection Supervision Timeout in 10 ms units, see @ref BLE_GAP_CP_LIMITS.*/
-} ble_gap_conn_params_t;
-
-
-/**@brief GAP link requirements.
- *
- * See Bluetooth Core specification, Volume 3 Part C 10.2 for details.
- *
- * Security Mode 0 Level 0: No access permissions at all (this level is not defined by the Bluetooth Core specification).\n
- * Security Mode 1 Level 1: No security is needed (aka open link).\n
- * Security Mode 1 Level 2: Encrypted link required, MITM protection not necessary.\n
- * Security Mode 1 Level 3: MITM protected encrypted link required.\n
- * Security Mode 2 Level 1: Signing or encryption required, MITM protection not necessary.\n
- * Security Mode 2 Level 2: MITM protected signing required, unless link is MITM protected encrypted.\n
- */
-typedef struct
-{
-  uint8_t sm : 4;                     /**< Security Mode (1 or 2), 0 for no permissions at all. */
-  uint8_t lv : 4;                     /**< Level (1, 2 or 3), 0 for no permissions at all. */
-
-} ble_gap_conn_sec_mode_t;
-
-
-
-/**@brief GAP connection security status.*/
-typedef struct
-{
-  ble_gap_conn_sec_mode_t sec_mode;           /**< Currently active security mode for this connection.*/
-  uint8_t                 encr_key_size;      /**< Length of currently active encryption key, 7 to 16 octets.*/
-} ble_gap_conn_sec_t;
-
-
-
-/**@brief Identity Resolving Key. */
-typedef struct
-{
-  uint8_t irk[BLE_GAP_SEC_KEY_LEN];   /**< Array containing IRK. */
-} ble_gap_irk_t;
-
-
-/**@brief Whitelist structure. */
-typedef struct
-{
-  ble_gap_addr_t   ** pp_addrs;        /**< Pointer to array of device address pointers, pointing to addresses to be used in whitelist. NULL if none are given. */
-  uint8_t             addr_count;      /**< Count of device addresses in array, up to @ref BLE_GAP_WHITELIST_ADDR_MAX_COUNT. */
-  ble_gap_irk_t    ** pp_irks;         /**< Pointer to array of Identity Resolving Key (IRK) pointers, each pointing to an IRK in the whitelist. NULL if none are given. */
-  uint8_t             irk_count;       /**< Count of IRKs in array, up to @ref BLE_GAP_WHITELIST_IRK_MAX_COUNT. */
-} ble_gap_whitelist_t;
-
-
-/**@brief GAP advertising parameters.*/
-typedef struct
-{
-  uint8_t               type;                 /**< See @ref BLE_GAP_ADV_TYPES. */
-  ble_gap_addr_t*       p_peer_addr;          /**< For BLE_GAP_CONN_MODE_DIRECTED mode only, known peer address. */
-  uint8_t               fp;                   /**< Filter Policy, see @ref BLE_GAP_ADV_FILTER_POLICIES. */
-  ble_gap_whitelist_t * p_whitelist;          /**< Pointer to whitelist, NULL if none is given. */
-  uint16_t              interval;             /**< Advertising interval between 0x0020 and 0x4000 in 0.625 ms units (20ms to 10.24s), see @ref BLE_GAP_ADV_INTERVALS. This parameter must be set to 0 if type equals @ref BLE_GAP_ADV_TYPE_ADV_DIRECT_IND. */
-  uint16_t              timeout;              /**< Advertising timeout between 0x0001 and 0x3FFF in seconds, 0x0000 disables timeout. See also @ref BLE_GAP_ADV_TIMEOUT_VALUES. This parameter must be set to 0 if type equals @ref BLE_GAP_ADV_TYPE_ADV_DIRECT_IND. */
-} ble_gap_adv_params_t;
-
-
-/**@brief GAP scanning parameters. */
-typedef struct
-{
-  uint8_t    filter;                    /**< Filter based on discovery mode, see @ref BLE_GAP_DISC_MODES. */
-  uint8_t    active    : 1;             /**< If 1, perform active scanning (scan requests). */
-  uint8_t    selective : 1;             /**< If 1, ignore unknown devices (non whitelisted). */
-  uint16_t   interval;                  /**< Scan interval between 0x0020 and 0x4000 in 0.625ms units (20ms to 10.24s). */
-  uint16_t   window;                    /**< Scan window between 0x0004 and 0x4000 in 0.625ms units (2.5ms to 10.24s). */
-  uint16_t   timeout;                   /**< Scan timeout between 0x0001 and 0x3FFF in seconds, 0x0000 disables timeout. */
-} ble_gap_scan_params_t;
-
-
-/**@brief GAP security parameters. */
-typedef struct
-{
-  uint16_t   timeout;                   /**< Timeout for SMP transactions or Security Request in seconds, see @ref sd_ble_gap_authenticate and @ref sd_ble_gap_sec_params_reply for more information. */
-  uint8_t    bond    : 1;               /**< Perform bonding. */
-  uint8_t    mitm    : 1;               /**< Man In The Middle protection required. */
-  uint8_t    io_caps : 3;               /**< IO capabilities, see @ref BLE_GAP_IO_CAPS. */
-  uint8_t    oob     : 1;               /**< Out Of Band data available. */
-  uint8_t    min_key_size;              /**< Minimum encryption key size in octets between 7 and 16. */
-  uint8_t    max_key_size;              /**< Maximum encryption key size in octets between min_key_size and 16. */
-} ble_gap_sec_params_t;
-
-
-/**@brief GAP Encryption Information. */
-typedef struct
-{
-  uint16_t  div;                        /**< Encryption Diversifier. */
-  uint8_t   ltk[BLE_GAP_SEC_KEY_LEN];   /**< Long Term Key. */
-  uint8_t   auth : 1;                   /**< Authenticated Key. */
-  uint8_t   ltk_len : 7;                /**< LTK length in octets. */
-} ble_gap_enc_info_t;
-
-
-/**@brief GAP Master Identification. */
-typedef struct
-{
-  uint16_t  ediv;                       /**< Encrypted Diversifier. */
-  uint8_t   rand[8];                    /**< Random Number. */
-} ble_gap_master_id_t;
-
-
-/**@brief GAP Identity Information. */
-typedef struct
-{
-  ble_gap_addr_t  addr;                       /**< Bluetooth address to which this key applies. */
-  uint8_t         irk[BLE_GAP_SEC_KEY_LEN];   /**< Identity Resolution Key. */
-} ble_gap_id_info_t;
-
-
-/**@brief GAP Signing Information. */
-typedef struct
-{
-  uint8_t   csrk[BLE_GAP_SEC_KEY_LEN]; /* Connection Signature Resolving Key. */
-} ble_gap_sign_info_t;
-
-
-
-/**
- * @brief GAP Event IDs.
- * Those IDs uniquely identify an event coming from the stack to the application.
- */
-enum BLE_GAP_EVTS
-{
-  BLE_GAP_EVT_CONNECTED  = BLE_GAP_EVT_BASE,    /**< Connection established. */
-  BLE_GAP_EVT_DISCONNECTED,                     /**< Disconnected from peer. */
-  BLE_GAP_EVT_CONN_PARAM_UPDATE,                /**< Connection Parameters updated. */
-  BLE_GAP_EVT_SEC_PARAMS_REQUEST,               /**< Request to provide security parameters. */
-  BLE_GAP_EVT_SEC_INFO_REQUEST,                 /**< Request to provide security information. */
-  BLE_GAP_EVT_PASSKEY_DISPLAY,                  /**< Request to display a passkey to the user. */
-  BLE_GAP_EVT_AUTH_KEY_REQUEST,                 /**< Request to provide an authentication key. */
-  BLE_GAP_EVT_AUTH_STATUS,                      /**< Authentication procedure completed with status. */
-  BLE_GAP_EVT_CONN_SEC_UPDATE,                  /**< Connection security updated. */
-  BLE_GAP_EVT_TIMEOUT,                          /**< Timeout expired. */
-  BLE_GAP_EVT_RSSI_CHANGED,                     /**< Signal strength measurement report. */
-};
-
-
-/** @brief Event data for connected event. */
-typedef struct
-{
-  ble_gap_addr_t        peer_addr;              /**< Bluetooth address of the peer device. */
-  uint8_t               irk_match :1;           /**< If 1, peer device's address resolved using an IRK. */
-  uint8_t               irk_match_idx  :7;      /**< Index in IRK list where the address was matched. */
-  ble_gap_conn_params_t conn_params;            /**< GAP Connection Parameters. */
-} ble_gap_evt_connected_t;
-
-
-/** @brief Event data for disconnected event. */
-typedef struct
-{
-  uint8_t reason;                               /**< HCI error code. */
-} ble_gap_evt_disconnected_t;
-
-
-/** @brief Event data for connection parameter update event. */
-typedef struct
-{
-  ble_gap_conn_params_t conn_params;            /**<  GAP Connection Parameters. */
-} ble_gap_evt_conn_param_update_t;
-
-
-/** @brief Event data for security parameters request event. */
-typedef struct
-{
-  ble_gap_sec_params_t peer_params;             /**< Initiator Security Parameters. */
-} ble_gap_evt_sec_params_request_t;
-
-
-/** @brief Event data for securito info request event. */
-typedef struct
-{
-  ble_gap_addr_t peer_addr;                     /**< Bluetooth address of the peer device. */
-  uint16_t       div;                           /**< Encryption diversifier for LTK lookup. */
-  uint8_t        enc_info  : 1;                 /**< If 1, Encryption Information required. */
-  uint8_t        id_info   : 1;                 /**< If 1, Identity Information required. */
-  uint8_t        sign_info : 1;                 /**< If 1, Signing Information required. */
-} ble_gap_evt_sec_info_request_t;
-
-
-/** @brief Event data for passkey display event. */
-typedef struct
-{
-  uint8_t passkey[6];                           /**< 6-digit passkey in ASCII ('0'-'9' digits only). */
-} ble_gap_evt_passkey_display_t;
-
-
-/** @brief Event data for authentication key request event. */
-typedef struct
-{
-  uint8_t key_type;                             /**< See @ref BLE_GAP_AUTH_KEY_TYPES. */
-} ble_gap_evt_auth_key_request_t;
-
-
-/** @brief Security levels supported.
- *  @note See Bluetooth Specification Version 4.0 Volume 3, Chapter 10.
-*/
-typedef struct
-{
-  uint8_t lv1 : 1;                              /**< If 1: Level 1 is supported. */
-  uint8_t lv2 : 1;                              /**< If 1: Level 2 is supported. */
-  uint8_t lv3 : 1;                              /**< If 1: Level 3 is supported. */
-} ble_gap_sec_levels_t;
-
-
-/** @brief Keys that have been exchanged. */
-typedef struct
-{
-  uint8_t ltk       : 1;                        /**< Long Term Key. */
-  uint8_t ediv_rand : 1;                        /**< Encrypted Diversifier and Random value. */
-  uint8_t irk       : 1;                        /**< Identity Resolving Key. */
-  uint8_t address   : 1;                        /**< Public or static random address. */
-  uint8_t csrk      : 1;                        /**< Connection Signature Resolving Key. */
-} ble_gap_sec_keys_t;
-
-
-/** @brief Event data for authentication status event. */
-typedef struct
-{
-  uint8_t               auth_status;            /**< Authentication status, see @ref BLE_GAP_SEC_STATUS. */
-  uint8_t               error_src;              /**< On error, source that caused the failure, see @ref BLE_GAP_SEC_STATUS_SOURCES. */
-  ble_gap_sec_levels_t  sm1_levels;             /**< Levels supported in Security Mode 1. */
-  ble_gap_sec_levels_t  sm2_levels;             /**< Levels supported in Security Mode 2. */
-  ble_gap_sec_keys_t    periph_kex;             /**< Bitmap stating which keys were exchanged (distributed) by the peripheral. */
-  ble_gap_sec_keys_t    central_kex;            /**< Bitmap stating which keys were exchanged (distributed) by the central. */
-  struct periph_keys_t
-  {
-    ble_gap_enc_info_t    enc_info;             /**< Peripheral's Encryption information. */
-  } periph_keys;                                /**< Actual keys distributed from the Peripheral to the Central. */ 
-  struct central_keys_t
-  {
-    ble_gap_irk_t         irk;                  /**< Central's IRK. */
-    ble_gap_addr_t        id_info;              /**< Central's Identity Info. */
-  } central_keys;                               /**< Actual keys distributed from the Central to the Peripheral. */
-} ble_gap_evt_auth_status_t;
-
-
-/** @brief Event data for connection security update event. */
-typedef struct
-{
-  ble_gap_conn_sec_t conn_sec;                  /**< Connection security level. */
-} ble_gap_evt_conn_sec_update_t;
-
-
-/** @brief Event data for timeout event. */
-typedef struct
-{
-  uint8_t src;                                  /**< Source of timeout event, see @ref BLE_GAP_TIMEOUT_SOURCES. */
-} ble_gap_evt_timeout_t;
-
-
-/** @brief Event data for advertisement report event. */
-typedef struct
-{
-  int8_t  rssi;                               /**< Received Signal Strength Indication in dBm. */
-} ble_gap_evt_rssi_changed_t;
-
-
-
-/**@brief GAP event callback event structure. */
-typedef struct
-{
-  uint16_t conn_handle;                                     /**< Connection Handle on which event occured. */
-  union                                                     /**< union alternative identified by evt_id in enclosing struct. */
-  {
-    ble_gap_evt_connected_t          connected;             /**< Connected Event Parameters. */
-    ble_gap_evt_disconnected_t       disconnected;          /**< Disconnected Event Parameters. */
-    ble_gap_evt_conn_param_update_t  conn_param_update;     /**< Connection Parameter Update Parameters. */
-    ble_gap_evt_sec_params_request_t sec_params_request;    /**< Security Parameters Request Event Parameters. */
-    ble_gap_evt_sec_info_request_t   sec_info_request;      /**< Security Information Request Event Parameters. */
-    ble_gap_evt_passkey_display_t    passkey_display;       /**< Passkey Display Event Parameters. */
-    ble_gap_evt_auth_key_request_t   auth_key_request;      /**< Authentication Key Request Event Parameters. */
-    ble_gap_evt_auth_status_t        auth_status;           /**< Authentication Status Event Parameters. */
-    ble_gap_evt_conn_sec_update_t    conn_sec_update;       /**< Connection Security Update Event Parameters. */
-    ble_gap_evt_timeout_t            timeout;               /**< Timeout Event Parameters. */
-    ble_gap_evt_rssi_changed_t       rssi_changed;          /**< RSSI Event parameters. */
-  } params;
-
-} ble_gap_evt_t;
-
-
-/**@brief Set local Bluetooth address.
- *
- * @param[in] p_addr Pointer to address structure.
- *
- * @return @ref NRF_SUCCESS Address successfully set.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- * @return @ref BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid address.
- * @return @ref NRF_ERROR_BUSY The stack is busy, process pending events and retry.
- */
-SVCALL(SD_BLE_GAP_ADDRESS_SET, uint32_t, sd_ble_gap_address_set(ble_gap_addr_t const * const p_addr));
-
-
-/**@brief Get local Bluetooth address.
- *
- * @param[out] p_addr Pointer to address structure.
- *
- * @return @ref NRF_SUCCESS Address successfully retrieved.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- */
-SVCALL(SD_BLE_GAP_ADDRESS_GET, uint32_t, sd_ble_gap_address_get(ble_gap_addr_t * const p_addr));
-
-
-/**@brief Set, clear or update advertisement and scan response data.
- *
- * @note The format of the advertisement data will be checked by this call to ensure interoperability.
- *       Limitations imposed by this API call to the data provided include having a flags data type in the scan response data and
- *       duplicating the local name in the advertisement data and scan response data. 
- *
- * @note: To clear the advertisement data and set it to a 0-length packet, simply provide a valid pointer (p_data/p_sr_data) with its corresponding 
- *        length (dlen/srdlen) set to 0.
- *
- * @note: The call will fail if p_data and p_sr_data are both NULL since this would have no effect.
- *
- * @param[in] p_data    Raw data to be placed in advertisement packet. If NULL, no changes are made to the current advertisement packet data.
- * @param[in] dlen      Data length for p_data. Max size: @ref BLE_GAP_ADV_MAX_SIZE octets. Should be 0 if p_data is NULL, can be 0 if p_data is not NULL.
- * @param[in] p_sr_data Raw data to be placed in scan response packet. If NULL, no changes are made to the current scan response packet data.
- * @param[in] srdlen    Data length for p_sr_data. Max size: @ref BLE_GAP_ADV_MAX_SIZE octets. Should be 0 if p_sr_data is NULL, can be 0 if p_data is not NULL.
- *
- * @return @ref NRF_SUCCESS Advertisement data successfully updated or cleared.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- * @return @ref NRF_ERROR_INVALID_FLAGS Invalid combination of advertising flags supplied.
- * @return @ref NRF_ERROR_INVALID_DATA Invalid data type(s) supplied, check the advertising data format specification.
- * @return @ref NRF_ERROR_INVALID_LENGTH Invalid data length(s) supplied.
- * @return @ref BLE_ERROR_GAP_UUID_LIST_MISMATCH Invalid UUID list supplied.
- * @return @ref NRF_ERROR_BUSY The stack is busy, process pending events and retry.
- */
-SVCALL(SD_BLE_GAP_ADV_DATA_SET, uint32_t, sd_ble_gap_adv_data_set(uint8_t const * const p_data, uint8_t dlen, uint8_t const * const p_sr_data, uint8_t srdlen));
-
-
-/**@brief Start advertising (GAP Discoverable, Connectable modes, Broadcast Procedure).
- *
- * @param[in] p_adv_params Pointer to advertising parameters structure.
- *
- * @return @ref NRF_SUCCESS The BLE stack has started advertising.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- * @return @ref NRF_ERROR_INVALID_STATE Invalid state to perform operation.
- * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, check the accepted ranges and limits.
- * @return @ref BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid Bluetooth address supplied.
- * @return @ref BLE_ERROR_GAP_DISCOVERABLE_WITH_WHITELIST Discoverable mode and whitelist incompatible.
- */
-SVCALL(SD_BLE_GAP_ADV_START, uint32_t, sd_ble_gap_adv_start(ble_gap_adv_params_t const * const p_adv_params));
-
-
-/**@brief Stop advertising (GAP Discoverable, Connectable modes, Broadcast Procedure).
- *
- * @return @ref NRF_SUCCESS The BLE stack has stopped advertising.
- * @return @ref NRF_ERROR_INVALID_STATE Invalid state to perform operation (most probably not in advertising state).
- */
-SVCALL(SD_BLE_GAP_ADV_STOP, uint32_t, sd_ble_gap_adv_stop(void));
-
-
-/**@brief Update connection parameters.
- *
- * @details In the central role this will initiate a Link Layer connection parameter update procedure,
- *          otherwise in the peripheral role, this will send the corresponding L2CAP request and wait for
- *          the central to perform the procedure. In both cases, and regardless of success or failure, the application
- *          will be informed of the result with a @ref BLE_GAP_EVT_CONN_PARAM_UPDATE event.
- *
- * @note If both a connection supervision timeout and a maximum connection interval are specified, then the following constraint
- *       applies: (conn_sup_timeout * 8) >= (max_conn_interval * (slave_latency + 1))
- *
- * @param[in] conn_handle Connection handle.
- * @param[in] p_conn_params  Pointer to desired connection parameters. If NULL is provided on a peripheral role,
- *                           the parameters in the PPCP characteristic of the GAP service will be used instead.
- *
- * @return @ref NRF_SUCCESS The Connection Update procedure has been started successfully.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, check parameter limits and constraints.
- * @return @ref NRF_ERROR_BUSY Procedure already in progress or not allowed at this time, process pending events and retry.
- * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
- * @return @ref NRF_ERROR_NO_MEM Not enough memory to complete operation.
- */
-SVCALL(SD_BLE_GAP_CONN_PARAM_UPDATE, uint32_t, sd_ble_gap_conn_param_update(uint16_t conn_handle, ble_gap_conn_params_t const * const p_conn_params));
-
-
-/**@brief Disconnect (GAP Link Termination).
- *
- * @details This call initiates the disconnection procedure, and its completion will be communicated to the application
- *          with a BLE_GAP_EVT_DISCONNECTED event.
- *
- * @param[in] conn_handle Connection handle.
- * @param[in] hci_status_code HCI status code, see @ref BLE_HCI_STATUS_CODES (accepted values are BTLE_REMOTE_USER_TERMINATED_CONNECTION and BTLE_CONN_INTERVAL_UNACCEPTABLE).
- *
- * @return @ref NRF_SUCCESS The disconnection procedure has been started successfully.
- * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
- * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
- * @return @ref NRF_ERROR_INVALID_STATE Invalid state to perform operation (disconnection is already in progress or not connected at all).
- */
-SVCALL(SD_BLE_GAP_DISCONNECT, uint32_t, sd_ble_gap_disconnect(uint16_t conn_handle, uint8_t hci_status_code));
-
-
-/**@brief Set the radio's transmit power.
- *
- * @param[in] tx_power Radio transmit power in dBm (accepted values are -40, -30, -20, -16, -12, -8, -4, 0, and 4 dBm).
- *
- * @note -40 dBm will not actually give -40 dBm, but will instead be remapped to -30 dBm.
- *
- * @return @ref NRF_SUCCESS Successfully changed the transmit power.
- * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
- * @return @ref NRF_ERROR_BUSY The stack is busy, process pending events and retry.
- */
-SVCALL(SD_BLE_GAP_TX_POWER_SET, uint32_t, sd_ble_gap_tx_power_set(int8_t tx_power));
-
-
-/**@brief Set GAP Appearance value.
- *
- * @param[in] appearance Appearance (16-bit), see @ref BLE_APPEARANCES.
- *
- * @return @ref NRF_SUCCESS  Appearance value set successfully.
- * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
- */
-SVCALL(SD_BLE_GAP_APPEARANCE_SET, uint32_t, sd_ble_gap_appearance_set(uint16_t appearance));
-
-
-/**@brief Get GAP Appearance value.
- *
- * @param[out] p_appearance Appearance (16-bit), see @ref BLE_APPEARANCES.
- *
- * @return @ref NRF_SUCCESS Appearance value retrieved successfully.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- */
-SVCALL(SD_BLE_GAP_APPEARANCE_GET, uint32_t, sd_ble_gap_appearance_get(uint16_t * const p_appearance));
-
-
-/**@brief Set GAP Peripheral Preferred Connection Parameters.
- *
- * @param[in] p_conn_params Pointer to a @ref ble_gap_conn_params_t structure with the desired parameters.
- *
- * @return @ref NRF_SUCCESS Peripheral Preferred Connection Parameters set successfully.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
- */
-SVCALL(SD_BLE_GAP_PPCP_SET, uint32_t, sd_ble_gap_ppcp_set(ble_gap_conn_params_t const * const p_conn_params));
-
-
-/**@brief Get GAP Peripheral Preferred Connection Parameters.
- *
- * @param[out] p_conn_params Pointer to a @ref ble_gap_conn_params_t structure where the parameters will be stored.
- *
- * @return @ref NRF_SUCCESS Peripheral Preferred Connection Parameters retrieved successfully.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- */
-SVCALL(SD_BLE_GAP_PPCP_GET, uint32_t, sd_ble_gap_ppcp_get(ble_gap_conn_params_t * const p_conn_params));
-
-
-/**@brief Set GAP device name.
- *
- * @param[in] p_write_perm Write permissions for the Device Name characteristic see @ref ble_gap_conn_sec_mode_t.
- * @param[in] p_dev_name Pointer to a UTF-8 encoded, <b>non NULL-terminated</b> string.
- * @param[in] len   Length of the UTF-8, <b>non NULL-terminated</b> string pointed to by p_dev_name in octets (must be smaller or equal than @ref BLE_GAP_DEVNAME_MAX_LEN).
- *
- * @return @ref NRF_SUCCESS GAP device name and permissions set successfully.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
- * @return @ref NRF_ERROR_DATA_SIZE Invalid data size(s) supplied.
- */
-SVCALL(SD_BLE_GAP_DEVICE_NAME_SET, uint32_t, sd_ble_gap_device_name_set(ble_gap_conn_sec_mode_t const * const p_write_perm, uint8_t const * const p_dev_name, uint16_t len));
-
-
-/**@brief Get GAP device name.
- *
- * @param[in]     p_dev_name Pointer to an empty buffer where the UTF-8 <b>non NULL-terminated</b> string will be placed. Set to NULL to obtain the complete device name length.
- * @param[in,out] p_len      Length of the buffer pointed by p_dev_name, complete device name length on output.
- *
- * @note          If the device name is longer than the size of the supplied buffer,
- *                p_len will return the complete device name length,
- *                and not the number of bytes actually returned in p_dev_name.
- *                The application may use this information to allocate a suitable buffer size.
- *
- * @return @ref NRF_SUCCESS GAP device name retrieved successfully.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- * @return @ref NRF_ERROR_DATA_SIZE Invalid data size(s) supplied.
- */
-SVCALL(SD_BLE_GAP_DEVICE_NAME_GET, uint32_t, sd_ble_gap_device_name_get(uint8_t * const p_dev_name, uint16_t * const p_len));
-
-
-/**@brief Initiate GAP Authentication procedure.
- *
- * @param[in] conn_handle Connection handle.
- * @param[in] p_sec_params Pointer to the @ref ble_gap_sec_params_t structure with the security parameters to be used during the pairing procedure.
- *
- * @details In the central role, this function will send an SMP Pairing Request, otherwise in the peripheral role, an SMP Security Request will be sent.
- *          In the peripheral role, only the timeout, bond and mitm fields of @ref ble_gap_sec_params_t are used.
- *
- * @note    The GAP Authentication procedure may be triggered by the central without calling this function when accessing a secure service.
- * @note    Calling this function may result in the following events depending on the outcome and parameters: @ref BLE_GAP_EVT_SEC_PARAMS_REQUEST,
- *          @ref BLE_GAP_EVT_SEC_INFO_REQUEST, @ref BLE_GAP_EVT_AUTH_KEY_REQUEST, @ref BLE_GAP_EVT_AUTH_STATUS.
- * @note    The timeout parameter in @ref ble_gap_sec_params_t is interpreted here as the Security Request timeout
- *
- *
- * @return @ref NRF_SUCCESS Successfully initiated authentication procedure.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
- * @return @ref NRF_ERROR_INVALID_STATE Invalid state to perform operation.
- * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
- */
-SVCALL(SD_BLE_GAP_AUTHENTICATE, uint32_t, sd_ble_gap_authenticate(uint16_t conn_handle, ble_gap_sec_params_t const * const p_sec_params));
-
-
-/**@brief Reply with GAP security parameters.
- *
- * @param[in] conn_handle Connection handle.
- * @param[in] sec_status Security status, see @ref BLE_GAP_SEC_STATUS.
- * @param[in] p_sec_params Pointer to a @ref ble_gap_sec_params_t security parameters structure.
- *
- * @details This function is only used to reply to a @ref BLE_GAP_EVT_SEC_PARAMS_REQUEST, calling it at other times will result in an NRF_ERROR_INVALID_STATE.
- * @note    If the call returns an error code, the request is still pending, and the reply call may be repeated with corrected parameters.
- * @note    The timeout parameter in @ref ble_gap_sec_params_t is interpreted here as the SMP procedure timeout, and must be 30 seconds. The function will fail
- *          if the application supplies a different value.
- *
- * @return @ref NRF_SUCCESS Successfully accepted security parameter from the application.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
- * @return @ref NRF_ERROR_INVALID_STATE Invalid state to perform operation.
- * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
- */
-SVCALL(SD_BLE_GAP_SEC_PARAMS_REPLY, uint32_t, sd_ble_gap_sec_params_reply(uint16_t conn_handle, uint8_t sec_status, ble_gap_sec_params_t const * const p_sec_params));
-
-
-/**@brief Reply with an authentication key.
- *
- * @param[in] conn_handle Connection handle.
- * @param[in] key_type See @ref BLE_GAP_AUTH_KEY_TYPES.
- * @param[in] key If key type is BLE_GAP_AUTH_KEY_TYPE_NONE, then NULL.
- *                If key type is BLE_GAP_AUTH_KEY_TYPE_PASSKEY, then a 6-byte ASCII string (digit 0..9 only, no NULL termination).
- *                If key type is BLE_GAP_AUTH_KEY_TYPE_OOB, then a 16-byte OOB key value in Little Endian format.
- *
- * @details This function is only used to reply to a @ref BLE_GAP_EVT_AUTH_KEY_REQUEST, calling it at other times will result in an NRF_ERROR_INVALID_STATE.
- * @note    If the call returns an error code, the request is still pending, and the reply call may be repeated with corrected parameters.
- *
- * @return @ref NRF_SUCCESS Authentication key successfully set.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
- * @return @ref NRF_ERROR_INVALID_STATE Invalid state to perform operation.
- * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
- */
-SVCALL(SD_BLE_GAP_AUTH_KEY_REPLY, uint32_t, sd_ble_gap_auth_key_reply(uint16_t conn_handle, uint8_t key_type, uint8_t const * const key));
-
-
-/**@brief Reply with GAP security information.
- *
- * @param[in] conn_handle Connection handle.
- * @param[in] p_enc_info Pointer to a @ref ble_gap_enc_info_t encryption information structure. May be NULL to signal none is available.
- * @param[in] p_sign_info Pointer to a @ref ble_gap_sign_info_t signing information structure. May be NULL to signal none is available.
- *
- * @details This function is only used to reply to a @ref BLE_GAP_EVT_SEC_INFO_REQUEST, calling it at other times will result in NRF_ERROR_INVALID_STATE.
- * @note    If the call returns an error code, the request is still pending, and the reply call may be repeated with corrected parameters.
- * @note    Data signing is not implemented yet. p_sign_info must therefore be NULL.
- *
- * @return @ref NRF_SUCCESS Successfully accepted security information.
- * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
- * @return @ref NRF_ERROR_INVALID_STATE Invalid state to perform operation.
- * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
- * @return @ref NRF_ERROR_BUSY The stack is busy, process pending events and retry.
- */
-SVCALL(SD_BLE_GAP_SEC_INFO_REPLY, uint32_t, sd_ble_gap_sec_info_reply(uint16_t conn_handle, ble_gap_enc_info_t const * const p_enc_info, ble_gap_sign_info_t const * const p_sign_info));
-
-
-/**@brief Get the current connection security.
- *
- * @param[in]  conn_handle Connection handle.
- * @param[out] p_conn_sec  Pointer to a @ref ble_gap_conn_sec_t structure to be filled in.
- *
- * @return @ref NRF_SUCCESS Current connection security successfully retrieved.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
- */
-SVCALL(SD_BLE_GAP_CONN_SEC_GET, uint32_t, sd_ble_gap_conn_sec_get(uint16_t conn_handle, ble_gap_conn_sec_t * const p_conn_sec));
-
-
-/**@brief Start reporting the received signal strength to the application. 
- *
- * A new event is reported whenever the RSSI value changes, until @ref sd_ble_gap_rssi_stop is called.
- *
- * @param[in] conn_handle Connection handle.
- *
- * @return @ref NRF_SUCCESS Successfully activated RSSI reporting.
- * @return @ref NRF_ERROR_INVALID_STATE Invalid state to perform operation.
- * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
- */
-SVCALL(SD_BLE_GAP_RSSI_START, uint32_t, sd_ble_gap_rssi_start(uint16_t conn_handle));
-
-
-/**@brief Stop reporting the received singnal strength. 
- *
- * An RSSI change detected before the call but not yet received by the application 
- * may be reported after @ref sd_ble_gap_rssi_stop has been called.
- *
- * @param[in] conn_handle Connection handle.
- *
- * @return @ref NRF_SUCCESS Successfully deactivated RSSI reporting.
- * @return @ref NRF_ERROR_INVALID_STATE Invalid state to perform operation.
- * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
- */
-SVCALL(SD_BLE_GAP_RSSI_STOP, uint32_t, sd_ble_gap_rssi_stop(uint16_t conn_handle));
-
-#endif // BLE_GAP_H__
-
-/**
-  @}
-*/
--- a/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/ble_gatt.h	Tue Mar 18 11:00:08 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,166 +0,0 @@
-/* Copyright (c) 2012 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is confidential property of Nordic Semiconductor. The use,
- * copying, transfer or disclosure of such information is prohibited except by express written
- * agreement with Nordic Semiconductor.
- *
- */
- /**
-  @addtogroup BLE_GATT Generic Attribute Profile (GATT) Common
-  @{
-  @brief  Common definitions and prototypes for the GATT interfaces.
- */
-
-#ifndef BLE_GATT_H__
-#define BLE_GATT_H__
-
-#include "ble_types.h"
-#include "ble_ranges.h"
-
-
-/** @addtogroup BLE_GATT_DEFINES Defines
- * @{ */
-
-/** @brief Default MTU size. */
-#define GATT_MTU_SIZE_DEFAULT 23
-
-/** @brief Only the default MTU size of 23 is currently supported. */
-#define GATT_RX_MTU 23
-
-
-/**@brief Invalid Attribute Handle. */
-#define BLE_GATT_HANDLE_INVALID            0x0000
-
-/** @defgroup BLE_GATT_TIMEOUT_SOURCES GATT Timeout sources
- * @{ */
-#define BLE_GATT_TIMEOUT_SRC_PROTOCOL                  0x00 /**< ATT Protocol timeout. */
-/** @} */
-
-/** @defgroup BLE_GATT_WRITE_OPS GATT Write operations
- * @{ */
-#define BLE_GATT_OP_INVALID                0x00  /**< Invalid Operation. */
-#define BLE_GATT_OP_WRITE_REQ              0x01  /**< Write Request. */
-#define BLE_GATT_OP_WRITE_CMD              0x02  /**< Write Command. */
-#define BLE_GATT_OP_SIGN_WRITE_CMD         0x03  /**< Signed Write Command. */
-#define BLE_GATT_OP_PREP_WRITE_REQ         0x04  /**< Prepare Write Request. */
-#define BLE_GATT_OP_EXEC_WRITE_REQ         0x05  /**< Execute Write Request. */
-/** @} */
-
-/** @defgroup BLE_GATT_EXEC_WRITE_FLAGS GATT Execute Write flags
- * @{ */
-#define BLE_GATT_EXEC_WRITE_FLAG_PREPARED_CANCEL 0x00
-#define BLE_GATT_EXEC_WRITE_FLAG_PREPARED_WRITE  0x01
-/** @} */
-
-/** @defgroup BLE_GATT_HVX_TYPES GATT Handle Value operations
- * @{ */
-#define BLE_GATT_HVX_INVALID               0x00  /**< Invalid Operation. */
-#define BLE_GATT_HVX_NOTIFICATION          0x01  /**< Handle Value Notification. */
-#define BLE_GATT_HVX_INDICATION            0x02  /**< Handle Value Indication. */
-/** @} */
-
-/** @defgroup BLE_GATT_STATUS_CODES GATT Status Codes
- * @{ */
-#define BLE_GATT_STATUS_SUCCESS                           0x0000  /**< Success. */
-#define BLE_GATT_STATUS_UNKNOWN                           0x0001  /**< Unknown or not applicable status. */
-#define BLE_GATT_STATUS_ATTERR_INVALID                    0x0100  /**< ATT Error: Invalid Error Code. */
-#define BLE_GATT_STATUS_ATTERR_INVALID_HANDLE             0x0101  /**< ATT Error: Invalid Attribute Handle. */
-#define BLE_GATT_STATUS_ATTERR_READ_NOT_PERMITTED         0x0102  /**< ATT Error: Read not permitted. */
-#define BLE_GATT_STATUS_ATTERR_WRITE_NOT_PERMITTED        0x0103  /**< ATT Error: Write not permitted. */
-#define BLE_GATT_STATUS_ATTERR_INVALID_PDU                0x0104  /**< ATT Error: Used in ATT as Invalid PDU. */
-#define BLE_GATT_STATUS_ATTERR_INSUF_AUTHENTICATION       0x0105  /**< ATT Error: Authenticated link required. */
-#define BLE_GATT_STATUS_ATTERR_REQUEST_NOT_SUPPORTED      0x0106  /**< ATT Error: Used in ATT as Request Not Supported. */
-#define BLE_GATT_STATUS_ATTERR_INVALID_OFFSET             0x0107  /**< ATT Error: Offset specified was past the end of the attribute. */
-#define BLE_GATT_STATUS_ATTERR_INSUF_AUTHORIZATION        0x0108  /**< ATT Error: Used in ATT as Insufficient Authorisation. */
-#define BLE_GATT_STATUS_ATTERR_PREPARE_QUEUE_FULL         0x0109  /**< ATT Error: Used in ATT as Prepare Queue Full. */
-#define BLE_GATT_STATUS_ATTERR_ATTRIBUTE_NOT_FOUND        0x010A  /**< ATT Error: Used in ATT as Attribute not found. */
-#define BLE_GATT_STATUS_ATTERR_ATTRIBUTE_NOT_LONG         0x010B  /**< ATT Error: Attribute cannot be read or written using read/write blob requests. */
-#define BLE_GATT_STATUS_ATTERR_INSUF_ENC_KEY_SIZE         0x010C  /**< ATT Error: Encryption key size used is insufficient. */
-#define BLE_GATT_STATUS_ATTERR_INVALID_ATT_VAL_LENGTH     0x010D  /**< ATT Error: Invalid value size. */
-#define BLE_GATT_STATUS_ATTERR_UNLIKELY_ERROR             0x010E  /**< ATT Error: Very unlikely error. */
-#define BLE_GATT_STATUS_ATTERR_INSUF_ENCRYPTION           0x010F  /**< ATT Error: Encrypted link required. */
-#define BLE_GATT_STATUS_ATTERR_UNSUPPORTED_GROUP_TYPE     0x0110  /**< ATT Error: Attribute type is not a supported grouping attribute. */
-#define BLE_GATT_STATUS_ATTERR_INSUF_RESOURCES            0x0111  /**< ATT Error: Encrypted link required. */
-#define BLE_GATT_STATUS_ATTERR_RFU_RANGE1_BEGIN           0x0112  /**< ATT Error: Reserved for Future Use range #1 begin. */
-#define BLE_GATT_STATUS_ATTERR_RFU_RANGE1_END             0x017F  /**< ATT Error: Reserved for Future Use range #1 end. */
-#define BLE_GATT_STATUS_ATTERR_APP_BEGIN                  0x0180  /**< ATT Error: Application range begin. */
-#define BLE_GATT_STATUS_ATTERR_APP_END                    0x019F  /**< ATT Error: Application range end. */
-#define BLE_GATT_STATUS_ATTERR_RFU_RANGE2_BEGIN           0x01A0  /**< ATT Error: Reserved for Future Use range #2 begin. */
-#define BLE_GATT_STATUS_ATTERR_RFU_RANGE2_END             0x01DF  /**< ATT Error: Reserved for Future Use range #2 end. */
-#define BLE_GATT_STATUS_ATTERR_RFU_RANGE3_BEGIN           0x01E0  /**< ATT Error: Reserved for Future Use range #3 begin. */
-#define BLE_GATT_STATUS_ATTERR_RFU_RANGE3_END             0x01FC  /**< ATT Error: Reserved for Future Use range #3 end. */
-#define BLE_GATT_STATUS_ATTERR_CPS_CCCD_CONFIG_ERROR      0x01FD  /**< ATT Common Profile and Service Error: Client Characteristic Configuration Descriptor improperly configured. */
-#define BLE_GATT_STATUS_ATTERR_CPS_PROC_ALR_IN_PROG       0x01FE  /**< ATT Common Profile and Service Error: Procedure Already in Progress. */
-#define BLE_GATT_STATUS_ATTERR_CPS_OUT_OF_RANGE           0x01FF  /**< ATT Common Profile and Service Error: Out Of Range. */
-/** @} */
-
-
-/** @defgroup BLE_GATT_CPF_FORMATS Characteristic Presentation Formats
- *  @note Found at http://developer.bluetooth.org/gatt/descriptors/Pages/DescriptorViewer.aspx?u=org.bluetooth.descriptor.gatt.characteristic_presentation_format.xml
- * @{ */
-#define BLE_GATT_CPF_FORMAT_RFU                 0x00 /**< Reserved For Future Use. */
-#define BLE_GATT_CPF_FORMAT_BOOLEAN             0x01 /**< Boolean. */
-#define BLE_GATT_CPF_FORMAT_2BIT                0x02 /**< Unsigned 2-bit integer. */
-#define BLE_GATT_CPF_FORMAT_NIBBLE              0x03 /**< Unsigned 4-bit integer. */
-#define BLE_GATT_CPF_FORMAT_UINT8               0x04 /**< Unsigned 8-bit integer. */
-#define BLE_GATT_CPF_FORMAT_UINT12              0x05 /**< Unsigned 12-bit integer. */
-#define BLE_GATT_CPF_FORMAT_UINT16              0x06 /**< Unsigned 16-bit integer. */
-#define BLE_GATT_CPF_FORMAT_UINT24              0x07 /**< Unsigned 24-bit integer. */
-#define BLE_GATT_CPF_FORMAT_UINT32              0x08 /**< Unsigned 32-bit integer. */
-#define BLE_GATT_CPF_FORMAT_UINT48              0x09 /**< Unsigned 48-bit integer. */
-#define BLE_GATT_CPF_FORMAT_UINT64              0x0A /**< Unsigned 64-bit integer. */
-#define BLE_GATT_CPF_FORMAT_UINT128             0x0B /**< Unsigned 128-bit integer. */
-#define BLE_GATT_CPF_FORMAT_SINT8               0x0C /**< Signed 2-bit integer. */
-#define BLE_GATT_CPF_FORMAT_SINT12              0x0D /**< Signed 12-bit integer. */
-#define BLE_GATT_CPF_FORMAT_SINT16              0x0E /**< Signed 16-bit integer. */
-#define BLE_GATT_CPF_FORMAT_SINT24              0x0F /**< Signed 24-bit integer. */
-#define BLE_GATT_CPF_FORMAT_SINT32              0x10 /**< Signed 32-bit integer. */
-#define BLE_GATT_CPF_FORMAT_SINT48              0x11 /**< Signed 48-bit integer. */
-#define BLE_GATT_CPF_FORMAT_SINT64              0x12 /**< Signed 64-bit integer. */
-#define BLE_GATT_CPF_FORMAT_SINT128             0x13 /**< Signed 128-bit integer. */
-#define BLE_GATT_CPF_FORMAT_FLOAT32             0x14 /**< IEEE-754 32-bit floating point. */
-#define BLE_GATT_CPF_FORMAT_FLOAT64             0x15 /**< IEEE-754 64-bit floating point. */
-#define BLE_GATT_CPF_FORMAT_SFLOAT              0x16 /**< IEEE-11073 16-bit SFLOAT. */
-#define BLE_GATT_CPF_FORMAT_FLOAT               0x17 /**< IEEE-11073 32-bit FLOAT. */
-#define BLE_GATT_CPF_FORMAT_DUINT16             0x18 /**< IEEE-20601 format. */
-#define BLE_GATT_CPF_FORMAT_UTF8S               0x19 /**< UTF-8 string. */
-#define BLE_GATT_CPF_FORMAT_UTF16S              0x1A /**< UTF-16 string. */
-#define BLE_GATT_CPF_FORMAT_STRUCT              0x1B /**< Opaque Structure. */
-/** @} */
-
-/** @defgroup BLE_GATT_CPF_NAMESPACES GATT Bluetooth Namespaces
- * @{
- */
-#define BLE_GATT_CPF_NAMESPACE_BTSIG            0x01
-#define BLE_GATT_CPF_NAMESPACE_DESCRIPTION_UNKNOWN 0x0000
-/** @} */
-
-/** @} */
-
-/**@brief GATT Characteristic Properties. */
-typedef struct
-{
-  /* Standard properties */
-  uint8_t broadcast       :1; /**< Broadcasting of value permitted. */
-  uint8_t read            :1; /**< Reading value permitted. */
-  uint8_t write_wo_resp   :1; /**< Writing value with Write Command permitted. */
-  uint8_t write           :1; /**< Writing value with Write Request permitted. */
-  uint8_t notify          :1; /**< Notications of value permitted. */
-  uint8_t indicate        :1; /**< Indications of value permitted. */
-  uint8_t auth_signed_wr  :1; /**< Writing value with Signed Write Command permitted. */
-} ble_gatt_char_props_t;
-
-/**@brief GATT Characteristic Extended Properties. */
-typedef struct
-{
-  /* Extended properties */
-  uint8_t reliable_wr     :1; /**< Writing value with Queued Write Request permitted. */
-  uint8_t wr_aux          :1; /**< Writing the Characteristic User Description permitted. */
-} ble_gatt_char_ext_props_t;
-
-#endif // BLE_GATT_H__
-
-/**
-  @}
-  @}
-*/
--- a/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/ble_gattc.h	Tue Mar 18 11:00:08 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,395 +0,0 @@
-/* Copyright (c) 2012 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is confidential property of Nordic Semiconductor. The use,
- * copying, transfer or disclosure of such information is prohibited except by express written
- * agreement with Nordic Semiconductor.
- *
- */
-/**
-  @addtogroup BLE_GATTC Generic Attribute Profile (GATT) Client
-  @{
-  @brief  Definitions and prototypes for the GATT Client interface.
- */
-
-#ifndef BLE_GATTC_H__
-#define BLE_GATTC_H__
-
-#include "ble_gatt.h"
-#include "ble_types.h"
-#include "ble_ranges.h"
-#include "nrf_svc.h"
-
-
-/**@brief GATTC API SVC numbers. */
-enum BLE_GATTC_SVCS
-{
-  SD_BLE_GATTC_PRIMARY_SERVICES_DISCOVER = BLE_GATTC_SVC_BASE, /**< Primary Service Discovery. */
-  SD_BLE_GATTC_RELATIONSHIPS_DISCOVER,                         /**< Relationship Discovery. */
-  SD_BLE_GATTC_CHARACTERISTICS_DISCOVER,                       /**< Characteristic Discovery. */
-  SD_BLE_GATTC_DESCRIPTORS_DISCOVER,                           /**< Characteristic Descriptor Discovery. */
-  SD_BLE_GATTC_CHAR_VALUE_BY_UUID_READ,                        /**< Read Characteristic Value by UUID. */
-  SD_BLE_GATTC_READ,                                           /**< Generic read. */
-  SD_BLE_GATTC_CHAR_VALUES_READ,                               /**< Read multiple Characteristic Values. */
-  SD_BLE_GATTC_WRITE,                                          /**< Generic write. */
-  SD_BLE_GATTC_HV_CONFIRM                                      /**< Handle Value Confirmation. */
-};
-
-/** @addtogroup BLE_GATTC_DEFINES Defines
- * @{ */
-
-/** @defgroup BLE_ERRORS_GATTC SVC return values specific to GATTC
- * @{ */
-#define BLE_ERROR_GATTC_PROC_NOT_PERMITTED    (NRF_GATTC_ERR_BASE + 0x000)
-/** @} */
-
-/**@brief Last Attribute Handle. */
-#define BLE_GATTC_HANDLE_END                0xFFFF
-
-/** @} */
-
-/**@brief Operation Handle Range. */
-typedef struct
-{
-  uint16_t          start_handle; /**< Start Handle. */
-  uint16_t          end_handle;   /**< End Handle. */
-} ble_gattc_handle_range_t;
-
-
-/**@brief GATT service. */
-typedef struct
-{
-  ble_uuid_t               uuid;          /**< Service UUID. */
-  ble_gattc_handle_range_t handle_range;  /**< Service Handle Range. */
-} ble_gattc_service_t;
-
-
-/**@brief  GATT include. */
-typedef struct
-{
-  uint16_t            handle;           /**< Include Handle. */
-  ble_gattc_service_t included_srvc;    /**< Handle of the included service. */
-} ble_gattc_include_t;
-
-
-/**@brief GATT characteristic. */
-typedef struct
-{
-  ble_uuid_t              uuid;                 /**< Characteristic UUID. */
-  ble_gatt_char_props_t   char_props;           /**< Characteristic Properties. */
-  uint8_t                 char_ext_props : 1;   /**< Extended properties present. */
-  uint16_t                handle_decl;          /**< Handle of the Characteristic Declaration. */
-  uint16_t                handle_value;         /**< Handle of the Characteristic Value. */
-} ble_gattc_char_t;
-
-
-/**@brief GATT descriptor. */
-typedef struct
-{
-  uint16_t          handle;         /**< Descriptor Handle. */
-  ble_uuid_t        uuid;           /**< Descriptor UUID. */
-} ble_gattc_desc_t;
-
-
-/**@brief Write Parameters. */
-typedef struct
-{
-  uint8_t    write_op;                 /**< Write Operation to be performed, see BLE_GATT_WRITE_OPS. */
-  uint16_t   handle;                   /**< Handle to the attribute to be written. */
-  uint16_t   offset;                   /**< Offset in bytes. */
-  uint16_t   len;                      /**< Length of data in bytes. */
-  uint8_t*   p_value;                  /**< Pointer to the value data. */
-  uint8_t    flags;                    /**< Flags, see @ref BLE_GATT_EXEC_WRITE_FLAGS. */
-} ble_gattc_write_params_t;
-
-
-/**
- * @brief GATT Client Event IDs.
- */
-enum BLE_GATTC_EVTS
-{
-  BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP = BLE_GATTC_EVT_BASE,  /**< Primary Service Discovery Response event.  */
-  BLE_GATTC_EVT_REL_DISC_RSP,                             /**< Relationship Discovery Response event. */
-  BLE_GATTC_EVT_CHAR_DISC_RSP,                            /**< Characteristic Discovery Response event. */
-  BLE_GATTC_EVT_DESC_DISC_RSP,                            /**< Descriptor Discovery Response event. */
-  BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP,                /**< Read By UUID Response event. */
-  BLE_GATTC_EVT_READ_RSP,                                 /**< Read Response event. */
-  BLE_GATTC_EVT_CHAR_VALS_READ_RSP,                       /**< Read multiple Response event. */
-  BLE_GATTC_EVT_WRITE_RSP,                                /**< Write Response event. */
-  BLE_GATTC_EVT_HVX,                                      /**< Handle Value Notification or Indication event. */
-  BLE_GATTC_EVT_TIMEOUT                                   /**< Timeout event. */
-};
-
-/**@brief Event structure for BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP. */
-typedef struct
-{
-  uint16_t             count;           /**< Service count. */
-  ble_gattc_service_t services[1];      /**< Service data, variable length. */
-} ble_gattc_evt_prim_srvc_disc_rsp_t;
-
-/**@brief Event structure for BLE_GATTC_EVT_REL_DISC_RSP. */
-typedef struct
-{
-  uint16_t             count;           /**< Include count. */
-  ble_gattc_include_t includes[1];      /**< Include data, variable length. */
-} ble_gattc_evt_rel_disc_rsp_t;
-
-/**@brief Event structure for BLE_GATTC_EVT_CHAR_DISC_RSP. */
-typedef struct
-{
-  uint16_t            count;          /**< Characteristic count. */
-  ble_gattc_char_t    chars[1];       /**< Characteristic data, variable length. */
-} ble_gattc_evt_char_disc_rsp_t;
-
-/**@brief Event structure for BLE_GATTC_EVT_DESC_DISC_RSP. */
-typedef struct
-{
-  uint16_t            count;          /**< Descriptor count. */
-  ble_gattc_desc_t    descs[1];       /**< Descriptor data, variable length. */
-} ble_gattc_evt_desc_disc_rsp_t;
-
-/**@brief GATT read by UUID handle value pair. */
-typedef struct 
-{
-  uint16_t            handle;          /**< Attribute Handle. */
-  uint8_t             *p_value;        /**< Pointer to value, variable length (length available as value_len in ble_gattc_evt_read_by_uuid_rsp_t). 
-                                            Please note that this pointer is absolute to the memory provided by the user when retrieving the event,
-                                            so it will effectively point to a location inside the handle_value array. */
-} ble_gattc_handle_value_t;
-
-/**@brief Event structure for BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP. */
-typedef struct
-{
-  uint16_t                  count;            /**< Handle-Value Pair Count. */
-  uint16_t                  value_len;        /**< Length of the value in Handle-Value(s) list. */
-  ble_gattc_handle_value_t  handle_value[1];  /**< Handle-Value(s) list, variable length. */
-} ble_gattc_evt_char_val_by_uuid_read_rsp_t;
-
-/**@brief Event structure for BLE_GATTC_EVT_READ_RSP. */
-typedef struct
-{
-  uint16_t            handle;         /**< Attribute Handle. */
-  uint16_t            offset;         /**< Offset of the attribute data. */
-  uint16_t            len;            /**< Attribute data length. */
-  uint8_t             data[1];        /**< Attribute data, variable length. */
-} ble_gattc_evt_read_rsp_t;
-
-/**@brief Event structure for BLE_GATTC_EVT_CHAR_VALS_READ_RSP. */
-typedef struct
-{
-  uint16_t            len;            /**< Concatenated Attribute values length. */
-  uint8_t             values[1];      /**< Attribute values, variable length. */
-} ble_gattc_evt_char_vals_read_rsp_t;
-
-/**@brief Event structure for BLE_GATTC_EVT_WRITE_RSP. */
-typedef struct
-{
-  uint16_t            handle;           /**< Attribute Handle. */
-  uint8_t             write_op;         /**< Type of write operation, see @ref BLE_GATT_WRITE_OPS. */
-  uint16_t            offset;           /**< Data Offset. */
-  uint16_t            len;              /**< Data length. */
-  uint8_t             data[1];          /**< Data, variable length. */
-} ble_gattc_evt_write_rsp_t;
-
-/**@brief Event structure for BLE_GATTC_EVT_HVX. */
-typedef struct
-{
-  uint16_t            handle;         /**< Handle to which the HVx operation applies. */
-  uint8_t             type;           /**< Indication or Notification, see @ref BLE_GATT_HVX_TYPES. */
-  uint16_t            len;            /**< Attribute data length. */
-  uint8_t             data[1];        /**< Attribute data, variable length. */
-} ble_gattc_evt_hvx_t;
-
-/**@brief Event structure for BLE_GATTC_EVT_TIMEOUT. */
-typedef struct
-{
-  uint8_t          src;                       /**< Timeout source, see @ref BLE_GATT_TIMEOUT_SOURCES. */
-} ble_gattc_evt_timeout_t;
-
-/**@brief GATTC event type. */
-typedef struct
-{
-  uint16_t            conn_handle;                /**< Connection Handle on which event occured. */
-  uint16_t            gatt_status;                /**< GATT status code for the operation, see @ref BLE_GATT_STATUS_CODES. */
-  uint16_t            error_handle;               /**< In case of error: The handle causing the error. In all other cases BLE_GATT_HANDLE_INVALID. */
-  union
-  {
-    ble_gattc_evt_prim_srvc_disc_rsp_t          prim_srvc_disc_rsp;         /**< Primary Service Discovery Response Event Parameters. */
-    ble_gattc_evt_rel_disc_rsp_t                rel_disc_rsp;               /**< Relationship Discovery Response Event Parameters. */
-    ble_gattc_evt_char_disc_rsp_t               char_disc_rsp;              /**< Characteristic Discovery Response Event Parameters. */
-    ble_gattc_evt_desc_disc_rsp_t               desc_disc_rsp;              /**< Descriptor Discovery Response Event Parameters. */
-    ble_gattc_evt_char_val_by_uuid_read_rsp_t   char_val_by_uuid_read_rsp;  /**< Characteristic Value Read by UUID Response Event Parameters. */
-    ble_gattc_evt_read_rsp_t                    read_rsp;                   /**< Read Response Event Parameters. */
-    ble_gattc_evt_char_vals_read_rsp_t          char_vals_read_rsp;         /**< Characteristic Values Read Response Event Parameters. */
-    ble_gattc_evt_write_rsp_t                   write_rsp;                  /**< Write Response Event Parameters. */
-    ble_gattc_evt_hvx_t                         hvx;                        /**< Handle Value Notification/Indication Event Parameters. */
-    ble_gattc_evt_timeout_t                     timeout;                    /**< Timeout Event Parameters. */
-  } params;                                                                 /**< Event Parameters. @note Only valid if @ref gatt_status == BLE_GATT_STATUS_SUCCESS. */
-} ble_gattc_evt_t;
-
-
-/**@brief Initiate or continue a GATT Primary Service Discovery procedure.
- *
- * @details This function initiates a Primary Service discovery, starting from the supplied handle. 
- *          If the last service has not been reached, this must be called again with an updated start handle value to continue the search.
- *
- * @note If any of the discovered services have 128-bit UUIDs which are not present in the table provided to ble_vs_uuids_assign, a UUID structure with
- *       type BLE_UUID_TYPE_UNKNOWN will be received in the corresponding event.
- *
- * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
- * @param[in] start_handle Handle to start searching from.
- * @param[in] p_srvc_uuid Pointer to the service UUID to be found. If it is NULL, all primary services will be returned.
- *
- * @return @ref NRF_SUCCESS Successfully started or resumed the Primary Service Discovery procedure.
- * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
- * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
- * @return @ref NRF_ERROR_BUSY Client procedure already in progress.
- */
-SVCALL(SD_BLE_GATTC_PRIMARY_SERVICES_DISCOVER, uint32_t, sd_ble_gattc_primary_services_discover(uint16_t conn_handle, uint16_t start_handle, ble_uuid_t const * const p_srvc_uuid));
-
-
-/**@brief Initiate or continue a GATT Relationship Discovery procedure.
- *
- * @details This function initiates the Find Included Services sub-procedure. If the last included service has not been reached,
- *          this must be called again with an updated handle range to continue the search.
- *
- * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
- * @param[in] p_handle_range A pointer to the range of handles of the Service to perform this procedure on.
- *
- * @return @ref NRF_SUCCESS Successfully started or resumed the Relationship Discovery procedure.
- * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
- * @return @ref NRF_ERROR_BUSY Client procedure already in progress.
- */
-SVCALL(SD_BLE_GATTC_RELATIONSHIPS_DISCOVER, uint32_t, sd_ble_gattc_relationships_discover(uint16_t conn_handle, ble_gattc_handle_range_t const * const p_handle_range));
-
-
-/**@brief Initiate or continue a GATT Characteristic Discovery procedure.
- *
- * @details This function initiates a Characteristic discovery procedure. If the last Characteristic has not been reached,
- *          this must be called again with an updated handle range to continue the discovery.
- *
- * @note If any of the discovered characteristics have 128-bit UUIDs which are not present in the table provided to ble_vs_uuids_assign, a UUID structure with
- *       type BLE_UUID_TYPE_UNKNOWN will be received in the corresponding event.
- *
- * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
- * @param[in] p_handle_range A pointer to the range of handles of the Service to perform this procedure on.
- *
- * @return @ref NRF_SUCCESS Successfully started or resumed the Characteristic Discovery procedure.
- * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- * @return @ref NRF_ERROR_BUSY Client procedure already in progress.
- */
-SVCALL(SD_BLE_GATTC_CHARACTERISTICS_DISCOVER, uint32_t, sd_ble_gattc_characteristics_discover(uint16_t conn_handle, ble_gattc_handle_range_t const * const p_handle_range));
-
-
-/**@brief Initiate or continue a GATT Characteristic Descriptor Discovery procedure.
- *
- * @details This function initiates the Characteristic Descriptor discovery procedure. If the last Descriptor has not been reached,
- *          this must be called again with an updated handle range to continue the discovery.
- *
- * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
- * @param[in] p_handle_range A pointer to the range of handles of the Characteristic to perform this procedure on.
- *
- * @return @ref NRF_SUCCESS Successfully started or resumed the Descriptor Discovery procedure.
- * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- * @return @ref NRF_ERROR_BUSY Client procedure already in progress.
- */
-SVCALL(SD_BLE_GATTC_DESCRIPTORS_DISCOVER, uint32_t, sd_ble_gattc_descriptors_discover(uint16_t conn_handle, ble_gattc_handle_range_t const * const p_handle_range));
-
-
-/**@brief Initiate or continue a GATT Read using Characteristic UUID procedure.
- *
- * @details This function initiates the Read using Characteristic UUID procedure. If the last Characteristic has not been reached,
- *          this must be called again with an updated handle range to continue the discovery.
- *
- * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
- * @param[in] p_uuid Pointer to a Characteristic value UUID to read.
- * @param[in] p_handle_range A pointer to the range of handles to perform this procedure on.
- *
- * @return @ref NRF_SUCCESS Successfully started or resumed the Read using Characteristic UUID procedure.
- * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- * @return @ref NRF_ERROR_BUSY Client procedure already in progress.
- */
-SVCALL(SD_BLE_GATTC_CHAR_VALUE_BY_UUID_READ, uint32_t, sd_ble_gattc_char_value_by_uuid_read(uint16_t conn_handle, ble_uuid_t const * const p_uuid, ble_gattc_handle_range_t const * const p_handle_range));
-
-
-/**@brief Initiate or continue a GATT Read (Long) Characteristic or Descriptor procedure.
- *
- * @details This function initiates a GATT Read (Long) Characteristic or Descriptor procedure. If the Characteristic or Descriptor
- *          to be read is longer than GATT_MTU - 1, this function must be called multiple times with appropriate offset to read the 
- *          complete value.
- *
- * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
- * @param[in] handle The handle of the attribute to be read.
- * @param[in] offset Offset into the attribute value to be read.
- *
- * @return @ref NRF_SUCCESS Successfully started or resumed the Read (Long) procedure.
- * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- * @return @ref NRF_ERROR_BUSY Client procedure already in progress.
- */
-SVCALL(SD_BLE_GATTC_READ, uint32_t, sd_ble_gattc_read(uint16_t conn_handle, uint16_t handle, uint16_t offset));
-
-
-/**@brief Initiate a GATT Read Multiple Characteristic Values procedure.
- *
- * @details This function initiates a GATT Read Multiple Characteristic Values procedure. 
- *
- * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
- * @param[in] p_handles A pointer to the handle(s) of the attribute(s) to be read.
- * @param[in] handle_count The number of handles in p_handles.
- *
- * @return @ref NRF_SUCCESS Successfully started the Read Multiple Characteristic Values procedure.
- * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- * @return @ref NRF_ERROR_BUSY Client procedure already in progress.
- */
-SVCALL(SD_BLE_GATTC_CHAR_VALUES_READ, uint32_t, sd_ble_gattc_char_values_read(uint16_t conn_handle, uint16_t const * const p_handles, uint16_t handle_count));
-
-
-/**@brief Perform a Write (Characteristic Value or Descriptor, with or without response, signed or not, long or reliable) procedure.
- *
- * @details This function can perform all write procedures described in GATT. 
- *
- * @note    It is important to note that a write without response will <b>consume an application buffer</b>, and will therefore 
- *          generate a @ref BLE_EVT_TX_COMPLETE event when the packet has been transmitted. A write on the other hand will use the 
- *          standard client internal buffer and thus will only generate a @ref BLE_GATTC_EVT_WRITE_RSP event as soon as the write response 
- *          has been received from the peer. Please see the documentation of @ref sd_ble_tx_buffer_count_get for more details.
- *
- * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
- * @param[in] p_write_params A pointer to a write parameters structure.
- *
- * @return @ref NRF_SUCCESS Successfully started the Write procedure.
- * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
- * @return @ref NRF_ERROR_DATA_SIZE Invalid data size(s) supplied.
- * @return @ref NRF_ERROR_BUSY Procedure already in progress.
- * @return @ref BLE_ERROR_NO_TX_BUFFERS There are no available buffers left.
- */
-SVCALL(SD_BLE_GATTC_WRITE, uint32_t, sd_ble_gattc_write(uint16_t conn_handle, ble_gattc_write_params_t const * const p_write_params));
-
-
-/**@brief Send a Handle Value Confirmation to the GATT Server.
- *
- * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
- * @param[in] handle The handle of the attribute in the indication.
- *
- * @return @ref NRF_SUCCESS Successfully queued the Handle Value Confirmation for transmission.
- * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
- * @return @ref NRF_ERROR_INVALID_STATE No Indication pending to be confirmed.
- * @return @ref BLE_ERROR_INVALID_ATTR_HANDLE Invalid attribute handle.
- * @return @ref BLE_ERROR_NO_TX_BUFFERS There are no available buffers left.
- */
-SVCALL(SD_BLE_GATTC_HV_CONFIRM, uint32_t, sd_ble_gattc_hv_confirm(uint16_t conn_handle, uint16_t handle));
-
-
-#endif /* BLE_GATTC_H__ */
-
-/**
-  @}
-  @}
-*/
--- a/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/ble_gatts.h	Tue Mar 18 11:00:08 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,547 +0,0 @@
-/* Copyright (c) 2011 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is confidential property of Nordic Semiconductor. The use,
- * copying, transfer or disclosure of such information is prohibited except by express written
- * agreement with Nordic Semiconductor.
- *
- */
-/**
-  @addtogroup BLE_GATTS Generic Attribute Profile (GATT) Server
-  @{
-  @brief  Definitions and prototypes for the GATTS interface.
- */
-
-#ifndef BLE_GATTS_H__
-#define BLE_GATTS_H__
-
-#include "ble_types.h"
-#include "ble_ranges.h"
-#include "ble_l2cap.h"
-#include "ble_gap.h"
-#include "ble_gatt.h"
-#include "nrf_svc.h"
-
-
-/**
- * @brief GATTS API SVC numbers.
- */
-enum BLE_GATTS_SVCS
-{
-  SD_BLE_GATTS_SERVICE_ADD = BLE_GATTS_SVC_BASE, /**< Add a service. */
-  SD_BLE_GATTS_INCLUDE_ADD,                      /**< Add an included service. */
-  SD_BLE_GATTS_CHARACTERISTIC_ADD,               /**< Add a characteristic. */
-  SD_BLE_GATTS_DESCRIPTOR_ADD,                   /**< Add a generic attribute. */
-  SD_BLE_GATTS_VALUE_SET,                        /**< Set an attribute value. */
-  SD_BLE_GATTS_VALUE_GET,                        /**< Get an attribute value. */
-  SD_BLE_GATTS_HVX,                              /**< Handle Value Notification or Indication. */
-  SD_BLE_GATTS_SERVICE_CHANGED,                  /**< Perform a Service Changed Indication to one or more peers. */
-  SD_BLE_GATTS_RW_AUTHORIZE_REPLY,               /**< Reply to an authorization request for a read or write operation on one or more attributes. */ 
-  SD_BLE_GATTS_SYS_ATTR_SET,                     /**< Set the persistent system attributes for a connection. */  
-  SD_BLE_GATTS_SYS_ATTR_GET,                     /**< Get updated persistent system attributes after terminating a connection. */
-};
-
-
-/** @addtogroup BLE_GATTS_DEFINES Defines
- * @{ */
-
-/** @brief Only the default MTU size of 23 is currently supported. */
-#define GATT_RX_MTU 23
-
-/** @defgroup BLE_ERRORS_GATTS SVC return values specific to GATTS
- * @{ */
-#define BLE_ERROR_GATTS_INVALID_ATTR_TYPE   (NRF_GATTS_ERR_BASE + 0x000) /**< Invalid attribute type. */
-#define BLE_ERROR_GATTS_SYS_ATTR_MISSING    (NRF_GATTS_ERR_BASE + 0x001) /**< System Attributes missing. */
-/** @} */
-
-/** @defgroup BLE_GATTS_ATTR_LENS_MAX Maximum attribute lengths
- * @{ */
-#define BLE_GATTS_FIX_ATTR_LEN_MAX (510)  /**< Maximum length for fixed length Attribute Values. */
-#define BLE_GATTS_VAR_ATTR_LEN_MAX (512)  /**< Maximum length for variable length Attribute Values. */ 
-/** @} */
-
-/** @defgroup BLE_GATTS_SRVC_TYPES GATT Server Service Types
- * @{ */
-#define BLE_GATTS_SRVC_TYPE_INVALID          0x00  /**< Invalid Service Type. */
-#define BLE_GATTS_SRVC_TYPE_PRIMARY          0x01  /**< Primary Service. */
-#define BLE_GATTS_SRVC_TYPE_SECONDARY        0x02  /**< Secondary Type. */
-/** @} */
-
-
-/** @defgroup BLE_GATTS_ATTR_TYPES GATT Server Attribute Types
- * @{ */
-#define BLE_GATTS_ATTR_TYPE_INVALID         0x00  /**< Invalid Attribute Type. */
-#define BLE_GATTS_ATTR_TYPE_PRIM_SRVC_DECL  0x01  /**< Primary Service Declaration. */
-#define BLE_GATTS_ATTR_TYPE_SEC_SRVC_DECL   0x02  /**< Secondary Service Declaration. */
-#define BLE_GATTS_ATTR_TYPE_INC_DECL        0x03  /**< Include Declaration. */
-#define BLE_GATTS_ATTR_TYPE_CHAR_DECL       0x04  /**< Characteristic Declaration. */
-#define BLE_GATTS_ATTR_TYPE_CHAR_VAL        0x05  /**< Characteristic Value. */
-#define BLE_GATTS_ATTR_TYPE_DESC            0x06  /**< Descriptor. */
-#define BLE_GATTS_ATTR_TYPE_OTHER           0x07  /**< Other, non-GATT specific type. */
-/** @} */
-
-
-/** @defgroup BLE_GATTS_OPS GATT Server Operations
- * @{ */
-#define BLE_GATTS_OP_INVALID                0x00  /**< Invalid Operation. */
-#define BLE_GATTS_OP_WRITE_REQ              0x01  /**< Write Request. */
-#define BLE_GATTS_OP_WRITE_CMD              0x02  /**< Write Command. */
-#define BLE_GATTS_OP_SIGN_WRITE_CMD         0x03  /**< Signed Write Command. */
-#define BLE_GATTS_OP_PREP_WRITE_REQ         0x04  /**< Prepare Write Request. */
-#define BLE_GATTS_OP_EXEC_WRITE_REQ_CANCEL  0x05  /**< Execute Write Request: Cancel all prepared writes. */
-#define BLE_GATTS_OP_EXEC_WRITE_REQ_NOW     0x06  /**< Execute Write Request: Immediately execute all prepared writes. */
-/** @} */
-
-/** @defgroup BLE_GATTS_VLOCS GATT Value Locations
- * @{ */
-#define BLE_GATTS_VLOC_INVALID       0x00  /**< Invalid Location. */
-#define BLE_GATTS_VLOC_STACK         0x01  /**< Attribute Value is located in stack memory, no user memory is required. */
-#define BLE_GATTS_VLOC_USER          0x02  /**< Attribute Value is located in user memory. This requires the user to maintain a valid buffer through the lifetime of the attribute, since the stack
-                                                will read and write directly to the memory using the pointer provided in the APIs. There are no alignment requirements for the buffer. */
-/** @} */
-
-/** @defgroup BLE_GATTS_AUTHORIZE_TYPES GATT Server Authorization Types
- * @{ */
-#define BLE_GATTS_AUTHORIZE_TYPE_INVALID    0x00  /**< Invalid Type. */
-#define BLE_GATTS_AUTHORIZE_TYPE_READ       0x01  /**< Authorize a Read Operation. */
-#define BLE_GATTS_AUTHORIZE_TYPE_WRITE      0x02  /**< Authorize a Write Request Operation. */
-/** @} */
-
-
-/** @} */
-
-/**@brief Attribute metadata. */
-typedef struct
-{
-  ble_gap_conn_sec_mode_t read_perm;       /**< Read permissions. */
-  ble_gap_conn_sec_mode_t write_perm;      /**< Write permissions. */
-  uint8_t                 vlen       :1;   /**< Variable length attribute. */
-  uint8_t                 vloc       :2;   /**< Value location, see @ref BLE_GATTS_VLOCS.*/
-  uint8_t                 rd_auth    :1;   /**< Read Authorization and value will be requested from the application on every read operation. */ 
-  uint8_t                 wr_auth    :1;   /**< Write Authorization will be requested from the application on every Write Request operation (but not Write Command). */
-} ble_gatts_attr_md_t;
-
-
-/**@brief GATT Attribute. */
-typedef struct
-{
-  ble_uuid_t*          p_uuid;          /**< Pointer to the attribute UUID. */
-  ble_gatts_attr_md_t* p_attr_md;       /**< Pointer to the attribute metadata structure. */
-  uint16_t             init_len;        /**< Initial attribute value length in bytes. */
-  uint16_t             init_offs;       /**< Initial attribute value offset in bytes. If different from zero, the first init_offs bytes of the attribute value will be left uninitialized. */
-  uint16_t             max_len;         /**< Maximum attribute value length in bytes, see @ref BLE_GATTS_ATTR_LENS_MAX for maximum values. */
-  uint8_t*             p_value;         /**< Pointer to the attribute data. Please note that if the @ref BLE_GATTS_VLOC_USER value location is selected in the attribute metadata, this will have to point to a buffer
-                                             that remains valid through the lifetime of the attribute. This excludes usage of automatic variables that may go out of scope or any other temporary location. 
-                                             The stack may access that memory directly without the application's knowledge. */
-} ble_gatts_attr_t;
-
-
-/**@brief GATT Attribute Context. */
-typedef struct
-{
-  ble_uuid_t           srvc_uuid;       /**< Service UUID. */
-  ble_uuid_t           char_uuid;       /**< Characteristic UUID if applicable (BLE_UUID_TYPE_UNKNOWN if N/A). */
-  ble_uuid_t           desc_uuid;       /**< Descriptor UUID if applicable (BLE_UUID_TYPE_UNKNOWN if N/A). */
-  uint16_t             srvc_handle;     /**< Service Handle. */
-  uint16_t             value_handle;    /**< Characteristic Handle if applicable (BLE_GATT_HANDLE_INVALID if N/A). */
-  uint8_t              type;            /**< Attribute Type, see @ref BLE_GATTS_ATTR_TYPES. */
-} ble_gatts_attr_context_t;
-
-
-/**@brief GATT Characteristic Presentation Format. */
-typedef struct
-{
-  uint8_t          format;      /**< Format of the value, see @ref BLE_GATT_CPF_FORMATS. */
-  int8_t           exponent;    /**< Exponent for integer data types. */
-  uint16_t         unit;        /**< UUID from Bluetooth Assigned Numbers. */
-  uint8_t          name_space;  /**< Namespace from Bluetooth Assigned Numbers, see @ref BLE_GATT_CPF_NAMESPACES. */
-  uint16_t         desc;        /**< Namespace description from Bluetooth Assigned Numbers, see @ref BLE_GATT_CPF_NAMESPACES. */
-} ble_gatts_char_pf_t;
-
-
-/**@brief GATT Characteristic metadata. */
-typedef struct
-{
-  ble_gatt_char_props_t       char_props;               /**< Characteristic Properties. */
-  ble_gatt_char_ext_props_t   char_ext_props;           /**< Characteristic Extended Properties. */
-  uint8_t*                    p_char_user_desc;         /**< Pointer to a UTF-8, NULL if the descriptor is not required. */
-  uint16_t                    char_user_desc_max_size;  /**< The maximum size in bytes of the user description descriptor. */
-  uint16_t                    char_user_desc_size;      /**< The size of the user description, must be smaller or equal to char_user_desc_max_size. */ 
-  ble_gatts_char_pf_t*        p_char_pf;                /**< Pointer to a presentation format structure or NULL if the descriptor is not required. */
-  ble_gatts_attr_md_t*        p_user_desc_md;           /**< Attribute metadata for the User Description descriptor, or NULL for default values. */
-  ble_gatts_attr_md_t*        p_cccd_md;                /**< Attribute metadata for the Client Characteristic Configuration Descriptor, or NULL for default values. */
-  ble_gatts_attr_md_t*        p_sccd_md;                /**< Attribute metadata for the Server Characteristic Configuration Descriptor, or NULL for default values. */
-} ble_gatts_char_md_t;
-
-
-/**@brief GATT Characteristic Definition Handles. */
-typedef struct
-{
-  uint16_t          value_handle;       /**< Handle to the characteristic value. */
-  uint16_t          user_desc_handle;   /**< Handle to the User Description descriptor, or BLE_GATT_HANDLE_INVALID if not present. */
-  uint16_t          cccd_handle;        /**< Handle to the Client Characteristic Configuration Descriptor, or BLE_GATT_HANDLE_INVALID if not present. */
-  uint16_t          sccd_handle;        /**< Handle to the Server Characteristic Configuration Descriptor, or BLE_GATT_HANDLE_INVALID if not present. */
-} ble_gatts_char_handles_t;
-
-
-/**@brief GATT HVx parameters. */
-typedef struct
-{
-  uint16_t          handle;             /**< Characteristic Value Handle. */
-  uint8_t           type;               /**< Indication or Notification, see @ref BLE_GATT_HVX_TYPES. */
-  uint16_t          offset;             /**< Offset within the attribute value. */
-  uint16_t*         p_len;              /**< Length in bytes to be written, length in bytes written after successful return. */
-  uint8_t*          p_data;             /**< Actual data content, use NULL to use the current attribute value. */
-} ble_gatts_hvx_params_t;
-
-/**@brief GATT Read Authorization parameters. */
-typedef struct
-{
-  uint16_t          gatt_status;        /**< GATT status code for the operation, see @ref BLE_GATT_STATUS_CODES. */
-  uint8_t           update : 1;         /**< If set, data supplied in p_data will be used in the ATT response. */
-  uint16_t          offset;             /**< Offset of the attribute value being updated. */
-  uint16_t          len;                /**< Length in bytes of the value in p_data pointer, see @ref BLE_GATTS_ATTR_LENS_MAX. */
-  uint8_t*          p_data;             /**< Pointer to new value used to update the attribute value. */
-} ble_gatts_read_authorize_params_t;
-
-/**@brief GATT Write Authorisation parameters. */
-typedef struct
-{
-  uint16_t          gatt_status;        /**< GATT status code for the operation, see @ref BLE_GATT_STATUS_CODES. */
-} ble_gatts_write_authorize_params_t;
-
-/**@brief GATT Read or Write Authorize Reply parameters. */
-typedef struct
-{
-  uint8_t                               type;   /**< Type of authorize operation, see @ref BLE_GATTS_AUTHORIZE_TYPES. */
-  union {
-    ble_gatts_read_authorize_params_t   read;   /**< Read authorization parameters. */
-    ble_gatts_write_authorize_params_t  write;  /**< Write authorization parameters. */
-  } params;
-} ble_gatts_rw_authorize_reply_params_t;
-
-
-/**
- * @brief GATT Server Event IDs.
- */
-enum BLE_GATTS_EVTS
-{
-  BLE_GATTS_EVT_WRITE = BLE_GATTS_EVT_BASE,       /**< Write operation performed. */
-  BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST,             /**< Read/Write Authorization request. */
-  BLE_GATTS_EVT_SYS_ATTR_MISSING,                 /**< A persistent system attribute access is pending, awaiting a sd_ble_gatts_sys_attr_set(). */
-  BLE_GATTS_EVT_HVC,                              /**< Handle Value Confirmation. */
-  BLE_GATTS_EVT_SC_CONFIRM,                       /**< Service Changed Confirmation. */
-  BLE_GATTS_EVT_TIMEOUT                           /**< Timeout. */
-};
-
-
-/**@brief Event structure for BLE_GATTS_EVT_WRITE. */
-typedef struct
-{
-  uint16_t                    handle;             /**< Attribute Handle. */
-  uint8_t                     op;                 /**< Type of write operation, see @ref BLE_GATTS_OPS. */
-  ble_gatts_attr_context_t    context;            /**< Attribute Context. */
-  uint16_t                    offset;             /**< Offset for the write operation. */
-  uint16_t                    len;                /**< Length of the incoming data. */
-  uint8_t                     data[1];            /**< Incoming data, variable length. */
-} ble_gatts_evt_write_t;
-
-/**@brief Event structure for authorize read request. */
-typedef struct
-{
-  uint16_t                    handle;             /**< Attribute Handle. */
-  ble_gatts_attr_context_t    context;            /**< Attribute Context. */
-  uint16_t                    offset;             /**< Offset for the read operation. */
-} ble_gatts_evt_read_t;
-
-/**@brief Event structure for BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST. */
-typedef struct
-{
-  uint8_t                     type;             /**< Type of authorize operation, see @ref BLE_GATTS_AUTHORIZE_TYPES. */
-  union {
-    ble_gatts_evt_read_t      read;             /**< Attribute Read Parameters. */
-    ble_gatts_evt_write_t     write;            /**< Attribute Write Parameters. */
-  } request;
-} ble_gatts_evt_rw_authorize_request_t;
-
-/**@brief Event structure for BLE_GATTS_EVT_SYS_ATTR_MISSING. */
-typedef struct
-{
-  uint8_t hint;
-} ble_gatts_evt_sys_attr_missing_t;
-
-
-/**@brief Event structure for BLE_GATTS_EVT_HVC. */
-typedef struct
-{
-  uint16_t          handle;                       /**< Attribute Handle. */
-} ble_gatts_evt_hvc_t;
-
-/**@brief Event structure for BLE_GATTS_EVT_TIMEOUT. */
-typedef struct
-{
-  uint8_t          src;                       /**< Timeout source, see @ref BLE_GATT_TIMEOUT_SOURCES. */
-} ble_gatts_evt_timeout_t;
-
-
-/**@brief GATT Server event callback event structure. */
-typedef struct
-{
-  uint16_t conn_handle;                                       /**< Connection Handle on which event occurred. */
-  union
-  {
-    ble_gatts_evt_write_t                 write;              /**< Write Event Parameters. */
-    ble_gatts_evt_rw_authorize_request_t  authorize_request;  /**< Read or Write Authorize Request Parameters. */
-    ble_gatts_evt_sys_attr_missing_t      sys_attr_missing;   /**< System attributes missing. */
-    ble_gatts_evt_hvc_t                   hvc;                /**< Handle Value Confirmation Event Parameters. */
-    ble_gatts_evt_timeout_t               timeout;            /**< Timeout Event. */
-  } params;
-} ble_gatts_evt_t;
-
-
-/**@brief Add a service declaration to the local server ATT table.
- *
- * @param[in] type      Toggles between primary and secondary services, see @ref BLE_GATTS_SRVC_TYPES.
- * @param[in] p_uuid    Pointer to service UUID.
- * @param[out] p_handle Pointer to a 16-bit word where the assigned handle will be stored.
- *
- * @note Secondary Services are only relevant in the context of the entity that references them, it is therefore forbidden to
- *       add a secondary service declaration that is not referenced by another service later in the ATT table.
- *
- * @return @ref NRF_SUCCESS Successfully added a service declaration.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, Vendor Specific UUIDs need to be present in the table.
- * @return @ref NRF_ERROR_FORBIDDEN Forbidden value supplied, certain UUIDs are reserved for the stack.
- * @return @ref NRF_ERROR_NO_MEM Not enough memory to complete operation.
- */
-SVCALL(SD_BLE_GATTS_SERVICE_ADD, uint32_t, sd_ble_gatts_service_add(uint8_t type, ble_uuid_t const*const p_uuid, uint16_t *const p_handle));
-
-
-/**@brief Add an include declaration to the local server ATT table.
- *
- * @note It is currently only possible to add an include declaration to the last added service (i.e. only sequential addition is supported at this time). 
- *
- * @note The included service must already be present in the ATT table prior to this call.
- *
- * @param[in] service_handle    Handle of the service where the included service is to be placed, if BLE_GATT_HANDLE_INVALID is used, it will be placed sequentially.
- * @param[in] inc_srvc_handle   Handle of the included service.
- * @param[out] p_include_handle Pointer to a 16-bit word where the assigned handle will be stored.
- *
- * @return @ref NRF_SUCCESS Successfully added an include declaration.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, handle values need to match previously added services.
- * @return @ref NRF_ERROR_INVALID_STATE Invalid state to perform operation.
- * @return @ref NRF_ERROR_FORBIDDEN Forbidden value supplied, self inclusions are not allowed.
- * @return @ref NRF_ERROR_NO_MEM Not enough memory to complete operation.
- * @return @ref NRF_ERROR_NOT_FOUND Attribute not found.
- */
-SVCALL(SD_BLE_GATTS_INCLUDE_ADD, uint32_t, sd_ble_gatts_include_add(uint16_t service_handle, uint16_t inc_srvc_handle, uint16_t *const p_include_handle));
-
-
-/**@brief Add a characteristic declaration, a characteristic value declaration and optional characteristic descriptor declarations to the local server ATT table.
- *
- * @note It is currently only possible to add a characteristic to the last added service (i.e. only sequential addition is supported at this time). 
- *
- * @note Several restrictions apply to the parameters, such as matching permissions between the user description descriptor and the writeable auxiliaries bits,
- *       readable (no security) and writeable (selectable) CCCDs and SCCDs and valid presentation format values.
- *
- * @note If no metadata is provided for the optional descriptors, their permissions will be derived from the characteristic permissions.
- *
- * @param[in] service_handle    Handle of the service where the characteristic is to be placed, if BLE_GATT_HANDLE_INVALID is used, it will be placed sequentially.
- * @param[in] p_char_md         Characteristic metadata.
- * @param[in] p_attr_char_value Pointer to the attribute structure corresponding to the characteristic value.
- * @param[out] p_handles        Pointer to the structure where the assigned handles will be stored.
- *
- * @return @ref NRF_SUCCESS Successfully added a characteristic.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, service handle, Vendor Specific UUIDs, lengths, and permissions need to adhere to the constraints.
- * @return @ref NRF_ERROR_INVALID_STATE Invalid state to perform operation, a service context is required.
- * @return @ref NRF_ERROR_FORBIDDEN Forbidden value supplied, certain UUIDs are reserved for the stack.
- * @return @ref NRF_ERROR_NO_MEM Not enough memory to complete operation.
- * @return @ref NRF_ERROR_DATA_SIZE Invalid data size(s) supplied, attribute lengths are restricted by @ref BLE_GATTS_ATTR_LENS_MAX.
- */
-SVCALL(SD_BLE_GATTS_CHARACTERISTIC_ADD, uint32_t, sd_ble_gatts_characteristic_add(uint16_t service_handle, ble_gatts_char_md_t const*const p_char_md, ble_gatts_attr_t const*const p_attr_char_value, ble_gatts_char_handles_t *const p_handles));
-
-
-/**@brief Add a descriptor to the local server ATT table.
- *
- * @note It is currently only possible to add a descriptor to the last added characteristic (i.e. only sequential addition is supported at this time). 
- *
- * @param[in] char_handle   Handle of the characteristic where the descriptor is to be placed, if BLE_GATT_HANDLE_INVALID is used, it will be placed sequentially.
- * @param[in] p_attr        Pointer to the attribute structure.
- * @param[out] p_handle     Pointer to a 16-bit word where the assigned handle will be stored.
- *
- * @return @ref NRF_SUCCESS Successfully added a descriptor.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, characteristic handle, Vendor Specific UUIDs, lengths, and permissions need to adhere to the constraints.
- * @return @ref NRF_ERROR_INVALID_STATE Invalid state to perform operation, a characteristic context is required.
- * @return @ref NRF_ERROR_FORBIDDEN Forbidden value supplied, certain UUIDs are reserved for the stack.
- * @return @ref NRF_ERROR_NO_MEM Not enough memory to complete operation.
- * @return @ref NRF_ERROR_DATA_SIZE Invalid data size(s) supplied, attribute lengths are restricted by @ref BLE_GATTS_ATTR_LENS_MAX.
- */
-SVCALL(SD_BLE_GATTS_DESCRIPTOR_ADD, uint32_t, sd_ble_gatts_descriptor_add(uint16_t char_handle, ble_gatts_attr_t const * const p_attr, uint16_t* const p_handle));
-
-/**@brief Set the value of a given attribute.
- *
- * @param[in] handle    Attribute handle.
- * @param[in] offset    Offset in bytes to write from.
- * @param[in,out] p_len Length in bytes to be written, length in bytes written after successful return.
- * @param[in] p_value   Pointer to a buffer (at least len bytes long) containing the desired attribute value.
- *
- * @return @ref NRF_SUCCESS Successfully set the value of the attribute.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
- * @return @ref NRF_ERROR_NOT_FOUND Attribute not found.
- * @return @ref NRF_ERROR_FORBIDDEN Forbidden handle supplied, certain attributes are not modifiable by the application.
- * @return @ref NRF_ERROR_DATA_SIZE Invalid data size(s) supplied, attribute lengths are restricted by @ref BLE_GATTS_ATTR_LENS_MAX.
- */
-SVCALL(SD_BLE_GATTS_VALUE_SET, uint32_t, sd_ble_gatts_value_set(uint16_t handle, uint16_t offset, uint16_t* const p_len, uint8_t const * const p_value));
-
-/**@brief Get the value of a given attribute.
- *
- * @param[in] handle     Attribute handle.
- * @param[in] offset     Offset in bytes to read from.
- * @param[in,out] p_len  Length in bytes to be read, total length of attribute value (in bytes, starting from offset) after successful return.
- * @param[in,out] p_data Pointer to a buffer (at least len bytes long) where to store the attribute value. Set to NULL to obtain the complete length of attribute value.
- *
- * @note                 If the attribute value is longer than the size of the supplied buffer,
- *                       p_len will return the total attribute value length (excluding offset),
- *                       and not the number of bytes actually returned in p_data.
- *                       The application may use this information to allocate a suitable buffer size.
- * 
- * @return @ref NRF_SUCCESS Successfully retrieved the value of the attribute.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- * @return @ref NRF_ERROR_NOT_FOUND Attribute not found.
- */
-SVCALL(SD_BLE_GATTS_VALUE_GET, uint32_t, sd_ble_gatts_value_get(uint16_t handle, uint16_t offset, uint16_t *const p_len, uint8_t* const p_data));
-
-/**@brief Notify or Indicate an attribute value.
- *
- * @details This function checks for the relevant Client Characteristic Configuration descriptor value to verify that the relevant operation
- *          (notification or indication) has been enabled by the client. It is also able to update the attribute value before issuing the PDU, so that
- *          the application can atomically perform a value update and a server initiated transaction with a single API call.
- *          If the application chooses to indicate an attribute value, a @ref BLE_GATTS_EVT_HVC will be sent up as soon as the confirmation arrives from
- *          the peer.
- *
- * @note    The local attribute value may be updated even if an outgoing packet is not sent to the peer due to an error during execution. 
- *          When receiveing the error codes @ref NRF_ERROR_INVALID_STATE, @ref NRF_ERROR_BUSY, @ref BLE_ERROR_GATTS_SYS_ATTR_MISSING and 
- *          @ref BLE_ERROR_NO_TX_BUFFERS the ATT table has been updated.
- *          The caller can check whether the value has been updated by looking at the contents of *(p_hvx_params->p_len).
- *
- * @note    It is important to note that a notification will <b>consume an application buffer</b>, and will therefore 
- *          generate a @ref BLE_EVT_TX_COMPLETE event when the packet has been transmitted. An indication on the other hand will use the 
- *          standard server internal buffer and thus will only generate a @ref BLE_GATTS_EVT_HVC event as soon as the confirmation 
- *          has been received from the peer. Please see the documentation of @ref sd_ble_tx_buffer_count_get for more details.
- *
- * @param[in] conn_handle  Connection handle.
- * @param[in] p_hvx_params Pointer to an HVx parameters structure. If the p_data member contains a non-NULL pointer the attribute value will be updated with
- *                         the contents pointed by it before sending the notification or indication.
- *
- * @return @ref NRF_SUCCESS Successfully queued a notification or indication for transmission, and optionally updated the attribute value.
- * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
- * @return @ref BLE_ERROR_INVALID_ATTR_HANDLE Invalid attribute handle(s) supplied. Only attributes added directly by the application are available to notify and indicate.
- * @return @ref BLE_ERROR_GATTS_INVALID_ATTR_TYPE Invalid attribute type(s) supplied, only characteristic values may be notified and indicated.
- * @return @ref NRF_ERROR_NOT_FOUND Attribute not found.
- * @return @ref NRF_ERROR_DATA_SIZE Invalid data size(s) supplied.
- * @return @ref NRF_ERROR_INVALID_STATE Invalid state to perform operation, notifications or indications must be enabled in the CCCD.
- * @return @ref NRF_ERROR_BUSY Procedure already in progress.
- * @return @ref BLE_ERROR_GATTS_SYS_ATTR_MISSING System attributes missing, use @ref sd_ble_gatts_sys_attr_set to set them to a known value.
- * @return @ref BLE_ERROR_NO_TX_BUFFERS There are no available buffers to send the data, applies only to notifications.
- */
-SVCALL(SD_BLE_GATTS_HVX, uint32_t, sd_ble_gatts_hvx(uint16_t conn_handle, ble_gatts_hvx_params_t const*const p_hvx_params));
-
-/**@brief Indicate the Service Changed attribute value.
- *
- * @details This call will send a Handle Value Indication to one or more peers connected to inform them that the attribute
- *          table layout has changed. As soon as the peer has confirmed the indication, a @ref BLE_GATTS_EVT_SC_CONFIRM event will
- *          be issued.
- *
- * @note    Some of the restrictions and limitations that apply to @ref sd_ble_gatts_hvx also apply here.
- *
- * @param[in] conn_handle  Connection handle.
- * @param[in] start_handle Start of affected attribute handle range.
- * @param[in] end_handle   End of affected attribute handle range.
- *
- * @return @ref NRF_SUCCESS Successfully queued the Service Changed indication for transmission.
- * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
- * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
- * @return @ref BLE_ERROR_INVALID_ATTR_HANDLE Invalid attribute handle(s) supplied, handles must be in the range populated by the application.
- * @return @ref NRF_ERROR_INVALID_STATE Invalid state to perform operation, notifications or indications must be enabled in the CCCD.
- * @return @ref NRF_ERROR_BUSY Procedure already in progress.
- * @return @ref BLE_ERROR_GATTS_SYS_ATTR_MISSING System attributes missing, use @ref sd_ble_gatts_sys_attr_set to set them to a known value.
- */
-SVCALL(SD_BLE_GATTS_SERVICE_CHANGED, uint32_t, sd_ble_gatts_service_changed(uint16_t conn_handle, uint16_t start_handle, uint16_t end_handle));
-
-/**@brief Respond to a Read/Write authorization request.
- *
- * @note This call should only be used as a response to a @ref BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST event issued to the application.
- *
- * @param[in] conn_handle                 Connection handle.
- * @param[in] p_rw_authorize_reply_params Pointer to a structure with the attribute provided by the application.
- *
- * @return @ref NRF_SUCCESS               Successfully queued a response to the peer, and in the case of a write operation, ATT table updated.
- * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
- * @return @ref NRF_ERROR_INVALID_STATE   No authorization request pending.
- * @return @ref NRF_ERROR_INVALID_PARAM   Authorization op invalid,
- *                                         or for Read Authorization reply: requested handles not replied with,
- *                                         or for Write Authorization reply: handle supplied does not match requested handle.
- */
-SVCALL(SD_BLE_GATTS_RW_AUTHORIZE_REPLY, uint32_t, sd_ble_gatts_rw_authorize_reply(uint16_t conn_handle, ble_gatts_rw_authorize_reply_params_t const*const p_rw_authorize_reply_params));
-
-
-/**@brief Update persistent system attribute information.
- *
- * @details Supply to the stack information about persistent system attributes.
- *          This call is legal in the connected state only, and is usually 
- *          made immediately after a connection is established and the bond identified.
- *          usually as a response to a BLE_GATTS_EVT_SYS_ATTR_MISSING.
- *
- *          p_sysattrs may point directly to the application's stored copy of the struct.
- *          If the pointer is NULL, the system attribute info is initialized, assuming that
- *          the application does not have any previously saved data for this bond.
- *
- * @note The state of persistent system attributes is reset upon connection and then remembered for its duration. 
- *
- * @note If this call returns with an error code different from @ref NRF_SUCCESS, the storage of persistent system attributes may have been completed only partially.
- *       This means that the state of the attribute table is undefined, and the application should either provide a new set of attributes using this same call or
- *       reset the SoftDevice to return to a known state.
- *
- * @param[in]  conn_handle        Connection handle.
- * @param[in]  p_sys_attr_data    Pointer to a saved copy of system attributes supplied to the stack, or NULL.
- * @param[in]  len                Size of data pointed by p_sys_attr_data, in octets. 
- *
- * @return @ref NRF_SUCCESS Successfully set the system attribute information.
- * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
- * @return @ref NRF_ERROR_INVALID_DATA Invalid data supplied, the data should be exactly the same as retrieved with @ref sd_ble_gatts_sys_attr_get.
- * @return @ref NRF_ERROR_NO_MEM Not enough memory to complete operation.
- */ 
-SVCALL(SD_BLE_GATTS_SYS_ATTR_SET, uint32_t, sd_ble_gatts_sys_attr_set(uint16_t conn_handle, uint8_t const*const p_sys_attr_data, uint16_t len)); 
-
- 
-/**@brief Retrieve persistent system attribute information from the stack.
- *
- * @details This call is used to retrieve information about values to be stored perisistently by the application
- *          after a connection has been terminated. When a new connection is made to the same bond, the values
- *          should be restored using @ref sd_ble_gatts_sys_attr_set.
- *          The data should be read before any new advertising is started, or any new connection established. The connection handle for
- *          the previous now defunct connection will remain valid until a new one is created to allow this API call to refer to it.
- *
- * @param[in]     conn_handle       Connection handle of the recently terminated connection.
- * @param[in]     p_sys_attr_data   Pointer to a buffer where updated information about system attributes will be filled in. NULL can be provided to 
- *                                  obtain the length of the data
- * @param[in,out] p_len             Size of application buffer if p_sys_attr_data is not NULL. Unconditially updated to actual length of system attribute data.
- *
- * @return @ref NRF_SUCCESS Successfully retrieved the system attribute information.
- * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- * @return @ref NRF_ERROR_DATA_SIZE The system attribute information did not fit into the provided buffer.
- */ 
-SVCALL(SD_BLE_GATTS_SYS_ATTR_GET, uint32_t, sd_ble_gatts_sys_attr_get(uint16_t conn_handle, uint8_t * const p_sys_attr_data, uint16_t* const p_len)); 
-
-
-#endif // BLE_GATTS_H__
-
-/**
-  @}
-*/
--- a/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/ble_hci.h	Tue Mar 18 11:00:08 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,96 +0,0 @@
-/*
-  Copyright (c) 2012 Nordic Semiconductor. All Rights Reserved.
-
-  The information contained herein is confidential property of Nordic Semiconductor. The use,
-  copying, transfer or disclosure of such information is prohibited except by express written
-  agreement with Nordic Semiconductor.
- */
-/**
-  @addtogroup BLE_COMMON 
-  @{
-*/
-
-
-#ifndef BLE_HCI_H__
-#define BLE_HCI_H__ 
-
-/** @defgroup BLE_HCI_STATUS_CODES Bluetooth status codes
- * @{ */
-
-#define BLE_HCI_STATUS_CODE_SUCCESS                        0x00
-#define BLE_HCI_STATUS_CODE_UNKNOWN_BTLE_COMMAND           0x01
-#define BLE_HCI_STATUS_CODE_UNKNOWN_CONNECTION_IDENTIFIER  0x02 
-/*0x03 Hardware Failure
-0x04 Page Timeout
-*/
-#define BLE_HCI_AUTHENTICATION_FAILURE                     0x05
-#define BLE_HCI_STATUS_CODE_PIN_OR_KEY_MISSING             0x06
-#define BLE_HCI_MEMORY_CAPACITY_EXCEEDED                   0x07
-#define BLE_HCI_CONNECTION_TIMEOUT                         0x08
-/*0x09 Connection Limit Exceeded
-0x0A Synchronous Connection Limit To A Device Exceeded
-0x0B ACL Connection Already Exists*/
-#define BLE_HCI_STATUS_CODE_COMMAND_DISALLOWED             0x0C
-/*0x0D Connection Rejected due to Limited Resources
-0x0E Connection Rejected Due To Security Reasons
-0x0F Connection Rejected due to Unacceptable BD_ADDR
-0x10 Connection Accept Timeout Exceeded
-0x11 Unsupported Feature or Parameter Value*/
-#define BLE_HCI_STATUS_CODE_INVALID_BTLE_COMMAND_PARAMETERS 0x12
-#define BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION           0x13
-#define BLE_HCI_REMOTE_DEV_TERMINATION_DUE_TO_LOW_RESOURCES 0x14
-#define BLE_HCI_REMOTE_DEV_TERMINATION_DUE_TO_POWER_OFF     0x15
-#define BLE_HCI_LOCAL_HOST_TERMINATED_CONNECTION            0x16
-/*
-0x17 Repeated Attempts
-0x18 Pairing Not Allowed
-0x19 Unknown LMP PDU
-*/
-#define BLE_HCI_UNSUPPORTED_REMOTE_FEATURE 0x1A
-/*
-0x1B SCO Offset Rejected
-0x1C SCO Interval Rejected
-0x1D SCO Air Mode Rejected*/
-#define BLE_HCI_STATUS_CODE_INVALID_LMP_PARAMETERS     0x1E
-#define BLE_HCI_STATUS_CODE_UNSPECIFIED_ERROR          0x1F
-/*0x20 Unsupported LMP Parameter Value
-0x21 Role Change Not Allowed
-*/
-#define BLE_HCI_STATUS_CODE_LMP_RESPONSE_TIMEOUT       0x22
-/*0x23 LMP Error Transaction Collision*/
-#define BLE_HCI_STATUS_CODE_LMP_PDU_NOT_ALLOWED        0x24
-/*0x25 Encryption Mode Not Acceptable
-0x26 Link Key Can Not be Changed
-0x27 Requested QoS Not Supported
-*/
-#define BLE_HCI_INSTANT_PASSED                         0x28
-#define BLE_HCI_PAIRING_WITH_UNIT_KEY_UNSUPPORTED      0x29
-#define BLE_HCI_DIFFERENT_TRANSACTION_COLLISION        0x2A
-/*
-0x2B Reserved
-0x2C QoS Unacceptable Parameter
-0x2D QoS Rejected
-0x2E Channel Classification Not Supported
-0x2F Insufficient Security
-0x30 Parameter Out Of Mandatory Range
-0x31 Reserved
-0x32 Role Switch Pending
-0x33 Reserved
-0x34 Reserved Slot Violation
-0x35 Role Switch Failed
-0x36 Extended Inquiry Response Too Large
-0x37 Secure Simple Pairing Not Supported By Host.
-0x38 Host Busy - Pairing
-0x39 Connection Rejected due to No Suitable Channel Found*/
-#define BLE_HCI_CONTROLLER_BUSY                        0x3A
-#define BLE_HCI_CONN_INTERVAL_UNACCEPTABLE             0x3B
-#define BLE_HCI_DIRECTED_ADVERTISER_TIMEOUT            0x3C
-#define BLE_HCI_CONN_TERMINATED_DUE_TO_MIC_FAILURE     0x3D
-#define BLE_HCI_CONN_FAILED_TO_BE_ESTABLISHED          0x3E
-
-/** @} */
-
-
-#endif // BLE_HCI_H__
-
-/** @} */
--- a/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/ble_l2cap.h	Tue Mar 18 11:00:08 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,135 +0,0 @@
-/* Copyright (c) 2011 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is confidential property of Nordic Semiconductor. The use,
- * copying, transfer or disclosure of such information is prohibited except by express written
- * agreement with Nordic Semiconductor.
- *
- */
-/**
-  @addtogroup BLE_L2CAP Logical Link Control and Adaptation Protocol (L2CAP)
-  @{
-  @brief Definitions and prototypes for the L2CAP interface.
- */
-
-#ifndef BLE_L2CAP_H__
-#define BLE_L2CAP_H__ 
-
-#include "ble_types.h"
-#include "ble_ranges.h"
-#include "ble_err.h"
-#include "nrf_svc.h"
-
-/**@brief L2CAP API SVC numbers. */
-enum BLE_L2CAP_SVCS 
-{
-  SD_BLE_L2CAP_CID_REGISTER = BLE_L2CAP_SVC_BASE,  /**< Register a CID. */
-  SD_BLE_L2CAP_CID_UNREGISTER,                     /**< Unregister a CID. */
-  SD_BLE_L2CAP_TX                                  /**< Transmit a packet. */
-};
-
-/**@addtogroup BLE_L2CAP_DEFINES Defines
- * @{ */
-
-/**@defgroup BLE_ERRORS_L2CAP SVC return values specific to L2CAP
- * @{ */
-#define BLE_ERROR_L2CAP_CID_IN_USE            (NRF_L2CAP_ERR_BASE + 0x000)  /**< CID already in use. */
-/** @} */
-
-/**@brief Default L2CAP MTU. */
-#define BLE_L2CAP_MTU_DEF           (23)    
-
-/**@brief Invalid Channel Identifier. */
-#define BLE_L2CAP_CID_INVALID       (0x0000) 
-
-/**@brief Dynamic Channel Identifier base. */
-#define BLE_L2CAP_CID_DYN_BASE      (0x0040) 
-
-/**@brief Maximum amount of dynamic CIDs. */
-#define BLE_L2CAP_CID_DYN_MAX       (8) 
-
-/** @} */
-
-/**@brief Packet header format for L2CAP transmission. */
-typedef struct
-{
-  uint16_t   len;                                 /**< Length of valid info in data member. */
-  uint16_t   cid;                                 /**< Channel ID on which packet is transmitted. */
-} ble_l2cap_header_t;
-
-/**@brief L2CAP Event IDs. */
-enum BLE_L2CAP_EVTS 
-{
-  BLE_L2CAP_EVT_RX  = BLE_L2CAP_EVT_BASE          /**< L2CAP packet received. */
-};
-
-
-/**@brief L2CAP Received packet event report. */
-typedef struct
-{
-  ble_l2cap_header_t header;                      /** L2CAP packet header. */
-  uint8_t    data[1];                             /**< Packet data, variable length. */
-} ble_l2cap_evt_rx_t;
-
-
-/**@brief L2CAP event callback event structure. */
-typedef struct
-{
-  uint16_t conn_handle;                           /**< Connection Handle on which event occured. */
-  union
-  {
-    ble_l2cap_evt_rx_t rx;                        /**< RX Event parameters. */
-  } params;
-} ble_l2cap_evt_t;
-
-
-/**@brief Register a CID with L2CAP.
- *
- * @details This registers a higher protocol layer with the L2CAP multiplexer, and is requried prior to all operations on the CID.
- *          
- * @param[in] cid L2CAP CID.
- *
- * @return @ref NRF_SUCCESS Successfully registered a CID with the L2CAP layer.
- * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, CID must be above @ref BLE_L2CAP_CID_DYN_BASE.
- * @return @ref BLE_ERROR_L2CAP_CID_IN_USE L2CAP CID already in use.
- * @return @ref NRF_ERROR_NO_MEM Not enough memory to complete operation.
- */
-SVCALL(SD_BLE_L2CAP_CID_REGISTER, uint32_t, sd_ble_l2cap_cid_register(uint16_t cid));
-
-/**@brief Unregister a CID with L2CAP.
- *
- * @details This unregisters a previously registerd higher protocol layer with the L2CAP multiplexer.
- *          
- * @param[in] cid L2CAP CID.
- *
- * @return @ref NRF_SUCCESS Successfully unregistered the CID.
- * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
- * @return @ref NRF_ERROR_NOT_FOUND CID not previously registered.
- */
-SVCALL(SD_BLE_L2CAP_CID_UNREGISTER, uint32_t, sd_ble_l2cap_cid_unregister(uint16_t cid));
-
-/**@brief Transmit an L2CAP packet.
- *
- * @note    It is important to note that a call to this function will <b>consume an application buffer</b>, and will therefore 
- *          generate a @ref BLE_EVT_TX_COMPLETE event when the packet has been transmitted. 
- *          Please see the documentation of @ref sd_ble_tx_buffer_count_get for more details.
- *
- * @param[in] conn_handle Connection Handle.
- * @param[in] p_header    Pointer to a packet header containing length and CID.
- * @param[in] p_data      Pointer to the data to be transmitted.
- *
- * @return @ref NRF_SUCCESS Successfully queued an L2CAP packet for transmission.
- * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
- * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, CIDs must be registered beforehand with @ref sd_ble_l2cap_cid_register.
- * @return @ref NRF_ERROR_NOT_FOUND CID not found.
- * @return @ref NRF_ERROR_NO_MEM Not enough memory to complete operation.
- * @return @ref BLE_ERROR_NO_TX_BUFFERS Not enough application buffers available.
- * @return @ref NRF_ERROR_DATA_SIZE Invalid data size(s) supplied, see @ref BLE_L2CAP_MTU_DEF.
- */
-SVCALL(SD_BLE_L2CAP_TX, uint32_t, sd_ble_l2cap_tx(uint16_t conn_handle, ble_l2cap_header_t const * const p_header, uint8_t const * const p_data));
-
-
-#endif // BLE_L2CAP_H__
-
-/**
-  @}
-*/
--- a/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/ble_ranges.h	Tue Mar 18 11:00:08 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-/*
-  Copyright (c) 2012 Nordic Semiconductor. All Rights Reserved.
-
-  The information contained herein is confidential property of Nordic Semiconductor. The use,
-  copying, transfer or disclosure of such information is prohibited except by express written
-  agreement with Nordic Semiconductor.
- */
-/**
-  @addtogroup BLE_COMMON
-  @{
-  @defgroup ble_ranges Module specific SVC and event number subranges
-  @{
-
-  @brief Definition of SVC and event number subranges for each API module.
-
-  @note
-  SVCs and event numbers are split into subranges for each API module.
-  Each module receives its entire allocated range of SVC calls, whether implemented or not,
-  but return BLE_ERROR_NOT_SUPPORTED for unimplemented or undefined calls in its range.
-
-  Note that the symbols BLE_<module>_SVC_LAST is the end of the allocated SVC range,
-  rather than the last SVC function call actually defined and implemented.
-
-  Specific SVC and event values are defined in each module's ble_<module>.h file,
-  which defines names of each individual SVC code based on the range start value.
-*/
-
-#ifndef BLE_RANGES_H__
-#define BLE_RANGES_H__
-
-#define BLE_SVC_BASE           0x60
-#define BLE_SVC_LAST           0x6B       /* Total: 12. */
-
-#define BLE_RESERVED_SVC_BASE  0x6C
-#define BLE_RESERVED_SVC_LAST  0x6F       /* Total: 4. */
-
-#define BLE_GAP_SVC_BASE       0x70
-#define BLE_GAP_SVC_LAST       0x8F       /* Total: 32. */
-
-#define BLE_GATTC_SVC_BASE     0x90
-#define BLE_GATTC_SVC_LAST     0x9F       /* Total: 16. */
-
-#define BLE_GATTS_SVC_BASE     0xA0
-#define BLE_GATTS_SVC_LAST     0xAF       /* Total: 16. */
-
-#define BLE_L2CAP_SVC_BASE     0xB0
-#define BLE_L2CAP_SVC_LAST     0xBF       /* Total: 16. */
-
-
-#define BLE_EVT_INVALID        0x00
-
-#define BLE_EVT_BASE           0x01
-#define BLE_EVT_LAST           0x0F       /* Total: 15. */
-
-#define BLE_GAP_EVT_BASE       0x10
-#define BLE_GAP_EVT_LAST       0x2F       /* Total: 32. */
-
-#define BLE_GATTC_EVT_BASE     0x30
-#define BLE_GATTC_EVT_LAST     0x4F       /* Total: 32. */
-
-#define BLE_GATTS_EVT_BASE     0x50
-#define BLE_GATTS_EVT_LAST     0x6F       /* Total: 32. */
-
-#define BLE_L2CAP_EVT_BASE     0x70
-#define BLE_L2CAP_EVT_LAST     0x8F       /* Total: 32.  */
-
-#endif /* BLE_RANGES_H__ */
-
-/**
-  @}
-  @}
-*/
--- a/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/ble_types.h	Tue Mar 18 11:00:08 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,157 +0,0 @@
-/* Copyright (c) 2011 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is confidential property of Nordic Semiconductor. The use,
- * copying, transfer or disclosure of such information is prohibited except by express written
- * agreement with Nordic Semiconductor.
- *
- */
-/**
-  @addtogroup BLE_COMMON
-  @{
-  @defgroup ble_types Common types and macro definitions
-  @{
-
-  @brief Common types and macro definitions for the S110 SoftDevice.
- */
-
-#ifndef BLE_TYPES_H__
-#define BLE_TYPES_H__
-
-#include <stdint.h>
-
-/** @addtogroup BLE_COMMON_DEFINES Defines
- * @{ */
-
-/** @defgroup BLE_CONN_HANDLES BLE Connection Handles
- * @{ */
-#define BLE_CONN_HANDLE_INVALID 0xFFFF  /**< Invalid Connection Handle. */
-#define BLE_CONN_HANDLE_ALL     0xFFFE  /**< Applies to all Connection Handles. */
-/** @} */
-
-
-/** @defgroup BLE_UUID_VALUES Assigned Values for BLE UUIDs
- * @{ */
-/* Generic UUIDs, applicable to all services */
-#define BLE_UUID_UNKNOWN                              0x0000 /**< Reserved UUID. */
-#define BLE_UUID_SERVICE_PRIMARY                      0x2800 /**< Primary Service. */
-#define BLE_UUID_SERVICE_SECONDARY                    0x2801 /**< Secondary Service. */
-#define BLE_UUID_SERVICE_INCLUDE                      0x2802 /**< Include. */
-#define BLE_UUID_CHARACTERISTIC                       0x2803 /**< Characteristic. */
-#define BLE_UUID_DESCRIPTOR_CHAR_EXT_PROP             0x2900 /**< Characteristic Extended Properties Descriptor. */
-#define BLE_UUID_DESCRIPTOR_CHAR_USER_DESC            0x2901 /**< Characteristic User Description Descriptor. */
-#define BLE_UUID_DESCRIPTOR_CLIENT_CHAR_CONFIG        0x2902 /**< Client Characteristic Configuration Descriptor. */
-#define BLE_UUID_DESCRIPTOR_SERVER_CHAR_CONFIG        0x2903 /**< Server Characteristic Configuration Descriptor. */
-#define BLE_UUID_DESCRIPTOR_CHAR_PRESENTATION_FORMAT  0x2904 /**< Characteristic Presentation Format Descriptor. */
-#define BLE_UUID_DESCRIPTOR_CHAR_AGGREGATE_FORMAT     0x2905 /**< Characteristic Aggregate Format Descriptor. */
-/* GATT specific UUIDs */
-#define BLE_UUID_GATT                                 0x1801 /**< Generic Attribute Profile. */
-#define BLE_UUID_GATT_CHARACTERISTIC_SERVICE_CHANGED  0x2A05 /**< Service Changed Characteristic. */
-/* GAP specific UUIDs */
-#define BLE_UUID_GAP                                  0x1800 /**< Generic Access Profile. */
-#define BLE_UUID_GAP_CHARACTERISTIC_DEVICE_NAME       0x2A00 /**< Device Name Characteristic. */
-#define BLE_UUID_GAP_CHARACTERISTIC_APPEARANCE        0x2A01 /**< Appearance Characteristic. */
-#define BLE_UUID_GAP_CHARACTERISTIC_PPF               0x2A02 /**< Peripheral Privacy Flag Characteristic. */
-#define BLE_UUID_GAP_CHARACTERISTIC_RECONN_ADDR       0x2A03 /**< Reconnection Address Characteristic. */
-#define BLE_UUID_GAP_CHARACTERISTIC_PPCP              0x2A04 /**< Peripheral Preferred Connection Parameters Characteristic. */
-/** @} */
-
-
-/** @defgroup BLE_UUID_TYPES Types of UUID
- * @{ */
-#define BLE_UUID_TYPE_UNKNOWN       0x00 /**< Invalid UUID type. */
-#define BLE_UUID_TYPE_BLE           0x01 /**< Bluetooth SIG UUID (16-bit). */
-#define BLE_UUID_TYPE_VENDOR_BEGIN  0x02 /**< Vendor UUID types start at this index (128-bit). */
-/** @} */
-
-
-/** @defgroup BLE_APPEARANCES Bluetooth Appearance values
- *  @note Retrieved from http://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.gap.appearance.xml
- * @{ */
-#define BLE_APPEARANCE_UNKNOWN                              0   /**< Unknown. */
-#define BLE_APPEARANCE_GENERIC_PHONE                        64  /**< Generic Phone. */
-#define BLE_APPEARANCE_GENERIC_COMPUTER                     128 /**< Generic Computer. */
-#define BLE_APPEARANCE_GENERIC_WATCH                        192 /**< Generic Watch. */
-#define BLE_APPEARANCE_WATCH_SPORTS_WATCH                   193 /**< Watch: Sports Watch. */
-#define BLE_APPEARANCE_GENERIC_CLOCK                        256 /**< Generic Clock. */
-#define BLE_APPEARANCE_GENERIC_DISPLAY                      320 /**< Generic Display. */
-#define BLE_APPEARANCE_GENERIC_REMOTE_CONTROL               384 /**< Generic Remote Control. */
-#define BLE_APPEARANCE_GENERIC_EYE_GLASSES                  448 /**< Generic Eye-glasses. */
-#define BLE_APPEARANCE_GENERIC_TAG                          512 /**< Generic Tag. */
-#define BLE_APPEARANCE_GENERIC_KEYRING                      576 /**< Generic Keyring. */
-#define BLE_APPEARANCE_GENERIC_MEDIA_PLAYER                 640 /**< Generic Media Player. */
-#define BLE_APPEARANCE_GENERIC_BARCODE_SCANNER              704 /**< Generic Barcode Scanner. */
-#define BLE_APPEARANCE_GENERIC_THERMOMETER                  768 /**< Generic Thermometer. */
-#define BLE_APPEARANCE_THERMOMETER_EAR                      769 /**< Thermometer: Ear. */
-#define BLE_APPEARANCE_GENERIC_HEART_RATE_SENSOR            832 /**< Generic Heart rate Sensor. */
-#define BLE_APPEARANCE_HEART_RATE_SENSOR_HEART_RATE_BELT    833 /**< Heart Rate Sensor: Heart Rate Belt. */
-#define BLE_APPEARANCE_GENERIC_BLOOD_PRESSURE               896 /**< Generic Blood Pressure. */
-#define BLE_APPEARANCE_BLOOD_PRESSURE_ARM                   897 /**< Blood Pressure: Arm. */
-#define BLE_APPEARANCE_BLOOD_PRESSURE_WRIST                 898 /**< Blood Pressure: Wrist. */
-#define BLE_APPEARANCE_GENERIC_HID                          960 /**< Human Interface Device (HID). */
-#define BLE_APPEARANCE_HID_KEYBOARD                         961 /**< Keyboard (HID Subtype). */
-#define BLE_APPEARANCE_HID_MOUSE                            962 /**< Mouse (HID Subtype). */
-#define BLE_APPEARANCE_HID_JOYSTICK                         963 /**< Joystiq (HID Subtype). */
-#define BLE_APPEARANCE_HID_GAMEPAD                          964 /**< Gamepad (HID Subtype). */
-#define BLE_APPEARANCE_HID_DIGITIZERSUBTYPE                 965 /**< Digitizer Tablet (HID Subtype). */
-#define BLE_APPEARANCE_HID_CARD_READER                      966 /**< Card Reader (HID Subtype). */
-#define BLE_APPEARANCE_HID_DIGITAL_PEN                      967 /**< Digital Pen (HID Subtype). */
-#define BLE_APPEARANCE_HID_BARCODE                          968 /**< Barcode Scanner (HID Subtype). */
-#define BLE_APPEARANCE_GENERIC_GLUCOSE_METER               1024 /**< Generic Glucose Meter. */
-#define BLE_APPEARANCE_GENERIC_RUNNING_WALKING_SENSOR      1088 /**< Generic Running Walking Sensor. */
-#define BLE_APPEARANCE_RUNNING_WALKING_SENSOR_IN_SHOE      1089 /**< Running Walking Sensor: In-Shoe. */
-#define BLE_APPEARANCE_RUNNING_WALKING_SENSOR_ON_SHOE      1090 /**< Running Walking Sensor: On-Shoe. */
-#define BLE_APPEARANCE_RUNNING_WALKING_SENSOR_ON_HIP       1091 /**< Running Walking Sensor: On-Hip. */
-#define BLE_APPEARANCE_GENERIC_CYCLING                     1152 /**< Generic Cycling. */
-#define BLE_APPEARANCE_CYCLING_CYCLING_COMPUTER            1153 /**< Cycling: Cycling Computer. */
-#define BLE_APPEARANCE_CYCLING_SPEED_SENSOR                1154 /**< Cycling: Speed Sensor. */
-#define BLE_APPEARANCE_CYCLING_CADENCE_SENSOR              1155 /**< Cycling: Cadence Sensor. */
-#define BLE_APPEARANCE_CYCLING_POWER_SENSOR                1156 /**< Cycling: Power Sensor. */
-#define BLE_APPEARANCE_CYCLING_SPEED_CADENCE_SENSOR        1157 /**< Cycling: Speed and Cadence Sensor. */
-/** @} */
-
-/** @brief Set .type and .uuid fields of ble_uuid_struct to specified uuid value. */
-#define BLE_UUID_BLE_ASSIGN(instance, value) do {\
-            instance.type = BLE_UUID_TYPE_BLE; \
-            instance.uuid = value;} while(0)
-
-/** @brief Copy type and uuid members from src to dst ble_uuid_t pointer. Both pointers must be valid/non-null. */
-#define BLE_UUID_COPY_PTR(dst, src) do {\
-            (dst)->type = (src)->type; \
-            (dst)->uuid = (src)->uuid;} while(0)
-
-/** @brief Copy type and uuid members from src to dst ble_uuid_t struct. */
-#define BLE_UUID_COPY_INST(dst, src) do {\
-            (dst).type = (src).type; \
-            (dst).uuid = (src).uuid;} while(0)
-
-/** @brief Compare for equality both type and uuid members of two (valid, non-null) ble_uuid_t pointers. */
-#define BLE_UUID_EQ(p_uuid1, p_uuid2) \
-            (((p_uuid1)->type == (p_uuid2)->type) && ((p_uuid1)->uuid == (p_uuid2)->uuid))
-
-/** @brief Compare for difference both type and uuid members of two (valid, non-null) ble_uuid_t pointers. */
-#define BLE_UUID_NEQ(p_uuid1, p_uuid2) \
-            (((p_uuid1)->type != (p_uuid2)->type) || ((p_uuid1)->uuid != (p_uuid2)->uuid))
-
-/** @} */
-
-/** @brief 128 bit UUID values. */
-typedef struct
-{ 
-    unsigned char uuid128[16];
-} ble_uuid128_t;
-
-/** @brief  Bluetooth Low Energy UUID type, encapsulates both 16-bit and 128-bit UUIDs. */
-typedef struct
-{
-    uint16_t    uuid; /**< 16-bit UUID value or octets 12-13 of 128-bit UUID. */
-    uint8_t     type; /**< UUID type, see @ref BLE_UUID_TYPES. If type is BLE_UUID_TYPE_UNKNOWN, the value of uuid is undefined. */
-} ble_uuid_t;
-
-
-
-#endif /* BLE_TYPES_H__ */
-
-/**
-  @}
-  @}
-*/
--- a/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/nrf_error.h	Tue Mar 18 11:00:08 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 2012 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is confidential property of Nordic Semiconductor. The use,
- * copying, transfer or disclosure of such information is prohibited except by express written
- * agreement with Nordic Semiconductor.
- *
- */
- /**
-  @defgroup nrf_error SoftDevice Global Error Codes
-  @{
-   
-  @brief Global Error definitions
-*/
-
-/* Header guard */
-#ifndef NRF_ERROR_H__
-#define NRF_ERROR_H__
-
-/** @defgroup NRF_ERRORS_BASE Error Codes Base number definitions
- * @{ */
-#define NRF_ERROR_BASE_NUM      (0x0)       ///< Global error base
-#define NRF_ERROR_SDM_BASE_NUM  (0x1000)    ///< SDM error base
-#define NRF_ERROR_SOC_BASE_NUM  (0x2000)    ///< SoC error base
-#define NRF_ERROR_STK_BASE_NUM  (0x3000)    ///< STK error base
-/** @} */
-
-#define NRF_SUCCESS                           (NRF_ERROR_BASE_NUM + 0)  ///< Successful command
-#define NRF_ERROR_SVC_HANDLER_MISSING         (NRF_ERROR_BASE_NUM + 1)  ///< SVC handler is missing
-#define NRF_ERROR_SOFTDEVICE_NOT_ENABLED      (NRF_ERROR_BASE_NUM + 2)  ///< SoftDevice has not been enabled
-#define NRF_ERROR_INTERNAL                    (NRF_ERROR_BASE_NUM + 3)  ///< Internal Error
-#define NRF_ERROR_NO_MEM                      (NRF_ERROR_BASE_NUM + 4)  ///< No Memory for operation
-#define NRF_ERROR_NOT_FOUND                   (NRF_ERROR_BASE_NUM + 5)  ///< Not found
-#define NRF_ERROR_NOT_SUPPORTED               (NRF_ERROR_BASE_NUM + 6)  ///< Not supported
-#define NRF_ERROR_INVALID_PARAM               (NRF_ERROR_BASE_NUM + 7)  ///< Invalid Parameter
-#define NRF_ERROR_INVALID_STATE               (NRF_ERROR_BASE_NUM + 8)  ///< Invalid state, operation disallowed in this state
-#define NRF_ERROR_INVALID_LENGTH              (NRF_ERROR_BASE_NUM + 9)  ///< Invalid Length
-#define NRF_ERROR_INVALID_FLAGS               (NRF_ERROR_BASE_NUM + 10) ///< Invalid Flags
-#define NRF_ERROR_INVALID_DATA                (NRF_ERROR_BASE_NUM + 11) ///< Invalid Data
-#define NRF_ERROR_DATA_SIZE                   (NRF_ERROR_BASE_NUM + 12) ///< Data size exceeds limit
-#define NRF_ERROR_TIMEOUT                     (NRF_ERROR_BASE_NUM + 13) ///< Operation timed out
-#define NRF_ERROR_NULL                        (NRF_ERROR_BASE_NUM + 14) ///< Null Pointer
-#define NRF_ERROR_FORBIDDEN                   (NRF_ERROR_BASE_NUM + 15) ///< Forbidden Operation
-#define NRF_ERROR_INVALID_ADDR                (NRF_ERROR_BASE_NUM + 16) ///< Bad Memory Address
-#define NRF_ERROR_BUSY                        (NRF_ERROR_BASE_NUM + 17) ///< Busy
-
-#endif // NRF_ERROR_H__
-
-/**
-  @}
-*/
--- a/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/nrf_error_sdm.h	Tue Mar 18 11:00:08 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/*
- * Copyright (c) 2012 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is confidential property of Nordic Semiconductor. The use,
- * copying, transfer or disclosure of such information is prohibited except by express written
- * agreement with Nordic Semiconductor.
- *
- */
- /**
-  @addtogroup nrf_sdm_api
-  @{
-  @defgroup nrf_sdm_error SoftDevice Manager Error Codes
-  @{
-     
-  @brief Error definitions for the SDM API
-*/
-
-/* Header guard */
-#ifndef NRF_ERROR_SDM_H__
-#define NRF_ERROR_SDM_H__
-
-#include "nrf_error.h"
-
-#define NRF_ERROR_SDM_LFCLK_SOURCE_UNKNOWN              (NRF_ERROR_SDM_BASE_NUM + 0)  ///< Unknown lfclk source
-#define NRF_ERROR_SDM_INCORRECT_INTERRUPT_CONFIGURATION (NRF_ERROR_SDM_BASE_NUM + 1)  ///< Incorrect interrupt configuration (can be caused by using illegal priority levels, or having enabled SoftDevice interrupts)
-#define NRF_ERROR_SDM_INCORRECT_CLENR0                  (NRF_ERROR_SDM_BASE_NUM + 2)  ///< Incorrect CLENR0 (can be caused by erronous SoftDevice flashing)
-
-#endif // NRF_ERROR_SDM_H__
-
-/**
-  @}
-  @}
-*/
--- a/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/nrf_error_soc.h	Tue Mar 18 11:00:08 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
- * Copyright (c) 2012 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is confidential property of Nordic Semiconductor. The use,
- * copying, transfer or disclosure of such information is prohibited except by express written
- * agreement with Nordic Semiconductor.
- *
- */
- /**
-  @addtogroup nrf_soc_api
-  @{
-  @defgroup nrf_soc_error SoC Library Error Codes
-  @{
-     
-  @brief Error definitions for the SoC library
-
-*/
-
-/* Header guard */
-#ifndef NRF_ERROR_SOC_H__
-#define NRF_ERROR_SOC_H__
-
-#include "nrf_error.h"
-
-/* Mutex Errors */
-#define NRF_ERROR_SOC_MUTEX_ALREADY_TAKEN                 (NRF_ERROR_SOC_BASE_NUM + 0)  ///< Mutex already taken
-
-/* NVIC errors */
-#define NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE        (NRF_ERROR_SOC_BASE_NUM + 1)  ///< NVIC interrupt not available
-#define NRF_ERROR_SOC_NVIC_INTERRUPT_PRIORITY_NOT_ALLOWED (NRF_ERROR_SOC_BASE_NUM + 2)  ///< NVIC interrupt priority not allowed
-#define NRF_ERROR_SOC_NVIC_SHOULD_NOT_RETURN              (NRF_ERROR_SOC_BASE_NUM + 3)  ///< NVIC should not return
-
-/* Power errors */
-#define NRF_ERROR_SOC_POWER_MODE_UNKNOWN                  (NRF_ERROR_SOC_BASE_NUM + 4)  ///< Power mode unknown
-#define NRF_ERROR_SOC_POWER_POF_THRESHOLD_UNKNOWN         (NRF_ERROR_SOC_BASE_NUM + 5)  ///< Power POF threshold unknown
-#define NRF_ERROR_SOC_POWER_OFF_SHOULD_NOT_RETURN         (NRF_ERROR_SOC_BASE_NUM + 6)  ///< Power off should not return
-
-/* Rand errors */
-#define NRF_ERROR_SOC_RAND_NOT_ENOUGH_VALUES              (NRF_ERROR_SOC_BASE_NUM + 7)  ///< RAND not enough values
-
-/* PPI errors */
-#define NRF_ERROR_SOC_PPI_INVALID_CHANNEL                 (NRF_ERROR_SOC_BASE_NUM + 8)  ///< Invalid PPI Channel
-#define NRF_ERROR_SOC_PPI_INVALID_GROUP                   (NRF_ERROR_SOC_BASE_NUM + 9)  ///< Invalid PPI Group
-
-#endif // NRF_ERROR_SOC_H__
-/**
-  @}
-  @}
-*/
--- a/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/nrf_sdm.h	Tue Mar 18 11:00:08 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,163 +0,0 @@
-/*
- * Copyright (c) 2011 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is confidential property of Nordic Semiconductor. The use,
- * copying, transfer or disclosure of such information is prohibited except by express written
- * agreement with Nordic Semiconductor.
- *
- */
-/**
-  @defgroup nrf_sdm_api SoftDevice Manager API
-  @{
-     
-  @brief APIs for SoftDevice management.
- 
-*/
-
-/* Header guard */
-#ifndef NRF_SDM_H__
-#define NRF_SDM_H__
-
-#include "nrf_svc.h"
-#include "nrf51.h"
-#include "nrf_soc.h"
-#include "nrf_error_sdm.h"
-
-/** @addtogroup NRF_SDM_DEFINES Defines
- * @{ */
-
-/**@brief SoftDevice Manager SVC Base number. */
-#define SDM_SVC_BASE 0x10   
-
-/** @} */
-
-/** @addtogroup NRF_SDM_ENUMS Enumerations
- * @{ */
-
-/**@brief nRF SoftDevice Manager API SVC numbers. */
-enum NRF_SD_SVCS
-{
-  SD_SOFTDEVICE_ENABLE = SDM_SVC_BASE, /**< ::sd_softdevice_enable */
-  SD_SOFTDEVICE_DISABLE,               /**< ::sd_softdevice_disable */
-  SD_SOFTDEVICE_IS_ENABLED,            /**< ::sd_softdevice_is_enabled */
-  SD_SOFTDEVICE_FORWARD_TO_APPLICATION,/**< ::sd_softdevice_forward_to_application */
-  SVC_SDM_LAST                         /**< Placeholder for last SDM SVC */
-};
-
-/**@brief Possible lfclk oscillator sources. */
-enum NRF_CLOCK_LFCLKSRCS
-{
-  NRF_CLOCK_LFCLKSRC_SYNTH_250_PPM,                       /**< LFCLK Synthesized from HFCLK.                    */
-  NRF_CLOCK_LFCLKSRC_XTAL_500_PPM,                        /**< LFCLK crystal oscillator 500 PPM accuracy.       */
-  NRF_CLOCK_LFCLKSRC_XTAL_250_PPM,                        /**< LFCLK crystal oscillator 250 PPM accuracy.       */
-  NRF_CLOCK_LFCLKSRC_XTAL_150_PPM,                        /**< LFCLK crystal oscillator 150 PPM accuracy.       */
-  NRF_CLOCK_LFCLKSRC_XTAL_100_PPM,                        /**< LFCLK crystal oscillator 100 PPM accuracy.       */
-  NRF_CLOCK_LFCLKSRC_XTAL_75_PPM,                         /**< LFCLK crystal oscillator 75 PPM accuracy.        */
-  NRF_CLOCK_LFCLKSRC_XTAL_50_PPM,                         /**< LFCLK crystal oscillator 50 PPM accuracy.        */
-  NRF_CLOCK_LFCLKSRC_XTAL_30_PPM,                         /**< LFCLK crystal oscillator 30 PPM accuracy.        */
-  NRF_CLOCK_LFCLKSRC_XTAL_20_PPM,                         /**< LFCLK crystal oscillator 20 PPM accuracy.        */
-  NRF_CLOCK_LFCLKSRC_RC_250_PPM_250MS_CALIBRATION,        /**< LFCLK RC oscillator, 250ms  calibration interval.*/
-  NRF_CLOCK_LFCLKSRC_RC_250_PPM_500MS_CALIBRATION,        /**< LFCLK RC oscillator, 500ms  calibration interval.*/
-  NRF_CLOCK_LFCLKSRC_RC_250_PPM_1000MS_CALIBRATION,       /**< LFCLK RC oscillator, 1000ms calibration interval.*/
-  NRF_CLOCK_LFCLKSRC_RC_250_PPM_2000MS_CALIBRATION,       /**< LFCLK RC oscillator, 2000ms calibration interval.*/
-  NRF_CLOCK_LFCLKSRC_RC_250_PPM_4000MS_CALIBRATION,       /**< LFCLK RC oscillator, 4000ms calibration interval.*/
-  NRF_CLOCK_LFCLKSRC_RC_250_PPM_8000MS_CALIBRATION,       /**< LFCLK RC oscillator, 8000ms calibration interval.*/
-};
-
-/** @} */
-
-/** @addtogroup NRF_SDM_TYPES Types
- * @{ */
-
-/**@brief Type representing lfclk oscillator source. */
-typedef uint32_t nrf_clock_lfclksrc_t;
-
-
-/**@brief SoftDevice Assertion Handler type.
- *
- * When an unexpected error occurs within the SoftDevice it will call the SoftDevice assertion handler callback.
- * The protocol stack will be in an undefined state when this happens and the only way to recover will be to
- * perform a reset, using e.g. CMSIS NVIC_SystemReset().
- *
- * @note This callback is executed in HardFault context, thus SVC functions cannot be called from the SoftDevice assert callback.
- *       
- * @param[in] pc The program counter of the failed assert.
- * @param[in] line_number Line number where the assert failed.
- * @param[in] file_name File name where the assert failed.
- */
-typedef void (*softdevice_assertion_handler_t)(uint32_t pc, uint16_t line_number, const uint8_t * p_file_name);
-
-/** @} */
-
-/** @addtogroup NRF_SDM_FUNCTIONS Functions
- * @{ */
-
-/**@brief Enables the SoftDevice and by extension the protocol stack.
- *
- * Idempotent function to enable the SoftDevice.
- *
- * @note Some care must be taken if a low frequency clock source is already running when calling this function:
- *       If the LF clock has a different source then the one currently running, it will be stopped. Then, the new
- *       clock source will be started.
- *
- * @note This function has no effect when returning with an error.
- *
- * @post If return code is ::NRF_SUCCESS 
- *       - SoC library and protocol stack APIs are made available
- *       - A portion of RAM will be unavailable (see relevant SDS documentation)
- *       - Some peripherals will be unavailable or available only through the SoC API (see relevant SDS documentation)
- *       - Interrupts will not arrive from protected peripherals or interrupts
- *       - nrf_nvic_ functions must be used instead of CMSIS NVIC_ functions for reliable usage of the softdevice.
- *       - Interrupt latency may be affected by the SoftDevice  (see relevant SDS documentation)
- *       - Chosen low frequency clock source will be running
- *
- * @param clock_source Low frequency clock source and accuracy. (Note: In the case of XTAL source, the PPM accuracy of the chosen clock source must be greater than or equal to the actual characteristics of your XTAL clock).
- * @param assertion_handler Callback for SoftDevice assertions.
- *
- * @retval ::NRF_SUCCESS
- * @retval ::NRF_ERROR_SDM_INCORRECT_INTERRUPT_CONFIGURATION SoftDeviceinterrupt is already enabled, or an enabled interrupt has an illegal priority level
- * @retval ::NRF_ERROR_SDM_LFCLK_SOURCE_UNKNOWN Unknown low frequency clock source selected
- */
-SVCALL(SD_SOFTDEVICE_ENABLE, uint32_t, sd_softdevice_enable(nrf_clock_lfclksrc_t clock_source, softdevice_assertion_handler_t assertion_handler));
-
-/**@brief Disables the SoftDevice and by extension the protocol stack.
- * 
- * Idempotent function to disable the SoftDevice.
- *
- * @post SoC library and protocol stack APIs are made unavailable.
- * @post All interrupts that was protected by the SoftDevice will be disabled and initialized to priority 0 (highest).
- * @post All peripherals used by the SoftDevice will be reset to default values.
- * @post All of RAM become available.
- * @post All interrupts are forwarded to the application.
- * @post LFCLK source chosen in ::sd_softdevice_enable will be left running.
- *
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_SOFTDEVICE_DISABLE, uint32_t, sd_softdevice_disable(void));
-
-/**@brief Check if the SoftDevice is enabled.
- *
- * @param[out]  p_softdevice_enabled If the SoftDevice is enabled: 1 else 0.
- *
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_SOFTDEVICE_IS_ENABLED, uint32_t, sd_softdevice_is_enabled(uint8_t * p_softdevice_enabled));
-
-/**@brief Start forwarding interrupts to application.
- * 
- * This function is only intended to be called when a bootloader is enabled is used.
- * The bootloader should call this right before it starts the application. 
- * It is recommended that all interrupt sources are off when this is called, 
- * or you could end up having interrupts in the application being executed before main() of the application.
- *
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_SOFTDEVICE_FORWARD_TO_APPLICATION, uint32_t, sd_softdevice_forward_to_application(void)); 
-
-/** @} */
-
-#endif // NRF_SDM_H__
-
-/**
-  @}
-*/
--- a/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/nrf_soc.h	Tue Mar 18 11:00:08 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,777 +0,0 @@
-/* Copyright (c) 2011 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is confidential property of Nordic Semiconductor. The use,
- * copying, transfer or disclosure of such information is prohibited except by express written
- * agreement with Nordic Semiconductor.
- *
- */
- 
-/**
-  @defgroup nrf_soc_api SoC Library API
-  @{
-  
-  @brief APIs for the SoC library.
-  
-*/
-
-#ifndef NRF_SOC_H__
-#define NRF_SOC_H__
-
-#include <stdint.h>
-#include <stdbool.h>
-#include "nrf_svc.h"
-#include "nrf51.h"
-#include "nrf51_bitfields.h"
-#include "nrf_error_soc.h"
-
-/** @addtogroup NRF_SOC_DEFINES Defines
- * @{ */
-
-/**@brief The number of the lowest SVC number reserved for the SoC library. */
-#define SOC_SVC_BASE 0x20
-
-/**@brief Guranteed time for application to process radio inactive notification. */
-#define NRF_RADIO_NOTIFICATION_INACTIVE_GUARANTEED_TIME_US   (62)
-
-#define SOC_ECB_KEY_LENGTH                   (16)                       /**< ECB key length. */
-#define SOC_ECB_CLEARTEXT_LENGTH             (16)                       /**< ECB cleartext length. */
-#define SOC_ECB_CIPHERTEXT_LENGTH            (SOC_ECB_CLEARTEXT_LENGTH) /**< ECB ciphertext length. */
-
-#define SD_EVT_IRQn                   (SWI2_IRQn)       /**< SoftDevice Event IRQ number. Used for both protocol events and SoC events. */
-#define SD_EVT_IRQHandler             (SWI2_IRQHandler) /**< SoftDevice Event IRQ handler. Used for both protocol events and SoC events. */
-#define RADIO_NOTIFICATION_IRQn       (SWI1_IRQn)       /**< The radio notification IRQ number. */
-#define RADIO_NOTIFICATION_IRQHandler (SWI1_IRQHandler) /**< The radio notification IRQ handler. */
-
-/** @} */
-
-/** @addtogroup NRF_SOC_TYPES Types
- * @{ */
-
-/**@brief The SVC numbers used by the SVC functions in the SoC library. */
-enum NRF_SOC_SVCS
-{
-  SD_MUTEX_NEW = SOC_SVC_BASE,
-  SD_MUTEX_ACQUIRE,
-  SD_MUTEX_RELEASE,
-  SD_NVIC_ENABLEIRQ,
-  SD_NVIC_DISABLEIRQ,
-  SD_NVIC_GETPENDINGIRQ,
-  SD_NVIC_SETPENDINGIRQ,
-  SD_NVIC_CLEARPENDINGIRQ,
-  SD_NVIC_SETPRIORITY,
-  SD_NVIC_GETPRIORITY,
-  SD_NVIC_SYSTEMRESET,
-  SD_NVIC_CRITICAL_REGION_ENTER,
-  SD_NVIC_CRITICAL_REGION_EXIT,
-  SD_RAND_APPLICATION_POOL_CAPACITY,
-  SD_RAND_APPLICATION_BYTES_AVAILABLE,
-  SD_RAND_APPLICATION_GET_VECTOR,
-  SD_POWER_MODE_SET,
-  SD_POWER_SYSTEM_OFF,
-  SD_POWER_RESET_REASON_GET,
-  SD_POWER_RESET_REASON_CLR,
-  SD_POWER_POF_ENABLE,
-  SD_POWER_POF_THRESHOLD_SET,
-  SD_POWER_RAMON_SET,
-  SD_POWER_RAMON_CLR,
-  SD_POWER_RAMON_GET,
-  SD_POWER_GPREGRET_SET,
-  SD_POWER_GPREGRET_CLR,
-  SD_POWER_GPREGRET_GET,
-  SD_POWER_DCDC_MODE_SET,
-  SD_APP_EVT_WAIT,
-  SD_CLOCK_HFCLK_REQUEST,
-  SD_CLOCK_HFCLK_RELEASE,
-  SD_CLOCK_HFCLK_IS_RUNNING,
-  SD_PPI_CHANNEL_ENABLE_GET,
-  SD_PPI_CHANNEL_ENABLE_SET,
-  SD_PPI_CHANNEL_ENABLE_CLR,
-  SD_PPI_CHANNEL_ASSIGN,
-  SD_PPI_GROUP_TASK_ENABLE,
-  SD_PPI_GROUP_TASK_DISABLE,
-  SD_PPI_GROUP_ASSIGN,
-  SD_PPI_GROUP_GET,
-  SD_RADIO_NOTIFICATION_CFG_SET,
-  SD_ECB_BLOCK_ENCRYPT,
-  SD_RESERVED1,
-  SD_RESERVED2,
-  SD_RESERVED3,
-  SD_EVT_GET,
-  SD_TEMP_GET,
-  SD_FLASH_ERASE_PAGE,
-  SD_FLASH_WRITE,
-  SD_FLASH_PROTECT,
-  SVC_SOC_LAST
-};
-
-/**@brief Possible values of a ::nrf_mutex_t. */
-enum NRF_MUTEX_VALUES
-{
-  NRF_MUTEX_FREE,
-  NRF_MUTEX_TAKEN
-};
-
-/**@brief Possible values of ::nrf_app_irq_priority_t. */
-enum NRF_APP_PRIORITIES
-{
-  NRF_APP_PRIORITY_HIGH = 1,
-  NRF_APP_PRIORITY_LOW = 3
-};
-
-/**@brief Possible values of ::nrf_power_mode_t. */
-enum NRF_POWER_MODES
-{
-  NRF_POWER_MODE_CONSTLAT,  /**< Constant latency mode. See power management in the reference manual. */
-  NRF_POWER_MODE_LOWPWR     /**< Low power mode. See power management in the reference manual. */
-};
-
-
-/**@brief Possible values of ::nrf_power_failure_threshold_t */
-enum NRF_POWER_THRESHOLDS
-{
-  NRF_POWER_THRESHOLD_V21,  /**< 2.1 Volts power failure threshold. */
-  NRF_POWER_THRESHOLD_V23,  /**< 2.3 Volts power failure threshold. */
-  NRF_POWER_THRESHOLD_V25,  /**< 2.5 Volts power failure threshold. */ 
-  NRF_POWER_THRESHOLD_V27   /**< 2.7 Volts power failure threshold. */
-};
-
-
-/**@brief Possible values of ::nrf_power_dcdc_mode_t. */
-enum NRF_POWER_DCDC_MODES
-{
-  NRF_POWER_DCDC_MODE_OFF,          /**< The DCDC is always off. */
-  NRF_POWER_DCDC_MODE_ON,           /**< The DCDC is always on. */
-  NRF_POWER_DCDC_MODE_AUTOMATIC     /**< The DCDC is automatically managed. */
-};
-
-/**@brief Possible values of ::nrf_radio_notification_distance_t. */
-enum NRF_RADIO_NOTIFICATION_DISTANCES
-{
-  NRF_RADIO_NOTIFICATION_DISTANCE_NONE = 0, /**< The event does not have a notification. */
-  NRF_RADIO_NOTIFICATION_DISTANCE_800US,    /**< The distance from the active notification to start of radio activity. */
-  NRF_RADIO_NOTIFICATION_DISTANCE_1740US,   /**< The distance from the active notification to start of radio activity. */
-  NRF_RADIO_NOTIFICATION_DISTANCE_2680US,   /**< The distance from the active notification to start of radio activity. */
-  NRF_RADIO_NOTIFICATION_DISTANCE_3620US,   /**< The distance from the active notification to start of radio activity. */
-  NRF_RADIO_NOTIFICATION_DISTANCE_4560US,   /**< The distance from the active notification to start of radio activity. */
-  NRF_RADIO_NOTIFICATION_DISTANCE_5500US    /**< The distance from the active notification to start of radio activity. */
-};
-
-
-/**@brief Possible values of ::nrf_radio_notification_type_t. */
-enum NRF_RADIO_NOTIFICATION_TYPES
-{
-  NRF_RADIO_NOTIFICATION_TYPE_NONE = 0,        /**< The event does not have a radio notification signal. */
-  NRF_RADIO_NOTIFICATION_TYPE_INT_ON_ACTIVE,   /**< Using interrupt for notification when the radio will be enabled. */
-  NRF_RADIO_NOTIFICATION_TYPE_INT_ON_INACTIVE, /**< Using interrupt for notification when the radio has been disabled. */
-  NRF_RADIO_NOTIFICATION_TYPE_INT_ON_BOTH,     /**< Using interrupt for notification both when the radio will be enabled and disabled. */
-};
-
-/**@brief SoC Events. */
-enum NRF_SOC_EVTS
-{
-  NRF_EVT_HFCLKSTARTED,                       /**< Event indicating that the HFCLK has started. */
-  NRF_EVT_POWER_FAILURE_WARNING,              /**< Event indicating that a power failure warning has occurred. */
-  NRF_EVT_FLASH_OPERATION_SUCCESS,            /**< Event indicating that the ongoing flash operation has completed successfully. */
-  NRF_EVT_FLASH_OPERATION_ERROR,              /**< Event indicating that the ongoing flash operation has timed out with an error. */
-  NRF_EVT_RESERVED1,
-  NRF_EVT_RESERVED2,
-  NRF_EVT_RESERVED3,
-  NRF_EVT_RESERVED4,
-  NRF_EVT_RESERVED5,
-  NRF_EVT_NUMBER_OF_EVTS
-};
-
-/** @} */
-
-/** @addtogroup NRF_SOC_TYPES Types
- * @{ */
-
-/**@brief Represents a mutex for use with the nrf_mutex functions.
- * @note Accessing the value directly is not safe, use the mutex functions!
- */
-typedef volatile uint8_t nrf_mutex_t;
-
-/**@brief The interrupt priorities available to the application while the softdevice is active. */
-typedef uint8_t nrf_app_irq_priority_t;
-
-/**@brief Represents a power mode, used in power mode functions */
-typedef uint8_t nrf_power_mode_t;
-
-/**@brief Represents a power failure threshold value. */
-typedef uint8_t nrf_power_failure_threshold_t;
-
-/**@brief Represents a DCDC mode value. */
-typedef uint32_t nrf_power_dcdc_mode_t;
-
-/**@brief Radio notification distances. */
-typedef uint8_t nrf_radio_notification_distance_t;
-
-/**@brief Radio notification types. */
-typedef uint8_t nrf_radio_notification_type_t;
-
-
-/**@brief AES ECB data structure */
-typedef struct
-{
-  uint8_t key[SOC_ECB_KEY_LENGTH];                /**< Encryption key. */
-  uint8_t cleartext[SOC_ECB_CLEARTEXT_LENGTH];    /**< Clear Text data. */
-  uint8_t ciphertext[SOC_ECB_CIPHERTEXT_LENGTH];  /**< Cipher Text data. */
-} nrf_ecb_hal_data_t;
-
-/** @} */
-
-/** @addtogroup NRF_SOC_FUNCTIONS Functions
- * @{ */
-
-/**@brief Initialize a mutex.
- *
- * @param[in] p_mutex Pointer to the mutex to initialize.
- *
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_MUTEX_NEW, uint32_t, sd_mutex_new(nrf_mutex_t * p_mutex));
-
-/**@brief Attempt to acquire a mutex.
- *
- * @param[in] p_mutex Pointer to the mutex to acquire.
- *
- * @retval ::NRF_SUCCESS The mutex was successfully acquired.
- * @retval ::NRF_ERROR_SOC_MUTEX_ALREADY_TAKEN The mutex could not be acquired.
- */
-SVCALL(SD_MUTEX_ACQUIRE, uint32_t, sd_mutex_acquire(nrf_mutex_t * p_mutex));
-
-/**@brief Release a mutex.
- *
- * @param[in] p_mutex Pointer to the mutex to release.
- *
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_MUTEX_RELEASE, uint32_t, sd_mutex_release(nrf_mutex_t * p_mutex));
-
-/**@brief Enable External Interrupt.
- * @note Corresponds to NVIC_EnableIRQ in CMSIS.
- *
- * @pre{IRQn is valid and not reserved by the stack}
- *
- * @param[in] IRQn See the NVIC_EnableIRQ documentation in CMSIS.
- *
- * @retval ::NRF_SUCCESS The interrupt was enabled.
- * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE The interrupt is not available for the application.
- * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_PRIORITY_NOT_ALLOWED The interrupt has a priority not available for the application.
- */
-SVCALL(SD_NVIC_ENABLEIRQ, uint32_t, sd_nvic_EnableIRQ(IRQn_Type IRQn));
-
-/**@brief  Disable External Interrupt.
- * @note Corresponds to NVIC_DisableIRQ in CMSIS.
- *
- * @pre{IRQn is valid and not reserved by the stack}
- *
- * @param[in] IRQn See the NVIC_DisableIRQ documentation in CMSIS
- *
- * @retval ::NRF_SUCCESS The interrupt was disabled.
- * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE The interrupt is not available for the application.
- */
-SVCALL(SD_NVIC_DISABLEIRQ, uint32_t, sd_nvic_DisableIRQ(IRQn_Type IRQn));
-
-/**@brief  Get Pending Interrupt.
- * @note Corresponds to NVIC_GetPendingIRQ in CMSIS.
- *
- * @pre{IRQn is valid and not reserved by the stack}
- *
- * @param[in]   IRQn          See the NVIC_GetPendingIRQ documentation in CMSIS.
- * @param[out]  p_pending_irq Return value from NVIC_GetPendingIRQ.
- *
- * @retval ::NRF_SUCCESS The interrupt is available for the application.
- * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE IRQn is not available for the application.
- */
-SVCALL(SD_NVIC_GETPENDINGIRQ, uint32_t, sd_nvic_GetPendingIRQ(IRQn_Type IRQn, uint32_t * p_pending_irq));
-
-/**@brief  Set Pending Interrupt.
- * @note Corresponds to NVIC_SetPendingIRQ in CMSIS.
- *
- * @pre{IRQn is valid and not reserved by the stack}
- *
- * @param[in] IRQn See the NVIC_SetPendingIRQ documentation in CMSIS.
- *
- * @retval ::NRF_SUCCESS The interrupt is set pending.
- * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE IRQn is not available for the application.
- */
-SVCALL(SD_NVIC_SETPENDINGIRQ, uint32_t, sd_nvic_SetPendingIRQ(IRQn_Type IRQn));
-
-/**@brief  Clear Pending Interrupt.
- * @note Corresponds to NVIC_ClearPendingIRQ in CMSIS.
- *
- * @pre{IRQn is valid and not reserved by the stack}
- *
- * @param[in] IRQn See the NVIC_ClearPendingIRQ documentation in CMSIS.
- *
- * @retval ::NRF_SUCCESS The interrupt pending flag is cleared.
- * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE IRQn is not available for the application.
- */
-SVCALL(SD_NVIC_CLEARPENDINGIRQ, uint32_t, sd_nvic_ClearPendingIRQ(IRQn_Type IRQn));
-
-/**@brief Set Interrupt Priority.
- * @note Corresponds to NVIC_SetPriority in CMSIS.
- *
- * @pre{IRQn is valid and not reserved by the stack}
- * @pre{priority is valid and not reserved by the stack}
- *
- * @param[in] IRQn      See the NVIC_SetPriority documentation in CMSIS.
- * @param[in] priority  A valid IRQ priority for use by the application.
- *
- * @retval ::NRF_SUCCESS The interrupt and priority level is available for the application.
- * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE IRQn is not available for the application.
- * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_PRIORITY_NOT_ALLOWED The interrupt priority is not available for the application.
- */
-SVCALL(SD_NVIC_SETPRIORITY, uint32_t, sd_nvic_SetPriority(IRQn_Type IRQn, nrf_app_irq_priority_t priority));
-
-/**@brief Get Interrupt Priority.
- * @note Corresponds to NVIC_GetPriority in CMSIS.
- *
- * @pre{IRQn is valid and not reserved by the stack}
- *
- * @param[in]  IRQn         See the NVIC_GetPriority documentation in CMSIS.
- * @param[out] p_priority   Return value from NVIC_GetPriority.
- *
- * @retval ::NRF_SUCCESS The interrupt priority is returned in p_priority.
- * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE - IRQn is not available for the application.
- */
-SVCALL(SD_NVIC_GETPRIORITY, uint32_t, sd_nvic_GetPriority(IRQn_Type IRQn, nrf_app_irq_priority_t * p_priority));
-
-/**@brief System Reset.
- * @note Corresponds to NVIC_SystemReset in CMSIS.
- *
- * @retval ::NRF_ERROR_SOC_NVIC_SHOULD_NOT_RETURN
- */
-SVCALL(SD_NVIC_SYSTEMRESET, uint32_t, sd_nvic_SystemReset(void));
-
-/**@brief Enters critical region.
- *
- * @post Application interrupts will be disabled.
- * @sa sd_nvic_critical_region_exit
- *
- * @param[out]  p_is_nested_critical_region  1: If in a nested critical region.
- *                                           0: Otherwise.
- *
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_NVIC_CRITICAL_REGION_ENTER, uint32_t, sd_nvic_critical_region_enter(uint8_t * p_is_nested_critical_region));
-
-/**@brief Exit critical region.
- *
- * @pre Application has entered a critical region using ::sd_nvic_critical_region_enter.
- * @post If not in a nested critical region, the application interrupts will restored to the state before ::sd_nvic_critical_region_enter was called. 
- *
- * @param[in] is_nested_critical_region If this is set to 1, the critical region won't be exited. @sa sd_nvic_critical_region_enter.
- *
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_NVIC_CRITICAL_REGION_EXIT, uint32_t, sd_nvic_critical_region_exit(uint8_t is_nested_critical_region));
-
-/**@brief Query the capacity of the application random pool.
- *
- * @param[out] p_pool_capacity The capacity of the pool.
- *
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_RAND_APPLICATION_POOL_CAPACITY, uint32_t, sd_rand_application_pool_capacity_get(uint8_t * p_pool_capacity));
-
-/**@brief Get number of random bytes available to the application.
- *
- * @param[out] p_bytes_available The number of bytes currently available in the pool.
- *
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_RAND_APPLICATION_BYTES_AVAILABLE, uint32_t, sd_rand_application_bytes_available_get(uint8_t * p_bytes_available));
-
-/**@brief Get random bytes from the application pool.
-
-  @param[out]  p_buff  Pointer to unit8_t buffer for storing the bytes.
-  @param[in]   length  Number of bytes to take from pool and place in p_buff.
-
-  @retval ::NRF_SUCCESS The requested bytes were written to p_buff.
-  @retval ::NRF_ERROR_SOC_RAND_NOT_ENOUGH_VALUES No bytes were written to the buffer, because there were not enough bytes available.
-*/
-SVCALL(SD_RAND_APPLICATION_GET_VECTOR, uint32_t, sd_rand_application_vector_get(uint8_t * p_buff, uint8_t length));
-
-/**@brief Gets the reset reason register. 
- *
- * @param[out]  p_reset_reason  Contents of the NRF_POWER->RESETREAS register.
- *
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_POWER_RESET_REASON_GET, uint32_t, sd_power_reset_reason_get(uint32_t * p_reset_reason));
-
-/**@brief Clears the bits of the reset reason register. 
- *
- * @param[in] reset_reason_clr_msk Contains the bits to clear from the reset reason register.
- *
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_POWER_RESET_REASON_CLR, uint32_t, sd_power_reset_reason_clr(uint32_t reset_reason_clr_msk));
-
-/**@brief Sets the power mode when in CPU sleep.
- *
- * @param[in] power_mode The power mode to use when in CPU sleep. @sa sd_app_evt_wait
- *
- * @retval ::NRF_SUCCESS The power mode was set.
- * @retval ::NRF_ERROR_SOC_POWER_MODE_UNKNOWN The power mode was unknown.
- */
-SVCALL(SD_POWER_MODE_SET, uint32_t, sd_power_mode_set(nrf_power_mode_t power_mode));
-
-/**@brief Puts the chip in System OFF mode. 
- *
- * @retval ::NRF_ERROR_SOC_POWER_OFF_SHOULD_NOT_RETURN
- */
-SVCALL(SD_POWER_SYSTEM_OFF, uint32_t, sd_power_system_off(void));
-
-/**@brief Enables or disables the power-fail comparator.
- *
- * Enabling this will give a softdevice event (NRF_EVT_POWER_FAILURE_WARNING) when the power failure warning occurs.
- * The event can be retrieved with sd_evt_get();
- *
- * @param[in] pof_enable    True if the power-fail comparator should be enabled, false if it should be disabled.
- *
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_POWER_POF_ENABLE, uint32_t, sd_power_pof_enable(uint8_t pof_enable));
-
-/**@brief Sets the power-fail threshold value.
- *
- * @param[in] threshold The power-fail threshold value to use.
- *
- * @retval ::NRF_SUCCESS The power failure threshold was set.
- * @retval ::NRF_ERROR_SOC_POWER_POF_THRESHOLD_UNKNOWN The power failure threshold is unknown.
- */
-SVCALL(SD_POWER_POF_THRESHOLD_SET, uint32_t, sd_power_pof_threshold_set(nrf_power_failure_threshold_t threshold));
-
-/**@brief Sets bits in the NRF_POWER->RAMON register.
- *
- * @param[in] ramon Contains the bits needed to be set in the NRF_POWER->RAMON register.
- *
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_POWER_RAMON_SET, uint32_t, sd_power_ramon_set(uint32_t ramon));
-
-/** @brief Clears bits in the NRF_POWER->RAMON register.
- *
- * @param ramon Contains the bits needed to be cleared in the NRF_POWER->RAMON register.
- *
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_POWER_RAMON_CLR, uint32_t, sd_power_ramon_clr(uint32_t ramon));
-
-/**@brief Get contents of NRF_POWER->RAMON register, indicates power status of ram blocks.
- *
- * @param[out] p_ramon Content of NRF_POWER->RAMON register.
- *
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_POWER_RAMON_GET, uint32_t, sd_power_ramon_get(uint32_t * p_ramon));
-
-/**@brief Set bits in the NRF_POWER->GPREGRET register.
- *
- * @param[in] gpregret_msk Bits to be set in the GPREGRET register.
- *
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_POWER_GPREGRET_SET, uint32_t, sd_power_gpregret_set(uint32_t gpregret_msk));
-
-/**@brief Clear bits in the NRF_POWER->GPREGRET register.
- *
- * @param[in] gpregret_msk Bits to be clear in the GPREGRET register.
- *
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_POWER_GPREGRET_CLR, uint32_t, sd_power_gpregret_clr(uint32_t gpregret_msk));
-
-/**@brief Get contents of the NRF_POWER->GPREGRET register.
- *
- * @param[out] p_gpregret Contents of the GPREGRET register.
- *
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_POWER_GPREGRET_GET, uint32_t, sd_power_gpregret_get(uint32_t *p_gpregret));
-
-/**@brief Sets the DCDC mode.
- *
- * Depending on the internal state of the SoftDevice, the mode change may not happen immediately.
- * The DCDC mode switch will be blocked when occurring in close proximity to radio transmissions. When
- * the radio transmission is done, the last mode will be used.
- *
- * @param[in] dcdc_mode The mode of the DCDC.
- *
- * @retval ::NRF_SUCCESS
- * @retval ::NRF_ERROR_INVALID_PARAM The DCDC mode is invalid.
- */
-SVCALL(SD_POWER_DCDC_MODE_SET, uint32_t, sd_power_dcdc_mode_set(nrf_power_dcdc_mode_t dcdc_mode));
-
-/**@brief Request the high frequency crystal oscillator.
- *
- * Will start the high frequency crystal oscillator, the startup time of the crystal varies
- * and the ::sd_clock_hfclk_is_running function can be polled to check if it has started.
- *
- * @see sd_clock_hfclk_is_running
- * @see sd_clock_hfclk_release
- *
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_CLOCK_HFCLK_REQUEST, uint32_t, sd_clock_hfclk_request(void));
-
-/**@brief Releases the high frequency crystal oscillator.
- *
- * Will stop the high frequency crystal oscillator, this happens immediately.
- *
- * @see sd_clock_hfclk_is_running
- * @see sd_clock_hfclk_request
- *
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_CLOCK_HFCLK_RELEASE, uint32_t, sd_clock_hfclk_release(void));
-
-/**@brief Checks if the high frequency crystal oscillator is running.
- *
- * @see sd_clock_hfclk_request
- * @see sd_clock_hfclk_release
- *
- * @param[out] p_is_running 1 if the external crystal oscillator is running, 0 if not.
- *
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_CLOCK_HFCLK_IS_RUNNING, uint32_t, sd_clock_hfclk_is_running(uint32_t * p_is_running));
-
-/**@brief Waits for an application event.
- * 
- * An application event is either an application interrupt or a pended interrupt when the
- * interrupt is disabled. When the interrupt is enabled it will be taken immediately since
- * this function will wait in thread mode, then the execution will return in the application's
- * main thread. When an interrupt is disabled and gets pended it will return to the application's 
- * thread main. The application must ensure that the pended flag is cleared using 
- * ::sd_nvic_ClearPendingIRQ in order to sleep using this function. This is only necessary for
- * disabled interrupts, as the interrupt handler will clear the pending flag automatically for
- * enabled interrupts.
- *
- * In order to wake up from disabled interrupts, the SEVONPEND flag has to be set in the Cortex-M0
- * System Control Register (SCR). @sa CMSIS_SCB
- *
- * @note If an application interrupt has happened since the last time sd_app_evt_wait was
- *       called this function will return immediately and not go to sleep. This is to avoid race
- *       conditions that can occur when a flag is updated in the interrupt handler and processed
- *       in the main loop.
- *
- * @post An application interrupt has happened or a interrupt pending flag is set.
- *
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_APP_EVT_WAIT, uint32_t, sd_app_evt_wait(void));
-
-/**@brief Get PPI channel enable register contents.
- *
- * @param[out] p_channel_enable The contents of the PPI CHEN register.
- *
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_PPI_CHANNEL_ENABLE_GET, uint32_t, sd_ppi_channel_enable_get(uint32_t * p_channel_enable));
-
-/**@brief Set PPI channel enable register.
- *
- * @param[in] channel_enable_set_msk Mask containing the bits to set in the PPI CHEN register.
- *
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_PPI_CHANNEL_ENABLE_SET, uint32_t, sd_ppi_channel_enable_set(uint32_t channel_enable_set_msk));
-
-/**@brief Clear PPI channel enable register.
- *
- * @param[in] channel_enable_clr_msk Mask containing the bits to clear in the PPI CHEN register.
- *
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_PPI_CHANNEL_ENABLE_CLR, uint32_t, sd_ppi_channel_enable_clr(uint32_t channel_enable_clr_msk));
-
-/**@brief Assign endpoints to a PPI channel.
- *
- * @param[in] channel_num Number of the PPI channel to assign.
- * @param[in] evt_endpoint Event endpoint of the PPI channel.
- * @param[in] task_endpoint Task endpoint of the PPI channel.
- *
- * @retval ::NRF_ERROR_SOC_PPI_INVALID_CHANNEL The channel number is invalid.
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_PPI_CHANNEL_ASSIGN, uint32_t, sd_ppi_channel_assign(uint8_t channel_num, const volatile void * evt_endpoint, const volatile void * task_endpoint));
-
-/**@brief Task to enable a channel group.
- *
- * @param[in] group_num Number of the channel group.
- *
- * @retval ::NRF_ERROR_SOC_PPI_INVALID_GROUP The group number is invalid
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_PPI_GROUP_TASK_ENABLE, uint32_t, sd_ppi_group_task_enable(uint8_t group_num));
-
-/**@brief Task to disable a channel group.
- *
- * @param[in] group_num Number of the PPI group.
- *
- * @retval ::NRF_ERROR_SOC_PPI_INVALID_GROUP The group number is invalid.
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_PPI_GROUP_TASK_DISABLE, uint32_t, sd_ppi_group_task_disable(uint8_t group_num));
-
-/**@brief Assign PPI channels to a channel group.
- *
- * @param[in] group_num Number of the channel group.
- * @param[in] channel_msk Mask of the channels to assign to the group.
- *
- * @retval ::NRF_ERROR_SOC_PPI_INVALID_GROUP The group number is invalid.
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_PPI_GROUP_ASSIGN, uint32_t, sd_ppi_group_assign(uint8_t group_num, uint32_t channel_msk));
-
-/**@brief Gets the PPI channels of a channel group.
- *
- * @param[in]   group_num Number of the channel group.
- * @param[out]  p_channel_msk Mask of the channels assigned to the group.
- *
- * @retval ::NRF_ERROR_SOC_PPI_INVALID_GROUP The group number is invalid.
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_PPI_GROUP_GET, uint32_t, sd_ppi_group_get(uint8_t group_num, uint32_t * p_channel_msk));
-
-/**@brief Configures the Radio Notification signal.
- *
- * @note
- *      - The notification signal latency depends on the interrupt priority settings of SWI used
- *        for notification signal.
- *      - In the period between the ACTIVE signal and the start of the Radio Event, the SoftDevice
- *        will interrupt the application to do Radio Event preparation.
- *      - Using the Radio Notification feature may limit the bandwidth, as the SoftDevice may have
- *        to shorten the connection events to have time for the Radio Notification signals.
- *
- * @param[in]  type      Type of notification signal.
- *                       @ref NRF_RADIO_NOTIFICATION_TYPE_NONE shall be used to turn off radio
- *                       notification. Using @ref NRF_RADIO_NOTIFICATION_DISTANCE_NONE is
- *                       recommended (but not required) to be used with
- *                       @ref NRF_RADIO_NOTIFICATION_TYPE_NONE.
- *
- * @param[in]  distance  Distance between the notification signal and start of radio activity.
- *                       This parameter is ignored when @ref NRF_RADIO_NOTIFICATION_TYPE_NONE or 
- *                       @ref NRF_RADIO_NOTIFICATION_TYPE_INT_ON_INACTIVE is used.
- *
- * @retval ::NRF_ERROR_INVALID_PARAM The group number is invalid.
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_RADIO_NOTIFICATION_CFG_SET, uint32_t, sd_radio_notification_cfg_set(nrf_radio_notification_type_t type, nrf_radio_notification_distance_t distance));
-
-/**@brief Encrypts a block according to the specified parameters.
- *
- * 128-bit AES encryption.
- *
- * @param[in, out] p_ecb_data Pointer to the ECB parameters' struct (two input
- *                            parameters and one output parameter).
- *
- * @retval ::NRF_SUCCESS
- */
-SVCALL(SD_ECB_BLOCK_ENCRYPT, uint32_t, sd_ecb_block_encrypt(nrf_ecb_hal_data_t * p_ecb_data));
-
-/**@brief Gets any pending events generated by the SoC API.
- *
- * The application should keep calling this function to get events, until ::NRF_ERROR_NOT_FOUND is returned.
- *
- * @param[out] p_evt_id Set to one of the values in @ref NRF_SOC_EVTS, if any events are pending.
- *
- * @retval ::NRF_SUCCESS An event was pending. The event id is written in the p_evt_id parameter.
- * @retval ::NRF_ERROR_NOT_FOUND No pending events. 
- */
-SVCALL(SD_EVT_GET, uint32_t, sd_evt_get(uint32_t * p_evt_id));
-
-/**@brief Get the temperature measured on the chip
- * 
- * This function will block until the temperature measurement is done.
- * It takes around 50us from call to return.
- *
- * @note Pan #28 in PAN-028 v 1.6 "Negative measured values are not represented correctly" is corrected by this function.
- *
- * @param[out] p_temp Result of temperature measurement. Die temperature in 0.25 degrees celsius.
- *
- * @retval ::NRF_SUCCESS A temperature measurement was done, and the temperature was written to temp
- */
-SVCALL(SD_TEMP_GET, uint32_t, sd_temp_get(int32_t * p_temp));
-
-/**@brief Flash Write
- *
- * Commands to write a buffer to flash
- *
- * This call initiates the flash access command, and its completion will be communicated to the
- * application with exactly one of the following events:
- *      - NRF_EVT_FLASH_OPERATION_SUCCESS - The command was successfully completed.
- *      - NRF_EVT_FLASH_OPERATION_ERROR   - The command could not be started.
- *
- * @note
- *      - This call takes control over the radio and the CPU during flash erase and write to make sure that
- *        they will not interfere with the flash access. This means that all interrupts will be blocked
- *        for a predictable time (depending on the NVMC specification in nRF51 Series Reference Manual
- *        and the command parameters).
- *
- *
- * @param[in]  p_dst Pointer to start of flash location to be written.
- * @param[in]  p_src Pointer to buffer with data to be written
- * @param[in]  size  Number of 32-bit words to write. Maximum size is 256 32bit words.
- *
- * @retval ::NRF_ERROR_INVALID_ADDR   Tried to write to a non existing flash address, or p_dst or p_src was unaligned.
- * @retval ::NRF_ERROR_BUSY           The previous command has not yet completed.
- * @retval ::NRF_ERROR_INVALID_LENGTH Size was 0, or more than 256 words.
- * @retval ::NRF_ERROR_FORBIDDEN      Tried to write to or read from protected location.
- * @retval ::NRF_SUCCESS              The command was accepted.
- */
-SVCALL(SD_FLASH_WRITE, uint32_t, sd_flash_write(uint32_t * const p_dst, uint32_t const * const p_src, uint32_t size));
-
-
-/**@brief Flash Erase page
- *
- * Commands to erase a flash page
- *
- * This call initiates the flash access command, and its completion will be communicated to the
- * application with exactly one of the following events:
- *      - NRF_EVT_FLASH_OPERATION_SUCCESS - The command was successfully completed.
- *      - NRF_EVT_FLASH_OPERATION_ERROR   - The command could not be started.
- *
- * @note
- *      - This call takes control over the radio and the CPU during flash erase and write to make sure that
- *        they will not interfere with the flash access. This means that all interrupts will be blocked
- *        for a predictable time (depending on the NVMC specification in nRF51 Series Reference Manual
- *        and the command parameters).
- *
- *
- * @param[in]  page_number Pagenumber of the page to erase
- * @retval ::NRF_ERROR_INTERNAL      If a new session could not be opened due to an internal error.
- * @retval ::NRF_ERROR_INVALID_ADDR  Tried to erase to a non existing flash page.
- * @retval ::NRF_ERROR_BUSY          The previous command has not yet completed.
- * @retval ::NRF_ERROR_FORBIDDEN     Tried to erase a protected page.
- * @retval ::NRF_SUCCESS             The command was accepted.
- */
-SVCALL(SD_FLASH_ERASE_PAGE, uint32_t, sd_flash_page_erase(uint32_t page_number));
-
-
-/**@brief Flash Protection set
- *
- * Commands to set the flash protection registers PROTENSETx
- *
- * @note To read the values in PROTENSETx you can read them directly. They are only write-protected.
- *
- * @param[in]  protenset0 Value to be written to PROTENSET0
- * @param[in]  protenset1 Value to be written to PROTENSET1
- *
- * @retval ::NRF_ERROR_FORBIDDEN Tried to protect the SoftDevice
- * @retval ::NRF_SUCCESS Values successfully written to PROTENSETx
- */
-SVCALL(SD_FLASH_PROTECT, uint32_t, sd_flash_protect(uint32_t protenset0, uint32_t protenset1));
-
-
-/** @} */
-
-#endif // NRF_SOC_H__
-
-/**
-  @}
- */
--- a/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/nrf_svc.h	Tue Mar 18 11:00:08 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-#ifndef NRF_SVC__
-#define NRF_SVC__
-
-#ifdef SVCALL_AS_NORMAL_FUNCTION
-#define SVCALL(number, return_type, signature) return_type signature
-#else
-
-#ifndef SVCALL
-#if defined (__CC_ARM)
-#define SVCALL(number, return_type, signature) return_type __svc(number) signature
-#elif defined (__GNUC__)
-#define SVCALL(number, return_type, signature) \
-  _Pragma("GCC diagnostic ignored \"-Wreturn-type\"") \
-  _Pragma("GCC diagnostic ignored \"-Wunused-function\"") \
-  __attribute__((naked)) static return_type signature \
-  { \
-    __asm( \
-        "svc %0\n" \
-        "bx r14" : : "I" (number) : "r0" \
-    ); \
-  }
-#elif defined (__ICCARM__)
-#define PRAGMA(x) _Pragma(#x)
-#define SVCALL(number, return_type, signature) \
-PRAGMA(swi_number = number) \
- __swi return_type signature;
-#else
-#define SVCALL(number, return_type, signature) return_type signature  
-#endif
-#endif  // SVCALL
-
-#endif  // SVCALL_AS_NORMAL_FUNCTION
-#endif  // NRF_SVC__
--- a/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_API/include/softdevice_assert.h	Tue Mar 18 11:00:08 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 2012 Nordic Semiconductor. All Rights Reserved.
- *
- * The information contained herein is confidential property of Nordic Semiconductor. The use,
- * copying, transfer or disclosure of such information is prohibited except by express written
- * agreement with Nordic Semiconductor.
- *
- */
-
-/** @brief Utilities for verifying program logic
- */
-
-#ifndef SOFTDEVICE_ASSERT_H_
-#define SOFTDEVICE_ASSERT_H_
-
-#include <stdint.h>
-
-/** @brief This function handles assertions.
- *
- *
- * @note
- * This function is called when an assertion has triggered.
- * 
- *
- * @param line_num The line number where the assertion is called
- * @param file_name Pointer to the file name
- */
-void assert_softdevice_callback(uint16_t line_num, const uint8_t *file_name);
-
-
-/*lint -emacro(506, ASSERT) */ /* Suppress "Constant value Boolean */ 
-/*lint -emacro(774, ASSERT) */ /* Suppress "Boolean within 'if' always evaluates to True" */ \
-/** @brief Check intended for production code
- *
- * Check passes if "expr" evaluates to true. */
-#define ASSERT(expr) \
-if (expr)                                                                     \
-{                                                                             \
-}                                                                             \
-else                                                                          \
-{                                                                             \
-  assert_softdevice_callback((uint16_t)__LINE__, (uint8_t *)__FILE__);        \
-  /*lint -unreachable */                                                      \
-}
-
-#endif /* SOFTDEVICE_ASSERT_H_ */
--- a/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_license.txt	Tue Mar 18 11:00:08 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,174 +0,0 @@
-NORDIC SEMICONDUCTOR ASA SOFTDEVICE LICENSE AGREEMENT
-
-
-License Agreement for the Nordic Semiconductor ASA ("Nordic")
-S110 Bluetooth SoftDevice software package ("SoftDevice").
-
-
-You ("You" "Licensee") must carefully and thoroughly read this License
-Agreement ("Agreement"), and accept to adhere to this Agreement before
-downloading, installing and/or using any software or content in the
-SoftDevice provided herewith.
-
-YOU ACCEPT THIS LICENSE AGREEMENT BY (A) CLICKING ACCEPT OR AGREE TO
-THIS LICENSE AGREEMENT, WHERE THIS OPTION IS MADE AVAILABLE TO YOU; OR
-(B) BY ACTUALLY USING THE SOFTDEVICE, IN THIS CASE YOU AGREE THAT THE
-USE OF THE SOFTDEVICE CONSTITUTES ACCEPTANCE OF THE LICENSING
-AGREEMENT FROM THAT POINT ONWARDS.
-
-IF YOU DO NOT AGREE TO BE BOUND BY THE TERMS OF THIS AGREEMENT, THEN
-DO NOT DOWNLOAD, INSTALL/COMPLETE INSTALLATION OF, OR IN ANY OTHER WAY
-MAKE USE OF THE SOFTDEVICE.
-
-
-
-1.	Grant of License 
-
-Subject to the terms in this Agreement Nordic grants Licensee a
-limited, non-exclusive, non-transferable, non-sub licensable,
-revocable license ("License"): (a) to use the SoftDevice solely in
-connection with a Nordic integrated circuit, and (b) to distribute the
-SoftDevice solely as integrated in Licensee Product. Licensee shall
-not use the SoftDevice for any purpose other than specifically
-authorized herein. It is a material breach of this agreement to use or
-modify the SoftDevice for use on any wireless connectivity integrated
-circuit other than a Nordic integrated circuit.
-
-
-2.	Title 
-
-Nordic retains full rights, title, and ownership to the SoftDevice and
-any and all patents, copyrights, trade secrets, trade names,
-trademarks, and other intellectual property rights in and to the
-SoftDevice.
-
-
-3.	No Modifications or Reverse Engineering
-
-Licensee shall not, modify, reverse engineer, disassemble, decompile
-or otherwise attempt to discover the source code of any non-source
-code parts of the SoftDevice including, but not limited to
-pre-compiled hex files, binaries and object code.
-
-
-4.	Distribution Restrictions
-
-Except as set forward in Section 1 above, the Licensee may not
-disclose or distribute any or all parts of the SoftDevice to any third
-party. Licensee agrees to provide reasonable security precautions to
-prevent unauthorized access to or use of the SoftDevice as proscribed
-herein. Licensee also agrees that use of and access to the SoftDevice
-will be strictly limited to the employees and subcontractors of the
-Licensee necessary for the performance of development, verification
-and production tasks under this Agreement. The Licensee is responsible
-for making such employees and subcontractors comply with the
-obligations concerning use and non-disclosure of the SoftDevice.
-
-
-6.	No Other Rights 
-
-Licensee shall use the SoftDevice only in compliance with this
-Agreement and shall refrain from using the SoftDevice in any way that
-may be contrary to this Agreement.
-
-
-7.	Fees 
-
-Nordic grants the License to the Licensee free of charge provided that
-the Licensee undertakes the obligations in the Agreement and warrants
-to comply with the Agreement.
-
-
-8.	DISCLAIMER OF WARRANTY 
-
-THE SOFTDEVICE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND
-EXPRESS OR IMPLIED AND NEITHER NORDIC, ITS LICENSORS OR AFFILIATES NOR
-THE COPYRIGHT HOLDERS MAKE ANY REPRESENTATIONS OR WARRANTIES, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR THAT THE
-SOFTDEVICE WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS,
-TRADEMARKS OR OTHER RIGHTS. THERE IS NO WARRANTY BY NORDIC OR BY ANY
-OTHER PARTY THAT THE FUNCTIONS CONTAINED IN THE SOFTDEVICE WILL MEET
-THE REQUIREMENTS OF LICENSEE OR THAT THE OPERATION OF THE SOFTDEVICE
-WILL BE UNINTERRUPTED OR ERROR-FREE. LICENSEE ASSUMES ALL
-RESPONSIBILITY AND RISK FOR THE SELECTION OF THE SOFTDEVICE TO ACHIEVE
-LICENSEE’S INTENDED RESULTS AND FOR THE INSTALLATION, USE AND RESULTS
-OBTAINED FROM IT.
-
-
-9.	No Support
-
-Nordic is not obligated to furnish or make available to Licensee any
-further information, software, technical information, know-how,
-show-how, bug-fixes or support. Nordic reserves the right to make
-changes to the SoftDevice without further notice.
-
-
-10.	Limitation of Liability
-
-In no event shall Nordic, its employees or suppliers, licensors or
-affiliates be liable for any lost profits, revenue, sales, data or
-costs of procurement of substitute goods or services, property damage,
-personal injury, interruption of business, loss of business
-information or for any special, direct, indirect, incidental,
-economic, punitive, special or consequential damages, however caused
-and whether arising under contract, tort, negligence, or other theory
-of liability arising out of the use of or inability to use the
-SoftDevice, even if Nordic or its employees or suppliers, licensors or
-affiliates are advised of the possibility of such damages. Because
-some countries/states/jurisdictions do not allow the exclusion or
-limitation of liability, but may allow liability to be limited, in
-such cases, Nordic, its employees or licensors or affiliates’
-liability shall be limited to USD 50.
-
-
-11.	Breach of Contract
-
-Upon a breach of contract by the Licensee, Nordic and its licensor are
-entitled to damages in respect of any direct loss which can be
-reasonably attributed to the breach by the Licensee. If the Licensee
-has acted with gross negligence or willful misconduct, the Licensee
-shall cover both direct and indirect costs for Nordic and its
-licensors.
-
-
-12.	Indemnity
-
-Licensee undertakes to indemnify, hold harmless and defend Nordic and
-its directors, officers, affiliates, shareholders, licensors,
-employees and agents from and against any claims or lawsuits,
-including attorney's fees, that arise or result of the Licensee’s
-execution of the License and which is not due to causes for which
-Nordic is responsible.
-
-
-13.	Governing Law
-
-This Agreement shall be construed according to the laws of Norway, and
-hereby submits to the exclusive jurisdiction of the Oslo tingrett.
-
-
-14.	Assignment
-
-Licensee shall not assign this Agreement or any rights or obligations
-hereunder without the prior written consent of Nordic.
-
-
-15.	Termination
-
-Without prejudice to any other rights, Nordic may cancel this
-Agreement if Licensee does not abide by the terms and conditions of
-this Agreement. Upon termination Licensee must promptly cease the use
-of the License and destroy all copies of the Licensed Technology and
-any other material provided by Nordic or its affiliate, or produced by
-the Licensee in connection with the Agreement or the Licensed
-Technology.
-
-
-16.	Third party beneficiaries  
-
-Nordic’s licensors are intended third party beneficiaries under this
-Agreement.
-
-
-
Binary file targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_migration-document.pdf has changed
--- a/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_readme.txt	Tue Mar 18 11:00:08 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-s110_nrf51822_6.0.0
-
-This release consists of the following:
-- This readme file
-- The s110_nrf51822_6.0.0 license
-- The s110_nrf51822_6.0.0 softdevice (binary hex file)
-- The s110_nrf51822_6.0.0 API (softdevice header files)
-- The s110_nrf51822_6.0.0 release notes
-- The s110_nrf51822_6.0.0 migration document
-
-
-IMPORTANT NOTE: If you intend to use the softdevice with the nRF51
-SDK only, you do _not_ need the API files. The API header files are
-already installed as part of the nRF51 SDK versions 5.0.0 and 5.1.0.
Binary file targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_releasenotes.pdf has changed
--- a/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6.0.0/s110_nrf51822_6.0.0_softdevice.hex	Tue Mar 18 11:00:08 2014 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4835 +0,0 @@
-:020000040000FA
-:10000000481C0020992B0100F1160100CF2A0100A5
-:1000100000000000000000000000000000000000E0
-:100020000000000000000000000000000D2C010096
-:100030000000000000000000F1160100F1160100B0
-:10004000752C01007B2C0100F1160100F116010056
-:10005000F1160100F1160100F1160100F116010080
-:10006000812C0100F1160100F1160100872C01001E
-:10007000F11601008D2C0100B9020000FF81000083
-:10008000F1160100F1160100F1160100F116010050
-:10009000F1160100F1160100F1160100F116010040
-:1000A000932C0100992C0100F1160100F1160100BA
-:1000B000F1160100F1160100F1160100F116010020
-:1000C00000F002F812F04FFD0CA030C808382418D8
-:1000D0002D18A246671EAB4654465D46AC4201D180
-:1000E00012F041FD7E460F3E0FCCB646012633424C
-:1000F00000D0FB1AA246AB46334318475C2C0100E4
-:100100008C2C0100103A02D378C878C1FAD8520773
-:1001100001D330C830C101D504680C6070470000BD
-:100120000023002400250026103A01D378C1FBD813
-:10013000520700D330C100D50B6070471FB5C046D1
-:10014000C04612F093FC04B00FB41FBD826902498F
-:100150008161024810447047610100000100000005
-:1001600001B41EB400B50FF067FE01B401988646D5
-:1001700001BC01B01EBD0000F0B4404649465246E5
-:100180005B460FB402A0013001B50648004700BF2E
-:1001900001BC86460FBC8046894692469B46F0BC11
-:1001A00070470000C1000000401E00BF00BF00BF3C
-:1001B00000BF00BF00BF00BF00BF00BF00BF00BF47
-:1001C00000BFF1D17047000070B505460C461646D9
-:1001D00002E00FCC0FC5103E102EFAD2082E02D32B
-:1001E00003CC03C5083E042E07D301CC01C5361F3E
-:1001F00003E021782970641C6D1C761EF9D270BD55
-:100200008307FF22DB0E9A408907090E99400028D8
-:100210000BDA0007000F0838830828489B001B18DA
-:10022000D86990430843D8617047830824489B00ED
-:100230001B181868904308431860704710B50446AF
-:1002400000210120FFF7DCFF00211820FFF7D8FF75
-:1002500000210B20FFF7D4FF02211920FFF7D0FF68
-:1002600002210D20FFF7CCFF02210E20FFF7C8FF6F
-:1002700002210F20FFF7C4FF0221C81FFFF7C0FFB4
-:1002800003211620FFF7BCFF03211520FFF7B8FF5D
-:10029000204600F019F8002010BD49210180704768
-:1002A00010B500F04FF810BD0648704710B500F0CB
-:1002B0004AF810BD704770477047000000ED00E03D
-:1002C00000E400E003F900C330B50546384C95B0B2
-:1002D00006202070A01CFFF7E0FF5920A0803548C1
-:1002E00061880069344A80B2D269344B120C98425A
-:1002F00004D18A4208D032A1B42003E0884203D05E
-:100300002FA1B72012F0DDFB334802F057F9044665
-:10031000072000F0D7F92146254800F015FA6D1E98
-:10032000072D0AD8302168460170857001F0CCF99C
-:10033000002802D009A800F065FC204601F0BBFAB5
-:1003400015B030BD704710B50C46014660390B2919
-:1003500003D8214601F01CFF06E001466C39032951
-:1003600004D8214601F047FF206010BD01467039D6
-:100370001F2903D8214600F03FF8F5E701469039E0
-:100380000F2903D8214600F0C1F8EDE70146A03956
-:100390000F2903D8214600F029F9E5E70146B039D5
-:1003A0000F2903D8214600F006F9DDE70120DBE73D
-:1003B000140000200010001040000010FFFF00009B
-:1003C0007372635C636F72655F66756E6374696F89
-:1003D0006E732E63000000006D1C000070477047B4
-:1003E00070477047704770477047704710B50128D5
-:1003F00001D100F0CEF910BD10B57038030012F035
-:1004000065FC150C10141C20232A31363B3F434752
-:100410004E535A626A72797E8300086803F0FDFBCE
-:1004200010BD086803F050FC10BD0C790B7B8A6886
-:100430000868214603F06EFC10BD086803F0E8FC74
-:1004400010BD03F0BAF910BD08884A6880B21146A1
-:1004500003F06CFE10BD0A790888114680B203F0E3
-:10046000BCFE10BD087840B203F0C7FE10BD08887E
-:1004700080B203F0E3FE10BD086803F0F2FE10BD89
-:10048000086803F00AFF10BD086803F036FF10BDCE
-:10049000088982B209C9194603F061FF10BD05C978
-:1004A000114603F0B0FF10BD08884A6880B21146BB
-:1004B00003F0CEFF10BD0B7908888A6880B2194618
-:1004C00004F010F810BD0B7908888A6880B21946CC
-:1004D00004F0B9F810BD08884B688A6880B21946E4
-:1004E00004F0FAF810BD08884A6880B2114604F09A
-:1004F00045F910BD088880B204F05EF910BD088887
-:1005000080B204F07CF910BD012010BD10B5903808
-:10051000030012F0DBFB09060F161D242C363F46A4
-:100520004E0088888A6883B20888194680B204F031
-:1005300030FD10BD08884A6880B2114604F086FD7F
-:1005400010BD08884A6880B2114604F0C9FD10BD8C
-:1005500008884A6880B2114604F0FFFD10BD088883
-:100560004B688A6880B2194604F030FE10BD0889D5
-:1005700082B2888883B20888194680B204F065FE8A
-:1005800010BD08894B6882B20888194680B204F011
-:100590009AFE10BD08884A6880B2114604F0CAFE6F
-:1005A00010BD888882B20888114680B204F05EFFD0
-:1005B00010BD012010BD10B5B02805D0B12808D05D
-:1005C000B2280BD0012010BD088880B205F042FA95
-:1005D00010BD088880B205F06DFA10BD08884B6820
-:1005E0008A6880B2194605F076FA10BD10B5A038B9
-:1005F000030012F06BFB0B070E172028323C434D13
-:10060000545D65004B6808788A68194606F090FDCD
-:1006100010BD88888A6883B20888194680B206F0BF
-:100620009CFD10BD08884C68CB688A6880B2214662
-:1006300006F0A3FD10BD08884B688A6880B2194691
-:1006400006F0BDFD10BD8888CB6884B208888A6832
-:1006500080B2214606F0DDFD10BD8888CB6884B2EB
-:1006600008888A6880B2214606F0E3FD10BD08883C
-:100670004A6880B2114606F00BFE10BD088982B2AE
-:10068000888883B20888194680B206F00BFE10BD38
-:1006900008884A6880B2114606F024FE10BD088919
-:1006A0004B6882B20888194680B206F0A1FE10BDE0
-:1006B00008884B688A6880B2194606F05EFF10BD54
-:1006C000012010BD10B507F09BF80FF0CFF907F02F
-:1006D00049FD0FF01DFB07F0B3FD07F0D1FC10BD85
-:1006E0001CB50446002069460870204608F020FD2D
-:1006F0006946204608F0DEFB002803D1FBA1B120AB
-:1007000012F0DFF901A9204608F033FB002803D1DD
-:10071000F6A1B62012F0D5F9684600781CBD70B578
-:10072000F74D002428462C7620308471C47112F0D5
-:10073000DBFA284640380470203084738474847651
-:100740002C74AC7070BDEAE710B50C46ED49828898
-:100750008A8042884A800078087008460A38847087
-:1007600008F0DDFAFFF7DBFF204609F01FFDE44A41
-:10077000E0321146383908461446813808F04AFDFF
-:100780002146E0480AF0FDFF08F0C9FC12F0ACFA7F
-:1007900010BD10B50120FFF721FE10BDF8B509F01E
-:1007A0004CF9D84DD64C0A3D022802D0207C0028B6
-:1007B0007CD0207E0026102819D1A078002803D0F4
-:1007C000CAA1D14812F07DF9CD48E838817A89076D
-:1007D0000DD50146267160398989E180C17A21727F
-:1007E00081896181C089A0810120A0702676C44FD3
-:1007F000203FB87C002859D1C4486946808908F058
-:1008000059FB002805D06946687809784018687057
-:1008100004E0C520B5A1C00012F053F9207C0028E7
-:1008200038D0BA488189FF300930406D80898142D3
-:1008300004D0B548ADA1223012F043F9B348808905
-:1008400008F0DEFB002804D1AF48A8A1283012F040
-:1008500038F908F04CFC00281CD0AC488089FFF720
-:100860003FFF697840186870A5484038416D2031D5
-:100870000A7C012A0DD1A54A3E779289C287487C1D
-:1008800020700120B876207E102801D0282800D1C1
-:10089000267626746978002908D09C488289FF3022
-:1008A0000930C28601870120B8746E7009F0BAF869
-:1008B000002805D1207C002802D0A87801F0A2FEF3
-:1008C000F8BDF8B50F460446FFF768FF8C4D403D74
-:1008D00028788B4E002813D0002F10D1307E0028AE
-:1008E00004D0FF2081A1BE3012F0EBF82C22A91C0D
-:1008F000204611F049FF0E202070002028708FE064
-:100900007F4D203DA87B002818D0002FF7D1307EE6
-:10091000102808D0282806D0002804D0FF2073A172
-:10092000CA3012F0CEF80120E070E87BA070287C7D
-:1009300060700F2020700020A87371E00121204614
-:1009400008F00EFC002807D0307C002851D1394631
-:10095000204608F005FCF8BDA97C69480C380090D9
-:1009600068480A38002913D00178052910D2002FD1
-:1009700056D1491C0170002666700D2020700120A0
-:1009800028750622A01C009911F0FEFEAE7447E007
-:100990005C4800210A380170B078002814D0002F7C
-:1009A0003ED1307E002803D050A1594812F089F87A
-:1009B000002565700120524920700A22091DA01CE3
-:1009C00011F0E2FEB5702BE0394620460AF046FEF3
-:1009D000002825D1A87C002805D0002F20D1494827
-:1009E0000A380178C5E7A87E002802D0307C0028AC
-:1009F00001D00020F8BD002F12D1307E002804D095
-:100A00008D203AA1800012F05CF8002666700A2062
-:100A10003B4920700622091FA01C11F0B5FEAE76DE
-:100A20000120F8BD10B53648017E002908D1007CB0
-:100A3000012805D001210020FFF743FF002801D045
-:100A4000072010BD012010BD10B5012409F0F8FBEE
-:100A50000443FFF7E7FF044308F062FB014621432C
-:100A6000084610BDF8B51D4614460E4608F0A1F91B
-:100A7000002807D0684608F0A7F9002803D0002C0A
-:100A800007D101E00120F8BD992018A1800012F0E3
-:100A900018F808F045F9A04204D21D4813A15830B7
-:100AA00012F00FF8009807F0B9FD3146009807F0F2
-:100AB000C7FDE2B22946009807F07EFF08F096F9DC
-:100AC000002804D19D2009A1800011F0FAFF08F050
-:100AD00029FB0E4800244030C17B002902D0C4739A
-:100AE00009F080FC0948C480CCE700007372635CA5
-:100AF0006C6C5F6374726C2E73302E6300000000A8
-:100B0000E0020020240000200B06000098010020D5
-:100B10000D02000010B50179002907D001290AD083
-:100B2000F749FE2011F0CDFF002010BD831D428843
-:100B30000488022103E042880488831D01212046A5
-:100B4000FFF790FF10BDF8B51F4615460E46044648
-:100B500008F073FF022803D0EA48007C00281FD069
-:100B6000E9488089208008F04BFA002803D1E44945
-:100B7000E64811F0A6FF0524684608F04CFA002864
-:100B80000ED0009807F094FD3070022809D001289B
-:100B900007D008F080FA641E2406240EECD1002051
-:100BA000F8BD3946009807F01FFF2880002804D1BF
-:100BB000D648D349123011F084FF08F06CFA0028AF
-:100BC00004D1AF20CE49800011F07BFF0120F8BD99
-:100BD00038B50446831D821C6946FFF7B4FF002820
-:100BE0000DD00020607168460078012808D00228E6
-:100BF00006D0FF20C249203011F063FF012038BD2C
-:100C00002071FBE700215CE670B5BE4C0546403C18
-:100C10002078002803D1BB48007E002803D0B849C3
-:100C2000BB4811F04EFF287808F093FB28780AF0B3
-:100C3000EEFE00202071012060713921E1702070EA
-:100C400070BD70B5AF4D0446403D2878002803D1F3
-:100C5000AC48007E002804D0AD48A949183811F0EE
-:100C600030FFA94E2188B089884203D108F0E5FE03
-:100C7000022807D002202871012068713821E9700C
-:100C8000287070BD7F2070769F48E1782030C17356
-:100C9000A17881730020EEE710B59A4C403C207893
-:100CA000002807D19748007E002803D108F0C5FE30
-:100CB000032804D161209249C00011F002FF91493C
-:100CC00000202031C8712071012060713A21E1704B
-:100CD000207010BD70B58B4C0646403C2078002833
-:100CE00007D18848007E002803D108F0A6FE03281B
-:100CF00004D186488249783011F0E3FE814D2035D9
-:100D0000E87908280CD2E87910220001001968302F
-:100D1000314600F09FFDE879401CE871002000E0BA
-:100D200007202071012060713B21E170207070BDAF
-:100D3000F8B5744C0546403C2078002803D1714832
-:100D4000007E002804D072486D49443811F0B9FE85
-:100D5000A878002801D0012804D1A888FF21F53106
-:100D6000884204D96A4866493E3811F0AAFE664EA8
-:100D70002988B089884203D108F05FFE022807D095
-:100D800002202071012060713621E1702070F8BDD1
-:100D90005D48002720308772A988B185012131760E
-:100DA000A978012900D00021817257484030C07BCA
-:100DB000002801D009F016FB2771E3E770B5514C0C
-:100DC0000546403C2078002807D14E48007E002888
-:100DD00003D108F032FE002804D04D484849673856
-:100DE00011F06FFE287809F02EFA00202071012002
-:100DF00060713021E170207070BD70B5414C0546C6
-:100E0000403C2078002803D13E48007E002804D0D2
-:100E10003F483B490D3011F054FE287800280BD094
-:100E2000012809D0022807D06878402804D3384820
-:100E30003349143011F045FE284608F0F6FD00282D
-:100E400001D0002000E00C202071012060713421CD
-:100E5000E170207070BD70B52A4C0546403C20788A
-:100E6000002807D12748007E002803D108F0E5FDBF
-:100E7000002804D0264822495C3811F022FE297847
-:100E8000002914D00A2912D0142910D01E290ED0FE
-:100E900028290CD032290AD04B2908D0642906D041
-:100EA000FF2904D01A481649503811F00AFE284686
-:100EB00009F028FA00202071012060713321E170CF
-:100EC000207070BD70B50F4C0546403C207800285E
-:100ED00003D10C4A107E002804D00D48084975380B
-:100EE00011F0EFFD062229460A4811F04DFC0020C2
-:100EF0002071012060713221E170207070BD00000E
-:100F0000EC0A0000E002002098010020A30200008B
-:100F1000910500001D00002070B5F84C05462078B2
-:100F2000002804D120464030007E002803D0F44938
-:100F3000F44811F0C6FD00216956042914D0002997
-:100F400012D0081D10D0001D0ED0001D0CD0001DA9
-:100F50000AD0001D08D00A3006D0283104D0A120C4
-:100F6000E749C00011F0ADFDE74829780170012084
-:100F700060713121E1702070C0E710B5DF4C20783E
-:100F8000002804D120464030007E002804D067208D
-:100F9000DB49000111F095FD07F0C2FEE08007F08B
-:100FA00087FF207200202071012060710521E1700F
-:100FB000207010BDF8B5D14C07462034A07B2546E3
-:100FC0002035002805D1287E002802D1A8780028E5
-:100FD00004D0CC48CA492A3811F073FD08F02DFD21
-:100FE0001026022822D1C9483988808988421DD11B
-:100FF000C249483908460A7F6038807A002A03D0FF
-:1010000080070CD40C200CE0800708D40620087759
-:10101000BE484030C07B002801D009F0E3F92E76AD
-:101020000020E07326740120A073F8BD0220F8E7C9
-:1010300010B5B24C2078002804D120464030007E04
-:10104000002804D0AF48AE493C3811F03AFD0020EA
-:1010500020710E20A0700F20E070FF20A0710020F2
-:10106000C0432081AA480178A1728188A18140886B
-:10107000E08101206071207010BD10B59F4C207878
-:10108000002804D120464030007E002804D0DB2018
-:101090009B49800011F015FD0821A01D0EF082FD76
-:1010A00000202071012060712B21E170207010BDA3
-:1010B00070B5924D04462878002804D12846403067
-:1010C000007E002804D0B7208D49C00011F0F9FC43
-:1010D0008E4810222146303800F0BCFB8B4810228D
-:1010E000A118203800F0B6FB884830380EF061FEB9
-:1010F0008649102210392C46A81D00F0ABFB0020B9
-:1011000020710E20A0702A20E070012060712070F4
-:10111000F4E6F8B5794C05462034A07B2646203607
-:10112000002802D1307E002804D076487449DC388B
-:1011300011F0C7FCA978052912D0132910D0142961
-:101140000ED015290CD01A290AD0292908D03D29FA
-:1011500006D03B2904D06B486949D43811F0B1FC62
-:1011600028886C49884204D966486549CB3811F013
-:10117000A8FC08F062FC0C212827022809D163484A
-:101180002A888089904215D15C484838027E002A1E
-:1011900001D0E17310E0A97841760121017637761C
-:1011A0000020E07359484030C07B002804D009F08B
-:1011B00019F901E00220E07327740120A073F8BD43
-:1011C00070B54E4C05462078002804D122464032A6
-:1011D000107E002804D083204949C00011F071FC22
-:1011E0004648294660300622054611F0CDFA012016
-:1011F000A8710021217160711721E17020707DE6D6
-:10120000F0B5414F85B0403F3D7A06463B480078F7
-:10121000002804D13846A038007E002803D0384981
-:101220003D4811F04EFC3078002806D0012804D04B
-:101230000D203349800111F044FC082D39D2324889
-:1012400020380190C469307800282CD0012804D0BF
-:1012500031482B490F3011F034FC29460831012068
-:10126000884004430120A84020430090B179234CDA
-:1012700008027279690009191043FF310131888130
-:10128000B01C11F0E2FA717800020843A9000919B4
-:10129000C031C862387A401C387201990098C86120
-:1012A0000020207108E0294608310120884084434D
-:1012B000D8E7124807210171012110480B22417122
-:1012C000C270017005B0F0BD10B50C4C207800283C
-:1012D00004D120464030007E002804D00E48084942
-:1012E0000E3811F0EEFB11F0FFFC00202071012000
-:1012F00060710A21E170207010BD0000A002002082
-:10130000EC0A000006050000C00300209801002040
-:1013100024000020FF0E00003F03000010B508F07D
-:101320000AFF002803D0FC49FC4811F0CAFB07F073
-:10133000F5FE07F0D8FC0AF016FA002804D0F748AA
-:10134000F5490E3011F0BDFB07F039FF002804D03D
-:10135000F248F149123011F0B4FB11F0C5FCF0482D
-:1013600000240470FFF7DBF9EE480121047141719C
-:101370000222C2700170BFE770B5EA4D04462878BA
-:10138000002804D128464030007E002804D0EF20F9
-:10139000E149800011F095FB20781F2801D8601CDE
-:1013A00004D1DE48DC49DE3011F08BFB00202871CF
-:1013B0002078611C07F0BCFF012068712021E970D2
-:1013C00028709BE5F8B5D74C054620782646403670
-:1013D00000280CD1307E002809D108F02EFB00280F
-:1013E00002D1307C002807D0287800280ED0CB48C6
-:1013F000C949EB3011F065FB2878012806D0002898
-:1014000004D0C648C449F03011F05BFB0120607184
-:1014100028780027C44D01280BD0002008F074FE66
-:10142000002844D00C2020711B20E0700120207087
-:10143000F8BD0C20207107F003FF0028F4D0BA4853
-:1014400002210C300EF037FB002806D00F21A889AE
-:10145000090211F013FAA98100E0AF8101220321F2
-:10146000B14807F0E9FAB04808F051F8A88907F048
-:1014700059FC002803D1A849AC4811F022FBA889E7
-:10148000002107F053FE002804D0A848A249001DFF
-:1014900011F017FB317F708B08F0D9FE002804D0C3
-:1014A000A2489D49083011F00CFB2771BCE7277159
-:1014B000307C0028B8D1A889FFF712F9B4E770B5DD
-:1014C000984D04462878002804D128464030007EF4
-:1014D000002804D0954890493B3811F0F2FA207862
-:1014E0001F2801D8601C04D190488B493A3811F06C
-:1014F000E8FA002028712078611C07F02DFF0120F8
-:1015000068711A21E9702870F8E4F8B5854D044631
-:1015100028780C272E464036002806D1307E002839
-:1015200003D108F08AFA032804D16F207A49C00059
-:1015300011F0C7FA6079002801D001282FD1A079D5
-:10154000002801D001282AD1A07B002805D001283D
-:1015500003D0022801D0032821D1607B40071ED090
-:10156000618801208003814202D82288824201D909
-:1015700020790CE02079002804D0022805D0032827
-:1015800003D004E0202904D209E0A02A01D20128D6
-:1015900005D12088884207D92079012804D06348E2
-:1015A0005D495F3811F08DFA20887083207930779B
-:1015B0006079002802D0012803D00CE05C4A0021A9
-:1015C00005E0584A60329079002804D00121204675
-:1015D00007F03AFE074601202F7168711821E97063
-:1015E0002870F8BD70B54F4C05462078002804D10E
-:1015F00020464030007E002804D04C484649B63092
-:1016000011F05FFA08F019FA0C2102280ED14648B1
-:101610002A8883899A4219D10246C032137F002B4F
-:1016200004D1807E0E2803D00F2801D0217103E061
-:1016300005201077002020710E20A0702E20E07071
-:101640002888E08001206071207057E40220F2E7D2
-:1016500070B5344C05462078002804D1204640302F
-:10166000007E002804D031482B498A3011F029FA35
-:1016700008F0E3F90C2102280ED12B482A8883892F
-:101680009A421FD10646C036327F002A04D1807E9E
-:101690000E2803D00F2801D0217109E02148102223
-:1016A000A91C1E3811F070F804203077002020713A
-:1016B0000E20A0702D20E0702888E080012060714D
-:1016C00020701BE40220F2E710B501780B0011F046
-:1016D000FDFA3C90904590906590909090484B908A
-:1016E00090905E619090909090904F3590393D90A1
-:1016F00090909041909090909090905390575B90E4
-:101700001F319078686C7074907C90878B84809087
-:10171000801CFFF79DFF6AE0EC0A0000DF0200007A
-:10172000C0030020A002002098010020E90300006F
-:101730001D000020801CFFF755FF58E0801CFFF7BC
-:10174000E4FE54E0801CFFF7BAFE50E0801CFFF777
-:1017500039FE4CE0801CFFF70FFE48E0FFF7DEFD8E
-:1017600045E0FFF7B1FD42E0801CFFF749FD3EE098
-:10177000801CFFF725FD3AE0801CFFF7CAFC36E02D
-:10178000801CFFF795FC32E0FFF777FC2FE0FFF7B6
-:101790004FFC2CE0801CFFF70DFC28E0FFF7EDFB71
-:1017A00025E0801CFFF7B8FB21E0801CFFF78AFBD7
-:1017B0001DE0801CFFF74FFB19E0801CFFF71DFBAD
-:1017C00015E0801CFFF7FAFA11E0801CFFF7B0FA71
-:1017D0000DE0801CFFF77EFA09E0FFF75DFA06E0F6
-:1017E000801CFFF72EFA02E0801CFFF70DFA0120A3
-:1017F00082E5002080E510B51D491E4811F061F911
-:101800007AE570B51D4A012411461B4D4031030095
-:1018100011F05CFA05191C1C04191C00012200219E
-:10182000154807F009F91548002148380177417734
-:10183000C03808F068FD002804D00E480C49D330A9
-:1018400011F03FF964E40C74556561E46D200849BA
-:101850000001F5E730B5134606E0CC18203CE47FE4
-:10186000D51A44555B1EDBB2002BF6D130BD00000B
-:10187000EC0A0000CA05000098010020A002002028
-:1018800010B5030011F022FA070805080B0B0E0E25
-:10189000110003F0FAFF10BD01F0BAFF10BD0BF00C
-:1018A0009BFF10BD0DF004FE10BDFF20F8A17D30A0
-:1018B00011F007F910BD7FB5F94AFA4C51689268EA
-:1018C0000192009120700823F74A1946F7480EF05C
-:1018D00093FB0025F6480EF0ADFB6D1CEDB2072D15
-:1018E000F8D3F1490320803140020BF0C7FF0028F4
-:1018F00003D0E7A1912011F0E4F81E220221ED4867
-:101900000AF077FBEB481E22032110300BF0EBF8B6
-:10191000E8480722342174300AF0C4FAE5484C2123
-:10192000283010F090FFE3496A46743108464C387D
-:101930004164FF317B31816401211172039002F017
-:1019400016F902A80CF0CCFA002803D0D0A1A520EB
-:1019500011F0B7F8D54802222421A8380AF0A2FADB
-:10196000D24802222C215C380AF09CFAD2490B2082
-:101970000DF08AFE002803D0C5A1B22011F0A1F815
-:1019800003F070FF03F076F904F0D6FD6B46CB4A06
-:101990000821CBA002F04BF8002803D0BCA1B9204D
-:1019A00011F08FF8012005F0C8F8002803D0B8A185
-:1019B000BB2011F086F87921C900C44810F043FF1C
-:1019C000C249B74A0020135C0D18401CC0B2EB702E
-:1019D0000428F8D3002060606070A0707FBD70B5EF
-:1019E000BB4E0546706A94B00C46401C04D1B06AE8
-:1019F000C0430004000C0BD0306AC007C00F287031
-:101A0000706A10F033FFB06A2071000A607113E051
-:101A10002B206946087009A968460AF089FA00284F
-:101A200003D09BA1DF2011F04CF801202870062282
-:101A30000AA9204610F0A8FE2878002815D0607961
-:101A4000C0210843607117206946087000A806226B
-:101A50002146023010F098FE09A968460AF068FA9B
-:101A6000002816D08AA1F42011E0322069460870BF
-:101A700000A806222146023010F086FE09A9684619
-:101A80000AF056FA002804D0FF2081A1013011F09D
-:101A900018F814B070BDF0B58D4C0646206895B0AE
-:101AA0000D463746401C0837002808D16068401CA6
-:101AB00005D1A068401C02D1E068401C11D020680C
-:101AC000314610F0D3FE6068311D10F0CFFEA068E3
-:101AD000394610F0CBFEE06831460C3110F0C6FEFE
-:101AE00025E02B206946087009A968460AF020FA0B
-:101AF000002804D0FF2066A1203010F0E2FF082269
-:101B00000AA9304610F040FE2B206946087009A94A
-:101B100068460AF00DFA002804D0FF205CA12730A7
-:101B200010F0CFFF08220AA9384610F02DFE2069D8
-:101B30002E46401C0836002808D16069401C05D19B
-:101B4000A069401C02D1E069401C12D020692946DE
-:101B500010F08CFE6069291D10F088FEA0693146E6
-:101B600010F084FEE06929460C3110F07FFE15B0BC
-:101B7000F0BD2B246846047009A90AF0D9F90028A1
-:101B800004D0FF2042A1453010F09BFF082209AF8E
-:101B90000AA9284610F0F8FD6846047009A90AF061
-:101BA000C7F9002804D0FF2039A14C3010F089FF7C
-:101BB0000822391D304610F0E7FDD8E710B50021A6
-:101BC00008460EF0ECFA002101200EF0E8FA0021A0
-:101BD00002200EF0E4FA002103200EF0E0FA0021CA
-:101BE00004200EF0DCFA002105200EF0D8FA10BD1A
-:101BF00010B5364CA0780A2804D3FF2024A19630D3
-:101C000010F05FFF20786021484300190830002160
-:101C100001704178E722C908C900C91C1140417010
-:101C2000204A0121517010BD70B51E4C607800280B
-:101C30000ED0264800250178491CC9B201700A2936
-:101C400000D105708178491C81700EF072FB6570BF
-:101C500070BD70B5134C05466068002804D0FF20A5
-:101C60000BA1BF3010F02DFF656070BD70B50D4E3B
-:101C7000164DFFF7BDFF7168044600292AD0602287
-:101C8000FEF7A2FAFFF7D0FF00207060F1E7000036
-:101C90007372635C686F73745F636F72652E630049
-:101CA000F82C01002C000020C40300206C1100203F
-:101CB00081180000440A0020141000203412000093
-:101CC0006E52463531383232000000004C0C002094
-:101CD000800000102879002852D0FE480AF0F2F85F
-:101CE0006060002804D1FF20FB49DD3010F0E9FEE0
-:101CF00060680AF045F9002810D0204601F0A5F8E8
-:101D00006078010707D5C008C000401C60702879C2
-:101D1000401E287126E0EF48616829E0ED486168BF
-:101D20000AF0D9F8687900282AD0EA484C380AF035
-:101D3000C9F86060002803D1E749E84810F0C1FE07
-:101D400060680AF021F9002815D0204603F0DCFD78
-:101D50006078010709D5C008C000801C60706879F0
-:101D6000401E6871FFF760FF83E7DA4861684C380E
-:101D70000AF0B1F87DE7D74861684C380AF0ABF853
-:101D800070BDF7B505460078002700090C463E46B1
-:101D9000062804D0D148D049223010F092FE287A8B
-:101DA00000280ED0012814D0CC48CB49433010F085
-:101DB00088FE0298002C068001D0278066800020D3
-:101DC000FEBD02270926002C0ED0A889A080A87B82
-:101DD00008E003271426002C06D02869E060A88AB2
-:101DE0002082287B2072E4E702980680E7E770B53E
-:101DF0000E4600211C4619801546030010F066FFB0
-:101E00000723050B1711231D2300224629463046C0
-:101E100003F046FD70BD22462946304601F09BFA8C
-:101E200070BD22462946304604F081FA70BD224634
-:101E30002946304602F052FF70BD22462946304600
-:101E4000FFF79FFF70BD4D20A349C00010F039FE81
-:101E5000032070BD01469F4810B54C380AF03BF88E
-:101E60009F494879401CC0B24871012803D19D4860
-:101E7000007800F0C7FB10BDF8B505460720400705
-:101E80000F460A18012189038A4209D2002D02D087
-:101E90002818884204D2E81C80088000A84201D09B
-:101EA0001020F8BD8E488178002911D03988009122
-:101EB0004178602251430C18083420783B460007D3
-:101EC000000F00222146FFF792FF060004D015E024
-:101ED000002038800520F8BD002D13D039880098E7
-:101EE000814201D90C260DE020783B460007000F07
-:101EF0002A462146FFF77BFF060005D00C2E01D0B5
-:101F0000002038803046F8BD754D6878401CC0B25E
-:101F100068700A2801D100206870A878401EA87057
-:101F200061784807400F022810D00128EAD169489B
-:101F3000616809F0D0FF2879401CC0B228710128DF
-:101F4000E0D16848007800F05DFBDBE7C806D9D433
-:101F50006068FFF77FFFD5E770B504466248164614
-:101F60000D46814204D15D485B49DB3010F0A9FD8C
-:101F7000012E05D059485849EB3010F0A2FD70BD34
-:101F80005848012181706620207000202072A581B0
-:101F9000A17370BD70B516460D46040001D1FFF760
-:101FA00027FE662101700121017229680161A9885B
-:101FB00081820673002C01D1FFF736FE70BD072128
-:101FC0004907012241189203914201D31020704722
-:101FD0000721017000207047052210B5920390423E
-:101FE0000ED301239B04C21A404B9A4208D3404BA4
-:101FF000984205D2072252078A18DB139A4201D36E
-:10200000102010BD0DF079FB10BD052310B59B030A
-:1020100099420ED301239B04344CCB1AA34208D31C
-:10202000334B994205D2E3020124D318A403A342FF
-:1020300001D3102010BD022803D0102801D00920A0
-:1020400010BD0DF080FB0028FAD0052010BD70B542
-:1020500005239B03984212D301239B04234CC31AEC
-:10206000A3420CD3224B984209D2E4020D19DB1390
-:102070009D4204D2002A04D014199C4201D310209E
-:1020800070BD0DF086FB0028FAD0072070BD10B59A
-:1020900004460720400701212018890394B0884294
-:1020A00002D3102014B010BD01F0ADFD002801D006
-:1020B0001120F7E70F2008A9087369460BA809F05B
-:1020C00037FF0028EED16846007A207068464089C4
-:1020D00060800FE010110020901C0000FF01000044
-:1020E0004C0C00202C000020FFFF00000000FC1F13
-:1020F0000040002068468089A0800020D2E710B50B
-:1021000094B0044601F07FFD002801D01120C9E7FA
-:10211000002C01D00720C5E7392168460170002155
-:10212000817009A909F004FF002803D01549164859
-:1021300010F0C7FC0020B5E770B5144C0846A17834
-:10214000002913D000280FD0072252070123851839
-:102150009B039D4203D20568AA189A4201D310201E
-:1021600070BD8288002A03D0012903D0082070BDE9
-:10217000092070BD04F042FA0028FAD10021A170B4
-:1021800070BD0000901C0000790300002C000020AE
-:1021900010B56038030010F099FD07050A0E131AF8
-:1021A00021252C0005C91146FFF766FE10BD086801
-:1021B000FFF705FF10BD05C91146FFF70DFF10BD64
-:1021C0004B6808788A681946FFF71FFF10BD4B68F7
-:1021D0008A6808681946FFF73AFF10BD0868FFF7DC
-:1021E00056FF10BD08884A6880B21146FFF7A4FF69
-:1021F00010BD012010BD10B56C2801D0012010BD0C
-:102200000878FFF77CFF10BD10B5EFF31080C4070E
-:10221000E40F72B6D6484178491C417040780128D5
-:1022200001D10EF0ABF8002C00D162B610BD70B534
-:10223000CF4CE07800280AD10125E570FFF7E4FFD4
-:102240000EF0A4F8002804D000200EF077F800204B
-:1022500070BDC84865714560F9E770B5EFF310804F
-:10226000C507ED0F72B6C24C6078002803D1C2A139
-:102270008F2010F026FC6078401E60706078002887
-:1022800001D10EF07FF8002D00D162B670BD10B5FF
-:10229000B748C178002904D000214171C170FFF70F
-:1022A000DCFF002010BD10B504460EF06FF8B049F9
-:1022B000C978084000D001202060002010BDF8B58A
-:1022C0000246AB4C0026A6710820042101251027E8
-:1022D000130010F0FBFC0D080A0C0E101214161E51
-:1022E000262123252800257122E0022001E021710A
-:1022F0001EE020711CE027711AE02020F9E701267A
-:1023000016E0FFF781FF0EF041F80028FBD002260F
-:102310000EE02171A5710BE02771FBE7202000E0A2
-:1023200040202071F6E7FF2093A17E3010F0C9FB1A
-:102330000EF038F8002809D00EF03AF8B04205D176
-:1023400030460EF038F80028FAD024E0012080074B
-:10235000C5608D4A002151608C4A9661854B0222EE
-:102360005A6085608A4803690569DB43DB06DB1731
-:102370005B1C10273D430561834D00E020BF6F6863
-:10238000002FFBD0002B03D1076910239F43076167
-:10239000784882606960A07900280CD00DF0F6FFC3
-:1023A00005460DF053FF7B4A002D02D0A260E0608D
-:1023B00001E0E260A060002E01D100F0B1F8F8BDAC
-:1023C00010B504460DF0E8FF002805D0684901204B
-:1023D000C8704A78521C4A702046FFF770FF10BD43
-:1023E000F8B5694FB8680025012802D1BD600DF02D
-:1023F000A5FF7868012800D17D60386801265C4C13
-:10240000012814D13D606079002803D000200DF030
-:1024100095FF65712078002809D00DF0B7FF0028DE
-:1024200005D05948C038866300060661A670386931
-:1024300001282CD13D6100F068F801208007466139
-:10244000A079002815D00DF0A1FF00900DF0FEFE40
-:102450000099002901D0E16800E0A168411A022931
-:1024600001DA8A1C13DC0099002901D0E06000E049
-:10247000A060FFF7C9FE0DF089FF002806D0424892
-:10248000C038866300060661A67000E02670F86812
-:10249000012819D100F039F800F037F800F035F8CC
-:1024A000A078002804D1FF2033A1053010F009FBEB
-:1024B000FD60A5702570FFF7D0FE0DF042FA0028F0
-:1024C00002D03148C038C663F8BD10B5284CE0785A
-:1024D000002801D10DF056FF01208107886100F02E
-:1024E00014F8A07800280BD0274CE068002803D10E
-:1024F0000DF061FF0028F8D10020E06000F005F841
-:1025000000201C49C043886010BD08B550206946B2
-:1025100008806A461088411E11800028F9D108BD44
-:10252000F8B5144819278760174900200860C8606B
-:102530000DF02CFFBD0701240D4E002805D01248D8
-:10254000C03884632C61B47000E03470FFF75CFE27
-:10255000084847600D4930798863FFF7D6FFAC61C2
-:10256000FFF7D3FF0849002008616C61F8BD000047
-:1025700034000020000300407372635C736F635F7C
-:10258000636C6F636B2E6300000100400005004028
-:1025900000ED00E0FFFFFF7F01203F49400608609B
-:1025A0003E4908603E490A68FF231B029A43831292
-:1025B0001A430A60384980390860704710B50246EE
-:1025C0000420384904E0C3005B181B79002B0AD0B3
-:1025D0000346401EC0B2002BF5D133A1432010F0BA
-:1025E00070FAFF2010BDC300CA50002259184A716A
-:1025F0008A7101220A7110BD2A4A0021C000801888
-:102600000171704710B50446042803D326A1522057
-:1026100010F057FA2348E1000C182079012803D064
-:1026200021A1532010F04DFA6079A179401CC0B26D
-:10263000814200D060710120174940068031086056
-:1026400010BD70B5164800680004800F022803D042
-:1026500015A1692010F035FA124E194C0325207887
-:10266000C10088190279012A07D1427983799A42F7
-:1026700003D042798271705880472078401CC0B2E4
-:102680002070042801D30020207028466D1EEDB272
-:102690000028E4D170BD000080E100E080E200E0AD
-:1026A00018E400E08C1100207372635C736F635F49
-:1026B0007369676E616C6C696E672E630000000061
-:1026C000440000208107C90E002808DA0007000F27
-:1026D000083880082C4A80008018C06904E080080F
-:1026E0002A4A800080180068C8400006800F7047A2
-:1026F00010B50D20FFF7E6FFC4B20420C043FFF77A
-:10270000E1FFC0B2844203D021A11A2010F0D9F910
-:1027100010BD0121234A48031060234B00221A6098
-:10272000224A5160224A1060224A11601D498039B4
-:102730000860704701211B4A480310601D4A516020
-:10274000194A002111601A490860704710B51649EE
-:102750000868012804D00EA1562010F0B2F910BD6F
-:10276000154880680022C0B20A600DF041FA10BD21
-:1027700010B50D4801680029FCD0FFF7E7FF0120E4
-:102780000B494003086010BD00ED00E000E400E0EC
-:102790007372635C736F635F68616C5F726E672EE8
-:1027A0006300000080E100E000D1004000D3004061
-:1027B00080E200E000D0004000D5004030B40121AC
-:1027C000BB48C9020160CD1005604A030260B948E8
-:1027D00003681B021B0A036004680023240A240206
-:1027E0000460B5480468240A24020460B348012444
-:1027F00044608460B24C23606360A360B14B196095
-:102800001D601A60B04B19601A600121016030BC74
-:10281000704710B40121A648CC0204600A0202608D
-:102820000B060360A54841608160A549002008604F
-:1028300048608860A34804600260036010BC704771
-:102840000121A048C9020160C91001607047002839
-:1028500005D0012805D0022805D19C4870479C4826
-:1028600070479C48704710B59BA18B2010F029F948
-:10287000002010BD70B500219E4C9F4D9F4A904B8B
-:10288000002808D001281DD0022822D092A1B32010
-:1028900010F017F970BD01200004A060A86011605D
-:1028A0001960974B42109A60964A9060804A0012D5
-:1028B0001060954801608648016094480160944822
-:1028C000017070BD01204004A060A8605160596093
-:1028D00070BD01208004A060A8609160996070BD07
-:1028E000F8B59446834A844D00240127744E00288D
-:1028F00008D0012836D0022844D077A1E82010F073
-:10290000E0F8F8BD891E0902090A01200004906060
-:1029100034606860794A1160012B21D000217C4A23
-:102920007C4B517061463D31DC63DF637A4B5C6008
-:1029300002249C6004241C61734B196073490F606E
-:10294000604B891519606F4B58605F48016074488F
-:102950007249C16086606A49600348601770F8BDBB
-:102960000121DCE701205B4E40046E4F012B04D1B6
-:102970003460506068603960F8BD906034606860B1
-:102980003960F8BD0120514E8004674F012BF4D10E
-:10299000EEE766484068704770B5494D28680026E4
-:1029A000544C012806D1A068C00303D501200004BF
-:1029B000A0602E606868012809D1A068800306D550
-:1029C00001204004A0606E6001200EF05BFAA86850
-:1029D000012809D1A068400306D501208004A06029
-:1029E000AE6002200EF04EFA70BD10B5484908786E
-:1029F000002818D00120424AC0039060414A40009C
-:102A000090602B4A001210603F4A00201060304A4C
-:102A100010603E4A106008704A78002A02D0487060
-:102A20000EF030FA10BD0320FAE7012040490006FD
-:102A300008607047012023490006086070470120A4
-:102A40003B4940050860704701201E494005086069
-:102A5000704730490020C8637047410A354AC005B5
-:102A6000C00D5043801C5143400A0818704710B4F1
-:102A7000314C430B63431B0C5C020C602D4C6343D5
-:102A8000C31A2E485C0258432A4B400D4343E31AB5
-:102A90000124DB0324041B191B1613700A68101889
-:102AA000086010BC704710B50EF0B6FA10BD0000FB
-:102AB00080E100E008E400E018E400E000B000403D
-:102AC00040B1004080E200E000E100E048B1004099
-:102AD0004081004044B100407372635C72656D5F79
-:102AE00068616C5F6576656E745F74696D65722E82
-:102AF0006300000000B3004040B3004040B5004018
-:102B000000F5014000830040408500400082004005
-:102B100045000020C08F004000850040008000403C
-:102B200080F5014044B5004048B5004000B5004084
-:102B300000E200E0093D0000378600006F0C010054
-:102B400010B50EF055FA10BD012001218140064A52
-:102B5000116000BF00200549C8630120C8637047A9
-:102B600000200249C863704780E100E0C01F0040B8
-:102B700070B5FF4D044629680300A03110F0A6F897
-:102B800008053E08080E1D2C3242FAA1D22033E07F
-:102B9000887F012832D0F7A1D8202DE001F058FE1F
-:102BA00005282BD001F054FE062827D001F050FE56
-:102BB000072823D0EFA1DB201EE001F049FE032807
-:102BC0001CD001F045FE062818D001F041FE072870
-:102BD00014D0E8A1E0200FE0887F05280ED0E5A101
-:102BE000E52009E001F034FE052807D001F030FEB1
-:102BF000062803D0DFA1E8200FF063FF2868A0308B
-:102C0000847770BDDBA1EC20F6E7D949C1220968C1
-:102C1000525CD206920F05D1A0318A8A824201D13C
-:102C2000887D70470020704770B5044611202070E1
-:102C30000021CF4D61702968C0318978002908D002
-:102C400003290ED0042910D0FF20CAA116300FF09E
-:102C500038FF20780009012802D92868807E60703A
-:102C600070BD0007000F203002E00007000F303079
-:102C70002070EEE730B50388C249C34C8B4202D0C6
-:102C80009A1FA2421ED242888A4202D0951FA542B4
-:102C900018D2934216D883887D24E400A34211D829
-:102CA000C088884205D0B84D04460A3C2D1FAC426E
-:102CB00008D2884208D08A4206D05B1C5A43C00022
-:102CC000824201DD072030BD002030BDFFB500226B
-:102CD000099B002802D0994205DC5CE0002902D162
-:102CE000002004B0F0BD0920FBE7845C002C12D06A
-:102CF00085186F780D2F4CD010DC3B000FF0E6FFED
-:102D00000A421B2A2A303032323A3A42835C002B84
-:102D10003FD1521CD2B28A42F8DBE1E7122F31D008
-:102D200004DC0E2F35D00F2F2CD132E0142F11D010
-:102D3000152F27D116E0022CD5D1AB78039C072B99
-:102D4000237001D25B0701D40A20CAE7029B012449
-:102D50001B7814E0E343DB0708E0012C08D011E006
-:102D60000620BEE70F2523072D075B19002BF4D0A3
-:102D70003046B6E7029B1B789C070AD40224234303
-:102D8000029C2370835C521C9A18D2B28A4204DDE2
-:102D9000A9E70B20A5E7192676028A42A5DB9FE763
-:102DA00005E00278401C002A01D0002070470A4646
-:102DB000491E89B2002AF4D10120704730B56C4D0C
-:102DC0000021286887B0C943A0308182002484751F
-:102DD000214606200DF0E3F9002105200DF0DFF972
-:102DE000002102200DF0DBF90120FFF7C1FE286869
-:102DF000BF210C54C0300470012069460870684639
-:102E00000BF08FF807B030BD10B5594A94B0126876
-:102E1000A032927F042A0AD028236A461370508079
-:102E2000132906D03B2904D0072014B010BD082078
-:102E3000FBE71171104609A909F07AF8040002D1E4
-:102E40000420FFF795FE2046EFE7F0B59BB00400A5
-:102E500003D148A14D480FF034FE72202070606805
-:102E6000002701780826491F414D0B000FF02EFF67
-:102E70000F096ECBFB6E70F9F8AA6E6E6E6EF7F6E8
-:102E80006E002868A030807F032804D0972039A1E5
-:102E900080000FF016FE002108460DF080F96078E2
-:102EA00010233043607028680146C0314A781A43C5
-:102EB0004A7061688A783C2A45D08E880146012292
-:102EC000A0318A756268D2890A836268128A4A834D
-:102ED0006268528A8A838E8261680622C979C173C8
-:102EE0006168103008310FF04FFC0520FFF740FEFD
-:102EF0002868C2210F54017FFB2211400177B021C5
-:102F000009584A7A920892004A72C782304602F003
-:102F1000B5FC002804D01D4816A122300FF0D1FDC9
-:102F2000304601F0C7FE002804D04F2011A1C00098
-:102F30000FF0C7FD304603F00FFB002806D0134802
-:102F40000CA1273023E10120FFF712FE1BB0F0BDDA
-:102F5000878801F07DFC052820D001F079FC062847
-:102F60001CD001F075FC072818D001F071FC0FE0AF
-:102F7000480000207372635C6761705F636F726505
-:102F80002E630000FFFF00007B0C000053020000D6
-:102F9000042803D0FB49FC480FF093FD60783043D0
-:102FA00060702868C030417831434170FFF706FFF8
-:102FB000384602F068FC384601F082FE384603F0DD
-:102FC00001FBC3E701F044FC052810D001F040FCF0
-:102FD00006280CD001F03CFC072808D001F038FC92
-:102FE000042804D0E848E74913300FF06AFD606810
-:102FF000807902F000FD0028A8D06178314361702B
-:103000006168C880A2E701F023FC052810D001F018
-:103010001FFC06280CD001F01BFC072808D001F08B
-:1030200017FC042804D05520D649C0000FF049FDF4
-:103030006078304360706068C1882868A030018380
-:10304000616809894183616849898183002102207F
-:103050000DF0A5F82868A030C77777E70CE167E1A5
-:103060006FE070E0FFE701F0F3FB052810D001F0FE
-:10307000EFFB06280CD001F0EBFB072808D001F08D
-:10308000E7FB042804D0C048BE4935300FF019FDD5
-:103090002868BE21095C042993D0807D40063CD578
-:1030A000606802210C30FFF77BFE002835D0606895
-:1030B0000821001DFFF774FE00282ED02868014665
-:1030C00080310A6B527A920708D1C222125C002A20
-:1030D00008D1C28AD30505D5D20703D1C38A4022BD
-:1030E0009343C382C38A80229343C3822D236A46BB
-:1030F0001370A030808A5080CB698A694869096A58
-:1031000001AC0DC4049109A9684608F011FF00281C
-:10311000A3D09D489B49573039E062682868A421B4
-:1031200092890A5261680822091DA6300FF02CFB13
-:1031300010A806742868A630159014A80AF0F1FEAD
-:1031400004E70121817101F083FB052810D001F013
-:103150007FFB06280CD001F07BFB072808D001F08C
-:1031600077FB042804D0884886497B300FF0A9FCFF
-:103170002868BE21095C0429E2D061688A79002AA6
-:1031800002D08978002905D07F487E49E1300FF0D0
-:1031900098FCDBE6617831436170B0210958497AC7
-:1031A0008907890F01294DD1817D09064AD4017F04
-:1031B000490701D5042100E00321C03081702B2094
-:1031C0006946087009A9684608F0B2FE002804D0D4
-:1031D0006D486C4997300FF074FC69462868098D7A
-:1031E00001830E2210A90A7468491591027A0A70A7
-:1031F000024609324A600F320A61521D8A6010325B
-:10320000CA60133A4A618A328A61921CCA61423AA0
-:103210000A6210324A6210328A62403A8A63D21FCE
-:10322000CA63521C54300A64486414A80CF004F8B1
-:10323000022815D0002813D053485249BF300FF050
-:1032400040FC0DE0817D4906017F490701D504213D
-:1032500000E00321C0308170002106200CF09FFFA8
-:103260002868C18A0A0602D440229143C1828AB2E8
-:1032700080218A43C28269E62868A030807F0328C3
-:1032800004D041483F49ED300FF01BFC00210846B7
-:103290000CF085FF60781023304360702868014689
-:1032A000C0314A781A434A7061688A783C2A00D152
-:1032B00049E68E8801460122A0318A756268D2896A
-:1032C0000A836268128A4A836268528A8A838E827B
-:1032D00061680622C979C1736168103008310FF046
-:1032E00053FA0520FFF744FC2868C2210F54017FE0
-:1032F000FB2211400177C782304602F0BFFA002856
-:1033000004D0E3201F4980000FF0DBFB304601F0C2
-:10331000D1FC002803D01B491D480FF0D2FB3046DA
-:1033200003F01AF90028A6D019481649801C2EE788
-:1033300060783043607009E600290BD0888015481A
-:103340000068A030028BCA80028B0A81428B4A81BE
-:10335000808B88817047F7B5064600780C460027B9
-:10336000010982B03D4601296FD00A4800680090EB
-:10337000C03002296AD0072910D00A2967D0014934
-:103380000548DAE1742F0000860200000C120020CC
-:103390008F030000480000201105000071680A78C2
-:1033A000521F13000FF092FC0F09B054B0B02F5B06
-:1033B0005B47B0B0B0B0656FB0008A783C2A1BD0D4
-:1033C00010271625002C7DD08888A0807068A21D4B
-:1033D000C08920827068C089E0817068008A60823C
-:1033E0007068408AA082716808460831C07901F08F
-:1033F00034FA0020607375E019270725002CE2D00D
-:103400000021A17171E011270725002CDBD08988EC
-:103410000091A1807168F7228979A17141781140EA
-:103420004170009802F030FA009801F04DFC0098CD
-:1034300003F0D6F8ACE101270925002CC3D0888819
-:10344000A080706880792072A2E160E09DE178E060
-:10345000888812270E252146FFF76EFF98E118276E
-:103460000825002CAFD08888A080A01DFFF7DCFBCA
-:103470008EE11A270725002CA5D04888A080706807
-:103480000079A07184E18A783C2A32D01027162571
-:10349000002C98D08888A0807068C08920827068CD
-:1034A000C089E0817068008A60827068408AA0826A
-:1034B0007168607B497D40084000C907C90F084317
-:1034C000607300E036E17168C007497DC00F4908AC
-:1034D0004900084360737168A21D08460831C0792D
-:1034E00001F0BBF9FB480068C0304178EF22114081
-:1034F00031E119270725002C88D00021A1714278DD
-:10350000EF210A40427043E1F349F44815E1307A73
-:10351000012803D0F148F04917300EE112270E259B
-:1035200070892146FFF708FF002C87D0707840078C
-:10353000400F032888D1E7480068C0304178FB225B
-:10354000D5E7E4490968A031002C01D08A8AA2801D
-:10355000327A921E13000FF0B9FB073B4651EEDBA7
-:103560006B05EE0013270C25002C85D0F1688978B7
-:103570008907890F0129217A27D04908490021723A
-:10358000FD221140F268E32392785207D20F5200D5
-:10359000114321720022E2801940F3681B785B0717
-:1035A000DB0E19432172DF231940F3685B78DB07D8
-:1035B0009B0E194321726272F1680122C978A172CF
-:1035C00001781143F722114016E001221143D6E79A
-:1035D00015270C25002C8FD0F06806220068A11D4D
-:1035E0000EF032F8D4E016270725002C84D0317B6A
-:1035F000A1710178082219E00170C9E01427122591
-:10360000002C92D000980099C07BA21D103101F0CF
-:1036100024F9B089E081207C01210843F921084088
-:103620002074AC480068C030017802221143E3E7FF
-:1036300017273825002C7DD03221A01D0FF001F96D
-:103640000020A071207A03210843A24A2072116849
-:10365000FB260B7F30405B07DB0F9B00184320727B
-:10366000B0204058407A800751D0A07A8A7D400827
-:10367000D2074000D20F1043FD221040A0728B7D74
-:1036800030409B07DB0F9B00184308231843EF23B0
-:103690001840A0728A7DE07AD206D20F30409200A4
-:1036A0001043E072F72210408A7DD206D20FD2007A
-:1036B0001043E072088BA0812046102264310E3046
-:1036C0000FF062F88349A07F0968C0078A7EC00FA7
-:1036D00052001043A0770A7F400852074000D20FE3
-:1036E0001043A077084644304DC820344DC4303CC8
-:1036F0003D20405C224630323E3101F0AEF8754844
-:1037000000688030006B417A8908890041723FE08F
-:10371000327B022A14D017273825002C2ED0012AFC
-:103720001BD0032A1BD0042A1CD0052A1AD06A49B0
-:103730006A4801E022E024E0B1300FF0C2F927E04E
-:1037400019270725002C19D0898AA1800121A17190
-:1037500041784908490041701AE0012000E0022048
-:10376000A07106E0707B0007000F8030A071052A71
-:1037700002D00020E0710BE00120FBE704980580F7
-:103780000CE09F205449C000D7E7317A002908D0C7
-:103790000498002C058001D027806580002005B0AA
-:1037A000F0BD19270725002CE8D00021C943A180CE
-:1037B0000021A1714178FD2299E600B595B001F094
-:1037C00047F8022803D001F043F8032819D11B2140
-:1037D00008A801730021817369460BA808F0A8FBB3
-:1037E000002804D1684640781B2802D0032015B079
-:1037F00000BD002108460CF0D2FC68468078002805
-:1038000001D00820F3E70120FFF7B2F90020EEE72E
-:1038100070B500252F4C002807D0022817D0A9200A
-:103820002D49C0000FF04DF970BDFFF7C6FF00280D
-:10383000FAD1FEF7DDF9222101700572FEF7F4F9E5
-:103840002068C030417802221143417070BDFEF7FC
-:10385000CFF912210170012101722168A0318A8AF9
-:103860004281CD77FEF7E0F92068C030417804222C
-:10387000EAE770B50D46040004D155201649000151
-:103880000FF01FF92078012804D0134914480FF0D5
-:1038900018F970BDA18813480E4E814209D1E28803
-:1038A000824206D130681321A030808AFFF7ACFA3B
-:1038B00070BD814202D1E088002815D01220287006
-:1038C000687808210843687007CC083507C50021CF
-:1038D00011E0000048000020742F00003D040000AB
-:1038E0006E050000FFFF0000002278231146022031
-:1038F0000CF0B3FB02213068A030C17770BDF748EF
-:103900000068C0308078704738B5F44C05460178BF
-:1039100020680B00A0300FF0D9F909863506067132
-:1039200013365A758600807F052803D0EC49ED4890
-:103930000FF0C7F820680422017F114301775DE092
-:10394000A98800291ED0808AE74988421AD0A86831
-:10395000002804D1E348E2490F300FF0B2F8A8681C
-:1039600006220A38A86000902068AB88A030808AC0
-:10397000042101F0B7FE002804D0DA48D8491430F9
-:103980000FF09FF838BD2979807F02290BD00428D9
-:10399000F8D0284600F072FF20681321A030808AFA
-:1039A000FFF732FA38BD062804D0CE48CC491E3085
-:1039B0000FF087F8284600F061FF20680122C03030
-:1039C0004178114341700520FFF7D2F838BD00F06F
-:1039D0003FFF052808D000F03BFF042804D0C14871
-:1039E000BF493C300FF06DF80ECDC0480361C26096
-:1039F0008160A2210170FEF72CF938BD284600F045
-:103A00003DFF38BD00F024FF052808D000F020FF5E
-:103A1000062804D0B348B2494D300FF052F80720C1
-:103A2000FFF7A6F8EAE7AF48AD495630A8E7FFB57B
-:103A300093B00124684603218470C9021D460180A9
-:103A400009F063FF00226946012003F027F80646CB
-:103A500009F05FFF002E5CD1684615218470490291
-:103A6000018000271C2101A808970EF0ECFE012020
-:103A70000146103108A801700020014608A84170D5
-:103A80008178F9200140891C214308A8817068468B
-:103A9000017902263143017114998185C7851F215F
-:103AA000018608A80A9013980D906846099009F0BD
-:103AB0002CFF0EAA09A901A802F0D4FD074609F0BF
-:103AC00028FF002F02D0384617B0F0BD834F68465C
-:103AD0003968008F4880684684708549018008A84D
-:103AE0008078F9210840801C4108490008A88170AD
-:103AF00068468685068615A80D9009F006FF0EAA71
-:103B000009A901A802F0AEFD064609F002FF002E49
-:103B100001D03046D8E768463968008F88807449FC
-:103B200068468470C91C0180298810A801806988B2
-:103B30004180A9888180E988C18008216846818503
-:103B4000018610A80D9009F0E0FE0EAA09A901A8AF
-:103B500002F088FD044609F0DCFE002C01D020466E
-:103B6000B2E768463968008FC8800020ACE770B5BE
-:103B700004465E48C421A8300EF065FE5B48574DF0
-:103B8000A83000212860C943A030818200268675B4
-:103B90000120FEF7EDFF2868BF210E5401460931D0
-:103BA0000830FDF71CFF296808462D311D30FDF750
-:103BB00072FF002C26D02868B0210C501E21A18154
-:103BC000217A8F2211401031217201461831216172
-:103BD00009396161491CA1610839E161491C21620F
-:103BE0009B31616287392160103161601339E16274
-:103BF000091F21637E3121643039616310318430C3
-:103C0000A163E06370BD35480068A030807F042860
-:103C100001D0002070470120704730B504460520D0
-:103C2000800395B0844208D3012080043149201AD2
-:103C3000884202D33048844202D3102015B030BDF0
-:103C400026490868A030807F012801D00820F5E7C8
-:103C5000FFF7D9FF002801D01120EFE70D68012000
-:103C600028722278002A08D024491720012A0AD075
-:103C7000022A1FD0032A25D121E03220694608708C
-:103C80000020287205E0A2799209032A1AD1694618
-:103C9000087000A80622611C02300EF075FD28464F
-:103CA0000622611C09300EF06FFD09A9684608F074
-:103CB0003FF9C3E7A2799209012A03D1E7E7A27984
-:103CC0009209E4D00846B9E707214907012210B557
-:103CD00041189203914213D3102010BD48000020D8
-:103CE000742F000085050000FFFF0000AC110020CC
-:103CF000012A00000000FC1F0040002002320000EA
-:103D0000F949024609680B7A0931184600F0A5FD09
-:103D10000020E2E7FFB599B005460020694608712A
-:103D2000087208A9087408751E461446052001216A
-:103D300080038904ED4AEE4B002D06D085420DD359
-:103D40006F1A97420AD39D4208D2002C09D08442B0
-:103D500004D3601A904201D39C4202D310201DB0BC
-:103D6000F0BD2846204318D01F270CAB01AA0097AE
-:103D700028461A99FEF7AAFF0028F0D10DAB02AA37
-:103D8000314620460097FEF7A1FF0028E7D168469C
-:103D9000007AC10703D00A20E1E70720DFE78007A8
-:103DA00005D568460079800701D50B20D7E7FFF7D6
-:103DB0002AFF002801D01120D1E703AF002D0FD03A
-:103DC0001A20694608731A9888732946F81C1A9AAB
-:103DD0000EF0DAFC0EA903A808F0AAF80028BED15C
-:103DE000002C0ED02021684601738673324621468E
-:103DF000F81C0EF0C9FC0EA903A808F099F80028D9
-:103E0000ADD1B94908A80968007C08700020A6E770
-:103E1000F0B5044695B0002014900520800384423C
-:103E200075D301208004B14F201AB8426FD3B04837
-:103E300084426CD2207801280CD105216068890366
-:103E4000884264D301218904411AB9425FD3A84949
-:103E500088425CD200F0FCFC022809D000F0F8FC9B
-:103E6000032805D0A048BE210068095C012902D0C2
-:103E7000082015B0F0BDC121095CCA06920F03D11C
-:103E80008A0701D4490701D51120F2E721780129D9
-:103E900015D0228A974D1346203BAB4272D202299D
-:103EA00001D0032901D1A02A6CD3012907D00278BF
-:103EB000D20704D0628A002A64D0B42A62D80029CA
-:103EC00006D0012908D0022904D003295AD110E0D4
-:103ED000002512E0022510E061680125097800291B
-:103EE0000BD0012907D0022905D0032903D082482D
-:103EF000BFE7032501E001211491217A002907D0B1
-:103F0000012907D0022907D003293BD106E037E079
-:103F1000002604E0012602E0022600E00326002D30
-:103F200001D0022D3FD1002E3DD0E168002929D0DB
-:103F30000A79002A27D0082A24D80B7B9C46082B14
-:103F400020D8002A0CD005230A689B039A4217D375
-:103F500001239B04D31ABB4212D3654B9A420FD262
-:103F60006246002A13D0896805229203914207D342
-:103F7000012292048A1ABA4202D35D4A914206D3C0
-:103F8000102076E75EE00B7B002B5BD0D5E7017855
-:103F9000890702D05848401E6BE7022D03D1022E3C
-:103FA00050D0032E4ED0182269460A70228A4A80C9
-:103FB000228A8A808D71007A0127002802D0012888
-:103FC0007ED102E00020C87100E0CF711498087221
-:103FD000217802A80130012922D006210EF031FCFF
-:103FE00007216846C173067409A907F0A1FF0028DC
-:103FF000C7D10A206946087009A9684607F098FFEA
-:104000000028BED13A206946087009A9684607F021
-:104010008FFF0028B5D1002D08D0022D06D04AE030
-:1040200061680622491C0EF0AFFBD9E7002E42D092
-:10403000002623E00168B00009580978002903D060
-:10404000012905D0072014E700216A46917001E09C
-:1040500069468F70E16806220968095800A8491C62
-:1040600003300EF091FB0B206946087009A96846E1
-:1040700007F05EFF002884D1761CF6B2E068017973
-:10408000B142D7D8002612E08068B100415800A89C
-:10409000102202300EF078FB3B206946087009A917
-:1040A000684607F045FF0028CDD1761CF6B2E068DF
-:1040B000017BB142E8D81B2168460170877000E09F
-:1040C0002EE009A907F034FF0028BCD108A84079E8
-:1040D0001B2825D1002D15D0012D0FD0022D21D068
-:1040E000032D12D11EE00000480000200000FC1F3C
-:1040F00000400020E13F0000023200000320FEF7F4
-:1041000037FD11E00320FEF733FD608A00280BD055
-:1041100000228300114610460BF09FFF002803D0B9
-:104120000320A6E60220EEE70020A2E670B586B0E6
-:104130000C0006460CD00520800384424BD301209E
-:104140008004FD49201A884245D3FC48844242D26B
-:10415000FB4DBF212868095C022903D0C03040789C
-:10416000400702D5112006B070BD002C04D02046B7
-:10417000FEF780FD0028F6D13046FEF746FD012807
-:1041800003D0022823D0EF48EDE721001BD10820FF
-:1041900069468882286801ABC08805AA002103F01F
-:1041A00048F80028DFD16846808A082801D003201B
-:1041B000D9E7684681888181C188C18101890182EE
-:1041C0004189418203A9304601F0E5FBCBE7002C91
-:1041D00001D00620C7E71020C5E770B50C4605469C
-:1041E000FEF713FD012803D0022801D0D54870BD89
-:1041F00021462846FEF708FE70BD00B50146143082
-:1042000095B0192801D2880707D008461E3004D07F
-:104210000A3002D0072015B000BDFFF7F4FC0028DB
-:1042200001D01120F7E7C648312200684170684686
-:104230000270817009A907F07BFEECE701B582B03E
-:10424000022069460880BE4802AB00686A46808842
-:10425000002102F073FE69460988022900D003207C
-:104260000EBD38B502216A46118007214907012297
-:1042700041189203914201D3102038BDB049034642
-:1042800009686A468C880021204602F0D2FF694600
-:1042900009880229F1D0032038BD3EB50446082024
-:1042A0006946088005208003844208D301208004E9
-:1042B000A149201A884202D3A048844201D3102089
-:1042C0003EBD2046FEF7D6FC0028F9D1208869467D
-:1042D00088806088C880A0880881E08848819848E4
-:1042E00001AB00686A46C088002102F027FE6946DB
-:1042F00009880829E4D003203EBD1FB504460820E4
-:104300006946888105208003844208D30120800407
-:104310008949201A884202D38848844202D3102057
-:1043200004B0DAE486486B46006803AAC08800211E
-:1043300002F07FFF0028F3D169468989082901D05E
-:104340000320EDE769460988218069464988618034
-:1043500069468988A1806946C988E180E0E7FEB5A1
-:1043600005460520800317460E46814208D30121E9
-:104370008904714A731A934202D3704B9E4201D34F
-:104380001020FEBD1F2F01D90C20FEBD6C4C8542B4
-:104390002AD3681A904227D39D4225D2206801A9CA
-:1043A000408802F07DFD0028EFD1287869464871E9
-:1043B000206801A9408802F056FD0028E5D1694631
-:1043C0000090087802210843694608704979090776
-:1043D00003D0082108436946087020686946408870
-:1043E00002F0EBFC0028D0D169460F8120683346EB
-:1043F000408802AA002102F0A1FD69460989B9425C
-:10440000C3D00320FEBD38B50C4607210122490761
-:104410009203002802D04318934202D261189142BD
-:1044200001D3102038BD21886A461180002801D0B0
-:1044300000290BD04249034609684D8800212846CF
-:1044400002F0F7FE69460988218038BD0C2038BD8E
-:1044500010B50C460521890386B08C4208D3012192
-:104460008904354A611A914202D334498C4202D3FD
-:10447000102006B031E432490968A031897F05294E
-:1044800001D00820F5E7FEF7C0FB012803D0022881
-:1044900026D02C48EDE720881E2801D20720E8E727
-:1044A0000620FEF765FB052168460170007981084A
-:1044B000A0788900C007C00F014368460171FB2046
-:1044C0000140A0788007C00F800001436846017159
-:1044D0002188C18009F025FD0028CAD00320C8E743
-:1044E0000620C6E770B586B014460D46FEF78DFB74
-:1044F000012803D0022801D0124834E6104EC02112
-:104500003068095CC90706D0BE21095C042902D0C5
-:10451000002D02D05AE0082025E6052189038C42AF
-:1045200008D301218904044A611A914202D3034944
-:104530008C4209D3102016E60000FC1F004000202A
-:104540004800002001300000A178C906490F042965
-:104550000CD8E178072909D3102907D822798A4293
-:1045600004D3102A02D822881E2A01D00720FAE597
-:104570008030026BF7239172026B2179D172026B4A
-:10458000117A1940A3789B06DB0FDB0019431172E7
-:10459000026B21889181026BA378517ADB0789082D
-:1045A0008900DB0F19435172FB231940A378026B7A
-:1045B0009B07DB0F9B0019435172006BA278017AB5
-:1045C000D206C908C900520F114301720B20694677
-:1045D0000870852D25D008DC002D1AD0812D1AD029
-:1045E000822D1AD0832D08D119E0862D1BD0882D5D
-:1045F0001BD0892D1BD08A2D1BD00B2008710520C4
-:10460000FEF7B6FA684609F08CFC002813D00320A8
-:10461000A9E50020F2E70120F0E70220EEE7032001
-:10462000ECE70520EAE70620E8E70820E6E70920AE
-:10463000E4E70A20E2E73068C03001784908490021
-:10464000017000208FE570B5924E0D46316886B03E
-:10465000C03109781446090701D4082083E5FEF724
-:10466000D4FA012803D0022801D08B487BE5002D25
-:1046700013D005208003844208D301208004874999
-:10468000201A884202D38648844201D310206AE56A
-:10469000012D0BD0022D02D106E0002C01D0072005
-:1046A00061E50020029005E0022000E0012069465B
-:1046B00008710294032069460870684609F031FCCD
-:1046C000002801D003204EE53068F722C030017881
-:1046D00011400170002046E570B594B014460E46B6
-:1046E000FEF793FA012804D0022802D06A4814B0D9
-:1046F00070BD684D2868C0300078800701D408205C
-:10470000F5E7002C01D00720F1E7FFF77CFA00283D
-:1047100001D01120EBE7002E1DD02D21684601703D
-:104720002C68B420015B684641801022B11C01A8AE
-:104730000EF02AF8207FFB210840B17CC907490F01
-:1047400008432077B07CFF214008A076E08A8231C0
-:104750000843E08207E02E21684601702868A030F7
-:10476000818A6846418009A9684607F0E1FB29680B
-:10477000FD23C0310A781A400A70B8E710B50C461C
-:10478000FEF743FA012803D0022801D0424810BDA9
-:1047900005208003844208D3012080043F49201A69
-:1047A000884202D33E48844201D3102010BD2046E7
-:1047B000FEF73AFA002010BD10B594B00446FEF79B
-:1047C00024FA012804D0022802D0334814B010BDC6
-:1047D00030480068A030807F04280ED03820694619
-:1047E00008704C8001200871487109A9684607F0DB
-:1047F0009FFB0028EAD00B20E8E70020E6E710B591
-:1048000094B00446FEF701FA012803D0022801D033
-:104810002148DBE71F480068A030807F04280BD0C8
-:104820003820694608704C8000200871487109A939
-:10483000684607F07DFBC9E70020C7E71548006818
-:10484000A030807F052801D30120704700207047E9
-:1048500010480068A030807F704708B513460028D4
-:1048600006D010A00068009048796A468009105C64
-:1048700018700622581C0DF087FF08BD10B50446BD
-:10488000FDF7B6F9A22101700ECC08300EC0FDF77D
-:10489000CBF910BD48000020013000000000FC1FD3
-:1048A000004000200302FF01FFB581B001980E46D1
-:1048B000C078174610360E37022809D0032840D09A
-:1048C00005287DD0F2A1F7480EF0FBF805B0F0BD49
-:1048D000CC890A2060430E30188031230A98002AC0
-:1048E0000380F3D04868008890800020D080108139
-:1048F000097B9481891FCDB21AE0308871683880B5
-:1049000048780A7800021043F880C8788A78000254
-:1049100010433881BA1C091D28460AF014FF002DE7
-:1049200001D0002802D000203871788008360A377C
-:104930002046641EA4B20028DFD101990020C8706F
-:10494000C4E7CC890A2060430E30188032230A98CD
-:10495000002A0380BAD04868002500889080D5805E
-:104960001581087B401FC0B20090948142E07168BD
-:1049700032880878FA803A79C30752085200DB0F70
-:104980001A43FD231A408307DB0F5B001A43FB2306
-:104990001A404307DB0F9B001A43F7231A40030713
-:1049A000DB0FDB001A43EF231A40C306DB0F1B01AA
-:1049B0001A43DF231A408306DB0F5B011A4300E032
-:1049C00020E0BF231A404306DB0F9B011A433A71D4
-:1049D000C00978718A784B781002184338813A46BA
-:1049E000C91C00980AF0AFFE002801D0BD703D80C0
-:1049F00008360A372046641EA4B20028B7D10198B1
-:104A0000C57063E7087BCC89801E85B228460830D4
-:104A100060431030188034230A98002A03808FD016
-:104A200048681746008890800020D08010819481CB
-:104A30001037E000D581C0190CE03088388000982C
-:104A400078602A46716800980DF09EFE009808363E
-:104A50000837401900902046641EA4B20028ECD10B
-:104A60006BE7FFB50546C07881B00C460A9E03008F
-:104A70000EF02CF90BA3071733414F6D8F9D9D9DB1
-:104A8000A300207B1746082806D0032804D08548B9
-:104A90007FA153300EF015F804990E2008803020C5
-:104AA0000CE0207B1746042804D07E4878A17030A3
-:104AB0000EF007F804990E20088031203080002F76
-:104AC00044D060680088B880607AFF300130F88098
-:104AD000E08938810020B88137E0207B1746042820
-:104AE00004D070486AA18C300DF0EBFF04990E20C1
-:104AF00008803220E2E7207B1746022804D069486C
-:104B000063A1A8300DF0DDFF04990E20088033204A
-:104B1000D4E7207B1746042804D062485CA1C33048
-:104B20000DF0CFFF04981021018034203080002F39
-:104B30000CD060680088B880607AFF300130F8805F
-:104B4000E08938810020B881F881E870BEE6207BDA
-:104B50001746052806D0062804D052484CA1E0305C
-:104B60000DF0AFFF04981221018035203080002F16
-:104B7000ECD060680088B880607AFF300130F8803F
-:104B8000E0893881E089B88100203882A988F981DC
-:104B9000DBE7207B1746072804D042483CA1F730CA
-:104BA0000DF08FFF04990E200880362086E70096CE
-:104BB0002846049B00F02BFD88E635A13A480DF00D
-:104BC00080FF83E670B5054600780C460826030092
-:104BD0000EF07CF8124C3434241C380A0A0A0A0AF3
-:104BE0000A0A0A0A0A0A0A4C6878002804D02E48E1
-:104BF00027A12C300DF065FF002C03D12A4824A1F9
-:104C00002D3008E060783043607020E0002CF9D14E
-:104C100025481FA135300DF054FFF3E7002904D0DB
-:104C200021481BA13D300DF04CFFFCF7E1FF04468D
-:104C3000407830436070FCF7F7FF08E01A4814A191
-:104C4000473002E0184812A14C300DF03AFF002C1A
-:104C50000AD06078000707D593202070204658229C
-:104C600029460830FBF7B0FA002070BD0E4808A1B5
-:104C70005030EAE710B500200C4C0D490346C20045
-:104C80008C525218401C0006D370000EF7D010BD95
-:104C90007372635C67617474635F636F72652E63C4
-:104CA000000000005A020000B2030000FFFF0000F5
-:104CB0004C000020FD4908800120887000207047CA
-:104CC000FA4900208870704710B50021F748C943A1
-:104CD00001800021C17007F065F9D8E7F7B584B00D
-:104CE0000546002768460781878068680C4600886B
-:104CF00000F0EAFB0646287A032805D0002E03D1EF
-:104D0000EB49EC480DF0DDFE287A2146C01E123139
-:104D1000009103000DF0DAFF0FF1F0EF3D09AA4614
-:104D20005C6D34B3CCF28B8BEF00F078012803D0AC
-:104D3000DF49AD200DF0C5FEA8896946C0000E30E0
-:104D4000888030200881002C22D068680188A180EA
-:104D5000E7802781A989A18100200DE0C100B279F7
-:104D600009190A74B288CA8182005219D3894B8208
-:104D7000128A401C8A8280B2A1898142EED8D6E094
-:104D800002A8009001AB22462946304600F0CAFB3B
-:104D9000F0E002A8009001AB22462946304600F020
-:104DA00003FCE7E0F07806281AD0FF20C049223043
-:104DB00014E068680188A180E7802781A989A18122
-:104DC000B188E181E9892182EA89296900982BE08B
-:104DD000F078062804D0FF20B5493C300DF071FE74
-:104DE000E88969461230888035200881002CE0D19E
-:104DF000C0E0F078072804D0FF20AD4956300DF010
-:104E000060FEA88969460E30888036200881002C13
-:104E1000BED068680188A180E7802781A989A18127
-:104E20002046AA890E3029690DF0AEFC7FE0E889A2
-:104E30006946123080B2382288800A81002C78D0EE
-:104E400068680188A180E7802781A989A181287AE3
-:104E5000102809D00221A173E9892182EA892969F0
-:104E600000980DF091FC85E00121F4E702A8009084
-:104E700001AB224629463046FFF716FD7AE0F0786E
-:104E8000082803D08A498C480DF01BFE142069467F
-:104E9000888037200881002C6CD068680188A18048
-:104EA000E7802781A989A18167820120A0733EE064
-:104EB000F078092804D080487D4917300DF001FEB4
-:104EC000288A69461430888037200881002C51D008
-:104ED00068680188A180E78004212781A173A989DE
-:104EE000A181E9892182298A618220462A8A143097
-:104EF000696999E702E038E01CE024E0F0780A28CC
-:104F000004D06D486A4932300DF0DBFD142069464B
-:104F1000888037200881002C2CD068680188A18007
-:104F2000E78027810521A173A78127826782F77017
-:104F300020E017E002A8009001AB22462946304647
-:104F4000FFF78FFD16E00D206946392288800A811F
-:104F5000002C07D00120E08054480188A1802781DF
-:104F6000277307E00699088010E0524850493C300A
-:104F70000DF0A7FD6846069980880880002C05D0B2
-:104F8000684600892080684680886080002007B0DD
-:104F9000F0BDF7B594B015460F46149800F09FFA8F
-:104FA00004000AD0032000F087FB022802D2E07838
-:104FB000002804D0112017B0F0BD4048FBE71720AF
-:104FC000694601260883002D0FD003216846017130
-:104FD0001021018210A80246059004A928460AF073
-:104FE000D8FB00280DD00720E5E7082168460171AD
-:104FF00000210781C943418105218673C90281814E
-:105000000CE0A878A0712888A080684605218673E6
-:10501000C902818100210781C943418109AA023265
-:1050200006A901A806F0F7FF002802D000F06AFAEE
-:10503000C1E707A800906846038B04220321149857
-:1050400000F050FB0028B6D1E670B4E770B592B01E
-:105050000D0006460ED000F042FA04000CD00320EA
-:1050600000F02AFB022802D2E078002806D01120A6
-:1050700012B070BD1020FBE71048F9E71721684611
-:10508000818004210172298881816988C18101217F
-:1050900081740B4901820AAA023201A902A806F012
-:1050A000BAFF00280ED000F02DFAE1E74C000020F6
-:1050B000904C00003B04000063020000013000003F
-:1050C0000228000008A80090684683880422032173
-:1050D000304600F007FB0028CAD10221E170C7E783
-:1050E00070B592B00D0006460DD000F0F8F904003E
-:1050F0000BD0032000F0E0FA022802D2E07800286A
-:1051000005D01120B4E71020B2E7FA48B0E7172124
-:105110006846818004210172298881816988C18162
-:1051200001218174F44901820AAA023201A902A86C
-:1051300006F071FF002802D000F0E4F998E708A813
-:1051400000906846838804220321304600F0CAFAA2
-:1051500000288DD10321E1708AE770B592B00D006F
-:1051600006460DD000F0BBF904000BD0032000F080
-:10517000A3FA022802D2E078002805D0112077E7B0
-:10518000102075E7DB4873E7022168460172298821
-:1051900081816988C181172181800AAA023201A90F
-:1051A00002A806F038FF002802D000F0ABF95FE754
-:1051B00008A800906846838804220321304600F046
-:1051C00091FA0028DBD10421E17051E7F0B591B0EC
-:1051D00015000E4607460ED000F081F904000CD0F1
-:1051E000032000F069FA022802D2E078002806D0F5
-:1051F000112011B0F0BD1020FBE7BE48F9E71721E0
-:105200006846818004210172298881816988C18171
-:10521000B1788174318801820AAA023201A902A8F8
-:1052200006F0F9FE002802D000F06CF9E1E708A8CA
-:1052300000906846838804220321384600F052FA21
-:105240000028D6D10521E170D3E7F7B592B0154615
-:105250000E46129800F043F904000AD0032000F033
-:105260002BFA022802D2E078002804D0112015B0D1
-:10527000F0BDA048FBE70627002D12D06846077254
-:105280008681C581A5801720694688800AAA0232D6
-:1052900001A902A806F0BFFE002807D000F032F9ED
-:1052A000E5E70521684601728681EBE708A80090D2
-:1052B0006846838804220321129800F013FA00281C
-:1052C000D5D1E770D3E7F7B592B016460D000ED0F2
-:1052D000129800F004F904000BD0032000F0ECF960
-:1052E000022802D2E078002805D01120BFE7102064
-:1052F000BDE78048BBE7072768460772868117210C
-:10530000049581800AAA023201A902A806F083FE50
-:10531000002802D000F0F6F8A9E708A80090684637
-:10532000838804220321129800F0DCF900289ED122
-:10533000E7709CE7F3B5172091B00C46002915D013
-:1053400021780B000DF0C2FC062B05051A041C2B5E
-:105350001520C01EE28880B2002A02D0A368002B6C
-:1053600004D0824204D90C2013B0F0BD1020FBE71A
-:10537000042905D0A088002811D101E00620F3E718
-:10538000119800F0ACF805000BD02078092701280F
-:105390001AD0022807D0042824D0052835D00720A9
-:1053A000E2E75448E0E76846077161880181E188D7
-:1053B0004181A06808260390304600F07DF9072857
-:1053C00029D34C48801CCFE70C21684601716188C5
-:1053D0000181E1884181A06803900EE0E87800280F
-:1053E00011D118E00D216846017161880181A18801
-:1053F0004181E1888181A06804900326304600F055
-:105400005BF90228EAD31120AEE70E21684601714C
-:10541000217B0172F1E717216846018309AA023254
-:1054200006A901A806F0F7FD002802D000F06AF8EE
-:105430009AE707A800906846038B0422314611982A
-:1054400000F050F900288FD12178012907D00229D6
-:105450008AD0042905D0052905D0032084E7082136
-:1054600002E0EF7080E70A21E9707DE730B591B086
-:105470000C46054600F033F8002808D0032000F061
-:105480001BF9022805D31B48801C11B030BD1948F8
-:10549000FBE70F216846017104811721018309AAE6
-:1054A000023206A901A806F0B6FD002802D000F0DD
-:1054B00029F8EAE707A800906846038B0422032135
-:1054C000284600F00FF9E0E70C49884205D00C4966
-:1054D0000988814201D10A4870470020704710B501
-:1054E000FFF7F2FF002802D08178C90700D1002021
-:1054F00010BD00000130000003280000FFFF000085
-:105500004C000020002806D0012805D0052805D031
-:10551000062805D0032070471120704708207047E7
-:105520005C487047FFB583B003980C9EC0781D4659
-:1055300014460F46012803D05749D2200DF0C1FA76
-:10554000F889C0000E30288030203080387B001F62
-:10555000C0B20190002C26D078680088A08000207E
-:10556000E0802081F889A081002616E0F00005196E
-:10557000C01900902A4641690E3201980AF0E3F8FA
-:10558000002802D000202874E8810098761C008A48
-:1055900068820098B6B2408AA882A089B042E5D855
-:1055A00003990020C870F2E4F8B50646C0781F469B
-:1055B00014460D46042804D0FF20374903300DF06F
-:1055C00080FAA889062148430E3038803321069896
-:1055D000002C01801AD068680088A0800020E0803C
-:1055E0002081A989A18103460CE019460622514376
-:1055F0004A190919D789CF81977C8F74128A5B1C4D
-:105600000A829BB2A1899942EFD8F070F8BD70B5BB
-:1056100014460546142204981A8037220280002C72
-:1056200018D0486800260088A080487AFF300130F2
-:10563000E080C8892081C889A0816682E87808282E
-:1056400009D0092811D00A2819D0134913480DF0A0
-:1056500038FAEE7070BD087B0C2804D00F480E4954
-:105660000C380DF02EFA012012E0087B0D2804D032
-:105670000A48094908380DF024FA042008E0087B9C
-:105680000E2804D005480449001F0DF01AFA052021
-:10569000A073DEE702300000904C000081030000A0
-:1056A00001460020FA4A02E0401C082803D24300C9
-:1056B000D35A8B42F8D1704730B50446F44A0020E3
-:1056C000163A117953790AE05518AD79A54201D1FE
-:1056D000401CC0B2491CC9B2102900D100218B4224
-:1056E000F2D130BDFFB5EA4881B0163841790A9C45
-:1056F000491CCDB21E46102D00D10025E4481638B5
-:105700000079A84202D1042005B0F0BD0820FFF7BF
-:10571000D3FF0746072804D9FF20DEA1A5300DF0EE
-:10572000D0F90298082801D1072F17D001982080BE
-:10573000301D6080002060712071E6800398208118
-:10574000204606F019FC00280AD0D14802991638E4
-:105750004379821D995445710020D5E7D248D3E79B
-:10576000FF20CCA1B7300DF0ACF90320CCE7F0B5A9
-:105770008DB0044600256846057116468C46062005
-:10578000FFF79AFF00281CD121780127C8070028BD
-:1057900001D0132917D9684687766178C17602212E
-:1057A0008183C58304A8009070680C2300880522BB
-:1057B0000621FFF797FF002803D0B6A185200DF042
-:1057C00080F90DB0F0BDB24816380278002AF8D042
-:1057D000427863789A42F4D1012918D0132919D15B
-:1057E0006146062916D10570002101200AF0D7FC78
-:1057F00068460771706801886846C1800021C94306
-:105800000181607922790102114368461AE06146FC
-:10581000062908D0684600790028D2D0314601A870
-:10582000FEF727F8CDE70570002101200AF0B7FC4C
-:105830006846077160792279010211436846018147
-:105840000021C9434181E9E7914810B5002116388C
-:1058500001704A1E428041700171417101200AF0BD
-:105860009EFC10BD10B5FFF7EFFF002088490246EF
-:105870004300401CCA520828FAD310BD8449163987
-:10588000488000207047DFE770470EB50121684669
-:10589000017086498180C1800021FDF7EAFF0EBDBD
-:1058A000F7B505460078002700090C463E4601285A
-:1058B00004D0FF2077A168300DF003F9287A022880
-:1058C0000CD0FF2073A17E300DF0FBF80298002C65
-:1058D000068001D0278066800020FEBDEA897027FF
-:1058E00010460A3086B2002C0BD068680088A08071
-:1058F000A8892081E28020460A3029690CF044FF03
-:10590000E4E702980680E7E7F0B543680246D979F4
-:105910009C79090221435C7A1E7A25025C88981DD5
-:105920003543241F87B0A1421DD11B79022B1AD108
-:10593000042D1AD0052D2AD0062D1AD0402D12D3B1
-:10594000061D0F4614462846FFF7AAFE08280AD06F
-:105950001120207002202072A581E78126616078E5
-:1059600008210843607007B0F0BD001D00F0E1F8A9
-:10597000F9E7041D0D46FEF761FF0028F3D006216C
-:10598000684601700194057208F0CBFAEBE7001D40
-:10599000FFF7EDFEE7E710B53D4C8AB0163C2278E4
-:1059A000012A26D012236A46937363789B1CD37313
-:1059B000082313820B8853824B8893828B88D3826F
-:1059C000C988118301A900910C2305220721FFF743
-:1059D00089FE00280BD10022F023114601200AF095
-:1059E0003CFB012020706078801C607000200AB0B1
-:1059F00010BD1120FBE7F0B5254C0027163C87B001
-:105A00000646A51D1FE060792179884204D1112046
-:105A100020A140010DF055F82079405D042804D004
-:105A2000082808D17F1CFFB205E0072069460870EE
-:105A3000684608F076FA2079401CC0B22071102820
-:105A400001D1002020713046761EF6B20028DAD14E
-:105A5000384688E710B50446402801D2072010BD1B
-:105A6000FFF71EFE082802D03120000210BD0021E1
-:105A7000074802E0491C082903D24A00825A002A3A
-:105A8000F8D1082914D049004452002010BD00006C
-:105A90002E1300207372635C6C326361705F636FFE
-:105AA00072652E630000000003300000FFFF00005D
-:105AB0000420EBE700B5402801D2072000BDFFF726
-:105AC000EFFD082805D000213B4A4000115208464E
-:105AD00000BD052000BDF0B58BB016460C00074692
-:105AE00007D0002E05D06188402904D207200BB0D2
-:105AF000F0BD1020FBE72088002801D0172801D92D
-:105B00000C20F4E70846FFF7CBFD08280FD02588C6
-:105B100003A82A46314602300CF036FE01A8009058
-:105B200062882B4608213846FFF7DCFDDFE70520B9
-:105B3000DDE7F0B50E46074601468BB01446012559
-:105B4000304606F0E5FB08281DD10020694608858F
-:105B50000120FFF7B1FD002802D117206946088512
-:105B600003AB02330AAA39463046009406F0E3FF3D
-:105B700000280AD0022819D0032804D0FF200F499A
-:105B800002300CF09EFF2846B1E76846038D002BDB
-:105B9000F9D001A800906068042200880121FFF775
-:105BA000A1FD0028EFD00549EC20EAE76078002548
-:105BB000102108436070E6E72E130020945A00007D
-:105BC000002803D08178012939D101E010207047E5
-:105BD0000188FA4A881A914233D01BDCF84A881AA5
-:105BE00091422ED00BDC00292BD00320C002081AD2
-:105BF00027D0012825D001210903401A07E00128F8
-:105C00001FD002281DD0FF281BD0FF3801380028E4
-:105C100015D116E0FF220132811A904211D008DC22
-:105C200001280ED002280CD0FE280AD0FF2806D169
-:105C300007E0012905D0022903D0032901D0002063
-:105C400070470F20704700B50A2821D008DC0300F8
-:105C50000DF03CF80A1C2024241A24282224261A99
-:105C6000102819D008DC0B2816D00C2814D00D28C9
-:105C70001AD00F2808D111E011280FD0822807D0A0
-:105C800084280DD085280DD0032000BD002000BD44
-:105C9000052000BDCB4800BD072000BD0F2000BD82
-:105CA000042000BD062000BD0C2000BD70B50029F9
-:105CB0000BD0CB1FFA3B81241E46CDB2112B1BD239
-:105CC000012805D0022806D009E0002010701DE050
-:105CD000FF20043001E0FF200330814218D0330060
-:105CE0000CF0F4FF111613131613161613161616CE
-:105CF00013131313161316000846FF3881381F2894
-:105D000003D9FF39FE39022902D81570002070BD71
-:105D10001470072070BD00B503000CF0D7FF060417
-:105D200006040C080A0C002000BD112000BD07204D
-:105D300000BD082000BD032000BD00780207120F3F
-:105D400004D0012A05D0022A0AD10EE0000907D1A9
-:105D500008E00009012805D0022803D0032801D05B
-:105D60000720704708700020704706207047002801
-:105D700007D0012807D0022807D0032807D0072022
-:105D80007047002004E0112002E0212000E03120D3
-:105D900008700020704738B50C4605004FD06946A2
-:105DA000FFF7CBFF002822D12088032189028843F6
-:105DB000694609788907090D084320806946681CEF
-:105DC000FFF7BBFF002812D1218803200003814385
-:105DD000684600788007800C01432180A87840073E
-:105DE000820F2020012A03D0022A03D0072038BDC9
-:105DF000814300E00143218088B20105890F08D06A
-:105E0000012189038843A9780907C90F8903084339
-:105E1000208080B28104890F0AD0A9784004C90685
-:105E2000C90F400CC903084320808004800F02D1B1
-:105E30002088400403D5208840210843208000208A
-:105E400038BD70B504460020088015466068FFF72D
-:105E5000A2FF002815D12189A089814210D861684C
-:105E6000594E8978C90707D0711E884208D8314633
-:105E70000CF004FD298009E0FF21FF31884201D99F
-:105E80000C2070BDFF30FF300330288060688078C0
-:105E9000C007A08903D031460CF0F0FC03E0FF30CE
-:105EA000FF30033081B22980206881784748017330
-:105EB00020684649008820394885002070BD10B50B
-:105EC000137804785B08E4075B00E40F2343137046
-:105ED000FD2423400478A407E40F640023431370D7
-:105EE000FB24234004786407E40FA40023431370C9
-:105EF000F724234004782407E40FE40023431370BD
-:105F0000EF2423400478E406E40F240123431370B4
-:105F1000DF2423400478A406E40F640123431370B4
-:105F20000078BF244006C00F234080010343137054
-:105F3000002906D00878C10701D1800701D50120CA
-:105F400000E00020C0015906490E0843107010BD42
-:105F500030B50A8803239B0204889A4323059D0FCA
-:105F600002D1A3049C0F01D09B0F00E001239B02F0
-:105F70001A4303230A801B039A4303889804840F5F
-:105F800002D11805830F01D0800F00E0012000032B
-:105F900002430A8030BDF3B591B00D0018D01198BE
-:105FA000002818D0122128460CF04BFC01A9012032
-:105FB00007F0A8FD00242646374677E002290000B6
-:105FC00001280000023000000102000060130020E0
-:105FD000102013B0F0BD0720FBE76846007C0128C5
-:105FE0000BD16846C1890520C002081A0AD00128D1
-:105FF0000AD002280CD003280CD0042C0ED0052C7B
-:106000000FD10DE0012400E002246846868908E0F3
-:10601000032406E068460424878902E0052400E0A2
-:10602000062468468189119881423FD12C74002E44
-:106030003AD00BA800900CAB10220021304607F09C
-:10604000F3FD002820D16846808D2A46C0B20CA9F5
-:1060500009F079FB002817D1AE81002F24D00BA8BE
-:10606000009006AB13220021384607F0DDFD002822
-:106070000AD16846808D06A9C01E0331C0B22A1D10
-:1060800009F061FB002801D00320A2E76846817E69
-:10609000427E08021043E881062C05D16846007C48
-:1060A000A8726846C0892881002092E701A807F0FD
-:1060B00031FD002891D0FFF7C6FD8AE7002804D003
-:1060C000012903D0022904D003207047F949C98D62
-:1060D00002E0F8494031C988814201D1002070476F
-:1060E0000720704730B5F34C0025608B91B0C00B92
-:1060F0002ED1216900292BD0207B800728D40122B2
-:1061000068460271027200224272228B8281A28A48
-:10611000828204911721018309AA0023023206A971
-:1061200001A807F0BBF8002803D0FFF7F4FD11B079
-:1061300030BD207B02210843207307A800906946E8
-:106140000B8B208804220121FFF7CCFA05460BE0D7
-:10615000FBF74EFD842101700921017218341ECC19
-:106160000C301EC0FBF760FD2846E0E710B5D14CAF
-:10617000034621690020002909D02146012210315F
-:106180001846FBF707FF00202061A0820120217B39
-:10619000F9221140217310BD70B50C4605461C2133
-:1061A00020460CF04EFB00202080002D08D0012D51
-:1061B00004D0C1A1C5480CF084FC70BD062000E0ED
-:1061C0000520A07070BD10B507F090FA10BDFEB5A7
-:1061D0000546007800260C46374603000CF076FD95
-:1061E0000C91070C1D962F462F46486C89916868C4
-:1061F0000A38FBF72FFE89E0002904D0B348AEA18E
-:106200001B300CF05EFCFBF7F3FC044640780821E1
-:1062100008436070FBF708FD78E0002C04D1BB2038
-:10622000A5A180000CF04DFC284601F05BFA002887
-:106230006CD06078082108436070022666E0E88828
-:10624000694608800190002C04D1A0489AA12F3003
-:106250000CF037FC287807281CD10198C00B19D006
-:10626000944800218171A988818012E003264DE0C5
-:10627000002C04D1C52090A180000CF022FC8D4898
-:10628000017B89070BD50069002802D0E888C00B84
-:106290003CD00226607808210843607036E0291D52
-:1062A0008EC918308EC02838018802260122204667
-:1062B000FBF752FE0127EDE7002C04D183487EA1B5
-:1062C00064300CF0FEFB7B480821007B4007C00FC8
-:1062D0004600607808436070002E17D128790128A5
-:1062E00002D16879002811D02046FFF73FFF07460A
-:1062F0000CE0002CCED10D206FA180010CF0E1FB51
-:10630000C8E772486CA17A300CF0DBFB002C0CD093
-:106310006078000709D5002F07D18420207020461F
-:10632000582229460830F9F74FFF3046FEBDF7B531
-:10633000027A88B00C46054620460C30049006923E
-:1063400016300027921E02903E460A31594813002B
-:106350000CF0BCFC0ADF06E62AE62AE66A98C6E6E6
-:106360004288002A02D052270726DDE051271E2648
-:10637000002C7DD06A684F481288A2800122A27149
-:106380008079C0004019C089FFF705FE002877D149
-:1063900048488179C9004919C98921818079C0009B
-:1063A0004019408AA083BFE0688A009006980728B9
-:1063B00017D1E889C00B14D000985127223086B23B
-:1063C000002C55D0A8890499FFF7E5FD002857D186
-:1063D00068680088A0800220A071A889208101201F
-:1063E00041E000985027203086B2002C40D0A88988
-:1063F000FFF7D1FD002843D168680088A080A889F4
-:10640000E080287A07280AD002202072288AA083F8
-:106410000098E083204669692030009A01E001205D
-:10642000F3E70CF0B1F97FE0698A00910169002976
-:1064300002D0E989C90B22D00099512722318EB2AE
-:1064400000218171A9898180002C5FD00088A08003
-:10645000A8890499FFF79FFD002811D10220A0719F
-:10646000A88920810420A072288AE083009801E096
-:106470004CE005E020846969009A0298D1E7032086
-:106480000BB0F0BD007B400702D55127222601E06A
-:1064900050272026002C39D06868502F0088A08013
-:1064A00016D00220A0712146287B0831FFF774FE28
-:1064B0003AE00000401300207372635C67617474FB
-:1064C000735F636F72652E6300000000CB020000F3
-:1064D000287BA11DFFF760FE0020FFF747FE23E0A9
-:1064E000A9890089884207D154270626002C0DD09F
-:1064F00068680088A08017E053270826002C05D084
-:1065000068680088A080A889E0800DE00A9806806D
-:1065100010E055270726002CF8D00020A07103E0DA
-:10652000FD49FE480CF0CDFA0A98002C068001D0F7
-:10653000278066800020A3E7F948002101722038F7
-:10654000418081718180027BF923520852001A40F8
-:10655000027301618182704770B5F14C86B0203CB6
-:10656000208000206080A071A0806946012007F093
-:10657000C9FA102608E00199088802461207D20FCE
-:10658000B043120110430880684607F0C3FA0500C3
-:10659000F1D02069002804D0E048DF4931300CF008
-:1065A00090FA207B800704D5DC48DB4932300CF0C0
-:1065B00088FA822D04D02846FFF745FB06B070BD4F
-:1065C0000020FBE7D64810B52038017B012211439B
-:1065D0000173002141808171818006F05BFA10BD5A
-:1065E00010B5CF4C0020C043203C20800020FFF796
-:1065F000BDFD207B40084000207310BD70B5C84D24
-:106600000446203D287B800704D5C448C249493050
-:106610000CF057FA287BC00706D12888C149884268
-:1066200002D02869002801D0082070BD002C08D0B5
-:10663000A088162801D2092070BD20682861A08892
-:10664000A882FFF74FFD70BD10B50C4607F04BFA5E
-:10665000002803D0B049B4480CF033FA2046FFF7C5
-:10666000F2FA10BDF0B5AE4D0446203591B00020D1
-:10667000089068820E462882E8812946E8804039E1
-:106680000886694608830885088688838882A44826
-:106690000E90007A1746012808D0022806D0032859
-:1066A00004D0042802D0082011B0F0BD05239B03BC
-:1066B0009C421CD3012080049C49221A8A4216D392
-:1066C0009B4A944213D29E4211D3331A8B420ED36B
-:1066D00096420CD26268002A16D005239B039A4288
-:1066E00005D3101A884202D39148824201D3102068
-:1066F000DAE760892189884203D801225202914257
-:1067000001D90C20D0E7089010AA0CA93046FFF759
-:1067100098FB0028C8D106A92069FFF73CFB002898
-:10672000C2D1206900280CD0607880070028684614
-:10673000008B03DA8004800F56D002E08004800FC3
-:1067400052D105A96069FFF726FB0028ACD160692A
-:10675000002808D06846808A0105890F012943D1A5
-:106760008004800F40D007A9A069FFF714FB002820
-:106770009AD16846008B800636D46846808A8006A7
-:1067800032D46846808B81062ED4A169002906D0B8
-:106790000105890F012927D18004800F24D0E068EA
-:1067A000002804D0007800281ED01C281CD25C4A87
-:1067B000611C123220460992FFF781FB0321002061
-:1067C0008902884301218902411868460D9101859B
-:1067D0000121817457490182514A0FA9153230684D
-:1067E00008F0D7FF002801D007205DE708A8007F48
-:1067F0004B49C01CC2B26A7100201031FF320090B8
-:106800000190FF3203460291039003320AA904A8C3
-:1068100007F004F9002827D141482038008E0B905A
-:106820003F4833893830326901461239029100936A
-:106830000192039010A90A8873890CA9306807F0A7
-:10684000EDF801007AD13648E98811308170090AE3
-:10685000C1700026009631386A79008E3146099B56
-:1068600007F05BF8002802D0FFF7EDF91CE70E985F
-:10687000807CC00928D068460D990185012181746A
-:10688000292109020182AE81287B61784008C9076D
-:106890004000C90F08432873FD2108406178204A51
-:1068A0008907C90F4900084328732A32901C022126
-:1068B000029200910190002303961F4A0AA904A89E
-:1068C00007F0ACF80100BDD1606800283FD0206916
-:1068D00000280DD106A90CA8FFF73AFB60788007C5
-:1068E00006D46946088B0321090388436946088357
-:1068F0000120694688740F48FE3008820E492089BD
-:10690000891E0BF0BBFF62680548089B2E3003967A
-:1069100000930192029012E0B8640000220400008B
-:1069200060130020FFFF0000260600000000FC1F8F
-:1069300000400020032800000302000086E00A4611
-:10694000002306A904A807F069F801007ED1207889
-:10695000C10601D480062BD56846068460690028EC
-:106960000DD105A90CA8FFF7F3FA6846818A032028
-:1069700080028143012080020918684681826946AD
-:10698000888A482108436946888201208874F8482B
-:106990000882F84908AA022001920291009000237F
-:1069A0000396F54A05A904A807F038F8010062D15A
-:1069B0002078C0072DD068460684A06900280DD134
-:1069C00007A90CA8FFF7C4FA6846808B0321890247
-:1069D0008843012189024118684681836846818B7A
-:1069E000402001436846818301218174E04908AA5F
-:1069F000491C0182DF480221801C01920091029013
-:106A000000230396DC4A07A904A807F007F8010051
-:106A100031D1E068002832D068460D990185012106
-:106A20008174D349891C0182E16808A80A78027040
-:106A300049784170E068418868464184E06801799E
-:106A400008A80171E068C18808A800E013E041715E
-:106A5000090A8171C7480722001D08A90092019107
-:106A60000290412200230396D2000AA904A806F04E
-:106A7000D5FF010003D00B98FFF7E6FD14E60321D4
-:106A80000E98002F017207D0E8883880E889788056
-:106A9000288AB880688AF880002005E6F0B50124CD
-:106AA0008BB016460F46012802D002281BD104E005
-:106AB000684605218474C90202E06846AF498474BF
-:106AC0000182002F11D00321002089028843012177
-:106AD000890241186846018506AA05A9384608F0CA
-:106AE00058FE002803D00720CAE41020C8E4A14DB6
-:106AF000B878303D287338882F46203F78856A461D
-:106B0000127D0020294606AB00920E310193FF3220
-:106B1000029103900346FF3203320AA904A806F04B
-:106B20007DFF002802D0FFF78EF8A9E4002E01D0E7
-:106B3000F88D30802C720020A2E470B592B0064629
-:106B4000012508A885708E496846018406F0DDFE9F
-:106B5000002208A90120FFF7A1FF044606F0D9FE94
-:106B6000002C02D0204612B070BD0024002E3ED072
-:106B70001C2168460BF067FE68460178202001431F
-:106B80006846017008A885707E49684601841194A2
-:106B90000794817FF9200140891C68468177002095
-:106BA0000146684601770020014668464177042186
-:106BB0008185C485018607A80A9011A80D9008A8B0
-:106BC000099006F0A2FE0EAA09A96846FFF74AFD41
-:106BD000054606F09EFE002D01D02846C3E7654815
-:106BE0006946098F503801816946898F4181614822
-:106BF000303804720020B6E7F7B55E4E9CB0002135
-:106C0000303E0091317A012904D0022902D00820B7
-:106C10001FB0F0BD57495039CA8D824201D00620BD
-:106C2000F6E71D98824201D10720F1E75348012180
-:106C300010AA9176401C1083002003239B02024679
-:106C40009A438B02D31810AA93846A4691844E49C2
-:106C5000D18410AA9077908317AA0A926A469185E8
-:106C60000C9009A806F075FF00242546274604A9C4
-:106C700009A806F071FF002810D0822877D1002CD7
-:106C80006AD0002D68D010A80481458100240475C5
-:106C900018A8807812AD012860D077E06846807D22
-:106CA000002F1FD0012853D16846818A3348401CE9
-:106CB000814219D114A800906846408A0EAB102278
-:106CC000002106F0B1FF002874D110A8008A042822
-:106CD00001D0062849D16846018F1D98814237D1DD
-:106CE0000F2095E7012833D16846808A0521C90223
-:106CF000884202D0491C88422AD11E485038C18D92
-:106D00006846408A814201D1012700E00027002C1B
-:106D100001D0002D0DD01D99884219D114A90091E0
-:106D200004460EAB1022002106F07EFF002841D160
-:106D300001E0009D0CE010A8008A022801D0102874
-:106D400013D1C0B218AA0EA908F0FDFC00280CD17E
-:106D50006846408A00908AE7052059E72A1D15A950
-:106D600018A808F016FD002810D0032050E721E0F5
-:106D700002290000901300200302000001280000F7
-:106D800001180000052A0000FFFF000010A8007D88
-:106D90000023001DC2B210A802751E98029019A906
-:106DA00001950394009216A806F038FE002801D140
-:106DB00002213172FEF747FF2AE73EB50B46401E1F
-:106DC00084B201AA00211846FFF779F806F09DFD6C
-:106DD00002A8009001AB01220021204606F09DFD93
-:106DE000044606F096FD68460089012803D0FE4956
-:106DF000FE480BF066FE2046FEF725FF3EBDF0B5CF
-:106E0000FB4E0446307A89B00F46032804D004288C
-:106E100002D0082009B0F0BD04AA06A92046FFF759
-:106E200010F80500F6D1F24823893830226901466E
-:106E30001039029100930192039069460A8A63898E
-:106E400006A9206806F0EAFD002802D0FEF7FBFE46
-:106E5000E0E7002F03D0E648203000893880042086
-:106E600030722846D6E738B50C00054608D0002217
-:106E7000694606F033FF002804D0FEF7E4FE38BD73
-:106E8000102038BD69462046FEF785FF0028F8D15E
-:106E9000A0786946C207D20F284606F03AFFECE711
-:106EA0003EB50C0008D002AA694606F017FF00287C
-:106EB00004D0FEF7C8FE3EBD10203EBD0321204693
-:106EC0000BF0BFFC6846008801A90005800FFEF7A3
-:106ED0004EFF00280BD16846007920706846008874
-:106EE00001A98004800FFEF742FF002801D0032093
-:106EF0003EBD684600796070A278EF200240684687
-:106F00000088C10B09010A43F7210A404104C90F57
-:106F1000C9000A43A270F9210A40800601D5012068
-:106F200000E00220400069460243097A5008400010
-:106F3000C907C90F0843A07000203EBDFEB51D461D
-:106F400014000E46074615D0002D13D006F0DDFCC8
-:106F500001A8009022882B463146384606F0DDFC19
-:106F6000054668468088208006F0D3FC2846FEF758
-:106F70006AFEFEBD1020FEBDF0B50C46002199B0A2
-:106F80000746684681850D46002C11D0E068002830
-:106F900006D0A06800280BD002886B469A85018035
-:106FA000A078012806D0022804D0072019B0F0BD2F
-:106FB0001020FBE72088002807D0401E80B201A9DE
-:106FC00006F0A0FD002842D136E08A48EEE7694687
-:106FD0008A8921888A420BD26846007C00250128D4
-:106FE0002CD16846C0898449884227D1012525E0F3
-:106FF0008A4203D1002D2FD06D1C01E0022D02D05A
-:10700000032D1BD31FE06946097C012916D169466F
-:10701000794BCA895B1ED11A9A421DD005DC77488C
-:10702000101A19D0012809D116E0012914D0FF390E
-:10703000013903D1032506E00D26B60201A806F0AA
-:1070400069FD0028C3D0822804D0002806D0FEF7AE
-:10705000FAFDABE7022DFAD13046A7E7E068002839
-:1070600013D006F052FC0BA800906A46A188208835
-:10707000928DE36806F051FC054606F04AFC002DAF
-:1070800019D16846A168808D088002980078C006F2
-:1070900001D55B488AE706F038FC0EA800906846E8
-:1070A00080890CAB0222002106F0BEFD054606F0E9
-:1070B00030FC002D01D02846C9E76846008F022821
-:1070C00001D0032072E7A078012808A8007C03D033
-:1070D00080070ED4082069E7C007FBD00820FEF720
-:1070E000EBFA072802D34348401C5FE7082502203B
-:1070F00001E00225032069460876218868468183DD
-:107100001721818611AA002302320DA906A806F0D4
-:10711000C5F8002802D0FEF7FEFD47E70FA8009053
-:107120006846838E042229463846FEF7DBFA3DE79F
-:1071300070B5064615460C460846FEF741FD002888
-:107140000AD106F0E2FB2A4621463046FFF7A6FCAC
-:10715000044606F0DEFB204670BD70B514460D46B1
-:10716000064606F0D2FB224629463046FFF744FD8C
-:10717000044606F0CEFB204670BD70B51E46144690
-:107180000D001AD0002C18D06168002915D00121FB
-:10719000FEF794FF00280FD12068FEF711FD0028AC
-:1071A0000AD106F0B2FB324621462846FFF75AFACA
-:1071B000044606F0AEFB204670BD102070BD70B5D1
-:1071C00015460C0023D00221FEF778FF00281DD1C0
-:1071D0002068FEF7F5FC002818D106F096FB29463A
-:1071E0002046FFF70CFE0DE0B86400003C060000EE
-:1071F0006013002002300000032800000028000077
-:1072000001340000044606F084FB204670BD1020C7
-:1072100070BDF8B51C4615460E46074600F01FFA2D
-:10722000002805D123462A4631463846FFF786FE18
-:10723000F8BDFFB583B01E4615000F460FD006F00F
-:1072400064FB01A800900023F74A3946039806F032
-:10725000EBFC044606F05DFB002C03D014E010208C
-:1072600007B0F0BD002E0CD006F04FFB00200090C0
-:107270002A8833463946039806F0D6FC044606F0C1
-:1072800048FB6846808828802046FEF7DCFCE7E75C
-:10729000002906D0E54B0A885B899A4201D8E44868
-:1072A000704769E610B586B004236C46A382DF4BB5
-:1072B0005C898C4201D2914202D9DD4806B010BDF2
-:1072C0006C462182628200210091019119892180FE
-:1072D0000221A17005A9029104A903916946FFF753
-:1072E0004BFEEBE7F0B591B00D4681206946087181
-:1072F00005F002FC0646002D08D02878CB4C01286A
-:1073000006D0022828D0072011B0F0BD1020FBE7DE
-:10731000A98801AAFEF7CAFC0028F5D1B00734D528
-:1073200068460079002820D1A879C0071DD006F052
-:10733000ECFA002000906A892989A088EB6806F0A1
-:10734000ECFA6946087106F0E4FA69460879002803
-:107350000BD0FEF778FCD7E7A98801AAFEF7A6FCB8
-:107360000028D1D1342006420FD001216846017295
-:10737000017301794173F00609D5A188684601823D
-:10738000A18A01832069059004E00820BCE7A08859
-:1073900069460882FAF72CFC05461720694688835F
-:1073A0000AAA2B46023207A902A805F077FF074672
-:1073B0006878000701D5FAF737FC002F03D038466C
-:1073C000FEF7A9FCA0E7F00603D5207B06210843C1
-:1073D0002073B00602D50020FEF7C8FE08A8009072
-:1073E00069468B8B208804220121FEF77BF98BE70D
-:1073F000F0B5002695B014460D4600290FD0022C9A
-:107400004FD3A71EBAB288480AF02EF929191039AD
-:10741000CA7B8B7B11021943884242D1BCB201A9BD
-:10742000012006F06FFB7AE0029F3888010776D5CD
-:10743000002D41D0A9190691CA788B78361D11020A
-:10744000B6B219438919A1422BD869468A8906998F
-:107450004B7809781B020B439A4222D1C00623D5F0
-:1074600006F053FA07A800900698AB19C178807807
-:107470000A0206990243487809780002084300216D
-:1074800006F04BFA009006F044FA009800283ED12E
-:107490000698C178827808026946898B1043884231
-:1074A00002D00B2015B0F0BD0698C1788278080292
-:1074B0001043801986B22EE0C0062CD5002007AA02
-:1074C00001461154401C80B21028FAD306F01DFA70
-:1074D00006A800906846002380891022194606F00D
-:1074E000A3FB0090002803D006F013FA00980EE0EA
-:1074F0000BA86946009088890A8B07AB002106F02B
-:107500000CFA009006F005FA0098002803D0FEF768
-:107510009AFBC7E703E0388810218843388001A828
-:1075200006F0F8FA002800D17EE7404D698800296E
-:1075300021D0012268460276027700244477018434
-:10754000172181850EAA234602320BA906A805F051
-:10755000A5FE002802D0FEF7DEFBA3E70CA80090F2
-:1075600069468B8D288804220121FEF7BBF800288C
-:1075700098D16C8096E7002094E7F0B5002487B09E
-:1075800015460E46002A04D002A9012006F0BAFAD8
-:1075900040E0102064E60398007800073AD506F032
-:1075A000B4F901A8009068460023008A1E4A1946D3
-:1075B00006F03AFB074606F0ACF9002F23D1002E67
-:1075C00023D068468088298820183719001D8142F9
-:1075D00036D36946098A3970090A797069468988FB
-:1075E000B970090AF97006F090F901A8694600908F
-:1075F000088A8A883B1D002106F016FB074606F024
-:1076000088F9002F01D003202AE6684680882018D8
-:10761000001D84B202A806F07DFA0028BBD08228A3
-:1076200008D0FEF710FB1BE6FFFF00004013002010
-:1076300002300000002E0ED02988A01C814201D209
-:107640000C200DE62246314639480AF00DF8311972
-:107650000870000A4870A41C2C80002000E600B5C9
-:1076600085B06946FEF797FC00280AD16846007C81
-:1076700003000BF02BFB08052F2F2F2F08080531D7
-:10768000032005B000BD68468078012807D1684610
-:1076900000880321C902401A1CD001281AD068466C
-:1076A0008079012806D16846808815214902401A50
-:1076B00005280FD96846807A012811D168460189CA
-:1076C00029200002081A05D0022803D0032801D07F
-:1076D000042805D10F20D4E7164917480BF0F1F91B
-:1076E0000020CEE738B5154A0021518003791AE011
-:1076F000CC002418A46800946C462488250707D57C
-:10770000E50605D5D90008182038C08B508006E062
-:10771000640406D59171C9000818C08890800120C2
-:1077200038BD491CC9B28B42E2D8002038BD0000E8
-:10773000FFFF0000B8640000330200004013002087
-:10774000F8B50125F84902260E603F27F7493F02A8
-:107750008F60F7490022CA63CD63F649C96A0907F9
-:107760000ED4F4494031CB6AF34A53620B6B9362F7
-:107770004B6BD3628B6B1363C96BD3051943516396
-:10778000EE49EF4CC969002829D001282BD0FF20F1
-:10779000ECA16E300BF095F9EE48A063FF200430A9
-:1077A00060632563EC49032008602061E44996206A
-:1077B00040314860DD48E94940304163E649FC39E1
-:1077C0000163E649091FC163E349F0398163D74882
-:1077D0004760E34910204860E2480660F8BDE2488F
-:1077E0006061E24804E0E148E0306061DF48801F0A
-:1077F0000143A161D0E70120D0494006C86170472C
-:1078000010B5CE4C0020A070214660702031487029
-:1078100008746061A072A06209F02AFBA061204692
-:10782000343009F038FF002804D0FF20C5A13A30D9
-:107830000BF047F901204006E0610020FFF780FFD0
-:1078400010BDBE49012008707047BC490020087077
-:10785000704770477047BA4940310028086802D025
-:107860000122104301E0400840000860704770B5F5
-:107870000C46B24D01460622E81C0AF085FF6C72E8
-:1078800070BDAE48203040787047AC4A917050705F
-:10789000704770B50D460446082904D9FF20A9A1F8
-:1078A000CB300BF00EF90022B14809E0910063588B
-:1078B00009180B6053001B191B8C0B62521CD2B2AF
-:1078C000AA42F3D3206BAA494031086070BD0B2354
-:1078D000DB4310B5C21A9A4998421FD008DC1C320B
-:1078E00022D00A2A20D0142A1CD0182A08D117E046
-:1078F000083011D004280DD0082809D00C2805D054
-:10790000FF2090A1F7300BF0DCF810BD04200CE054
-:1079100000200AE0FC2008E0F82006E0F42004E063
-:10792000F02002E0EC2000E0D820C86010BD8348C1
-:107930002030007B704710B5814CC17861620AF03D
-:1079400084FF0002E06110BD252808D0262808D059
-:10795000272808D041000A2807D8091D06E002217F
-:1079600005E01A2103E0502101E0891DC9B2744AE3
-:107970009160734940314861704770494861704770
-:1079800070B56E4DA87200F028FBA87AC0073CD0F5
-:10799000714C2068800703D46AA176480BF091F8F7
-:1079A000A87A010619D5800707D5724865A1801C01
-:1079B0000BF087F8A87A00060FD55C4E2878403681
-:1079C000012811D0002804D0A3205EA180000BF074
-:1079D00078F869487061A8693061A87A800714D581
-:1079E0002068C00708D102E06348001FF2E7A52025
-:1079F00054A180000BF065F8A87A4007206801D5F3
-:107A0000042100E008210843206070BD70B5012406
-:107A10004A4D002807D0012818D002281AD055480E
-:107A200048A145380BE000F0D8FA53482978001FE8
-:107A3000012907D0002907D04E4842A158380BF041
-:107A400040F870BD046070BD446070BD8120FFF7D8
-:107A500097FF70BD00F0C1FA6869002804D145485D
-:107A600038A150380BF02DF86969A86A40184349CD
-:107A7000C8602E484249403001623F490C314162A2
-:107A80002A49001548603F4884602C48203004741F
-:107A900070BDF8B50C2069460870314C6068C006AE
-:107AA000C50F1026A66034480021FC300161324B1E
-:107AB00001221B1F1A610BE000BF00BF00BF00BF07
-:107AC00000BF00BF00BF00BF6B461A78521E1A707D
-:107AD0006A461278002A02D00269002AECD00161BD
-:107AE00068460078002804D1224816A131380AF0EF
-:107AF000E8FF002D00D06660F8BD10490020C86185
-:107B0000704710B50AF0A1FE00020D49000AC863D3
-:107B100010BD054902200860704703490220086033
-:107B2000104908607047000080E100E000F5014066
-:107B3000C01F004080000010001700409C13002070
-:107B4000001500407372635C68616C5F7263732E32
-:107B5000630000005B06000000120040448000400B
-:107B60000013004080E200E006010200250003004F
-:107B7000001600407B0200000410004040850040D9
-:107B80004C81004000050040FB4902200860C9E725
-:107B9000FA490870C6E710B5F94809F084FD0028D5
-:107BA00004D02B20F74900010AF08BFF10BD10B55F
-:107BB000F34809F090FD10BDF3494860B2E7F04981
-:107BC00010B53439F14B0022C8605A60896A081830
-:107BD000EF49486000F008FA10BDE94810B5C2212D
-:107BE0003438C160E94A00215160806AE849C230F6
-:107BF000486000F0F9F910BDE64900208861C861CD
-:107C0000DF493439C860E24948608BE7DC4900202D
-:107C10003439886286E73F20DE49000240398860B7
-:107C200080E7D748DA493438806AFE30886079E7DF
-:107C3000D7490020886075E7D74801681022914332
-:107C40000160D649012088616CE7D5490020C861F0
-:107C5000D148016810221143016063E700B5FFF7C6
-:107C6000EBFFC74900203439087400BD00B5FFF7A9
-:107C7000ECFFC34901203439087400BDC849CA6902
-:107C8000012A01D000204DE7BF4A403292685206D7
-:107C9000520E524202700020C861012042E7F8B53E
-:107CA000BF4C2069012806D00021B548343800783F
-:107CB000012802D004E04021F7E7E268012A04D05D
-:107CC00000220A43012802D004E02022F9E761687B
-:107CD000012905D000211143B24A002802D007E053
-:107CE0001021F8E71368012B02D1E368012B04D0BF
-:107CF00000230B43002802D007E00823F9E71168AE
-:107D0000002902D1E168012905D000221A439F4EC3
-:107D1000002802D004E00422F8E77168012904D0A9
-:107D200000211143002802D004E00221F9E7606835
-:107D3000012829D000259C480D4301680906090E39
-:107D400002D06169012900D000218D4F143F3973A1
-:107D500000680006000E02D0A069012800D00020B3
-:107D600078738B488068002803D000F0ABFA0128B4
-:107D700000D00020B8730021E16021616160616181
-:107D8000A16171602846F8BD0125D4E77C48012136
-:107D90001438C173C6E6F8B5794E0127143E307C1D
-:107DA0000025002827D07C4C206800902560FFF734
-:107DB00070FE009820607A48C560056145604561A5
-:107DC000856174490015403988607848856030467F
-:107DD000203801787148012909D0002909D0694962
-:107DE00073480AF06EFE0AF06BFF3574F8BD076049
-:107DF000F9E74760F7E7FFF752FF04460020F0730A
-:107E0000634842685E4D343D6A620068A862297822
-:107E1000002909D1A978002906D05B4B5B681B7843
-:107E20000B406978994309D000213170E10707D0F0
-:107E3000104602F031FC0121A86A08E03770F5E72E
-:107E4000A10601D5022102E0A10702D5002102F01E
-:107E500030FC4D4F796806220931E81C0AF067FCB6
-:107E6000002807D1687A79680978C909884201D160
-:107E7000012000E000207070204600F0BBF83F4871
-:107E8000C2270078002815D0012828D002283BD02E
-:107E900003285AD03B4947480AF013FE287C0028A3
-:107EA00004D02878002865D0FFF7C6FE287800287F
-:107EB00061D08BE0A00701D501F001FC200703D5BC
-:107EC0000120EF6001F034FC600703D50020EF6073
-:107ED00001F02EFCA006E1D501F09EFBDEE7A00735
-:107EE00001D503F08BFE200703D50120EF6003F0DE
-:107EF00005FE600703D50020EF6003F0FFFDA0063C
-:107F0000CCD503F087FDC9E7A00703D5BF20044007
-:107F100009F07EFB200705D5BF2004400120EF605B
-:107F200009F075FB600705D5BF2004400020EF6015
-:107F300009F06DFBA00603D5BF20044009F066FBE5
-:107F40006006ABD509F065FBA8E7A00701D509F0ED
-:107F500063FB200703D50120EF6009F05CFB60079D
-:107F600003D50020EF6009F056FBA00696D509F076
-:107F700051FB93E720E022E000E100E05400002004
-:107F8000D0130020447B00000015004040810040D9
-:107F90004085004040F501400012004000100040C4
-:107FA0000011004000140040401600400005004051
-:107FB0006F0300009F040000FFF747FE76E7E868C4
-:107FC000002803D0A96A091826484160F07B0028E0
-:107FD00000D10BE70AF074FEF8BD234903200860C6
-:107FE0002249002008619DE520482149C1612149BD
-:107FF000816197E570B50546FFF7EFFF1E4CA17A4A
-:10800000080701D568071CD41C4AC80605D5507B53
-:10801000002802D0907B002813D0880602D5107863
-:1080200000280ED1480602D55078002809D000203B
-:108030008A070026002A07DA4A0704D5012222709F
-:1080400002E00120F4E72670CA0709D0AA0705D488
-:10805000890705D5002803D0A80601D4FFF719FD2C
-:10806000A67270BD408500400012004040F50140FE
-:1080700010100040448100409C130020BC130020DD
-:108080002E48002101704170704770B506461446B5
-:108090000D46012000F072F828490120284B087095
-:1080A0009E60DC601D6170BDF8B50446012000F0E3
-:1080B00065F822490120087021494C6021490026B9
-:1080C0004E601121204D8902A960204F002C0AD05A
-:1080D000012C03D01EA140200AF0F3FC3E601120C9
-:1080E00080026860F8BD386001208002F9E710B5B1
-:1080F0001248017800290ED01121134A890291609B
-:1081000010494A680021002A03D0154A12684270BB
-:1081100000E041700170002000F030F810BD074809
-:108120000178002907D007484068002802D00C4891
-:108130000068C0B2704740787047000055000020CA
-:1081400000F5004000F1004000F5014000F2004061
-:108150007372635C68616C5F63636D2E6300000023
-:1081600000F4004001202949C0030860284900208C
-:1081700008701120274980028860704770B5244D2F
-:1081800004462878A04207D0002C05D0002803D050
-:1081900021A14D200AF095FC2878A04210D00020A3
-:1081A00022492C70002C23D01A4A214D214B8032B9
-:1081B000012C06D0022C13D017A16A200AF081FCF2
-:1081C00070BD0860022008604D6112481A494030B5
-:1081D00001624362081D10601648001D506070BDAA
-:1081E0000860032008604D6114481060536070BD42
-:1081F00008600860112007498002886070BD10B5D2
-:1082000005A173200AF05DFC10BD000080E100E0D4
-:108210005700002000F501407372635C68616C5F79
-:1082200063636D5F6161722E6300000000F50040C2
-:10823000D413002000F000400011004048810040AD
-:10824000364800210170417010218170704770B56F
-:10825000064614460D460220FFF790FF01202F49E5
-:108260002F4A0870E41E14619660556070BD10B509
-:108270000220FFF783FF29490120087029480021C7
-:1082800001604160816028490014486010BD10B54C
-:10829000224C2078002811D00120234980038860D7
-:1082A00000F02EF80021002804D0012060701F4843
-:1082B000006801E061701020A07021700020FFF7BD
-:1082C0005DFF10BD10B515480178002905D000F0FC
-:1082D00017F8002800D0012010BD407810BD10B55F
-:1082E0000E480178002909D000F00AF8002803D0D0
-:1082F0000E480068C0B210BD102010BD807810BDBF
-:1083000008480168002905D04168002902D080682A
-:10831000002801D00020704701207047580000203D
-:1083200000F5004000F1004000F5014000F400407D
-:1083300010B528210AF085FA10BD40788006800E1D
-:10834000704740788006800EC01C70472820704718
-:1083500070B5054600780A0700090001120F1043A6
-:1083600028700B000AF0B2FC070507050705090590
-:108370000B00062408E00C2406E0222404E000247C
-:10838000FEA158200AF09DFB6878800980012043F7
-:10839000687070BD00780007000F704710B50622A6
-:1083A000C01C0AF0F1F910BD0B4610B5C11C062225
-:1083B00018460AF0E9F910BD10B5062209300AF096
-:1083C000E3F910BD0B46014610B5062209311846E7
-:1083D0000AF0DAF910BD0278BF23C9071A40490E26
-:1083E0000A430270704700784006C00F7047027859
-:1083F0005206520EC9010A43027070470078C00944
-:10840000704770B50C460546C11C2046062209304F
-:108410000AF0BAF920784006400E20702978490603
-:10842000C90FC9010843207070BD70B515460E46CE
-:1084300004461F2A03D9D1A1A9200AF042FB2046F5
-:108440002A46314609300AF09FF96078AD1D80094F
-:108450008001A906890E0843607070BD70B505469D
-:1084600040780E468406A40E062C03D2C3A1B92080
-:108470000AF027FBA41FE4B21F2C00D91F242946B1
-:108480002246093130460AF07FF9204670BD70B5AA
-:1084900015460E4604461F2A03D9B8A1CD200AF07E
-:1084A00010FB20462A46314609300AF06DF9607803
-:1084B000AD1D80098001A906890E0843607070BD5A
-:1084C00070B5044640780E468506AD0E062D03D2E3
-:1084D000AAA1DE200AF0F5FAAD1FEDB21F2D03D9D7
-:1084E000A6A1E2200AF0EDFA21462A4609313046DB
-:1084F0000AF04AF9284670BD10B504220F300AF080
-:1085000043F910BD0B46014610B504220F31184641
-:108510000AF03AF910BD10B5032213300AF034F90D
-:1085200010BD0B46014610B50322133118460AF060
-:108530002BF910BD4176090A81767047817E427E13
-:10854000080210437047C176090A01777047017F1E
-:10855000C27E0802104370474177090A817770474D
-:10856000817F427F080210437047C175090A017676
-:108570007047017EC27D08021043704781757047C5
-:10858000807D704720300279C90652095201C90E18
-:108590000A430271704720300079C006C00E704750
-:1085A00020300279D206D20E49010A430271704787
-:1085B000203000794009704710B505221F300AF0BD
-:1085C000E3F810BD0B46014610B505221F311846D1
-:1085D0000AF0DAF810BD30B5411C837E0A46190254
-:1085E000D37D447E927D1B0221431343674D827DE0
-:1085F0008C1FAC4210D8002A0ED0082A0CD88A4210
-:108600000AD28B4208D8817F427F08021043A91DFD
-:10861000884201D8012030BD002030BD00210A462B
-:108620004254491C2229FBDB70474078C006C00E2B
-:1086300070474078C006C00EC01C704722207047AB
-:1086400010B502788B07920892009B0F1A430270B4
-:108650004278520952014270012908D0022906D0FD
-:10866000032905D0FF2045A1A3300AF02AFA10BD46
-:1086700001210A43427010BD10B502788B079208A1
-:1086800092009B0F1A4302704278520952014270C5
-:10869000012908D0022906D0032905D0FF2037A1DF
-:1086A000BD300AF00EFA10BD01210A43427010BD20
-:1086B00000788007800F70470278FB23C9071A40B3
-:1086C000490F0A430270704700784007C00F704797
-:1086D0000278F723C9071A40090F0A43027070474E
-:1086E00000780007C00F70470278EF23C9071A40CF
-:1086F000C90E0A43027070470078C006C00F704769
-:1087000070B50546C1700B000AF0E0FA0E080A0CBD
-:108710000E1012120C14141212160C180C2413E062
-:10872000082411E002240FE017240DE00D240BE0D3
-:10873000012409E0092407E0062405E0452000247F
-:108740000EA1C0000AF0BDF968784009400120433D
-:10875000687070BDC078704770B5044640780E46AA
-:10876000C506ED0E1B2D03D904A109480AF0A9F98D
-:108770006019C01C042231460CE000007372635C77
-:10878000756C5F7064752E63000000007A0C000049
-:108790003A02000009F0F8FF70BD70B50446407859
-:1087A0000E46C506ED0E1B2D03D9A049A0480AF0C0
-:1087B00088F96119C91C0422304609F0E5FF70BD33
-:1087C000C171090A01727047017AC2790802104327
-:1087D00070474172090A81727047817A427A0802B1
-:1087E00010437047C172090A01737047017BC27A56
-:1087F0000802104370474171090A817170478179FD
-:108800004279080210437047017170470079704740
-:108810004173090A81737047817B427B08021043D0
-:10882000704730B5411C037A0A46C47919022143C6
-:10883000537914791B0223437E4D00798C1FAC427F
-:1088400010D800280ED008280CD888420AD28B42B3
-:1088500008D8D07A917A00020843A91D884201D82D
-:10886000012030BD002030BD10B50522001D09F0EB
-:108870008BFF10BD0B4610B5011D0522184609F0EF
-:1088800083FF10BD4172090A81727047817A427A72
-:10889000080210437047017170470079704710B5A6
-:1088A0000822001D09F070FF10BD0B4610B5011D18
-:1088B0000822184609F068FF10BD0A78027349784B
-:1088C00041737047027B0A70407B4870704710B557
-:1088D00008220E3009F058FF10BD0B46014610B5B6
-:1088E00008220E31184609F04FFF10BD10B50422C2
-:1088F000163009F049FF10BD0B46014610B50422A1
-:108900001631184609F040FF10BD10B50822001DB1
-:1089100009F03AFF10BD0B4610B5011D082218469C
-:1089200009F032FF10BD10B504220C3009F02CFF05
-:1089300010BD0B46014610B504220C31184609F053
-:1089400023FF10BD017170474171090A81717047A1
-:10895000C171090A017270470079704781794279C3
-:10896000080210437047017AC27908021043704729
-:108970000171704700797047017170470079704745
-:1089800010B50822001D09F0FFFE10BD0B4610B502
-:10899000011D0822184609F0F7FE10BD10B5082287
-:1089A000001D09F0F1FE10BD0B4610B5011D082297
-:1089B000184609F0E9FE10BD70B515460E4604468E
-:1089C0001B2A04D93720194900010AF07AF82A46EF
-:1089D0003146E01C09F0D8FE6078E9064009400104
-:1089E000C90E0843607070BD70B5054640780E46EC
-:1089F000C406E40E1B2C04D9DF200C4980000AF0C9
-:108A000060F82246E91C304609F0BEFE204670BDE3
-:108A10004078C006C00E1B2801D8012070470020F6
-:108A2000704710B5222209F0AFFE10BD7C87000010
-:108A3000430200007A0C0000FEB50F4601460646D0
-:108A40000546C031203640350446032F04D0002FA0
-:108A50002BD0012F29D049E000206080A080E08049
-:108A600020816081A082E082E873A074E074A07627
-:108A7000E076A073E0732074607430740123AB73EC
-:108A80006882E88208762146A883603108702883CE
-:108A90002873687320776077B072B0730872487279
-:108AA00088720A7488746883FEBD00206882E88238
-:108AB000012F50D0E08B0090608C0190C000009995
-:108AC00009F0DCFE401C80B2A882009919224143C3
-:108AD0009202914201DD401EA8827D200002009991
-:108AE00009F0CCFE401CE883002F01D0022FDBD11F
-:108AF000307AC006C00E30720020E872221824219D
-:108B00008B5C4032D9075B08DE07C90FF60F71187E
-:108B10005B08DE07F60F71185B08DE07F60F7118A9
-:108B20005B08DE07F60F71185B08DE07F60F711899
-:108B30005B08DE07F60F71185B0859189171EA7A25
-:108B4000401C5118C0B2E9720528D7D3002FABD111
-:108B500000202874FEBD4A7F2046E030022A12D051
-:108B6000097F022913D050A1722009F0AAFF012029
-:108B700000900190E08B698B4843009909F08CFECE
-:108B8000688301989AE7818800910089F1E7018A5A
-:108B90000091808AEDE770B504464034E67A0546D8
-:108BA000002E68D0252E66D8002964D03C20405D78
-:108BB000227B48431018252109F060FE08462173E6
-:108BC0004207C908520F3C4B691820319A5C097959
-:108BD0008A4367D0314609F051FE491CCAB20020D1
-:108BE00006E0002804D0291840314979511ACAB248
-:108BF000291846235B5C93423AD320310979C94353
-:108C0000CB07DB17D21A521E1206120E34D08B0776
-:108C1000DB17D21A521E1206120E2FD04B07DB178B
-:108C2000D21A521E1206120E2BD00B07DB17D21AC5
-:108C3000521E1206120E27D0CB06DB17D21A521E76
-:108C40001206120E23D08B06DB17D21A521E120602
-:108C5000120E1FD04B06DB17D21A521E1206120E2E
-:108C60001BD00906C917511A491E0A06120E17D041
-:108C7000401C0528B5DB70BDC00013E0C000401CDF
-:108C800010E0C000801C0DE0C000C01C0AE0C00065
-:108C9000001D07E0C000401D04E0C000801D01E091
-:108CA000C000C01D607370BD7372635C6C6C5F75D7
-:108CB00074696C2E63000000042D010010B5FF489C
-:108CC0000021017041708170C17041718171C17169
-:108CD000083008F0E0FC002804D0FF20F8A1843020
-:108CE00009F0EFFE10BD10B5F44900204872081DD0
-:108CF00008F0D1FC002804D0FF20F1A1C33009F016
-:108D0000E0FEFFF7DBFFF148FFF788FC0021EF48AA
-:108D1000FFF7EAFC0121ED48FFF792FC10BDE2E706
-:108D20001B207047E5494A7A002A01D0002070478D
-:108D3000488101204872704710B5E0494A7A002AFC
-:108D400002D04989814201D0002010BDDB48001DBE
-:108D500008F0A9FC002804D0FF20D9A1B43009F004
-:108D6000B0FED648001D08F0B6FCFFF7A7FF0120B3
-:108D700010BD70B5D14C0025627A002A02D06289FC
-:108D8000824201D00D700DE0227863789A4203D3BD
-:108D900022786378D21A04E062782378D21A1023FA
-:108DA0009A1A0A70FFF7C8FF002801D065720120E7
-:108DB00070BDC2494A7A002A04D04989814201D152
-:108DC0000120704700207047BC490A784B78521C3C
-:108DD0001207120F9A4207D0097822225143BC4A47
-:108DE000891801600120704700207047B34801785E
-:108DF0004278491C0907090F914206D00178491CA5
-:108E00000907090F01700120704700207047AB4926
-:108E10004A7A002A04D04989814201D10120704751
-:108E200000207047A5490A784B789A4207D04978C4
-:108E300022225143A64A8918016001207047002070
-:108E4000704710B59D4C20786178884216D06078C4
-:108E5000401C0007000F6070201D08F024FC002853
-:108E600004D0E078401CE070012010BDA078401CC8
-:108E7000A0709248001D08F02EFCF5E7002010BD00
-:108E80008E4801784078814201D10120704700204E
-:108E900070478A4801784278914202D3017840783D
-:108EA00003E041780078081A1021081AC0B2704710
-:108EB0000F20704770B5814C0D46617A002916D09D
-:108EC0006189814213D100262E70201D08F0EBFB32
-:108ED000002805D1A0782870A670201D08F0FBFBA3
-:108EE0002878E17840182870E670012070BD0020D5
-:108EF00070BD76490160704770494A7A002A04D0F3
-:108F00004989814201D101207047002070476B4997
-:108F10004979002901D0002070476E490160012085
-:108F2000704766484179002901D00020704701212F
-:108F300041710846704761494A7A002A04D049893C
-:108F4000814201D101207047002070475B49497977
-:108F5000012901D0002070475E490160012070475F
-:108F600056484179012901D0002070470021417104
-:108F70000120704751484079012801D001207047F5
-:108F8000002070474D494A7A002A04D0498981421D
-:108F900001D1012070470020704770B5474C05464D
-:108FA000A0790721401C09F069FCE079814208D0D2
-:108FB000A0792221484347492231401828600120E6
-:108FC00070BD002070BD10B53C4C0721A079401C3D
-:108FD00009F054FCE079814207D0A0790721401CB8
-:108FE00009F04CFCA171012010BD002010BD3348D8
-:108FF0008179C079814201D10120704700207047FA
-:109000002E494A7A002A04D04989814201D101209F
-:1090100070470020704710B504462848083008F013
-:1090200042FB002815D125498879CA7990420CD095
-:10903000C8792221484327492231401820601F481F
-:10904000083008F048FB012010BD1C48083008F02B
-:1090500042FB002010BD10B504461848083008F047
-:1090600022FB002815D115498879CA7990420CD085
-:10907000C8792221484317492231401820600F48FF
-:10908000083008F028FB012010BD0C48083008F01B
-:1090900022FB002010BD094810B5083008F003FB82
-:1090A000002822D1054CA079E17988421AD0E079D4
-:1090B0000721401C09F0E2FBE1710DE05C0000209B
-:1090C0007372635C646D5F712E6300002F17002064
-:1090D000FF1300201F1600202046083008F0FBFA7E
-:1090E000012010BD0C4808F0F6FA002010BD0A4817
-:1090F00008388179C079814201D101207047002070
-:109100007047054808388179C079814201D1012032
-:1091100070470020704700006400002070477047CF
-:10912000FF2070477047704700207047002070474D
-:1091300000207047002070470020704700207047D3
-:1091400000207047002070470020704701207047C2
-:1091500000207047002070470020704700207047B3
-:10916000F8B5FA4D0446A87F002600280CD0002947
-:1091700023D1667010202070E87FA0702846203030
-:109180000078E070AE7718E0287A012801D000203E
-:10919000F8BD002911D16670EC49687A01270A31BF
-:1091A000002801D0132000E0052020701422A01C0C
-:1091B00009F0EAFAA7716E722E720120F8BDF8B5B7
-:1091C000E3480078002802D00C273846F8BD002775
-:1091D000DE4D3C46203DAF74EF742F7528466F730B
-:1091E0002038DA4E47737771687D002804D0FEF787
-:1091F0001FFDFFF74CF86C7534727472B477D34866
-:109200002430FFF795F8D1484C30FFF791F8D0485B
-:109210004470DAE710B5CE4C00232370CB4C203CD1
-:109220006375CA4B01241C71603B583307C3FFF7B9
-:10923000C6FF002803D0C7A1FF2009F042FC10BDE3
-:10924000C2482038807C7047F8B5C04D0646407B48
-:10925000203DE873BD4837791346AF73B27B827106
-:109260000446603C217006221946601C09F08CFA05
-:10927000B07960730622F11DE01D09F085FA687B64
-:109280000126002800D0EE74B0484038407B00280A
-:1092900000D02E75002F09D0012F09D0022F24D025
-:1092A000032F43D0FF20ABA14B3013E000211DE082
-:1092B000A64801212430FFF74BF8A448E11D2430D3
-:1092C000FFF77AF8607B002807D0012807D0FF203D
-:1092D000A0A1413009F0F5FB0CE0002100E00121E4
-:1092E0009A482430FFF783F804E006219748243099
-:1092F000FFF72EF89548611C2430FFF74FF893488C
-:1093000021782430FFF767F8904804214C30FFF7AC
-:109310001FF88E48611C4C30FFF740F88B482178CD
-:109320004C30FFF758F8AE740020F8BD0221DDE79D
-:1093300070B50446854D0020203D287528462246FC
-:10934000323809F021FA2846203844730120287564
-:1093500070BD7E490871704710B57C4C0022203CDE
-:10936000E274607302462046123809F00DFA0120BB
-:10937000E07410BDF8B500F02DFB744C0025203CC6
-:10938000607D002804D0FEF753FCFEF780FF657572
-:109390006F4E3570FEF70BFCA07B012804D0002136
-:1093A000084601F02DF9F8BD0021022001F028F94E
-:1093B000664C207A0127002809D0A07F0028F2D12E
-:1093C0000520E077204620300570A777F8BD70783B
-:1093D0000028FBD05D4906226039487BE073C91D37
-:1093E0000846693009F0D0F93C20A07227727570E8
-:1093F000F8BD10B5554C203CE17B207CCA0701D05C
-:10940000C2070BD08A070FD582070DD42620FEF79E
-:109410009BFA207C02210843207410BD2520FEF712
-:1094200093FA207C0121F6E74907F6D54007F4D4EA
-:109430002720FEF789FA207C0421ECE770B5444828
-:109440000078002861D1414C203CA07C00285CD0F1
-:10945000FEF7A1FB0026267466743046FEF798FBE3
-:109460000020FEF76DF93F48FEF765FA2546403DBE
-:10947000296E8857FEF72BFA3A48C01EFEF741FBCB
-:10948000FEF7BAFBFFF7B5FFFEF7DBF9FEF77CFB53
-:109490000120FEF7BBFA0F210520FEF7F6F9297827
-:1094A000681CFEF7E4F9A07B01280AD0E07C0028C4
-:1094B00007D0214612390846627B5630FEF7B5FFC9
-:1094C000E674207D002808D0204840380146427BC1
-:1094D00012398C30FEF7DBFF2675E86D0178002924
-:1094E00003D00178001DFEF7D4F9A86D017800299A
-:1094F00007D00178154A401C7732FEF7A8FE0120FC
-:109500006075FEF754FB002070BD0C2070BD104943
-:109510004860704770B50546FEF76EFB002D06D01B
-:109520000020FEF72DFAFEF78CF9FFF762FF074CDB
-:10953000203C607C002819D0A07B012803D105A124
-:10954000094809F0BEFAFFF715FF70BDB4170020F7
-:10955000680000207372635C6C6C5F6164762E63DC
-:10956000000000000F2D0100CF0300000126002D98
-:1095700004D00220FEF74AFAFE484671FD48243026
-:10958000FEF71AFB012008F03CF8FEF762F9A07B19
-:1095900000280ED001280CD002280AD003280AD0B7
-:1095A000F549F64809F08DFAE07B217C884306D026
-:1095B00009E0032000E00120FEF7E2F9F4E7A07BD8
-:1095C000012803D06674EE480670BEE700202074C0
-:1095D000F9E710B5FEF7DFFAE948007800280ED168
-:1095E000E4482038807C002809D00020FFF792FF53
-:1095F000F6F7F9FEDF480079012806D007E000F011
-:10960000E9F9FEF7D4FA0C2010BD09F059FB00204F
-:1096100010BDDB494870704770B500F0AFFE002800
-:1096200019D0FF202D30FEF7A8F9D54E3078D14C57
-:10963000012813D0022801D003282ED0CE49D148CA
-:1096400009F03FFA3078002807D0F6F7CCFE2079F1
-:1096500001282CD030E0FFF78DFE76E7C54D203D88
-:10966000A87B032819D0FEF7B8FA687D002803D03C
-:10967000FEF7FDFDFEF7D5FABE487430FEF79CFA02
-:10968000012007F0BFFFA87B01280BD0A1796F2034
-:10969000012906D0032904D004E00120FFF73AFF96
-:1096A000D0E77F20FEF76CF902203070CAE76079BE
-:1096B000002801D1FEF76AFB0020607145E770B514
-:1096C000AC4C203C607D002803D0FEF7B1FAFEF7D9
-:1096D000DEFD00F053FE00281CD0A94D287802289A
-:1096E00004D0A848A4492B3009F0EBF9A07B01284D
-:1096F00013D0FF202D30FEF740F90120FFF70AFFBD
-:109700002878002808D0F6F76EFE9A4C20790128B8
-:1097100006D00AE0FFF72EFE17E799208000EAE75F
-:109720006079002801D1FEF731FB002060710CE761
-:10973000F8B50446FEF7FBF80546FEF7C3FD012821
-:1097400000D0002000908E480078022804D08D4878
-:109750008949673009F0B5F9864E203E707D0028B2
-:1097600003D0FEF765FAFEF792FDFEF745FA814851
-:109770007430FEF70FFE21007E4C07464DD0FEF7F9
-:1097800080F80028FAD03B0009F0A0FA06474747C6
-:1097900004471D47B07B0128F0D00098054304D151
-:1097A000A079002801D0022837D172484C30FEF74A
-:1097B00003FA012007F025FF0120FEF7E1F87048C9
-:1097C00003210170F5E06B4F74373846D438F978CF
-:1097D000C27991421BD13979027A914217D17979B4
-:1097E000427A914213D1B979827A91420FD1F979B3
-:1097F000C27A91420BD1397A027B914207D13978F2
-:10980000407B4906C90F814201D1012100E00021BE
-:10981000B07B012802D0002803D0C3E0002908D182
-:10982000C0E00098054304D1A079002801D00128A8
-:109830007ED150487430FEF7CEFE002878D0504DCF
-:109840004C49686804228331323008F09DFF387833
-:109850003E214006C20F68680A540622F91C3F30B8
-:1098600008F092FF4349686803228731363008F0D8
-:109870008BFF6868BA7D39210A543E4974310A7EEB
-:10988000CB7D12021A4342878A7E4B7E12021A4314
-:10989000C2830A7FCB7E110219430184354974319A
-:1098A0008A7F4B7F1102194341843249052293314B
-:1098B000243008F069FF2F486D68943001792F46F5
-:1098C000C906C90E20373977007940097877207AA0
-:1098D000002810D0A07F002858D1607A002801D03D
-:1098E000132000E005202349E07700202031087094
-:1098F0000120A0774AE01F48717D1030002925D053
-:109900000021A172A989A181B97FE17329460622AC
-:109910003F3108F039FFE88BE082288C2083688C87
-:109920006083787F2077607F00994008400000E0E6
-:1099300038E008436077FEF7D2FC617F4000C9073A
-:10994000C90F01436177012060721EE00021A172FE
-:10995000A989A181B97FE173294606223F3108F028
-:1099600013FFE88BE082288C2083688C6083787FEB
-:10997000207709E0B417002054950000ED030000A3
-:10998000680000206B02000001202072194D0020A9
-:10999000287000F01FF8FEF70AF90120696800F04E
-:1099A0002FFE06E0FF202D30FDF7E7FF0120FFF737
-:1099B000B1FD1048007800280BD0F6F714FD20798F
-:1099C000012804D16079002801D1FEF7DFF90020D9
-:1099D0006071F8BD10B5FEF719F9FEF70DF9FEF745
-:1099E00058F80020FDF7CCFFFEF715F9FEF795F8C3
-:1099F00010BD0000680000208107C90E002808DAA9
-:109A00000007000F08388008F94A80008018C069F4
-:109A100004E08008F74A800080180068C84000060B
-:109A2000800F7047F448C07D7047F44800780028E4
-:109A300001D00020704701207047F048007870473F
-:109A400010B5EE4A1378EC4CA47DA34202D007F087
-:109A500059F910BD1078032803D1E8490120891D68
-:109A6000887000F04AFE10BD38B5E44DE24CAD1DE3
-:109A7000687801281ED00121684606F041F8684642
-:109A80000078DF49000208F0F9FE68684118606854
-:109A900007F08FF86060DB48A060A18A00200029F1
-:109AA00010D06070032121702073A07ED249FFF78F
-:109AB000C7FF38BD7D21C900606807F07AF8606093
-:109AC000D148E9E70121A18202216170EAE7FFB5EF
-:109AD000C94C85B01C3461680191A1680391C749E4
-:109AE0001E46891E4A6807995388C91A89B202918D
-:109AF000002E04D025463C3521464C3102E0BE4DB7
-:109B0000114664310091BC4F03213C372970002875
-:109B100018D0BA49891E4968403101287ED00228F0
-:109B20005CD003287BD0B9A1BC4808F0CAFF2878D4
-:109B3000002E75D0032804D0B848B4A1093008F02D
-:109B4000C0FF35E1A068002804D1B448AFA1663851
-:109B500008F0B7FFA948B149801E40686031408FC6
-:109B600048434018069900F0CEFDE061A348AB4998
-:109B7000801E40686031C08B4843069900F0C3FDE9
-:109B80009E492062891E4B68A44A598FA0686032A2
-:109B9000514386464118E069A04A091A4C3A89188F
-:109BA0008C462033E1629D4A597E60325143411810
-:109BB0000818FF3016306062A06261467046081ACD
-:109BC000FF38974935388842B1D29649884204D245
-:109BD00092488EA1593808F074FFD0E0508F8F4A18
-:109BE0002169603250430818069900F08CFDE0614D
-:109BF00082488A49801E40686031C08B484306997C
-:109C000000F081FD2062A068002804D183487FA174
-:109C1000513808F056FF7948801E02E02FE05EE0E0
-:109C2000C1E040685621095A7F4B0029418F2269C3
-:109C30001DD059435118E269891AE1626269E168ED
-:109C4000794B5143E26989183922125C5A438A18C8
-:109C50005118FF3114316162C08B216A5843411A97
-:109C600072480818A062A168E06A401A81E059436E
-:109C70005118E269891A6268D3398918DDE7C88A00
-:109C8000002802D0A068002804D164485FA13938B8
-:109C900008F017FF59486449801E4068C28B4A4348
-:109CA000216A8E46511AE1628C4656226369125A25
-:109CB000E168D21A5943E3692030CB187146514309
-:109CC000407E594A5918504308184018FF30143044
-:109CD0006062564861466044A062A06848E0D08B4C
-:109CE000514A5043226A801A029A5043E062C88A5D
-:109CF000002805D0002E19D0B87D002816D0A1E08C
-:109D0000002E02D0B87D0028F6D10198002802D09C
-:109D10000398002804D141483CA1213808F0D1FE25
-:109D20000198E16AD3380818E06207E0019800283A
-:109D300004D08D2035A1C00008F0C3FE2F48801E3E
-:109D400042685620815A02980818216A4843400008
-:109D5000FF3014306062D08B334A5043411A33488D
-:109D60000818A0622448C07D00280BD0E16A03983F
-:109D7000081AFF382A492338884200D3D7E6022040
-:109D80002870D4E606F072FC01461B48006907F013
-:109D9000C7FBE16A081AFF3821491E388842EDD214
-:109DA000012009B0F0BD032802D1144907204870F2
-:109DB0001148E16A006906F0FCFE6860A16A606A09
-:109DC000884202D90098016001E00099086000987B
-:109DD000174900680818A8600848801E40688188F4
-:109DE0000798081A00B2002824DD022023E00000B2
-:109DF00000ED00E000E400E05018002072000020B8
-:109E000010270000F82A0000B78913007372635C02
-:109E10006C6C5F6C6D2E73302E630000820400004A
-:109E20004707000082020000E204000061FCFFFF1F
-:109E3000EF160000002068702E73002E04D0B87D4D
-:109E4000002801D00220ACE701204640BE76F7484A
-:109E5000807E2946FFF7F4FD0020A2E7F8B5F3481D
-:109E60003C30807EF14FF24D3C461C3400280CD033
-:109E70006968208F4988884207D17878002804D102
-:109E8000A920EC49C00008F01CFE06F0EFFB0146DB
-:109E9000386907F045FB00F044FC6968228F4B8865
-:109EA0001E18B24202DB521C228702E0401C181826
-:109EB0002087208F0A89904201D1401C2087B88AD0
-:109EC000032802D2401CB88201E0208F8880084617
-:109ED0004030828A408A4988101A401E401886B253
-:109EE00017E028786B6841002033D3485B7F415AE4
-:109EF0005B00C05A081881B2207E0023FFF7E7FDFF
-:109F0000002811D0012810D00B20CA49C00108F048
-:109F1000D8FD228FB01A00B20028E2DA6868082162
-:109F20002030417400F0A7FDF8BD208F401C208731
-:109F3000EFE770B5BD4C00261C3466600120A660BA
-:109F400000F0C9FBBA481F21801C41700078B74D52
-:109F5000030008F0BBFE044545033745B3482670AF
-:109F60003C30807EB24E002806D106F07FFB216C8B
-:109F700007F0D6FA002811DC7068228F41888A42E7
-:109F800004D10289511A4181428003E0511A418172
-:109F9000218F41806868206428610BE0A18E706881
-:109FA0004288891A4181A18E4180216C69602961B2
-:109FB000E16C4166706801F0FFFB00280DD09D49FF
-:109FC0009E4808E068682861FFF738FA002804D046
-:109FD0009A489849401D08F074FDF6F704FA70BDE0
-:109FE000964894490C30F6E7F8B505468F4A0120AB
-:109FF0003C3290758D4C17466576213F00260B004C
-:10A0000008F064FE09061D2E4E2B69691C64690068
-:10A0100020768748801C0078022807D0384607F051
-:10A0200042FB002803D1A07EA84200D12676207EE4
-:10A03000002803D1FFF77DFF00F0A0FBF8BD207ED4
-:10A04000002806D006F064FA6676384607F043FB2F
-:10A0500001E000F075FB2676F8BDFDF79CFEF8BD2B
-:10A060007348801C017802290ED0A17E0078A94295
-:10A070000DD0002804D0FF206E497B3008F021FD70
-:10A08000284606F0D8FAF8BDFFF7E8FEF8BD032829
-:10A0900003D0FF206749813015E0FFF7E5FCF8BDEC
-:10A0A000A07EA84204D0FF206249873008F009FD55
-:10A0B0005F48801C01780229E6D000780328ECD0A4
-:10A0C000FF205C498E3008F0FCFCE6E7284606F0ED
-:10A0D000B2FA6676F8BDFF2056499D3008F0F1FCD3
-:10A0E000F8BD524988755248801C00E020BF0278B4
-:10A0F0008B7D9A42FAD00078002803D000200022FD
-:10A100008A7570470120FAE710B500280BD00128A6
-:10A1100005D04A484749853808F0D3FC09E00320B8
-:10A12000FFF7DFFF01E000F049FB002801D000202D
-:10A1300010BD0C2010BDF8B5FF273D4D1F24D037B2
-:10A14000AD1C2E78330008F0C1FD040811030C117A
-:10A150000220FFF7C6FF002801D000240FE00C24E6
-:10A160000AE00120FFF7D0FF044603E031493846FA
-:10A1700008F0A7FC002C02D02878B042E1D1287862
-:10A18000002804D0FF202B49D53008F09AFC27493D
-:10A1900000201C3108761C39887501226A70244A17
-:10A1A00008325070C87508612046F8BD70B5044685
-:10A1B0000120FFF721FCC5B20B20FFF71DFCC0B248
-:10A1C000854204D0FF201B49A73008F07AFC01200B
-:10A1D000FFF712FCC5B21820FFF70EFCC0B2854293
-:10A1E00004D0FF201349A83008F06BFC0420C043C2
-:10A1F000FFF702FCC5B21920FFF7FEFBC0B2854293
-:10A2000004D0FF200B49A93008F05BFC08484470DB
-:10A2100006481B3007F03FFA05490020891C0870EA
-:10A2200002498875FFF787FF70BD000050180020B5
-:10A23000700000200C9E0000142D0100220300007D
-:10A24000F74840787047F649891E08707047F3B5A3
-:10A2500081B006F0E9F9F349884200D20846FF30A0
-:10A260009930EF4D87B22878002801D00C20FEBD30
-:10A27000ED4806F08CF9ED4CA076E9490320087012
-:10A2800000268D1DAE70A07E002804D19720E849DD
-:10A29000800008F016FC0298012827D0E5490198B3
-:10A2A00048436860012028700146684605F028FC94
-:10A2B00068460078E049000208F0E0FA0D4606F032
-:10A2C000D5F9791906F075FC6060DC48A0600320C0
-:10A2D0002070022060702673A07ED449FFF7B0FB87
-:10A2E000CF48A682072141700020FEBD06F0BEF9CE
-:10A2F000394606F05EFC6060D148A0602E700120F7
-:10A300006870E4E7704770B5C5490A78002A01D043
-:10A310000C2089E702220A70C14CC44DA41E1C35D2
-:10A320006060287E002804D0C248C1494E3008F041
-:10A33000C8FB207800234100C248425A616820319E
-:10A34000497F4900405A101881B21A461846FFF753
-:10A35000BEFB002804D0B748B549503008F0B1FB27
-:10A36000002068610121E8602976B049888262682E
-:10A370005188491E51802887A88655E770B5A8489E
-:10A380000124801D4078A94D002813D028461C3098
-:10A390008168AD48814202D8AA7D032A00D10024F9
-:10A3A000814207D9A87D032801D0012000E00020C8
-:10A3B000FFF72FF9A87D032800D10024204633E7BA
-:10A3C0009A481C300178491C0170026B81689142E7
-:10A3D00004D8007E012801D001207047002070477A
-:10A3E0000020704770B5914C1C34207E032849D161
-:10A3F0000021204620308175894DAD1E68684030AF
-:10A40000007C00283ED106F031F988490A690146EE
-:10A41000104607F085F8002834DD00F082F96968FD
-:10A42000401C4A888018A0860889A28E904229D9AB
-:10A430004888088140318A8A498A511A491E081879
-:10A4400086B21AE0287841007E48425A6968203175
-:10A45000497F4900405A1018A28E81B2207E012304
-:10A46000FFF735FB00280DD001280CD0022809D0B9
-:10A470006C486F49C43808F024FBA08E301A00B233
-:10A480000028DFDAD0E6A08E401CA086F5E7F8B5FC
-:10A49000664C634F00251C34BF1E012819D00720CD
-:10A4A000B91C487006F034F8604E304675761B30A3
-:10A4B00007F011F97878F8F7A5F8B5827868314691
-:10A4C0004088208701203C318875002000F003F986
-:10A4D000F8BD267E52495B48891E0A7853004A68B7
-:10A4E00011462031032E18D0267E022E21D0267E42
-:10A4F000012ED7D1497FC35A4900405A12891818F2
-:10A5000081B200230120FFF7E2FA0028CAD04548B3
-:10A510004749213808F0D5FAC4E76561E560497F0D
-:10A52000C35A4900405A1289181881B200230320E7
-:10A53000E9E75626B65A6661497FC35A4900405A30
-:10A540001289181881B200230220FFF7C0FA0121F6
-:10A550002176DAE7F8B5324E0021B61D7078334C1B
-:10A560000D46002801D075701AE03078002809D017
-:10A570000121684605F0C4FA684600782E490002B9
-:10A5800008F07CF970684118606806F012FB6060A2
-:10A59000257302206070607E2449FFF751FAA5827E
-:10A5A00005F0B6FF214865761B3007F094F81C488B
-:10A5B000801E4078F8F726F8002000F08CF8F8BDEF
-:10A5C00010B5030008F082FB060A0E0406130916F4
-:10A5D000012000E0002000F037F910BD0120FFF756
-:10A5E00056FF10BD114903201C31087610BD00F044
-:10A5F0003DF910BD0B480E498E3008F062FA10BDCF
-:10A6000070B50A4D002821D0054EB61D012828D06E
-:10A61000022837D003480649AD3008F052FA03E665
-:10A6200072000020F6050000E99F0000501800208D
-:10A630000C9E00007102000010270000F82A0000A4
-:10A64000B7891300142D01002E841300FFF782FF39
-:10A65000A97D9448002901D01F2100E00721417005
-:10A66000E2E5002490487470047600F046F8032078
-:10A67000F7F7C7F805F04CFF8B486C76401E07F0E3
-:10A680002AF8D1E5FFF766FF0120B07000F035F839
-:10A690000420F7F7B6F8C7E582490978022907D1FF
-:10A6A00081490A78002A03D148600A6B10180863B0
-:10A6B000704710B57C4A00290BD0012906D0022929
-:10A6C00006D07A497A4808F0FCF910BD401E00E037
-:10A6D000401F906010BD744910B51C39C875002822
-:10A6E00005D0F5F781FE0220F5F778FE10BDF5F7ED
-:10A6F0007CFE0120F5F77AFE10BD6A48002101704A
-:10A7000001214170704710B504460020002907D090
-:10A71000684808F0B3F80146204608F0AFF8401C3E
-:10A7200010BD10B500280AD05E49634A891E4968E9
-:10A73000C98B51435C4A126A891A08F09FF810BD10
-:10A7400010B558480078030008F0C0FA0414140348
-:10A750000A1401F035F900280BD05449574806E097
-:10A76000FEF737FF002804D054485049001D08F078
-:10A77000A8F910BD51484D490B30F8E710B505F068
-:10A7800053FF4849891E4968CA8B4B494A43464989
-:10A790000B6AD21AD33AFF2332330A63984202D2A9
-:10A7A0004748101802E0101A464A801808634648C5
-:10A7B0000A6B824200D81046086310BDF0B53A4CCF
-:10A7C000032685B01C3CA67520461B30009001E096
-:10A7D00020BF009806F067FF0028F9D10025A57575
-:10A7E00030480178032903D0007800281DD021E0EB
-:10A7F000A07E002803D12D49344808F062F9A77ED5
-:10A80000684606710221417105F030FF0290FF2079
-:10A81000F5300390012168460174A57601A93846F8
-:10A8200006F070FAFFF769FF0CE01E48801D817882
-:10A83000012906D00024009806F04DFF204605B0FF
-:10A84000F0BD85700124F6E710B5002803D0002084
-:10A85000FFF71DFE04E01348801E4078F7F7D2FE94
-:10A86000FFF74BFF0020F6F7CCFF10BD10B50E4AE6
-:10A87000114B106AD0600B48801E4068C18B594351
-:10A8800011610146E0314B8843870C7839231C5411
-:10A890008B88C383CB880384098941840220107686
-:10A8A00010BD0000720000206C1800200C9E0000FB
-:10A8B000C306000040420F00E20400004303000012
-:10A8C000A5F8FFFFD6F9FFFF1612000029020000CD
-:10A8D000F8B5FEF7DEFA0646FEF74CFBF94D0746E3
-:10A8E0006879F94C002809D0012823D0022826D005
-:10A8F00003282ED0FF20F5A1BC3033E0F2481430FD
-:10A90000FEF724FB002801D003200FE0EE481430AE
-:10A91000FEF788FA002804D020696030007A002809
-:10A9200006D0E9481430FEF7E4FA012068711BE014
-:10A930000220FBE7E4481430FEF7DBFA14E0E248BB
-:10A940001430FEF76FFA00280ED1FF20DFA1AE30E1
-:10A9500008E0DD481430FEF7F9FA002804D1FF20A2
-:10A96000DAA1B63008F0ADF86169F7220878104036
-:10A970000870AA79D207120F1043FB22104008700A
-:10A98000EA79D207520F104308706B79EF22022B3D
-:10A9900004D0012B07D0032B07D00CE0012E06D8E2
-:10A9A000002F04D007E07F1E3E43002E03D010404E
-:10A9B0001022104300E010400870287C002811D0BD
-:10A9C000687901280ED0BF484A38FDF7F5F8BD492F
-:10A9D00020694A3978306269FDF757FB0020FDF79E
-:10A9E00063FB04E00846FDF7E7F8FDF780FB6069CC
-:10A9F0000078C00606D4A0690078C00602D4E079C9
-:10AA0000002802D0A079002801D0012000E0032016
-:10AA1000FCF7B6FF0320207001202071F8BDAA4882
-:10AA200010B51830FEF7B9FAA74C002802D0002064
-:10AA3000607004E001206070A2484A38A061A1481B
-:10AA4000407C002802D06078002805D0A069FDF77E
-:10AA5000B3F8FDF74CFB10BD9A484A38FDF7ACF847
-:10AA6000984A20694A3AA030A169FDF70EFB0120FF
-:10AA7000FDF71AFB10BD10B5934900220869302379
-:10AA80008276C27601221A544030007C002803D01E
-:10AA90000A700021022001E000210320FFF790FD51
-:10AAA00010BD70B5884C6079C20620460169084621
-:10AAB0004030002A01DA002202E0C28A4B89D21813
-:10AAC0000B46C282C0331A7E002A03D0428B4D89C6
-:10AAD00052194283627A002A03D03D2001F0A3F884
-:10AAE00052E08A7E032A4FD0227A002A13D05007E0
-:10AAF00001D4D00601D51E2036E0100701D53D2037
-:10AB000032E0D00705D1900703D470A1734807F055
-:10AB1000D8FF2A2028E060310978002905D0818BF0
-:10AB20004A1C8283C28B91420FD2597F062902D0E0
-:10AB3000197F062905D1018B4A1C0283C28B9142E1
-:10AB400003D2428B818A8A4201D322200CE0827B8D
-:10AB5000408A002A0FD006280FD35A48C07B01280C
-:10AB600001D03E2000E0082001F05DF82069807EE1
-:10AB7000032809D001E08842F5D20120207000218D
-:10AB80000846FFF71DFD70BDFFF775FF70BD10B5DE
-:10AB90004C494D48CA7B002A2BD0012A29D0022AD1
-:10ABA00027D0032A04D049A14D4807F08AFF10BDE1
-:10ABB000897B02290FD007291BD00069014640314B
-:10ABC0008A8A498A511A891E89B2032900D303212E
-:10ABD000028951180BE00069014640314A8A032A74
-:10ABE00001D2018903E04288898A5118491C818079
-:10ABF00010BD0069F5E700B5030008F067F806042A
-:10AC0000070B0F12121700290ED00FE0491E022960
-:10AC10000AD90BE0491F012906D907E0072903D00B
-:10AC200004E00A390C2901D8012000BD002000BD34
-:10AC3000FEB5054624481430FEF769F9002804D112
-:10AC40003D2022A1400107F03CFF1F4C6069FDF749
-:10AC5000E5FC03216069FDF70FFD6069EF220178D3
-:10AC6000114001702946FDF74BFD002601272B00FE
-:10AC700008F02CF80E5D5D085D1D6161155D4D5D90
-:10AC8000613D385D20697121095C002901D00621F0
-:10AC900001E0C030417E6069FDF7FDFD4BE0A06939
-:10ACA000FDF758FD01466069FDF766FE43E0216946
-:10ACB0006069D031FDF729FE216960699531FDF7A2
-:10ACC00032FE38E006190020800000207372635CB9
-:10ACD0006C6C5F736C6176652E630000610200002E
-:10ACE0006F08000006216069FDF742FE23E0E0687E
-:10ACF00001786069FDF726FEE06881886069FDF7EC
-:10AD000023FEE06841886069FDF722FE13E00096AB
-:10AD1000019620696030007C002803D069460878DD
-:10AD20003843087069466069FDF738FE03E0FA4968
-:10AD3000FA4807F0C6FEFEF7F4F8002804D1F748F9
-:10AD4000F549801D07F0BDFE0C2D07D0072D04D05E
-:10AD500020695C210E5260300770FEBD20694030D2
-:10AD60000683FEBDF0B5EE4CDC2021698DB0405C61
-:10AD7000042809D0052834D16031487A002829D028
-:10AD800001204874022026E01022EA31684600F0D3
-:10AD90007AFF21691022C83104A800F074FF6846C8
-:10ADA00005F007F8216908AA6CCA0F46CB67783707
-:10ADB0008A670846FE608030BD60074620376CC752
-:10ADC0000023036343630120A0310876D54948740A
-:10ADD000052000E00D20FFF72BFF21690020C03186
-:10ADE00008770DB0F0BDF8B5CD481430FEF78FF8F8
-:10ADF000002842D0CA4C207A00283ED12069002584
-:10AE0000C030007EC74E00280BD0B17B0120FFF779
-:10AE1000F2FE002805D1B17B0420FFF7ECFE0028EC
-:10AE200006D020690127C030407F062807D00CE0FB
-:10AE300020695A210D526030457402202FE0B17B09
-:10AE40000420FFF7D8FE002810D0B07B030007F0E5
-:10AE50003DFF173F3F3F3F1E3F3F3F3D3F203F3FAE
-:10AE60003F292C3F3F3F3F3F3F2F3F0020696A2152
-:10AE7000095CC90702D0C0304577F8BD0C20FFF748
-:10AE8000D7FE20696030817A39438172F8BD07208E
-:10AE900005E0FEF7ACF80028F8D075740B20FFF73A
-:10AEA000C7FEF8BD00F0FEFEF8BDFFF75BFFF8BD82
-:10AEB0002069002180308160C160057437740620EC
-:10AEC000FFF7B6FE206960300570F8BD0920E6E79F
-:10AED00000F0B2FEF8BD70B5924DA87B072831D1C5
-:10AEE0008F4CDE2220694188125A491C914229D197
-:10AEF000217A002926D10146E0318B88C28B93420A
-:10AF000007D1CA88068CB24203D10A89468CB24264
-:10AF10000AD0844A8689283A9680D380CB881381C8
-:10AF2000098951810121117001221146FDF784FD2B
-:10AF300000210420FFF744FB21690020C03148773D
-:10AF4000A873E87370BD70B5764CA07B162803D04B
-:10AF50007149754807F0B5FD7148002102697148D3
-:10AF60006032117211702838067C0B250123002EE7
-:10AF700006D0027B002A12D14573817303730EE061
-:10AF8000567A002E06D051722288828281740C2259
-:10AF9000027404E022888282817483750574A1732F
-:10AFA00070BDF8B55E4DA879800723D5287A0028B2
-:10AFB00020D15C4C0120A17BFFF71DFE002819D198
-:10AFC00068690026C0780127030007F07FFE0E594C
-:10AFD0005908592E3B4F0A591459205245590220FD
-:10AFE00021E0A07B042804D04F484B49333807F0B8
-:10AFF00068FDA673F8BDA07B082804D04A484649DE
-:10B000002D3807F05EFD286960300670F1E7A07BFF
-:10B010000A2804D015204049800107F052FD286914
-:10B02000603007720B20A073F8BDA07B0E2804D0FF
-:10B030003D4839491F3807F044FD286960300772E0
-:10B040000F20F0E7A07B0F2804D03748324918388A
-:10B0500007F037FD1120E6E7A07B0F2804D0324827
-:10B060002D49123807F02DFD1320DCE7FFF76BFFA9
-:10B07000F8BD2869C030417F0629F9D14677F8BD6F
-:10B0800029482549813007F01CFDF8BD10B5254C35
-:10B090000020A17BFFF7AFFD002804D1204801224A
-:10B0A000017A114301720420A07310BD10B51C4C2D
-:10B0B000DD212069095C002903D0217A0122114396
-:10B0C00021726030807A800715D4A069FDF744FCB6
-:10B0D00021696031C872A069FDF740FC21696031C7
-:10B0E0008881A069FDF73FFC216902226031C88197
-:10B0F000887A10438872206900220146C0310B7F94
-:10B10000062B13D06A231B5CDB0703D106234B7786
-:10B110004030028310BD0000CCAC0000E40700000A
-:10B120008000002006190020660500000A77F1E77C
-:10B13000F8B5FE48817B0020FFF75DFDFC4C012641
-:10B14000002807D120696030407A002802D1207A97
-:10B1500030432072216900255C204552602046540E
-:10B16000C831A069FDF7B9FB2169A0699131FDF7EC
-:10B17000C3FB2169042208469131B93007F004FB72
-:10B18000EA482838017C0827002906D0017B0029DD
-:10B1900012D14773857306730EE0216905468989CC
-:10B1A0004182E249A0691439FDF77FFBDF49A069BC
-:10B1B0000C39FDF787FB2F74DC480E218173F8BD35
-:10B1C00070B5DA4D0020A97BFFF715FDD84C00289B
-:10B1D00003D1207A012108432072A069FDF721FBE9
-:10B1E00000280ED0A069FDF717FB2169DE2250521E
-:10B1F000498800F0A2FD002806D0282000F013FDA9
-:10B2000070BDFFF743FF70BDA069FDF7FFFA21692C
-:10B21000E0310870A069FDF7F2FA2169E031488059
-:10B22000A069FDF7D1FA2169E0318880A069FDF7B6
-:10B23000D4FA2169E031C880A069FDF7D7FA216905
-:10B24000E03108810720A87370BDF8B5B84CA0792B
-:10B25000C0076ED0207A00286BD1B44D0120A97BA5
-:10B26000FFF7C9FC002853D1A0690027C17802224A
-:10B2700001260B0007F02AFD0D161308354A4A383F
-:10B280004C474A1929444A00FDF707FB2169DA2295
-:10B290005054AE735C20475260310E7038E000F0BD
-:10B2A00057FD35E0FFF78CFF32E0A97B0020FFF768
-:10B2B000A2FC002802D1207A3043207220695C2150
-:10B2C0000F52603006700A2018E0A87B0B2802D0CD
-:10B2D000207A104320722F742069603046720C204F
-:10B2E0000CE0FFF725FF13E0A87B112802D0207A9D
-:10B2F000104320722069603007701620A87307E0A1
-:10B30000FFF7D4FE04E000F0F0FC01E0FFF7BEFE22
-:10B31000FDF759FE002803D18649874807F0D1FB85
-:10B32000206900238030016B426B491C5A41426303
-:10B330000163F8BDF8B57D4F787C002802D1387CD8
-:10B34000002801D0FCF7D3FEFCF760FCFCF754FCAE
-:10B350000020FCF715FBFCF79CFBFCF75CFCFCF702
-:10B36000DCFBFCF724FCF87B01260025704C002850
-:10B370000FD16079C10705D00220F87320694030F1
-:10B38000857302E0800717D5FE7300210120FFF7C7
-:10B3900017F9F87B012802D0022808D00CE0607968
-:10B3A000C00709D00220F8732069403085736079A6
-:10B3B000000701D50320F87300F0EEFCFFF713FD42
-:10B3C0002079002801D03D8102E03889401C388175
-:10B3D0006079C007206904D072210D544030458245
-:10B3E00003E04030418A491C4182E079002806D0C0
-:10B3F00021696031887C022806D8401C8874206945
-:10B400006030807C022804D93D817D8120696030D4
-:10B410008574B97B0020FFF7EEFB002802D1B87BD2
-:10B4200006284BD120690146C0310A7F062A45D043
-:10B43000497F062942D03D49C97B03293ED160306E
-:10B44000807C00283AD1FDF71BFD002836D0FDF79F
-:10B4500091FD002832D02169C88801282ED90A46DA
-:10B460004032D673908A578A831E9F4201DB0120A7
-:10B4700002E0C01B401E80B22C4B0F8C1B89BB42CC
-:10B4800001D3012302E0FB1A5B1C9BB2984200D956
-:10B490001846012800D1D5732A22525C002A11D007
-:10B4A000224A898D52898A4201D3012102E0891AF8
-:10B4B000491C89B2884205D9084603E02169012068
-:10B4C0004031CD7321694A8810180881FFF75FFB6E
-:10B4D0002069122215490C3007F056F9FFF7E1FAFE
-:10B4E000FEF77EFF002808D010482838817F002909
-:10B4F00003D121698989018486770D481830FDF7C9
-:10B50000AAFD00280FD0A06900788007800F0128CD
-:10B5100009D0022807D0FDF7BEFD002803D1054958
-:10B52000064807F0CEFA2069403009E006190020ED
-:10B5300080000020CCAC0000DF040000720300009B
-:10B540000574F8BD70B5FE4C607900283DD0FD4D06
-:10B55000022811D1FDF775FC002804D17320FA49A7
-:10B56000000107F0AEFA2A69002380329068D168A2
-:10B57000401C5941D16090600026667120790128F5
-:10B5800004D12671A87910210843A871E078012818
-:10B5900016D1E670A87908210843A871FDF7E0FCF0
-:10B5A000002804D1E920E849C00007F08AFA296997
-:10B5B000002380318A68C868521C58418A60C8607C
-:10B5C000A079012802D00120A07170BDA67170BDC4
-:10B5D000F8B5DC4CDA4DA269002710780421830706
-:10B5E0009B0FE8790126012B11D0022B0FD0032BE2
-:10B5F00001D0207A2FE06178002905D1AE70A179C1
-:10B600003143A17122E0EF71F8BDEE71F8BD5278BF
-:10B61000D3061BD060780028F8D1D006C00E1B28B6
-:10B6200017D8607908436071FDF7CDFC002803D17D
-:10B63000C549C64807F045FA206900238030026BEF
-:10B64000416B521C594102634163E8790128DCD106
-:10B65000D9E7207A102108432072F8BD70B5B84DA3
-:10B660000446283D287B002600280AD0002976D1F0
-:10B67000667010202070687BA070A87BE0702E732D
-:10B680006DE02878002810D0002968D16670072066
-:10B69000207005E02E700A22A91CA01C07F074F887
-:10B6A00028780028F6D1A67059E0287C002839D0E7
-:10B6B000002954D1297CA3480B0007F007FB0D2E6D
-:10B6C0002E2E2E2E2E2E2E112E2E22082E0066709D
-:10B6D0000C212170A97CA17000698089A0801AE0EA
-:10B6E00008216670217000690A468089944960804B
-:10B6F0001439201D07F048F891484A38C08FA081BE
-:10B7000009E066700B212170A97CA1700069808915
-:10B71000A080A87DA0712E7421E08B498C4807F091
-:10B72000D0F91CE0AA7F86480838002A08D00029F2
-:10B7300015D166701121217000886080AE770EE00F
-:10B740007F4A083A9378002B0BD0002907D1667006
-:10B750001221217081886180C088A08096700120AC
-:10B7600070BD002070BD77480078012801D00C2002
-:10B770007047734900202839087008730874887767
-:10B78000704770B56F4C064620780D46002804D0EF
-:10B790006F486D493F3007F094F90120E660E07290
-:10B7A000E5612070FFF7DFFF002804D09320664991
-:10B7B000000107F086F970BDF8B5624C21780129C7
-:10B7C00002D12178012901D00C20F8BD014605469F
-:10B7D000206112220C315A4806F0D6FF012740356D
-:10B7E0002F74574D2888FDF712FB002827D0288892
-:10B7F000FDF7C8FB002822D02888FDF77DFB002834
-:10B800001DD02888FDF797FB002818D0FCF7C3F956
-:10B8100020690026C088002824D04A481430FDF74B
-:10B8200076FB00281ED02069C030007E002819D089
-:10B83000A97B0120FFF7DFF9002802D012E01220D7
-:10B84000F8BDA97B0420FFF7D6F900280AD12169A9
-:10B850005A20465260314E740220FFF7E9F9206900
-:10B860004030C67320694189491E8AB229898918E6
-:10B870002981297B002902D06E812E7302E069891B
-:10B8800089186981014640314B8A9B184B82C388D5
-:10B89000012B01D85B1CC380002A01D072221654F0
-:10B8A000AA7B032A16D0C97B002915D02989008CD0
-:10B8B000814211D2FDF7E4FA00280DD020692A2137
-:10B8C000095C00290BD06989808D814207D3A6705D
-:10B8D000E7700CE0A7700AE0A670E67007E06889E0
-:10B8E0000021401C6881A7700520FEF769FE2069D1
-:10B8F0004F210E54A178002930D12030807A0028C1
-:10B9000000D06E810120FBF71BFF20693630FCF769
-:10B91000F8F820693230FCF70EF8E169002008568B
-:10B92000FBF7D5FF0120FCF733F9FBF78EFFFCF79F
-:10B930002BF90120FCF76AF82069406E0AE000004C
-:10B940000619002080000020CCAC00007B0700001E
-:10B95000E7080000FCF733F9FFF761F8A87B05283A
-:10B9600001D0062816D12069DE224188125A891A90
-:10B9700009B200290EDB01460522E0312430F4F73C
-:10B9800023FC012202212069FDF756F82069C0300E
-:10B990004677AE7320694189FDF7FDF82069403094
-:10B9A000407BFBF7D1FF6671E671A6712672A67225
-:10B9B0006672267102202070FCF7F9F80020F8BDAD
-:10B9C00010B5FE4C2078022801D00C2010BDFCF7E9
-:10B9D000E2F8A078002802D0FFF7ACFC15E000F0F8
-:10B9E0001AF920692030807B012809D0FCF736F94C
-:10B9F000FBF730FFF4F7F7FCE07A012803D004E00E
-:10BA0000FCF734F9F4E707F05BF9002010BDEB49CF
-:10BA1000C872704710B5E94C2078032803D0E84974
-:10BA2000E84807F04EF8E84801218278002A06D05D
-:10BA3000002282700171A27904231A43A271626903
-:10BA40001378DB439B0707D1C378002B04D1C17067
-:10BA5000A07902210843A0711078C00606D4A0691D
-:10BA60000078C00602D4E07900280CD06078002865
-:10BA700009D1A079002806D1FEF7A2FC002802D047
-:10BA8000207A002802D0FFF755FC03E0FEF7C7FF3D
-:10BA900000F0C1F82078012806D0F4F7A4FCE07A81
-:10BAA000012801D1FCF772F910BD38B5C34C2069EB
-:10BAB0002030807B012820D1A07A00281DD1684643
-:10BAC000FCF7DCF8002818D021692F20405C012801
-:10BAD00010D1BD4A0D236D460020D356285683420F
-:10BAE00008D050738989283A918411462031887191
-:10BAF00001208870A07A401CA07238BD70B5AF4C90
-:10BB000006462078042804D0AE48AD49553006F0EA
-:10BB1000D8FF607910210843AB4D6071002E47D0EB
-:10BB2000FCF7FDFA61780126084300280ED1687CF5
-:10BB300000280BD0A0694178C90607D00078E979C0
-:10BB40000007C00F884201D1667247E0E078002804
-:10BB500009D0A0694178C90605D10078C00602D491
-:10BB6000FFF7A3FF3AE0FFF7A0FFA069A9790078EB
-:10BB70004007C00F884205D0FFF7E4FC6079082138
-:10BB800008436071A069E97900780007C00F884216
-:10BB900001D1FFF71DFD6079304360710020E07135
-:10BBA000A079000702D5A87B022817D0207A13E0DD
-:10BBB000022108436071E079401CC0B2E0710128A5
-:10BBC0000CD8687C00280CD07F484A384078C106E1
-:10BBD000C90E052905D2C006002802D0FFF7AAFB2E
-:10BBE00001E0FEF775FE2078012806D0F4F7FBFB94
-:10BBF000E07A012801D1FCF7C9F870BD10B56F4893
-:10BC00000078042804D06F486D49B73006F059FF1A
-:10BC1000FFF790FB10BD10B50720FBF7B1FE674999
-:10BC20000420087010BD6549312209695054664AE4
-:10BC3000032090738876704710B5604C2069C0303F
-:10BC4000007F00281ED06048817B0020FEF7D3FFD4
-:10BC5000002817D02069DC21095C0B0007F036F8BA
-:10BC6000071212121212120512006030807AC007F9
-:10BC700008D10C20FEF7DCFF206901226030817AB8
-:10BC80001143817210BD10B5002A0AD0002306E0CE
-:10BC9000D41A6418203CE47FC4545B1CDBB293428A
-:10BCA000F6D310BD10B503F02AFF0C281CD3434C6B
-:10BCB00008212069D03003F023FF002806D0206936
-:10BCC0000421953003F01CFF002803D13C493F4874
-:10BCD00006F0F7FE2169042208469531BD3006F0D2
-:10BCE00053FD0420FEF7A4FF10BD7CB5364E0020A6
-:10BCF000B17BFEF780FF0125304C002802D1207A6D
-:10BD0000284320726946A069FCF74EFE6846007819
-:10BD10000021C207D20F684602702069002A02D0B3
-:10BD20006030057401E06030017420695C221152BA
-:10BD3000603005700820B0737CBD401A244900B201
-:10BD4000884201DC002801DC012070470020704798
-:10BD500070B51D4D0020A97BFEF74DFF174C002844
-:10BD600003D1207A012108432072A069FCF78EFDDF
-:10BD70002169DE2250524988FFF7DFFF002803D0F7
-:10BD80002820FFF750FF70BD2169A069E031FCF762
-:10BD900071FD0520A87370BD70B500F054F8074C14
-:10BDA000094D6079400716D5A97B0520FEF723FFD2
-:10BDB000002810D0207A082108430BE080000020E2
-:10BDC000CCAC00001D0A000006190020640600002B
-:10BDD000FE7F00002072FFF738FA00F012F8FFF73C
-:10BDE000E0F8A079C00609D5A87B030006F06EFF35
-:10BDF00006060606060604060620A873FFF76BF87B
-:10BE000070BD10B525488179490714D5017A0029FC
-:10BE100011D12349897B0B0006F058FF080D050D51
-:10BE20000D0D0E0D100D0069002260210A54C03066
-:10BE3000807EFFF7F8FE10BD012100E002210069BD
-:10BE4000C030417710BD10B51448817909071DD560
-:10BE5000017A00291AD1124A947B230006F036FF9A
-:10BE60001416160B1616161616161616161616167F
-:10BE7000161616161716006960300170407C0028EF
-:10BE800001D0062000E01620FFF7CDFE10BD0069AE
-:10BE9000603001720170917310BD000080000020BD
-:10BEA0000619002010B5031D03600020521E04E097
-:10BEB0005C181C60401C2346C0B29042F8DB002096
-:10BEC000186010BD01460A680020002A02D0104602
-:10BED00012680A60704702680A60016070470000DB
-:10BEE00000B51A2822D00ADC030006F0EFFE0D117F
-:10BEF0001F131F1F191915171F1F1F1B1F002A288B
-:10BF000014DD3A38030006F0E1FE030F11091100B9
-:10BF1000002000BD1E4800BD042000BD0D2000BD56
-:10BF20000F2000BD082000BD112000BD032000BD72
-:10BF300010B50C46F5F7C8FB00281AD02046F4F7D8
-:10BF400061FE002812D020780E280BD00F2809D0CF
-:10BF5000022807D0032805D00EA1772006F0B1FDF6
-:10BF6000002010BDA078FFF7BBFF10BD09A17D2008
-:10BF7000F4E708A18320F1E710B5F4F7CBFD10BD7D
-:10BF800010B5F4F73FFE10BD10B5F4F721FE10BD5B
-:10BF9000013000007372635C686F73745F6863697B
-:10BFA0002E630000F0B597B00021032004F0F7F8ED
-:10BFB0000025FE4E022775807574347C12E0F0680F
-:10BFC000E1004018818800290CD0858069460F70F7
-:10BFD0004D7001680291808869468880002168461A
-:10BFE000F8F7F0FD2046641EE4B20028E7D117B050
-:10BFF000F0BDEE4BD86019741A80D3E7EB49EC4BD7
-:10C000004A8800201A4200D00120497C002901D032
-:10C01000082108437047F7B504460E460078012111
-:10C02000E34A8140521C114098B0E04A0091518887
-:10C03000E04B994205D0009B002B05D0DC4B194208
-:10C0400002D001201BB0F0BD009BD84A194351809B
-:10C050001A9D002D11D00020287022781A980027F0
-:10C06000401C130006F032FE10EF0D152137555D10
-:10C070006A39AFAB85B3EEEDECEF0B28EDD00420C1
-:10C08000E0E702212970A1880170090A41700320AC
-:10C0900093E004212970A1880170090A4170E188A8
-:10C0A0008170090AC170052087E006212970A188E6
-:10C0B0000170090A4170E1888170090AC170218903
-:10C0C0000171090A4171A289E81D216906F05CFB32
-:10C0D000A089C01D71E0082129702178082901D1AB
-:10C0E00010212970A1880170090A4170E1888170CE
-:10C0F000090AC1700520308020466A1D01A9083058
-:10C1000003F047FB00287DD1694630880979401843
-:10C1100053E00A212970A1880170090A41700320A7
-:10C120000AE00C212970A1880170090A4170E18898
-:10C130008170090AC170052030809DE0A088844686
-:10C140004000401C81B2308888425BD3052959D316
-:10C150000E202870002008E0A36842009B5A521964
-:10C1600053701B0A401C937080B26045F4D3318039
-:10C17000B6E08E49487C002873D0401E4874C868D9
-:10C1800021790822C9004518A9882868401808386C
-:10C19000A16806F0F9FA0221684601710021417197
-:10C1A00028680390A98868460181002101A8F8F752
-:10C1B00009FD0020A880002E00D0308090E0297872
-:10C1C000802211432970297840221143297029784F
-:10C1D0008909890112312970A1880170090A417009
-:10C1E000E288E81CA16806F0CFFAE088C01C308025
-:10C1F0002878410640D5C00972D0012168460171F6
-:10C20000002100E02BE041713188ED1C091D018106
-:10C210001A980390E08840190490001D634D059022
-:10C22000297C68460176002101A8F8F7CBFC074677
-:10C2300030880C303080022F06D0002F50D060E0C4
-:10C240003CE032E01CE059E06946097EE868CA003B
-:10C2500080182A7C914202D28188002902D00427CA
-:10C260004FE02EE0697C491C69741A99016031889D
-:10C2700081800020308044E04C48A188C1802FE0BC
-:10C2800029788909890116312970A1880170090A64
-:10C290004170E1888170090AC1702289681DE168D6
-:10C2A00006F072FA2089401D46E72878800980014F
-:10C2B000183028702079687002207EE73B480A0415
-:10C2C00001D405271DE00289A3889A4201D00627E0
-:10C2D00017E01E222A70012249043280490C418055
-:10C2E000009800280DD0314D002228881146830087
-:10C2F000032003F0B2FE2078287107E00020308090
-:10C3000003272A48009942888A434280384699E6A2
-:10C31000F7B59AB002000C4606D0172A04D8234875
-:10C32000244B4088984202D107201DB0F0BD2378ED
-:10C330005D0601D4DB0901D00820F6E700236D4635
-:10C340002B706B701D462378611C9F06931E1893FB
-:10C35000531E19939BB2169302AB1793134BBF0E48
-:10C36000DE883B0006F0B2FC208511F15EF16BF136
-:10C37000A3F1C6F1F2F1FBF1EEF1EDF1ECF1F1F127
-:10C38000EBF1EAF1E9F1E8F185F1052A71D1042236
-:10C3900069460A7005490A7969460A71E178A37805
-:10C3A0000A021A436946CA80227905E0181900205A
-:10C3B000FE710000FFFF00004A7061788906890E57
-:10C3C0000C2923D009DC891E0B0006F07FFC091321
-:10C3D00052155219521B521D520012291CD004DC56
-:10C3E0000E2915D01029D1D114E0162916D01829FC
-:10C3F000CCD115E0800700E04007002839DA2AE1B7
-:10C400000007FAE7C006F8E78006F6E74006F4E71B
-:10C410000006F2E7C005F0E7C004EEE78004ECE7B1
-:10C420004004EAE7800724D5032AAFD105206A46F5
-:10C430001070487809780002084390800BE14007AB
-:10C44000F1D5062A15D31898617880B2012902D057
-:10C4500002299BD101E0022700E01027062269464D
-:10C460000A7000228A8001AEA11C0236BA1C179203
-:10C4700018E0B6E04A780B7812021A433280801E28
-:10C48000891C1890B21C1691384603F05CF9169975
-:10C4900018986B469A88C919C01BB61D521C9A8001
-:10C4A000179A80B28242E5D900289CD1D3E00007D8
-:10C4B000B9D51998694682B2072008700020888093
-:10C4C000601C891D11E0437806781B0233430B8002
-:10C4D000C37886781B0233434B806E46121FB388A5
-:10C4E000001D091D5B1C92B2B380042AEBD2002A06
-:10C4F00077D1B0E0C00674D5022A72D3189808210B
-:10C5000082B2684601700021C18063780371A01C6B
-:10C5100017990EE04678077836023E430E80861C57
-:10C520004E606F46D21AFE88C0180831761C92B24F
-:10C53000FE809342EED9DAE76FE076E065E051E005
-:10C5400046E01EE014E00AE000E0A0E0800648D5E6
-:10C5500009206A46107096801698D0800FE0400639
-:10C560003FD50A22684602708680169AC28006E08D
-:10C57000000636D50B206A461070169890800291FE
-:10C5800069E0C0052DD5022A7FD318980C2182B20C
-:10C59000684601700021C18063780371A01C17995F
-:10C5A00013E04678077836023E430E80C6788778D7
-:10C5B00036023E434E80061D4E606F46D21AFE88FC
-:10C5C000C0180831761C92B2FE809342E9D98EE7FA
-:10C5D000C0045AD5012A58D10D21684601708680C1
-:10C5E00039E052E0800450D5052A4ED30E23684628
-:10C5F00003708680C8788B78010219436846C18031
-:10C60000521F0281601D039025E040043DD5012AA0
-:10C610003BD10F20694608701DE0030435D44B78E8
-:10C620000E781B023343244E3381032A2DD31B2F54
-:10C6300027D011236E46337001261F4BF60330437B
-:10C64000588048780B780102194368468180D21ED1
-:10C65000C280E01C029020788006800E1B280AD041
-:10C660001D2808D00021032003F099FD12484188BD
-:10C67000C90BC903418068461C99F8F7A3FA2846FC
-:10C6800053E610206B461870DBE70725F7E708250F
-:10C69000F5E700B50022D243074997B04A80032846
-:10C6A00007D1032268460270097901710021F8F769
-:10C6B00089FA17B000BD000018190020FFB589B035
-:10C6C0000020019009981027FE4C1E4615460828A8
-:10C6D00006D0E06901F05EF8002809D03770BEE0AE
-:10C6E000288809213843108013980227017016E02A
-:10C6F000E169012088710521E269C9029180E1693F
-:10C700008872E169F0480881E1690020887328880F
-:10C7100020210843288011211398042701701398C1
-:10C720000225801C0290307806900A203070E5487F
-:10C730001830049001F00DFA0020059020462C30AE
-:10C7400003906DE00998102808D1022D06D00199B8
-:10C750000298A28D401A8270110AC170E08D0A9968
-:10C76000884202D901F0D5F806E0884204D1069843
-:10C77000002801D030701CE00298E18D0170090A98
-:10C78000417012980088401BC01B82B2FF20C01B62
-:10C79000904200D2024607A8009002980021C319D7
-:10C7A000E08D01F041FA3070002805D0C0B2832836
-:10C7B00058D0E08D20833EE00598002804D0206CFE
-:10C7C00000790A282CD336E06846808BC119C9B29B
-:10C7D0000191022D0DD01399019A4978914202D10D
-:10C7E000228F824208D00191206C0178032908D061
-:10C7F00023E0084613994870206C0178042906D07C
-:10C8000007E000790A2818D20120059008E0E18DA0
-:10C81000818002990198081802900198281885B221
-:10C820000399049801F098F9002804D1129800881F
-:10C83000401BB84286DA022D0DD00998102806D187
-:10C8400002990198A28D081A8270110AC17012987B
-:10C85000058000203070206C0078032802D0002072
-:10C860000DB0F0BD0220FBE7F8B5964A0026126D28
-:10C87000002A2ED0401F934D84B24035E88A2346CB
-:10C880000833AF8AC318BB4222D88B784F781B027B
-:10C8900010183B4303701B0A43700B79CF781A02C0
-:10C8A0003A438270120AC2700471220A427122460F
-:10C8B000491D801D05F068FFE88AA41D001980B29B
-:10C8C0008049E882096D002208180270427000E079
-:10C8D00009263046F8BD30B57A4B028840339B8A32
-:10C8E000934213D9774B1C6DA3185C781D782402F2
-:10C8F0002C430BD05C791D7924022C436404640C16
-:10C90000A41D1219028000200B6030BD822030BDB2
-:10C91000F0B585B0074600266846068155E00198C7
-:10C92000417802780D0215434179027908021043DB
-:10C9300000044AD43D8003A8002301220090520243
-:10C940001946284601F070F9040044D1684601896F
-:10C9500001820198417902790902114343780278F2
-:10C960001C021443AC421CD10A041AD44A0401210B
-:10C97000520C89030A430096C1788078090201436A
-:10C980000023204600F0C9FF040010D10199487926
-:10C990000A79000210430122D20310430871000AF1
-:10C9A000487101A904A8FFF796FF0400D1D00199AE
-:10C9B00000964878097800020843694600238A896E
-:10C9C000194600F0AAFF822C05D101A902A8FFF7A1
-:10C9D00082FF0400A3D06846068109E001994879E6
-:10C9E0000A79000210434004400C0871000A4871A3
-:10C9F00001A902A8FFF76FFF0028EFD0822C02D018
-:10CA0000204605B0F0BD0020FBE7F7B584B0144622
-:10CA10000646002700F079FF2A480025006D00280F
-:10CA20002FD0059801282CD12046FFF771FF070071
-:10CA300027D1002E29D06846058118E00199487851
-:10CA40000978000208432080019B009558791979E4
-:10CA50000202D8780A4301029F78587839431F7838
-:10CA600000029B1D384300F058FF002805D101A9A2
-:10CA700002A8FFF730FF0028E0D0822800D1002074
-:10CA80000746002E01D00F48056500F042FF3846EA
-:10CA900007B0F0BDF0B597B00021042003F07FFB94
-:10CAA000084F00243D467C8040356C73AC73287B76
-:10CAB000B96CC00008380E18B08800280DD00120CD
-:10CAC000694603E02C190020012800000870306836
-:10CAD000019000216846F9F77AFBB4803C65AC828E
-:10CAE000EC8217B0F0BDFE4B9864184640300173DD
-:10CAF0001A803838D861CDE7F949002049880A07FB
-:10CB000000D501200A06120F01D002221043CA05E7
-:10CB100001D5042210438A0501D51022104349058E
-:10CB200001D520210843EE494031497B002901D03D
-:10CB3000082108437047FFB5A7B00400289816469F
-:10CB40001B9022D00178E6484D0642882292024688
-:10CB500040320092002D14DB8A06920E1E2A0ED05F
-:10CB6000229A5205520E10D13288172A0DD3009AFC
-:10CB7000927B002A09D1DB4D229AAA4205D0CA092C
-:10CB800006D08A06920E122A02D003202BB0F0BDE6
-:10CB9000D348826C0098007B2590C000083810189C
-:10CBA0001F9048060CD40098407B002808D00099BC
-:10CBB00088731F99289808601F9884800220E5E7F1
-:10CBC000002718A90F7069460F72C54902AA0A64A6
-:10CBD000309A4A6410A90F850F861B981D4600786D
-:10CBE00020908106BE4B601F24901A462C32219261
-:10CBF0002898DA691833890E1E93401C0B0006F042
-:10CC000065F81FFDFD11FD1AFD90FDFCFDFBFDFA11
-:10CC1000FDF9FDFCFDF8FDFDFDF7FDF6FDFDFDFD5B
-:10CC2000FDF5FD00032C7BD10320287017226A70CC
-:10CC30000022AA70E0E2052CF5D1417802780902C1
-:10CC40001143A74B10AA19831185C278807812026C
-:10CC500002435A8300297DD091427BD80021184697
-:10CC600081720181491E01841E9800F072FF052027
-:10CC70002870A81C1D900220009021991E9800F099
-:10CC80006BFF002803D047E018A90870F0E2944831
-:10CC90002030807C012803D002206870102002E040
-:10CCA00001206870022022908D48303023900022AD
-:10CCB00020A9239802F06DFD00282AD120A8007831
-:10CCC0002299814225D132880099801C511A8142D3
-:10CCD0001FDB83481D99C08D0870000A48701D989D
-:10CCE00020A9801C1D9000981D9A801C00902398FC
-:10CCF00002F04FFD20A909781D9840181D9000985A
-:10CD0000401880B2009021991E9800F025FF00285D
-:10CD1000CDD0009802288DD10A2018A908706CE2A5
-:10CD20006DE0072C6BD341780378090219436C4BF3
-:10CD30008446198310AB1985C37880781B02184389
-:10CD4000674B0029588305D0814203D8012118463A
-:10CD5000817200E0A4E061464B7909791B020B4324
-:10CD6000038100218173104600F014FD00280FD1CB
-:10CD70005B480121C26991710522C369D2029A8080
-:10CD8000C2699172C26958491181C06900218173D9
-:10CD90005349E01F08841B98C01D48621E9800F08C
-:10CDA000D8FE07202870681C009001201D904C4878
-:10CDB0000021C18530E01D98012815D04848C1697F
-:10CDC000897901292FD000981038C17B807B090216
-:10CDD000014300980170090A41700098801C00907E
-:10CDE0001D98801C80B21D903D4809E013E2BEE111
-:10CDF0007AE1D8E00DE2A0E080E03BE01EE2B6E0A0
-:10CE0000C18D00980170090A41700098801C009043
-:10CE10001D98801C80B21D9021991E9800F09CFEE8
-:10CE2000002802D006E0818DD3E731881D98081ACA
-:10CE30000428C0DA1D98012800D16DE72848C1698F
-:10CE40008979012903D0828D26498A4205D1818DB5
-:10CE500000980170090A417009E000981038C17B00
-:10CE6000827B0802009910430870000A48701D98E0
-:10CE7000801CC1E1072C01D0152C78D141780378B2
-:10CE800009021943164B198310AB1985C3788078B2
-:10CE90001B02034312480029438301D0994201D960
-:10CEA0000120F1E60E480121817200210181817388
-:10CEB000052C07D024981B99C0B2491D02F043FCF1
-:10CEC0000028BAD100200649C04308841B98009668
-:10CED0000195007818AB8006800E1CAA002105E0A1
-:10CEE0002C190020FFFF000001280000FFF7E6FBDF
-:10CEF0000746FE4810A9008B08857EE1032CBCD1B3
-:10CF0000402210A90A86417802780802F7491043A6
-:10CF1000088310A9088520A9009131886B1C491E3F
-:10CF20008AB2002100F080FE18A90870002830D1D4
-:10CF30000B20287020A8008833E0052C9DD180218B
-:10CF400010AB1986014640780B780202E7481A4375
-:10CF50000283CB7889781B021943E44B104619846D
-:10CF600010AB1A85E24A914202D307208CE697E083
-:10CF70003F23DE4A9B021943118421AA0092328882
-:10CF80006B1C521E92B200F04FFE18A908700028C8
-:10CF900003D08328B1D102272FE10D20287020A8CB
-:10CFA0008088401C28E120990C22C9095143C91CE2
-:10CFB0001E91A14204D92098400671D500201BE1A2
-:10CFC000417800780902014310A801851B98007878
-:10CFD00042062898C01C1D90002A62DA05206A4685
-:10CFE00010721B980078C00944D00822684602726B
-:10CFF0008181A01A87B268468782289806901E9879
-:10D00000201A81B26846C1811D980490401805F02D
-:10D010001CFC079006982599C0190890491E08A87D
-:10D02000017102A83099F9F7D2F807460021684645
-:10D030000172002F1BD0022F18D1009808A9007B85
-:10D040000979401E884210DDA848289A836CC900DF
-:10D050005A50816C08A80079C000001D0C5200983D
-:10D060000099407B401C4873C7E00527EAE0062092
-:10D0700069460872002000901E980021201A209016
-:10D0800082B21B9B10A8DB1C008D00F046FC014601
-:10D0900018A80170002268460272832903D003E0B9
-:10D0A00093E00720E4E702271B98007840060ED59E
-:10D0B0008E484188C90506D510AA018B128D914270
-:10D0C00001D100214162002018A9087094E0FF21DD
-:10D0D000013110A80186018D8448018320990184C3
-:10D0E0001D994162132085E0052C6ED341780378A9
-:10D0F0000A021A4310A90A859446092269460A724F
-:10D100000021009101222499D20311438AB2C178EF
-:10D11000807809021B9B01435B1D604600F0FDFB0C
-:10D1200018A90870002269460A720122520210A949
-:10D130000A86832802D0002805D099E06B48098D23
-:10D14000018302277EE06948006D002807D0204651
-:10D150001B99FFF789FB18A9087000284DD12B46B1
-:10D16000324620461B9900F024FB074645E01B98F9
-:10D17000022C4078009064D1002801D0012860D1B1
-:10D180000A2168460172009901731AAA00200099C9
-:10D19000FFF73BFC0146684641730021817302A8FA
-:10D1A0003099F9F714F80746002168460172012109
-:10D1B000890210A80186022F08D04C48006C8079A3
-:10D1C000002807D018A9087020E04BE047490098D4
-:10D1D000088337E0002F03D0812018A9087031E0C0
-:10D1E0001AAA01200099FFF710FC18A9087000285E
-:10D1F00003D119202870012030806846007A002869
-:10D2000004D002A83099F8F7E2FF0746002F2BD090
-:10D2100018E0062038E522993448090711D5012C79
-:10D220000FD10B2269460A72C08888810021042030
-:10D2300002F0B5FF082010A90886BFE62098400636
-:10D2400010D50327294810AA4188128E1143418026
-:10D250005005400E04D01F99289808601F988480BC
-:10D26000384693E404200FE518A8007800280ED073
-:10D27000012028701B980078687010A8008DA87095
-:10D28000000AE87018A80078287105203080174837
-:10D2900010AA4188128E91434180E1E7FFB506460E
-:10D2A0009FB000201B903178012088401149124A1C
-:10D2B000084010A908860D494988914203D00028EA
-:10D2C00004D0080702D5012023B0F0BD219D00271E
-:10D2D0002F7020983C46018810A8018418A8077177
-:10D2E00000F013FB6846077202A907E02C19002022
-:10D2F0000102000009F80000FFFF0000FA48016485
-:10D3000001464031826C1A91097BC90008395718CF
-:10D3100022994164307801282AD0022809D00328B4
-:10D3200079D12878800980011D302870EE48B188B5
-:10D33000C1803078022804D12878800980011B3010
-:10D34000287001A8009010A8008CEB1CC01E82B2AF
-:10D35000B088002100F068FC0028E1D1B188697034
-:10D36000090AA9706946888810A9C01C08842DE1A3
-:10D37000717918A801713079012802D00228CFD123
-:10D38000E6E0D9487F2340881B010246184010ABD5
-:10D390001886802840D006DC102810D020280ED017
-:10D3A00040280AD120E0FF38013859D0FF38013831
-:10D3B0006AD0FF38FF3802387ED0052491E0D006CD
-:10D3C00001D5082000E010201B9004206946087257
-:10D3D0000020888118A800900195318919AB1CAAFA
-:10D3E0001B98FFF76BF977E0BF4B3289188B8242AD
-:10D3F0004FD10A221B92002973D101A9009110A9D3
-:10D40000098C6B1C491E8AB2002100F00DFC18A982
-:10D4100008710B2017E0F6E0B34B3289188B82427B
-:10D4200037D10C221B9200295BD101A9009110A9D0
-:10D43000098C491E8AB21946098C6B1C00F0F4FB5A
-:10D4400018A908710D2028706946888810A9401C09
-:10D450000884042069460872A348008B888140E054
-:10D46000A14A3389108B834213D112231B930029C5
-:10D4700037D1536A002B05D00091128C00F04DFA81
-:10D4800018A9087113205EE097483289038B9A42ED
-:10D4900001D00424E7E016221B92026D002A09D174
-:10D4A000F268002A06D002651A98328A82821A9A95
-:10D4B0000020D082002900E02FE012D1B88839681E
-:10D4C000FFF7D2F918A9087100280AD1B8882B46AD
-:10D4D00018AA396800F06DF90446022818D0042C07
-:10D4E00016D0B88800280FD06846007A002804D0EB
-:10D4F00002A82299F8F76BFE0446012069460872DB
-:10D50000386803900020B880002C5FD0052C7BD0B9
-:10D510006846007A032873D0A5E018201B900029E4
-:10D5200005D071483189018300210165D9E76E4832
-:10D530000246017E18320120FFF767FA18A9087128
-:10D540000028CED119202870012010A90884C8E72E
-:10D550001A98407B002856D0307AC0001358001D1E
-:10D560000193105A1D9000291AD100F0D2F906201B
-:10D5700069460872002000901D980F3882B2019809
-:10D580008178437808021843019B0021DB1C00F0DE
-:10D59000C4F918A90871002269460A72832830D09C
-:10D5A000002118A8017110A80184012168460172A8
-:10D5B000019803901A981A99407B401E48731A9854
-:10D5C000807B002802D01A99401E887310A8008E14
-:10D5D0007F21090102468A431DD04348002200886A
-:10D5E00011468300042002F038FD3F483178017174
-:10D5F00010A94088098E08433B4948800FE003E0AA
-:10D600002BE002242FE00524374810AA4188128E0F
-:10D610009143418027E034494A8882434A806846E2
-:10D62000007A002805D03048416C02A8F8F7CFFDF9
-:10D63000044618A80079002815D01B9868700120AE
-:10D6400028702948008BA870000AE87018A8007993
-:10D650002871052110A8018405E02348416C02A827
-:10D66000F8F7B5FD044600F054F91F48408840051E
-:10D67000400E20D11A98807B00281CD1B888002841
-:10D6800019D0209910AA098811842299009139682B
-:10D6900018AA219BFFF74FFA044602280BD001205D
-:10D6A000694608723868039002A82299F8F78FFD3E
-:10D6B00004460020B88010A8018C209801802046E4
-:10D6C00002E600B50022D243074997B04A800428F9
-:10D6D00007D1022268460270097901710021F8F72A
-:10D6E00076FD17B000BD00002C19002010B5394C94
-:10D6F00003780022216C012B02D0022B44D126E0BA
-:10D700000B78002B01D0042B03D10A71226C03216A
-:10D710001170216C83880A79D200921D8B52216C82
-:10D720000A79D20008328918C2880A80216C0389DC
-:10D730000A79D2000A328B524289206C0179C900E1
-:10D740000C314252216C0879401C087120E00A74A7
-:10D75000226C81889180216CC288CA80226C0189E8
-:10D760001181226C41895181216CC068C860616C53
-:10D77000206CF8F72CFD0146022807D0206C007CB5
-:10D78000002802D1002903D0812010BD832010BDC4
-:10D79000002010BD8178012909D100880521C90226
-:10D7A000884202D0491C884201D1002070470520E0
-:10D7B000704710B51488844201D2052010BD17248B
-:10D7C0001C701080421E491C581C04F0DDFF002014
-:10D7D00010BD00002C19002010B50446FEF759FFBB
-:10D7E0002046FFF76EFF10BD10B58B78002B11D0CF
-:10D7F00082789A4207D10B88002B0BD003E0091DD9
-:10D800008B78002B08D08B789A42F8D103880C884B
-:10D81000A342F4D1002010BD812010BD10B5002915
-:10D8200002D001290DD102E00088000501E0008846
-:10D830008004800F07D001281CD0022809D00328BB
-:10D8400010D0812010BD002901D0032010BD02207E
-:10D8500010BDF6F754F803280CD004280AD000288D
-:10D8600006D009E0F6F74BF8042803D0022803D0CD
-:10D87000052010BD002010BD0F2010BDF3B5C81C41
-:10D8800080080E46800081B0B04201D08620FEBDE7
-:10D89000FE4C354626600198A08000202081E08063
-:10D8A00014E0B807A978800D0843F94904F0E6FFB1
-:10D8B000E088401CE080B80607D42089401880B278
-:10D8C00020810199081A8019A8600C352F887807E3
-:10D8D000E7D40020A072FEBDEC480C22C18800896C
-:10D8E0005143081880B2704770B51346E74A45188F
-:10D8F0009488AC4201D2842070BD126810180A4688
-:10D90000194604F041FF002070BDE04901208872F3
-:10D910007047DE49002088727047FFB589B09704D0
-:10D920000E460546BF0C029200F017FA040021D003
-:10D93000002069460873D548807A012812D0012159
-:10D940002046FFF76BFF002815D12078400609D547
-:10D950000221684601730582218841828682C7823E
-:10D960000C9806900298000407D500273E46012532
-:10D9700001970CE001200DB0F0BD2078A178800760
-:10D98000800D0843C249019004F078FF0D460298CB
-:10D9900040040AD50198A84207D12088E178800583
-:10D9A000800F00020843B04201D3AE4201D90720E4
-:10D9B000E1E7B81980B20290A84201D90D20DAE758
-:10D9C0006846007B002804D003A8F8F7FCFB002879
-:10D9D000D1D10198A8420BD12088032109028843A4
-:10D9E00002998905890F0902084320800298E07096
-:10D9F0001298002800D007800C9800280CD02078BE
-:10DA0000000609D4A0683A4680190C9904F0BCFEBF
-:10DA100020881021884320800020ACE7FFB59B4D73
-:10DA200081B00E46E8882F680C21009048433C18CE
-:10DA30009749039804F022FF0A462889E11B84468F
-:10DA40000C314018318880B28B0601D5002300E0EC
-:10DA500013461818AB8880B2834202D8842005B0E0
-:10DA6000F0BD0098894D401C80B2E88021800D995E
-:10DA7000002900D00C600399A170E2702188039DF9
-:10DA80008908AD058900AD0F294303252D02A9435F
-:10DA90009505AD0F2D0229430425294321800C99BA
-:10DAA000002900D0088001998978A171019909881D
-:10DAB000A1803178890601D50B9905E0734962444C
-:10DAC00092B20A81991AC919A16000212173327892
-:10DAD000920601D50020C2E700910B9B0A9A049997
-:10DAE000FFF71BFFBBE710B5044600F036F900282E
-:10DAF00006D06649641ECC8000210170084610BD26
-:10DB0000012010BD002803D0401E0880002070476F
-:10DB10000120704710B55D490288CB889A4201D335
-:10DB2000822010BD0B680C21514359180B88CC780A
-:10DB30009B059B0F1B02234341608C7904738C88E7
-:10DB40004481C3818968521C0161028002810020E6
-:10DB500010BD012101827047FEB505460020C0437B
-:10DB6000088068680F468178684681706868018817
-:10DB70006846018000218171288A2C88A04200D348
-:10DB800004462C8234E0288A401C2882301D6968B3
-:10DB9000FFF72AFE002829D139883E48814201D169
-:10DBA000601E38806888A04227D33088F1788005CD
-:10DBB000800F0002084302906946301DFFF714FEF3
-:10DBC000002813D12989334881421AD000213046D8
-:10DBD000FFF724FE002809D12A890298824205D144
-:10DBE000E968B06804F0A3FD00280AD0641CA4B260
-:10DBF000204600F0B2F80600C5D1641E2C828220B7
-:10DC0000FEBD7C80B079B871B088B880308838812A
-:10DC100030788007810DB078014379810298B8810E
-:10DC2000B06838610020FEBDFFB585B014460F46D0
-:10DC3000059800F092F8050037D01448BE05807AA8
-:10DC4000B60D012815D000212846FFF7E7FD002872
-:10DC500029D1287840060CD5012168460170059924
-:10DC600081802988C18006814481F8F7ACFA0028B8
-:10DC700019D12888AA788107890D11438005800F62
-:10DC8000EA7800021043BE4211D005E0841900205A
-:10DC900001020000FFFF0000374A914207D3611ED6
-:10DCA000814204DD0B2009B0F0BD0120FBE7864274
-:10DCB00001D90720F7E7801B82B2A24200D9224691
-:10DCC0000E98002800D002800898002804D0A86888
-:10DCD0008119089804F058FD0020E4E770B5144657
-:10DCE0000D4600F03AF800280DD001882980002C5C
-:10DCF0000DD0017880788907890D01431E48814243
-:10DD000003D2012002E0012070BD0020207000201D
-:10DD100070BD70B516460D4600F01FF804000DD01A
-:10DD20002D882580FF2E16D0A807A178800D0843E6
-:10DD3000114904F0A3FD002E06D101E0012070BDC1
-:10DD4000FF31FF31033189B2A170A8088000890535
-:10DD5000890F08432080002070BD0849CA8882428C
-:10DD600007D3002805D00C22096850430C38081846
-:10DD70007047002070470000010200008419002055
-:10DD8000F0B585B00E4605460020694608707078EB
-:10DD9000FE49C00003900C58FD4F002D0ED0022DFF
-:10DDA00073D0002C72D02078801E030004F08EFF08
-:10DDB00009837F7F7F83797F77727F00002C03D177
-:10DDC000F4A16B2004F07DFE2078801E030004F097
-:10DDD0007DFF09065E5E5E19365E50545E00307847
-:10DDE000062803D0EBA1762004F06BFEB8687168BA
-:10DDF000806A032204F0C8FC0120694608700028EC
-:10DE000035D1CEE730780C2803D0E2A1812004F090
-:10DE100058FEE0680078002806D0B8687168C06BCA
-:10DE2000102204F0B1FC28E0B8681021406B04F027
-:10DE300008FDB868C16A406B0A787168F1E730780C
-:10DE40000D2803D0D3A1942004F03BFE04206946A2
-:10DE5000087071684878097800020843B9684A6A0E
-:10DE60005178127809021143484069468880084673
-:10DE700008E0C8A1AF2004F024FE6846007800281E
-:10DE80008FD06846F5F740FD8BE727E01CE0C1A185
-:10DE9000B420F0E7B8686169406CFEF71CF8A1692E
-:10DEA00000E0E168B868406CFEF715F803E0B9A13E
-:10DEB000E32004F006FEB8682146406CFEF70BF83C
-:10DEC000B24A039900205050022D07D0002D05D0F2
-:10DED000012D03D0AFA1EF2004F0F3FD05B0F0BD9C
-:10DEE00010B501780124012902D0022910D112E0D5
-:10DEF0004268A748002182600170A4486C38C1665E
-:10DF0000016741678167928902214C3001F083F9F2
-:10DF10000024204610BDFF209EA11C3004F0D1FD3E
-:10DF2000F7E7F0B505469EA103C997B01491139089
-:10DF3000002108A8017595482A781030944C049067
-:10DF40002078012605903746A068130004F0BEFE35
-:10DF50000CEE073098EFF5EBEAE9E8E8E7EE217020
-:10DF60000124FF2655360D4610A80570457001F0B6
-:10DF700063F90746012803D086A1304604F0A1FDCD
-:10DF800010A93846FFF7FCFE2046641EE4B20028C4
-:10DF9000EAD10A20694608706846029501F02AFA1B
-:10DFA000002803D0FF207BA15E3066E00026E6E279
-:10DFB000006B0078C0072ED06846077001F01AFA8F
-:10DFC000002804D0FF2073A1713004F07AFDA0680E
-:10DFD000406CFDF777FF050004D1FF206DA1743080
-:10DFE00004F06FFD08984078C1006848455006204D
-:10DFF0002870A068016869600069A8606448C01C56
-:10E00000E860284601F0F6F9022804D0FF2061A15B
-:10E010007E3004F056FDA068006B00784007C5D53F
-:10E020006846077001F0E6F9002804D0FF2059A1E6
-:10E03000863004F046FDA068406CFDF743FF050004
-:10E0400004D1FF2053A1893004F03BFD08984078AB
-:10E05000C1004E48455006202870A06801686960DC
-:10E060000069A8604A48401DE860284601F0C2F9EE
-:10E0700002289BD0FF2047A1933004F022FD95E7B2
-:10E08000A8680028684632D001712879012833D069
-:10E09000022804D0FF203FA1AD3004F012FD3B4820
-:10E0A00010221030A96804F06FFB38481030014688
-:10E0B000103148602078C1062DD5EF21084020702E
-:10E0C000032069460870314810300290684601F01C
-:10E0D000B3F80446022808D0002C06D0012C04D046
-:10E0E000FF202CA1BE3004F0ECFC69462AE1077148
-:10E0F000264820304160DDE7244A04986C3AD16715
-:10E1000041608160C1600621A86803F087FA1F4959
-:10E1100010310860C9E720210843207046E758E124
-:10E1200014E1D6E0A3E046E007E000E031E2FF20A2
-:10E1300018A1E73004F0C5FC21E2172269460A72F3
-:10E140000F7089788A08297992008907890F0A4314
-:10E1500069468A70FB210A4029794907C90F89005D
-:10E160000A4369468A70EA888A80826C02A96846F6
-:10E1700001F082F9002804D0FF2006A1F73004F056
-:10E18000A0FC052108A8017568460DE0FC190020D7
-:10E19000A00000207372635C736D2E6300000000AA
-:10E1A00004411A8800A48000017A0187A068002633
-:10E1B000806C0F90E7E16846077001F01BF90028BA
-:10E1C00003D0FD49FD4804F07CFCA068406CFDF7DD
-:10E1D00079FE060004D18320F749800004F071FC29
-:10E1E000A068406CFDF76EFE070004D1F348F249C9
-:10E1F000801D04F066FCF2488068406CFDF762FE0A
-:10E20000040004D1ED48EC49093004F05AFC0898A8
-:10E210004078C100EB4846500A203070287A3071AF
-:10E220006868E74DB060A868806C30611720307373
-:10E2300077613046B46101F0DDF80446022808D069
-:10E24000002C06D0012C04D01120DB49400104F041
-:10E2500038FC2046316AFFF793FD297805220A40F1
-:10E26000042A00D0A2E6FB22114029702AE0059979
-:10E270004908490021708A071CD5FD2211402170F0
-:10E280000F216A46117017211171806C0290684647
-:10E2900000F0D2FF0546022808D0002D06D0012D3F
-:10E2A00004D0C648C4493A3004F00BFC69462846FD
-:10E2B000FFF766FD2078052101400429D2D1FB211A
-:10E2C00008402070072008A90875BD4880780876A6
-:10E2D0006CE66846077001F08DF8002804D0B74856
-:10E2E000B549543004F0EDFBA068406CFDF7EAFD41
-:10E2F000060004D11320B049400104F0E2FBA068FD
-:10E30000406CFDF7DFFD070004D1AC48AA495A3044
-:10E3100004F0D7FB08984078C100AA48465007206F
-:10E320003070A068406870606868F760B060304620
-:10E3300001F060F8040004D0A0489F49653004F063
-:10E34000C0FB316A2046FFF71BFD2FE668460770C9
-:10E3500001F050F8002804D0984897497A3004F02A
-:10E36000B0FB08984778A068406CFDF7ABFD06004D
-:10E3700004D151209049C00004F0A3FBA068406C78
-:10E38000FDF7A0FD040004D18C488B49823004F0D5
-:10E3900098FB8C48F900465008182A694260092009
-:10E3A000307068687060A868B060A889B0818548DE
-:10E3B0006C3830611030B4617061304601F01AF889
-:10E3C000022804D07D487C49903004F07AFB2F75F8
-:10E3D000ECE57C4B00212033197002216A46117054
-:10E3E00001932979002902D0184601709BE07449F5
-:10E3F00003220C314968FB230A708A7800259208B1
-:10E4000092001A408A70027A1207D20F4A706D4A3F
-:10E4100020325560C37ACB70837A13724469537A81
-:10E4200024785B08E4075B00E40F2343537284699C
-:10E43000D460FD242340C4692478E407A40F234357
-:10E440005372036A13614D710D71437A5C4A9C07E4
-:10E450000C32A40F1268012C04D19478A407A40FE5
-:10E46000012C1DD09B089B00437293785B0702D45C
-:10E47000437A5B0728D5037A13AD5B075B0FDC009B
-:10E480005B00E318147864001B19DBB2DC082C5D18
-:10E490005D076D0F06235B1BDC40A3079B0F14E099
-:10E4A000037A54795B065B0F1C404C711379062587
-:10E4B0002B400B71DB002343414C63708B789B082E
-:10E4C0009B005B1C8B70D0E700238C78FB252C40D5
-:10E4D000457A6D07ED0FAD002C438C70047A64070C
-:10E4E000640F0C705178012908D1017A090705D50C
-:10E4F000032108A801750221017614E0022B1ED029
-:10E50000012B21D02F4B00216C3B049AD96751601D
-:10E510009160D16019467C310A4610325160417ACF
-:10E52000FB2211404172684600F086FE040021D0B3
-:10E53000012C20D02049244804F0C3FA1BE003201A
-:10E5400008A908750F76EEE70598000704D5C320E3
-:10E550001949800004F0B5FA1A4C0D211034E01C62
-:10E5600004F06FF9204610304460022008A90875B5
-:10E570000E94D8E7002669462046FFF701FC08A85C
-:10E58000007D002802D00DA8F5F7BEF9304617B07F
-:10E59000F0BDCB2008498000CCE5F0B5054697B02A
-:10E5A0000C460020694608700548064E2F78483E04
-:10E5B000017882680AE0000094E10000090200008E
-:10E5C000A0000020FC1900201F0300003B0004F005
-:10E5D0007DFB0BA8820724394A6977778D9AA800BA
-:10E5E0002B20694608730CA903A8FDF7A1FC00289D
-:10E5F00003D05349534804F064FA53490D9804F08A
-:10E600003DF952480160524869680160AA68426059
-:10E6100001910820694608708CE08A0610D5DF2237
-:10E620001140017003202070484810304168A160FB
-:10E630004068002802D00020207177E00120FBE72D
-:10E64000102256E02B2069460873404903A85C3924
-:10E65000FDF76EFC002804D03A483949293004F00F
-:10E6600030FA04201BE02A206946087303A8102210
-:10E670000230696804F088F807A810220230A968FF
-:10E6800004F082F8314903A85C39FDF751FC0028F9
-:10E6900004D02C482A493A3004F013FA052020709F
-:10E6A000666043E02A79002A02D0012211430170FA
-:10E6B00005206946087028798880A868029039E0AA
-:10E6C000106B4023018819430180106C6968102287
-:10E6D00004F05AF82AE0FB22114001700620694636
-:10E6E0000870A96868680291019023E0CB0703D005
-:10E6F0000222114301704AE70F2020701720207179
-:10E70000906CA06012E0537A9B0706D0126B44789D
-:10E710001388FF3401342343138004221143017012
-:10E7200004E0084806497C3004F0CBF968460078DC
-:10E730000028E0D06846F5F7E7F828E701207047A1
-:10E7400094E100004D03000040420F000C1A00202D
-:10E75000AC00002070B504780D460646230004F096
-:10E76000B5FA0B1C181C1C1C1C07181C1C181C00C0
-:10E770000021052001F013FDB068007805280CD0B9
-:10E78000FA480022008811468300052001F065FC4C
-:10E7900003E00021052001F002FD002D0ED0002035
-:10E7A000287029463046FFF7F8FEF1482978005DC9
-:10E7B000884201D1032070BD022070BD0021304687
-:10E7C000FFF7EBFE002070BD30B5E8494B68497A91
-:10E7D0000A0111460C315C5C032C0CD00446002568
-:10E7E0002034257125725C5CA500AA18641C5C5459
-:10E7F0009850032030BD062030BDF0B504462646B3
-:10E8000020360D463279012008218FB0002A0CD025
-:10E81000012A21D0022A2BD0032A04D12A78052AE2
-:10E8200001D1297000200FB0F0BD01203071606867
-:10E8300000280AD0A0690170616841602169816087
-:10E840006169C160FFF7C0FFEDE70720287020690C
-:10E8500068606069A86009E029780729E3D102208F
-:10E86000307105202870C248203868600320DAE73C
-:10E8700029780529D7D1A08910280AD9103880B263
-:10E88000A081A1681023091803A86A6800F033FE6C
-:10E890002DE0102804D0C1B20BAA1020A76809E00F
-:10E8A00010232269A16817E0491EC9B2401EC0B2F8
-:10E8B0007B5C13540029F7D100280AD0401EC0B257
-:10E8C00080211154002102E0401EC0B211540028E2
-:10E8D000FAD1626910230BA907A800F00CFE1023DF
-:10E8E00007A903A86A6800F006FE0320307160687B
-:10E8F000019003A8029005206946087029466846E1
-:10E90000FFF728FF8FE7F0B5044626460D46203670
-:10E91000317901208DB000290BD0012938D002298E
-:10E9200005D12978052902D10920287000200DB0D1
-:10E93000F0BD217D6846CA07D20F02738807C10F58
-:10E9400068460174012203A905A800F0CCFD04A9C2
-:10E95000012205AF481D00F0C6FD0722B81CE16882
-:10E9600000F0C1FD07A807220130216900F0BBFDBE
-:10E970006068019009A80290102305AAA16800F020
-:10E98000BAFD01203071052168460170294621E059
-:10E9900029780529CBD1062203A8E16900F0A3FD5F
-:10E9A00004A806220230A16900F09DFD042106A8FA
-:10E9B00000F091FD6068019007A80290102303AA5F
-:10E9C000696800F098FD02203071052069460870E2
-:10E9D00029466846FFF7BEFEA9E7F0B5074685B0B1
-:10E9E0000C460020694608703E466248203632795F
-:10E9F0008179133801250078130004F067F9180DA8
-:10EA0000FEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EF9E
-:10EA1000EEEDECEBEAE9E8E7B968039100291BD0D9
-:10EA2000012269460A7003220A710A224A71396971
-:10EA30000291397900297DD0039A1278002A7AD080
-:10EA40000C2A78D2130004F041F90BF009F0354D8F
-:10EA50008498B1F2EEEDF0000020BEE30021062024
-:10EA600001F09DFB3879072866D1424D133D287887
-:10EA7000022802D000287FD101E0002028700398EE
-:10EA80000079C11F0A2901D30A249AE16870394824
-:10EA90000722C01F039900F026FD01203071287065
-:10EAA0000220694608703348801F01903869401C75
-:10EAB00002903BE211293DD12E4D133D0228DAD1BF
-:10EAC00068686978007A884201D9062479E1039957
-:10EAD00026481022491C303800F005FD032028701C
-:10EAE000022046E11129E6D1224C133C0428C2D170
-:10EAF0000520207003991D481022491C203800F081
-:10EB0000F2FC062030717869032101706268516857
-:10EB1000416016492039816021460C31C160C91D10
-:10EB20000161017D537A49084900DB07DB0F194376
-:10EB3000017502E064E34AE387E1D3688361FD2362
-:10EB40001940537A9B07DB0F5B001943017511696C
-:10EB500079E10229AFD1002868D005206946087103
-:10EB60000398407848713869029045E3601A0020A4
-:10EB70004C2D0100C700002073E011299BD1F84CF7
-:10EB800006286ED1A0680399406B1022491C00F042
-:10EB9000AAFC0620694608703869029000200871B6
-:10EBA00001466846FFF7D6FD072058E00B299AD1A9
-:10EBB000EB4C07287ED1A0680399C06A0222491C49
-:10EBC00000F091FCA0680822006B17E00EE10AE358
-:10EBD000F3E2D3E2B9E2AEE28EE265E24FE248E26E
-:10EBE00028E2FDE1E7E1D0E1C6E1BFE1ADE16DE1A1
-:10EBF0004AE12BE1DCE0BFE0B0E076E00399C91C1C
-:10EC000000F071FC0621684601703869029000210D
-:10EC100068460171FFF79EFD20461330417949088F
-:10EC200049003EE041E01DE001E05CE0E2E2112944
-:10EC300090D1CB4C08283DD1A0680399806B10225D
-:10EC4000491C00F050FC06206946087038690290A3
-:10EC50000020087101466846FFF77CFD09202070FE
-:10EC6000BDE227E0082989D1BD49092822D10398AE
-:10EC700042788868C16B0A700399006C0622891C6F
-:10EC800000F031FC062168460170386902900021CD
-:10EC900068460171FFF75EFDB14813304179FD22EE
-:10ECA0001FE041714FE230717EE01129C0D1AC49C3
-:10ECB0000A2801D0082484E088680399406C102257
-:10ECC000491C00F010FC062168460170386902906A
-:10ECD000002168460171FFF73DFDA14813304179DD
-:10ECE000FB221140DDE707246BE0217802297DD16A
-:10ECF0009B490128FBD162684A6014780846002CC1
-:10ED00005DD106216A46117039690291072111719E
-:10ED1000029902240C70CA785207520FCA704B79BC
-:10ED20005B075B0F4B718B795B075B0F8B71D207B6
-:10ED300001D18A714A7105460A794078824200D22F
-:10ED40006A7087480722133000F0CDFB00202C703A
-:10ED5000307101466846FFF7FDFC40E22178042946
-:10ED6000C5D1032871D108227E48616800F0BBFB41
-:10ED7000032030710420E3E121780429B7D1784FD2
-:10ED80000328B4D1774808220830616800F0ABFB53
-:10ED90000420307178684168002907D00321217070
-:10EDA000002121714068A060032531E20320C7E102
-:10EDB000207803289BD1207900281BD00446002C02
-:10EDC00014D0062168460170386902900221684615
-:10EDD0000171029805210170447000216846FFF717
-:10EDE000B9FC012168460170042100E0A2E1017133
-:10EDF000447105E25A49A06849680028486001D179
-:10EE000059484860052030717869032202704A68C9
-:10EE10004260544A8260524A0C32C260D21D026182
-:10EE2000027D4B7A5208DB075200DB0F1A43027552
-:10EE3000CB688361FD231A404B7A9B07DB0F5B0095
-:10EE40001A4302750969C16194E1F2E02178092948
-:10EE500086D14349032891D10420087006206946D1
-:10EE6000087038690290112008710298032101701E
-:10EE7000401C1022616800F036FB00216846FFF755
-:10EE800069FC00203071AAE12178092992D1052876
-:10EE900090D13449626820391020401EC0B20B5C0A
-:10EEA000145CA34203D000200424307189E70028B9
-:10EEB000F3D107203071786904210170284949682D
-:10EEC0004968416027498160103952E120780A2859
-:10EED000BED106216846017038690290112168464A
-:10EEE0000171029804210170401C10221D4900F09C
-:10EEF000FAFA00216846FFF72DFC194810214078E6
-:10EF00006268091AC9B2101800F0E5FA6068019049
-:10EF100013481330C178C9070FD08179002902D175
-:10EF20004079002809D00820307109E1214668465F
-:10EF3000DFE0054601287CD06AE1072069460870B9
-:10EF400000216846FFF706FC4BE120780E289DD192
-:10EF50000348616881604969407808700920A2E629
-:10EF6000B4000020501A00202C2D0100C80701D049
-:10EF70000A20E3E00F2096E620780F2859D1A068F8
-:10EF80003861207938730B20F3E620780428F5D116
-:10EF90006168F84C0822A068C06900F0A4FA0C204F
-:10EFA000307178690722B9690270A268D36843603A
-:10EFB000D2698260DDE020780D28DFD1ED4D6168F7
-:10EFC000A86802230269806900F095FA0D2030716B
-:10EFD000786906210170A9688A68426009695FE062
-:10EFE00020780C28CAD1E34D6168A8686A78006A65
-:10EFF00000F079FA6878AA681021091A126AC9B271
-:10F00000101800F068FA062168460170386902900D
-:10F01000112268460271029810220170A968401CF2
-:10F02000096A00F060FA00216846FFF793FB0E20A2
-:10F030005AE0A2E020780F287CD1062069460870AB
-:10F04000386902900B200871029C0720C94D20707E
-:10F05000A86802228169601C00F045FAA8680822AD
-:10F06000C169E01C00F03FFA00216846FFF772FB1F
-:10F0700080E7880701D5102060E0132013E6207890
-:10F080000F287AD1A0683861207938731120307147
-:10F09000786906210170B7498968C9684160B64935
-:10F0A0008160B549091D64E020780C2865D1B14D17
-:10F0B0006168A8681022406A00F015FA06216846C7
-:10F0C0000170386902901121684601710298082187
-:10F0D0000170A968401C496A102200F004FA00215E
-:10F0E0006846FFF737FB122030710921684601702E
-:10F0F0002146FFF72FFB1CE720780F281AD10621A5
-:10F1000068460170386902900821684601710298CA
-:10F1100009210170974989680A78D207D20F427095
-:10F1200049680622801C00F0DEF900216846FFF7DE
-:10F1300011FBA2E769E0480705D5142030710920CA
-:10F1400069460870F2E61620ADE520780F2853D105
-:10F15000A0683861207938731520307178690621EC
-:10F160000170844989688A684260096981608249BE
-:10F17000891DC160FFF728FBDBE63DE020780C2805
-:10F1800043D161687B4C1022A068806A00F0ABF923
-:10F1900006206946087038690290112008710298AB
-:10F1A0000A210170A168401C896A102200F09BF9B5
-:10F1B00000216846FFF7CEFAC5E76E481330407964
-:10F1C00000280ED0C10703D06A480621017006E06E
-:10F1D000800701D5082000E00A2066490870002554
-:10F1E00016E017205FE56349002805D00020307144
-:10F1F00008700A206946087068460078002804D024
-:10F2000000216846FFF7A6FA00255A480021017040
-:10F21000284605B0F0BD10B5584BFF245C7258600D
-:10F2200019721A80002204E0491EC9B20B010C3386
-:10F23000C2540029F8D110BDF0B5504E0546717A80
-:10F2400001208DB0FF2971D00127727A73681101F6
-:10F250005C180C31595C8900091F64586A70217868
-:10F260000B0003F033FD0B960709272C59818D4ABB
-:10F270004F5492002F7075E0214620310A91097990
-:10F280000120002902D001296DD10EE060680190B3
-:10F2900005A802900D21C01C00F01DF9032205A84D
-:10F2A000A16800F020F90A984EE02978052974D168
-:10F2B000062156E029462046FFF725FB69E0214656
-:10F2C0002031069109790120002902D0012964D159
-:10F2D0000EE06068019007A802900822E16800F043
-:10F2E00002F9082209A8A16800F0FDF806982BE0B1
-:10F2F0002978052951D10A2133E02946204600F01A
-:10F3000005F946E029462046FFF777FA41E029460D
-:10F310002046FFF762FB3CE0214620310591097948
-:10F320000120002903D0012937D116E056E060689A
-:10F33000019007A802900822A16800F0D4F80821E3
-:10F3400009A800F0C8F805986946077105200870FB
-:10F3500029466846FFF7FEF91BE0297805291CD1EC
-:10F360000B212970002018E02946204600F014F9EE
-:10F370000FE00000B4000020242D0100601A0020DE
-:10F380002946204600F038F903E029462046FFF7D9
-:10F39000D5F9002801D001280CD12562717A736853
-:10F3A00009010C315A5C521E1206120E5A5401D039
-:10F3B00003204AE70328FCD0737A726819011D0103
-:10F3C0000D312C46515C7172FF270D3417550C35E9
-:10F3D000545D002C02D0FF2903D173720DB0F0BD33
-:10F3E00021460C010D34145DFF2CF9D109010D31BA
-:10F3F0005354F3E770B5A24C0546607A21460346A4
-:10F400004A6811E0010108460C30105C08E0401E1B
-:10F41000C0B286008E199659AE4201D1042070BD4B
-:10F420000028F4D10D31505CFF28EBD19448002125
-:10F43000007A01E0491CC9B2884204D90E010C3699
-:10F44000965D002EF6D1884201D8052070BD0801D6
-:10F450000D30135461722846FFF7B6F9032806D021
-:10F46000617A626809010D31515C617270BD284694
-:10F470002830FFF7E1FE70BD10B504780123012CA0
-:10F4800014D10C78022C11D30B23137083785B07F3
-:10F490005B0F537002220A708088002805D0830019
-:10F4A00000221146062000F0D8FD0023184610BDAA
-:10F4B0000EB50022012105280AD0062807D168468A
-:10F4C00001700221017142710021FFF766F80EBD43
-:10F4D00068460170F6E7002202E0491EC9B24254B4
-:10F4E0000029FAD1704703E0521ED2B28B5C8354DC
-:10F4F000002AF9D1704730B505E05B1EDBB2CC5C69
-:10F50000D55C6C40C454002BF7D130BD3EB50446E9
-:10F5100020300D4602790121002A02D0012A39D17A
-:10F520000EE06168019157490291012101710520A6
-:10F530006946087029466846FFF70CF9014629E03C
-:10F540002878052826D169681022A06800F087F87D
-:10F550006868C07B000606D54A4AA06810231032AE
-:10F560000146FFF7C8FF1022A168E06800F077F8B5
-:10F57000A068C07B000606D5424AE068102310321E
-:10F580000146FFF7B8FF07202870A0686860E068B0
-:10F590000021A86008463EBDF0B5044626460F4649
-:10F5A00020363179012089B0002909D0012905D1FF
-:10F5B0003978052902D10C203870002009B0F0BD3F
-:10F5C000606803AD01900295022203A8A168FFF7CD
-:10F5D0008AFF0222A81CE168FFF785FF0C21281D85
-:10F5E000FFF779FF01203071052069460870394620
-:10F5F0006846FFF7AFF8E1E710B5034620331C7902
-:10F600000122002C04D0012C10D0022C25D11EE0A8
-:10F6100001211971C16806220A70406848601948C2
-:10F62000801F8860801CC86008460CE00C780C2C99
-:10F6300013D102221A71C268052313704968516000
-:10F64000806890601046FFF7BFF8024605E0087832
-:10F650000B2802D10D2008700022104610BD10B5F5
-:10F66000002409E00B78521E5B0023430370401C0A
-:10F670000B78491CD2B2DC09002AF3D110BD00007E
-:10F68000601A00202C2D010070B50D46040012D028
-:10F69000002D10D02101284603F0D3F81022544940
-:10F6A000284603F071F8524801210838018044804F
-:10F6B0004560002070BD012070BD70B54C4E002427
-:10F6C0000546083E11E0716820014018817BAA7B45
-:10F6D000914209D1C17BEA7B914205D10C22294696
-:10F6E00003F025F8002806D0641C30888442EADB49
-:10F6F0000020C04370BD204670BD70B50D460600A9
-:10F700000AD0002D08D03A4C083C20886188401C63
-:10F71000884203D9042070BD102070BD3046FFF729
-:10F72000CCFF002801DB0F2070BD2088616800013C
-:10F7300040181022314603F027F82088401C208012
-:10F740002870002070BD70B514460D001FD0002C2D
-:10F750001DD00021A170022802D0102817D108E086
-:10F76000687829780002084311D00121A170108027
-:10F770000BE02846FFF7A1FF002808DB401CA07023
-:10F78000687B297B000208432080002070BD012097
-:10F7900070BD70B5054614460E000AD000203070CA
-:10F7A000A878012807D004D9114908390A8890425D
-:10F7B0000BD9012070BD002C04D028782070288837
-:10F7C000000A50700220087010E0002C0CD049682C
-:10F7D0000001411810391022204602F0D5FF287888
-:10F7E00020732888000A607310203070002070BDDC
-:10F7F000D8000020734909680160002070477149F2
-:10F8000008600020704701216F4A704B002803D028
-:10F81000012805D06E48704791630020187001E000
-:10F82000D1631970002070476A4901200860684858
-:10F83000801C70470422684B6649002805D05A6036
-:10F84000086901221043086108E008694008400087
-:10F8500008619A605C490020C031886000207047D0
-:10F860005C490622002808D0012809D002280DD0C2
-:10F8700003280FD05648401C70470869904302E0A7
-:10F8800008699043801C0861002070470869904314
-:10F89000001DF8E708691043F5E74E494A6A02433C
-:10F8A0004A62002070474B494A6A82434A620020FC
-:10F8B00070474849496A0160002070474549CA6954
-:10F8C0000243CA61002070474249CA698243CA6143
-:10F8D000002070473F49C96901600020704730B57A
-:10F8E0000546002072B601463A4A384C4032002D97
-:10F8F00011D00123012D0CD0022D02D0072062B6B9
-:10F9000030BDA3706478002C01D09363F7E7916356
-:10F91000F5E7A170F9E7A170F9E72F4904208860A5
-:10F9200029490020C03188602849012008702B49EE
-:10F930000A688023120A12021A430A6028490860E2
-:10F94000704722480078704770B5EFF31080C50704
-:10F95000ED0F72B61D4C6078401C0006000E607002
-:10F9600003D120A1CC2003F0ACF86078012806D1A7
-:10F97000A078002803D01749012040318863002D6A
-:10F9800000D162B670BD70B5EFF31080C507ED0F02
-:10F9900072B60E4C6078002803D112A1DC2003F06F
-:10F9A00090F86078401E0006000E607006D1A078C6
-:10F9B000002803D00749002040318863002D00D182
-:10F9C00062B670BD0004004040000040E800002026
-:10F9D00004200000000500400003004000E400E0B7
-:10F9E00000E100E07372635C736F635F706F776553
-:10F9F000722E63008107C90E002808DA0007000F85
-:10FA000008388008B94A80008018C06904E080087E
-:10FA1000B74A800080180068C8400006800F704711
-:10FA2000B44948788978884201D3401A02E02122FB
-:10FA3000511A0818C0B27047AE4923314878897806
-:10FA4000884201D3401A02E02122511A0818C0B29C
-:10FA50007047A849463148788978884201D3401ACE
-:10FA600002E02122511A0818C0B27047A04810B510
-:10FA70000C300168FF22120291430122D20311438C
-:10FA800001609C49002023314870887023394870F8
-:10FA90008870463148708870974801F0FCFD9648A0
-:10FAA000401C01F0F8FDF2F723FE00F015F910BD3F
-:10FAB00020207047B4E770B50C4605460026FFF7D6
-:10FAC000AFFF8C49A04214D30A46203A00232046B7
-:10FAD000641EE4B200280BD08878105C2870887807
-:10FAE0006D1C401CC0B288702128F0D18B70EEE7ED
-:10FAF000012600F0F1F8304670BD202070479BE7EA
-:10FB000070B50C4605460026FFF796FF794923316C
-:10FB1000A04214D30A46203A00232046641EE4B2D1
-:10FB200000280BD08878105C287088786D1C401CE9
-:10FB3000C0B288702128F0D18B70EEE7012600F06A
-:10FB4000CBF8304670BD202101700020704710B501
-:10FB50000446FFF77EFF2070002010BD70B50C46F4
-:10FB60000546FFF776FF63494631A04215D30A46A2
-:10FB7000203A00232046641EE4B200280BD0887887
-:10FB8000105C287088786D1C401CC0B288702128D9
-:10FB9000F0D18B70EEE7002400E0584C00F09CF8A8
-:10FBA000204670BD70B50C460546212904D9FF20BA
-:10FBB00053A1473002F085FF4C484068103840B2EE
-:10FBC000FFF718FFC6B20D20FFF714FFC0B2864240
-:10FBD00007D2FF204AA14D3002F073FF01E0F2F797
-:10FBE000C7FD21462846FFF766FF0028F7D070BD05
-:10FBF000F8B5404E07462336B1787078212200F0E0
-:10FC000060F8354623353B4C00280ED0A17860784B
-:10FC1000212200F056F8002814D0A9786878212213
-:10FC200000F04FF800281AD025E032497078C91C3E
-:10FC30000F547078401CC0B2707021281BD1002076
-:10FC4000707018E02B49607820390F546078401CA0
-:10FC5000C0B2607021280ED1002060700BE02549F1
-:10FC6000687826310F546878401CC0B2687021282B
-:10FC700001D100206870B1787078212200F021F85D
-:10FC800000281DD0A1786078212200F01AF8002801
-:10FC900016D0A9786878212200F013F800280FD038
-:10FCA000F2F748FD144801F0FEFC012149038842A7
-:10FCB00003D013A1C12002F004FF0F4801F00BFD97
-:10FCC000F8BD401C884205D0904201D1002901D0E6
-:10FCD000002070470120704710B5074801F0E3FC91
-:10FCE000002801D1F2F715FD10BD000000ED00E085
-:10FCF00000E400E08C1A0020EB0000200720000048
-:10FD00007372635C736F635F72616E642E63000075
-:10FD100010B5284801F0BFFC002803D026A11D2003
-:10FD200002F0CFFE2348401C01F0B5FC002803D0B0
-:10FD300021A1212002F0C5FE10BDF1B5224D6F6852
-:10FD400001261C4801F0AFFC1A4C002803D1002604
-:10FD5000601C01F0C0FC1D4A1D490120506000BF1D
-:10FD600000BF00BF00BF00BF00230B604B60009BC3
-:10FD70006B60106000BF00BF00BF00BF00BF08681D
-:10FD8000002802D148680028F9D048680028E4D14A
-:10FD9000002E04D06F60601C01F085FC07E0601C41
-:10FDA00001F081FC0028D3D1024801F094FC00202E
-:10FDB000F8BDC2E7ED0000207372635C736F635F90
-:10FDC0006563622E6300000000E5004000E0004033
-:10FDD00000E1004030B5EFF31081CC07E40F72B6BC
-:10FDE0001D4A116910230D461D431561002C00D1D9
-:10FDF00062B61A4DC406E40E0120A0402C680442ED
-:10FE00000DD0C8060AD4EFF31080C007C00F72B639
-:10FE1000116999431161002800D162B630BD20BF3D
-:10FE200040BF20BFEAE70E4908784A78401CC0B2BC
-:10FE3000904200D008707047084A094820BF40BF70
-:10FE400020BF4178037843701368002B02D10378F8
-:10FE50008B42F3D00020704700ED00E000E200E0AC
-:10FE6000EF000020FEB5F44C07466068FF213E011C
-:10FE700081552178FF2913D00901083141583246B4
-:10FE8000491E083209020192090A805800F0CBF994
-:10FE9000002802D02478254615E06168207888552E
-:10FEA0002770FEBDE448426801981158280100906F
-:10FEB0000830105800F0B7F9002806D1DE482C466B
-:10FEC000416800980D5CFF2DECD1DB4821014068B2
-:10FED00085554754FEBD70B5D74A04460020157AB3
-:10FEE00053680AE00201561C9E5DA64203D10C3203
-:10FEF0009A588A4204D0401CC0B28542F2D8FF20F2
-:10FF000070BDF8B5CC4F3E7801F042FB0146FF2EA4
-:10FF100071D03401254678680835405900F083F9DE
-:10FF200002280CD97868405901F025FB01F030FB1C
-:10FF300001467868405900F076F902285BD8BE493E
-:10FF40004868025D0A70A11C425C002A0CD0521E57
-:10FF5000425441590122D20589180902090A415126
-:10FF60003046FFF77FFF30E0631CC25C0092221D29
-:10FF700094468258002A10D001239B029A420FD93E
-:10FF80009205920D43595703DB191B021B0A43517B
-:10FF90006346C3589A1A920A09E0FF21C1540AE045
-:10FFA000435952039A181202120A42510022425433
-:10FFB0003046FFF757FFA0480C344168C2680098EC
-:10FFC000095980001258009890479B4C2078FF28D0
-:10FFD00011D0000161680830085801F0CCFA01F036
-:10FFE000D7FA01462078626800010830105800F006
-:10FFF0001AF9022886D3F8BDF8B51C4615460E46F8
-:020000040001F9
-:100000000746FF2B03D38DA1D12002F05AFD8A4869
-:10001000FF21C760456004720674017000224270BF
-:10002000104604E00201521C401CA954C0B2A04278
-:10003000F8D3F8BD70B5804C06466578207C8542C3
-:1000400003D37EA1E42002F03CFDE068A900465005
-:100050006078401C6070284670BDFFB581B01D46B9
-:10006000FF2401F095FA744F064679780198814291
-:1000700003D872A1F22002F024FD6F480021037A18
-:10008000406810E00A019446521C825CFF2A25D089
-:10009000019FBA4205D162460C328758029A9742B4
-:1000A0001ED0491CC9B28B42ECD8FF2C18D02101BC
-:1000B0004A1C019B83540B460C33029AC250039B8B
-:1000C0005D4F0022012B0ED00B1DC25001239B025D
-:1000D0009D4216D9AA05920D08D008E00C46E0E72B
-:1000E000FF2005B0F0BD0B1DC550EFE71A465303C6
-:1000F0009B190E461B0208361B0AAA1A8351920A44
-:1001000009E0002D00D101256B039B191D022D0A6A
-:100110000B460833C550891C42543D463E78204664
-:10012000FFF7A0FE2878B04214D0000169680830BB
-:10013000085801F020FA01F02BFA29786A680901C1
-:10014000083152580146104600F06DF8022801D2DD
-:10015000FFF7D7FE0198C4E770B50C46054601F0DD
-:1001600017FA064621462846FFF7B5FEFF2814D0A9
-:10017000314D04012046696808300858314600F0C6
-:1001800052F80121090340186968A41C095D400B5D
-:10019000002901D08902081870BD002070BDF3B598
-:1001A00081B00F460198FFF796FEFF282AD0224E15
-:1001B0003578726829460C4604E0844205D025460D
-:1001C0002301D45CFF2CF8D11CE0FF2C1AD0A542EF
-:1001D0001CD10801105C3070FF2815D000010830D8
-:1001E000105801F0C8F901F0D3F90146307872686F
-:1001F00000010830105800F016F8022806D2FFF768
-:1002000080FE03E00020FEBD01F0BDF939460198F3
-:10021000FFF7A2FF22017168FF23541C0B558A5C73
-:100220002B01CA54FEBD401A00020121000AC90573
-:10023000884200D900207047D81A00207372635C8E
-:10024000736F635F74696D65722E6300F0B500248F
-:100250001C4A01211C4B0803546018601B4B1C6096
-:100260001B4C20601B480469E443E406E61704695C
-:10027000761C10252C430461174C6160174D2960D2
-:1002800000E020BF1F68002FFBD0002E03D10769BC
-:100290001026B743076190688005906801D5104A21
-:1002A00010436960A160002119600121084A090317
-:1002B0001160F0BD10B50446FFF7C8FF20600020B4
-:1002C00010BD000000C5004080E100E000C100401A
-:1002D00080E200E000ED00E000C3004000C000400C
-:1002E00000FCFFFF70B51F490A68002A17D00023E1
-:1002F0001D4601244A68521C4A60092A00D34D60F9
-:100300000E792246B2400E6816420AD072B60B68C9
-:1003100093430B6062B649680160002070BD052000
-:1003200070BD5B1C092BE5D30FA1362002F0C9FB81
-:10033000F5E701201049800508607047EFF3108150
-:10034000CA07D20F72B601218140064803681943DB
-:100350000160002A00D162B6EBE70248002101608B
-:1003600041607047F40000207372635C736F635FD9
-:100370006576742E6300000000E200E00120810732
-:100380000860704701208107486070471048C068C6
-:10039000C00700D0012070470D488068C00700D01A
-:1003A000012070470A484069C00700D0012070470B
-:1003B0000748C069704706498A69D20306D589692A
-:1003C0008907890F814201D10120704700207047C1
-:1003D00000040040F8B5FE4C607A217A88421BD0B8
-:1003E0000126FC4D0027207A215C14200A46424356
-:1003F0005019037C052B10D0062B19D0072B23D0C6
-:10040000437C012B2BD02120F3A1400102F059FBAA
-:10041000617A207A8142E6D1F8BD0674207A401CC8
-:100420004007400F2072491CC8B2AA58022109E0B7
-:100430000674207A401C4007400F2072491CC8B245
-:10044000AA5803219047E3E70674207A401C40072E
-:10045000400F2072491CC8B2AA580821F2E747741D
-:10046000207A401C4007400F2072491CC8B2AA588D
-:100470000721E7E770B5DB4D05202871DA48002435
-:1004800044700470183044720472D84801F003F9C3
-:10049000D7480474AC71D748611E41606C70847792
-:1004A000C4772C704477D448022104704470D34838
-:1004B000047528300470491EFAD10120F2F7DAF9E8
-:1004C0000020F2F7D7F90120A870F2F765F8CC48C0
-:1004D000F2F774F8CB4C2070CB48F2F76FF86070ED
-:1004E000F2F76CF970BD10B5F2F793F9C54C2078AE
-:1004F000F2F782F86078F2F77FF8BA4CE0780028DB
-:1005000005D0FFF740FAF1F7A8FE0020E07010BD1B
-:1005100070B5B44CA078002805D0FF20AEA1B23051
-:1005200002F0CFFA70BDA079002804D1FF20AAA163
-:10053000953002F0C6FA0125A5700026A671207933
-:10054000042114225043A34AAA4C80180174606805
-:10055000401C04D0481F60600120F2F78BF9002096
-:10056000F2F788F9F2F76CF9F2F773FAF2F7F8FAA2
-:10057000A1480078022804D0032804D1E07F002895
-:1005800001D0A57700E0A677F2F74FFA70BD0346D9
-:1005900090490420142242435218203A127F002A24
-:1005A00004D0401E0006000EF4D1704714224243CE
-:1005B00051180A46403AD362012220390A7770471F
-:1005C000012805D0032805D1002903D10020704758
-:1005D0000029FBD010B4874C00236377864A00289B
-:1005E00090700CD002280AD007291AD20B007B4445
-:1005F0001B79DB189F441505070D0F111300D370ED
-:1006000003E01B2000E03A20D0700120607710BC8E
-:1006100070475820F8E77720F6E79620F4E7B520F2
-:10062000F2E710BC0020704710B573484078F2F72D
-:1006300014FA80B210BD411E1422504310B5654A11
-:100640008418203C032902D8207F002803D162A10E
-:100650006E4802F036FA207F012804D001205EA106
-:10066000400202F02EFA0020207710BD70B55E4CDB
-:1006700060782178884201D1012500E00025F2F759
-:1006800088F9F2F7EAF961782278914201D10121E3
-:1006900000E00021A942EBD170BDF7B58CB0064651
-:1006A0000D98401EC1B20090029114204143494868
-:1006B0000D1828460195007C2D1D07282BD1444F8D
-:1006C00000203C7A797AA14222D03A5D02998A428E
-:1006D00007D1002803D040A14D4802F0F2F90120D3
-:1006E00001E0002804D0611C4907490F795C3955A5
-:1006F000641C6407797A640FA142E6D1002807D010
-:10070000787A002802D0787A401E00E007207872BC
-:100710000199012008740099324C0D9803290FD8D3
-:10072000142148432B4940182038007F002807D067
-:100730000198007C012807D00E98C07A012807D0C4
-:1007400025A1344802F0BDF90E98C07A012839D1AC
-:100750000198204B007C02280FD01D4C607A217A32
-:10076000401C4007400F884203D11BA12A4802F0D9
-:10077000A8F901990120487434E12079029A0146D0
-:10078000904206D0014614277843C018807C9042DE
-:10079000F8D12279824208D1217914225143C91813
-:1007A000897C21710121617107E014224243D21832
-:1007B00014277943927CC9188A7414220521504366
-:1007C000C01881740E98007A06283BD226E00000FB
-:1007D000D41B0020EC1A00207372635C72656D2ECE
-:1007E00063000000001C0020BC1B0020071C002030
-:1007F000C01B0020E01B0020FE000020E81A0020A3
-:1008000003FF0000FC000020D5030100FF010000F1
-:10081000450200004E0200005B02000003007B4422
-:100820001B79DB189F44020C0A08060400200FE025
-:10083000B4200DE073200BE0322009E00A2007E02D
-:10084000062005E0FF20F749443002F03AF9002085
-:1008500003900E98C07A02280E9824D0807A2872CD
-:100860000E9803990068401A28600E99097A0029A9
-:1008700061D00221401A0002000A28600E98016827
-:10088000406808186860C01D0002000A68600E9881
-:100890000627407AA8720E98007A6872FFF776FDF4
-:1008A00000284AD053E04168007A00282DD0022069
-:1008B00009180398C01D09182079052827D0DA489F
-:1008C000039A4078904200D81046801A4218D748C0
-:1008D000921D8446207914235843D54BC018436891
-:1008E00080689B1B801B1B0200021B0A000A9A42A5
-:1008F00004D8CE4A934201D8604508D92079142201
-:100900005043CB4A801880680CE00420D0E7C648EA
-:10091000039A4078904200D81046801A8019801DB2
-:100920000002000A286040180002000A68600020E7
-:1009300028726868A7E704219CE7687A032806D232
-:10094000002804D0039838210F1A32200390B649AA
-:100950000878012801D003280AD1487803998842F1
-:1009600006D9B449C97F002902D10399401AC71991
-:100970002968AE488B1B69681A02891B0591090218
-:10098000120A090A97421ED8074682421BD8B9426A
-:1009900019D82079012205282FD0002001210491A7
-:1009A00021799C46059B14225143A14A89184A6823
-:1009B000921B9A4203D28A68921B62452BD800226E
-:1009C0000AAF3A5430E0019905209B4C0874607AD4
-:1009D000217A401C4007400F884203D197A19A48D2
-:1009E00002F06FF8617A02986054607A401C400708
-:1009F000400F607200200FB0F0BD019802230299F1
-:100A000003742379052B00D02379837421716271DB
-:100A100001200FB0F0BD01220AAF3A548A7BAF7AB1
-:100A2000BA4201D800220492897C401CC0B2052938
-:100A300003D0049A002AB6D1A1E00498002877D008
-:100A400025790520002704900AA8C05D012827D039
-:100A500004951420454376487F1C2818857CFFB2F6
-:100A6000052DF1D1019802230374714F20790528D7
-:100A700053D025790520049001984068811B1420EB
-:100A80006843C0194268921B8A4262D92079A84201
-:100A90004FD1019902980B742279052A42D142E084
-:100AA0002079A8420BD121791420414360480818CD
-:100AB000807C2071012060710020207011E004987A
-:100AC000052803D15DA1614801F0FBFF28461421F0
-:100AD0004843574914234018827C049858434018CF
-:100AE0008274284614214843514906224018027452
-:100AF0005148417A007A491C4907490F814203D184
-:100B00004EA1534801F0DDFF4B48417A4554417AEC
-:100B1000491C4907490F41729BE7227901990298C4
-:100B2000052A00D022798A7420710120607123E0A7
-:100B300025E00498052803D140A1464801F0C1FFF3
-:100B4000049814225043C019029981740198857445
-:100B500012E0807C052807D0049505468FD137A187
-:100B60003D4801F0AEFF21E014214D43E919029800
-:100B7000887401990520887401200FB0F0BD019898
-:100B800005212D4C0174607A217A401C4007400FEA
-:100B9000884203D129A1314801F093FF617A02987C
-:100BA0006054607A401C4007400F607200200FB014
-:100BB000F0BD70B50D460646294900242046891B24
-:100BC000A04103D21DA1274801F07BFF2649002048
-:100BD000491BA04103D219A1244801F072FF244A05
-:100BE00070190021821A8C4101D32249401870BD2E
-:100BF000F8B5401EC0B2142148430D494518687B22
-:100C000006283DD203007B441B79DB189F44023643
-:100C100034080604002067E0B4203AE0732038E08E
-:100C2000322036E0D8070100FE000020FFFF3F0021
-:100C3000EC1A0020E01B0020D41B00207372635CC0
-:100C400072656D2E63000000A3020000DE0200004A
-:100C5000E302000007030000170300001D0300006B
-:100C6000FF7F841E290300000020A1072A03000043
-:100C70000080841E00807BE10A200AE0062008E054
-:100C8000FF20FE49443001F01CFF697B0020002951
-:100C90002AD0022140186968002440180C21000263
-:100CA0006956000A002921DBF1F7D7FEF44A06460F
-:100CB0000C27EF570021101AA14103D2EF49F14848
-:100CC00001F0FFFEF0490020C91BA04103D2EB490F
-:100CD000EE4801F0F6FEEE4AF0190021821A8C412E
-:100CE00001D3EC494018F8BD0421D3E7F1F7B5FE74
-:100CF0000C21695600224018E149091AA241F2D29A
-:100D00004042F8BDF0B5074683B0E3480E46029076
-:100D100000F0C9FCE14C00282ED0E14D287C0028D1
-:100D200003D0E0A1E24801F0CCFE012028742F732B
-:100D3000DB4D30782872707868722A460A3229466C
-:100D40007068F1F794FE0A2028560F2804DD1F383A
-:100D5000A8722868401C28600021B0686A4600918B
-:100D6000117101AA6946F1F782FE6A460420105605
-:100D70000F2846DD012045E060782178401C4007BF
-:100D8000400F884203D1C7A1CA4801F09AFE60789B
-:100D90000101C94809180F73617809010D183078ED
-:100DA0002872707868722A460A3229467068F1F70C
-:100DB0005EFE0A2028560F2804DD1F38A872286816
-:100DC000401C28600021B0686A460091117101AA98
-:100DD0006946F1F74CFE6A46042010560F2801DDE3
-:100DE000012000E00020009940186860307BE87224
-:100DF0006078401C4007400F6070029800F06BFC68
-:100E000005E00020009940186860307BE872607847
-:100E10002178884224D0A9480579052D22D0F1F700
-:100E2000B8FD14214D43A64969180A7C042A17D03D
-:100E3000032A15D04B6889681B1A091A180209027F
-:100E4000A04A000A090A06280AD31346904207D886
-:100E5000994205D860782178884201D0F1F7E5FD04
-:100E600003B0F0BD607821788842F7D103B0F0BDBF
-:100E700010B50020F1F7EBFC10BD10B50120F1F723
-:100E8000E6FC10BDF8B5074602281ED08B4C207931
-:100E9000052803D183A18C4801F013FE0020A07027
-:100EA0000125A571207903211422854E5043801914
-:100EB0000174F1F7BFFD3800844F0BD001281FD01B
-:100EC00003286FD077A1824838E082480078F1F794
-:100ED00099FBF8BD65700020F1F7CCFC7968481CDF
-:100EE00004D0012300221846F1F7FAFC2079217979
-:100EF000401CC0B214225143725801219047F8BDE2
-:100F00000120F1F7B7FC607800280CD07868401C0D
-:100F100009D020792179401CC0B214225143725863
-:100F200006219047F8BD387E01280AD0022812D049
-:100F3000032824D0042836D05AA1674801F0C1FD07
-:100F4000F8BD2078002804D000202070F1F777FD4C
-:100F5000FD77002024E0E078002804D1FEF7F4FCBF
-:100F6000F1F752F9E57020792179401CC0B21422C2
-:100F7000514372580021904700203876F8BD397AE5
-:100F800038680123411A00221846F1F7A9FC20789D
-:100F9000002804D000202070F1F751FDFD770220D9
-:100FA0003876F8BD1AE0397F38680123411A0022EB
-:100FB0001846F1F795FCE078002804D1FEF7C4FC50
-:100FC000F1F722F9E57020792179401CC0B2142292
-:100FD00051437258002190473D76F8BD2079217920
-:100FE000401CC0B214225143725805219047F8BDED
-:100FF00010B5324C2079052803D12AA1374801F0D9
-:1010000060FD20792179401CC0B2142251432C4A42
-:1010100052580421904710BDF0B583B00526F1F772
-:10102000B8FC054629484068401C03D01DA12C4847
-:1010300001F047FD214C21792A480190052956D01D
-:101040002179142041431E480918097C04294ED0F7
-:101050002179142251430818007C03287ED001987E
-:10106000184902684068521B401B12020002120A13
-:10107000000A062A72D30B468A4235E03C0C010076
-:10108000FF7F841E290300000020A1072A0300001F
-:101090000080841E00807BE1071C0020BC1B002018
-:1010A000C01B00207372635C72656D2E63000000CC
-:1010B0006E0300005F0300003C1B0020001C0020AA
-:1010C000EC1A0020FFFF3F00A2030000E01B0020FD
-:1010D000F3030000FC000020E7030000FA03000017
-:1010E0002B040000EC1B002038D8984236D8002092
-:1010F00060702079052808D1F648407F002804D088
-:10110000F548C1784170817801702079052814D0A4
-:10111000207914214843F1494018007C04280CD15F
-:1011200026792279012014235A4352181074227907
-:101130005A435118897C21716071E94F7878397868
-:10114000884215D038780101E6480A183978090133
-:101150000818017B2846FFF7A0FA00E071E1387813
-:10116000401C4007400F3870787839788842E9D1C0
-:10117000DD4F387C002806D0397B3A462846FFF7F9
-:101180008CFA00203874052E1BD0142031464143C0
-:10119000D2480818017C012913D10721D34F0174CB
-:1011A000787A401C0840397A884203D1D0A1D348CC
-:1011B00001F087FC787A3E54787A401C4007400F53
-:1011C0007872207905287DD0607900287BD00020B6
-:1011D0006071217914204143C048BE4F0E18C849A0
-:1011E000B3687268F6688E604B600A60797D00298A
-:1011F00010D0022621791422B84851430818407BA8
-:10120000062815D203007B441B79DB189F44040E8B
-:101210000C0A08060426EDE700200FE0B4200DE0DC
-:1012200073200BE0322009E00A2007E0062005E0E9
-:10123000FF20AFA1443001F044FC00203872797DDA
-:10124000022901D001290FD1F96809184A1B12029D
-:10125000120A382A08D90320787532390802000AA0
-:10126000F860322038720AE0322808D2E07800288C
-:101270000ED1FEF769FBF0F7C7FF012007E0E07829
-:10128000002805D0FEF77FFBF0F7E7FF0020E070B5
-:10129000914A0621507838771278012A01D0032A22
-:1012A00006D1012222703A7A904201D9811A891D11
-:1012B000BA7F002A00D0891C2378002B01D1002A94
-:1012C00061D001E088E098E08C468E490091019958
-:1012D0000B6849685B1B491B09021B02090A1B0AB0
-:1012E00001919C451CD8874DAB4219D8019B0099B0
-:1012F0008B4215D8397A884223D9FB68421A9A1A48
-:101300001202120A101880190002000AFA603860EE
-:10131000002914D0032038760006000E3ED144E0A8
-:1013200000202070B877397A002925D0F868401855
-:1013300080190002000A3860022038762EE0012071
-:10134000E9E781420BD9FA68511889190902090A9B
-:101350003960002801D00420DDE70220DBE7002A05
-:1013600003D163A1684801F0ACFBF8688019000262
-:10137000000A3860002004E0F96889190902090AA6
-:101380003960387611E0387A00281DD0F9680818DD
-:1013900080190002000A386002203876F8680123BC
-:1013A000811900221846F1F79BFA2079142148434D
-:1013B0004A490C2240188256012300203968F1F76F
-:1013C0008FFAF1F7C1FB18E0F86880190002000AF3
-:1013D000386000203876E8E70120F1F74BFA00206A
-:1013E000F1F748FAF1F72CFAE078002805D0FEF77B
-:1013F000CAFAF0F732FF0020E070364DA87F0028CF
-:1014000004D0F1F71CFB0020E877A877687F00285C
-:1014100004D03148C178417081780170207800286B
-:1014200006D000202C49E8770978002900D12070E7
-:101430002E48417A007A814203D034484078F1F74F
-:10144000E1F803B0F0BDF0B5314C0746207983B028
-:10145000052803D126A12F4801F033FB2079142160
-:101460001E4E48438019007C032803D020A12A483F
-:1014700001F027FB174D6868401C03D01CA12748CA
-:1014800001F01FFB20791421484381190C200856D4
-:1014900000216A4600911171C01901AA6946F1F74D
-:1014A000E6FA6A46042010560F2801DD012000E00C
-:1014B000002000994018296840180102090A696053
-:1014C0006078002804D0012300221846F1F708FABA
-:1014D00003B0F0BDE01B0020FE000020EC1A00204D
-:1014E000BC1B00203C1B0020C01B0020D41B002084
-:1014F0007372635C72656D2E630000005C04000013
-:10150000EC1B0020FFFF3F00AE040000FC000020A9
-:10151000001C00200B0500000C0500000D0500005C
-:10152000F8B51D4D0A1A00242346551BA34106D3C6
-:10153000194E431A254600279E1BBD4101D2104675
-:10154000F8BD164E0025B21AA54103D2721C101A1E
-:101550004018F8BD114D0022EB1AA24104D26A1CBA
-:10156000511A08184042F8BD53200DA1000101F0A6
-:10157000A8FA0020F8BD10B5014601230022022080
-:10158000F1F7AEF910BD10B50220F1F773F910BDF7
-:1015900010B5F1F7FEF910BD0020A107FF7F841EF2
-:1015A0007372635C72656D2E6300000010B50146B6
-:1015B00020220A4801F0E8F808490020C8770846C8
-:1015C00010BD0749012048610648074A0168914259
-:1015D00001D100210160704770477047081C00204E
-:1015E0000005004004010020EFBEADDE064A107089
-:1015F0005170704704481C2201784171427001709B
-:101600007047704770477047080100207047704767
-:1016100070477047704770477047704730B5034652
-:10162000002002460DE09C5C2546303D0A2D02D389
-:101630000020C04330BD0A25684330382018521CB2
-:10164000D2B28A42EFD330BD70B50D46144608E0E1
-:101650000A2101F013F92A193031203A641ED1779A
-:10166000E4B2002CF4D170BD10B5002310E0040AE0
-:1016700000020443A0B2CC5C44402006000F60404E
-:101680000407240C44402006C00C60405B1C9BB245
-:101690009342ECD310BD002101700846704701460B
-:1016A000002008707047EFF31081C907C90F72B6A8
-:1016B0000278012A01D0012200E0002201230370F8
-:1016C000002900D162B6002A01D000207047012015
-:1016D00040037047E7E7EFF31081C907C90F72B6FF
-:1016E00000220270002900D162B600207047F2E7A4
-:1016F0000348004703480449024A034B704700006F
-:10170000312B0100481C0020481C002010B5203857
-:101710000C46030001F0DAFA331B1F23272C313764
-:101720003C41474D5054585C606D71656974787CDC
-:101730008084888C9094989C9FA2A6AAAEB2B8BCD4
-:10174000C0C5CACFE9F0F3D3D7E0DBE4F8002068E6
-:10175000FFF7A1FFD6E02068FFF7A5FFD2E02068E1
-:10176000FFF7B9FFCEE0207840B200F0F3F9C9E00E
-:10177000207840B200F011FAC4E02078616840B2ED
-:1017800000F024FABEE0207840B200F034FAB9E06C
-:10179000207840B200F03FFAB4E02078217940B2DE
-:1017A00000F04AFAAEE02078616840B200F074FAC6
-:1017B000A8E000F080FAA5E0206800F084FAA1E03B
-:1017C000207800F099FA9DE02068FEF7BCF999E0D6
-:1017D0002068FEF7BCF995E021792068FEF7BEF994
-:1017E00090E02068FEF706F88CE02068FEF707F826
-:1017F00088E02078FEF707F884E0FEF715F881E02E
-:101800002078FEF717F87DE02078FEF729F879E0D8
-:101810002068FEF742F875E02068FEF744F871E0B2
-:101820002068FEF746F86DE02068FEF747F869E0AB
-:101830002068FEF749F865E02068FEF74BF861E0A4
-:101840002068FEF74CF85DE00846EEF77FFC59E0B3
-:10185000F0F7EDFC56E0F0F71AFD53E02068F0F7E2
-:1018600022FD4FE0206800F079FA4BE0206800F09C
-:101870007BFA47E0206800F07CFA43E02078A26819
-:10188000616800F07BFA3DE0207800F083FA39E0EF
-:10189000207800F08BFA35E02078616800F093FA48
-:1018A00030E02078616800F09AFA2BE02179207806
-:1018B00000F0ACFB26E02068FEF73FFA22E020684B
-:1018C000FEF710FD1EE02068FEF7F4FC1AE020464B
-:1018D00007C800F078FC15E0206800F0C0FC11E0BB
-:1018E0006168206800F0E2FC0CE0206800F04EFE29
-:1018F00008E009E003E0FFE700F061FE02E0206895
-:1019000000F079FE206010BD0120086010BD0000CD
-:1019100010B572B600F0E4F800280BD0EEF7C0FC6A
-:10192000FEF7E1FD00F039FB72490020C8628862D1
-:101930007149086062B6002010BDF3B50025012092
-:101940000007C06A81B0C0430006000E0AD16B4890
-:101950000168491C05D000686949884202D069487D
-:10196000FEBD012572B600F0BBF8002801D062B6BA
-:1019700088E0EEF701FCEEF797FC634C634A002128
-:101980002368CB40DB0720D00346CB40DB0718D1D0
-:101990004BB2002B07DA1E07360F083EB608B6001A
-:1019A000B618F66904E09E08594FB600F619366875
-:1019B0009B07DB0EDE4033069B0F012B05D0032B6C
-:1019C00003D062B64F48401EFEBD491C2029D7D324
-:1019D000019C01204F49230001F078F914222424AE
-:1019E0002424242424240B0D1012142016181A1C4D
-:1019F0001E2F002400E00124C86314E00224FBE74A
-:101A00000324F9E70424F7E70824F5E70924F3E7BA
-:101A10000A24F1E70B24EFE70C24EDE70524EBE7BC
-:101A2000072400E00624D06901210002000AC9074A
-:101A30000843D061002D04D009E062B60120000304
-:101A4000FEBD2C4D3448E862EEF72EFCA8622A4910
-:101A500032480860324902980860EEF725FC2146BA
-:101A600000F082FAFEF706FD00F04CFC00F0FEFAF2
-:101A70000198EEF7E3FB040062B603D0FFF748FFDE
-:101A80002046FEBD0020FEBD10B5044600F028F83B
-:101A9000002800D001202070002010BD21491848E6
-:101AA00008600020704710B50C46102808D0112897
-:101AB0000BD012280CD013280ED00120086010BDC6
-:101AC00061682068FFF739FF08E0FFF721FF05E0B4
-:101AD0002068FFF7D9FF01E0FFF7E0FF206010BDAD
-:101AE00005480E490068884201D101207047002056
-:101AF00070470000000500400401002000100010A5
-:101B0000004001000210000000E100E000ED00E0F4
-:101B100000E400E04000004000200000EFBEADDE29
-:101B200010010020000000208107C90E002808DAFB
-:101B30000007000F08388008814A80008018C069BB
-:101B400004E080087F4A800080180068C8400006D2
-:101B5000800F704710B5044600F0DBF8002813D062
-:101B60002046FFF7E1FFC0B200F0E1F800280DD0F9
-:101B70007549E2060B78D20E01209040002B08D068
-:101B80004A681043486006E0704810BD6F48401C2A
-:101B900010BD6F490860002010BD10B5044600F06C
-:101BA000B8F800280BD06849E2060B78D20E012065
-:101BB0009040002B05D04A6882434A6004E06348A5
-:101BC00010BD634980310860002010BD70B50D461E
-:101BD000044600F09EF800280BD05E480068E2063C
-:101BE000D20E01219140084000D001202860002041
-:101BF00070BD564870BD10B5044600F08AF8002844
-:101C000007D0E106C90E0120884052490860002033
-:101C100010BD4E4810BD10B5044600F07AF80028FB
-:101C200008D0E106C90E012088404A498031086089
-:101C3000002010BD454810BD70B50D46044600F0AB
-:101C400068F8002819D0284600F071F8002816D04E
-:101C5000A007C20EFF209040A907090E9140002C5A
-:101C600010DA2207120F083A9308354A9B009B1896
-:101C7000DA6982430A43DA610CE0344870BD3348C4
-:101C8000401C70BDA3082F4A9B009B181A68824312
-:101C90000A431A60002070BD70B50C46054600F07E
-:101CA00038F8002805D02846FFF73EFF20700020B6
-:101CB00070BD264870BDBFF34F8F21492648C860CC
-:101CC000BFF34F8FFEE770B51F4C0546217801200A
-:101CD00000290ED1207072B600F06EF91C4E8036CD
-:101CE00031688143616000F067F9C043306062B6DB
-:101CF00000202870002070BD13490A78002A06D001
-:101D0000002804D1124A48681060002008700020A2
-:101D1000704710B50446202805DA00F04DF901217E
-:101D2000A140084201D0002010BD012010BD0128B3
-:101D300003D0032801D00020704701207047000025
-:101D400000ED00E000E400E01401002001200000AC
-:101D500000E100E000E200E00400FA05364909680D
-:101D6000C9B20160002070473349C0B2486000200A
-:101D700070473149C0B2886000207047082801D3FD
-:101D80002E4870472C4BC0001033C01801604260D1
-:101D900000207047022802D32848401C7047284979
-:101DA000C00040180121016000207047022802D3C2
-:101DB0002248401C70472249C000091D40180121DB
-:101DC000016000207047022802D31C48401C704765
-:101DD0001C4A80008018C9B20160002070470228A8
-:101DE00002D31648401C7047164A800080180068CD
-:101DF000C0B208600020704710B5FF200E49C043F4
-:101E000088600D4B082210330021D000C0180160FB
-:101E10004160521C102AF8D30A4B00208200D218CD
-:101E2000022801D3116002E01468E4B21460401C7F
-:101E30000428F3D310BD000000F501400820000085
-:101E400000F0014000F80140F8B504468007002585
-:101E50000126002804DA5A48C563C6630220844379
-:101E6000E00404D55748C563C6638014844360000A
-:101E700003D55548456080058443E00504D55348A3
-:101E8000C563C66380158443A00404D55048C56368
-:101E9000C6634014844360042704C00FF90F8842CE
-:101EA00003D04CA1612000F00CFEB80F0AD04E49BF
-:101EB000CD634E48C563C563CE63C663C663032066
-:101EC0008003844320050AD5494FFD632F20EEF798
-:101ED0006BF9FE632F20EEF767F9F8148443002CAA
-:101EE00003DAFFF789FF640064084248044203D024
-:101EF00038A1902000F0E5FDF8BDF0B500210A46BC
-:101F0000FF230446CC40E4072AD04CB2E606F60E86
-:101F10000125B540384E3560384E3560002C11DA59
-:101F200025072D0F083DAE08354DB6007619F56929
-:101F3000A407E70E1C46BC40A5431446BC402543FD
-:101F4000F5610DE0A6082F4DB60076193568A40797
-:101F5000E70E1C46BC40A5431446BC4025433560F3
-:101F6000491C2029CDD3F0BD70B5274C0D4620600B
-:101F7000FFF76AFF2068FFF7C0FF2846F0F720FA56
-:101F8000FDF7C6FEFDF772FDFFF736FFFDF7C5FC56
-:101F9000F0F702FB00F06AF870BD10B51A4C20682B
-:101FA000FFF752FF2068FFF7A8FFFFF725FFF0F7C4
-:101FB0008CFA0020206010BD1348006870470000B4
-:101FC000C01F0040C0CF004000E50140C08F00406E
-:101FD000C0DF00407372635C736F635F636F6E6634
-:101FE00069672E6300000000C0EF0040C0FF0040A2
-:101FF000C0BF0040FEFF0FFC80E100E080E200E097
-:1020000000ED00E000E400E01C01002070B50024B9
-:1020100002460D4620462146002A1ED0012A04D041
-:10202000022A04D0032A1ED103E0012002E002208C
-:1020300013E003202B0000F049FE07160507090BEB
-:102040000D0F1600012108E0022106E0032104E043
-:10205000042102E0052100E00621FEF7B1FA002884
-:1020600001D0204670BD0724FBE700009B490020FB
-:10207000087088709A490870704770B5974C0E4682
-:102080006178884203D097A15A2000F01AFD0325F9
-:10209000330000F01BFE0953063030535353534AAC
-:1020A00053002078022803D08EA15E2000F009FDA5
-:1020B0002570A078022802D0012804D014E0A0687E
-:1020C00000F004FB10E000250BE0E0680168A06868
-:1020D00000F00DFBA068001DA060E068001D6D1CF5
-:1020E000E06020698542F0D30020A070FEF710FA6E
-:1020F0000420207070BD2078022803D079A17620BA
-:1021000000F0DFFC60687649401C6060032801D85D
-:102110004D7003E0062806D80220487070496078A8
-:10212000FEF7F0FD70BD032003E0A0780028FAD18F
-:102130000220FEF703F900F0C7F870BD69A19E20E8
-:1021400000F0BFFC70BD70B50546644C00206060B7
-:102150002078012803D063A1A52000F0B2FC6049DB
-:10216000022008738D6003224A7020706078FEF7A9
-:10217000C9FD70BD10B5594CA078002802D1207857
-:10218000002801D0112010BD5A48FEF700FA6070F7
-:102190006078002803D001202070002010BD0320AB
-:1021A00010BD10B50124020B64040121524BA04262
-:1021B00002D29140186802E0203A586891400840E5
-:1021C00000D0012010BDF8B50E46910005464F190C
-:1021D00014463F1F009100F09CFA00998002891973
-:1021E000091FB14201D2012200E00022002C03D0DD
-:1021F000FF2101318C4201D90920F8BD3F498D42B0
-:1022000019D3AF4217D3854205D2874203D228465D
-:102210003043800701D01020F8BD8E420BD3002A36
-:1022200009D12846FFF7BDFF002804D13846FFF743
-:10223000B8FF002801D00F20F8BDFFF79BFF002852
-:10224000FAD126480121C66085600461817020466C
-:10225000312148431430FFF776FF0020F8BD10B558
-:1022600004462648800A84420BD300F052FAA0426A
-:1022700001D8102010BDA0020446FFF792FF0028ED
-:1022800001D00F2010BDFFF775FF0028FAD11348C9
-:102290000221846081701A48FFF755FF002010BDAD
-:1022A0001648010B01208840401E704700B50B46C0
-:1022B0000246FFF7F5FF104201D00F2000BD0E4887
-:1022C00002604360002000BD10B5044C6078FEF74A
-:1022D000B2F900202070A07010BD00002001002085
-:1022E000281C00207372635C736F635F666C61739C
-:1022F000682E63007B2001000006004000400100C2
-:1023000010540000E349002048700870887048604D
-:10231000E1490873704710B5E048826A81158A4325
-:10232000DC498B691A438262826A0223C9699A4333
-:102330000A438262FEF7ECF810BD002814D0417801
-:10234000002901D001290ED18168D54A6439914212
-:1023500009D24068D349884205D8CE494978012935
-:1023600003D1002801D0002070470120704770B5CC
-:102370000446FEF782FD0068002803D0CAA1802031
-:1023800000F09FFB0126C34D002C06D020780028CA
-:102390002BD0012827D0022801D0EE7023E0287826
-:1023A000002820D16068FFF7C8FF0028F5D06068DA
-:1023B0000078002800D00220B74E30706068806836
-:1023C0009630B06060684168E868FEF7F2FB7060C4
-:1023D000606803244078002808D07470AE49A8785B
-:1023E000FEF790FC6C70FFF796FF70BD02207070D6
-:1023F000F4E7F8B5A74C0D46A178884203D0AAA10E
-:10240000BF2000F05EFB284600270526A24D0300F2
-:1024100000F05CFC09061135587F8997B8A2B80016
-:102420006078032806D06078022803D09EA1C320DC
-:1024300000F047FBF8BD6078032806D060780228DA
-:1024400003D099A1C72000F03CFB04206070E77026
-:102450002078002802D0FEF75BF8F8BDA86896380F
-:10246000FEF7F1FF6868E0608C48816A82151140D0
-:10247000A161806A02210840E06100205CE0607890
-:10248000032806D06078022803D087A1E22000F05C
-:1024900018FB2078002802D000F0EFF8F8BD607833
-:1024A000032802D02069410020E004202DE07A4971
-:1024B000A078FEF727FCF8BD0420FDF73FFF0120C0
-:1024C0006070F8BD6078032807D06078022804D0D7
-:1024D000FF2075A1043000F0F4FA20780028DBD149
-:1024E0006078032810D06868A06076492161A068F0
-:1024F000FEF75FFB686069686069FFF711F868497B
-:1025000063318842D8DCD2E70520FDF717FF6670FB
-:10251000F8BD6078042804D0FF2063A1263000F0C5
-:10252000D0FA022008E06078042804D0FF205EA1E1
-:102530002B3000F0C6FA012061688847FFF717FFCB
-:10254000F8BD6078042804D0FF2057A1303000F097
-:10255000B8FAFFF7E0FEF8BD6078042804D0FF2049
-:1025600051A1353000F0ADFA2078002894D1E07800
-:10257000002805D00620FDF7E1FE6670E770F8BD83
-:102580000720C2E7FF2048A14B3051E770B5050096
-:1025900005D0404C6078002803D0112070BD102079
-:1025A00070BD4948FDF7F3FFA070A078002804D063
-:1025B000656001206070002070BD032070BD10B503
-:1025C00034480178002901D0112010BD417800293C
-:1025D0000BD0417805290AD04178012907D0012183
-:1025E00001704078052802D003E00F2010BD00F0F4
-:1025F00044F8002010BD70B5264C064660780528CA
-:1026000004D06078012801D00F2070BD002E25D0A5
-:102610003046FFF792FE002822D060781E4D012838
-:1026200020D07168E068FEF7C4FA6860B068963040
-:10263000A8603078002800D0032028707078002827
-:1026400017D0032068706078052814D002206070CD
-:102650001149A078FEF756FB002070BD102070BD18
-:10266000072070BDFEF702F86061A0601549216186
-:10267000D9E70220E6E70320E9E710B5054CA0788A
-:10268000FDF7D9FF0820FDF759FE0020607020708B
-:1026900010BD000034010020381C0020000500405F
-:1026A0003D860100FF1FA1077372635C736F635F58
-:1026B000726164696F5F74696D65736C6F742E63AA
-:1026C0000000000024080000F3230100134A022147
-:1026D000516013490B68002BFCD0906008680028FB
-:1026E000FCD00020506008680028FCD0704710B56E
-:1026F0000A4B01225A600A4A1468002CFCD001607F
-:1027000010680028FCD00020586010680028FCD019
-:1027100010BD0120000740697047000000E501403E
-:1027200000E40140704770477047704770470346A8
-:1027300010B50B439B070FD1042A0DD308C810C94D
-:10274000121FA342F8D018BA21BA884201D9012039
-:1027500010BD0020C04310BD002A03D0D30703D012
-:10276000521C07E0002010BD03780C78401C491C67
-:102770001B1B07D103780C78401C491C1B1B01D183
-:10278000921EF1D1184610BDF8B5042A2CD3830748
-:1027900012D00B78491C0370401C521E83070BD0CB
-:1027A0000B78491C0370401C521E830704D00B7821
-:1027B000491C0370401C521E8B079B0F05D0C91A81
-:1027C000DF002023DE1B08C90AE0EDF7FDFCF8BDA1
-:1027D0001D4608C9FD401C46B4402C4310C0121FC2
-:1027E000042AF5D2F308C91A521EF0D40B78491CFA
-:1027F0000370401C521EEAD40B78491C0370401C25
-:10280000521EE4D409780170F8BD01E004C0091F2C
-:102810000429FBD28B0701D50280801CC90700D098
-:102820000270704700290BD0C30702D00270401C11
-:10283000491E022904D3830702D50280801C891E09
-:10284000E3E70022EEE70022DFE70378C2781946CB
-:10285000437812061B0219438378C0781B0419437E
-:1028600011430902090A000608437047020A08706A
-:102870004A70020C8A70020ECA7070470022030967
-:102880008B4273D3030A8B4258D3030B8B423CD346
-:10289000030C8B4221D312E003460B437FD400226A
-:1028A00043088B4274D303098B425FD3030A8B42E4
-:1028B00044D3030B8B4228D3030C8B420DD3FF224E
-:1028C000090212BA030C8B4202D31212090265D01C
-:1028D000030B8B4219D300E0090AC30B8B4201D3CF
-:1028E000CB03C01A5241830B8B4201D38B03C01A16
-:1028F0005241430B8B4201D34B03C01A5241030B8D
-:102900008B4201D30B03C01A5241C30A8B4201D33D
-:10291000CB02C01A5241830A8B4201D38B02C01AE8
-:102920005241430A8B4201D34B02C01A5241030A5F
-:102930008B4201D30B02C01A5241CDD2C3098B4244
-:1029400001D3CB01C01A524183098B4201D38B01C1
-:10295000C01A524143098B4201D34B01C01A524164
-:1029600003098B4201D30B01C01A5241C3088B42A9
-:1029700001D3CB00C01A524183088B4201D38B0094
-:10298000C01A524143088B4201D34B00C01A524136
-:10299000411A00D201465241104670475DE0CA0F0D
-:1029A00000D04942031000D34042534000229C46CD
-:1029B00003098B422DD3030A8B4212D3FC228901D7
-:1029C00012BA030A8B420CD3890192118B4208D3AD
-:1029D000890192118B4204D389013AD0921100E00F
-:1029E0008909C3098B4201D3CB01C01A5241830923
-:1029F0008B4201D38B01C01A524143098B4201D350
-:102A00004B01C01A524103098B4201D30B01C01A7A
-:102A10005241C3088B4201D3CB00C01A52418308F4
-:102A20008B4201D38B00C01A5241D9D243088B424A
-:102A300001D34B00C01A5241411A00D201466346ED
-:102A400052415B10104601D34042002B00D5494251
-:102A5000704763465B1000D3404201B50020C0467A
-:102A6000C04602BD704770477047704710B500F010
-:102A700077F810BD30B58C180278401C13071B0F77
-:102A800001D10378401C120906D10278401C03E0F2
-:102A90000578401C0D70491C5B1EF9D101E00B70DC
-:102AA000491C521EFBD1A142E6D3002030BD0000DC
-:102AB00001231B68134B1860134B1960134B1A60EA
-:102AC0007047134A134B13607246053AF0E7114AF8
-:102AD0000F4B1B689A420ED10D4B002018600198D5
-:102AE0000D4B04B598470CBC9E46024602980099CF
-:102AF0000A4B1B68184706980599094B1B68DB6849
-:102B0000184700005C0100206001002064010020E3
-:102B100054010020EFBEADDEAD1501001001002014
-:102B2000000000200B4A12680B4B9A420AD1004762
-:102B3000084A1268084B9A4204D101B5FDF773F9AF
-:102B400003BC8E4605490968EFF305808000014407
-:102B50000968084704010020EFBEADDE0000002038
-:102B60001C481D497047FFF7FBFFEDF7E7FA00BD72
-:102B700001200007C06AC0B2FF2804D117481849D5
-:102B80000968884202D0174817490160174A136044
-:102B90005B68184720BFFDE7154B1B680F4999423A
-:102BA00002D018688842F5D004D1124B18680B493E
-:102BB0008842EFD080F308880F49884204DD0F482F
-:102BC000026802210A4302600D4880470D48804791
-:102BD0000D480047481C0020481C0020FFFFFFFF55
-:102BE000001000102C050040040000000000002030
-:102BF00014100010004001000020002024050040B7
-:102C0000C3150100712B0100B12A01001248704563
-:102C100002D1EFF3098101E0EFF3088188690238FE
-:102C20000078102812DB20280EDB0C4A12680C4BAF
-:102C30009A4203D1602804DB0A4A10470220086048
-:102C40007047094A10470000084A1047084A1268AE
-:102C50002C32126810470000FDFFFFFF0401002026
-:102C6000EFBEADDEAD0200000D170100A71A010096
-:102C7000000000200A480B4908470B48094908474B
-:102C80000A48084908470A480649084709480549C3
-:102C9000084709480349084708480249084700000F
-:102CA000E1230000252B0100412B0000EB2900004F
-:102CB000992900004D270000A72A000043260000A4
-:102CC00003B40148019001BD0500002030B47446F2
-:102CD000641E2578641CAB4200D21D46635D5B0018
-:102CE000E31830BC1847000002490020C8612039B1
-:102CF00008727047A003002000020206FFFFFFFFDA
-:102D00000000FFFF0102040810204080555555D6F1
-:102D1000BE898E00F401FA00960064004B00320078
-:102D20001E0014000100030000000100000000006C
-:102D3000000000000000000000000000870000000C
-:102D4000000000000000000000000000000002037E
-:102D5000040500000E0F0000882D01000400002073
-:102D60001000000004010000982D01001400002054
-:102D700054010000742A0100C02D010068010020E8
-:102D8000E01A0000200100000249022208681042F7
-:102D9000FCD0704700E200E0A1074E56FF9900CD3D
-:102DA00029023501022B013601000100D83720FB32
-:102DB000349B5F8074800010027001E4B52A01002A
-:020000041000EA
-:1010000000400100FFFFFFFFFFFFFFFFFFFFFFFFAB
-:041010004900FFFF95
-:04000005000000C136
-:00000001FF
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/doc/ble_api.dox	Tue Mar 18 12:30:07 2014 +0000
@@ -0,0 +1,1177 @@
+/**
+ * @addtogroup BLE_COMMON 
+ * @{
+ * @defgroup BLE_COMMON_MSC Message Sequence Charts
+ * @{
+ * @defgroup BLE_COMMON_IRQ_EVT_MSC Interrupt-driven Event Retrieval
+ * @msc
+ * hscale = "1.5";
+ * APP,SD;
+ * |||;
+ * APP=>SD [label = "sd_softdevice_enable(clock, assertion_handler);"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * APP=>SD [label = "sd_nvic_EnableIRQ(SD_EVENT_IRQn)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * |||;
+ * APP rbox SD [label="Application runs and uses SD API"];
+ * |||;
+ * SD rbox SD [label="Event Available for the App"];
+ * |||;
+ * APP<-SD [label = "SD_EVENT_IRQn", textcolor="#800080", linecolor="#800080"];
+ * APP=>APP [label = "SD_EVENT_IRQHandler()"];
+ * APP=>SD [label = "sd_ble_evt_get(buffer);"];
+ * APP<<SD [label = "{NRF_SUCCESS, event}"];
+ * |||;
+ * @endmsc
+ *
+ * @defgroup BLE_COMMON_THREAD_EVT_MSC Thread Mode Event Retrieval
+ * @msc
+ * hscale = "1.5";
+ * APP,SD;
+ * |||;
+ * APP=>SD [label = "sd_softdevice_enable(clock, assertion_handler);"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * |||;
+ * APP=>SD [label = "sd_app_evt_wait(void);"];
+ * APP rbox APP [label="App Thread Mode blocked, CPU in low power mode"];
+ * |||;
+ * ...;
+ * |||;
+ * SD rbox SD [label="Event Available for the App"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * APP=>SD [label = "sd_ble_evt_get(buffer);"];
+ * APP<<SD [label = "{NRF_SUCCESS, event}"];
+ * APP=>SD [label = "sd_app_evt_wait(void);"];
+ * APP rbox APP [label="App Thread Mode blocked, CPU in low power mode"];
+ * |||;
+ * ...;
+ * |||;
+ * SD rbox SD [label="Event Available for the App"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * APP=>SD [label = "sd_ble_evt_get(buffer);"];
+ * APP<<SD [label = "{NRF_SUCCESS, event}"];
+ * APP=>SD [label = "sd_app_evt_wait(void);"];
+ * APP rbox APP [label="App Thread Mode blocked, CPU in low power mode"];
+ * |||;
+ * ...;
+ * |||;
+ * @endmsc
+ *
+ * @defgroup BLE_COMMON_APP_BUFF_MSC App Buffer Management
+ * @msc
+ * hscale = "1.5";
+ * APP,SD,PEER;
+ * |||;
+ * APP=>SD [label = "sd_ble_tx_buffer_count_get();"];
+ * APP<<SD [label = "{NRF_SUCCESS, N}"];
+ * APP rbox APP [label="available = N"];
+ * |||;
+ * APP rbox PEER [label="Connection Established"];
+ * |||;
+ * APP=>SD [label = "sd_ble_gattc_write(handle, value)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * APP rbox APP [label="available--"];
+ * SD:>PEER [label = "ATT Write Command", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_EVT_TX_COMPLETE {1}"];
+ * APP rbox APP [label="available += 1"];
+ * |||;
+ * ...;
+ * |||;
+ * APP=>SD [label = "sd_ble_gatts_hvx(NOTIFICATION, app_value)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * APP rbox APP [label="available--"];
+ * SD:>PEER [label = "ATT Handle Value Notification", textcolor="#000080", linecolor="#000080"];
+ * APP=>SD [label = "sd_ble_gatts_hvx(NOTIFICATION, app_value)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * APP rbox APP [label="available--"];
+ * SD:>PEER [label = "ATT Handle Value Notification", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_EVT_TX_COMPLETE {2}"];
+ * APP rbox APP [label="available += 2"];
+ * |||;
+ * ...;
+ * |||;
+ * APP rbox PEER [label="Terminate Connection"];
+ * |||;
+ * APP rbox APP [label="available = N"];
+ * |||;
+ * @endmsc
+ * @}
+ * @}
+ */
+
+/**
+ * @addtogroup BLE_GAP 
+ * @{
+ * @defgroup BLE_GAP_MSC Message Sequence Charts
+ * @{
+ * @defgroup BLE_GAP_ADV_MSC GAP Advertisement
+ * @msc
+ * hscale = "1.5";
+ * APP,SD,SCANNERS;
+ * |||;
+ * APP=>SD [label = "sd_ble_gap_address_set(addr)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * APP=>SD [label = "sd_ble_gap_adv_data_set(adv, sr)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * APP=>SD [label = "sd_ble_gap_adv_start(params)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * |||;
+ * SD->SCANNERS [label = "ADV packet", textcolor="#000080", linecolor="#000080"];
+ * SD->SCANNERS [label = "ADV packet", textcolor="#000080", linecolor="#000080"];
+ * SD->SCANNERS [label = "ADV packet", textcolor="#000080", linecolor="#000080"];
+ * ...;
+ * SD->SCANNERS [label = "ADV packet", textcolor="#000080", linecolor="#000080"];
+ * |||;
+ * --- [label = " Variant #1 App Stops Advertisement "];
+ * APP=>SD [label = "sd_ble_gap_adv_stop()"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * |||;
+ * --- [label = " Variant #2 Advertisement Timeout "];
+ * APP<<=SD [label = "BLE_GAP_EVT_TIMEOUT"];
+ * @endmsc
+ *
+ * @defgroup BLE_GAP_CONN_MSC GAP Connection Establishment and Termination
+ * @msc
+ * hscale = "1.5";
+ * APP,SD,CENTRAL;
+ * |||;
+ * APP rbox CENTRAL [label="Start Advertising"];
+ * |||;
+ * SD<:>CENTRAL [label = "Connection Establishment", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GAP_EVT_CONNECTED"];
+ * |||;
+ * --- [label = " Variant #1 Local Disconnection "];
+ * APP=>SD [label = "sd_ble_gap_disconnect(reason)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>CENTRAL [label = "Connection Termination", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GAP_EVT_DISCONNECTED {reason}"];
+ * |||;
+ * --- [label = " Variant #2 Remote Disconnection "];
+ * SD<:CENTRAL [label = "Connection Termination", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GAP_EVT_DISCONNECTED {reason}"];
+ * @endmsc
+ *
+ * @defgroup BLE_GAP_CPU_MSC GAP Connection Parameter Update
+ * @msc
+ * hscale = "1.5";
+ * APP,SD,CENTRAL;
+ * |||;
+ * APP rbox CENTRAL [label="Connection Established with conn. params. CP#1"];
+ * |||;
+ * APP=>SD [label = "sd_ble_gap_conn_param_update(CP#2)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>CENTRAL [label = "L2CAP CPU Request", textcolor="#000080", linecolor="#000080"];
+ * |||;
+ * --- [label = " Variant #1 Central Accepts "];
+ * |||;
+ * SD<:CENTRAL [label = "L2CAP CPU Response: Accepted", textcolor="#000080", linecolor="#000080"];
+ * |||;
+ * SD<:CENTRAL [label = "Connection Update", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GAP_EVT_CONN_PARAM_UPDATE {CP#2}"];
+ * |||;
+ * --- [label = " Variant #2 Central Rejects "];
+ * |||;
+ * SD<:CENTRAL [label = "L2CAP CPU Response: Rejected", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GAP_EVT_CONN_PARAM_UPDATE {CP#1}"];
+ * --- [label = " Variant #3 Central Ignores "];
+ * |||;
+ * ...;
+ * |||;
+ * SD box SD [label="Timeout"];
+ * APP<<=SD [label = "BLE_GAP_EVT_CONN_PARAM_UPDATE {CP#1}"];
+ * @endmsc
+ *
+ * @defgroup BLE_GAP_RSSI_MSC GAP RSSI
+ * @msc
+ * hscale = "1.5";
+ * APP,SD,PEER;
+ * |||;
+ * APP rbox PEER [label="Connection Established"];
+ * |||;
+ * APP=>SD [label = "sd_ble_gap_rssi_start()"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * |||;
+ * SD<-PEER [label = "RSSI Sample", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GAP_EVT_RSSI_CHANGED {RSSI#1}"];
+ * |||;
+ * SD<-PEER [label = "RSSI Sample", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GAP_EVT_RSSI_CHANGED {RSSI#2}"];
+ * |||;
+ * SD<-PEER [label = "RSSI Sample", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GAP_EVT_RSSI_CHANGED {RSSI#3}"];
+ * |||;
+ * APP=>SD [label = "sd_ble_gap_rssi_stop()"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * @endmsc
+ *
+ * @defgroup BLE_GAP_PAIRING_JW_MSC GAP Pairing: Just Works
+ * @msc
+ * hscale = "2";
+ * APP,SD,CENTRAL;
+ * |||;
+ * APP rbox CENTRAL [label="Connection Established"];
+ * |||;
+ * SD<:CENTRAL [label = "SMP Pairing Request", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GAP_EVT_SEC_PARAMS_REQUEST {central_params: no_bond, no_mitm, no_io_caps}"];
+ * APP=>SD [label = "sd_ble_gap_sec_params_reply(SUCCESS, periph_params: no_bond, no_mitm, no_io_caps)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>CENTRAL [label = "SMP Pairing Response", textcolor="#000080", linecolor="#000080"];
+ * |||;
+ * SD abox CENTRAL [label="SMP Pairing Phase 2", textbgcolor="#7f7fff"];
+ * |||;
+ * APP<<=SD [label = "BLE_GAP_EVT_AUTH_STATUS {SUCCESS}"];
+ * APP rbox CENTRAL [label = "Encrypted with STK"];
+ * APP<<=SD [label = "BLE_GAP_EVT_CONN_SEC_UPDATE {ENC_NO_MITM}"];
+ * @endmsc
+ *
+ * @defgroup BLE_GAP_BONDING_JW_MSC GAP Bonding: Just Works
+ * @msc
+ * hscale = "2";
+ * APP,SD,CENTRAL;
+ * |||;
+ * APP rbox CENTRAL [label="Connection Established"];
+ * |||;
+ * SD<:CENTRAL [label = "SMP Pairing Request", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GAP_EVT_SEC_PARAMS_REQUEST {central_params: bond, no_mitm, no_io_caps}"];
+ * APP=>SD [label = "sd_ble_gap_sec_params_reply(SUCCESS, periph_params: bond, no_mitm, no_io_caps)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>CENTRAL [label = "SMP Pairing Response", textcolor="#000080", linecolor="#000080"];
+ * |||;
+ * SD abox CENTRAL [label="SMP Pairing Phase 2", textbgcolor="#7f7fff"];
+ * |||;
+ * APP rbox CENTRAL [label = "Encrypted with STK"];
+ * APP<<=SD [label = "BLE_GAP_EVT_CONN_SEC_UPDATE {ENC_NO_MITM}"];
+ * |||;
+ * SD abox CENTRAL [label="SMP Pairing Phase 3", textbgcolor="#7f7fff"];
+ * |||;
+ * APP<<=SD [label = "BLE_GAP_EVT_AUTH_STATUS {SUCCESS, periph_keys}"];
+ * APP rbox APP [label = "Store Peripheral Keys"];
+ * @endmsc
+ *
+ * @defgroup BLE_GAP_BONDING_PK_PERIPH_MSC GAP Bonding: Passkey Entry, Peripheral displays
+ * @msc
+ * hscale = "2";
+ * APP,SD,CENTRAL;
+ * |||;
+ * APP rbox CENTRAL [label="Connection Established"];
+ * |||;
+ * SD<:CENTRAL [label = "SMP Pairing Request", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GAP_EVT_SEC_PARAMS_REQUEST {central_params: bond, mitm, keyboard}"];
+ * APP=>SD [label = "sd_ble_gap_sec_params_reply(SUCCESS, periph_params: bond, mitm, display)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>CENTRAL [label = "SMP Pairing Response", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GAP_EVT_PASSKEY_DISPLAY {passkey}"];
+ * APP rbox APP [label="Passkey displayed to the user"];
+ * |||;
+ * SD abox CENTRAL [label="SMP Pairing Phase 2", textbgcolor="#7f7fff"];
+ * |||;
+ * APP rbox CENTRAL [label = "Encrypted with STK"];
+ * APP<<=SD [label = "BLE_GAP_EVT_CONN_SEC_UPDATE {ENC_MITM}"];
+ * |||;
+ * SD abox CENTRAL [label="SMP Pairing Phase 3", textbgcolor="#7f7fff"];
+ * |||;
+ * APP<<=SD [label = "BLE_GAP_EVT_AUTH_STATUS {SUCCESS, periph_keys}"];
+ * APP rbox APP [label = "Store Peripheral Keys"];
+ * @endmsc
+ *
+ * @defgroup BLE_GAP_BONDING_PK_CENTRAL_OOB_MSC GAP Bonding: Passkey Entry (Central display) or OOB MSC
+ * @msc
+ * hscale = "2";
+ * APP,SD,CENTRAL;
+ * |||;
+ * APP rbox CENTRAL [label="Connection Established"];
+ * |||;
+ * SD<:CENTRAL [label = "SMP Pairing Request", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GAP_EVT_SEC_PARAMS_REQUEST {central_params: bond, mitm, display}"];
+ * APP=>SD [label = "sd_ble_gap_sec_params_reply(SUCCESS, periph_params: bond, mitm, keyboard)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>CENTRAL [label = "SMP Pairing Response", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GAP_EVT_AUTH_KEY_REQUEST {type}"];
+ * APP rbox APP [label="User enters Passkey or data received Out Of Band"];
+ * APP=>SD [label = "sd_ble_gap_auth_key_reply(passkey or OOB)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * |||;
+ * SD abox CENTRAL [label="SMP Pairing Phase 2", textbgcolor="#7f7fff"];
+ * |||;
+ * APP rbox CENTRAL [label = "Encrypted with STK"];
+ * APP<<=SD [label = "BLE_GAP_EVT_CONN_SEC_UPDATE {ENC_MITM}"];
+ * |||;
+ * SD abox CENTRAL [label="SMP Pairing Phase 3", textbgcolor="#7f7fff"];
+ * |||;
+ * APP<<=SD [label = "BLE_GAP_EVT_AUTH_STATUS {SUCCESS, periph_keys}"];
+ * APP rbox APP [label = "Store Peripheral Keys"];
+ * @endmsc
+ *
+ * @defgroup BLE_GAP_SEC_MSC GAP Security Establishment using stored keys
+ * @msc
+ * hscale = "1.5";
+ * APP,SD,CENTRAL;
+ * |||;
+ * APP rbox CENTRAL [label="Connection Established"];
+ * |||;
+ * SD<:CENTRAL [label = "LL Encryption Request", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GAP_EVT_SEC_INFO_REQUEST {addr, div}"];
+ * |||;
+ * --- [label = " Variant #1 App Replies with Keys "];
+ * |||;
+ * APP rbox APP [label = "Load Peripheral Keys"];
+ * APP=>SD [label = "sd_ble_gap_sec_info_reply(div, LTK)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>CENTRAL [label = "LL Encryption Response", textcolor="#000080", linecolor="#000080"];
+ * APP rbox CENTRAL [label = "Encrypted with LTK"];
+ * APP<<=SD [label = "BLE_GAP_EVT_CONN_SEC_UPDATE"];
+ * |||;
+ * --- [label = " Variant #2 App Replies without Keys "];
+ * |||;
+ * APP=>SD [label = "sd_ble_gap_sec_info_reply(NULL)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>CENTRAL [label = "LL Reject Ind: Pin or Key Missing", textcolor="#000080", linecolor="#000080"];
+ * APP rbox CENTRAL [label = "Link Not Encrypted"];
+ * @endmsc
+ *
+ * @defgroup BLE_GAP_PERIPH_SEC_MSC GAP Peripheral Initiated Security Establishment
+ * @msc
+ * hscale = "1.5";
+ * APP,SD,CENTRAL;
+ * |||;
+ * APP rbox CENTRAL [label="Connection Established"];
+ * |||;
+ * APP=>SD [label = "sd_ble_gap_authenticate(params)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>CENTRAL [label = "SMP Security Request", textcolor="#000080", linecolor="#000080"];
+ * |||;
+ * --- [label = " Variant #1 Central initiates Security Establishment "];
+ * |||;
+ * APP rbox CENTRAL [label="Encryption or Pairing/Bonding initiated by Central"];
+ * |||;
+ * --- [label = " Variant #2 Central ignores "];
+ * |||;
+ * ...;
+ * |||;
+ * APP<<=SD [label = "BLE_GAP_EVT_TIMEOUT"];
+ * |||;
+ * @endmsc
+ * @}
+ * @}
+ */
+
+/**
+ * @addtogroup BLE_GATTC 
+ * @{
+ * @defgroup BLE_GATTC_MSC Message Sequence Charts
+ * @{
+ * @defgroup BLE_GATTC_PRIM_SRVC_DISC_MSC GATTC Primary Service Discovery
+ * @msc
+ * hscale = "2";
+ * APP,SD,PEER;
+ * |||;
+ * APP rbox PEER [label="Connection Established"];
+ * |||;
+ * --- [label = " Variant #1 Discover All Services "];
+ * |||;
+ * APP=>SD [label = "sd_ble_gattc_primary_services_discover(handle, NULL)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Read By Group Type Request", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Read By Group Type Response", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP {SUCCESS, services}"];
+ * APP=>SD [label = "sd_ble_gattc_primary_services_discover(handle + N, NULL)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Read By Group Type Request", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Read By Group Type Response", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP {SUCCESS, services}"];
+ * APP=>SD [label = "sd_ble_gattc_primary_services_discover(handle + N + M, NULL)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Read By Group Type Request", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Error Response: Attribute Not Found", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTC_EVT {ATTRIBUTE_NOT_FOUND}"];
+ * |||;
+ * --- [label = " Variant #2 Discover a Specific Service "];
+ * |||;
+ * APP=>SD [label = "sd_ble_gattc_primary_services_discover(handle, uuid)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Find By Type Value Request", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Find By Type Value Response", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP {SUCCESS, services}"];
+ * APP=>SD [label = "sd_ble_gattc_primary_services_discover(handle + N, uuid)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Find By Type Value Request", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Find By Type Value Response", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP {SUCCESS, services}"];
+ * APP=>SD [label = "sd_ble_gattc_primary_services_discover(handle + N + M, uuid)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Find By Type Value Request", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Error Response: Attribute Not Found", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTC_EVT {ATTRIBUTE_NOT_FOUND}"];
+ * @endmsc
+ *
+ * @defgroup BLE_GATTC_REL_DISC_MSC GATTC Relationship Discovery
+ * @msc
+ * hscale = "2";
+ * APP,SD,PEER;
+ * |||;
+ * APP rbox PEER [label="Connection Established"];
+ * |||;
+ * APP=>SD [label = "sd_ble_gattc_relationships_discover(handle_range)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Read By Type Request", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Read By Type Response", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTC_EVT_REL_DISC_RSP {SUCCESS, includes}"];
+ * APP=>SD [label = "sd_ble_gattc_relationships_discover(handle_range + N)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Read By Type Request", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Read By Type Response", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTC_EVT_REL_DISC_RSP {SUCCESS, includes}"];
+ * APP=>SD [label = "sd_ble_gattc_relationships_discover(handle_range + N + M)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Read By Type Request", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Error Response: Attribute Not Found", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTC_EVT {ATTRIBUTE_NOT_FOUND}"];
+ * @endmsc
+ *
+ * @defgroup BLE_GATTC_CHAR_DISC_MSC GATTC Characteristic Discovery
+ * @msc
+ * hscale = "2";
+ * APP,SD,PEER;
+ * |||;
+ * APP rbox PEER [label="Connection Established"];
+ * |||;
+ * APP=>SD [label = "sd_ble_gattc_characteristics_discover(handle_range)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Read By Type Request", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Read By Type Response", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTC_EVT_CHAR_DISC_RSP {SUCCESS, chars}"];
+ * APP=>SD [label = "sd_ble_gattc_characteristics_discover(handle_range + N)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Read By Type Request", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Read By Type Response", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTC_EVT_CHAR_DISC_RSP {SUCCESS, chars}"];
+ * APP=>SD [label = "sd_ble_gattc_characteristics_discover(handle_range + N + M)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Read By Type Request", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Error Response: Attribute Not Found", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTC_EVT {ATTRIBUTE_NOT_FOUND}"];
+ * @endmsc
+ *
+ * @defgroup BLE_GATTC_DESC_DISC_MSC GATTC Descriptor Discovery
+ * @msc
+ * hscale = "2";
+ * APP,SD,PEER;
+ * |||;
+ * APP rbox PEER [label="Connection Established"];
+ * |||;
+ * APP=>SD [label = "sd_ble_gattc_descriptors_discover(handle_range)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Find Information Request", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Find Information Response", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTC_EVT_DESC_DISC_RSP {SUCCESS, descs}"];
+ * APP=>SD [label = "sd_ble_gattc_descriptors_discover(handle_range + N)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Find Information Request", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Find Information Response", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTC_EVT_DESC_DISC_RSP {SUCCESS, descs}"];
+ * APP=>SD [label = "sd_ble_gattc_descriptors_discover(handle_range + N + M)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Find Information Request", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Error Response: Attribute Not Found", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTC_EVT {ATTRIBUTE_NOT_FOUND}"];
+ * @endmsc
+ *
+ * @defgroup BLE_GATTC_READ_UUID_MSC GATTC Read Characteristic Value by UUID
+ * @msc
+ * hscale = "2";
+ * APP,SD,PEER;
+ * |||;
+ * APP rbox PEER [label="Connection Established"];
+ * |||;
+ * APP=>SD [label = "sd_ble_gattc_char_value_by_uuid_read(uuid, handle_range)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Read By Type Request", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Read By Type Response", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP {SUCCESS, char_values}"];
+ * APP=>SD [label = "sd_ble_gattc_char_value_by_uuid_read(uuid, handle_range + N)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Read By Type Request", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Read By Type Response", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP {SUCCESS, char_values}"];
+ * APP=>SD [label = "sd_ble_gattc_char_value_by_uuid_read(uuid, handle_range + N + M)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Read By Type Request", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Error Response: Attribute Not Found", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTC_EVT {ATTRIBUTE_NOT_FOUND}"];
+ * @endmsc
+ *
+ * @defgroup BLE_GATTC_VALUE_READ_MSC GATTC Characteristic or Descriptor Value Read
+ * @msc
+ * hscale = "2";
+ * APP,SD,PEER;
+ * |||;
+ * APP rbox PEER [label="Connection Established"];
+ * |||;
+ * --- [label = " Variant #1 offset == 0 "];
+ * |||;
+ * APP=>SD [label = "sd_ble_gattc_read(handle, 0)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Read Request", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Read Response", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTC_EVT_READ_RSP {SUCCESS, value}"];
+ * |||;
+ * --- [label = " Variant #2 offset != 0 "];
+ * |||;
+ * APP=>SD [label = "sd_ble_gattc_read(handle, offset)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Read Blob Request", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Read Blob Response", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTC_EVT_READ_RSP {SUCCESS, value}"];
+ * APP=>SD [label = "sd_ble_gattc_read(handle, offset + N)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Read Blob Request", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Read Blob Response", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTC_EVT_READ_RSP {SUCCESS, value}"];
+ * APP=>SD [label = "sd_ble_gattc_read(handle, offset + N + M + 1)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Read Blob Request", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Error Response: Invalid Offset", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTC_EVT {INVALID_OFFSET}"];
+ * @endmsc
+ *
+ * @defgroup BLE_GATTC_READ_MULT_MSC GATTC Read Multiple Characteristic Values
+ * @msc
+ * hscale = "2";
+ * APP,SD,PEER;
+ * |||;
+ * APP rbox PEER [label="Connection Established"];
+ * |||;
+ * --- [label = " Variant #1 Successful request "];
+ * |||;
+ * APP=>SD [label = "sd_ble_gattc_char_values_read(handles)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Read Multiple Request", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Read Multiple Response", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTC_EVT_CHAR_VALS_READ_RSP {SUCCESS, char_values}"];
+ * |||;
+ * --- [label = " Variant #2 Failing request (invalid handle) "];
+ * |||;
+ * APP=>SD [label = "sd_ble_gattc_char_values_read(handles)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Read Multiple Request", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Error Response: Invalid Handle", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTC_EVT {INVALID_HANDLE, error_handle=<invalid handle>}"];
+ * @endmsc
+ *
+ * @defgroup BLE_GATTC_VALUE_WRITE_MSC GATTC Characteristic or Descriptor Value Write
+ * @msc
+ * hscale = "2";
+ * APP,SD,PEER;
+ * |||;
+ * APP rbox PEER [label="Connection Established"];
+ * |||;
+ * --- [label = " Variant #1 write_op == BLE_GATT_OP_WRITE_CMD "];
+ * |||;
+ * APP=>SD [label = "sd_ble_gattc_write(handle, value)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Write Command", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_EVT_TX_COMPLETE"];
+ * |||;
+ * --- [label = " Variant #2 write_op == BLE_GATT_OP_WRITE_REQ "];
+ * |||;
+ * APP=>SD [label = "sd_ble_gattc_write(handle, value)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Write Request", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Write Response", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTC_EVT_WRITE_RSP {SUCCESS}"];
+ * @endmsc
+ *
+ * @defgroup BLE_GATTC_HVI_MSC GATTC Handle Value Indication
+ * <b> GATTC Handle Value Indication MSC </b>
+ * @msc
+ * hscale = "2";
+ * APP,SD,PEER;
+ * |||;
+ * APP rbox PEER [label="Connection Established"];
+ * |||;
+ * SD<:PEER [label = "ATT Handle Value Indication", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTC_EVT_HVX {INDICATION, data}"];
+ * APP=>SD [label = "sd_ble_gattc_hv_confirm(handle)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Handle Value Confirmation", textcolor="#000080", linecolor="#000080"];
+ * @endmsc
+ *
+ * @defgroup BLE_GATTC_HVN_MSC GATTC Handle Value Notification
+ * @msc
+ * hscale = "2";
+ * APP,SD,PEER;
+ * |||;
+ * APP rbox PEER [label="Connection Established"];
+ * |||;
+ * SD<:PEER [label = "ATT Handle Value Notification", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTC_EVT_HVX {NOTIFICATION, data}"];
+ * @endmsc
+ *
+ * @defgroup BLE_GATTC_TIMEOUT_MSC GATTC Timeout
+ * @msc
+ * hscale = "2";
+ * APP,SD,PEER;
+ * |||;
+ * APP rbox PEER [label="Connection Established"];
+ * |||;
+ * APP rbox PEER [label="Any GATTC API used"];
+ * SD:>PEER [label = "ATT Packet", textcolor="#000080", linecolor="#000080"];
+ * APP note PEER [label = "No Response from Peer"];
+ * |||;
+ * ...;
+ * |||;
+ * SD box SD [label="Timeout"];
+ * APP<<=SD [label = "BLE_GATTC_EVT_TIMEOUT {source}"];
+ * APP rbox PEER [label="No additional ATT Traffic Allowed", textbgcolour="#ff7f7f"];
+ * APP=>SD [label = "Any API call"];
+ * APP<<SD [label = "NRF_ERROR_BUSY"];
+ * @endmsc
+ * @}
+ * @}
+ */
+
+/**
+ * @addtogroup BLE_GATTS 
+ * @{
+ * @defgroup BLE_GATTS_MSC Message Sequence Charts
+ * @{
+ * @defgroup BLE_GATTS_ATT_TABLE_POP_MSC GATTS ATT Table Population
+ * @msc
+ * hscale = "1.5";
+ * APP,SD;
+ * |||;
+ * APP=>SD [label = "sd_ble_gatts_service_add(uuid#1)"];
+ * APP<<SD [label = "{NRF_SUCCESS, handle_srvc#1}"];
+ * APP=>SD [label = "sd_ble_gatts_characteristic_add(handle_srvc#1, char_md, value)"];
+ * APP<<SD [label = "{NRF_SUCCESS, handle_char#1, ...}"];
+ * APP=>SD [label = "sd_ble_gatts_descriptor_add(handle_char#1, value)"];
+ * APP<<SD [label = "{NRF_SUCCESS, handle_desc#1}"];
+ * APP=>SD [label = "sd_ble_gatts_descriptor_add(handle_char#1, value)"];
+ * APP<<SD [label = "{NRF_SUCCESS, handle_desc#2}"];
+ * APP=>SD [label = "sd_ble_gatts_characteristic_add(handle_srvc#1, char_md, value)"];
+ * APP<<SD [label = "{NRF_SUCCESS, handle_char#2, ...}"];
+ * APP=>SD [label = "sd_ble_gatts_descriptor_add(handle_char#2, value)"];
+ * APP<<SD [label = "{NRF_SUCCESS, handle_desc#3}"];
+ * APP=>SD [label = "sd_ble_gatts_service_add(uuid#2)"];
+ * APP<<SD [label = "{NRF_SUCCESS, handle_srvc#2}"];
+ * APP=>SD [label = "sd_ble_gatts_include_add(handle_srvc#2, handle_srvc#1)"];
+ * APP<<SD [label = "{NRF_SUCCESS, handle_inc#1}"];
+ * |||;
+ * ...;
+ * |||;
+ * @endmsc
+ *
+ * @defgroup BLE_GATTS_READ_REQ_NO_AUTH_MSC Read Request without Authorization
+ * @msc
+ * hscale = "1.5";
+ * APP,SD,PEER;
+ * |||;
+ * APP rbox PEER [label="Connection Established"];
+ * |||;
+ * SD<:PEER [label = "ATT Read Request", textcolor="#000080", linecolor="#000080"];
+ * SD:>PEER [label = "ATT Read Response", textcolor="#000080", linecolor="#000080"];
+ * @endmsc
+ *
+ * @defgroup BLE_GATTS_WRITE_REQ_NO_AUTH_MSC GATTS Write Request without Authorization
+ * @msc
+ * hscale = "1.5";
+ * APP,SD,PEER;
+ * |||;
+ * APP rbox PEER [label="Connection Established"];
+ * |||;
+ * SD<:PEER [label = "ATT Write Request", textcolor="#000080", linecolor="#000080"];
+ * SD:>PEER [label = "ATT Write Response", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTS_EVT_WRITE {WRITE_REQ, data}"];
+ * @endmsc
+ *
+ * @defgroup BLE_GATTS_WRITE_CMD_NO_AUTH_MSC GATTS Write Command with or without Authorization
+ * @msc
+ * hscale = "1.5";
+ * APP,SD,PEER;
+ * |||;
+ * APP rbox PEER [label="Connection Established"];
+ * |||;
+ * SD<:PEER [label = "ATT Write Command", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTS_EVT_WRITE {WRITE_CMD, data}"];
+ * @endmsc
+ *
+ * @defgroup BLE_GATTS_READ_REQ_AUTH_MSC GATTS Read Request with Authorization
+ * @msc
+ * hscale = "2";
+ * APP,SD,PEER;
+ * |||;
+ * APP rbox PEER [label="Connection Established"];
+ * |||;
+ * SD rbox SD [label="Value in ATT Table: current_value"];
+ * SD<:PEER [label = "ATT Read Request", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {READ, current_value}"];
+ * --- [label = " Variant #1 App Authorizes "];
+ * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(SUCCESS, app_value)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD rbox SD [label="Value in ATT Table: app_value"];
+ * SD:>PEER [label = "ATT Read Response {app_value}", textcolor="#000080", linecolor="#000080"];
+ * --- [label = " Variant #2 App Disallows "];
+ * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(READ_NOT_PERMITTED)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Error Response", textcolor="#000080", linecolor="#000080"];
+ * @endmsc
+ *
+ * @defgroup BLE_GATTS_WRITE_REQ_AUTH_MSC GATTS Write Request with Authorization
+ * @msc
+ * hscale = "2";
+ * APP,SD,PEER;
+ * |||;
+ * APP rbox PEER [label="Connection Established"];
+ * |||;
+ * SD rbox SD [label="Value in ATT Table: current_value"];
+ * SD<:PEER [label = "ATT Write Request {peer_data}", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, peer_value}"];
+ * --- [label = " Variant #1 App Authorizes "];
+ * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(SUCCESS)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD rbox SD [label="Value in ATT Table: peer_data"];
+ * SD:>PEER [label = "ATT Write Response", textcolor="#000080", linecolor="#000080"];
+ * --- [label = " Variant #2 App Disallows "];
+ * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE_NOT_PERMITTED)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Error Response", textcolor="#000080", linecolor="#000080"];
+ * SD rbox SD [label="Value in ATT Table: current_value"];
+ * @endmsc
+ *
+ * @defgroup BLE_GATTS_QUEUED_WRITE_BUF_NOAUTH_MSC GATTS Queued Writes: Stack handled, no attributes require authorization
+ * @msc
+ * hscale = "2";
+ * APP,SD,PEER;
+ * |||;
+ * APP rbox PEER [label="Connection Established"];
+ * |||;
+ * SD rbox SD [label="Values in ATT Table:\nhandle_1: current_value_1\nhandle_2: current_value_2"];
+ * SD<:PEER [label = "ATT Prepare Write Request {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_EVT_USER_MEM_REQUEST {BLE_USER_MEM_TYPE_GATTS_QUEUED_WRITES}"];
+ * APP=>SD [label = "sd_ble_user_mem_reply {user_mem_block}"];
+ * SD:>PEER [label = "ATT Prepare Write Response {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Prepare Write Request {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
+ * SD:>PEER [label = "ATT Prepare Write Response {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
+ * |||;
+ * --- [label = " Variant #1 Attribute Values validation passed "];
+ * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
+ * SD rbox SD [label="Values in ATT Table:\nhandle_1: peer_value_1\nhandle_2: peer_value_2"];
+ * APP<<=SD [label = "BLE_GATTS_EVT_WRITE {EXEC_WRITE_REQ_NOW}"];
+ * APP rbox APP [label="App parses the memory it provided"];
+ * SD:>PEER [label = "ATT Execute Write Response", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_EVT_USER_MEM_RELEASE {user_mem_block}"];
+ * |||;
+ * --- [label = " Variant #2 Attribute Values validation failed "];
+ * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
+ * SD rbox SD [label="Values in ATT Table:\nhandle_1: current_value_1\nhandle_2: current_value_2"];
+ * SD:>PEER [label = "ATT Error Response {Invalid Value Length / Offset}", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_EVT_USER_MEM_RELEASE {user_mem_block}"];
+ * |||;
+ * --- [label = " Variant #3 Peer cancels operation "];
+ * SD<:PEER [label = "ATT Execute Write Request {CANCEL}", textcolor="#000080", linecolor="#000080"];
+ * SD rbox SD [label="Values in ATT Table:\nhandle_1: current_value_1\nhandle_2: current_value_2"];
+ * SD:>PEER [label = "ATT Execute Write Response", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_EVT_USER_MEM_RELEASE {user_mem_block}"];
+ * |||;
+ * @endmsc
+ *
+ * @defgroup BLE_GATTS_QUEUED_WRITE_BUF_AUTH_MSC GATTS Queued Writes: Stack handled, one or more attributes require authorization
+ * @msc
+ * hscale = "2";
+ * APP,SD,PEER;
+ * |||;
+ * APP rbox PEER [label="Connection Established"];
+ * |||;
+ * SD rbox SD [label="Values in ATT Table:\nhandle_1: current_value_1\nhandle_2: current_value_2"];
+ * SD<:PEER [label = "ATT Prepare Write Request {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_EVT_USER_MEM_REQUEST {BLE_USER_MEM_TYPE_GATTS_QUEUED_WRITES}"];
+ * APP=>SD [label = "sd_ble_user_mem_reply {user_mem_block}"];
+ * SD:>PEER [label = "ATT Prepare Write Response {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Prepare Write Request {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, PREP_WRITE_REQ, handle_2, offset_2, peer_value_2}"];
+ * |||;
+ * --- [label = " Variant #1 App Authorizes both Prepare Write and Execute Write"];
+ * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
+ * SD:>PEER [label = "ATT Prepare Write Response {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, EXEC_WRITE_REQ_NOW}"];
+ * APP rbox APP [label="App parses the memory it provided"];
+ * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
+ * SD rbox SD [label="Values in ATT Table:\nhandle_1: peer_value_1\nhandle_2: peer_value_2"];
+ * SD:>PEER [label = "ATT Execute Write Response", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_EVT_USER_MEM_RELEASE {user_mem_block}"];
+ * |||;
+ * --- [label = " Variant #2 App Disallows Prepare Write and Authorizes Execute Write "];
+ * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, INSUF_AUTHORIZATION)"];
+ * SD:>PEER [label = "ATT Error Response {Insufficient Authorization}", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, EXEC_WRITE_REQ_NOW}"];
+ * APP rbox APP [label="App parses the memory it provided"];
+ * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
+ * SD rbox SD [label="Values in ATT Table:\nhandle_1: peer_value_1\nhandle_2: current_value_2"];
+ * SD:>PEER [label = "ATT Execute Write Response", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_EVT_USER_MEM_RELEASE {user_mem_block}"];
+ * |||;
+ * --- [label = " Variant #3 App Authorizes Prepare Write and Disallows Execute Write "];
+ * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
+ * SD:>PEER [label = "ATT Prepare Write Response {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, EXEC_WRITE_REQ_NOW}"];
+ * APP rbox APP [label="App parses the memory it provided"];
+ * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, APP_ERROR_CODE)"];
+ * SD rbox SD [label="Values in ATT Table:\nhandle_1: current_value_1\nhandle_2: current_value_2"];
+ * SD:>PEER [label = "ATT Error Response {APP_ERROR_CODE}", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_EVT_USER_MEM_RELEASE {user_mem_block}"];
+ * @endmsc
+ *
+ * @defgroup BLE_GATTS_QUEUED_WRITE_NOBUF_NOAUTH_MSC GATTS Queued Writes: App handled, no attributes require authorization
+ * @msc
+ * hscale = "2";
+ * APP,SD,PEER;
+ * |||;
+ * APP rbox PEER [label="Connection Established"];
+ * |||;
+ * APP rbox SD [label="Values in ATT Table:\nhandle_1: current_value_1\nhandle_2: current_value_2"];
+ * SD<:PEER [label = "ATT Prepare Write Request {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_EVT_USER_MEM_REQUEST {BLE_USER_MEM_TYPE_GATTS_QUEUED_WRITES}"];
+ * APP=>SD [label = "sd_ble_user_mem_reply {NULL}"];
+ * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, PREP_WRITE_REQ, handle_1, offset_1, peer_value_1}"];
+ * APP rbox APP [label="App queues {handle_1, offset_1, peer_value_1}"];
+ * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
+ * SD:>PEER [label = "ATT Prepare Write Response {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Prepare Write Request {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, PREP_WRITE_REQ, handle_2, offset_2, peer_value_2}"];
+ * APP rbox APP [label="App queues {handle_2, offset_2, peer_value_2}"];
+ * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
+ * SD:>PEER [label = "ATT Prepare Write Response {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, EXEC_WRITE_REQ_NOW}"];
+ * |||;
+ * --- [label = " Variant #1 Attribute values in stack memory (VLOC_STACK), attribute values validation passed "];
+ * APP=>SD [label = "sd_ble_gatts_value_set {handle_1, offset_1, peer_value_1}"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * APP=>SD [label = "sd_ble_gatts_value_set {handle_2, offset_2, peer_value_2}"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD rbox SD [label="Values in ATT Table:\nhandle_1: peer_value_1\nhandle_2: peer_value_2"];
+ * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
+ * SD:>PEER [label = "ATT Execute Write Response", textcolor="#000080", linecolor="#000080"];
+ * |||;
+ * --- [label = " Variant #2 Attribute values in user memory (VLOC_USER), attribute values validation passed "];
+ * APP rbox APP [label="Application traverses its queue and executes the write operations (memcpy)"];
+ * APP rbox APP [label="Values in ATT Table:\nhandle_1: peer_value_1\nhandle_2: peer_value_2"];
+ * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
+ * SD:>PEER [label = "ATT Execute Write Response", textcolor="#000080", linecolor="#000080"];
+ * |||;
+ * --- [label = " Variant #3 Attribute values validation failed "];
+ * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, INVALID_OFFSET)"];
+ * APP rbox SD [label="Values in ATT Table:\nhandle_1: current_value_1\nhandle_2: current_value_2"];
+ * SD:>PEER [label = "ATT Error Response {Invalid Offset}", textcolor="#000080", linecolor="#000080"];
+ * @endmsc
+ *
+ * @defgroup BLE_GATTS_QUEUED_WRITE_NOBUF_AUTH_MSC GATTS Queued Writes: App handled, one or more attributes require authorization
+ * @msc
+ * hscale = "2";
+ * APP,SD,PEER;
+ * |||;
+ * APP rbox PEER [label="Connection Established"];
+ * |||;
+ * APP rbox APP [label="Values in ATT Table (in user memory):\nhandle_1: current_value_1\nhandle_2: current_value_2"];
+ * SD<:PEER [label = "ATT Prepare Write Request {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_EVT_USER_MEM_REQUEST {BLE_USER_MEM_TYPE_GATTS_QUEUED_WRITES}"];
+ * APP=>SD [label = "sd_ble_user_mem_reply {NULL}"];
+ * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, PREP_WRITE_REQ, handle_1, offset_1, peer_value_1}"];
+ * APP rbox APP [label="App queues {handle_1, offset_1, peer_value_1}"];
+ * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
+ * SD:>PEER [label = "ATT Prepare Write Response {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Prepare Write Request {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, PREP_WRITE_REQ, handle_2, offset_2, peer_value_2}"];
+ * |||;
+ * --- [label = " Variant #1 App Authorizes both Prepare Write and Execute Write"];
+ * APP rbox APP [label="App queues {handle_2, offset_2, peer_value_2}"];
+ * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
+ * SD:>PEER [label = "ATT Prepare Write Response {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, EXEC_WRITE_REQ_NOW}"];
+ * APP rbox APP [label="Application traverses its queue and executes the write operations (memcpy)"];
+ * APP rbox APP [label="Values in ATT Table:\nhandle_1: peer_value_1\nhandle_2: peer_value_2"];
+ * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
+ * SD:>PEER [label = "ATT Execute Write Response", textcolor="#000080", linecolor="#000080"];
+ * |||;
+ * --- [label = " Variant #2 App Disallows Prepare Write and Authorizes Execute Write "];
+ * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, INSUF_AUTHORIZATION)"];
+ * SD:>PEER [label = "ATT Error Response {Insufficient Authorization}", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, EXEC_WRITE_REQ_NOW}"];
+ * APP rbox APP [label="Application traverses its queue and executes the write operations (memcpy)"];
+ * APP rbox APP [label="Values in ATT Table:\nhandle_1: peer_value_1\nhandle_2: current_value_2"];
+ * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
+ * SD:>PEER [label = "ATT Execute Write Response", textcolor="#000080", linecolor="#000080"];
+ * |||;
+ * --- [label = " Variant #3 App Authorizes Prepare Write and Disallows Execute Write "];
+ * APP rbox APP [label="App queues {handle_2, offset_2, peer_value_2}"];
+ * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
+ * SD:>PEER [label = "ATT Prepare Write Response {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, EXEC_WRITE_REQ_NOW}"];
+ * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, APP_ERROR_CODE)"];
+ * APP rbox APP [label="Values in ATT Table:\nhandle_1: current_value_1\nhandle_2: current_value_2"];
+ * SD:>PEER [label = "ATT Error Response {APP_ERROR_CODE}", textcolor="#000080", linecolor="#000080"];
+ * @endmsc
+ *
+ * @defgroup BLE_GATTS_QUEUED_WRITE_QUEUE_FULL_MSC GATTS Queued Writes: Prepare Queue Full
+ * @msc
+ * hscale = "2";
+ * APP,SD,PEER;
+ * |||;
+ * APP rbox PEER [label="Connection Established"];
+ * |||;
+ * SD rbox SD [label="Values in ATT Table:\nhandle_1: current_value_1\nhandle_2: current_value_2"];
+ * SD<:PEER [label = "ATT Prepare Write Request {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_EVT_USER_MEM_REQUEST {BLE_USER_MEM_TYPE_GATTS_QUEUED_WRITES}"];
+ * |||;
+ * --- [label = " Variant #1 Stack handled "];
+ * APP=>SD [label = "sd_ble_user_mem_reply {user_mem_block}"];
+ * SD:>PEER [label = "ATT Prepare Write Response {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Prepare Write Request {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
+ * SD:>PEER [label = "ATT Error Response {Prepare Queue Full}", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
+ * SD rbox SD [label="Values in ATT Table:\nhandle_1: peer_value_1\nhandle_2: current_value_2"];
+ * APP<<=SD [label = "BLE_GATTS_EVT_WRITE {EXEC_WRITE_REQ_NOW}"];
+ * APP rbox APP [label="App parses the memory it provided"];
+ * SD:>PEER [label = "ATT Execute Write Response", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_EVT_USER_MEM_RELEASE {user_mem_block}"];
+ * |||;
+ * --- [label = " Variant #2 App handled "];
+ * APP=>SD [label = "sd_ble_user_mem_reply {NULL}"];
+ * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, PREP_WRITE_REQ, handle_1, offset_1, peer_value_1}"];
+ * APP rbox APP [label="App queues {handle_1, offset_1, peer_value_1}"];
+ * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
+ * SD:>PEER [label = "ATT Prepare Write Response {handle_1, offset_1, peer_value_1}", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Prepare Write Request {handle_2, offset_2, peer_value_2}", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, PREP_WRITE_REQ, handle_2, offset_2, peer_value_2}"];
+ * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, PREPARE_QUEUE_FULL)"];
+ * SD:>PEER [label = "ATT Error Response {Prepare Queue Full}", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Execute Write Request {WRITE}", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST {WRITE, EXEC_WRITE_REQ_NOW}"];
+ * APP=>SD [label = "sd_ble_gatts_value_set {handle_1, offset_1, peer_value_1}"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * APP=>SD [label = "sd_ble_gatts_rw_authorize_reply(WRITE, SUCCESS)"];
+ * SD rbox SD [label="Values in ATT Table:\nhandle_1: peer_value_1\nhandle_2: current_value_2"];
+ * SD:>PEER [label = "ATT Execute Write Response", textcolor="#000080", linecolor="#000080"];
+ * @endmsc
+ *
+ * @defgroup BLE_GATTS_HVI_MSC GATTS Handle Value Indication
+ * @msc
+ * hscale = "1.5";
+ * APP,SD,PEER;
+ * |||;
+ * APP rbox PEER [label="Connection Established"];
+ * |||;
+ * APP rbox PEER [label="Indications Enabled in CCCD"];
+ * |||;
+ * SD rbox SD [label="Value in ATT Table: current_value"];
+ * APP=>SD [label = "sd_ble_gatts_hvx(INDICATION, app_value)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD rbox SD [label="Value in ATT Table: app_value"];
+ * SD:>PEER [label = "ATT Handle Value Indication {app_value}", textcolor="#000080", linecolor="#000080"];
+ * --- [label = " Variant #1 Peer Confirms "];
+ * SD<:PEER [label = "ATT Handle Value Confirmation", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTS_EVT_HVC"];
+ * --- [label = " Variant #2 Peer Ignores "];
+ * |||;
+ * ...;
+ * |||;
+ * SD box SD [label="Timeout"];
+ * APP<<=SD [label = "BLE_GATTS_EVT_TIMEOUT"];
+ * @endmsc
+ *
+ * @defgroup BLE_GATTS_HVN_MSC GATTS Handle Value Notification
+ * @msc
+ * hscale = "1.5";
+ * APP,SD,PEER;
+ * |||;
+ * APP rbox PEER [label="Connection Established"];
+ * |||;
+ * APP rbox PEER [label="Notifications Enabled in CCCD"];
+ * |||;
+ * SD rbox SD [label="Value in ATT Table: current_value"];
+ * APP=>SD [label = "sd_ble_gatts_hvx(NOTIFICATION, app_value)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD rbox SD [label="Value in ATT Table: app_value"];
+ * SD:>PEER [label = "ATT Handle Value Notification {app_value}", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_EVT_TX_COMPLETE"];
+ * @endmsc
+ *
+ * @defgroup BLE_GATTS_HVX_DISABLED_MSC GATTS Handle Value Indication or Notification disabled
+ * @msc
+ * hscale = "1.5";
+ * APP,SD,PEER;
+ * |||;
+ * APP rbox PEER [label="Connection Established"];
+ * |||;
+ * APP rbox PEER [label="Indications and Notifications Disabled in CCCD"];
+ * |||;
+ * SD rbox SD [label="Value in ATT Table: current_value"];
+ * APP=>SD [label = "sd_ble_gatts_hvx(INDICATION or NOTIFICATION, app_value)"];
+ * APP<<SD [label = "NRF_ERROR_INVALID_STATE"];
+ * SD rbox SD [label="Value in ATT Table: current_value"];
+ * @endmsc
+ *
+ * @defgroup BLE_GATTS_HVX_SYS_ATTRS_MISSING_MSC GATTS Handle Value Indication or Notification with System Attributes Missing
+ * @msc
+ * hscale = "1.5";
+ * APP,SD,PEER;
+ * |||;
+ * APP rbox PEER [label="Connection Established"];
+ * |||;
+ * APP rbox PEER [label="System Attributes Uninitialized"];
+ * |||;
+ * SD rbox SD [label="Value in ATT Table: current_value"];
+ * APP=>SD [label = "sd_ble_gatts_hvx(INDICATION or NOTIFICATION, app_value)"];
+ * APP<<SD [label = "BLE_ERROR_GATTS_SYS_ATTR_MISSING"];
+ * SD rbox SD [label="Value in ATT Table: current_value"];
+ * APP=>SD [label = "sd_ble_gatts_sys_attr_set()"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * |||;
+ * ...;
+ * @endmsc
+ *
+ * @defgroup BLE_GATTS_SC_MSC GATTS Service Changed
+ * @msc
+ * hscale = "1.5";
+ * APP,SD,PEER;
+ * |||;
+ * APP rbox SD [label="Entries added to the ATT Table between handles N and M"];
+ * |||;
+ * APP rbox PEER [label="Connection Established with a Bonded Peer"];
+ * |||;
+ * APP=>SD [label = "sd_ble_gatts_service_changed(N, M)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Handle Value Indication {N, M}", textcolor="#000080", linecolor="#000080"];
+ * SD<:PEER [label = "ATT Handle Value Confirmation", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTS_EVT_SC_CONFIRM"];
+ * |||;
+ * SD rbox PEER [label="Service Discovery"];
+ * @endmsc
+ *
+ * @defgroup BLE_GATTS_SYS_ATTRS_UNK_PEER_MSC GATTS System Attributes Handling: Unknown Peer
+ * @msc
+ * hscale = "1.5";
+ * APP,SD,PEER;
+ * |||;
+ * APP rbox PEER [label="Connection Established with an Unknown Peer"];
+ * |||;
+ * SD<:PEER [label = "ATT Read Request {sys_attr_handle}", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTS_EVT_SYS_ATTR_MISSING"];
+ * APP=>SD [label = "sd_ble_gatts_sys_attr_set(NULL)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Read Response {sys_attr_value}", textcolor="#000080", linecolor="#000080"];
+ * @endmsc
+ *
+ * @defgroup BLE_GATTS_SYS_ATTRS_BONDED_PEER_MSC GATTS System Attributes Handling: Bonded Peer
+ * @msc
+ * hscale = "1.5";
+ * APP,SD,PEER;
+ * |||;
+ * APP rbox PEER [label="Connection Established with a Bonded Peer"];
+ * |||;
+ * APP rbox PEER [label="ATT Traffic"];
+ * |||;
+ * APP rbox PEER [label="Connection Terminated"];
+ * APP<<=SD [label = "BLE_GAP_EVT_DISCONNECTED {reason}"];
+ * |||;
+ * APP=>SD [label = "sd_ble_gatts_sys_attr_get()"];
+ * APP<<SD [label = "{NRF_SUCCESS, sys_attr_data}"];
+ * APP rbox APP [label="Store System Attributes"];
+ * |||;
+ * APP rbox SD [label="Shut down IC"];
+ * |||;
+ * APP rbox SD [label="Power up IC"];
+ * |||;
+ * APP rbox PEER [label="Connection Established with the Bonded Peer"];
+ * SD<:PEER [label = "ATT Read Request {sys_attr_handle}", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_GATTS_EVT_SYS_ATTR_MISSING"];
+ * APP rbox APP [label="Load System Attributes"];
+ * APP=>SD [label = "sd_ble_gatts_sys_attr_set(sys_attr_data)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "ATT Read Response {sys_attr_value}", textcolor="#000080", linecolor="#000080"];
+ * @endmsc
+ * @}
+ *
+ * @addtogroup BLE_GATTS_QUEUED_WRITES_USER_MEM User memory layout for Queued Writes
+ * @{ 
+ *  The following table shows the memory layout used by the SoftDevice to queue a Queued Write operation (Prepare Write ATT packet) in user memory:
+ *
+ *  <table style="border:1px solid black;border-collapse:collapse;">
+ *  <caption>Queued Write</caption>
+ *  <tr>
+ *  <th style="border:1px solid black;padding:5px;">Parameter</th>
+ *  <th style="border:1px solid black;padding:5px;">Size (octets)</th>
+ *  <th style="border:1px solid black;padding:5px;">Description</th>
+ *  </tr>
+ *  <tr>
+ *  <td style="border:1px solid black;padding:5px;">Handle</td>
+ *  <td style="border:1px solid black;padding:5px;">2</td>
+ *  <td style="border:1px solid black;padding:5px;">Attribute Handle</td>
+ *  </tr>
+ *  <tr>
+ *  <td style="border:1px solid black;padding:5px;">Offset</td>
+ *  <td style="border:1px solid black;padding:5px;">2</td>
+ *  <td style="border:1px solid black;padding:5px;">Value Offset</td>
+ *  </tr>
+ *  <tr>
+ *  <td style="border:1px solid black;padding:5px;">Length</td>
+ *  <td style="border:1px solid black;padding:5px;">2</td>
+ *  <td style="border:1px solid black;padding:5px;">Value Length</td>
+ *  </tr>
+ *  <tr>
+ *  <td style="border:1px solid black;padding:5px;">Value</td>
+ *  <td style="border:1px solid black;padding:5px;">Length</td>
+ *  <td style="border:1px solid black;padding:5px;">Attribute Value</td>
+ *  </tr>
+ *  </table>
+ *
+ *  The application can parse the array of Queued Write instances at any time, but it is recommended to do so whenever an Execute Write ATT packet 
+ *  has been received over the air. See the GATT Server Queued Writes MSCs for more details.
+ *  The array will be terminated by an Queued Write instance with its handle set to @ref BLE_GATT_HANDLE_INVALID.
+ * @}
+ * @}
+ */
+
+/**
+ * @addtogroup BLE_L2CAP 
+ * @{
+ * @defgroup BLE_L2CAP_MSC Message Sequence Charts
+ * @{
+ * @defgroup BLE_L2CAP_API_MSC L2CAP API
+ * @msc
+ * hscale = "1.5";
+ * APP,SD,PEER;
+ * |||;
+ * APP=>SD [label = "sd_ble_l2cap_cid_register(cid)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * |||;
+ * APP rbox PEER [label="Connection Established"];
+ * |||;
+ * APP=>SD [label = "sd_ble_l2cap_tx(data)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "L2CAP packet", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_EVT_TX_COMPLETE"];
+ * SD<:PEER [label = "L2CAP packet", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_L2CAP_EVT_RX"];
+ * SD<:PEER [label = "L2CAP packet", textcolor="#000080", linecolor="#000080"];
+ * APP<<=SD [label = "BLE_L2CAP_EVT_RX"];
+ * |||;
+ * APP=>SD [label = "sd_ble_l2cap_tx(data)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * SD:>PEER [label = "L2CAP packet", textcolor="#000080", linecolor="#000080"];
+ * SD=>>APP [label = "BLE_EVT_TX_COMPLETE"];
+ * |||;
+ * APP rbox PEER [label="Terminate Connection"];
+ * |||;
+ * APP=>SD [label = "sd_ble_l2cap_cid_unregister(cid)"];
+ * APP<<SD [label = "NRF_SUCCESS"];
+ * @endmsc
+ * @}
+ * @}
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/ble.h	Tue Mar 18 12:30:07 2014 +0000
@@ -0,0 +1,302 @@
+/* Copyright (c) 2011 Nordic Semiconductor. All Rights Reserved.
+ *
+ * The information contained herein is confidential property of Nordic Semiconductor. The use,
+ * copying, transfer or disclosure of such information is prohibited except by express written
+ * agreement with Nordic Semiconductor.
+ *
+ */
+/**
+  @addtogroup BLE_COMMON BLE SoftDevice Common
+  @{
+  @defgroup ble_api Events, type definitions and API calls
+  @{
+
+  @brief Module independent events, type definitions and API calls for the S110 SoftDevice.
+
+ */
+
+#ifndef BLE_H__
+#define BLE_H__
+
+#include "ble_ranges.h"
+#include "ble_types.h"
+#include "ble_gap.h"
+#include "ble_l2cap.h"
+#include "ble_gatt.h"
+#include "ble_gattc.h"
+#include "ble_gatts.h"
+
+/**
+ * @brief Common API SVC numbers.
+ */
+enum BLE_COMMON_SVCS
+{
+  SD_BLE_EVT_GET  = BLE_SVC_BASE,       /**< Get an event from the pending events queue. */
+  SD_BLE_TX_BUFFER_COUNT_GET,           /**< Get the total number of available application transmission buffers from the stack. */
+  SD_BLE_UUID_VS_ADD,                   /**< Add a Vendor Specific UUID. */
+  SD_BLE_UUID_DECODE,                   /**< Decode UUID bytes. */
+  SD_BLE_UUID_ENCODE,                   /**< Encode UUID bytes. */
+  SD_BLE_VERSION_GET,                   /**< Get the local version information (company id, LMP Version, LMP Subversion). */
+  SD_BLE_USER_MEM_REPLY,                /**< User Memory Reply. */
+};
+
+/** @brief  Required pointer alignment for BLE Events.
+*/
+#define BLE_EVTS_PTR_ALIGNMENT    4
+
+/** @defgroup BLE_USER_MEM_TYPES User Memory Types
+ * @{ */
+#define BLE_USER_MEM_TYPE_INVALID               0x00  /**< Invalid User Memory Types. */
+#define BLE_USER_MEM_TYPE_GATTS_QUEUED_WRITES   0x01  /**< User Memory for GATTS queued writes. */
+/** @} */
+
+/** @brief  Maximum number of Vendor Specific UUIDs.
+*/
+#define BLE_UUID_VS_MAX_COUNT     10
+
+/**
+ * @brief BLE Module Independent Event IDs.
+ */
+enum BLE_COMMON_EVTS
+{
+  BLE_EVT_TX_COMPLETE  = BLE_EVT_BASE,  /**< Transmission Complete. */
+  BLE_EVT_USER_MEM_REQUEST,             /**< User Memory request. */
+  BLE_EVT_USER_MEM_RELEASE              /**< User Memory release. */
+};
+
+/**@brief User Memory Block. */
+typedef struct
+{
+  uint8_t*          p_mem;      /**< Pointer to the start of the user memory block. */
+  uint16_t          len;        /**< Length in bytes of the user memory block. */
+} ble_user_mem_block_t;
+
+/**
+ * @brief TX complete event.
+ */
+typedef struct
+{
+  uint8_t count;                        /**< Number of packets transmitted. */
+} ble_evt_tx_complete_t;
+
+/**@brief Event structure for BLE_EVT_USER_MEM_REQUEST. */
+typedef struct
+{
+  uint8_t                     type;     /**< User memory type, see @ref BLE_USER_MEM_TYPES. */
+} ble_evt_user_mem_request_t;
+
+/**@brief Event structure for BLE_EVT_USER_MEM_RELEASE. */
+typedef struct
+{
+  uint8_t                     type;       /**< User memory type, see @ref BLE_USER_MEM_TYPES. */
+  ble_user_mem_block_t        mem_block;  /**< User memory block */
+} ble_evt_user_mem_release_t;
+
+
+/**@brief Event structure for events not associated with a specific function module. */
+typedef struct
+{
+  uint16_t conn_handle;                 /**< Connection Handle on which this event occured. */
+  union
+  {
+    ble_evt_tx_complete_t           tx_complete;        /**< Transmission Complete. */
+    ble_evt_user_mem_request_t      user_mem_request;   /**< User Memory Request Event Parameters. */
+    ble_evt_user_mem_release_t      user_mem_release;   /**< User Memory Release Event Parameters. */
+  } params;
+} ble_common_evt_t;
+
+/**@brief BLE Event header. */
+typedef struct
+{
+  uint16_t evt_id;                      /**< Value from a BLE_<module>_EVT series. */
+  uint16_t evt_len;                     /**< Length in octets excluding this header. */
+} ble_evt_hdr_t;
+
+/**@brief Common BLE Event type, wrapping the module specific event reports. */
+typedef struct
+{
+  ble_evt_hdr_t header;                 /**< Event header. */
+  union
+  {
+    ble_common_evt_t  common_evt;         /**< Common Event, evt_id in BLE_EVT_* series. */
+    ble_gap_evt_t     gap_evt;            /**< GAP originated event, evt_id in BLE_GAP_EVT_* series. */
+    ble_l2cap_evt_t   l2cap_evt;          /**< L2CAP originated event, evt_id in BLE_L2CAP_EVT* series. */
+    ble_gattc_evt_t   gattc_evt;          /**< GATT client originated event, evt_id in BLE_GATTC_EVT* series. */
+    ble_gatts_evt_t   gatts_evt;          /**< GATT server originated event, evt_id in BLE_GATTS_EVT* series. */
+  } evt;
+} ble_evt_t;
+
+
+/**
+ * @brief Version Information.
+ */
+typedef struct
+{
+  uint8_t   version_number;             /**< LMP Version number for BT 4.0 spec is 6 (https://www.bluetooth.org/technical/assignednumbers/link_layer.htm). */
+  uint16_t  company_id;                 /**< Company ID, Nordic Semiconductor's company ID is 89 (0x0059) (https://www.bluetooth.org/apps/content/Default.aspx?doc_id=49708). */
+  uint16_t  subversion_number;          /**< LMP Sub Version number corresponds to the SoftDevice Config ID. */
+} ble_version_t;
+
+
+/**@brief Get an event from the pending events queue.
+ *
+ * @param[in] p_dest Pointer to buffer to be filled in with an event, or NULL to retrieve the event length. This buffer <b>must be 4-byte aligned in memory</b>.
+ * @param[in, out] p_len Pointer the length of the buffer, on return it is filled with the event length.
+ *
+ * @details This call allows the application to pull a BLE event from the BLE stack. The application is signalled that an event is 
+ * available from the BLE Stack by the triggering of the SD_EVT_IRQn interrupt (mapped to IRQ 22).
+ * The application is free to choose whether to call this function from thread mode (main context) or directly from the Interrupt Service Routine
+ * that maps to SD_EVT_IRQn. In any case however, and because the BLE stack runs at a higher priority than the application, this function should be called
+ * in a loop (until @ref NRF_ERROR_NOT_FOUND is returned) every time SD_EVT_IRQn is raised to ensure that all available events are pulled from the stack. 
+ * Failure to do so could potentially leave events in the internal queue without the application being aware of this fact.
+ * Sizing the p_dest buffer is equally important, since the application needs to provide all the memory necessary for the event to be copied into
+ * application memory. If the buffer provided is not large enough to fit the entire contents of the event, @ref NRF_ERROR_DATA_SIZE will be returned
+ * and the application can then call again with a larger buffer size.
+ * Please note that because of the variable length nature of some events, sizeof(ble_evt_t) will not always be large enough to fit certain events, 
+ * and so it is the application's responsability to provide an amount of memory large enough so that the relevant event is copied in full.
+ * The application may "peek" the event length by providing p_dest as a NULL pointer and inspecting the value of *p_len upon return.
+ *
+ * @note The pointer supplied must be aligned to the extend defined by @ref BLE_EVTS_PTR_ALIGNMENT
+ *
+ * @return @ref NRF_SUCCESS Event pulled and stored into the supplied buffer.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid or not sufficiently aligned pointer supplied.
+ * @return @ref NRF_ERROR_NOT_FOUND No events ready to be pulled.
+ * @return @ref NRF_ERROR_DATA_SIZE Event ready but could not fit into the supplied buffer.
+ */
+SVCALL(SD_BLE_EVT_GET, uint32_t, sd_ble_evt_get(uint8_t* p_dest, uint16_t *p_len));
+
+
+/**@brief Get the total number of available application transmission buffers in the BLE stack.
+ *
+ * @details This call allows the application to obtain the total number of
+ *          transmission buffers available for application data. Please note that
+ *          this does not give the number of free buffers, but rather the total amount of them.
+ *          The application has two options to handle its own application transmission buffers:
+ *          - Use a simple arithmetic calculation: at boot time the application should use this function
+ *          to find out the total amount of buffers available to it and store it in a variable.
+ *          Every time a packet that consumes an application buffer is sent using any of the 
+ *          exposed functions in this BLE API, the application should decrement that variable.
+ *          Conversely, whenever a @ref BLE_EVT_TX_COMPLETE event is received by the application
+ *          it should retrieve the count field in such event and add that number to the same
+ *          variable storing the number of available packets.
+ *          This mechanism allows the application to be aware at any time of the number of
+ *          application packets available in the BLE stack's internal buffers, and therefore
+ *          it can know with certainty whether it is possible to send more data or it has to
+ *          wait for a @ref BLE_EVT_TX_COMPLETE event before it proceeds.
+ *          - Choose to simply not keep track of available buffers at all, and instead handle the 
+ *          @ref BLE_ERROR_NO_TX_BUFFERS error by queueing the packet to be transmitted and 
+ *          try again as soon as a @ref BLE_EVT_TX_COMPLETE event arrives.
+ *
+ *          The API functions that <b>may</b> consume an application buffer depending on 
+ *          the parameters supplied to them can be found below:
+ *
+ *          - @ref sd_ble_gattc_write (write witout response only)
+ *          - @ref sd_ble_gatts_hvx (notifications only)
+ *          - @ref sd_ble_l2cap_tx (all packets)
+ *
+ * @param[out] p_count Pointer to a uint8_t which will contain the number of application transmission buffers upon
+ *                     successful return.
+ *
+ * @return @ref NRF_SUCCESS Number of application transmission buffers retrieved successfully.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ */
+SVCALL(SD_BLE_TX_BUFFER_COUNT_GET, uint32_t, sd_ble_tx_buffer_count_get(uint8_t* p_count));
+
+
+/**@brief Add a Vendor Specific UUID.
+ *
+ * @details This call enables the application to add a vendor specific UUID to the BLE stack's table,
+ *          for later use all other modules and APIs. This then allows the application to use the shorter,
+ *          24-bit @ref ble_uuid_t format when dealing with both 16-bit and 128-bit UUIDs without having to
+ *          check for lengths and having split code paths. The way that this is accomplished is by extending the 
+ *          grouping mechanism that the Bluetooth SIG standard base UUID uses for all other 128-bit UUIDs. The 
+ *          type field in the @ref ble_uuid_t structure is an index (relative to @ref BLE_UUID_TYPE_VENDOR_BEGIN) 
+ *          to the table populated by multiple calls to this function, and the uuid field in the same structure 
+ *          contains the 2 bytes at indices 12 and 13. The number of possible 128-bit UUIDs available to the 
+ *          application is therefore the number of Vendor Specific UUIDs added with the help of this function times 65536, 
+ *          although restricted to modifying bytes 12 and 13 for each of the entries in the supplied array.
+ *
+ * @note Bytes 12 and 13 of the provided UUID will not be used internally, since those are always replaced by 
+ * the 16-bit uuid field in @ref ble_uuid_t.
+ *
+ *
+ * @param[in]  p_vs_uuid    Pointer to a 16-octet (128-bit) little endian Vendor Specific UUID disregarding
+ *                          bytes 12 and 13.
+ * @param[out] p_uuid_type  Pointer where the type field in @ref ble_uuid_t corresponding to this UUID will be stored.
+ *
+ * @return @ref NRF_SUCCESS Successfully added the Vendor Specific UUID.
+ * @return @ref NRF_ERROR_INVALID_ADDR If p_vs_uuid or p_uuid_type is NULL or invalid.
+ * @return @ref NRF_ERROR_NO_MEM If there are no more free slots for VS UUIDs.
+ * @return @ref NRF_ERROR_FORBIDDEN If p_vs_uuid has already been added to the VS UUID table.
+ */
+SVCALL(SD_BLE_UUID_VS_ADD, uint32_t, sd_ble_uuid_vs_add(ble_uuid128_t const * const p_vs_uuid, uint8_t * const p_uuid_type));
+
+
+/** @brief Decode little endian raw UUID bytes (16-bit or 128-bit) into a 24 bit @ref ble_uuid_t structure.
+ * 
+ * @details The raw UUID bytes excluding bytes 12 and 13 (i.e. bytes 0-11 and 14-15) of p_uuid_le are compared 
+ * to the corresponding ones in each entry of the table of vendor specific UUIDs pouplated with @ref sd_ble_uuid_vs_add 
+ * to look for a match. If there is such a match, bytes 12 and 13 are returned as p_uuid->uuid and the index 
+ * relative to @ref BLE_UUID_TYPE_VENDOR_BEGIN as p_uuid->type. 
+ *
+ * @note If the UUID length supplied is 2, then the type set by this call will always be @ref BLE_UUID_TYPE_BLE.
+ *
+ * @param[in]      uuid_le_len Length in bytes of the buffer pointed to by p_uuid_le (must be 2 or 16 bytes).
+ * @param[in]      p_uuid_le   Pointer pointing to little endian raw UUID bytes.
+ * @param[in,out]  p_uuid      Pointer to a @ref ble_uuid_t structure to be filled in.
+ *
+ * @return @ref NRF_SUCCESS Successfully decoded into the @ref ble_uuid_t structure.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @return @ref NRF_ERROR_INVALID_LENGTH Invalid UUID length.
+ * @return @ref NRF_ERROR_NOT_FOUND For a 128-bit UUID, no match in the populated table of UUIDs.
+ */                                                 
+SVCALL(SD_BLE_UUID_DECODE, uint32_t, sd_ble_uuid_decode(uint8_t uuid_le_len, uint8_t const * const p_uuid_le, ble_uuid_t * const p_uuid));
+
+
+/** @brief Encode a @ref ble_uuid_t structure into little endian raw UUID bytes (16-bit or 128-bit).
+ *
+ * @note The pointer to the destination buffer p_uuid_le may be NULL, in which case only the validitiy and size of p_uuid is computed.
+ *
+ * @param[in]      p_uuid        Pointer to a @ref ble_uuid_t structure that will be encoded into bytes.
+ * @param[out]     p_uuid_le_len Pointer to a uint8_t that will be filled with the encoded length (2 or 16 bytes).
+ * @param[out]     p_uuid_le     Pointer to a buffer where the little endian raw UUID bytes (2 or 16) will be stored.
+ *
+ * @return @ref NRF_SUCCESS Successfully encoded into the buffer.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @return @ref NRF_ERROR_INVALID_PARAM Invalid UUID type.
+ */
+SVCALL(SD_BLE_UUID_ENCODE, uint32_t, sd_ble_uuid_encode(ble_uuid_t const * const p_uuid, uint8_t * const  p_uuid_le_len, uint8_t * const p_uuid_le));
+
+
+/**@brief Get Version Information.
+ *
+ * @details This call allows the application to get the BLE stack version information.
+ *
+ * @param[in] p_version Pointer to ble_version_t structure to be filled in.
+ *
+ * @return @ref NRF_SUCCESS  Version information stored successfully.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @return @ref NRF_ERROR_BUSY The stack is busy (typically doing a locally-initiated disconnection procedure).
+ */
+SVCALL(SD_BLE_VERSION_GET, uint32_t, sd_ble_version_get(ble_version_t * p_version));
+
+
+/**@brief Provide a user memory block.
+ *
+ * @note This call can only be used as a response to a @ref BLE_EVT_USER_MEM_REQUEST event issued to the application.
+ *
+ * @param[in] conn_handle                 Connection handle.
+ * @param[in] p_block                     Pointer to a user memory block structure.
+ *
+ * @return @ref NRF_SUCCESS               Successfully queued a response to the peer.
+ * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @return @ref NRF_ERROR_INVALID_STATE   No execute write request pending.
+ */
+SVCALL(SD_BLE_USER_MEM_REPLY, uint32_t, sd_ble_user_mem_reply(uint16_t conn_handle, ble_user_mem_block_t *p_block));
+
+#endif /* BLE_H__ */
+
+/**
+  @}
+  @}
+*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/ble_err.h	Tue Mar 18 12:30:07 2014 +0000
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2012 Nordic Semiconductor. All Rights Reserved.
+ *
+ * The information contained herein is confidential property of Nordic Semiconductor. The use,
+ * copying, transfer or disclosure of such information is prohibited except by express written
+ * agreement with Nordic Semiconductor.
+ *
+ */
+ /**
+  @addtogroup BLE_COMMON
+  @{
+  @addtogroup  nrf_error
+  @{
+    @ingroup BLE_COMMON
+  @}
+
+  @defgroup ble_err General error codes
+  @{
+
+  @brief General error code definitions for the BLE API.
+
+  @ingroup BLE_COMMON
+*/
+#ifndef NRF_BLE_ERR_H__
+#define NRF_BLE_ERR_H__
+
+#include "nrf_error.h"
+
+/* @defgroup BLE_ERRORS Error Codes
+ * @{ */
+#define BLE_ERROR_INVALID_CONN_HANDLE    (NRF_ERROR_STK_BASE_NUM+0x001) /**< Invalid connection handle. */
+#define BLE_ERROR_INVALID_ATTR_HANDLE    (NRF_ERROR_STK_BASE_NUM+0x002) /**< Invalid attribute handle. */
+#define BLE_ERROR_NO_TX_BUFFERS          (NRF_ERROR_STK_BASE_NUM+0x003) /**< Buffer capacity exceeded. */
+/** @} */
+
+
+/** @defgroup BLE_ERROR_SUBRANGES Module specific error code subranges
+ *  @brief Assignment of subranges for module specific error codes.
+ *  @note For specific error codes, see ble_<module>.h or ble_error_<module>.h.
+ * @{ */
+#define NRF_L2CAP_ERR_BASE             (NRF_ERROR_STK_BASE_NUM+0x100) /**< L2CAP specific errors. */
+#define NRF_GAP_ERR_BASE               (NRF_ERROR_STK_BASE_NUM+0x200) /**< GAP specific errors. */
+#define NRF_GATTC_ERR_BASE             (NRF_ERROR_STK_BASE_NUM+0x300) /**< GATT client specific errors. */
+#define NRF_GATTS_ERR_BASE             (NRF_ERROR_STK_BASE_NUM+0x400) /**< GATT server specific errors. */
+/** @} */
+
+#endif
+
+
+/**
+  @}
+  @}
+*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/ble_gap.h	Tue Mar 18 12:30:07 2014 +0000
@@ -0,0 +1,895 @@
+/* Copyright (c) 2011 Nordic Semiconductor. All Rights Reserved.
+ *
+ * The information contained herein is confidential property of Nordic Semiconductor. The use,
+ * copying, transfer or disclosure of such information is prohibited except by express written
+ * agreement with Nordic Semiconductor.
+ *
+ */
+/**
+  @addtogroup BLE_GAP Generic Access Profile (GAP)
+  @{
+  @brief Definitions and prototypes for the GAP interface.
+ */
+
+#ifndef BLE_GAP_H__
+#define BLE_GAP_H__
+
+#include "ble_types.h"
+#include "ble_ranges.h"
+#include "nrf_svc.h"
+
+/**
+ * @brief GAP API SVC numbers.
+ */
+enum BLE_GAP_SVCS
+{
+  SD_BLE_GAP_ADDRESS_SET  = BLE_GAP_SVC_BASE,  /**< Set own Bluetooth Address. */
+  SD_BLE_GAP_ADDRESS_GET,                      /**< Get own Bluetooth Address. */
+  SD_BLE_GAP_ADV_DATA_SET,                     /**< Set Advertisement Data. */
+  SD_BLE_GAP_ADV_START,                        /**< Start Advertising. */
+  SD_BLE_GAP_ADV_STOP,                         /**< Stop Advertising. */
+  SD_BLE_GAP_CONN_PARAM_UPDATE,                /**< Connection Parameter Update. */
+  SD_BLE_GAP_DISCONNECT,                       /**< Disconnect. */
+  SD_BLE_GAP_TX_POWER_SET,                     /**< Set TX Power. */
+  SD_BLE_GAP_APPEARANCE_SET,                   /**< Set Appearance. */
+  SD_BLE_GAP_APPEARANCE_GET,                   /**< Get Appearance. */
+  SD_BLE_GAP_PPCP_SET,                         /**< Set PPCP. */
+  SD_BLE_GAP_PPCP_GET,                         /**< Get PPCP. */
+  SD_BLE_GAP_DEVICE_NAME_SET,                  /**< Set Device Name. */
+  SD_BLE_GAP_DEVICE_NAME_GET,                  /**< Get Device Name. */
+  SD_BLE_GAP_AUTHENTICATE,                     /**< Initiate Pairing/Bonding. */
+  SD_BLE_GAP_SEC_PARAMS_REPLY,                 /**< Reply with Security Parameters. */
+  SD_BLE_GAP_AUTH_KEY_REPLY,                   /**< Reply with an authentication key. */
+  SD_BLE_GAP_SEC_INFO_REPLY,                   /**< Reply with Security Information. */
+  SD_BLE_GAP_CONN_SEC_GET,                     /**< Obtain connection security level. */
+  SD_BLE_GAP_RSSI_START,                       /**< Start reporting of changes in RSSI. */ 
+  SD_BLE_GAP_RSSI_STOP,                        /**< Stop reporting of changes in RSSI. */ 
+};
+
+
+/** @addtogroup BLE_GAP_DEFINES Defines
+ * @{ */
+
+/** @defgroup BLE_ERRORS_GAP SVC return values specific to GAP
+ * @{ */
+#define BLE_ERROR_GAP_UUID_LIST_MISMATCH            (NRF_GAP_ERR_BASE + 0x000)  /**< UUID list does not contain an integral number of UUIDs. */
+#define BLE_ERROR_GAP_DISCOVERABLE_WITH_WHITELIST   (NRF_GAP_ERR_BASE + 0x001)  /**< Use of Whitelist not permitted with discoverable advertising. */
+#define BLE_ERROR_GAP_INVALID_BLE_ADDR              (NRF_GAP_ERR_BASE + 0x002)  /**< The upper two bits of the address do not correspond to the specified address type. */
+/** @} */
+
+
+/** @defgroup BLE_GAP_ROLES GAP Roles
+ * @note Not explicitly used in peripheral API, but will be relevant for central API.
+ * @{ */
+#define BLE_GAP_ROLE_INVALID     0x0            /**< Invalid Role. */
+#define BLE_GAP_ROLE_PERIPH      0x1            /**< Peripheral Role. */
+#define BLE_GAP_ROLE_CENTRAL     0x2            /**< Central Role. */
+/** @} */
+
+
+/** @defgroup BLE_GAP_TIMEOUT_SOURCES GAP Timeout sources
+ * @{ */
+#define BLE_GAP_TIMEOUT_SRC_ADVERTISEMENT              0x00 /**< Advertisement timeout. */
+#define BLE_GAP_TIMEOUT_SRC_SECURITY_REQUEST           0x01 /**< Security request timeout. */
+/** @} */
+
+
+/** @defgroup BLE_GAP_ADDR_TYPES GAP Address types
+ * @{ */
+#define BLE_GAP_ADDR_TYPE_PUBLIC                        0x00 /**< Public address. */
+#define BLE_GAP_ADDR_TYPE_RANDOM_STATIC                 0x01 /**< Random Static address. */
+#define BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE     0x02 /**< Private Resolvable address. */
+#define BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_NON_RESOLVABLE 0x03 /**< Private Non-Resolvable address. */
+/** @} */
+
+
+/** @brief BLE address length. */
+#define BLE_GAP_ADDR_LEN            6
+
+
+/** @defgroup BLE_GAP_AD_TYPE_DEFINITIONS GAP Advertising and Scan Response Data format
+ *  @note Found at https://www.bluetooth.org/Technical/AssignedNumbers/generic_access_profile.htm
+ * @{ */
+#define BLE_GAP_AD_TYPE_FLAGS                               0x01 /**< Flags for discoverability. */
+#define BLE_GAP_AD_TYPE_16BIT_SERVICE_UUID_MORE_AVAILABLE   0x02 /**< Partial list of 16 bit service UUIDs. */
+#define BLE_GAP_AD_TYPE_16BIT_SERVICE_UUID_COMPLETE         0x03 /**< Complete list of 16 bit service UUIDs. */
+#define BLE_GAP_AD_TYPE_32BIT_SERVICE_UUID_MORE_AVAILABLE   0x04 /**< Partial list of 32 bit service UUIDs. */
+#define BLE_GAP_AD_TYPE_32BIT_SERVICE_UUID_COMPLETE         0x05 /**< Complete list of 32 bit service UUIDs. */
+#define BLE_GAP_AD_TYPE_128BIT_SERVICE_UUID_MORE_AVAILABLE  0x06 /**< Partial list of 128 bit service UUIDs. */
+#define BLE_GAP_AD_TYPE_128BIT_SERVICE_UUID_COMPLETE        0x07 /**< Complete list of 128 bit service UUIDs. */
+#define BLE_GAP_AD_TYPE_SHORT_LOCAL_NAME                    0x08 /**< Short local device name. */
+#define BLE_GAP_AD_TYPE_COMPLETE_LOCAL_NAME                 0x09 /**< Complete local device name. */
+#define BLE_GAP_AD_TYPE_TX_POWER_LEVEL                      0x0A /**< Transmit power level. */
+#define BLE_GAP_AD_TYPE_CLASS_OF_DEVICE                     0x0D /**< Class of device. */
+#define BLE_GAP_AD_TYPE_SIMPLE_PAIRING_HASH_C               0x0E /**< Simple Pairing Hash C. */
+#define BLE_GAP_AD_TYPE_SIMPLE_PAIRING_RANDOMIZER_R         0x0F /**< Simple Pairing Randomizer R. */
+#define BLE_GAP_AD_TYPE_SECURITY_MANAGER_TK_VALUE           0x10 /**< Security Manager TK Value. */
+#define BLE_GAP_AD_TYPE_SECURITY_MANAGER_OOB_FLAGS          0x11 /**< Security Manager Out Of Band Flags. */
+#define BLE_GAP_AD_TYPE_SLAVE_CONNECTION_INTERVAL_RANGE     0x12 /**< Slave Connection Interval Range. */
+#define BLE_GAP_AD_TYPE_SOLICITED_SERVICE_UUIDS_16BIT       0x14 /**< List of 16-bit Service Solicitation UUIDs. */
+#define BLE_GAP_AD_TYPE_SOLICITED_SERVICE_UUIDS_128BIT      0x15 /**< List of 128-bit Service Solicitation UUIDs. */
+#define BLE_GAP_AD_TYPE_SERVICE_DATA                        0x16 /**< Service Data. */
+#define BLE_GAP_AD_TYPE_PUBLIC_TARGET_ADDRESS               0x17 /**< Public Target Address. */
+#define BLE_GAP_AD_TYPE_RANDOM_TARGET_ADDRESS               0x18 /**< Random Target Address. */
+#define BLE_GAP_AD_TYPE_APPEARANCE                          0x19 /**< Appearance. */
+#define BLE_GAP_AD_TYPE_MANUFACTURER_SPECIFIC_DATA          0xFF /**< Manufacturer Specific Data. */
+/** @} */
+
+
+/** @defgroup BLE_GAP_ADV_FLAGS GAP Advertisement Flags
+ * @{ */
+#define BLE_GAP_ADV_FLAG_LE_LIMITED_DISC_MODE         (0x01)   /**< LE Limited Discoverable Mode. */
+#define BLE_GAP_ADV_FLAG_LE_GENERAL_DISC_MODE         (0x02)   /**< LE General Discoverable Mode. */
+#define BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED         (0x04)   /**< BR/EDR not supported. */
+#define BLE_GAP_ADV_FLAG_LE_BR_EDR_CONTROLLER         (0x08)   /**< Simultaneous LE and BR/EDR, Controller. */
+#define BLE_GAP_ADV_FLAG_LE_BR_EDR_HOST               (0x10)   /**< Simultaneous LE and BR/EDR, Host. */
+#define BLE_GAP_ADV_FLAGS_LE_ONLY_LIMITED_DISC_MODE   (BLE_GAP_ADV_FLAG_LE_LIMITED_DISC_MODE | BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED)   /**< LE Limited Discoverable Mode, BR/EDR not supported. */
+#define BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE   (BLE_GAP_ADV_FLAG_LE_GENERAL_DISC_MODE | BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED)   /**< LE General Discoverable Mode, BR/EDR not supported. */
+/** @} */
+
+
+/** @defgroup BLE_GAP_ADV_INTERVALS GAP Advertising interval max and min
+ * @{ */
+#define BLE_GAP_ADV_INTERVAL_MIN        0x0020 /**< Minimum Advertising interval in 625 us units, i.e. 20 ms. */
+#define BLE_GAP_ADV_NONCON_INTERVAL_MIN 0x00A0 /**< Minimum Advertising interval in 625 us units for non connectable mode, i.e. 100 ms. */
+#define BLE_GAP_ADV_INTERVAL_MAX        0x4000 /**< Maximum Advertising interval in 625 us units, i.e. 10.24 s. */
+ /** @}  */
+
+
+/** @brief Maximum size of advertising data in octets. */
+#define  BLE_GAP_ADV_MAX_SIZE       31
+
+
+/** @defgroup BLE_GAP_ADV_TYPES GAP Advertising types
+ * @{ */
+#define BLE_GAP_ADV_TYPE_ADV_IND          0x00   /**< Connectable undirected. */
+#define BLE_GAP_ADV_TYPE_ADV_DIRECT_IND   0x01   /**< Connectable directed. */
+#define BLE_GAP_ADV_TYPE_ADV_SCAN_IND     0x02   /**< Scannable undirected. */
+#define BLE_GAP_ADV_TYPE_ADV_NONCONN_IND  0x03   /**< Non connectable undirected. */
+/** @} */
+
+
+/** @defgroup BLE_GAP_ADV_FILTER_POLICIES GAP Advertising filter policies
+ * @{ */
+#define BLE_GAP_ADV_FP_ANY                0x00   /**< Allow scan requests and connect requests from any device. */
+#define BLE_GAP_ADV_FP_FILTER_SCANREQ     0x01   /**< Filter scan requests with whitelist. */
+#define BLE_GAP_ADV_FP_FILTER_CONNREQ     0x02   /**< Filter connect requests with whitelist. */
+#define BLE_GAP_ADV_FP_FILTER_BOTH        0x03   /**< Filter both scan and connect requests with whitelist. */
+/** @} */
+
+
+/** @defgroup BLE_GAP_ADV_TIMEOUT_VALUES GAP Advertising timeout values
+ * @{ */
+#define BLE_GAP_ADV_TIMEOUT_LIMITED_MAX      180 /**< Maximum advertising time in limited discoverable mode (TGAP(lim_adv_timeout) = 180s in spec (Addendum 2)). */
+#define BLE_GAP_ADV_TIMEOUT_GENERAL_UNLIMITED  0 /**< Unlimited advertising in general discoverable mode. */
+/** @} */
+
+
+/** @defgroup BLE_GAP_DISC_MODES GAP Discovery modes
+ * @{ */
+#define BLE_GAP_DISC_MODE_NOT_DISCOVERABLE  0x00   /**< Not discoverable discovery Mode. */
+#define BLE_GAP_DISC_MODE_LIMITED           0x01   /**< Limited Discovery Mode. */
+#define BLE_GAP_DISC_MODE_GENERAL           0x02   /**< General Discovery Mode. */
+/** @} */
+
+/** @defgroup BLE_GAP_IO_CAPS GAP IO Capabilities
+ * @{ */
+#define BLE_GAP_IO_CAPS_DISPLAY_ONLY      0x00   /**< Display Only. */
+#define BLE_GAP_IO_CAPS_DISPLAY_YESNO     0x01   /**< Display and Yes/No entry. */
+#define BLE_GAP_IO_CAPS_KEYBOARD_ONLY     0x02   /**< Keyboard Only. */
+#define BLE_GAP_IO_CAPS_NONE              0x03   /**< No I/O capabilities. */
+#define BLE_GAP_IO_CAPS_KEYBOARD_DISPLAY  0x04   /**< Keyboard and Display. */
+/** @} */
+
+
+/** @defgroup BLE_GAP_AUTH_KEY_TYPES GAP Authentication Key Types
+ * @{ */
+#define BLE_GAP_AUTH_KEY_TYPE_NONE        0x00   /**< No key (may be used to reject). */
+#define BLE_GAP_AUTH_KEY_TYPE_PASSKEY     0x01   /**< 6-digit Passkey. */
+#define BLE_GAP_AUTH_KEY_TYPE_OOB         0x02   /**< Out Of Band data. */
+/** @} */
+
+/** @defgroup BLE_GAP_SEC_STATUS GAP Security status
+ * @{ */
+#define BLE_GAP_SEC_STATUS_SUCCESS                0x00  /**< Successful parameters. */
+#define BLE_GAP_SEC_STATUS_TIMEOUT                0x01  /**< Procedure timed out. */
+#define BLE_GAP_SEC_STATUS_PDU_INVALID            0x02  /**< Invalid PDU received. */
+#define BLE_GAP_SEC_STATUS_PASSKEY_ENTRY_FAILED   0x81  /**< Passkey entry failed (user cancelled or other). */
+#define BLE_GAP_SEC_STATUS_OOB_NOT_AVAILABLE      0x82  /**< Out of Band Key not available. */
+#define BLE_GAP_SEC_STATUS_AUTH_REQ               0x83  /**< Authentication requirements not met. */
+#define BLE_GAP_SEC_STATUS_CONFIRM_VALUE          0x84  /**< Confirm value failed. */
+#define BLE_GAP_SEC_STATUS_PAIRING_NOT_SUPP       0x85  /**< Pairing not supported.  */
+#define BLE_GAP_SEC_STATUS_ENC_KEY_SIZE           0x86  /**< Encryption key size. */
+#define BLE_GAP_SEC_STATUS_SMP_CMD_UNSUPPORTED    0x87  /**< Unsupported SMP command. */
+#define BLE_GAP_SEC_STATUS_UNSPECIFIED            0x88  /**< Unspecified reason. */
+#define BLE_GAP_SEC_STATUS_REPEATED_ATTEMPTS      0x89  /**< Too little time elapsed since last attempt. */
+#define BLE_GAP_SEC_STATUS_INVALID_PARAMS         0x8A  /**< Invalid parameters. */
+/** @} */
+
+/** @defgroup BLE_GAP_SEC_STATUS_SOURCES GAP Security status sources
+ * @{ */
+#define BLE_GAP_SEC_STATUS_SOURCE_LOCAL           0x00  /**< Local failure. */
+#define BLE_GAP_SEC_STATUS_SOURCE_REMOTE          0x01  /**< Remote failure. */
+/** @} */
+
+/** @defgroup BLE_GAP_CP_LIMITS GAP Connection Parameters Limits
+ * @{ */
+#define BLE_GAP_CP_MIN_CONN_INTVL_NONE           0xFFFF  /**< No new minimum connction interval specified in connect parameters. */
+#define BLE_GAP_CP_MIN_CONN_INTVL_MIN            0x0006  /**< Lowest mimimum connection interval permitted, in units of 1.25 ms, i.e. 7.5 ms. */
+#define BLE_GAP_CP_MIN_CONN_INTVL_MAX            0x0C80  /**< Highest minimum connection interval permitted, in units of 1.25 ms, i.e. 4 s. */
+#define BLE_GAP_CP_MAX_CONN_INTVL_NONE           0xFFFF  /**< No new maximum connction interval specified in connect parameters. */
+#define BLE_GAP_CP_MAX_CONN_INTVL_MIN            0x0006  /**< Lowest maximum connection interval permitted, in units of 1.25 ms, i.e. 7.5 ms. */
+#define BLE_GAP_CP_MAX_CONN_INTVL_MAX            0x0C80  /**< Highest maximum connection interval permitted, in units of 1.25 ms, i.e. 4 s. */
+#define BLE_GAP_CP_SLAVE_LATENCY_MAX             0x03E8  /**< Highest slave latency permitted, in connection events. */
+#define BLE_GAP_CP_CONN_SUP_TIMEOUT_NONE         0xFFFF  /**< No new supervision timeout specified in connect parameters. */
+#define BLE_GAP_CP_CONN_SUP_TIMEOUT_MIN          0x000A  /**< Lowest supervision timeout permitted, in units of 10 ms, i.e. 100 ms. */
+#define BLE_GAP_CP_CONN_SUP_TIMEOUT_MAX          0x0C80  /**< Highest supervision timeout permitted, in units of 10 ms, i.e. 32 s. */
+/** @} */
+
+
+/**@brief GAP device name maximum length. */
+#define BLE_GAP_DEVNAME_MAX_LEN           31
+
+
+/** @defgroup BLE_GAP_CONN_SEC_MODE_SET_MACROS GAP attribute security requirement setters
+ *
+ * See @ref ble_gap_conn_sec_mode_t.
+ * @{ */
+/** @brief Set sec_mode pointed to by ptr to have no access rights.*/
+#define BLE_GAP_CONN_SEC_MODE_SET_NO_ACCESS(ptr)         do {(ptr)->sm = 0; (ptr)->lv = 0;} while(0)
+/** @brief Set sec_mode pointed to by ptr to require no protection, open link.*/
+#define BLE_GAP_CONN_SEC_MODE_SET_OPEN(ptr)              do {(ptr)->sm = 1; (ptr)->lv = 1;} while(0)
+/** @brief Set sec_mode pointed to by ptr to require encryption, but no MITM protection.*/
+#define BLE_GAP_CONN_SEC_MODE_SET_ENC_NO_MITM(ptr)       do {(ptr)->sm = 1; (ptr)->lv = 2;} while(0)
+/** @brief Set sec_mode pointed to by ptr to require encryption and MITM protection.*/
+#define BLE_GAP_CONN_SEC_MODE_SET_ENC_WITH_MITM(ptr)     do {(ptr)->sm = 1; (ptr)->lv = 3;} while(0)
+/** @brief Set sec_mode pointed to by ptr to require signing or encryption, no MITM protection needed.*/
+#define BLE_GAP_CONN_SEC_MODE_SET_SIGNED_NO_MITM(ptr)    do {(ptr)->sm = 2; (ptr)->lv = 1;} while(0)
+/** @brief Set sec_mode pointed to by ptr to require signing or encryption with MITM protection.*/
+#define BLE_GAP_CONN_SEC_MODE_SET_SIGNED_WITH_MITM(ptr)  do {(ptr)->sm = 2; (ptr)->lv = 2;} while(0)
+/** @} */
+
+
+/**@brief GAP Security Key Length. */
+#define BLE_GAP_SEC_KEY_LEN 16
+
+/**@brief Maximum amount of addresses in a whitelist. */
+#define BLE_GAP_WHITELIST_ADDR_MAX_COUNT (8)
+
+/**@brief Maximum amount of IRKs in a whitelist.
+ * @note  The number of IRKs is limited to 8, even if the hardware supports more.
+ */
+#define BLE_GAP_WHITELIST_IRK_MAX_COUNT (8)
+
+/** @defgroup GAP_SEC_MODES GAP Security Modes
+ * @{ */
+#define BLE_GAP_SEC_MODE 0x00 /**< No key (may be used to reject). */
+
+/** @} */
+
+
+/** @} */
+
+/**@brief Bluetooth Low Energy address. */
+typedef struct
+{
+  uint8_t addr_type;                    /**< See @ref BLE_GAP_ADDR_TYPES. */
+  uint8_t addr[BLE_GAP_ADDR_LEN];       /**< 48-bit address, LSB format. */
+} ble_gap_addr_t;
+
+
+/**@brief GAP connection parameters.
+ *
+ * @note  When ble_conn_params_t is received in an event, both min_conn_interval and
+ *        max_conn_interval will be equal to the connection interval set by the central.
+ */
+typedef struct
+{
+  uint16_t min_conn_interval;         /**< Minimum Connection Interval in 1.25 ms units, see @ref BLE_GAP_CP_LIMITS.*/
+  uint16_t max_conn_interval;         /**< Maximum Connection Interval in 1.25 ms units, see @ref BLE_GAP_CP_LIMITS.*/
+  uint16_t slave_latency;             /**< Slave Latency in number of connection events, see @ref BLE_GAP_CP_LIMITS.*/
+  uint16_t conn_sup_timeout;          /**< Connection Supervision Timeout in 10 ms units, see @ref BLE_GAP_CP_LIMITS.*/
+} ble_gap_conn_params_t;
+
+
+/**@brief GAP link requirements.
+ *
+ * See Bluetooth Core specification, Volume 3 Part C 10.2 for details.
+ *
+ * Security Mode 0 Level 0: No access permissions at all (this level is not defined by the Bluetooth Core specification).\n
+ * Security Mode 1 Level 1: No security is needed (aka open link).\n
+ * Security Mode 1 Level 2: Encrypted link required, MITM protection not necessary.\n
+ * Security Mode 1 Level 3: MITM protected encrypted link required.\n
+ * Security Mode 2 Level 1: Signing or encryption required, MITM protection not necessary.\n
+ * Security Mode 2 Level 2: MITM protected signing required, unless link is MITM protected encrypted.\n
+ */
+typedef struct
+{
+  uint8_t sm : 4;                     /**< Security Mode (1 or 2), 0 for no permissions at all. */
+  uint8_t lv : 4;                     /**< Level (1, 2 or 3), 0 for no permissions at all. */
+
+} ble_gap_conn_sec_mode_t;
+
+
+
+/**@brief GAP connection security status.*/
+typedef struct
+{
+  ble_gap_conn_sec_mode_t sec_mode;           /**< Currently active security mode for this connection.*/
+  uint8_t                 encr_key_size;      /**< Length of currently active encryption key, 7 to 16 octets.*/
+} ble_gap_conn_sec_t;
+
+
+
+/**@brief Identity Resolving Key. */
+typedef struct
+{
+  uint8_t irk[BLE_GAP_SEC_KEY_LEN];   /**< Array containing IRK. */
+} ble_gap_irk_t;
+
+
+/**@brief Whitelist structure. */
+typedef struct
+{
+  ble_gap_addr_t   ** pp_addrs;        /**< Pointer to array of device address pointers, pointing to addresses to be used in whitelist. NULL if none are given. */
+  uint8_t             addr_count;      /**< Count of device addresses in array, up to @ref BLE_GAP_WHITELIST_ADDR_MAX_COUNT. */
+  ble_gap_irk_t    ** pp_irks;         /**< Pointer to array of Identity Resolving Key (IRK) pointers, each pointing to an IRK in the whitelist. NULL if none are given. */
+  uint8_t             irk_count;       /**< Count of IRKs in array, up to @ref BLE_GAP_WHITELIST_IRK_MAX_COUNT. */
+} ble_gap_whitelist_t;
+
+
+/**@brief GAP advertising parameters.*/
+typedef struct
+{
+  uint8_t               type;                 /**< See @ref BLE_GAP_ADV_TYPES. */
+  ble_gap_addr_t*       p_peer_addr;          /**< For BLE_GAP_CONN_MODE_DIRECTED mode only, known peer address. */
+  uint8_t               fp;                   /**< Filter Policy, see @ref BLE_GAP_ADV_FILTER_POLICIES. */
+  ble_gap_whitelist_t * p_whitelist;          /**< Pointer to whitelist, NULL if none is given. */
+  uint16_t              interval;             /**< Advertising interval between 0x0020 and 0x4000 in 0.625 ms units (20ms to 10.24s), see @ref BLE_GAP_ADV_INTERVALS. This parameter must be set to 0 if type equals @ref BLE_GAP_ADV_TYPE_ADV_DIRECT_IND. */
+  uint16_t              timeout;              /**< Advertising timeout between 0x0001 and 0x3FFF in seconds, 0x0000 disables timeout. See also @ref BLE_GAP_ADV_TIMEOUT_VALUES. This parameter must be set to 0 if type equals @ref BLE_GAP_ADV_TYPE_ADV_DIRECT_IND. */
+} ble_gap_adv_params_t;
+
+
+/**@brief GAP scanning parameters. */
+typedef struct
+{
+  uint8_t    filter;                    /**< Filter based on discovery mode, see @ref BLE_GAP_DISC_MODES. */
+  uint8_t    active    : 1;             /**< If 1, perform active scanning (scan requests). */
+  uint8_t    selective : 1;             /**< If 1, ignore unknown devices (non whitelisted). */
+  uint16_t   interval;                  /**< Scan interval between 0x0020 and 0x4000 in 0.625ms units (20ms to 10.24s). */
+  uint16_t   window;                    /**< Scan window between 0x0004 and 0x4000 in 0.625ms units (2.5ms to 10.24s). */
+  uint16_t   timeout;                   /**< Scan timeout between 0x0001 and 0x3FFF in seconds, 0x0000 disables timeout. */
+} ble_gap_scan_params_t;
+
+
+/**@brief GAP security parameters. */
+typedef struct
+{
+  uint16_t   timeout;                   /**< Timeout for SMP transactions or Security Request in seconds, see @ref sd_ble_gap_authenticate and @ref sd_ble_gap_sec_params_reply for more information. */
+  uint8_t    bond    : 1;               /**< Perform bonding. */
+  uint8_t    mitm    : 1;               /**< Man In The Middle protection required. */
+  uint8_t    io_caps : 3;               /**< IO capabilities, see @ref BLE_GAP_IO_CAPS. */
+  uint8_t    oob     : 1;               /**< Out Of Band data available. */
+  uint8_t    min_key_size;              /**< Minimum encryption key size in octets between 7 and 16. */
+  uint8_t    max_key_size;              /**< Maximum encryption key size in octets between min_key_size and 16. */
+} ble_gap_sec_params_t;
+
+
+/**@brief GAP Encryption Information. */
+typedef struct
+{
+  uint16_t  div;                        /**< Encryption Diversifier. */
+  uint8_t   ltk[BLE_GAP_SEC_KEY_LEN];   /**< Long Term Key. */
+  uint8_t   auth : 1;                   /**< Authenticated Key. */
+  uint8_t   ltk_len : 7;                /**< LTK length in octets. */
+} ble_gap_enc_info_t;
+
+
+/**@brief GAP Master Identification. */
+typedef struct
+{
+  uint16_t  ediv;                       /**< Encrypted Diversifier. */
+  uint8_t   rand[8];                    /**< Random Number. */
+} ble_gap_master_id_t;
+
+
+/**@brief GAP Identity Information. */
+typedef struct
+{
+  ble_gap_addr_t  addr;                       /**< Bluetooth address to which this key applies. */
+  uint8_t         irk[BLE_GAP_SEC_KEY_LEN];   /**< Identity Resolution Key. */
+} ble_gap_id_info_t;
+
+
+/**@brief GAP Signing Information. */
+typedef struct
+{
+  uint8_t   csrk[BLE_GAP_SEC_KEY_LEN]; /* Connection Signature Resolving Key. */
+} ble_gap_sign_info_t;
+
+
+
+/**
+ * @brief GAP Event IDs.
+ * Those IDs uniquely identify an event coming from the stack to the application.
+ */
+enum BLE_GAP_EVTS
+{
+  BLE_GAP_EVT_CONNECTED  = BLE_GAP_EVT_BASE,    /**< Connection established. */
+  BLE_GAP_EVT_DISCONNECTED,                     /**< Disconnected from peer. */
+  BLE_GAP_EVT_CONN_PARAM_UPDATE,                /**< Connection Parameters updated. */
+  BLE_GAP_EVT_SEC_PARAMS_REQUEST,               /**< Request to provide security parameters. */
+  BLE_GAP_EVT_SEC_INFO_REQUEST,                 /**< Request to provide security information. */
+  BLE_GAP_EVT_PASSKEY_DISPLAY,                  /**< Request to display a passkey to the user. */
+  BLE_GAP_EVT_AUTH_KEY_REQUEST,                 /**< Request to provide an authentication key. */
+  BLE_GAP_EVT_AUTH_STATUS,                      /**< Authentication procedure completed with status. */
+  BLE_GAP_EVT_CONN_SEC_UPDATE,                  /**< Connection security updated. */
+  BLE_GAP_EVT_TIMEOUT,                          /**< Timeout expired. */
+  BLE_GAP_EVT_RSSI_CHANGED,                     /**< Signal strength measurement report. */
+};
+
+
+/** @brief Event data for connected event. */
+typedef struct
+{
+  ble_gap_addr_t        peer_addr;              /**< Bluetooth address of the peer device. */
+  uint8_t               irk_match :1;           /**< If 1, peer device's address resolved using an IRK. */
+  uint8_t               irk_match_idx  :7;      /**< Index in IRK list where the address was matched. */
+  ble_gap_conn_params_t conn_params;            /**< GAP Connection Parameters. */
+} ble_gap_evt_connected_t;
+
+
+/** @brief Event data for disconnected event. */
+typedef struct
+{
+  uint8_t reason;                               /**< HCI error code. */
+} ble_gap_evt_disconnected_t;
+
+
+/** @brief Event data for connection parameter update event. */
+typedef struct
+{
+  ble_gap_conn_params_t conn_params;            /**<  GAP Connection Parameters. */
+} ble_gap_evt_conn_param_update_t;
+
+
+/** @brief Event data for security parameters request event. */
+typedef struct
+{
+  ble_gap_sec_params_t peer_params;             /**< Initiator Security Parameters. */
+} ble_gap_evt_sec_params_request_t;
+
+
+/** @brief Event data for securito info request event. */
+typedef struct
+{
+  ble_gap_addr_t peer_addr;                     /**< Bluetooth address of the peer device. */
+  uint16_t       div;                           /**< Encryption diversifier for LTK lookup. */
+  uint8_t        enc_info  : 1;                 /**< If 1, Encryption Information required. */
+  uint8_t        id_info   : 1;                 /**< If 1, Identity Information required. */
+  uint8_t        sign_info : 1;                 /**< If 1, Signing Information required. */
+} ble_gap_evt_sec_info_request_t;
+
+
+/** @brief Event data for passkey display event. */
+typedef struct
+{
+  uint8_t passkey[6];                           /**< 6-digit passkey in ASCII ('0'-'9' digits only). */
+} ble_gap_evt_passkey_display_t;
+
+
+/** @brief Event data for authentication key request event. */
+typedef struct
+{
+  uint8_t key_type;                             /**< See @ref BLE_GAP_AUTH_KEY_TYPES. */
+} ble_gap_evt_auth_key_request_t;
+
+
+/** @brief Security levels supported.
+ *  @note See Bluetooth Specification Version 4.0 Volume 3, Chapter 10.
+*/
+typedef struct
+{
+  uint8_t lv1 : 1;                              /**< If 1: Level 1 is supported. */
+  uint8_t lv2 : 1;                              /**< If 1: Level 2 is supported. */
+  uint8_t lv3 : 1;                              /**< If 1: Level 3 is supported. */
+} ble_gap_sec_levels_t;
+
+
+/** @brief Keys that have been exchanged. */
+typedef struct
+{
+  uint8_t ltk       : 1;                        /**< Long Term Key. */
+  uint8_t ediv_rand : 1;                        /**< Encrypted Diversifier and Random value. */
+  uint8_t irk       : 1;                        /**< Identity Resolving Key. */
+  uint8_t address   : 1;                        /**< Public or static random address. */
+  uint8_t csrk      : 1;                        /**< Connection Signature Resolving Key. */
+} ble_gap_sec_keys_t;
+
+
+/** @brief Event data for authentication status event. */
+typedef struct
+{
+  uint8_t               auth_status;            /**< Authentication status, see @ref BLE_GAP_SEC_STATUS. */
+  uint8_t               error_src;              /**< On error, source that caused the failure, see @ref BLE_GAP_SEC_STATUS_SOURCES. */
+  ble_gap_sec_levels_t  sm1_levels;             /**< Levels supported in Security Mode 1. */
+  ble_gap_sec_levels_t  sm2_levels;             /**< Levels supported in Security Mode 2. */
+  ble_gap_sec_keys_t    periph_kex;             /**< Bitmap stating which keys were exchanged (distributed) by the peripheral. */
+  ble_gap_sec_keys_t    central_kex;            /**< Bitmap stating which keys were exchanged (distributed) by the central. */
+  struct periph_keys_t
+  {
+    ble_gap_enc_info_t    enc_info;             /**< Peripheral's Encryption information. */
+  } periph_keys;                                /**< Actual keys distributed from the Peripheral to the Central. */ 
+  struct central_keys_t
+  {
+    ble_gap_irk_t         irk;                  /**< Central's IRK. */
+    ble_gap_addr_t        id_info;              /**< Central's Identity Info. */
+  } central_keys;                               /**< Actual keys distributed from the Central to the Peripheral. */
+} ble_gap_evt_auth_status_t;
+
+
+/** @brief Event data for connection security update event. */
+typedef struct
+{
+  ble_gap_conn_sec_t conn_sec;                  /**< Connection security level. */
+} ble_gap_evt_conn_sec_update_t;
+
+
+/** @brief Event data for timeout event. */
+typedef struct
+{
+  uint8_t src;                                  /**< Source of timeout event, see @ref BLE_GAP_TIMEOUT_SOURCES. */
+} ble_gap_evt_timeout_t;
+
+
+/** @brief Event data for advertisement report event. */
+typedef struct
+{
+  int8_t  rssi;                               /**< Received Signal Strength Indication in dBm. */
+} ble_gap_evt_rssi_changed_t;
+
+
+
+/**@brief GAP event callback event structure. */
+typedef struct
+{
+  uint16_t conn_handle;                                     /**< Connection Handle on which event occured. */
+  union                                                     /**< union alternative identified by evt_id in enclosing struct. */
+  {
+    ble_gap_evt_connected_t          connected;             /**< Connected Event Parameters. */
+    ble_gap_evt_disconnected_t       disconnected;          /**< Disconnected Event Parameters. */
+    ble_gap_evt_conn_param_update_t  conn_param_update;     /**< Connection Parameter Update Parameters. */
+    ble_gap_evt_sec_params_request_t sec_params_request;    /**< Security Parameters Request Event Parameters. */
+    ble_gap_evt_sec_info_request_t   sec_info_request;      /**< Security Information Request Event Parameters. */
+    ble_gap_evt_passkey_display_t    passkey_display;       /**< Passkey Display Event Parameters. */
+    ble_gap_evt_auth_key_request_t   auth_key_request;      /**< Authentication Key Request Event Parameters. */
+    ble_gap_evt_auth_status_t        auth_status;           /**< Authentication Status Event Parameters. */
+    ble_gap_evt_conn_sec_update_t    conn_sec_update;       /**< Connection Security Update Event Parameters. */
+    ble_gap_evt_timeout_t            timeout;               /**< Timeout Event Parameters. */
+    ble_gap_evt_rssi_changed_t       rssi_changed;          /**< RSSI Event parameters. */
+  } params;
+
+} ble_gap_evt_t;
+
+
+/**@brief Set local Bluetooth address.
+ *
+ * @param[in] p_addr Pointer to address structure.
+ *
+ * @return @ref NRF_SUCCESS Address successfully set.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @return @ref BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid address.
+ * @return @ref NRF_ERROR_BUSY The stack is busy, process pending events and retry.
+ */
+SVCALL(SD_BLE_GAP_ADDRESS_SET, uint32_t, sd_ble_gap_address_set(ble_gap_addr_t const * const p_addr));
+
+
+/**@brief Get local Bluetooth address.
+ *
+ * @param[out] p_addr Pointer to address structure.
+ *
+ * @return @ref NRF_SUCCESS Address successfully retrieved.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ */
+SVCALL(SD_BLE_GAP_ADDRESS_GET, uint32_t, sd_ble_gap_address_get(ble_gap_addr_t * const p_addr));
+
+
+/**@brief Set, clear or update advertisement and scan response data.
+ *
+ * @note The format of the advertisement data will be checked by this call to ensure interoperability.
+ *       Limitations imposed by this API call to the data provided include having a flags data type in the scan response data and
+ *       duplicating the local name in the advertisement data and scan response data. 
+ *
+ * @note: To clear the advertisement data and set it to a 0-length packet, simply provide a valid pointer (p_data/p_sr_data) with its corresponding 
+ *        length (dlen/srdlen) set to 0.
+ *
+ * @note: The call will fail if p_data and p_sr_data are both NULL since this would have no effect.
+ *
+ * @param[in] p_data    Raw data to be placed in advertisement packet. If NULL, no changes are made to the current advertisement packet data.
+ * @param[in] dlen      Data length for p_data. Max size: @ref BLE_GAP_ADV_MAX_SIZE octets. Should be 0 if p_data is NULL, can be 0 if p_data is not NULL.
+ * @param[in] p_sr_data Raw data to be placed in scan response packet. If NULL, no changes are made to the current scan response packet data.
+ * @param[in] srdlen    Data length for p_sr_data. Max size: @ref BLE_GAP_ADV_MAX_SIZE octets. Should be 0 if p_sr_data is NULL, can be 0 if p_data is not NULL.
+ *
+ * @return @ref NRF_SUCCESS Advertisement data successfully updated or cleared.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @return @ref NRF_ERROR_INVALID_FLAGS Invalid combination of advertising flags supplied.
+ * @return @ref NRF_ERROR_INVALID_DATA Invalid data type(s) supplied, check the advertising data format specification.
+ * @return @ref NRF_ERROR_INVALID_LENGTH Invalid data length(s) supplied.
+ * @return @ref BLE_ERROR_GAP_UUID_LIST_MISMATCH Invalid UUID list supplied.
+ * @return @ref NRF_ERROR_BUSY The stack is busy, process pending events and retry.
+ */
+SVCALL(SD_BLE_GAP_ADV_DATA_SET, uint32_t, sd_ble_gap_adv_data_set(uint8_t const * const p_data, uint8_t dlen, uint8_t const * const p_sr_data, uint8_t srdlen));
+
+
+/**@brief Start advertising (GAP Discoverable, Connectable modes, Broadcast Procedure).
+ *
+ * @param[in] p_adv_params Pointer to advertising parameters structure.
+ *
+ * @return @ref NRF_SUCCESS The BLE stack has started advertising.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @return @ref NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, check the accepted ranges and limits.
+ * @return @ref BLE_ERROR_GAP_INVALID_BLE_ADDR Invalid Bluetooth address supplied.
+ * @return @ref BLE_ERROR_GAP_DISCOVERABLE_WITH_WHITELIST Discoverable mode and whitelist incompatible.
+ */
+SVCALL(SD_BLE_GAP_ADV_START, uint32_t, sd_ble_gap_adv_start(ble_gap_adv_params_t const * const p_adv_params));
+
+
+/**@brief Stop advertising (GAP Discoverable, Connectable modes, Broadcast Procedure).
+ *
+ * @return @ref NRF_SUCCESS The BLE stack has stopped advertising.
+ * @return @ref NRF_ERROR_INVALID_STATE Invalid state to perform operation (most probably not in advertising state).
+ */
+SVCALL(SD_BLE_GAP_ADV_STOP, uint32_t, sd_ble_gap_adv_stop(void));
+
+
+/**@brief Update connection parameters.
+ *
+ * @details In the central role this will initiate a Link Layer connection parameter update procedure,
+ *          otherwise in the peripheral role, this will send the corresponding L2CAP request and wait for
+ *          the central to perform the procedure. In both cases, and regardless of success or failure, the application
+ *          will be informed of the result with a @ref BLE_GAP_EVT_CONN_PARAM_UPDATE event.
+ *
+ * @note If both a connection supervision timeout and a maximum connection interval are specified, then the following constraint
+ *       applies: (conn_sup_timeout * 8) >= (max_conn_interval * (slave_latency + 1))
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] p_conn_params  Pointer to desired connection parameters. If NULL is provided on a peripheral role,
+ *                           the parameters in the PPCP characteristic of the GAP service will be used instead.
+ *
+ * @return @ref NRF_SUCCESS The Connection Update procedure has been started successfully.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, check parameter limits and constraints.
+ * @return @ref NRF_ERROR_BUSY Procedure already in progress or not allowed at this time, process pending events and retry.
+ * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ * @return @ref NRF_ERROR_NO_MEM Not enough memory to complete operation.
+ */
+SVCALL(SD_BLE_GAP_CONN_PARAM_UPDATE, uint32_t, sd_ble_gap_conn_param_update(uint16_t conn_handle, ble_gap_conn_params_t const * const p_conn_params));
+
+
+/**@brief Disconnect (GAP Link Termination).
+ *
+ * @details This call initiates the disconnection procedure, and its completion will be communicated to the application
+ *          with a BLE_GAP_EVT_DISCONNECTED event.
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] hci_status_code HCI status code, see @ref BLE_HCI_STATUS_CODES (accepted values are BTLE_REMOTE_USER_TERMINATED_CONNECTION and BTLE_CONN_INTERVAL_UNACCEPTABLE).
+ *
+ * @return @ref NRF_SUCCESS The disconnection procedure has been started successfully.
+ * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ * @return @ref NRF_ERROR_INVALID_STATE Invalid state to perform operation (disconnection is already in progress or not connected at all).
+ */
+SVCALL(SD_BLE_GAP_DISCONNECT, uint32_t, sd_ble_gap_disconnect(uint16_t conn_handle, uint8_t hci_status_code));
+
+
+/**@brief Set the radio's transmit power.
+ *
+ * @param[in] tx_power Radio transmit power in dBm (accepted values are -40, -30, -20, -16, -12, -8, -4, 0, and 4 dBm).
+ *
+ * @note -40 dBm will not actually give -40 dBm, but will instead be remapped to -30 dBm.
+ *
+ * @return @ref NRF_SUCCESS Successfully changed the transmit power.
+ * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @return @ref NRF_ERROR_BUSY The stack is busy, process pending events and retry.
+ */
+SVCALL(SD_BLE_GAP_TX_POWER_SET, uint32_t, sd_ble_gap_tx_power_set(int8_t tx_power));
+
+
+/**@brief Set GAP Appearance value.
+ *
+ * @param[in] appearance Appearance (16-bit), see @ref BLE_APPEARANCES.
+ *
+ * @return @ref NRF_SUCCESS  Appearance value set successfully.
+ * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ */
+SVCALL(SD_BLE_GAP_APPEARANCE_SET, uint32_t, sd_ble_gap_appearance_set(uint16_t appearance));
+
+
+/**@brief Get GAP Appearance value.
+ *
+ * @param[out] p_appearance Appearance (16-bit), see @ref BLE_APPEARANCES.
+ *
+ * @return @ref NRF_SUCCESS Appearance value retrieved successfully.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ */
+SVCALL(SD_BLE_GAP_APPEARANCE_GET, uint32_t, sd_ble_gap_appearance_get(uint16_t * const p_appearance));
+
+
+/**@brief Set GAP Peripheral Preferred Connection Parameters.
+ *
+ * @param[in] p_conn_params Pointer to a @ref ble_gap_conn_params_t structure with the desired parameters.
+ *
+ * @return @ref NRF_SUCCESS Peripheral Preferred Connection Parameters set successfully.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ */
+SVCALL(SD_BLE_GAP_PPCP_SET, uint32_t, sd_ble_gap_ppcp_set(ble_gap_conn_params_t const * const p_conn_params));
+
+
+/**@brief Get GAP Peripheral Preferred Connection Parameters.
+ *
+ * @param[out] p_conn_params Pointer to a @ref ble_gap_conn_params_t structure where the parameters will be stored.
+ *
+ * @return @ref NRF_SUCCESS Peripheral Preferred Connection Parameters retrieved successfully.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ */
+SVCALL(SD_BLE_GAP_PPCP_GET, uint32_t, sd_ble_gap_ppcp_get(ble_gap_conn_params_t * const p_conn_params));
+
+
+/**@brief Set GAP device name.
+ *
+ * @param[in] p_write_perm Write permissions for the Device Name characteristic see @ref ble_gap_conn_sec_mode_t.
+ * @param[in] p_dev_name Pointer to a UTF-8 encoded, <b>non NULL-terminated</b> string.
+ * @param[in] len   Length of the UTF-8, <b>non NULL-terminated</b> string pointed to by p_dev_name in octets (must be smaller or equal than @ref BLE_GAP_DEVNAME_MAX_LEN).
+ *
+ * @return @ref NRF_SUCCESS GAP device name and permissions set successfully.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @return @ref NRF_ERROR_DATA_SIZE Invalid data size(s) supplied.
+ */
+SVCALL(SD_BLE_GAP_DEVICE_NAME_SET, uint32_t, sd_ble_gap_device_name_set(ble_gap_conn_sec_mode_t const * const p_write_perm, uint8_t const * const p_dev_name, uint16_t len));
+
+
+/**@brief Get GAP device name.
+ *
+ * @param[in]     p_dev_name Pointer to an empty buffer where the UTF-8 <b>non NULL-terminated</b> string will be placed. Set to NULL to obtain the complete device name length.
+ * @param[in,out] p_len      Length of the buffer pointed by p_dev_name, complete device name length on output.
+ *
+ * @note          If the device name is longer than the size of the supplied buffer,
+ *                p_len will return the complete device name length,
+ *                and not the number of bytes actually returned in p_dev_name.
+ *                The application may use this information to allocate a suitable buffer size.
+ *
+ * @return @ref NRF_SUCCESS GAP device name retrieved successfully.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @return @ref NRF_ERROR_DATA_SIZE Invalid data size(s) supplied.
+ */
+SVCALL(SD_BLE_GAP_DEVICE_NAME_GET, uint32_t, sd_ble_gap_device_name_get(uint8_t * const p_dev_name, uint16_t * const p_len));
+
+
+/**@brief Initiate GAP Authentication procedure.
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] p_sec_params Pointer to the @ref ble_gap_sec_params_t structure with the security parameters to be used during the pairing procedure.
+ *
+ * @details In the central role, this function will send an SMP Pairing Request, otherwise in the peripheral role, an SMP Security Request will be sent.
+ *          In the peripheral role, only the timeout, bond and mitm fields of @ref ble_gap_sec_params_t are used.
+ *
+ * @note    The GAP Authentication procedure may be triggered by the central without calling this function when accessing a secure service.
+ * @note    Calling this function may result in the following events depending on the outcome and parameters: @ref BLE_GAP_EVT_SEC_PARAMS_REQUEST,
+ *          @ref BLE_GAP_EVT_SEC_INFO_REQUEST, @ref BLE_GAP_EVT_AUTH_KEY_REQUEST, @ref BLE_GAP_EVT_AUTH_STATUS.
+ * @note    The timeout parameter in @ref ble_gap_sec_params_t is interpreted here as the Security Request timeout
+ *
+ *
+ * @return @ref NRF_SUCCESS Successfully initiated authentication procedure.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @return @ref NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ */
+SVCALL(SD_BLE_GAP_AUTHENTICATE, uint32_t, sd_ble_gap_authenticate(uint16_t conn_handle, ble_gap_sec_params_t const * const p_sec_params));
+
+
+/**@brief Reply with GAP security parameters.
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] sec_status Security status, see @ref BLE_GAP_SEC_STATUS.
+ * @param[in] p_sec_params Pointer to a @ref ble_gap_sec_params_t security parameters structure.
+ *
+ * @details This function is only used to reply to a @ref BLE_GAP_EVT_SEC_PARAMS_REQUEST, calling it at other times will result in an NRF_ERROR_INVALID_STATE.
+ * @note    If the call returns an error code, the request is still pending, and the reply call may be repeated with corrected parameters.
+ * @note    The timeout parameter in @ref ble_gap_sec_params_t is interpreted here as the SMP procedure timeout, and must be 30 seconds. The function will fail
+ *          if the application supplies a different value.
+ *
+ * @return @ref NRF_SUCCESS Successfully accepted security parameter from the application.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @return @ref NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ */
+SVCALL(SD_BLE_GAP_SEC_PARAMS_REPLY, uint32_t, sd_ble_gap_sec_params_reply(uint16_t conn_handle, uint8_t sec_status, ble_gap_sec_params_t const * const p_sec_params));
+
+
+/**@brief Reply with an authentication key.
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] key_type See @ref BLE_GAP_AUTH_KEY_TYPES.
+ * @param[in] key If key type is BLE_GAP_AUTH_KEY_TYPE_NONE, then NULL.
+ *                If key type is BLE_GAP_AUTH_KEY_TYPE_PASSKEY, then a 6-byte ASCII string (digit 0..9 only, no NULL termination).
+ *                If key type is BLE_GAP_AUTH_KEY_TYPE_OOB, then a 16-byte OOB key value in Little Endian format.
+ *
+ * @details This function is only used to reply to a @ref BLE_GAP_EVT_AUTH_KEY_REQUEST, calling it at other times will result in an NRF_ERROR_INVALID_STATE.
+ * @note    If the call returns an error code, the request is still pending, and the reply call may be repeated with corrected parameters.
+ *
+ * @return @ref NRF_SUCCESS Authentication key successfully set.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @return @ref NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ */
+SVCALL(SD_BLE_GAP_AUTH_KEY_REPLY, uint32_t, sd_ble_gap_auth_key_reply(uint16_t conn_handle, uint8_t key_type, uint8_t const * const key));
+
+
+/**@brief Reply with GAP security information.
+ *
+ * @param[in] conn_handle Connection handle.
+ * @param[in] p_enc_info Pointer to a @ref ble_gap_enc_info_t encryption information structure. May be NULL to signal none is available.
+ * @param[in] p_sign_info Pointer to a @ref ble_gap_sign_info_t signing information structure. May be NULL to signal none is available.
+ *
+ * @details This function is only used to reply to a @ref BLE_GAP_EVT_SEC_INFO_REQUEST, calling it at other times will result in NRF_ERROR_INVALID_STATE.
+ * @note    If the call returns an error code, the request is still pending, and the reply call may be repeated with corrected parameters.
+ * @note    Data signing is not implemented yet. p_sign_info must therefore be NULL.
+ *
+ * @return @ref NRF_SUCCESS Successfully accepted security information.
+ * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @return @ref NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ * @return @ref NRF_ERROR_BUSY The stack is busy, process pending events and retry.
+ */
+SVCALL(SD_BLE_GAP_SEC_INFO_REPLY, uint32_t, sd_ble_gap_sec_info_reply(uint16_t conn_handle, ble_gap_enc_info_t const * const p_enc_info, ble_gap_sign_info_t const * const p_sign_info));
+
+
+/**@brief Get the current connection security.
+ *
+ * @param[in]  conn_handle Connection handle.
+ * @param[out] p_conn_sec  Pointer to a @ref ble_gap_conn_sec_t structure to be filled in.
+ *
+ * @return @ref NRF_SUCCESS Current connection security successfully retrieved.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ */
+SVCALL(SD_BLE_GAP_CONN_SEC_GET, uint32_t, sd_ble_gap_conn_sec_get(uint16_t conn_handle, ble_gap_conn_sec_t * const p_conn_sec));
+
+
+/**@brief Start reporting the received signal strength to the application. 
+ *
+ * A new event is reported whenever the RSSI value changes, until @ref sd_ble_gap_rssi_stop is called.
+ *
+ * @param[in] conn_handle Connection handle.
+ *
+ * @return @ref NRF_SUCCESS Successfully activated RSSI reporting.
+ * @return @ref NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ */
+SVCALL(SD_BLE_GAP_RSSI_START, uint32_t, sd_ble_gap_rssi_start(uint16_t conn_handle));
+
+
+/**@brief Stop reporting the received singnal strength. 
+ *
+ * An RSSI change detected before the call but not yet received by the application 
+ * may be reported after @ref sd_ble_gap_rssi_stop has been called.
+ *
+ * @param[in] conn_handle Connection handle.
+ *
+ * @return @ref NRF_SUCCESS Successfully deactivated RSSI reporting.
+ * @return @ref NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid connection handle supplied.
+ */
+SVCALL(SD_BLE_GAP_RSSI_STOP, uint32_t, sd_ble_gap_rssi_stop(uint16_t conn_handle));
+
+#endif // BLE_GAP_H__
+
+/**
+  @}
+*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/ble_gatt.h	Tue Mar 18 12:30:07 2014 +0000
@@ -0,0 +1,166 @@
+/* Copyright (c) 2012 Nordic Semiconductor. All Rights Reserved.
+ *
+ * The information contained herein is confidential property of Nordic Semiconductor. The use,
+ * copying, transfer or disclosure of such information is prohibited except by express written
+ * agreement with Nordic Semiconductor.
+ *
+ */
+ /**
+  @addtogroup BLE_GATT Generic Attribute Profile (GATT) Common
+  @{
+  @brief  Common definitions and prototypes for the GATT interfaces.
+ */
+
+#ifndef BLE_GATT_H__
+#define BLE_GATT_H__
+
+#include "ble_types.h"
+#include "ble_ranges.h"
+
+
+/** @addtogroup BLE_GATT_DEFINES Defines
+ * @{ */
+
+/** @brief Default MTU size. */
+#define GATT_MTU_SIZE_DEFAULT 23
+
+/** @brief Only the default MTU size of 23 is currently supported. */
+#define GATT_RX_MTU 23
+
+
+/**@brief Invalid Attribute Handle. */
+#define BLE_GATT_HANDLE_INVALID            0x0000
+
+/** @defgroup BLE_GATT_TIMEOUT_SOURCES GATT Timeout sources
+ * @{ */
+#define BLE_GATT_TIMEOUT_SRC_PROTOCOL                  0x00 /**< ATT Protocol timeout. */
+/** @} */
+
+/** @defgroup BLE_GATT_WRITE_OPS GATT Write operations
+ * @{ */
+#define BLE_GATT_OP_INVALID                0x00  /**< Invalid Operation. */
+#define BLE_GATT_OP_WRITE_REQ              0x01  /**< Write Request. */
+#define BLE_GATT_OP_WRITE_CMD              0x02  /**< Write Command. */
+#define BLE_GATT_OP_SIGN_WRITE_CMD         0x03  /**< Signed Write Command. */
+#define BLE_GATT_OP_PREP_WRITE_REQ         0x04  /**< Prepare Write Request. */
+#define BLE_GATT_OP_EXEC_WRITE_REQ         0x05  /**< Execute Write Request. */
+/** @} */
+
+/** @defgroup BLE_GATT_EXEC_WRITE_FLAGS GATT Execute Write flags
+ * @{ */
+#define BLE_GATT_EXEC_WRITE_FLAG_PREPARED_CANCEL 0x00
+#define BLE_GATT_EXEC_WRITE_FLAG_PREPARED_WRITE  0x01
+/** @} */
+
+/** @defgroup BLE_GATT_HVX_TYPES GATT Handle Value operations
+ * @{ */
+#define BLE_GATT_HVX_INVALID               0x00  /**< Invalid Operation. */
+#define BLE_GATT_HVX_NOTIFICATION          0x01  /**< Handle Value Notification. */
+#define BLE_GATT_HVX_INDICATION            0x02  /**< Handle Value Indication. */
+/** @} */
+
+/** @defgroup BLE_GATT_STATUS_CODES GATT Status Codes
+ * @{ */
+#define BLE_GATT_STATUS_SUCCESS                           0x0000  /**< Success. */
+#define BLE_GATT_STATUS_UNKNOWN                           0x0001  /**< Unknown or not applicable status. */
+#define BLE_GATT_STATUS_ATTERR_INVALID                    0x0100  /**< ATT Error: Invalid Error Code. */
+#define BLE_GATT_STATUS_ATTERR_INVALID_HANDLE             0x0101  /**< ATT Error: Invalid Attribute Handle. */
+#define BLE_GATT_STATUS_ATTERR_READ_NOT_PERMITTED         0x0102  /**< ATT Error: Read not permitted. */
+#define BLE_GATT_STATUS_ATTERR_WRITE_NOT_PERMITTED        0x0103  /**< ATT Error: Write not permitted. */
+#define BLE_GATT_STATUS_ATTERR_INVALID_PDU                0x0104  /**< ATT Error: Used in ATT as Invalid PDU. */
+#define BLE_GATT_STATUS_ATTERR_INSUF_AUTHENTICATION       0x0105  /**< ATT Error: Authenticated link required. */
+#define BLE_GATT_STATUS_ATTERR_REQUEST_NOT_SUPPORTED      0x0106  /**< ATT Error: Used in ATT as Request Not Supported. */
+#define BLE_GATT_STATUS_ATTERR_INVALID_OFFSET             0x0107  /**< ATT Error: Offset specified was past the end of the attribute. */
+#define BLE_GATT_STATUS_ATTERR_INSUF_AUTHORIZATION        0x0108  /**< ATT Error: Used in ATT as Insufficient Authorisation. */
+#define BLE_GATT_STATUS_ATTERR_PREPARE_QUEUE_FULL         0x0109  /**< ATT Error: Used in ATT as Prepare Queue Full. */
+#define BLE_GATT_STATUS_ATTERR_ATTRIBUTE_NOT_FOUND        0x010A  /**< ATT Error: Used in ATT as Attribute not found. */
+#define BLE_GATT_STATUS_ATTERR_ATTRIBUTE_NOT_LONG         0x010B  /**< ATT Error: Attribute cannot be read or written using read/write blob requests. */
+#define BLE_GATT_STATUS_ATTERR_INSUF_ENC_KEY_SIZE         0x010C  /**< ATT Error: Encryption key size used is insufficient. */
+#define BLE_GATT_STATUS_ATTERR_INVALID_ATT_VAL_LENGTH     0x010D  /**< ATT Error: Invalid value size. */
+#define BLE_GATT_STATUS_ATTERR_UNLIKELY_ERROR             0x010E  /**< ATT Error: Very unlikely error. */
+#define BLE_GATT_STATUS_ATTERR_INSUF_ENCRYPTION           0x010F  /**< ATT Error: Encrypted link required. */
+#define BLE_GATT_STATUS_ATTERR_UNSUPPORTED_GROUP_TYPE     0x0110  /**< ATT Error: Attribute type is not a supported grouping attribute. */
+#define BLE_GATT_STATUS_ATTERR_INSUF_RESOURCES            0x0111  /**< ATT Error: Encrypted link required. */
+#define BLE_GATT_STATUS_ATTERR_RFU_RANGE1_BEGIN           0x0112  /**< ATT Error: Reserved for Future Use range #1 begin. */
+#define BLE_GATT_STATUS_ATTERR_RFU_RANGE1_END             0x017F  /**< ATT Error: Reserved for Future Use range #1 end. */
+#define BLE_GATT_STATUS_ATTERR_APP_BEGIN                  0x0180  /**< ATT Error: Application range begin. */
+#define BLE_GATT_STATUS_ATTERR_APP_END                    0x019F  /**< ATT Error: Application range end. */
+#define BLE_GATT_STATUS_ATTERR_RFU_RANGE2_BEGIN           0x01A0  /**< ATT Error: Reserved for Future Use range #2 begin. */
+#define BLE_GATT_STATUS_ATTERR_RFU_RANGE2_END             0x01DF  /**< ATT Error: Reserved for Future Use range #2 end. */
+#define BLE_GATT_STATUS_ATTERR_RFU_RANGE3_BEGIN           0x01E0  /**< ATT Error: Reserved for Future Use range #3 begin. */
+#define BLE_GATT_STATUS_ATTERR_RFU_RANGE3_END             0x01FC  /**< ATT Error: Reserved for Future Use range #3 end. */
+#define BLE_GATT_STATUS_ATTERR_CPS_CCCD_CONFIG_ERROR      0x01FD  /**< ATT Common Profile and Service Error: Client Characteristic Configuration Descriptor improperly configured. */
+#define BLE_GATT_STATUS_ATTERR_CPS_PROC_ALR_IN_PROG       0x01FE  /**< ATT Common Profile and Service Error: Procedure Already in Progress. */
+#define BLE_GATT_STATUS_ATTERR_CPS_OUT_OF_RANGE           0x01FF  /**< ATT Common Profile and Service Error: Out Of Range. */
+/** @} */
+
+
+/** @defgroup BLE_GATT_CPF_FORMATS Characteristic Presentation Formats
+ *  @note Found at http://developer.bluetooth.org/gatt/descriptors/Pages/DescriptorViewer.aspx?u=org.bluetooth.descriptor.gatt.characteristic_presentation_format.xml
+ * @{ */
+#define BLE_GATT_CPF_FORMAT_RFU                 0x00 /**< Reserved For Future Use. */
+#define BLE_GATT_CPF_FORMAT_BOOLEAN             0x01 /**< Boolean. */
+#define BLE_GATT_CPF_FORMAT_2BIT                0x02 /**< Unsigned 2-bit integer. */
+#define BLE_GATT_CPF_FORMAT_NIBBLE              0x03 /**< Unsigned 4-bit integer. */
+#define BLE_GATT_CPF_FORMAT_UINT8               0x04 /**< Unsigned 8-bit integer. */
+#define BLE_GATT_CPF_FORMAT_UINT12              0x05 /**< Unsigned 12-bit integer. */
+#define BLE_GATT_CPF_FORMAT_UINT16              0x06 /**< Unsigned 16-bit integer. */
+#define BLE_GATT_CPF_FORMAT_UINT24              0x07 /**< Unsigned 24-bit integer. */
+#define BLE_GATT_CPF_FORMAT_UINT32              0x08 /**< Unsigned 32-bit integer. */
+#define BLE_GATT_CPF_FORMAT_UINT48              0x09 /**< Unsigned 48-bit integer. */
+#define BLE_GATT_CPF_FORMAT_UINT64              0x0A /**< Unsigned 64-bit integer. */
+#define BLE_GATT_CPF_FORMAT_UINT128             0x0B /**< Unsigned 128-bit integer. */
+#define BLE_GATT_CPF_FORMAT_SINT8               0x0C /**< Signed 2-bit integer. */
+#define BLE_GATT_CPF_FORMAT_SINT12              0x0D /**< Signed 12-bit integer. */
+#define BLE_GATT_CPF_FORMAT_SINT16              0x0E /**< Signed 16-bit integer. */
+#define BLE_GATT_CPF_FORMAT_SINT24              0x0F /**< Signed 24-bit integer. */
+#define BLE_GATT_CPF_FORMAT_SINT32              0x10 /**< Signed 32-bit integer. */
+#define BLE_GATT_CPF_FORMAT_SINT48              0x11 /**< Signed 48-bit integer. */
+#define BLE_GATT_CPF_FORMAT_SINT64              0x12 /**< Signed 64-bit integer. */
+#define BLE_GATT_CPF_FORMAT_SINT128             0x13 /**< Signed 128-bit integer. */
+#define BLE_GATT_CPF_FORMAT_FLOAT32             0x14 /**< IEEE-754 32-bit floating point. */
+#define BLE_GATT_CPF_FORMAT_FLOAT64             0x15 /**< IEEE-754 64-bit floating point. */
+#define BLE_GATT_CPF_FORMAT_SFLOAT              0x16 /**< IEEE-11073 16-bit SFLOAT. */
+#define BLE_GATT_CPF_FORMAT_FLOAT               0x17 /**< IEEE-11073 32-bit FLOAT. */
+#define BLE_GATT_CPF_FORMAT_DUINT16             0x18 /**< IEEE-20601 format. */
+#define BLE_GATT_CPF_FORMAT_UTF8S               0x19 /**< UTF-8 string. */
+#define BLE_GATT_CPF_FORMAT_UTF16S              0x1A /**< UTF-16 string. */
+#define BLE_GATT_CPF_FORMAT_STRUCT              0x1B /**< Opaque Structure. */
+/** @} */
+
+/** @defgroup BLE_GATT_CPF_NAMESPACES GATT Bluetooth Namespaces
+ * @{
+ */
+#define BLE_GATT_CPF_NAMESPACE_BTSIG            0x01
+#define BLE_GATT_CPF_NAMESPACE_DESCRIPTION_UNKNOWN 0x0000
+/** @} */
+
+/** @} */
+
+/**@brief GATT Characteristic Properties. */
+typedef struct
+{
+  /* Standard properties */
+  uint8_t broadcast       :1; /**< Broadcasting of value permitted. */
+  uint8_t read            :1; /**< Reading value permitted. */
+  uint8_t write_wo_resp   :1; /**< Writing value with Write Command permitted. */
+  uint8_t write           :1; /**< Writing value with Write Request permitted. */
+  uint8_t notify          :1; /**< Notications of value permitted. */
+  uint8_t indicate        :1; /**< Indications of value permitted. */
+  uint8_t auth_signed_wr  :1; /**< Writing value with Signed Write Command permitted. */
+} ble_gatt_char_props_t;
+
+/**@brief GATT Characteristic Extended Properties. */
+typedef struct
+{
+  /* Extended properties */
+  uint8_t reliable_wr     :1; /**< Writing value with Queued Write Request permitted. */
+  uint8_t wr_aux          :1; /**< Writing the Characteristic User Description permitted. */
+} ble_gatt_char_ext_props_t;
+
+#endif // BLE_GATT_H__
+
+/**
+  @}
+  @}
+*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/ble_gattc.h	Tue Mar 18 12:30:07 2014 +0000
@@ -0,0 +1,395 @@
+/* Copyright (c) 2012 Nordic Semiconductor. All Rights Reserved.
+ *
+ * The information contained herein is confidential property of Nordic Semiconductor. The use,
+ * copying, transfer or disclosure of such information is prohibited except by express written
+ * agreement with Nordic Semiconductor.
+ *
+ */
+/**
+  @addtogroup BLE_GATTC Generic Attribute Profile (GATT) Client
+  @{
+  @brief  Definitions and prototypes for the GATT Client interface.
+ */
+
+#ifndef BLE_GATTC_H__
+#define BLE_GATTC_H__
+
+#include "ble_gatt.h"
+#include "ble_types.h"
+#include "ble_ranges.h"
+#include "nrf_svc.h"
+
+
+/**@brief GATTC API SVC numbers. */
+enum BLE_GATTC_SVCS
+{
+  SD_BLE_GATTC_PRIMARY_SERVICES_DISCOVER = BLE_GATTC_SVC_BASE, /**< Primary Service Discovery. */
+  SD_BLE_GATTC_RELATIONSHIPS_DISCOVER,                         /**< Relationship Discovery. */
+  SD_BLE_GATTC_CHARACTERISTICS_DISCOVER,                       /**< Characteristic Discovery. */
+  SD_BLE_GATTC_DESCRIPTORS_DISCOVER,                           /**< Characteristic Descriptor Discovery. */
+  SD_BLE_GATTC_CHAR_VALUE_BY_UUID_READ,                        /**< Read Characteristic Value by UUID. */
+  SD_BLE_GATTC_READ,                                           /**< Generic read. */
+  SD_BLE_GATTC_CHAR_VALUES_READ,                               /**< Read multiple Characteristic Values. */
+  SD_BLE_GATTC_WRITE,                                          /**< Generic write. */
+  SD_BLE_GATTC_HV_CONFIRM                                      /**< Handle Value Confirmation. */
+};
+
+/** @addtogroup BLE_GATTC_DEFINES Defines
+ * @{ */
+
+/** @defgroup BLE_ERRORS_GATTC SVC return values specific to GATTC
+ * @{ */
+#define BLE_ERROR_GATTC_PROC_NOT_PERMITTED    (NRF_GATTC_ERR_BASE + 0x000)
+/** @} */
+
+/**@brief Last Attribute Handle. */
+#define BLE_GATTC_HANDLE_END                0xFFFF
+
+/** @} */
+
+/**@brief Operation Handle Range. */
+typedef struct
+{
+  uint16_t          start_handle; /**< Start Handle. */
+  uint16_t          end_handle;   /**< End Handle. */
+} ble_gattc_handle_range_t;
+
+
+/**@brief GATT service. */
+typedef struct
+{
+  ble_uuid_t               uuid;          /**< Service UUID. */
+  ble_gattc_handle_range_t handle_range;  /**< Service Handle Range. */
+} ble_gattc_service_t;
+
+
+/**@brief  GATT include. */
+typedef struct
+{
+  uint16_t            handle;           /**< Include Handle. */
+  ble_gattc_service_t included_srvc;    /**< Handle of the included service. */
+} ble_gattc_include_t;
+
+
+/**@brief GATT characteristic. */
+typedef struct
+{
+  ble_uuid_t              uuid;                 /**< Characteristic UUID. */
+  ble_gatt_char_props_t   char_props;           /**< Characteristic Properties. */
+  uint8_t                 char_ext_props : 1;   /**< Extended properties present. */
+  uint16_t                handle_decl;          /**< Handle of the Characteristic Declaration. */
+  uint16_t                handle_value;         /**< Handle of the Characteristic Value. */
+} ble_gattc_char_t;
+
+
+/**@brief GATT descriptor. */
+typedef struct
+{
+  uint16_t          handle;         /**< Descriptor Handle. */
+  ble_uuid_t        uuid;           /**< Descriptor UUID. */
+} ble_gattc_desc_t;
+
+
+/**@brief Write Parameters. */
+typedef struct
+{
+  uint8_t    write_op;                 /**< Write Operation to be performed, see BLE_GATT_WRITE_OPS. */
+  uint16_t   handle;                   /**< Handle to the attribute to be written. */
+  uint16_t   offset;                   /**< Offset in bytes. */
+  uint16_t   len;                      /**< Length of data in bytes. */
+  uint8_t*   p_value;                  /**< Pointer to the value data. */
+  uint8_t    flags;                    /**< Flags, see @ref BLE_GATT_EXEC_WRITE_FLAGS. */
+} ble_gattc_write_params_t;
+
+
+/**
+ * @brief GATT Client Event IDs.
+ */
+enum BLE_GATTC_EVTS
+{
+  BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP = BLE_GATTC_EVT_BASE,  /**< Primary Service Discovery Response event.  */
+  BLE_GATTC_EVT_REL_DISC_RSP,                             /**< Relationship Discovery Response event. */
+  BLE_GATTC_EVT_CHAR_DISC_RSP,                            /**< Characteristic Discovery Response event. */
+  BLE_GATTC_EVT_DESC_DISC_RSP,                            /**< Descriptor Discovery Response event. */
+  BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP,                /**< Read By UUID Response event. */
+  BLE_GATTC_EVT_READ_RSP,                                 /**< Read Response event. */
+  BLE_GATTC_EVT_CHAR_VALS_READ_RSP,                       /**< Read multiple Response event. */
+  BLE_GATTC_EVT_WRITE_RSP,                                /**< Write Response event. */
+  BLE_GATTC_EVT_HVX,                                      /**< Handle Value Notification or Indication event. */
+  BLE_GATTC_EVT_TIMEOUT                                   /**< Timeout event. */
+};
+
+/**@brief Event structure for BLE_GATTC_EVT_PRIM_SRVC_DISC_RSP. */
+typedef struct
+{
+  uint16_t             count;           /**< Service count. */
+  ble_gattc_service_t services[1];      /**< Service data, variable length. */
+} ble_gattc_evt_prim_srvc_disc_rsp_t;
+
+/**@brief Event structure for BLE_GATTC_EVT_REL_DISC_RSP. */
+typedef struct
+{
+  uint16_t             count;           /**< Include count. */
+  ble_gattc_include_t includes[1];      /**< Include data, variable length. */
+} ble_gattc_evt_rel_disc_rsp_t;
+
+/**@brief Event structure for BLE_GATTC_EVT_CHAR_DISC_RSP. */
+typedef struct
+{
+  uint16_t            count;          /**< Characteristic count. */
+  ble_gattc_char_t    chars[1];       /**< Characteristic data, variable length. */
+} ble_gattc_evt_char_disc_rsp_t;
+
+/**@brief Event structure for BLE_GATTC_EVT_DESC_DISC_RSP. */
+typedef struct
+{
+  uint16_t            count;          /**< Descriptor count. */
+  ble_gattc_desc_t    descs[1];       /**< Descriptor data, variable length. */
+} ble_gattc_evt_desc_disc_rsp_t;
+
+/**@brief GATT read by UUID handle value pair. */
+typedef struct 
+{
+  uint16_t            handle;          /**< Attribute Handle. */
+  uint8_t             *p_value;        /**< Pointer to value, variable length (length available as value_len in ble_gattc_evt_read_by_uuid_rsp_t). 
+                                            Please note that this pointer is absolute to the memory provided by the user when retrieving the event,
+                                            so it will effectively point to a location inside the handle_value array. */
+} ble_gattc_handle_value_t;
+
+/**@brief Event structure for BLE_GATTC_EVT_CHAR_VAL_BY_UUID_READ_RSP. */
+typedef struct
+{
+  uint16_t                  count;            /**< Handle-Value Pair Count. */
+  uint16_t                  value_len;        /**< Length of the value in Handle-Value(s) list. */
+  ble_gattc_handle_value_t  handle_value[1];  /**< Handle-Value(s) list, variable length. */
+} ble_gattc_evt_char_val_by_uuid_read_rsp_t;
+
+/**@brief Event structure for BLE_GATTC_EVT_READ_RSP. */
+typedef struct
+{
+  uint16_t            handle;         /**< Attribute Handle. */
+  uint16_t            offset;         /**< Offset of the attribute data. */
+  uint16_t            len;            /**< Attribute data length. */
+  uint8_t             data[1];        /**< Attribute data, variable length. */
+} ble_gattc_evt_read_rsp_t;
+
+/**@brief Event structure for BLE_GATTC_EVT_CHAR_VALS_READ_RSP. */
+typedef struct
+{
+  uint16_t            len;            /**< Concatenated Attribute values length. */
+  uint8_t             values[1];      /**< Attribute values, variable length. */
+} ble_gattc_evt_char_vals_read_rsp_t;
+
+/**@brief Event structure for BLE_GATTC_EVT_WRITE_RSP. */
+typedef struct
+{
+  uint16_t            handle;           /**< Attribute Handle. */
+  uint8_t             write_op;         /**< Type of write operation, see @ref BLE_GATT_WRITE_OPS. */
+  uint16_t            offset;           /**< Data Offset. */
+  uint16_t            len;              /**< Data length. */
+  uint8_t             data[1];          /**< Data, variable length. */
+} ble_gattc_evt_write_rsp_t;
+
+/**@brief Event structure for BLE_GATTC_EVT_HVX. */
+typedef struct
+{
+  uint16_t            handle;         /**< Handle to which the HVx operation applies. */
+  uint8_t             type;           /**< Indication or Notification, see @ref BLE_GATT_HVX_TYPES. */
+  uint16_t            len;            /**< Attribute data length. */
+  uint8_t             data[1];        /**< Attribute data, variable length. */
+} ble_gattc_evt_hvx_t;
+
+/**@brief Event structure for BLE_GATTC_EVT_TIMEOUT. */
+typedef struct
+{
+  uint8_t          src;                       /**< Timeout source, see @ref BLE_GATT_TIMEOUT_SOURCES. */
+} ble_gattc_evt_timeout_t;
+
+/**@brief GATTC event type. */
+typedef struct
+{
+  uint16_t            conn_handle;                /**< Connection Handle on which event occured. */
+  uint16_t            gatt_status;                /**< GATT status code for the operation, see @ref BLE_GATT_STATUS_CODES. */
+  uint16_t            error_handle;               /**< In case of error: The handle causing the error. In all other cases BLE_GATT_HANDLE_INVALID. */
+  union
+  {
+    ble_gattc_evt_prim_srvc_disc_rsp_t          prim_srvc_disc_rsp;         /**< Primary Service Discovery Response Event Parameters. */
+    ble_gattc_evt_rel_disc_rsp_t                rel_disc_rsp;               /**< Relationship Discovery Response Event Parameters. */
+    ble_gattc_evt_char_disc_rsp_t               char_disc_rsp;              /**< Characteristic Discovery Response Event Parameters. */
+    ble_gattc_evt_desc_disc_rsp_t               desc_disc_rsp;              /**< Descriptor Discovery Response Event Parameters. */
+    ble_gattc_evt_char_val_by_uuid_read_rsp_t   char_val_by_uuid_read_rsp;  /**< Characteristic Value Read by UUID Response Event Parameters. */
+    ble_gattc_evt_read_rsp_t                    read_rsp;                   /**< Read Response Event Parameters. */
+    ble_gattc_evt_char_vals_read_rsp_t          char_vals_read_rsp;         /**< Characteristic Values Read Response Event Parameters. */
+    ble_gattc_evt_write_rsp_t                   write_rsp;                  /**< Write Response Event Parameters. */
+    ble_gattc_evt_hvx_t                         hvx;                        /**< Handle Value Notification/Indication Event Parameters. */
+    ble_gattc_evt_timeout_t                     timeout;                    /**< Timeout Event Parameters. */
+  } params;                                                                 /**< Event Parameters. @note Only valid if @ref gatt_status == BLE_GATT_STATUS_SUCCESS. */
+} ble_gattc_evt_t;
+
+
+/**@brief Initiate or continue a GATT Primary Service Discovery procedure.
+ *
+ * @details This function initiates a Primary Service discovery, starting from the supplied handle. 
+ *          If the last service has not been reached, this must be called again with an updated start handle value to continue the search.
+ *
+ * @note If any of the discovered services have 128-bit UUIDs which are not present in the table provided to ble_vs_uuids_assign, a UUID structure with
+ *       type BLE_UUID_TYPE_UNKNOWN will be received in the corresponding event.
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] start_handle Handle to start searching from.
+ * @param[in] p_srvc_uuid Pointer to the service UUID to be found. If it is NULL, all primary services will be returned.
+ *
+ * @return @ref NRF_SUCCESS Successfully started or resumed the Primary Service Discovery procedure.
+ * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @return @ref NRF_ERROR_BUSY Client procedure already in progress.
+ */
+SVCALL(SD_BLE_GATTC_PRIMARY_SERVICES_DISCOVER, uint32_t, sd_ble_gattc_primary_services_discover(uint16_t conn_handle, uint16_t start_handle, ble_uuid_t const * const p_srvc_uuid));
+
+
+/**@brief Initiate or continue a GATT Relationship Discovery procedure.
+ *
+ * @details This function initiates the Find Included Services sub-procedure. If the last included service has not been reached,
+ *          this must be called again with an updated handle range to continue the search.
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] p_handle_range A pointer to the range of handles of the Service to perform this procedure on.
+ *
+ * @return @ref NRF_SUCCESS Successfully started or resumed the Relationship Discovery procedure.
+ * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @return @ref NRF_ERROR_BUSY Client procedure already in progress.
+ */
+SVCALL(SD_BLE_GATTC_RELATIONSHIPS_DISCOVER, uint32_t, sd_ble_gattc_relationships_discover(uint16_t conn_handle, ble_gattc_handle_range_t const * const p_handle_range));
+
+
+/**@brief Initiate or continue a GATT Characteristic Discovery procedure.
+ *
+ * @details This function initiates a Characteristic discovery procedure. If the last Characteristic has not been reached,
+ *          this must be called again with an updated handle range to continue the discovery.
+ *
+ * @note If any of the discovered characteristics have 128-bit UUIDs which are not present in the table provided to ble_vs_uuids_assign, a UUID structure with
+ *       type BLE_UUID_TYPE_UNKNOWN will be received in the corresponding event.
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] p_handle_range A pointer to the range of handles of the Service to perform this procedure on.
+ *
+ * @return @ref NRF_SUCCESS Successfully started or resumed the Characteristic Discovery procedure.
+ * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @return @ref NRF_ERROR_BUSY Client procedure already in progress.
+ */
+SVCALL(SD_BLE_GATTC_CHARACTERISTICS_DISCOVER, uint32_t, sd_ble_gattc_characteristics_discover(uint16_t conn_handle, ble_gattc_handle_range_t const * const p_handle_range));
+
+
+/**@brief Initiate or continue a GATT Characteristic Descriptor Discovery procedure.
+ *
+ * @details This function initiates the Characteristic Descriptor discovery procedure. If the last Descriptor has not been reached,
+ *          this must be called again with an updated handle range to continue the discovery.
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] p_handle_range A pointer to the range of handles of the Characteristic to perform this procedure on.
+ *
+ * @return @ref NRF_SUCCESS Successfully started or resumed the Descriptor Discovery procedure.
+ * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @return @ref NRF_ERROR_BUSY Client procedure already in progress.
+ */
+SVCALL(SD_BLE_GATTC_DESCRIPTORS_DISCOVER, uint32_t, sd_ble_gattc_descriptors_discover(uint16_t conn_handle, ble_gattc_handle_range_t const * const p_handle_range));
+
+
+/**@brief Initiate or continue a GATT Read using Characteristic UUID procedure.
+ *
+ * @details This function initiates the Read using Characteristic UUID procedure. If the last Characteristic has not been reached,
+ *          this must be called again with an updated handle range to continue the discovery.
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] p_uuid Pointer to a Characteristic value UUID to read.
+ * @param[in] p_handle_range A pointer to the range of handles to perform this procedure on.
+ *
+ * @return @ref NRF_SUCCESS Successfully started or resumed the Read using Characteristic UUID procedure.
+ * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @return @ref NRF_ERROR_BUSY Client procedure already in progress.
+ */
+SVCALL(SD_BLE_GATTC_CHAR_VALUE_BY_UUID_READ, uint32_t, sd_ble_gattc_char_value_by_uuid_read(uint16_t conn_handle, ble_uuid_t const * const p_uuid, ble_gattc_handle_range_t const * const p_handle_range));
+
+
+/**@brief Initiate or continue a GATT Read (Long) Characteristic or Descriptor procedure.
+ *
+ * @details This function initiates a GATT Read (Long) Characteristic or Descriptor procedure. If the Characteristic or Descriptor
+ *          to be read is longer than GATT_MTU - 1, this function must be called multiple times with appropriate offset to read the 
+ *          complete value.
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] handle The handle of the attribute to be read.
+ * @param[in] offset Offset into the attribute value to be read.
+ *
+ * @return @ref NRF_SUCCESS Successfully started or resumed the Read (Long) procedure.
+ * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @return @ref NRF_ERROR_BUSY Client procedure already in progress.
+ */
+SVCALL(SD_BLE_GATTC_READ, uint32_t, sd_ble_gattc_read(uint16_t conn_handle, uint16_t handle, uint16_t offset));
+
+
+/**@brief Initiate a GATT Read Multiple Characteristic Values procedure.
+ *
+ * @details This function initiates a GATT Read Multiple Characteristic Values procedure. 
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] p_handles A pointer to the handle(s) of the attribute(s) to be read.
+ * @param[in] handle_count The number of handles in p_handles.
+ *
+ * @return @ref NRF_SUCCESS Successfully started the Read Multiple Characteristic Values procedure.
+ * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @return @ref NRF_ERROR_BUSY Client procedure already in progress.
+ */
+SVCALL(SD_BLE_GATTC_CHAR_VALUES_READ, uint32_t, sd_ble_gattc_char_values_read(uint16_t conn_handle, uint16_t const * const p_handles, uint16_t handle_count));
+
+
+/**@brief Perform a Write (Characteristic Value or Descriptor, with or without response, signed or not, long or reliable) procedure.
+ *
+ * @details This function can perform all write procedures described in GATT. 
+ *
+ * @note    It is important to note that a write without response will <b>consume an application buffer</b>, and will therefore 
+ *          generate a @ref BLE_EVT_TX_COMPLETE event when the packet has been transmitted. A write on the other hand will use the 
+ *          standard client internal buffer and thus will only generate a @ref BLE_GATTC_EVT_WRITE_RSP event as soon as the write response 
+ *          has been received from the peer. Please see the documentation of @ref sd_ble_tx_buffer_count_get for more details.
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] p_write_params A pointer to a write parameters structure.
+ *
+ * @return @ref NRF_SUCCESS Successfully started the Write procedure.
+ * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @return @ref NRF_ERROR_DATA_SIZE Invalid data size(s) supplied.
+ * @return @ref NRF_ERROR_BUSY Procedure already in progress.
+ * @return @ref BLE_ERROR_NO_TX_BUFFERS There are no available buffers left.
+ */
+SVCALL(SD_BLE_GATTC_WRITE, uint32_t, sd_ble_gattc_write(uint16_t conn_handle, ble_gattc_write_params_t const * const p_write_params));
+
+
+/**@brief Send a Handle Value Confirmation to the GATT Server.
+ *
+ * @param[in] conn_handle The connection handle identifying the connection to perform this procedure on.
+ * @param[in] handle The handle of the attribute in the indication.
+ *
+ * @return @ref NRF_SUCCESS Successfully queued the Handle Value Confirmation for transmission.
+ * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @return @ref NRF_ERROR_INVALID_STATE No Indication pending to be confirmed.
+ * @return @ref BLE_ERROR_INVALID_ATTR_HANDLE Invalid attribute handle.
+ * @return @ref BLE_ERROR_NO_TX_BUFFERS There are no available buffers left.
+ */
+SVCALL(SD_BLE_GATTC_HV_CONFIRM, uint32_t, sd_ble_gattc_hv_confirm(uint16_t conn_handle, uint16_t handle));
+
+
+#endif /* BLE_GATTC_H__ */
+
+/**
+  @}
+  @}
+*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/ble_gatts.h	Tue Mar 18 12:30:07 2014 +0000
@@ -0,0 +1,547 @@
+/* Copyright (c) 2011 Nordic Semiconductor. All Rights Reserved.
+ *
+ * The information contained herein is confidential property of Nordic Semiconductor. The use,
+ * copying, transfer or disclosure of such information is prohibited except by express written
+ * agreement with Nordic Semiconductor.
+ *
+ */
+/**
+  @addtogroup BLE_GATTS Generic Attribute Profile (GATT) Server
+  @{
+  @brief  Definitions and prototypes for the GATTS interface.
+ */
+
+#ifndef BLE_GATTS_H__
+#define BLE_GATTS_H__
+
+#include "ble_types.h"
+#include "ble_ranges.h"
+#include "ble_l2cap.h"
+#include "ble_gap.h"
+#include "ble_gatt.h"
+#include "nrf_svc.h"
+
+
+/**
+ * @brief GATTS API SVC numbers.
+ */
+enum BLE_GATTS_SVCS
+{
+  SD_BLE_GATTS_SERVICE_ADD = BLE_GATTS_SVC_BASE, /**< Add a service. */
+  SD_BLE_GATTS_INCLUDE_ADD,                      /**< Add an included service. */
+  SD_BLE_GATTS_CHARACTERISTIC_ADD,               /**< Add a characteristic. */
+  SD_BLE_GATTS_DESCRIPTOR_ADD,                   /**< Add a generic attribute. */
+  SD_BLE_GATTS_VALUE_SET,                        /**< Set an attribute value. */
+  SD_BLE_GATTS_VALUE_GET,                        /**< Get an attribute value. */
+  SD_BLE_GATTS_HVX,                              /**< Handle Value Notification or Indication. */
+  SD_BLE_GATTS_SERVICE_CHANGED,                  /**< Perform a Service Changed Indication to one or more peers. */
+  SD_BLE_GATTS_RW_AUTHORIZE_REPLY,               /**< Reply to an authorization request for a read or write operation on one or more attributes. */ 
+  SD_BLE_GATTS_SYS_ATTR_SET,                     /**< Set the persistent system attributes for a connection. */  
+  SD_BLE_GATTS_SYS_ATTR_GET,                     /**< Get updated persistent system attributes after terminating a connection. */
+};
+
+
+/** @addtogroup BLE_GATTS_DEFINES Defines
+ * @{ */
+
+/** @brief Only the default MTU size of 23 is currently supported. */
+#define GATT_RX_MTU 23
+
+/** @defgroup BLE_ERRORS_GATTS SVC return values specific to GATTS
+ * @{ */
+#define BLE_ERROR_GATTS_INVALID_ATTR_TYPE   (NRF_GATTS_ERR_BASE + 0x000) /**< Invalid attribute type. */
+#define BLE_ERROR_GATTS_SYS_ATTR_MISSING    (NRF_GATTS_ERR_BASE + 0x001) /**< System Attributes missing. */
+/** @} */
+
+/** @defgroup BLE_GATTS_ATTR_LENS_MAX Maximum attribute lengths
+ * @{ */
+#define BLE_GATTS_FIX_ATTR_LEN_MAX (510)  /**< Maximum length for fixed length Attribute Values. */
+#define BLE_GATTS_VAR_ATTR_LEN_MAX (512)  /**< Maximum length for variable length Attribute Values. */ 
+/** @} */
+
+/** @defgroup BLE_GATTS_SRVC_TYPES GATT Server Service Types
+ * @{ */
+#define BLE_GATTS_SRVC_TYPE_INVALID          0x00  /**< Invalid Service Type. */
+#define BLE_GATTS_SRVC_TYPE_PRIMARY          0x01  /**< Primary Service. */
+#define BLE_GATTS_SRVC_TYPE_SECONDARY        0x02  /**< Secondary Type. */
+/** @} */
+
+
+/** @defgroup BLE_GATTS_ATTR_TYPES GATT Server Attribute Types
+ * @{ */
+#define BLE_GATTS_ATTR_TYPE_INVALID         0x00  /**< Invalid Attribute Type. */
+#define BLE_GATTS_ATTR_TYPE_PRIM_SRVC_DECL  0x01  /**< Primary Service Declaration. */
+#define BLE_GATTS_ATTR_TYPE_SEC_SRVC_DECL   0x02  /**< Secondary Service Declaration. */
+#define BLE_GATTS_ATTR_TYPE_INC_DECL        0x03  /**< Include Declaration. */
+#define BLE_GATTS_ATTR_TYPE_CHAR_DECL       0x04  /**< Characteristic Declaration. */
+#define BLE_GATTS_ATTR_TYPE_CHAR_VAL        0x05  /**< Characteristic Value. */
+#define BLE_GATTS_ATTR_TYPE_DESC            0x06  /**< Descriptor. */
+#define BLE_GATTS_ATTR_TYPE_OTHER           0x07  /**< Other, non-GATT specific type. */
+/** @} */
+
+
+/** @defgroup BLE_GATTS_OPS GATT Server Operations
+ * @{ */
+#define BLE_GATTS_OP_INVALID                0x00  /**< Invalid Operation. */
+#define BLE_GATTS_OP_WRITE_REQ              0x01  /**< Write Request. */
+#define BLE_GATTS_OP_WRITE_CMD              0x02  /**< Write Command. */
+#define BLE_GATTS_OP_SIGN_WRITE_CMD         0x03  /**< Signed Write Command. */
+#define BLE_GATTS_OP_PREP_WRITE_REQ         0x04  /**< Prepare Write Request. */
+#define BLE_GATTS_OP_EXEC_WRITE_REQ_CANCEL  0x05  /**< Execute Write Request: Cancel all prepared writes. */
+#define BLE_GATTS_OP_EXEC_WRITE_REQ_NOW     0x06  /**< Execute Write Request: Immediately execute all prepared writes. */
+/** @} */
+
+/** @defgroup BLE_GATTS_VLOCS GATT Value Locations
+ * @{ */
+#define BLE_GATTS_VLOC_INVALID       0x00  /**< Invalid Location. */
+#define BLE_GATTS_VLOC_STACK         0x01  /**< Attribute Value is located in stack memory, no user memory is required. */
+#define BLE_GATTS_VLOC_USER          0x02  /**< Attribute Value is located in user memory. This requires the user to maintain a valid buffer through the lifetime of the attribute, since the stack
+                                                will read and write directly to the memory using the pointer provided in the APIs. There are no alignment requirements for the buffer. */
+/** @} */
+
+/** @defgroup BLE_GATTS_AUTHORIZE_TYPES GATT Server Authorization Types
+ * @{ */
+#define BLE_GATTS_AUTHORIZE_TYPE_INVALID    0x00  /**< Invalid Type. */
+#define BLE_GATTS_AUTHORIZE_TYPE_READ       0x01  /**< Authorize a Read Operation. */
+#define BLE_GATTS_AUTHORIZE_TYPE_WRITE      0x02  /**< Authorize a Write Request Operation. */
+/** @} */
+
+
+/** @} */
+
+/**@brief Attribute metadata. */
+typedef struct
+{
+  ble_gap_conn_sec_mode_t read_perm;       /**< Read permissions. */
+  ble_gap_conn_sec_mode_t write_perm;      /**< Write permissions. */
+  uint8_t                 vlen       :1;   /**< Variable length attribute. */
+  uint8_t                 vloc       :2;   /**< Value location, see @ref BLE_GATTS_VLOCS.*/
+  uint8_t                 rd_auth    :1;   /**< Read Authorization and value will be requested from the application on every read operation. */ 
+  uint8_t                 wr_auth    :1;   /**< Write Authorization will be requested from the application on every Write Request operation (but not Write Command). */
+} ble_gatts_attr_md_t;
+
+
+/**@brief GATT Attribute. */
+typedef struct
+{
+  ble_uuid_t*          p_uuid;          /**< Pointer to the attribute UUID. */
+  ble_gatts_attr_md_t* p_attr_md;       /**< Pointer to the attribute metadata structure. */
+  uint16_t             init_len;        /**< Initial attribute value length in bytes. */
+  uint16_t             init_offs;       /**< Initial attribute value offset in bytes. If different from zero, the first init_offs bytes of the attribute value will be left uninitialized. */
+  uint16_t             max_len;         /**< Maximum attribute value length in bytes, see @ref BLE_GATTS_ATTR_LENS_MAX for maximum values. */
+  uint8_t*             p_value;         /**< Pointer to the attribute data. Please note that if the @ref BLE_GATTS_VLOC_USER value location is selected in the attribute metadata, this will have to point to a buffer
+                                             that remains valid through the lifetime of the attribute. This excludes usage of automatic variables that may go out of scope or any other temporary location. 
+                                             The stack may access that memory directly without the application's knowledge. */
+} ble_gatts_attr_t;
+
+
+/**@brief GATT Attribute Context. */
+typedef struct
+{
+  ble_uuid_t           srvc_uuid;       /**< Service UUID. */
+  ble_uuid_t           char_uuid;       /**< Characteristic UUID if applicable (BLE_UUID_TYPE_UNKNOWN if N/A). */
+  ble_uuid_t           desc_uuid;       /**< Descriptor UUID if applicable (BLE_UUID_TYPE_UNKNOWN if N/A). */
+  uint16_t             srvc_handle;     /**< Service Handle. */
+  uint16_t             value_handle;    /**< Characteristic Handle if applicable (BLE_GATT_HANDLE_INVALID if N/A). */
+  uint8_t              type;            /**< Attribute Type, see @ref BLE_GATTS_ATTR_TYPES. */
+} ble_gatts_attr_context_t;
+
+
+/**@brief GATT Characteristic Presentation Format. */
+typedef struct
+{
+  uint8_t          format;      /**< Format of the value, see @ref BLE_GATT_CPF_FORMATS. */
+  int8_t           exponent;    /**< Exponent for integer data types. */
+  uint16_t         unit;        /**< UUID from Bluetooth Assigned Numbers. */
+  uint8_t          name_space;  /**< Namespace from Bluetooth Assigned Numbers, see @ref BLE_GATT_CPF_NAMESPACES. */
+  uint16_t         desc;        /**< Namespace description from Bluetooth Assigned Numbers, see @ref BLE_GATT_CPF_NAMESPACES. */
+} ble_gatts_char_pf_t;
+
+
+/**@brief GATT Characteristic metadata. */
+typedef struct
+{
+  ble_gatt_char_props_t       char_props;               /**< Characteristic Properties. */
+  ble_gatt_char_ext_props_t   char_ext_props;           /**< Characteristic Extended Properties. */
+  uint8_t*                    p_char_user_desc;         /**< Pointer to a UTF-8, NULL if the descriptor is not required. */
+  uint16_t                    char_user_desc_max_size;  /**< The maximum size in bytes of the user description descriptor. */
+  uint16_t                    char_user_desc_size;      /**< The size of the user description, must be smaller or equal to char_user_desc_max_size. */ 
+  ble_gatts_char_pf_t*        p_char_pf;                /**< Pointer to a presentation format structure or NULL if the descriptor is not required. */
+  ble_gatts_attr_md_t*        p_user_desc_md;           /**< Attribute metadata for the User Description descriptor, or NULL for default values. */
+  ble_gatts_attr_md_t*        p_cccd_md;                /**< Attribute metadata for the Client Characteristic Configuration Descriptor, or NULL for default values. */
+  ble_gatts_attr_md_t*        p_sccd_md;                /**< Attribute metadata for the Server Characteristic Configuration Descriptor, or NULL for default values. */
+} ble_gatts_char_md_t;
+
+
+/**@brief GATT Characteristic Definition Handles. */
+typedef struct
+{
+  uint16_t          value_handle;       /**< Handle to the characteristic value. */
+  uint16_t          user_desc_handle;   /**< Handle to the User Description descriptor, or BLE_GATT_HANDLE_INVALID if not present. */
+  uint16_t          cccd_handle;        /**< Handle to the Client Characteristic Configuration Descriptor, or BLE_GATT_HANDLE_INVALID if not present. */
+  uint16_t          sccd_handle;        /**< Handle to the Server Characteristic Configuration Descriptor, or BLE_GATT_HANDLE_INVALID if not present. */
+} ble_gatts_char_handles_t;
+
+
+/**@brief GATT HVx parameters. */
+typedef struct
+{
+  uint16_t          handle;             /**< Characteristic Value Handle. */
+  uint8_t           type;               /**< Indication or Notification, see @ref BLE_GATT_HVX_TYPES. */
+  uint16_t          offset;             /**< Offset within the attribute value. */
+  uint16_t*         p_len;              /**< Length in bytes to be written, length in bytes written after successful return. */
+  uint8_t*          p_data;             /**< Actual data content, use NULL to use the current attribute value. */
+} ble_gatts_hvx_params_t;
+
+/**@brief GATT Read Authorization parameters. */
+typedef struct
+{
+  uint16_t          gatt_status;        /**< GATT status code for the operation, see @ref BLE_GATT_STATUS_CODES. */
+  uint8_t           update : 1;         /**< If set, data supplied in p_data will be used in the ATT response. */
+  uint16_t          offset;             /**< Offset of the attribute value being updated. */
+  uint16_t          len;                /**< Length in bytes of the value in p_data pointer, see @ref BLE_GATTS_ATTR_LENS_MAX. */
+  uint8_t*          p_data;             /**< Pointer to new value used to update the attribute value. */
+} ble_gatts_read_authorize_params_t;
+
+/**@brief GATT Write Authorisation parameters. */
+typedef struct
+{
+  uint16_t          gatt_status;        /**< GATT status code for the operation, see @ref BLE_GATT_STATUS_CODES. */
+} ble_gatts_write_authorize_params_t;
+
+/**@brief GATT Read or Write Authorize Reply parameters. */
+typedef struct
+{
+  uint8_t                               type;   /**< Type of authorize operation, see @ref BLE_GATTS_AUTHORIZE_TYPES. */
+  union {
+    ble_gatts_read_authorize_params_t   read;   /**< Read authorization parameters. */
+    ble_gatts_write_authorize_params_t  write;  /**< Write authorization parameters. */
+  } params;
+} ble_gatts_rw_authorize_reply_params_t;
+
+
+/**
+ * @brief GATT Server Event IDs.
+ */
+enum BLE_GATTS_EVTS
+{
+  BLE_GATTS_EVT_WRITE = BLE_GATTS_EVT_BASE,       /**< Write operation performed. */
+  BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST,             /**< Read/Write Authorization request. */
+  BLE_GATTS_EVT_SYS_ATTR_MISSING,                 /**< A persistent system attribute access is pending, awaiting a sd_ble_gatts_sys_attr_set(). */
+  BLE_GATTS_EVT_HVC,                              /**< Handle Value Confirmation. */
+  BLE_GATTS_EVT_SC_CONFIRM,                       /**< Service Changed Confirmation. */
+  BLE_GATTS_EVT_TIMEOUT                           /**< Timeout. */
+};
+
+
+/**@brief Event structure for BLE_GATTS_EVT_WRITE. */
+typedef struct
+{
+  uint16_t                    handle;             /**< Attribute Handle. */
+  uint8_t                     op;                 /**< Type of write operation, see @ref BLE_GATTS_OPS. */
+  ble_gatts_attr_context_t    context;            /**< Attribute Context. */
+  uint16_t                    offset;             /**< Offset for the write operation. */
+  uint16_t                    len;                /**< Length of the incoming data. */
+  uint8_t                     data[1];            /**< Incoming data, variable length. */
+} ble_gatts_evt_write_t;
+
+/**@brief Event structure for authorize read request. */
+typedef struct
+{
+  uint16_t                    handle;             /**< Attribute Handle. */
+  ble_gatts_attr_context_t    context;            /**< Attribute Context. */
+  uint16_t                    offset;             /**< Offset for the read operation. */
+} ble_gatts_evt_read_t;
+
+/**@brief Event structure for BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST. */
+typedef struct
+{
+  uint8_t                     type;             /**< Type of authorize operation, see @ref BLE_GATTS_AUTHORIZE_TYPES. */
+  union {
+    ble_gatts_evt_read_t      read;             /**< Attribute Read Parameters. */
+    ble_gatts_evt_write_t     write;            /**< Attribute Write Parameters. */
+  } request;
+} ble_gatts_evt_rw_authorize_request_t;
+
+/**@brief Event structure for BLE_GATTS_EVT_SYS_ATTR_MISSING. */
+typedef struct
+{
+  uint8_t hint;
+} ble_gatts_evt_sys_attr_missing_t;
+
+
+/**@brief Event structure for BLE_GATTS_EVT_HVC. */
+typedef struct
+{
+  uint16_t          handle;                       /**< Attribute Handle. */
+} ble_gatts_evt_hvc_t;
+
+/**@brief Event structure for BLE_GATTS_EVT_TIMEOUT. */
+typedef struct
+{
+  uint8_t          src;                       /**< Timeout source, see @ref BLE_GATT_TIMEOUT_SOURCES. */
+} ble_gatts_evt_timeout_t;
+
+
+/**@brief GATT Server event callback event structure. */
+typedef struct
+{
+  uint16_t conn_handle;                                       /**< Connection Handle on which event occurred. */
+  union
+  {
+    ble_gatts_evt_write_t                 write;              /**< Write Event Parameters. */
+    ble_gatts_evt_rw_authorize_request_t  authorize_request;  /**< Read or Write Authorize Request Parameters. */
+    ble_gatts_evt_sys_attr_missing_t      sys_attr_missing;   /**< System attributes missing. */
+    ble_gatts_evt_hvc_t                   hvc;                /**< Handle Value Confirmation Event Parameters. */
+    ble_gatts_evt_timeout_t               timeout;            /**< Timeout Event. */
+  } params;
+} ble_gatts_evt_t;
+
+
+/**@brief Add a service declaration to the local server ATT table.
+ *
+ * @param[in] type      Toggles between primary and secondary services, see @ref BLE_GATTS_SRVC_TYPES.
+ * @param[in] p_uuid    Pointer to service UUID.
+ * @param[out] p_handle Pointer to a 16-bit word where the assigned handle will be stored.
+ *
+ * @note Secondary Services are only relevant in the context of the entity that references them, it is therefore forbidden to
+ *       add a secondary service declaration that is not referenced by another service later in the ATT table.
+ *
+ * @return @ref NRF_SUCCESS Successfully added a service declaration.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, Vendor Specific UUIDs need to be present in the table.
+ * @return @ref NRF_ERROR_FORBIDDEN Forbidden value supplied, certain UUIDs are reserved for the stack.
+ * @return @ref NRF_ERROR_NO_MEM Not enough memory to complete operation.
+ */
+SVCALL(SD_BLE_GATTS_SERVICE_ADD, uint32_t, sd_ble_gatts_service_add(uint8_t type, ble_uuid_t const*const p_uuid, uint16_t *const p_handle));
+
+
+/**@brief Add an include declaration to the local server ATT table.
+ *
+ * @note It is currently only possible to add an include declaration to the last added service (i.e. only sequential addition is supported at this time). 
+ *
+ * @note The included service must already be present in the ATT table prior to this call.
+ *
+ * @param[in] service_handle    Handle of the service where the included service is to be placed, if BLE_GATT_HANDLE_INVALID is used, it will be placed sequentially.
+ * @param[in] inc_srvc_handle   Handle of the included service.
+ * @param[out] p_include_handle Pointer to a 16-bit word where the assigned handle will be stored.
+ *
+ * @return @ref NRF_SUCCESS Successfully added an include declaration.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, handle values need to match previously added services.
+ * @return @ref NRF_ERROR_INVALID_STATE Invalid state to perform operation.
+ * @return @ref NRF_ERROR_FORBIDDEN Forbidden value supplied, self inclusions are not allowed.
+ * @return @ref NRF_ERROR_NO_MEM Not enough memory to complete operation.
+ * @return @ref NRF_ERROR_NOT_FOUND Attribute not found.
+ */
+SVCALL(SD_BLE_GATTS_INCLUDE_ADD, uint32_t, sd_ble_gatts_include_add(uint16_t service_handle, uint16_t inc_srvc_handle, uint16_t *const p_include_handle));
+
+
+/**@brief Add a characteristic declaration, a characteristic value declaration and optional characteristic descriptor declarations to the local server ATT table.
+ *
+ * @note It is currently only possible to add a characteristic to the last added service (i.e. only sequential addition is supported at this time). 
+ *
+ * @note Several restrictions apply to the parameters, such as matching permissions between the user description descriptor and the writeable auxiliaries bits,
+ *       readable (no security) and writeable (selectable) CCCDs and SCCDs and valid presentation format values.
+ *
+ * @note If no metadata is provided for the optional descriptors, their permissions will be derived from the characteristic permissions.
+ *
+ * @param[in] service_handle    Handle of the service where the characteristic is to be placed, if BLE_GATT_HANDLE_INVALID is used, it will be placed sequentially.
+ * @param[in] p_char_md         Characteristic metadata.
+ * @param[in] p_attr_char_value Pointer to the attribute structure corresponding to the characteristic value.
+ * @param[out] p_handles        Pointer to the structure where the assigned handles will be stored.
+ *
+ * @return @ref NRF_SUCCESS Successfully added a characteristic.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, service handle, Vendor Specific UUIDs, lengths, and permissions need to adhere to the constraints.
+ * @return @ref NRF_ERROR_INVALID_STATE Invalid state to perform operation, a service context is required.
+ * @return @ref NRF_ERROR_FORBIDDEN Forbidden value supplied, certain UUIDs are reserved for the stack.
+ * @return @ref NRF_ERROR_NO_MEM Not enough memory to complete operation.
+ * @return @ref NRF_ERROR_DATA_SIZE Invalid data size(s) supplied, attribute lengths are restricted by @ref BLE_GATTS_ATTR_LENS_MAX.
+ */
+SVCALL(SD_BLE_GATTS_CHARACTERISTIC_ADD, uint32_t, sd_ble_gatts_characteristic_add(uint16_t service_handle, ble_gatts_char_md_t const*const p_char_md, ble_gatts_attr_t const*const p_attr_char_value, ble_gatts_char_handles_t *const p_handles));
+
+
+/**@brief Add a descriptor to the local server ATT table.
+ *
+ * @note It is currently only possible to add a descriptor to the last added characteristic (i.e. only sequential addition is supported at this time). 
+ *
+ * @param[in] char_handle   Handle of the characteristic where the descriptor is to be placed, if BLE_GATT_HANDLE_INVALID is used, it will be placed sequentially.
+ * @param[in] p_attr        Pointer to the attribute structure.
+ * @param[out] p_handle     Pointer to a 16-bit word where the assigned handle will be stored.
+ *
+ * @return @ref NRF_SUCCESS Successfully added a descriptor.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, characteristic handle, Vendor Specific UUIDs, lengths, and permissions need to adhere to the constraints.
+ * @return @ref NRF_ERROR_INVALID_STATE Invalid state to perform operation, a characteristic context is required.
+ * @return @ref NRF_ERROR_FORBIDDEN Forbidden value supplied, certain UUIDs are reserved for the stack.
+ * @return @ref NRF_ERROR_NO_MEM Not enough memory to complete operation.
+ * @return @ref NRF_ERROR_DATA_SIZE Invalid data size(s) supplied, attribute lengths are restricted by @ref BLE_GATTS_ATTR_LENS_MAX.
+ */
+SVCALL(SD_BLE_GATTS_DESCRIPTOR_ADD, uint32_t, sd_ble_gatts_descriptor_add(uint16_t char_handle, ble_gatts_attr_t const * const p_attr, uint16_t* const p_handle));
+
+/**@brief Set the value of a given attribute.
+ *
+ * @param[in] handle    Attribute handle.
+ * @param[in] offset    Offset in bytes to write from.
+ * @param[in,out] p_len Length in bytes to be written, length in bytes written after successful return.
+ * @param[in] p_value   Pointer to a buffer (at least len bytes long) containing the desired attribute value.
+ *
+ * @return @ref NRF_SUCCESS Successfully set the value of the attribute.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @return @ref NRF_ERROR_NOT_FOUND Attribute not found.
+ * @return @ref NRF_ERROR_FORBIDDEN Forbidden handle supplied, certain attributes are not modifiable by the application.
+ * @return @ref NRF_ERROR_DATA_SIZE Invalid data size(s) supplied, attribute lengths are restricted by @ref BLE_GATTS_ATTR_LENS_MAX.
+ */
+SVCALL(SD_BLE_GATTS_VALUE_SET, uint32_t, sd_ble_gatts_value_set(uint16_t handle, uint16_t offset, uint16_t* const p_len, uint8_t const * const p_value));
+
+/**@brief Get the value of a given attribute.
+ *
+ * @param[in] handle     Attribute handle.
+ * @param[in] offset     Offset in bytes to read from.
+ * @param[in,out] p_len  Length in bytes to be read, total length of attribute value (in bytes, starting from offset) after successful return.
+ * @param[in,out] p_data Pointer to a buffer (at least len bytes long) where to store the attribute value. Set to NULL to obtain the complete length of attribute value.
+ *
+ * @note                 If the attribute value is longer than the size of the supplied buffer,
+ *                       p_len will return the total attribute value length (excluding offset),
+ *                       and not the number of bytes actually returned in p_data.
+ *                       The application may use this information to allocate a suitable buffer size.
+ * 
+ * @return @ref NRF_SUCCESS Successfully retrieved the value of the attribute.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @return @ref NRF_ERROR_NOT_FOUND Attribute not found.
+ */
+SVCALL(SD_BLE_GATTS_VALUE_GET, uint32_t, sd_ble_gatts_value_get(uint16_t handle, uint16_t offset, uint16_t *const p_len, uint8_t* const p_data));
+
+/**@brief Notify or Indicate an attribute value.
+ *
+ * @details This function checks for the relevant Client Characteristic Configuration descriptor value to verify that the relevant operation
+ *          (notification or indication) has been enabled by the client. It is also able to update the attribute value before issuing the PDU, so that
+ *          the application can atomically perform a value update and a server initiated transaction with a single API call.
+ *          If the application chooses to indicate an attribute value, a @ref BLE_GATTS_EVT_HVC will be sent up as soon as the confirmation arrives from
+ *          the peer.
+ *
+ * @note    The local attribute value may be updated even if an outgoing packet is not sent to the peer due to an error during execution. 
+ *          When receiveing the error codes @ref NRF_ERROR_INVALID_STATE, @ref NRF_ERROR_BUSY, @ref BLE_ERROR_GATTS_SYS_ATTR_MISSING and 
+ *          @ref BLE_ERROR_NO_TX_BUFFERS the ATT table has been updated.
+ *          The caller can check whether the value has been updated by looking at the contents of *(p_hvx_params->p_len).
+ *
+ * @note    It is important to note that a notification will <b>consume an application buffer</b>, and will therefore 
+ *          generate a @ref BLE_EVT_TX_COMPLETE event when the packet has been transmitted. An indication on the other hand will use the 
+ *          standard server internal buffer and thus will only generate a @ref BLE_GATTS_EVT_HVC event as soon as the confirmation 
+ *          has been received from the peer. Please see the documentation of @ref sd_ble_tx_buffer_count_get for more details.
+ *
+ * @param[in] conn_handle  Connection handle.
+ * @param[in] p_hvx_params Pointer to an HVx parameters structure. If the p_data member contains a non-NULL pointer the attribute value will be updated with
+ *                         the contents pointed by it before sending the notification or indication.
+ *
+ * @return @ref NRF_SUCCESS Successfully queued a notification or indication for transmission, and optionally updated the attribute value.
+ * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @return @ref BLE_ERROR_INVALID_ATTR_HANDLE Invalid attribute handle(s) supplied. Only attributes added directly by the application are available to notify and indicate.
+ * @return @ref BLE_ERROR_GATTS_INVALID_ATTR_TYPE Invalid attribute type(s) supplied, only characteristic values may be notified and indicated.
+ * @return @ref NRF_ERROR_NOT_FOUND Attribute not found.
+ * @return @ref NRF_ERROR_DATA_SIZE Invalid data size(s) supplied.
+ * @return @ref NRF_ERROR_INVALID_STATE Invalid state to perform operation, notifications or indications must be enabled in the CCCD.
+ * @return @ref NRF_ERROR_BUSY Procedure already in progress.
+ * @return @ref BLE_ERROR_GATTS_SYS_ATTR_MISSING System attributes missing, use @ref sd_ble_gatts_sys_attr_set to set them to a known value.
+ * @return @ref BLE_ERROR_NO_TX_BUFFERS There are no available buffers to send the data, applies only to notifications.
+ */
+SVCALL(SD_BLE_GATTS_HVX, uint32_t, sd_ble_gatts_hvx(uint16_t conn_handle, ble_gatts_hvx_params_t const*const p_hvx_params));
+
+/**@brief Indicate the Service Changed attribute value.
+ *
+ * @details This call will send a Handle Value Indication to one or more peers connected to inform them that the attribute
+ *          table layout has changed. As soon as the peer has confirmed the indication, a @ref BLE_GATTS_EVT_SC_CONFIRM event will
+ *          be issued.
+ *
+ * @note    Some of the restrictions and limitations that apply to @ref sd_ble_gatts_hvx also apply here.
+ *
+ * @param[in] conn_handle  Connection handle.
+ * @param[in] start_handle Start of affected attribute handle range.
+ * @param[in] end_handle   End of affected attribute handle range.
+ *
+ * @return @ref NRF_SUCCESS Successfully queued the Service Changed indication for transmission.
+ * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @return @ref BLE_ERROR_INVALID_ATTR_HANDLE Invalid attribute handle(s) supplied, handles must be in the range populated by the application.
+ * @return @ref NRF_ERROR_INVALID_STATE Invalid state to perform operation, notifications or indications must be enabled in the CCCD.
+ * @return @ref NRF_ERROR_BUSY Procedure already in progress.
+ * @return @ref BLE_ERROR_GATTS_SYS_ATTR_MISSING System attributes missing, use @ref sd_ble_gatts_sys_attr_set to set them to a known value.
+ */
+SVCALL(SD_BLE_GATTS_SERVICE_CHANGED, uint32_t, sd_ble_gatts_service_changed(uint16_t conn_handle, uint16_t start_handle, uint16_t end_handle));
+
+/**@brief Respond to a Read/Write authorization request.
+ *
+ * @note This call should only be used as a response to a @ref BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST event issued to the application.
+ *
+ * @param[in] conn_handle                 Connection handle.
+ * @param[in] p_rw_authorize_reply_params Pointer to a structure with the attribute provided by the application.
+ *
+ * @return @ref NRF_SUCCESS               Successfully queued a response to the peer, and in the case of a write operation, ATT table updated.
+ * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @return @ref NRF_ERROR_INVALID_STATE   No authorization request pending.
+ * @return @ref NRF_ERROR_INVALID_PARAM   Authorization op invalid,
+ *                                         or for Read Authorization reply: requested handles not replied with,
+ *                                         or for Write Authorization reply: handle supplied does not match requested handle.
+ */
+SVCALL(SD_BLE_GATTS_RW_AUTHORIZE_REPLY, uint32_t, sd_ble_gatts_rw_authorize_reply(uint16_t conn_handle, ble_gatts_rw_authorize_reply_params_t const*const p_rw_authorize_reply_params));
+
+
+/**@brief Update persistent system attribute information.
+ *
+ * @details Supply to the stack information about persistent system attributes.
+ *          This call is legal in the connected state only, and is usually 
+ *          made immediately after a connection is established and the bond identified.
+ *          usually as a response to a BLE_GATTS_EVT_SYS_ATTR_MISSING.
+ *
+ *          p_sysattrs may point directly to the application's stored copy of the struct.
+ *          If the pointer is NULL, the system attribute info is initialized, assuming that
+ *          the application does not have any previously saved data for this bond.
+ *
+ * @note The state of persistent system attributes is reset upon connection and then remembered for its duration. 
+ *
+ * @note If this call returns with an error code different from @ref NRF_SUCCESS, the storage of persistent system attributes may have been completed only partially.
+ *       This means that the state of the attribute table is undefined, and the application should either provide a new set of attributes using this same call or
+ *       reset the SoftDevice to return to a known state.
+ *
+ * @param[in]  conn_handle        Connection handle.
+ * @param[in]  p_sys_attr_data    Pointer to a saved copy of system attributes supplied to the stack, or NULL.
+ * @param[in]  len                Size of data pointed by p_sys_attr_data, in octets. 
+ *
+ * @return @ref NRF_SUCCESS Successfully set the system attribute information.
+ * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @return @ref NRF_ERROR_INVALID_DATA Invalid data supplied, the data should be exactly the same as retrieved with @ref sd_ble_gatts_sys_attr_get.
+ * @return @ref NRF_ERROR_NO_MEM Not enough memory to complete operation.
+ */ 
+SVCALL(SD_BLE_GATTS_SYS_ATTR_SET, uint32_t, sd_ble_gatts_sys_attr_set(uint16_t conn_handle, uint8_t const*const p_sys_attr_data, uint16_t len)); 
+
+ 
+/**@brief Retrieve persistent system attribute information from the stack.
+ *
+ * @details This call is used to retrieve information about values to be stored perisistently by the application
+ *          after a connection has been terminated. When a new connection is made to the same bond, the values
+ *          should be restored using @ref sd_ble_gatts_sys_attr_set.
+ *          The data should be read before any new advertising is started, or any new connection established. The connection handle for
+ *          the previous now defunct connection will remain valid until a new one is created to allow this API call to refer to it.
+ *
+ * @param[in]     conn_handle       Connection handle of the recently terminated connection.
+ * @param[in]     p_sys_attr_data   Pointer to a buffer where updated information about system attributes will be filled in. NULL can be provided to 
+ *                                  obtain the length of the data
+ * @param[in,out] p_len             Size of application buffer if p_sys_attr_data is not NULL. Unconditially updated to actual length of system attribute data.
+ *
+ * @return @ref NRF_SUCCESS Successfully retrieved the system attribute information.
+ * @return @ref BLE_ERROR_INVALID_CONN_HANDLE Invalid Connection Handle.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @return @ref NRF_ERROR_DATA_SIZE The system attribute information did not fit into the provided buffer.
+ */ 
+SVCALL(SD_BLE_GATTS_SYS_ATTR_GET, uint32_t, sd_ble_gatts_sys_attr_get(uint16_t conn_handle, uint8_t * const p_sys_attr_data, uint16_t* const p_len)); 
+
+
+#endif // BLE_GATTS_H__
+
+/**
+  @}
+*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/ble_hci.h	Tue Mar 18 12:30:07 2014 +0000
@@ -0,0 +1,96 @@
+/*
+  Copyright (c) 2012 Nordic Semiconductor. All Rights Reserved.
+
+  The information contained herein is confidential property of Nordic Semiconductor. The use,
+  copying, transfer or disclosure of such information is prohibited except by express written
+  agreement with Nordic Semiconductor.
+ */
+/**
+  @addtogroup BLE_COMMON 
+  @{
+*/
+
+
+#ifndef BLE_HCI_H__
+#define BLE_HCI_H__ 
+
+/** @defgroup BLE_HCI_STATUS_CODES Bluetooth status codes
+ * @{ */
+
+#define BLE_HCI_STATUS_CODE_SUCCESS                        0x00
+#define BLE_HCI_STATUS_CODE_UNKNOWN_BTLE_COMMAND           0x01
+#define BLE_HCI_STATUS_CODE_UNKNOWN_CONNECTION_IDENTIFIER  0x02 
+/*0x03 Hardware Failure
+0x04 Page Timeout
+*/
+#define BLE_HCI_AUTHENTICATION_FAILURE                     0x05
+#define BLE_HCI_STATUS_CODE_PIN_OR_KEY_MISSING             0x06
+#define BLE_HCI_MEMORY_CAPACITY_EXCEEDED                   0x07
+#define BLE_HCI_CONNECTION_TIMEOUT                         0x08
+/*0x09 Connection Limit Exceeded
+0x0A Synchronous Connection Limit To A Device Exceeded
+0x0B ACL Connection Already Exists*/
+#define BLE_HCI_STATUS_CODE_COMMAND_DISALLOWED             0x0C
+/*0x0D Connection Rejected due to Limited Resources
+0x0E Connection Rejected Due To Security Reasons
+0x0F Connection Rejected due to Unacceptable BD_ADDR
+0x10 Connection Accept Timeout Exceeded
+0x11 Unsupported Feature or Parameter Value*/
+#define BLE_HCI_STATUS_CODE_INVALID_BTLE_COMMAND_PARAMETERS 0x12
+#define BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION           0x13
+#define BLE_HCI_REMOTE_DEV_TERMINATION_DUE_TO_LOW_RESOURCES 0x14
+#define BLE_HCI_REMOTE_DEV_TERMINATION_DUE_TO_POWER_OFF     0x15
+#define BLE_HCI_LOCAL_HOST_TERMINATED_CONNECTION            0x16
+/*
+0x17 Repeated Attempts
+0x18 Pairing Not Allowed
+0x19 Unknown LMP PDU
+*/
+#define BLE_HCI_UNSUPPORTED_REMOTE_FEATURE 0x1A
+/*
+0x1B SCO Offset Rejected
+0x1C SCO Interval Rejected
+0x1D SCO Air Mode Rejected*/
+#define BLE_HCI_STATUS_CODE_INVALID_LMP_PARAMETERS     0x1E
+#define BLE_HCI_STATUS_CODE_UNSPECIFIED_ERROR          0x1F
+/*0x20 Unsupported LMP Parameter Value
+0x21 Role Change Not Allowed
+*/
+#define BLE_HCI_STATUS_CODE_LMP_RESPONSE_TIMEOUT       0x22
+/*0x23 LMP Error Transaction Collision*/
+#define BLE_HCI_STATUS_CODE_LMP_PDU_NOT_ALLOWED        0x24
+/*0x25 Encryption Mode Not Acceptable
+0x26 Link Key Can Not be Changed
+0x27 Requested QoS Not Supported
+*/
+#define BLE_HCI_INSTANT_PASSED                         0x28
+#define BLE_HCI_PAIRING_WITH_UNIT_KEY_UNSUPPORTED      0x29
+#define BLE_HCI_DIFFERENT_TRANSACTION_COLLISION        0x2A
+/*
+0x2B Reserved
+0x2C QoS Unacceptable Parameter
+0x2D QoS Rejected
+0x2E Channel Classification Not Supported
+0x2F Insufficient Security
+0x30 Parameter Out Of Mandatory Range
+0x31 Reserved
+0x32 Role Switch Pending
+0x33 Reserved
+0x34 Reserved Slot Violation
+0x35 Role Switch Failed
+0x36 Extended Inquiry Response Too Large
+0x37 Secure Simple Pairing Not Supported By Host.
+0x38 Host Busy - Pairing
+0x39 Connection Rejected due to No Suitable Channel Found*/
+#define BLE_HCI_CONTROLLER_BUSY                        0x3A
+#define BLE_HCI_CONN_INTERVAL_UNACCEPTABLE             0x3B
+#define BLE_HCI_DIRECTED_ADVERTISER_TIMEOUT            0x3C
+#define BLE_HCI_CONN_TERMINATED_DUE_TO_MIC_FAILURE     0x3D
+#define BLE_HCI_CONN_FAILED_TO_BE_ESTABLISHED          0x3E
+
+/** @} */
+
+
+#endif // BLE_HCI_H__
+
+/** @} */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/ble_l2cap.h	Tue Mar 18 12:30:07 2014 +0000
@@ -0,0 +1,135 @@
+/* Copyright (c) 2011 Nordic Semiconductor. All Rights Reserved.
+ *
+ * The information contained herein is confidential property of Nordic Semiconductor. The use,
+ * copying, transfer or disclosure of such information is prohibited except by express written
+ * agreement with Nordic Semiconductor.
+ *
+ */
+/**
+  @addtogroup BLE_L2CAP Logical Link Control and Adaptation Protocol (L2CAP)
+  @{
+  @brief Definitions and prototypes for the L2CAP interface.
+ */
+
+#ifndef BLE_L2CAP_H__
+#define BLE_L2CAP_H__ 
+
+#include "ble_types.h"
+#include "ble_ranges.h"
+#include "ble_err.h"
+#include "nrf_svc.h"
+
+/**@brief L2CAP API SVC numbers. */
+enum BLE_L2CAP_SVCS 
+{
+  SD_BLE_L2CAP_CID_REGISTER = BLE_L2CAP_SVC_BASE,  /**< Register a CID. */
+  SD_BLE_L2CAP_CID_UNREGISTER,                     /**< Unregister a CID. */
+  SD_BLE_L2CAP_TX                                  /**< Transmit a packet. */
+};
+
+/**@addtogroup BLE_L2CAP_DEFINES Defines
+ * @{ */
+
+/**@defgroup BLE_ERRORS_L2CAP SVC return values specific to L2CAP
+ * @{ */
+#define BLE_ERROR_L2CAP_CID_IN_USE            (NRF_L2CAP_ERR_BASE + 0x000)  /**< CID already in use. */
+/** @} */
+
+/**@brief Default L2CAP MTU. */
+#define BLE_L2CAP_MTU_DEF           (23)    
+
+/**@brief Invalid Channel Identifier. */
+#define BLE_L2CAP_CID_INVALID       (0x0000) 
+
+/**@brief Dynamic Channel Identifier base. */
+#define BLE_L2CAP_CID_DYN_BASE      (0x0040) 
+
+/**@brief Maximum amount of dynamic CIDs. */
+#define BLE_L2CAP_CID_DYN_MAX       (8) 
+
+/** @} */
+
+/**@brief Packet header format for L2CAP transmission. */
+typedef struct
+{
+  uint16_t   len;                                 /**< Length of valid info in data member. */
+  uint16_t   cid;                                 /**< Channel ID on which packet is transmitted. */
+} ble_l2cap_header_t;
+
+/**@brief L2CAP Event IDs. */
+enum BLE_L2CAP_EVTS 
+{
+  BLE_L2CAP_EVT_RX  = BLE_L2CAP_EVT_BASE          /**< L2CAP packet received. */
+};
+
+
+/**@brief L2CAP Received packet event report. */
+typedef struct
+{
+  ble_l2cap_header_t header;                      /** L2CAP packet header. */
+  uint8_t    data[1];                             /**< Packet data, variable length. */
+} ble_l2cap_evt_rx_t;
+
+
+/**@brief L2CAP event callback event structure. */
+typedef struct
+{
+  uint16_t conn_handle;                           /**< Connection Handle on which event occured. */
+  union
+  {
+    ble_l2cap_evt_rx_t rx;                        /**< RX Event parameters. */
+  } params;
+} ble_l2cap_evt_t;
+
+
+/**@brief Register a CID with L2CAP.
+ *
+ * @details This registers a higher protocol layer with the L2CAP multiplexer, and is requried prior to all operations on the CID.
+ *          
+ * @param[in] cid L2CAP CID.
+ *
+ * @return @ref NRF_SUCCESS Successfully registered a CID with the L2CAP layer.
+ * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, CID must be above @ref BLE_L2CAP_CID_DYN_BASE.
+ * @return @ref BLE_ERROR_L2CAP_CID_IN_USE L2CAP CID already in use.
+ * @return @ref NRF_ERROR_NO_MEM Not enough memory to complete operation.
+ */
+SVCALL(SD_BLE_L2CAP_CID_REGISTER, uint32_t, sd_ble_l2cap_cid_register(uint16_t cid));
+
+/**@brief Unregister a CID with L2CAP.
+ *
+ * @details This unregisters a previously registerd higher protocol layer with the L2CAP multiplexer.
+ *          
+ * @param[in] cid L2CAP CID.
+ *
+ * @return @ref NRF_SUCCESS Successfully unregistered the CID.
+ * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied.
+ * @return @ref NRF_ERROR_NOT_FOUND CID not previously registered.
+ */
+SVCALL(SD_BLE_L2CAP_CID_UNREGISTER, uint32_t, sd_ble_l2cap_cid_unregister(uint16_t cid));
+
+/**@brief Transmit an L2CAP packet.
+ *
+ * @note    It is important to note that a call to this function will <b>consume an application buffer</b>, and will therefore 
+ *          generate a @ref BLE_EVT_TX_COMPLETE event when the packet has been transmitted. 
+ *          Please see the documentation of @ref sd_ble_tx_buffer_count_get for more details.
+ *
+ * @param[in] conn_handle Connection Handle.
+ * @param[in] p_header    Pointer to a packet header containing length and CID.
+ * @param[in] p_data      Pointer to the data to be transmitted.
+ *
+ * @return @ref NRF_SUCCESS Successfully queued an L2CAP packet for transmission.
+ * @return @ref NRF_ERROR_INVALID_ADDR Invalid pointer supplied.
+ * @return @ref NRF_ERROR_INVALID_PARAM Invalid parameter(s) supplied, CIDs must be registered beforehand with @ref sd_ble_l2cap_cid_register.
+ * @return @ref NRF_ERROR_NOT_FOUND CID not found.
+ * @return @ref NRF_ERROR_NO_MEM Not enough memory to complete operation.
+ * @return @ref BLE_ERROR_NO_TX_BUFFERS Not enough application buffers available.
+ * @return @ref NRF_ERROR_DATA_SIZE Invalid data size(s) supplied, see @ref BLE_L2CAP_MTU_DEF.
+ */
+SVCALL(SD_BLE_L2CAP_TX, uint32_t, sd_ble_l2cap_tx(uint16_t conn_handle, ble_l2cap_header_t const * const p_header, uint8_t const * const p_data));
+
+
+#endif // BLE_L2CAP_H__
+
+/**
+  @}
+*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/ble_ranges.h	Tue Mar 18 12:30:07 2014 +0000
@@ -0,0 +1,72 @@
+/*
+  Copyright (c) 2012 Nordic Semiconductor. All Rights Reserved.
+
+  The information contained herein is confidential property of Nordic Semiconductor. The use,
+  copying, transfer or disclosure of such information is prohibited except by express written
+  agreement with Nordic Semiconductor.
+ */
+/**
+  @addtogroup BLE_COMMON
+  @{
+  @defgroup ble_ranges Module specific SVC and event number subranges
+  @{
+
+  @brief Definition of SVC and event number subranges for each API module.
+
+  @note
+  SVCs and event numbers are split into subranges for each API module.
+  Each module receives its entire allocated range of SVC calls, whether implemented or not,
+  but return BLE_ERROR_NOT_SUPPORTED for unimplemented or undefined calls in its range.
+
+  Note that the symbols BLE_<module>_SVC_LAST is the end of the allocated SVC range,
+  rather than the last SVC function call actually defined and implemented.
+
+  Specific SVC and event values are defined in each module's ble_<module>.h file,
+  which defines names of each individual SVC code based on the range start value.
+*/
+
+#ifndef BLE_RANGES_H__
+#define BLE_RANGES_H__
+
+#define BLE_SVC_BASE           0x60
+#define BLE_SVC_LAST           0x6B       /* Total: 12. */
+
+#define BLE_RESERVED_SVC_BASE  0x6C
+#define BLE_RESERVED_SVC_LAST  0x6F       /* Total: 4. */
+
+#define BLE_GAP_SVC_BASE       0x70
+#define BLE_GAP_SVC_LAST       0x8F       /* Total: 32. */
+
+#define BLE_GATTC_SVC_BASE     0x90
+#define BLE_GATTC_SVC_LAST     0x9F       /* Total: 16. */
+
+#define BLE_GATTS_SVC_BASE     0xA0
+#define BLE_GATTS_SVC_LAST     0xAF       /* Total: 16. */
+
+#define BLE_L2CAP_SVC_BASE     0xB0
+#define BLE_L2CAP_SVC_LAST     0xBF       /* Total: 16. */
+
+
+#define BLE_EVT_INVALID        0x00
+
+#define BLE_EVT_BASE           0x01
+#define BLE_EVT_LAST           0x0F       /* Total: 15. */
+
+#define BLE_GAP_EVT_BASE       0x10
+#define BLE_GAP_EVT_LAST       0x2F       /* Total: 32. */
+
+#define BLE_GATTC_EVT_BASE     0x30
+#define BLE_GATTC_EVT_LAST     0x4F       /* Total: 32. */
+
+#define BLE_GATTS_EVT_BASE     0x50
+#define BLE_GATTS_EVT_LAST     0x6F       /* Total: 32. */
+
+#define BLE_L2CAP_EVT_BASE     0x70
+#define BLE_L2CAP_EVT_LAST     0x8F       /* Total: 32.  */
+
+#endif /* BLE_RANGES_H__ */
+
+/**
+  @}
+  @}
+*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/ble_types.h	Tue Mar 18 12:30:07 2014 +0000
@@ -0,0 +1,157 @@
+/* Copyright (c) 2011 Nordic Semiconductor. All Rights Reserved.
+ *
+ * The information contained herein is confidential property of Nordic Semiconductor. The use,
+ * copying, transfer or disclosure of such information is prohibited except by express written
+ * agreement with Nordic Semiconductor.
+ *
+ */
+/**
+  @addtogroup BLE_COMMON
+  @{
+  @defgroup ble_types Common types and macro definitions
+  @{
+
+  @brief Common types and macro definitions for the S110 SoftDevice.
+ */
+
+#ifndef BLE_TYPES_H__
+#define BLE_TYPES_H__
+
+#include <stdint.h>
+
+/** @addtogroup BLE_COMMON_DEFINES Defines
+ * @{ */
+
+/** @defgroup BLE_CONN_HANDLES BLE Connection Handles
+ * @{ */
+#define BLE_CONN_HANDLE_INVALID 0xFFFF  /**< Invalid Connection Handle. */
+#define BLE_CONN_HANDLE_ALL     0xFFFE  /**< Applies to all Connection Handles. */
+/** @} */
+
+
+/** @defgroup BLE_UUID_VALUES Assigned Values for BLE UUIDs
+ * @{ */
+/* Generic UUIDs, applicable to all services */
+#define BLE_UUID_UNKNOWN                              0x0000 /**< Reserved UUID. */
+#define BLE_UUID_SERVICE_PRIMARY                      0x2800 /**< Primary Service. */
+#define BLE_UUID_SERVICE_SECONDARY                    0x2801 /**< Secondary Service. */
+#define BLE_UUID_SERVICE_INCLUDE                      0x2802 /**< Include. */
+#define BLE_UUID_CHARACTERISTIC                       0x2803 /**< Characteristic. */
+#define BLE_UUID_DESCRIPTOR_CHAR_EXT_PROP             0x2900 /**< Characteristic Extended Properties Descriptor. */
+#define BLE_UUID_DESCRIPTOR_CHAR_USER_DESC            0x2901 /**< Characteristic User Description Descriptor. */
+#define BLE_UUID_DESCRIPTOR_CLIENT_CHAR_CONFIG        0x2902 /**< Client Characteristic Configuration Descriptor. */
+#define BLE_UUID_DESCRIPTOR_SERVER_CHAR_CONFIG        0x2903 /**< Server Characteristic Configuration Descriptor. */
+#define BLE_UUID_DESCRIPTOR_CHAR_PRESENTATION_FORMAT  0x2904 /**< Characteristic Presentation Format Descriptor. */
+#define BLE_UUID_DESCRIPTOR_CHAR_AGGREGATE_FORMAT     0x2905 /**< Characteristic Aggregate Format Descriptor. */
+/* GATT specific UUIDs */
+#define BLE_UUID_GATT                                 0x1801 /**< Generic Attribute Profile. */
+#define BLE_UUID_GATT_CHARACTERISTIC_SERVICE_CHANGED  0x2A05 /**< Service Changed Characteristic. */
+/* GAP specific UUIDs */
+#define BLE_UUID_GAP                                  0x1800 /**< Generic Access Profile. */
+#define BLE_UUID_GAP_CHARACTERISTIC_DEVICE_NAME       0x2A00 /**< Device Name Characteristic. */
+#define BLE_UUID_GAP_CHARACTERISTIC_APPEARANCE        0x2A01 /**< Appearance Characteristic. */
+#define BLE_UUID_GAP_CHARACTERISTIC_PPF               0x2A02 /**< Peripheral Privacy Flag Characteristic. */
+#define BLE_UUID_GAP_CHARACTERISTIC_RECONN_ADDR       0x2A03 /**< Reconnection Address Characteristic. */
+#define BLE_UUID_GAP_CHARACTERISTIC_PPCP              0x2A04 /**< Peripheral Preferred Connection Parameters Characteristic. */
+/** @} */
+
+
+/** @defgroup BLE_UUID_TYPES Types of UUID
+ * @{ */
+#define BLE_UUID_TYPE_UNKNOWN       0x00 /**< Invalid UUID type. */
+#define BLE_UUID_TYPE_BLE           0x01 /**< Bluetooth SIG UUID (16-bit). */
+#define BLE_UUID_TYPE_VENDOR_BEGIN  0x02 /**< Vendor UUID types start at this index (128-bit). */
+/** @} */
+
+
+/** @defgroup BLE_APPEARANCES Bluetooth Appearance values
+ *  @note Retrieved from http://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.gap.appearance.xml
+ * @{ */
+#define BLE_APPEARANCE_UNKNOWN                              0   /**< Unknown. */
+#define BLE_APPEARANCE_GENERIC_PHONE                        64  /**< Generic Phone. */
+#define BLE_APPEARANCE_GENERIC_COMPUTER                     128 /**< Generic Computer. */
+#define BLE_APPEARANCE_GENERIC_WATCH                        192 /**< Generic Watch. */
+#define BLE_APPEARANCE_WATCH_SPORTS_WATCH                   193 /**< Watch: Sports Watch. */
+#define BLE_APPEARANCE_GENERIC_CLOCK                        256 /**< Generic Clock. */
+#define BLE_APPEARANCE_GENERIC_DISPLAY                      320 /**< Generic Display. */
+#define BLE_APPEARANCE_GENERIC_REMOTE_CONTROL               384 /**< Generic Remote Control. */
+#define BLE_APPEARANCE_GENERIC_EYE_GLASSES                  448 /**< Generic Eye-glasses. */
+#define BLE_APPEARANCE_GENERIC_TAG                          512 /**< Generic Tag. */
+#define BLE_APPEARANCE_GENERIC_KEYRING                      576 /**< Generic Keyring. */
+#define BLE_APPEARANCE_GENERIC_MEDIA_PLAYER                 640 /**< Generic Media Player. */
+#define BLE_APPEARANCE_GENERIC_BARCODE_SCANNER              704 /**< Generic Barcode Scanner. */
+#define BLE_APPEARANCE_GENERIC_THERMOMETER                  768 /**< Generic Thermometer. */
+#define BLE_APPEARANCE_THERMOMETER_EAR                      769 /**< Thermometer: Ear. */
+#define BLE_APPEARANCE_GENERIC_HEART_RATE_SENSOR            832 /**< Generic Heart rate Sensor. */
+#define BLE_APPEARANCE_HEART_RATE_SENSOR_HEART_RATE_BELT    833 /**< Heart Rate Sensor: Heart Rate Belt. */
+#define BLE_APPEARANCE_GENERIC_BLOOD_PRESSURE               896 /**< Generic Blood Pressure. */
+#define BLE_APPEARANCE_BLOOD_PRESSURE_ARM                   897 /**< Blood Pressure: Arm. */
+#define BLE_APPEARANCE_BLOOD_PRESSURE_WRIST                 898 /**< Blood Pressure: Wrist. */
+#define BLE_APPEARANCE_GENERIC_HID                          960 /**< Human Interface Device (HID). */
+#define BLE_APPEARANCE_HID_KEYBOARD                         961 /**< Keyboard (HID Subtype). */
+#define BLE_APPEARANCE_HID_MOUSE                            962 /**< Mouse (HID Subtype). */
+#define BLE_APPEARANCE_HID_JOYSTICK                         963 /**< Joystiq (HID Subtype). */
+#define BLE_APPEARANCE_HID_GAMEPAD                          964 /**< Gamepad (HID Subtype). */
+#define BLE_APPEARANCE_HID_DIGITIZERSUBTYPE                 965 /**< Digitizer Tablet (HID Subtype). */
+#define BLE_APPEARANCE_HID_CARD_READER                      966 /**< Card Reader (HID Subtype). */
+#define BLE_APPEARANCE_HID_DIGITAL_PEN                      967 /**< Digital Pen (HID Subtype). */
+#define BLE_APPEARANCE_HID_BARCODE                          968 /**< Barcode Scanner (HID Subtype). */
+#define BLE_APPEARANCE_GENERIC_GLUCOSE_METER               1024 /**< Generic Glucose Meter. */
+#define BLE_APPEARANCE_GENERIC_RUNNING_WALKING_SENSOR      1088 /**< Generic Running Walking Sensor. */
+#define BLE_APPEARANCE_RUNNING_WALKING_SENSOR_IN_SHOE      1089 /**< Running Walking Sensor: In-Shoe. */
+#define BLE_APPEARANCE_RUNNING_WALKING_SENSOR_ON_SHOE      1090 /**< Running Walking Sensor: On-Shoe. */
+#define BLE_APPEARANCE_RUNNING_WALKING_SENSOR_ON_HIP       1091 /**< Running Walking Sensor: On-Hip. */
+#define BLE_APPEARANCE_GENERIC_CYCLING                     1152 /**< Generic Cycling. */
+#define BLE_APPEARANCE_CYCLING_CYCLING_COMPUTER            1153 /**< Cycling: Cycling Computer. */
+#define BLE_APPEARANCE_CYCLING_SPEED_SENSOR                1154 /**< Cycling: Speed Sensor. */
+#define BLE_APPEARANCE_CYCLING_CADENCE_SENSOR              1155 /**< Cycling: Cadence Sensor. */
+#define BLE_APPEARANCE_CYCLING_POWER_SENSOR                1156 /**< Cycling: Power Sensor. */
+#define BLE_APPEARANCE_CYCLING_SPEED_CADENCE_SENSOR        1157 /**< Cycling: Speed and Cadence Sensor. */
+/** @} */
+
+/** @brief Set .type and .uuid fields of ble_uuid_struct to specified uuid value. */
+#define BLE_UUID_BLE_ASSIGN(instance, value) do {\
+            instance.type = BLE_UUID_TYPE_BLE; \
+            instance.uuid = value;} while(0)
+
+/** @brief Copy type and uuid members from src to dst ble_uuid_t pointer. Both pointers must be valid/non-null. */
+#define BLE_UUID_COPY_PTR(dst, src) do {\
+            (dst)->type = (src)->type; \
+            (dst)->uuid = (src)->uuid;} while(0)
+
+/** @brief Copy type and uuid members from src to dst ble_uuid_t struct. */
+#define BLE_UUID_COPY_INST(dst, src) do {\
+            (dst).type = (src).type; \
+            (dst).uuid = (src).uuid;} while(0)
+
+/** @brief Compare for equality both type and uuid members of two (valid, non-null) ble_uuid_t pointers. */
+#define BLE_UUID_EQ(p_uuid1, p_uuid2) \
+            (((p_uuid1)->type == (p_uuid2)->type) && ((p_uuid1)->uuid == (p_uuid2)->uuid))
+
+/** @brief Compare for difference both type and uuid members of two (valid, non-null) ble_uuid_t pointers. */
+#define BLE_UUID_NEQ(p_uuid1, p_uuid2) \
+            (((p_uuid1)->type != (p_uuid2)->type) || ((p_uuid1)->uuid != (p_uuid2)->uuid))
+
+/** @} */
+
+/** @brief 128 bit UUID values. */
+typedef struct
+{ 
+    unsigned char uuid128[16];
+} ble_uuid128_t;
+
+/** @brief  Bluetooth Low Energy UUID type, encapsulates both 16-bit and 128-bit UUIDs. */
+typedef struct
+{
+    uint16_t    uuid; /**< 16-bit UUID value or octets 12-13 of 128-bit UUID. */
+    uint8_t     type; /**< UUID type, see @ref BLE_UUID_TYPES. If type is BLE_UUID_TYPE_UNKNOWN, the value of uuid is undefined. */
+} ble_uuid_t;
+
+
+
+#endif /* BLE_TYPES_H__ */
+
+/**
+  @}
+  @}
+*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/nrf_error.h	Tue Mar 18 12:30:07 2014 +0000
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2012 Nordic Semiconductor. All Rights Reserved.
+ *
+ * The information contained herein is confidential property of Nordic Semiconductor. The use,
+ * copying, transfer or disclosure of such information is prohibited except by express written
+ * agreement with Nordic Semiconductor.
+ *
+ */
+ /**
+  @defgroup nrf_error SoftDevice Global Error Codes
+  @{
+   
+  @brief Global Error definitions
+*/
+
+/* Header guard */
+#ifndef NRF_ERROR_H__
+#define NRF_ERROR_H__
+
+/** @defgroup NRF_ERRORS_BASE Error Codes Base number definitions
+ * @{ */
+#define NRF_ERROR_BASE_NUM      (0x0)       ///< Global error base
+#define NRF_ERROR_SDM_BASE_NUM  (0x1000)    ///< SDM error base
+#define NRF_ERROR_SOC_BASE_NUM  (0x2000)    ///< SoC error base
+#define NRF_ERROR_STK_BASE_NUM  (0x3000)    ///< STK error base
+/** @} */
+
+#define NRF_SUCCESS                           (NRF_ERROR_BASE_NUM + 0)  ///< Successful command
+#define NRF_ERROR_SVC_HANDLER_MISSING         (NRF_ERROR_BASE_NUM + 1)  ///< SVC handler is missing
+#define NRF_ERROR_SOFTDEVICE_NOT_ENABLED      (NRF_ERROR_BASE_NUM + 2)  ///< SoftDevice has not been enabled
+#define NRF_ERROR_INTERNAL                    (NRF_ERROR_BASE_NUM + 3)  ///< Internal Error
+#define NRF_ERROR_NO_MEM                      (NRF_ERROR_BASE_NUM + 4)  ///< No Memory for operation
+#define NRF_ERROR_NOT_FOUND                   (NRF_ERROR_BASE_NUM + 5)  ///< Not found
+#define NRF_ERROR_NOT_SUPPORTED               (NRF_ERROR_BASE_NUM + 6)  ///< Not supported
+#define NRF_ERROR_INVALID_PARAM               (NRF_ERROR_BASE_NUM + 7)  ///< Invalid Parameter
+#define NRF_ERROR_INVALID_STATE               (NRF_ERROR_BASE_NUM + 8)  ///< Invalid state, operation disallowed in this state
+#define NRF_ERROR_INVALID_LENGTH              (NRF_ERROR_BASE_NUM + 9)  ///< Invalid Length
+#define NRF_ERROR_INVALID_FLAGS               (NRF_ERROR_BASE_NUM + 10) ///< Invalid Flags
+#define NRF_ERROR_INVALID_DATA                (NRF_ERROR_BASE_NUM + 11) ///< Invalid Data
+#define NRF_ERROR_DATA_SIZE                   (NRF_ERROR_BASE_NUM + 12) ///< Data size exceeds limit
+#define NRF_ERROR_TIMEOUT                     (NRF_ERROR_BASE_NUM + 13) ///< Operation timed out
+#define NRF_ERROR_NULL                        (NRF_ERROR_BASE_NUM + 14) ///< Null Pointer
+#define NRF_ERROR_FORBIDDEN                   (NRF_ERROR_BASE_NUM + 15) ///< Forbidden Operation
+#define NRF_ERROR_INVALID_ADDR                (NRF_ERROR_BASE_NUM + 16) ///< Bad Memory Address
+#define NRF_ERROR_BUSY                        (NRF_ERROR_BASE_NUM + 17) ///< Busy
+
+#endif // NRF_ERROR_H__
+
+/**
+  @}
+*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/nrf_error_sdm.h	Tue Mar 18 12:30:07 2014 +0000
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2012 Nordic Semiconductor. All Rights Reserved.
+ *
+ * The information contained herein is confidential property of Nordic Semiconductor. The use,
+ * copying, transfer or disclosure of such information is prohibited except by express written
+ * agreement with Nordic Semiconductor.
+ *
+ */
+ /**
+  @addtogroup nrf_sdm_api
+  @{
+  @defgroup nrf_sdm_error SoftDevice Manager Error Codes
+  @{
+     
+  @brief Error definitions for the SDM API
+*/
+
+/* Header guard */
+#ifndef NRF_ERROR_SDM_H__
+#define NRF_ERROR_SDM_H__
+
+#include "nrf_error.h"
+
+#define NRF_ERROR_SDM_LFCLK_SOURCE_UNKNOWN              (NRF_ERROR_SDM_BASE_NUM + 0)  ///< Unknown lfclk source
+#define NRF_ERROR_SDM_INCORRECT_INTERRUPT_CONFIGURATION (NRF_ERROR_SDM_BASE_NUM + 1)  ///< Incorrect interrupt configuration (can be caused by using illegal priority levels, or having enabled SoftDevice interrupts)
+#define NRF_ERROR_SDM_INCORRECT_CLENR0                  (NRF_ERROR_SDM_BASE_NUM + 2)  ///< Incorrect CLENR0 (can be caused by erronous SoftDevice flashing)
+
+#endif // NRF_ERROR_SDM_H__
+
+/**
+  @}
+  @}
+*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/nrf_error_soc.h	Tue Mar 18 12:30:07 2014 +0000
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2012 Nordic Semiconductor. All Rights Reserved.
+ *
+ * The information contained herein is confidential property of Nordic Semiconductor. The use,
+ * copying, transfer or disclosure of such information is prohibited except by express written
+ * agreement with Nordic Semiconductor.
+ *
+ */
+ /**
+  @addtogroup nrf_soc_api
+  @{
+  @defgroup nrf_soc_error SoC Library Error Codes
+  @{
+     
+  @brief Error definitions for the SoC library
+
+*/
+
+/* Header guard */
+#ifndef NRF_ERROR_SOC_H__
+#define NRF_ERROR_SOC_H__
+
+#include "nrf_error.h"
+
+/* Mutex Errors */
+#define NRF_ERROR_SOC_MUTEX_ALREADY_TAKEN                 (NRF_ERROR_SOC_BASE_NUM + 0)  ///< Mutex already taken
+
+/* NVIC errors */
+#define NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE        (NRF_ERROR_SOC_BASE_NUM + 1)  ///< NVIC interrupt not available
+#define NRF_ERROR_SOC_NVIC_INTERRUPT_PRIORITY_NOT_ALLOWED (NRF_ERROR_SOC_BASE_NUM + 2)  ///< NVIC interrupt priority not allowed
+#define NRF_ERROR_SOC_NVIC_SHOULD_NOT_RETURN              (NRF_ERROR_SOC_BASE_NUM + 3)  ///< NVIC should not return
+
+/* Power errors */
+#define NRF_ERROR_SOC_POWER_MODE_UNKNOWN                  (NRF_ERROR_SOC_BASE_NUM + 4)  ///< Power mode unknown
+#define NRF_ERROR_SOC_POWER_POF_THRESHOLD_UNKNOWN         (NRF_ERROR_SOC_BASE_NUM + 5)  ///< Power POF threshold unknown
+#define NRF_ERROR_SOC_POWER_OFF_SHOULD_NOT_RETURN         (NRF_ERROR_SOC_BASE_NUM + 6)  ///< Power off should not return
+
+/* Rand errors */
+#define NRF_ERROR_SOC_RAND_NOT_ENOUGH_VALUES              (NRF_ERROR_SOC_BASE_NUM + 7)  ///< RAND not enough values
+
+/* PPI errors */
+#define NRF_ERROR_SOC_PPI_INVALID_CHANNEL                 (NRF_ERROR_SOC_BASE_NUM + 8)  ///< Invalid PPI Channel
+#define NRF_ERROR_SOC_PPI_INVALID_GROUP                   (NRF_ERROR_SOC_BASE_NUM + 9)  ///< Invalid PPI Group
+
+#endif // NRF_ERROR_SOC_H__
+/**
+  @}
+  @}
+*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/nrf_sdm.h	Tue Mar 18 12:30:07 2014 +0000
@@ -0,0 +1,163 @@
+/*
+ * Copyright (c) 2011 Nordic Semiconductor. All Rights Reserved.
+ *
+ * The information contained herein is confidential property of Nordic Semiconductor. The use,
+ * copying, transfer or disclosure of such information is prohibited except by express written
+ * agreement with Nordic Semiconductor.
+ *
+ */
+/**
+  @defgroup nrf_sdm_api SoftDevice Manager API
+  @{
+     
+  @brief APIs for SoftDevice management.
+ 
+*/
+
+/* Header guard */
+#ifndef NRF_SDM_H__
+#define NRF_SDM_H__
+
+#include "nrf_svc.h"
+#include "nrf51.h"
+#include "nrf_soc.h"
+#include "nrf_error_sdm.h"
+
+/** @addtogroup NRF_SDM_DEFINES Defines
+ * @{ */
+
+/**@brief SoftDevice Manager SVC Base number. */
+#define SDM_SVC_BASE 0x10   
+
+/** @} */
+
+/** @addtogroup NRF_SDM_ENUMS Enumerations
+ * @{ */
+
+/**@brief nRF SoftDevice Manager API SVC numbers. */
+enum NRF_SD_SVCS
+{
+  SD_SOFTDEVICE_ENABLE = SDM_SVC_BASE, /**< ::sd_softdevice_enable */
+  SD_SOFTDEVICE_DISABLE,               /**< ::sd_softdevice_disable */
+  SD_SOFTDEVICE_IS_ENABLED,            /**< ::sd_softdevice_is_enabled */
+  SD_SOFTDEVICE_FORWARD_TO_APPLICATION,/**< ::sd_softdevice_forward_to_application */
+  SVC_SDM_LAST                         /**< Placeholder for last SDM SVC */
+};
+
+/**@brief Possible lfclk oscillator sources. */
+enum NRF_CLOCK_LFCLKSRCS
+{
+  NRF_CLOCK_LFCLKSRC_SYNTH_250_PPM,                       /**< LFCLK Synthesized from HFCLK.                    */
+  NRF_CLOCK_LFCLKSRC_XTAL_500_PPM,                        /**< LFCLK crystal oscillator 500 PPM accuracy.       */
+  NRF_CLOCK_LFCLKSRC_XTAL_250_PPM,                        /**< LFCLK crystal oscillator 250 PPM accuracy.       */
+  NRF_CLOCK_LFCLKSRC_XTAL_150_PPM,                        /**< LFCLK crystal oscillator 150 PPM accuracy.       */
+  NRF_CLOCK_LFCLKSRC_XTAL_100_PPM,                        /**< LFCLK crystal oscillator 100 PPM accuracy.       */
+  NRF_CLOCK_LFCLKSRC_XTAL_75_PPM,                         /**< LFCLK crystal oscillator 75 PPM accuracy.        */
+  NRF_CLOCK_LFCLKSRC_XTAL_50_PPM,                         /**< LFCLK crystal oscillator 50 PPM accuracy.        */
+  NRF_CLOCK_LFCLKSRC_XTAL_30_PPM,                         /**< LFCLK crystal oscillator 30 PPM accuracy.        */
+  NRF_CLOCK_LFCLKSRC_XTAL_20_PPM,                         /**< LFCLK crystal oscillator 20 PPM accuracy.        */
+  NRF_CLOCK_LFCLKSRC_RC_250_PPM_250MS_CALIBRATION,        /**< LFCLK RC oscillator, 250ms  calibration interval.*/
+  NRF_CLOCK_LFCLKSRC_RC_250_PPM_500MS_CALIBRATION,        /**< LFCLK RC oscillator, 500ms  calibration interval.*/
+  NRF_CLOCK_LFCLKSRC_RC_250_PPM_1000MS_CALIBRATION,       /**< LFCLK RC oscillator, 1000ms calibration interval.*/
+  NRF_CLOCK_LFCLKSRC_RC_250_PPM_2000MS_CALIBRATION,       /**< LFCLK RC oscillator, 2000ms calibration interval.*/
+  NRF_CLOCK_LFCLKSRC_RC_250_PPM_4000MS_CALIBRATION,       /**< LFCLK RC oscillator, 4000ms calibration interval.*/
+  NRF_CLOCK_LFCLKSRC_RC_250_PPM_8000MS_CALIBRATION,       /**< LFCLK RC oscillator, 8000ms calibration interval.*/
+};
+
+/** @} */
+
+/** @addtogroup NRF_SDM_TYPES Types
+ * @{ */
+
+/**@brief Type representing lfclk oscillator source. */
+typedef uint32_t nrf_clock_lfclksrc_t;
+
+
+/**@brief SoftDevice Assertion Handler type.
+ *
+ * When an unexpected error occurs within the SoftDevice it will call the SoftDevice assertion handler callback.
+ * The protocol stack will be in an undefined state when this happens and the only way to recover will be to
+ * perform a reset, using e.g. CMSIS NVIC_SystemReset().
+ *
+ * @note This callback is executed in HardFault context, thus SVC functions cannot be called from the SoftDevice assert callback.
+ *       
+ * @param[in] pc The program counter of the failed assert.
+ * @param[in] line_number Line number where the assert failed.
+ * @param[in] file_name File name where the assert failed.
+ */
+typedef void (*softdevice_assertion_handler_t)(uint32_t pc, uint16_t line_number, const uint8_t * p_file_name);
+
+/** @} */
+
+/** @addtogroup NRF_SDM_FUNCTIONS Functions
+ * @{ */
+
+/**@brief Enables the SoftDevice and by extension the protocol stack.
+ *
+ * Idempotent function to enable the SoftDevice.
+ *
+ * @note Some care must be taken if a low frequency clock source is already running when calling this function:
+ *       If the LF clock has a different source then the one currently running, it will be stopped. Then, the new
+ *       clock source will be started.
+ *
+ * @note This function has no effect when returning with an error.
+ *
+ * @post If return code is ::NRF_SUCCESS 
+ *       - SoC library and protocol stack APIs are made available
+ *       - A portion of RAM will be unavailable (see relevant SDS documentation)
+ *       - Some peripherals will be unavailable or available only through the SoC API (see relevant SDS documentation)
+ *       - Interrupts will not arrive from protected peripherals or interrupts
+ *       - nrf_nvic_ functions must be used instead of CMSIS NVIC_ functions for reliable usage of the softdevice.
+ *       - Interrupt latency may be affected by the SoftDevice  (see relevant SDS documentation)
+ *       - Chosen low frequency clock source will be running
+ *
+ * @param clock_source Low frequency clock source and accuracy. (Note: In the case of XTAL source, the PPM accuracy of the chosen clock source must be greater than or equal to the actual characteristics of your XTAL clock).
+ * @param assertion_handler Callback for SoftDevice assertions.
+ *
+ * @retval ::NRF_SUCCESS
+ * @retval ::NRF_ERROR_SDM_INCORRECT_INTERRUPT_CONFIGURATION SoftDeviceinterrupt is already enabled, or an enabled interrupt has an illegal priority level
+ * @retval ::NRF_ERROR_SDM_LFCLK_SOURCE_UNKNOWN Unknown low frequency clock source selected
+ */
+SVCALL(SD_SOFTDEVICE_ENABLE, uint32_t, sd_softdevice_enable(nrf_clock_lfclksrc_t clock_source, softdevice_assertion_handler_t assertion_handler));
+
+/**@brief Disables the SoftDevice and by extension the protocol stack.
+ * 
+ * Idempotent function to disable the SoftDevice.
+ *
+ * @post SoC library and protocol stack APIs are made unavailable.
+ * @post All interrupts that was protected by the SoftDevice will be disabled and initialized to priority 0 (highest).
+ * @post All peripherals used by the SoftDevice will be reset to default values.
+ * @post All of RAM become available.
+ * @post All interrupts are forwarded to the application.
+ * @post LFCLK source chosen in ::sd_softdevice_enable will be left running.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_SOFTDEVICE_DISABLE, uint32_t, sd_softdevice_disable(void));
+
+/**@brief Check if the SoftDevice is enabled.
+ *
+ * @param[out]  p_softdevice_enabled If the SoftDevice is enabled: 1 else 0.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_SOFTDEVICE_IS_ENABLED, uint32_t, sd_softdevice_is_enabled(uint8_t * p_softdevice_enabled));
+
+/**@brief Start forwarding interrupts to application.
+ * 
+ * This function is only intended to be called when a bootloader is enabled is used.
+ * The bootloader should call this right before it starts the application. 
+ * It is recommended that all interrupt sources are off when this is called, 
+ * or you could end up having interrupts in the application being executed before main() of the application.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_SOFTDEVICE_FORWARD_TO_APPLICATION, uint32_t, sd_softdevice_forward_to_application(void)); 
+
+/** @} */
+
+#endif // NRF_SDM_H__
+
+/**
+  @}
+*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/nrf_soc.h	Tue Mar 18 12:30:07 2014 +0000
@@ -0,0 +1,777 @@
+/* Copyright (c) 2011 Nordic Semiconductor. All Rights Reserved.
+ *
+ * The information contained herein is confidential property of Nordic Semiconductor. The use,
+ * copying, transfer or disclosure of such information is prohibited except by express written
+ * agreement with Nordic Semiconductor.
+ *
+ */
+ 
+/**
+  @defgroup nrf_soc_api SoC Library API
+  @{
+  
+  @brief APIs for the SoC library.
+  
+*/
+
+#ifndef NRF_SOC_H__
+#define NRF_SOC_H__
+
+#include <stdint.h>
+#include <stdbool.h>
+#include "nrf_svc.h"
+#include "nrf51.h"
+#include "nrf51_bitfields.h"
+#include "nrf_error_soc.h"
+
+/** @addtogroup NRF_SOC_DEFINES Defines
+ * @{ */
+
+/**@brief The number of the lowest SVC number reserved for the SoC library. */
+#define SOC_SVC_BASE 0x20
+
+/**@brief Guranteed time for application to process radio inactive notification. */
+#define NRF_RADIO_NOTIFICATION_INACTIVE_GUARANTEED_TIME_US   (62)
+
+#define SOC_ECB_KEY_LENGTH                   (16)                       /**< ECB key length. */
+#define SOC_ECB_CLEARTEXT_LENGTH             (16)                       /**< ECB cleartext length. */
+#define SOC_ECB_CIPHERTEXT_LENGTH            (SOC_ECB_CLEARTEXT_LENGTH) /**< ECB ciphertext length. */
+
+#define SD_EVT_IRQn                   (SWI2_IRQn)       /**< SoftDevice Event IRQ number. Used for both protocol events and SoC events. */
+#define SD_EVT_IRQHandler             (SWI2_IRQHandler) /**< SoftDevice Event IRQ handler. Used for both protocol events and SoC events. */
+#define RADIO_NOTIFICATION_IRQn       (SWI1_IRQn)       /**< The radio notification IRQ number. */
+#define RADIO_NOTIFICATION_IRQHandler (SWI1_IRQHandler) /**< The radio notification IRQ handler. */
+
+/** @} */
+
+/** @addtogroup NRF_SOC_TYPES Types
+ * @{ */
+
+/**@brief The SVC numbers used by the SVC functions in the SoC library. */
+enum NRF_SOC_SVCS
+{
+  SD_MUTEX_NEW = SOC_SVC_BASE,
+  SD_MUTEX_ACQUIRE,
+  SD_MUTEX_RELEASE,
+  SD_NVIC_ENABLEIRQ,
+  SD_NVIC_DISABLEIRQ,
+  SD_NVIC_GETPENDINGIRQ,
+  SD_NVIC_SETPENDINGIRQ,
+  SD_NVIC_CLEARPENDINGIRQ,
+  SD_NVIC_SETPRIORITY,
+  SD_NVIC_GETPRIORITY,
+  SD_NVIC_SYSTEMRESET,
+  SD_NVIC_CRITICAL_REGION_ENTER,
+  SD_NVIC_CRITICAL_REGION_EXIT,
+  SD_RAND_APPLICATION_POOL_CAPACITY,
+  SD_RAND_APPLICATION_BYTES_AVAILABLE,
+  SD_RAND_APPLICATION_GET_VECTOR,
+  SD_POWER_MODE_SET,
+  SD_POWER_SYSTEM_OFF,
+  SD_POWER_RESET_REASON_GET,
+  SD_POWER_RESET_REASON_CLR,
+  SD_POWER_POF_ENABLE,
+  SD_POWER_POF_THRESHOLD_SET,
+  SD_POWER_RAMON_SET,
+  SD_POWER_RAMON_CLR,
+  SD_POWER_RAMON_GET,
+  SD_POWER_GPREGRET_SET,
+  SD_POWER_GPREGRET_CLR,
+  SD_POWER_GPREGRET_GET,
+  SD_POWER_DCDC_MODE_SET,
+  SD_APP_EVT_WAIT,
+  SD_CLOCK_HFCLK_REQUEST,
+  SD_CLOCK_HFCLK_RELEASE,
+  SD_CLOCK_HFCLK_IS_RUNNING,
+  SD_PPI_CHANNEL_ENABLE_GET,
+  SD_PPI_CHANNEL_ENABLE_SET,
+  SD_PPI_CHANNEL_ENABLE_CLR,
+  SD_PPI_CHANNEL_ASSIGN,
+  SD_PPI_GROUP_TASK_ENABLE,
+  SD_PPI_GROUP_TASK_DISABLE,
+  SD_PPI_GROUP_ASSIGN,
+  SD_PPI_GROUP_GET,
+  SD_RADIO_NOTIFICATION_CFG_SET,
+  SD_ECB_BLOCK_ENCRYPT,
+  SD_RESERVED1,
+  SD_RESERVED2,
+  SD_RESERVED3,
+  SD_EVT_GET,
+  SD_TEMP_GET,
+  SD_FLASH_ERASE_PAGE,
+  SD_FLASH_WRITE,
+  SD_FLASH_PROTECT,
+  SVC_SOC_LAST
+};
+
+/**@brief Possible values of a ::nrf_mutex_t. */
+enum NRF_MUTEX_VALUES
+{
+  NRF_MUTEX_FREE,
+  NRF_MUTEX_TAKEN
+};
+
+/**@brief Possible values of ::nrf_app_irq_priority_t. */
+enum NRF_APP_PRIORITIES
+{
+  NRF_APP_PRIORITY_HIGH = 1,
+  NRF_APP_PRIORITY_LOW = 3
+};
+
+/**@brief Possible values of ::nrf_power_mode_t. */
+enum NRF_POWER_MODES
+{
+  NRF_POWER_MODE_CONSTLAT,  /**< Constant latency mode. See power management in the reference manual. */
+  NRF_POWER_MODE_LOWPWR     /**< Low power mode. See power management in the reference manual. */
+};
+
+
+/**@brief Possible values of ::nrf_power_failure_threshold_t */
+enum NRF_POWER_THRESHOLDS
+{
+  NRF_POWER_THRESHOLD_V21,  /**< 2.1 Volts power failure threshold. */
+  NRF_POWER_THRESHOLD_V23,  /**< 2.3 Volts power failure threshold. */
+  NRF_POWER_THRESHOLD_V25,  /**< 2.5 Volts power failure threshold. */ 
+  NRF_POWER_THRESHOLD_V27   /**< 2.7 Volts power failure threshold. */
+};
+
+
+/**@brief Possible values of ::nrf_power_dcdc_mode_t. */
+enum NRF_POWER_DCDC_MODES
+{
+  NRF_POWER_DCDC_MODE_OFF,          /**< The DCDC is always off. */
+  NRF_POWER_DCDC_MODE_ON,           /**< The DCDC is always on. */
+  NRF_POWER_DCDC_MODE_AUTOMATIC     /**< The DCDC is automatically managed. */
+};
+
+/**@brief Possible values of ::nrf_radio_notification_distance_t. */
+enum NRF_RADIO_NOTIFICATION_DISTANCES
+{
+  NRF_RADIO_NOTIFICATION_DISTANCE_NONE = 0, /**< The event does not have a notification. */
+  NRF_RADIO_NOTIFICATION_DISTANCE_800US,    /**< The distance from the active notification to start of radio activity. */
+  NRF_RADIO_NOTIFICATION_DISTANCE_1740US,   /**< The distance from the active notification to start of radio activity. */
+  NRF_RADIO_NOTIFICATION_DISTANCE_2680US,   /**< The distance from the active notification to start of radio activity. */
+  NRF_RADIO_NOTIFICATION_DISTANCE_3620US,   /**< The distance from the active notification to start of radio activity. */
+  NRF_RADIO_NOTIFICATION_DISTANCE_4560US,   /**< The distance from the active notification to start of radio activity. */
+  NRF_RADIO_NOTIFICATION_DISTANCE_5500US    /**< The distance from the active notification to start of radio activity. */
+};
+
+
+/**@brief Possible values of ::nrf_radio_notification_type_t. */
+enum NRF_RADIO_NOTIFICATION_TYPES
+{
+  NRF_RADIO_NOTIFICATION_TYPE_NONE = 0,        /**< The event does not have a radio notification signal. */
+  NRF_RADIO_NOTIFICATION_TYPE_INT_ON_ACTIVE,   /**< Using interrupt for notification when the radio will be enabled. */
+  NRF_RADIO_NOTIFICATION_TYPE_INT_ON_INACTIVE, /**< Using interrupt for notification when the radio has been disabled. */
+  NRF_RADIO_NOTIFICATION_TYPE_INT_ON_BOTH,     /**< Using interrupt for notification both when the radio will be enabled and disabled. */
+};
+
+/**@brief SoC Events. */
+enum NRF_SOC_EVTS
+{
+  NRF_EVT_HFCLKSTARTED,                       /**< Event indicating that the HFCLK has started. */
+  NRF_EVT_POWER_FAILURE_WARNING,              /**< Event indicating that a power failure warning has occurred. */
+  NRF_EVT_FLASH_OPERATION_SUCCESS,            /**< Event indicating that the ongoing flash operation has completed successfully. */
+  NRF_EVT_FLASH_OPERATION_ERROR,              /**< Event indicating that the ongoing flash operation has timed out with an error. */
+  NRF_EVT_RESERVED1,
+  NRF_EVT_RESERVED2,
+  NRF_EVT_RESERVED3,
+  NRF_EVT_RESERVED4,
+  NRF_EVT_RESERVED5,
+  NRF_EVT_NUMBER_OF_EVTS
+};
+
+/** @} */
+
+/** @addtogroup NRF_SOC_TYPES Types
+ * @{ */
+
+/**@brief Represents a mutex for use with the nrf_mutex functions.
+ * @note Accessing the value directly is not safe, use the mutex functions!
+ */
+typedef volatile uint8_t nrf_mutex_t;
+
+/**@brief The interrupt priorities available to the application while the softdevice is active. */
+typedef uint8_t nrf_app_irq_priority_t;
+
+/**@brief Represents a power mode, used in power mode functions */
+typedef uint8_t nrf_power_mode_t;
+
+/**@brief Represents a power failure threshold value. */
+typedef uint8_t nrf_power_failure_threshold_t;
+
+/**@brief Represents a DCDC mode value. */
+typedef uint32_t nrf_power_dcdc_mode_t;
+
+/**@brief Radio notification distances. */
+typedef uint8_t nrf_radio_notification_distance_t;
+
+/**@brief Radio notification types. */
+typedef uint8_t nrf_radio_notification_type_t;
+
+
+/**@brief AES ECB data structure */
+typedef struct
+{
+  uint8_t key[SOC_ECB_KEY_LENGTH];                /**< Encryption key. */
+  uint8_t cleartext[SOC_ECB_CLEARTEXT_LENGTH];    /**< Clear Text data. */
+  uint8_t ciphertext[SOC_ECB_CIPHERTEXT_LENGTH];  /**< Cipher Text data. */
+} nrf_ecb_hal_data_t;
+
+/** @} */
+
+/** @addtogroup NRF_SOC_FUNCTIONS Functions
+ * @{ */
+
+/**@brief Initialize a mutex.
+ *
+ * @param[in] p_mutex Pointer to the mutex to initialize.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_MUTEX_NEW, uint32_t, sd_mutex_new(nrf_mutex_t * p_mutex));
+
+/**@brief Attempt to acquire a mutex.
+ *
+ * @param[in] p_mutex Pointer to the mutex to acquire.
+ *
+ * @retval ::NRF_SUCCESS The mutex was successfully acquired.
+ * @retval ::NRF_ERROR_SOC_MUTEX_ALREADY_TAKEN The mutex could not be acquired.
+ */
+SVCALL(SD_MUTEX_ACQUIRE, uint32_t, sd_mutex_acquire(nrf_mutex_t * p_mutex));
+
+/**@brief Release a mutex.
+ *
+ * @param[in] p_mutex Pointer to the mutex to release.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_MUTEX_RELEASE, uint32_t, sd_mutex_release(nrf_mutex_t * p_mutex));
+
+/**@brief Enable External Interrupt.
+ * @note Corresponds to NVIC_EnableIRQ in CMSIS.
+ *
+ * @pre{IRQn is valid and not reserved by the stack}
+ *
+ * @param[in] IRQn See the NVIC_EnableIRQ documentation in CMSIS.
+ *
+ * @retval ::NRF_SUCCESS The interrupt was enabled.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE The interrupt is not available for the application.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_PRIORITY_NOT_ALLOWED The interrupt has a priority not available for the application.
+ */
+SVCALL(SD_NVIC_ENABLEIRQ, uint32_t, sd_nvic_EnableIRQ(IRQn_Type IRQn));
+
+/**@brief  Disable External Interrupt.
+ * @note Corresponds to NVIC_DisableIRQ in CMSIS.
+ *
+ * @pre{IRQn is valid and not reserved by the stack}
+ *
+ * @param[in] IRQn See the NVIC_DisableIRQ documentation in CMSIS
+ *
+ * @retval ::NRF_SUCCESS The interrupt was disabled.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE The interrupt is not available for the application.
+ */
+SVCALL(SD_NVIC_DISABLEIRQ, uint32_t, sd_nvic_DisableIRQ(IRQn_Type IRQn));
+
+/**@brief  Get Pending Interrupt.
+ * @note Corresponds to NVIC_GetPendingIRQ in CMSIS.
+ *
+ * @pre{IRQn is valid and not reserved by the stack}
+ *
+ * @param[in]   IRQn          See the NVIC_GetPendingIRQ documentation in CMSIS.
+ * @param[out]  p_pending_irq Return value from NVIC_GetPendingIRQ.
+ *
+ * @retval ::NRF_SUCCESS The interrupt is available for the application.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE IRQn is not available for the application.
+ */
+SVCALL(SD_NVIC_GETPENDINGIRQ, uint32_t, sd_nvic_GetPendingIRQ(IRQn_Type IRQn, uint32_t * p_pending_irq));
+
+/**@brief  Set Pending Interrupt.
+ * @note Corresponds to NVIC_SetPendingIRQ in CMSIS.
+ *
+ * @pre{IRQn is valid and not reserved by the stack}
+ *
+ * @param[in] IRQn See the NVIC_SetPendingIRQ documentation in CMSIS.
+ *
+ * @retval ::NRF_SUCCESS The interrupt is set pending.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE IRQn is not available for the application.
+ */
+SVCALL(SD_NVIC_SETPENDINGIRQ, uint32_t, sd_nvic_SetPendingIRQ(IRQn_Type IRQn));
+
+/**@brief  Clear Pending Interrupt.
+ * @note Corresponds to NVIC_ClearPendingIRQ in CMSIS.
+ *
+ * @pre{IRQn is valid and not reserved by the stack}
+ *
+ * @param[in] IRQn See the NVIC_ClearPendingIRQ documentation in CMSIS.
+ *
+ * @retval ::NRF_SUCCESS The interrupt pending flag is cleared.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE IRQn is not available for the application.
+ */
+SVCALL(SD_NVIC_CLEARPENDINGIRQ, uint32_t, sd_nvic_ClearPendingIRQ(IRQn_Type IRQn));
+
+/**@brief Set Interrupt Priority.
+ * @note Corresponds to NVIC_SetPriority in CMSIS.
+ *
+ * @pre{IRQn is valid and not reserved by the stack}
+ * @pre{priority is valid and not reserved by the stack}
+ *
+ * @param[in] IRQn      See the NVIC_SetPriority documentation in CMSIS.
+ * @param[in] priority  A valid IRQ priority for use by the application.
+ *
+ * @retval ::NRF_SUCCESS The interrupt and priority level is available for the application.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE IRQn is not available for the application.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_PRIORITY_NOT_ALLOWED The interrupt priority is not available for the application.
+ */
+SVCALL(SD_NVIC_SETPRIORITY, uint32_t, sd_nvic_SetPriority(IRQn_Type IRQn, nrf_app_irq_priority_t priority));
+
+/**@brief Get Interrupt Priority.
+ * @note Corresponds to NVIC_GetPriority in CMSIS.
+ *
+ * @pre{IRQn is valid and not reserved by the stack}
+ *
+ * @param[in]  IRQn         See the NVIC_GetPriority documentation in CMSIS.
+ * @param[out] p_priority   Return value from NVIC_GetPriority.
+ *
+ * @retval ::NRF_SUCCESS The interrupt priority is returned in p_priority.
+ * @retval ::NRF_ERROR_SOC_NVIC_INTERRUPT_NOT_AVAILABLE - IRQn is not available for the application.
+ */
+SVCALL(SD_NVIC_GETPRIORITY, uint32_t, sd_nvic_GetPriority(IRQn_Type IRQn, nrf_app_irq_priority_t * p_priority));
+
+/**@brief System Reset.
+ * @note Corresponds to NVIC_SystemReset in CMSIS.
+ *
+ * @retval ::NRF_ERROR_SOC_NVIC_SHOULD_NOT_RETURN
+ */
+SVCALL(SD_NVIC_SYSTEMRESET, uint32_t, sd_nvic_SystemReset(void));
+
+/**@brief Enters critical region.
+ *
+ * @post Application interrupts will be disabled.
+ * @sa sd_nvic_critical_region_exit
+ *
+ * @param[out]  p_is_nested_critical_region  1: If in a nested critical region.
+ *                                           0: Otherwise.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_NVIC_CRITICAL_REGION_ENTER, uint32_t, sd_nvic_critical_region_enter(uint8_t * p_is_nested_critical_region));
+
+/**@brief Exit critical region.
+ *
+ * @pre Application has entered a critical region using ::sd_nvic_critical_region_enter.
+ * @post If not in a nested critical region, the application interrupts will restored to the state before ::sd_nvic_critical_region_enter was called. 
+ *
+ * @param[in] is_nested_critical_region If this is set to 1, the critical region won't be exited. @sa sd_nvic_critical_region_enter.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_NVIC_CRITICAL_REGION_EXIT, uint32_t, sd_nvic_critical_region_exit(uint8_t is_nested_critical_region));
+
+/**@brief Query the capacity of the application random pool.
+ *
+ * @param[out] p_pool_capacity The capacity of the pool.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_RAND_APPLICATION_POOL_CAPACITY, uint32_t, sd_rand_application_pool_capacity_get(uint8_t * p_pool_capacity));
+
+/**@brief Get number of random bytes available to the application.
+ *
+ * @param[out] p_bytes_available The number of bytes currently available in the pool.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_RAND_APPLICATION_BYTES_AVAILABLE, uint32_t, sd_rand_application_bytes_available_get(uint8_t * p_bytes_available));
+
+/**@brief Get random bytes from the application pool.
+
+  @param[out]  p_buff  Pointer to unit8_t buffer for storing the bytes.
+  @param[in]   length  Number of bytes to take from pool and place in p_buff.
+
+  @retval ::NRF_SUCCESS The requested bytes were written to p_buff.
+  @retval ::NRF_ERROR_SOC_RAND_NOT_ENOUGH_VALUES No bytes were written to the buffer, because there were not enough bytes available.
+*/
+SVCALL(SD_RAND_APPLICATION_GET_VECTOR, uint32_t, sd_rand_application_vector_get(uint8_t * p_buff, uint8_t length));
+
+/**@brief Gets the reset reason register. 
+ *
+ * @param[out]  p_reset_reason  Contents of the NRF_POWER->RESETREAS register.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_POWER_RESET_REASON_GET, uint32_t, sd_power_reset_reason_get(uint32_t * p_reset_reason));
+
+/**@brief Clears the bits of the reset reason register. 
+ *
+ * @param[in] reset_reason_clr_msk Contains the bits to clear from the reset reason register.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_POWER_RESET_REASON_CLR, uint32_t, sd_power_reset_reason_clr(uint32_t reset_reason_clr_msk));
+
+/**@brief Sets the power mode when in CPU sleep.
+ *
+ * @param[in] power_mode The power mode to use when in CPU sleep. @sa sd_app_evt_wait
+ *
+ * @retval ::NRF_SUCCESS The power mode was set.
+ * @retval ::NRF_ERROR_SOC_POWER_MODE_UNKNOWN The power mode was unknown.
+ */
+SVCALL(SD_POWER_MODE_SET, uint32_t, sd_power_mode_set(nrf_power_mode_t power_mode));
+
+/**@brief Puts the chip in System OFF mode. 
+ *
+ * @retval ::NRF_ERROR_SOC_POWER_OFF_SHOULD_NOT_RETURN
+ */
+SVCALL(SD_POWER_SYSTEM_OFF, uint32_t, sd_power_system_off(void));
+
+/**@brief Enables or disables the power-fail comparator.
+ *
+ * Enabling this will give a softdevice event (NRF_EVT_POWER_FAILURE_WARNING) when the power failure warning occurs.
+ * The event can be retrieved with sd_evt_get();
+ *
+ * @param[in] pof_enable    True if the power-fail comparator should be enabled, false if it should be disabled.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_POWER_POF_ENABLE, uint32_t, sd_power_pof_enable(uint8_t pof_enable));
+
+/**@brief Sets the power-fail threshold value.
+ *
+ * @param[in] threshold The power-fail threshold value to use.
+ *
+ * @retval ::NRF_SUCCESS The power failure threshold was set.
+ * @retval ::NRF_ERROR_SOC_POWER_POF_THRESHOLD_UNKNOWN The power failure threshold is unknown.
+ */
+SVCALL(SD_POWER_POF_THRESHOLD_SET, uint32_t, sd_power_pof_threshold_set(nrf_power_failure_threshold_t threshold));
+
+/**@brief Sets bits in the NRF_POWER->RAMON register.
+ *
+ * @param[in] ramon Contains the bits needed to be set in the NRF_POWER->RAMON register.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_POWER_RAMON_SET, uint32_t, sd_power_ramon_set(uint32_t ramon));
+
+/** @brief Clears bits in the NRF_POWER->RAMON register.
+ *
+ * @param ramon Contains the bits needed to be cleared in the NRF_POWER->RAMON register.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_POWER_RAMON_CLR, uint32_t, sd_power_ramon_clr(uint32_t ramon));
+
+/**@brief Get contents of NRF_POWER->RAMON register, indicates power status of ram blocks.
+ *
+ * @param[out] p_ramon Content of NRF_POWER->RAMON register.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_POWER_RAMON_GET, uint32_t, sd_power_ramon_get(uint32_t * p_ramon));
+
+/**@brief Set bits in the NRF_POWER->GPREGRET register.
+ *
+ * @param[in] gpregret_msk Bits to be set in the GPREGRET register.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_POWER_GPREGRET_SET, uint32_t, sd_power_gpregret_set(uint32_t gpregret_msk));
+
+/**@brief Clear bits in the NRF_POWER->GPREGRET register.
+ *
+ * @param[in] gpregret_msk Bits to be clear in the GPREGRET register.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_POWER_GPREGRET_CLR, uint32_t, sd_power_gpregret_clr(uint32_t gpregret_msk));
+
+/**@brief Get contents of the NRF_POWER->GPREGRET register.
+ *
+ * @param[out] p_gpregret Contents of the GPREGRET register.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_POWER_GPREGRET_GET, uint32_t, sd_power_gpregret_get(uint32_t *p_gpregret));
+
+/**@brief Sets the DCDC mode.
+ *
+ * Depending on the internal state of the SoftDevice, the mode change may not happen immediately.
+ * The DCDC mode switch will be blocked when occurring in close proximity to radio transmissions. When
+ * the radio transmission is done, the last mode will be used.
+ *
+ * @param[in] dcdc_mode The mode of the DCDC.
+ *
+ * @retval ::NRF_SUCCESS
+ * @retval ::NRF_ERROR_INVALID_PARAM The DCDC mode is invalid.
+ */
+SVCALL(SD_POWER_DCDC_MODE_SET, uint32_t, sd_power_dcdc_mode_set(nrf_power_dcdc_mode_t dcdc_mode));
+
+/**@brief Request the high frequency crystal oscillator.
+ *
+ * Will start the high frequency crystal oscillator, the startup time of the crystal varies
+ * and the ::sd_clock_hfclk_is_running function can be polled to check if it has started.
+ *
+ * @see sd_clock_hfclk_is_running
+ * @see sd_clock_hfclk_release
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_CLOCK_HFCLK_REQUEST, uint32_t, sd_clock_hfclk_request(void));
+
+/**@brief Releases the high frequency crystal oscillator.
+ *
+ * Will stop the high frequency crystal oscillator, this happens immediately.
+ *
+ * @see sd_clock_hfclk_is_running
+ * @see sd_clock_hfclk_request
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_CLOCK_HFCLK_RELEASE, uint32_t, sd_clock_hfclk_release(void));
+
+/**@brief Checks if the high frequency crystal oscillator is running.
+ *
+ * @see sd_clock_hfclk_request
+ * @see sd_clock_hfclk_release
+ *
+ * @param[out] p_is_running 1 if the external crystal oscillator is running, 0 if not.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_CLOCK_HFCLK_IS_RUNNING, uint32_t, sd_clock_hfclk_is_running(uint32_t * p_is_running));
+
+/**@brief Waits for an application event.
+ * 
+ * An application event is either an application interrupt or a pended interrupt when the
+ * interrupt is disabled. When the interrupt is enabled it will be taken immediately since
+ * this function will wait in thread mode, then the execution will return in the application's
+ * main thread. When an interrupt is disabled and gets pended it will return to the application's 
+ * thread main. The application must ensure that the pended flag is cleared using 
+ * ::sd_nvic_ClearPendingIRQ in order to sleep using this function. This is only necessary for
+ * disabled interrupts, as the interrupt handler will clear the pending flag automatically for
+ * enabled interrupts.
+ *
+ * In order to wake up from disabled interrupts, the SEVONPEND flag has to be set in the Cortex-M0
+ * System Control Register (SCR). @sa CMSIS_SCB
+ *
+ * @note If an application interrupt has happened since the last time sd_app_evt_wait was
+ *       called this function will return immediately and not go to sleep. This is to avoid race
+ *       conditions that can occur when a flag is updated in the interrupt handler and processed
+ *       in the main loop.
+ *
+ * @post An application interrupt has happened or a interrupt pending flag is set.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_APP_EVT_WAIT, uint32_t, sd_app_evt_wait(void));
+
+/**@brief Get PPI channel enable register contents.
+ *
+ * @param[out] p_channel_enable The contents of the PPI CHEN register.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_PPI_CHANNEL_ENABLE_GET, uint32_t, sd_ppi_channel_enable_get(uint32_t * p_channel_enable));
+
+/**@brief Set PPI channel enable register.
+ *
+ * @param[in] channel_enable_set_msk Mask containing the bits to set in the PPI CHEN register.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_PPI_CHANNEL_ENABLE_SET, uint32_t, sd_ppi_channel_enable_set(uint32_t channel_enable_set_msk));
+
+/**@brief Clear PPI channel enable register.
+ *
+ * @param[in] channel_enable_clr_msk Mask containing the bits to clear in the PPI CHEN register.
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_PPI_CHANNEL_ENABLE_CLR, uint32_t, sd_ppi_channel_enable_clr(uint32_t channel_enable_clr_msk));
+
+/**@brief Assign endpoints to a PPI channel.
+ *
+ * @param[in] channel_num Number of the PPI channel to assign.
+ * @param[in] evt_endpoint Event endpoint of the PPI channel.
+ * @param[in] task_endpoint Task endpoint of the PPI channel.
+ *
+ * @retval ::NRF_ERROR_SOC_PPI_INVALID_CHANNEL The channel number is invalid.
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_PPI_CHANNEL_ASSIGN, uint32_t, sd_ppi_channel_assign(uint8_t channel_num, const volatile void * evt_endpoint, const volatile void * task_endpoint));
+
+/**@brief Task to enable a channel group.
+ *
+ * @param[in] group_num Number of the channel group.
+ *
+ * @retval ::NRF_ERROR_SOC_PPI_INVALID_GROUP The group number is invalid
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_PPI_GROUP_TASK_ENABLE, uint32_t, sd_ppi_group_task_enable(uint8_t group_num));
+
+/**@brief Task to disable a channel group.
+ *
+ * @param[in] group_num Number of the PPI group.
+ *
+ * @retval ::NRF_ERROR_SOC_PPI_INVALID_GROUP The group number is invalid.
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_PPI_GROUP_TASK_DISABLE, uint32_t, sd_ppi_group_task_disable(uint8_t group_num));
+
+/**@brief Assign PPI channels to a channel group.
+ *
+ * @param[in] group_num Number of the channel group.
+ * @param[in] channel_msk Mask of the channels to assign to the group.
+ *
+ * @retval ::NRF_ERROR_SOC_PPI_INVALID_GROUP The group number is invalid.
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_PPI_GROUP_ASSIGN, uint32_t, sd_ppi_group_assign(uint8_t group_num, uint32_t channel_msk));
+
+/**@brief Gets the PPI channels of a channel group.
+ *
+ * @param[in]   group_num Number of the channel group.
+ * @param[out]  p_channel_msk Mask of the channels assigned to the group.
+ *
+ * @retval ::NRF_ERROR_SOC_PPI_INVALID_GROUP The group number is invalid.
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_PPI_GROUP_GET, uint32_t, sd_ppi_group_get(uint8_t group_num, uint32_t * p_channel_msk));
+
+/**@brief Configures the Radio Notification signal.
+ *
+ * @note
+ *      - The notification signal latency depends on the interrupt priority settings of SWI used
+ *        for notification signal.
+ *      - In the period between the ACTIVE signal and the start of the Radio Event, the SoftDevice
+ *        will interrupt the application to do Radio Event preparation.
+ *      - Using the Radio Notification feature may limit the bandwidth, as the SoftDevice may have
+ *        to shorten the connection events to have time for the Radio Notification signals.
+ *
+ * @param[in]  type      Type of notification signal.
+ *                       @ref NRF_RADIO_NOTIFICATION_TYPE_NONE shall be used to turn off radio
+ *                       notification. Using @ref NRF_RADIO_NOTIFICATION_DISTANCE_NONE is
+ *                       recommended (but not required) to be used with
+ *                       @ref NRF_RADIO_NOTIFICATION_TYPE_NONE.
+ *
+ * @param[in]  distance  Distance between the notification signal and start of radio activity.
+ *                       This parameter is ignored when @ref NRF_RADIO_NOTIFICATION_TYPE_NONE or 
+ *                       @ref NRF_RADIO_NOTIFICATION_TYPE_INT_ON_INACTIVE is used.
+ *
+ * @retval ::NRF_ERROR_INVALID_PARAM The group number is invalid.
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_RADIO_NOTIFICATION_CFG_SET, uint32_t, sd_radio_notification_cfg_set(nrf_radio_notification_type_t type, nrf_radio_notification_distance_t distance));
+
+/**@brief Encrypts a block according to the specified parameters.
+ *
+ * 128-bit AES encryption.
+ *
+ * @param[in, out] p_ecb_data Pointer to the ECB parameters' struct (two input
+ *                            parameters and one output parameter).
+ *
+ * @retval ::NRF_SUCCESS
+ */
+SVCALL(SD_ECB_BLOCK_ENCRYPT, uint32_t, sd_ecb_block_encrypt(nrf_ecb_hal_data_t * p_ecb_data));
+
+/**@brief Gets any pending events generated by the SoC API.
+ *
+ * The application should keep calling this function to get events, until ::NRF_ERROR_NOT_FOUND is returned.
+ *
+ * @param[out] p_evt_id Set to one of the values in @ref NRF_SOC_EVTS, if any events are pending.
+ *
+ * @retval ::NRF_SUCCESS An event was pending. The event id is written in the p_evt_id parameter.
+ * @retval ::NRF_ERROR_NOT_FOUND No pending events. 
+ */
+SVCALL(SD_EVT_GET, uint32_t, sd_evt_get(uint32_t * p_evt_id));
+
+/**@brief Get the temperature measured on the chip
+ * 
+ * This function will block until the temperature measurement is done.
+ * It takes around 50us from call to return.
+ *
+ * @note Pan #28 in PAN-028 v 1.6 "Negative measured values are not represented correctly" is corrected by this function.
+ *
+ * @param[out] p_temp Result of temperature measurement. Die temperature in 0.25 degrees celsius.
+ *
+ * @retval ::NRF_SUCCESS A temperature measurement was done, and the temperature was written to temp
+ */
+SVCALL(SD_TEMP_GET, uint32_t, sd_temp_get(int32_t * p_temp));
+
+/**@brief Flash Write
+ *
+ * Commands to write a buffer to flash
+ *
+ * This call initiates the flash access command, and its completion will be communicated to the
+ * application with exactly one of the following events:
+ *      - NRF_EVT_FLASH_OPERATION_SUCCESS - The command was successfully completed.
+ *      - NRF_EVT_FLASH_OPERATION_ERROR   - The command could not be started.
+ *
+ * @note
+ *      - This call takes control over the radio and the CPU during flash erase and write to make sure that
+ *        they will not interfere with the flash access. This means that all interrupts will be blocked
+ *        for a predictable time (depending on the NVMC specification in nRF51 Series Reference Manual
+ *        and the command parameters).
+ *
+ *
+ * @param[in]  p_dst Pointer to start of flash location to be written.
+ * @param[in]  p_src Pointer to buffer with data to be written
+ * @param[in]  size  Number of 32-bit words to write. Maximum size is 256 32bit words.
+ *
+ * @retval ::NRF_ERROR_INVALID_ADDR   Tried to write to a non existing flash address, or p_dst or p_src was unaligned.
+ * @retval ::NRF_ERROR_BUSY           The previous command has not yet completed.
+ * @retval ::NRF_ERROR_INVALID_LENGTH Size was 0, or more than 256 words.
+ * @retval ::NRF_ERROR_FORBIDDEN      Tried to write to or read from protected location.
+ * @retval ::NRF_SUCCESS              The command was accepted.
+ */
+SVCALL(SD_FLASH_WRITE, uint32_t, sd_flash_write(uint32_t * const p_dst, uint32_t const * const p_src, uint32_t size));
+
+
+/**@brief Flash Erase page
+ *
+ * Commands to erase a flash page
+ *
+ * This call initiates the flash access command, and its completion will be communicated to the
+ * application with exactly one of the following events:
+ *      - NRF_EVT_FLASH_OPERATION_SUCCESS - The command was successfully completed.
+ *      - NRF_EVT_FLASH_OPERATION_ERROR   - The command could not be started.
+ *
+ * @note
+ *      - This call takes control over the radio and the CPU during flash erase and write to make sure that
+ *        they will not interfere with the flash access. This means that all interrupts will be blocked
+ *        for a predictable time (depending on the NVMC specification in nRF51 Series Reference Manual
+ *        and the command parameters).
+ *
+ *
+ * @param[in]  page_number Pagenumber of the page to erase
+ * @retval ::NRF_ERROR_INTERNAL      If a new session could not be opened due to an internal error.
+ * @retval ::NRF_ERROR_INVALID_ADDR  Tried to erase to a non existing flash page.
+ * @retval ::NRF_ERROR_BUSY          The previous command has not yet completed.
+ * @retval ::NRF_ERROR_FORBIDDEN     Tried to erase a protected page.
+ * @retval ::NRF_SUCCESS             The command was accepted.
+ */
+SVCALL(SD_FLASH_ERASE_PAGE, uint32_t, sd_flash_page_erase(uint32_t page_number));
+
+
+/**@brief Flash Protection set
+ *
+ * Commands to set the flash protection registers PROTENSETx
+ *
+ * @note To read the values in PROTENSETx you can read them directly. They are only write-protected.
+ *
+ * @param[in]  protenset0 Value to be written to PROTENSET0
+ * @param[in]  protenset1 Value to be written to PROTENSET1
+ *
+ * @retval ::NRF_ERROR_FORBIDDEN Tried to protect the SoftDevice
+ * @retval ::NRF_SUCCESS Values successfully written to PROTENSETx
+ */
+SVCALL(SD_FLASH_PROTECT, uint32_t, sd_flash_protect(uint32_t protenset0, uint32_t protenset1));
+
+
+/** @} */
+
+#endif // NRF_SOC_H__
+
+/**
+  @}
+ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/nrf_svc.h	Tue Mar 18 12:30:07 2014 +0000
@@ -0,0 +1,33 @@
+#ifndef NRF_SVC__
+#define NRF_SVC__
+
+#ifdef SVCALL_AS_NORMAL_FUNCTION
+#define SVCALL(number, return_type, signature) return_type signature
+#else
+
+#ifndef SVCALL
+#if defined (__CC_ARM)
+#define SVCALL(number, return_type, signature) return_type __svc(number) signature
+#elif defined (__GNUC__)
+#define SVCALL(number, return_type, signature) \
+  _Pragma("GCC diagnostic ignored \"-Wreturn-type\"") \
+  _Pragma("GCC diagnostic ignored \"-Wunused-function\"") \
+  __attribute__((naked)) static return_type signature \
+  { \
+    __asm( \
+        "svc %0\n" \
+        "bx r14" : : "I" (number) : "r0" \
+    ); \
+  }
+#elif defined (__ICCARM__)
+#define PRAGMA(x) _Pragma(#x)
+#define SVCALL(number, return_type, signature) \
+PRAGMA(swi_number = number) \
+ __swi return_type signature;
+#else
+#define SVCALL(number, return_type, signature) return_type signature  
+#endif
+#endif  // SVCALL
+
+#endif  // SVCALL_AS_NORMAL_FUNCTION
+#endif  // NRF_SVC__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_API/include/softdevice_assert.h	Tue Mar 18 12:30:07 2014 +0000
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2012 Nordic Semiconductor. All Rights Reserved.
+ *
+ * The information contained herein is confidential property of Nordic Semiconductor. The use,
+ * copying, transfer or disclosure of such information is prohibited except by express written
+ * agreement with Nordic Semiconductor.
+ *
+ */
+
+/** @brief Utilities for verifying program logic
+ */
+
+#ifndef SOFTDEVICE_ASSERT_H_
+#define SOFTDEVICE_ASSERT_H_
+
+#include <stdint.h>
+
+/** @brief This function handles assertions.
+ *
+ *
+ * @note
+ * This function is called when an assertion has triggered.
+ * 
+ *
+ * @param line_num The line number where the assertion is called
+ * @param file_name Pointer to the file name
+ */
+void assert_softdevice_callback(uint16_t line_num, const uint8_t *file_name);
+
+
+/*lint -emacro(506, ASSERT) */ /* Suppress "Constant value Boolean */ 
+/*lint -emacro(774, ASSERT) */ /* Suppress "Boolean within 'if' always evaluates to True" */ \
+/** @brief Check intended for production code
+ *
+ * Check passes if "expr" evaluates to true. */
+#define ASSERT(expr) \
+if (expr)                                                                     \
+{                                                                             \
+}                                                                             \
+else                                                                          \
+{                                                                             \
+  assert_softdevice_callback((uint16_t)__LINE__, (uint8_t *)__FILE__);        \
+  /*lint -unreachable */                                                      \
+}
+
+#endif /* SOFTDEVICE_ASSERT_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_license.txt	Tue Mar 18 12:30:07 2014 +0000
@@ -0,0 +1,174 @@
+NORDIC SEMICONDUCTOR ASA SOFTDEVICE LICENSE AGREEMENT
+
+
+License Agreement for the Nordic Semiconductor ASA ("Nordic")
+S110 Bluetooth SoftDevice software package ("SoftDevice").
+
+
+You ("You" "Licensee") must carefully and thoroughly read this License
+Agreement ("Agreement"), and accept to adhere to this Agreement before
+downloading, installing and/or using any software or content in the
+SoftDevice provided herewith.
+
+YOU ACCEPT THIS LICENSE AGREEMENT BY (A) CLICKING ACCEPT OR AGREE TO
+THIS LICENSE AGREEMENT, WHERE THIS OPTION IS MADE AVAILABLE TO YOU; OR
+(B) BY ACTUALLY USING THE SOFTDEVICE, IN THIS CASE YOU AGREE THAT THE
+USE OF THE SOFTDEVICE CONSTITUTES ACCEPTANCE OF THE LICENSING
+AGREEMENT FROM THAT POINT ONWARDS.
+
+IF YOU DO NOT AGREE TO BE BOUND BY THE TERMS OF THIS AGREEMENT, THEN
+DO NOT DOWNLOAD, INSTALL/COMPLETE INSTALLATION OF, OR IN ANY OTHER WAY
+MAKE USE OF THE SOFTDEVICE.
+
+
+
+1.	Grant of License 
+
+Subject to the terms in this Agreement Nordic grants Licensee a
+limited, non-exclusive, non-transferable, non-sub licensable,
+revocable license ("License"): (a) to use the SoftDevice solely in
+connection with a Nordic integrated circuit, and (b) to distribute the
+SoftDevice solely as integrated in Licensee Product. Licensee shall
+not use the SoftDevice for any purpose other than specifically
+authorized herein. It is a material breach of this agreement to use or
+modify the SoftDevice for use on any wireless connectivity integrated
+circuit other than a Nordic integrated circuit.
+
+
+2.	Title 
+
+Nordic retains full rights, title, and ownership to the SoftDevice and
+any and all patents, copyrights, trade secrets, trade names,
+trademarks, and other intellectual property rights in and to the
+SoftDevice.
+
+
+3.	No Modifications or Reverse Engineering
+
+Licensee shall not, modify, reverse engineer, disassemble, decompile
+or otherwise attempt to discover the source code of any non-source
+code parts of the SoftDevice including, but not limited to
+pre-compiled hex files, binaries and object code.
+
+
+4.	Distribution Restrictions
+
+Except as set forward in Section 1 above, the Licensee may not
+disclose or distribute any or all parts of the SoftDevice to any third
+party. Licensee agrees to provide reasonable security precautions to
+prevent unauthorized access to or use of the SoftDevice as proscribed
+herein. Licensee also agrees that use of and access to the SoftDevice
+will be strictly limited to the employees and subcontractors of the
+Licensee necessary for the performance of development, verification
+and production tasks under this Agreement. The Licensee is responsible
+for making such employees and subcontractors comply with the
+obligations concerning use and non-disclosure of the SoftDevice.
+
+
+6.	No Other Rights 
+
+Licensee shall use the SoftDevice only in compliance with this
+Agreement and shall refrain from using the SoftDevice in any way that
+may be contrary to this Agreement.
+
+
+7.	Fees 
+
+Nordic grants the License to the Licensee free of charge provided that
+the Licensee undertakes the obligations in the Agreement and warrants
+to comply with the Agreement.
+
+
+8.	DISCLAIMER OF WARRANTY 
+
+THE SOFTDEVICE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND
+EXPRESS OR IMPLIED AND NEITHER NORDIC, ITS LICENSORS OR AFFILIATES NOR
+THE COPYRIGHT HOLDERS MAKE ANY REPRESENTATIONS OR WARRANTIES, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE OR THAT THE
+SOFTDEVICE WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS,
+TRADEMARKS OR OTHER RIGHTS. THERE IS NO WARRANTY BY NORDIC OR BY ANY
+OTHER PARTY THAT THE FUNCTIONS CONTAINED IN THE SOFTDEVICE WILL MEET
+THE REQUIREMENTS OF LICENSEE OR THAT THE OPERATION OF THE SOFTDEVICE
+WILL BE UNINTERRUPTED OR ERROR-FREE. LICENSEE ASSUMES ALL
+RESPONSIBILITY AND RISK FOR THE SELECTION OF THE SOFTDEVICE TO ACHIEVE
+LICENSEE’S INTENDED RESULTS AND FOR THE INSTALLATION, USE AND RESULTS
+OBTAINED FROM IT.
+
+
+9.	No Support
+
+Nordic is not obligated to furnish or make available to Licensee any
+further information, software, technical information, know-how,
+show-how, bug-fixes or support. Nordic reserves the right to make
+changes to the SoftDevice without further notice.
+
+
+10.	Limitation of Liability
+
+In no event shall Nordic, its employees or suppliers, licensors or
+affiliates be liable for any lost profits, revenue, sales, data or
+costs of procurement of substitute goods or services, property damage,
+personal injury, interruption of business, loss of business
+information or for any special, direct, indirect, incidental,
+economic, punitive, special or consequential damages, however caused
+and whether arising under contract, tort, negligence, or other theory
+of liability arising out of the use of or inability to use the
+SoftDevice, even if Nordic or its employees or suppliers, licensors or
+affiliates are advised of the possibility of such damages. Because
+some countries/states/jurisdictions do not allow the exclusion or
+limitation of liability, but may allow liability to be limited, in
+such cases, Nordic, its employees or licensors or affiliates’
+liability shall be limited to USD 50.
+
+
+11.	Breach of Contract
+
+Upon a breach of contract by the Licensee, Nordic and its licensor are
+entitled to damages in respect of any direct loss which can be
+reasonably attributed to the breach by the Licensee. If the Licensee
+has acted with gross negligence or willful misconduct, the Licensee
+shall cover both direct and indirect costs for Nordic and its
+licensors.
+
+
+12.	Indemnity
+
+Licensee undertakes to indemnify, hold harmless and defend Nordic and
+its directors, officers, affiliates, shareholders, licensors,
+employees and agents from and against any claims or lawsuits,
+including attorney's fees, that arise or result of the Licensee’s
+execution of the License and which is not due to causes for which
+Nordic is responsible.
+
+
+13.	Governing Law
+
+This Agreement shall be construed according to the laws of Norway, and
+hereby submits to the exclusive jurisdiction of the Oslo tingrett.
+
+
+14.	Assignment
+
+Licensee shall not assign this Agreement or any rights or obligations
+hereunder without the prior written consent of Nordic.
+
+
+15.	Termination
+
+Without prejudice to any other rights, Nordic may cancel this
+Agreement if Licensee does not abide by the terms and conditions of
+this Agreement. Upon termination Licensee must promptly cease the use
+of the License and destroy all copies of the Licensed Technology and
+any other material provided by Nordic or its affiliate, or produced by
+the Licensee in connection with the Agreement or the Licensed
+Technology.
+
+
+16.	Third party beneficiaries  
+
+Nordic’s licensors are intended third party beneficiaries under this
+Agreement.
+
+
+
Binary file targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_migration-document.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_readme.txt	Tue Mar 18 12:30:07 2014 +0000
@@ -0,0 +1,14 @@
+s110_nrf51822_6.0.0
+
+This release consists of the following:
+- This readme file
+- The s110_nrf51822_6.0.0 license
+- The s110_nrf51822_6.0.0 softdevice (binary hex file)
+- The s110_nrf51822_6.0.0 API (softdevice header files)
+- The s110_nrf51822_6.0.0 release notes
+- The s110_nrf51822_6.0.0 migration document
+
+
+IMPORTANT NOTE: If you intend to use the softdevice with the nRF51
+SDK only, you do _not_ need the API files. The API header files are
+already installed as part of the nRF51 SDK versions 5.0.0 and 5.1.0.
Binary file targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_releasenotes.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/targets/hal/TARGET_NORDIC/TARGET_NRF51822/Lib/s110_nrf51822_6_0_0/s110_nrf51822_6.0.0_softdevice.hex	Tue Mar 18 12:30:07 2014 +0000
@@ -0,0 +1,4835 @@
+:020000040000FA
+:10000000481C0020992B0100F1160100CF2A0100A5
+:1000100000000000000000000000000000000000E0
+:100020000000000000000000000000000D2C010096
+:100030000000000000000000F1160100F1160100B0
+:10004000752C01007B2C0100F1160100F116010056
+:10005000F1160100F1160100F1160100F116010080
+:10006000812C0100F1160100F1160100872C01001E
+:10007000F11601008D2C0100B9020000FF81000083
+:10008000F1160100F1160100F1160100F116010050
+:10009000F1160100F1160100F1160100F116010040
+:1000A000932C0100992C0100F1160100F1160100BA
+:1000B000F1160100F1160100F1160100F116010020
+:1000C00000F002F812F04FFD0CA030C808382418D8
+:1000D0002D18A246671EAB4654465D46AC4201D180
+:1000E00012F041FD7E460F3E0FCCB646012633424C
+:1000F00000D0FB1AA246AB46334318475C2C0100E4
+:100100008C2C0100103A02D378C878C1FAD8520773
+:1001100001D330C830C101D504680C6070470000BD
+:100120000023002400250026103A01D378C1FBD813
+:10013000520700D330C100D50B6070471FB5C046D1
+:10014000C04612F093FC04B00FB41FBD826902498F
+:100150008161024810447047610100000100000005
+:1001600001B41EB400B50FF067FE01B401988646D5
+:1001700001BC01B01EBD0000F0B4404649465246E5
+:100180005B460FB402A0013001B50648004700BF2E
+:1001900001BC86460FBC8046894692469B46F0BC11
+:1001A00070470000C1000000401E00BF00BF00BF3C
+:1001B00000BF00BF00BF00BF00BF00BF00BF00BF47
+:1001C00000BFF1D17047000070B505460C461646D9
+:1001D00002E00FCC0FC5103E102EFAD2082E02D32B
+:1001E00003CC03C5083E042E07D301CC01C5361F3E
+:1001F00003E021782970641C6D1C761EF9D270BD55
+:100200008307FF22DB0E9A408907090E99400028D8
+:100210000BDA0007000F0838830828489B001B18DA
+:10022000D86990430843D8617047830824489B00ED
+:100230001B181868904308431860704710B50446AF
+:1002400000210120FFF7DCFF00211820FFF7D8FF75
+:1002500000210B20FFF7D4FF02211920FFF7D0FF68
+:1002600002210D20FFF7CCFF02210E20FFF7C8FF6F
+:1002700002210F20FFF7C4FF0221C81FFFF7C0FFB4
+:1002800003211620FFF7BCFF03211520FFF7B8FF5D
+:10029000204600F019F8002010BD49210180704768
+:1002A00010B500F04FF810BD0648704710B500F0CB
+:1002B0004AF810BD704770477047000000ED00E03D
+:1002C00000E400E003F900C330B50546384C95B0B2
+:1002D00006202070A01CFFF7E0FF5920A0803548C1
+:1002E00061880069344A80B2D269344B120C98425A
+:1002F00004D18A4208D032A1B42003E0884203D05E
+:100300002FA1B72012F0DDFB334802F057F9044665
+:10031000072000F0D7F92146254800F015FA6D1E98
+:10032000072D0AD8302168460170857001F0CCF99C
+:10033000002802D009A800F065FC204601F0BBFAB5
+:1003400015B030BD704710B50C46014660390B2919
+:1003500003D8214601F01CFF06E001466C39032951
+:1003600004D8214601F047FF206010BD01467039D6
+:100370001F2903D8214600F03FF8F5E701469039E0
+:100380000F2903D8214600F0C1F8EDE70146A03956
+:100390000F2903D8214600F029F9E5E70146B039D5
+:1003A0000F2903D8214600F006F9DDE70120DBE73D
+:1003B000140000200010001040000010FFFF00009B
+:1003C0007372635C636F72655F66756E6374696F89
+:1003D0006E732E63000000006D1C000070477047B4
+:1003E00070477047704770477047704710B50128D5
+:1003F00001D100F0CEF910BD10B57038030012F035
+:1004000065FC150C10141C20232A31363B3F434752
+:100410004E535A626A72797E8300086803F0FDFBCE
+:1004200010BD086803F050FC10BD0C790B7B8A6886
+:100430000868214603F06EFC10BD086803F0E8FC74
+:1004400010BD03F0BAF910BD08884A6880B21146A1
+:1004500003F06CFE10BD0A790888114680B203F0E3
+:10046000BCFE10BD087840B203F0C7FE10BD08887E
+:1004700080B203F0E3FE10BD086803F0F2FE10BD89
+:10048000086803F00AFF10BD086803F036FF10BDCE
+:10049000088982B209C9194603F061FF10BD05C978
+:1004A000114603F0B0FF10BD08884A6880B21146BB
+:1004B00003F0CEFF10BD0B7908888A6880B2194618
+:1004C00004F010F810BD0B7908888A6880B21946CC
+:1004D00004F0B9F810BD08884B688A6880B21946E4
+:1004E00004F0FAF810BD08884A6880B2114604F09A
+:1004F00045F910BD088880B204F05EF910BD088887
+:1005000080B204F07CF910BD012010BD10B5903808
+:10051000030012F0DBFB09060F161D242C363F46A4
+:100520004E0088888A6883B20888194680B204F031
+:1005300030FD10BD08884A6880B2114604F086FD7F
+:1005400010BD08884A6880B2114604F0C9FD10BD8C
+:1005500008884A6880B2114604F0FFFD10BD088883
+:100560004B688A6880B2194604F030FE10BD0889D5
+:1005700082B2888883B20888194680B204F065FE8A
+:1005800010BD08894B6882B20888194680B204F011
+:100590009AFE10BD08884A6880B2114604F0CAFE6F
+:1005A00010BD888882B20888114680B204F05EFFD0
+:1005B00010BD012010BD10B5B02805D0B12808D05D
+:1005C000B2280BD0012010BD088880B205F042FA95
+:1005D00010BD088880B205F06DFA10BD08884B6820
+:1005E0008A6880B2194605F076FA10BD10B5A038B9
+:1005F000030012F06BFB0B070E172028323C434D13
+:10060000545D65004B6808788A68194606F090FDCD
+:1006100010BD88888A6883B20888194680B206F0BF
+:100620009CFD10BD08884C68CB688A6880B2214662
+:1006300006F0A3FD10BD08884B688A6880B2194691
+:1006400006F0BDFD10BD8888CB6884B208888A6832
+:1006500080B2214606F0DDFD10BD8888CB6884B2EB
+:1006600008888A6880B2214606F0E3FD10BD08883C
+:100670004A6880B2114606F00BFE10BD088982B2AE
+:10068000888883B20888194680B206F00BFE10BD38
+:1006900008884A6880B2114606F024FE10BD088919
+:1006A0004B6882B20888194680B206F0A1FE10BDE0
+:1006B00008884B688A6880B2194606F05EFF10BD54
+:1006C000012010BD10B507F09BF80FF0CFF907F02F
+:1006D00049FD0FF01DFB07F0B3FD07F0D1FC10BD85
+:1006E0001CB50446002069460870204608F020FD2D
+:1006F0006946204608F0DEFB002803D1FBA1B120AB
+:1007000012F0DFF901A9204608F033FB002803D1DD
+:10071000F6A1B62012F0D5F9684600781CBD70B578
+:10072000F74D002428462C7620308471C47112F0D5
+:10073000DBFA284640380470203084738474847651
+:100740002C74AC7070BDEAE710B50C46ED49828898
+:100750008A8042884A800078087008460A38847087
+:1007600008F0DDFAFFF7DBFF204609F01FFDE44A41
+:10077000E0321146383908461446813808F04AFDFF
+:100780002146E0480AF0FDFF08F0C9FC12F0ACFA7F
+:1007900010BD10B50120FFF721FE10BDF8B509F01E
+:1007A0004CF9D84DD64C0A3D022802D0207C0028B6
+:1007B0007CD0207E0026102819D1A078002803D0F4
+:1007C000CAA1D14812F07DF9CD48E838817A89076D
+:1007D0000DD50146267160398989E180C17A21727F
+:1007E00081896181C089A0810120A0702676C44FD3
+:1007F000203FB87C002859D1C4486946808908F058
+:1008000059FB002805D06946687809784018687057
+:1008100004E0C520B5A1C00012F053F9207C0028E7
+:1008200038D0BA488189FF300930406D80898142D3
+:1008300004D0B548ADA1223012F043F9B348808905
+:1008400008F0DEFB002804D1AF48A8A1283012F040
+:1008500038F908F04CFC00281CD0AC488089FFF720
+:100860003FFF697840186870A5484038416D2031D5
+:100870000A7C012A0DD1A54A3E779289C287487C1D
+:1008800020700120B876207E102801D0282800D1C1
+:10089000267626746978002908D09C488289FF3022
+:1008A0000930C28601870120B8746E7009F0BAF869
+:1008B000002805D1207C002802D0A87801F0A2FEF3
+:1008C000F8BDF8B50F460446FFF768FF8C4D403D74
+:1008D00028788B4E002813D0002F10D1307E0028AE
+:1008E00004D0FF2081A1BE3012F0EBF82C22A91C0D
+:1008F000204611F049FF0E202070002028708FE064
+:100900007F4D203DA87B002818D0002FF7D1307EE6
+:10091000102808D0282806D0002804D0FF2073A172
+:10092000CA3012F0CEF80120E070E87BA070287C7D
+:1009300060700F2020700020A87371E00121204614
+:1009400008F00EFC002807D0307C002851D1394631
+:10095000204608F005FCF8BDA97C69480C380090D9
+:1009600068480A38002913D00178052910D2002FD1
+:1009700056D1491C0170002666700D2020700120A0
+:1009800028750622A01C009911F0FEFEAE7447E007
+:100990005C4800210A380170B078002814D0002F7C
+:1009A0003ED1307E002803D050A1594812F089F87A
+:1009B000002565700120524920700A22091DA01CE3
+:1009C00011F0E2FEB5702BE0394620460AF046FEF3
+:1009D000002825D1A87C002805D0002F20D1494827
+:1009E0000A380178C5E7A87E002802D0307C0028AC
+:1009F00001D00020F8BD002F12D1307E002804D095
+:100A00008D203AA1800012F05CF8002666700A2062
+:100A10003B4920700622091FA01C11F0B5FEAE76DE
+:100A20000120F8BD10B53648017E002908D1007CB0
+:100A3000012805D001210020FFF743FF002801D045
+:100A4000072010BD012010BD10B5012409F0F8FBEE
+:100A50000443FFF7E7FF044308F062FB014621432C
+:100A6000084610BDF8B51D4614460E4608F0A1F91B
+:100A7000002807D0684608F0A7F9002803D0002C0A
+:100A800007D101E00120F8BD992018A1800012F0E3
+:100A900018F808F045F9A04204D21D4813A15830B7
+:100AA00012F00FF8009807F0B9FD3146009807F0F2
+:100AB000C7FDE2B22946009807F07EFF08F096F9DC
+:100AC000002804D19D2009A1800011F0FAFF08F050
+:100AD00029FB0E4800244030C17B002902D0C4739A
+:100AE00009F080FC0948C480CCE700007372635CA5
+:100AF0006C6C5F6374726C2E73302E6300000000A8
+:100B0000E0020020240000200B06000098010020D5
+:100B10000D02000010B50179002907D001290AD083
+:100B2000F749FE2011F0CDFF002010BD831D428843
+:100B30000488022103E042880488831D01212046A5
+:100B4000FFF790FF10BDF8B51F4615460E46044648
+:100B500008F073FF022803D0EA48007C00281FD069
+:100B6000E9488089208008F04BFA002803D1E44945
+:100B7000E64811F0A6FF0524684608F04CFA002864
+:100B80000ED0009807F094FD3070022809D001289B
+:100B900007D008F080FA641E2406240EECD1002051
+:100BA000F8BD3946009807F01FFF2880002804D1BF
+:100BB000D648D349123011F084FF08F06CFA0028AF
+:100BC00004D1AF20CE49800011F07BFF0120F8BD99
+:100BD00038B50446831D821C6946FFF7B4FF002820
+:100BE0000DD00020607168460078012808D00228E6
+:100BF00006D0FF20C249203011F063FF012038BD2C
+:100C00002071FBE700215CE670B5BE4C0546403C18
+:100C10002078002803D1BB48007E002803D0B849C3
+:100C2000BB4811F04EFF287808F093FB28780AF0B3
+:100C3000EEFE00202071012060713921E1702070EA
+:100C400070BD70B5AF4D0446403D2878002803D1F3
+:100C5000AC48007E002804D0AD48A949183811F0EE
+:100C600030FFA94E2188B089884203D108F0E5FE03
+:100C7000022807D002202871012068713821E9700C
+:100C8000287070BD7F2070769F48E1782030C17356
+:100C9000A17881730020EEE710B59A4C403C207893
+:100CA000002807D19748007E002803D108F0C5FE30
+:100CB000032804D161209249C00011F002FF91493C
+:100CC00000202031C8712071012060713A21E1704B
+:100CD000207010BD70B58B4C0646403C2078002833
+:100CE00007D18848007E002803D108F0A6FE03281B
+:100CF00004D186488249783011F0E3FE814D2035D9
+:100D0000E87908280CD2E87910220001001968302F
+:100D1000314600F09FFDE879401CE871002000E0BA
+:100D200007202071012060713B21E170207070BDAF
+:100D3000F8B5744C0546403C2078002803D1714832
+:100D4000007E002804D072486D49443811F0B9FE85
+:100D5000A878002801D0012804D1A888FF21F53106
+:100D6000884204D96A4866493E3811F0AAFE664EA8
+:100D70002988B089884203D108F05FFE022807D095
+:100D800002202071012060713621E1702070F8BDD1
+:100D90005D48002720308772A988B185012131760E
+:100DA000A978012900D00021817257484030C07BCA
+:100DB000002801D009F016FB2771E3E770B5514C0C
+:100DC0000546403C2078002807D14E48007E002888
+:100DD00003D108F032FE002804D04D484849673856
+:100DE00011F06FFE287809F02EFA00202071012002
+:100DF00060713021E170207070BD70B5414C0546C6
+:100E0000403C2078002803D13E48007E002804D0D2
+:100E10003F483B490D3011F054FE287800280BD094
+:100E2000012809D0022807D06878402804D3384820
+:100E30003349143011F045FE284608F0F6FD00282D
+:100E400001D0002000E00C202071012060713421CD
+:100E5000E170207070BD70B52A4C0546403C20788A
+:100E6000002807D12748007E002803D108F0E5FDBF
+:100E7000002804D0264822495C3811F022FE297847
+:100E8000002914D00A2912D0142910D01E290ED0FE
+:100E900028290CD032290AD04B2908D0642906D041
+:100EA000FF2904D01A481649503811F00AFE284686
+:100EB00009F028FA00202071012060713321E170CF
+:100EC000207070BD70B50F4C0546403C207800285E
+:100ED00003D10C4A107E002804D00D48084975380B
+:100EE00011F0EFFD062229460A4811F04DFC0020C2
+:100EF0002071012060713221E170207070BD00000E
+:100F0000EC0A0000E002002098010020A30200008B
+:100F1000910500001D00002070B5F84C05462078B2
+:100F2000002804D120464030007E002803D0F44938
+:100F3000F44811F0C6FD00216956042914D0002997
+:100F400012D0081D10D0001D0ED0001D0CD0001DA9
+:100F50000AD0001D08D00A3006D0283104D0A120C4
+:100F6000E749C00011F0ADFDE74829780170012084
+:100F700060713121E1702070C0E710B5DF4C20783E
+:100F8000002804D120464030007E002804D067208D
+:100F9000DB49000111F095FD07F0C2FEE08007F08B
+:100FA00087FF207200202071012060710521E1700F
+:100FB000207010BDF8B5D14C07462034A07B2546E3
+:100FC0002035002805D1287E002802D1A8780028E5
+:100FD00004D0CC48CA492A3811F073FD08F02DFD21
+:100FE0001026022822D1C9483988808988421DD11B
+:100FF000C249483908460A7F6038807A002A03D0FF
+:1010000080070CD40C200CE0800708D40620087759
+:10101000BE484030C07B002801D009F0E3F92E76AD
+:101020000020E07326740120A073F8BD0220F8E7C9
+:1010300010B5B24C2078002804D120464030007E04
+:10104000002804D0AF48AE493C3811F03AFD0020EA
+:1010500020710E20A0700F20E070FF20A0710020F2
+:10106000C0432081AA480178A1728188A18140886B
+:10107000E08101206071207010BD10B59F4C207878
+:10108000002804D120464030007E002804D0DB2018
+:101090009B49800011F015FD0821A01D0EF082FD76
+:1010A00000202071012060712B21E170207010BDA3
+:1010B00070B5924D04462878002804D12846403067
+:1010C000007E002804D0B7208D49C00011F0F9FC43
+:1010D0008E4810222146303800F0BCFB8B4810228D
+:1010E000A118203800F0B6FB884830380EF061FEB9
+:1010F0008649102210392C46A81D00F0ABFB0020B9
+:1011000020710E20A0702A20E070012060712070F4
+:10111000F4E6F8B5794C05462034A07B2646203607
+:10112000002802D1307E002804D076487449DC388B
+:1011300011F0C7FCA978052912D0132910D0142961
+:101140000ED015290CD01A290AD0292908D03D29FA
+:1011500006D03B2904D06B486949D43811F0B1FC62
+:1011600028886C49884204D966486549CB3811F013
+:10117000A8FC08F062FC0C212827022809D163484A
+:101180002A888089904215D15C484838027E002A1E
+:1011900001D0E17310E0A97841760121017637761C
+:1011A0000020E07359484030C07B002804D009F08B
+:1011B00019F901E00220E07327740120A073F8BD43
+:1011C00070B54E4C05462078002804D122464032A6
+:1011D000107E002804D083204949C00011F071FC22
+:1011E0004648294660300622054611F0CDFA012016
+:1011F000A8710021217160711721E17020707DE6D6
+:10120000F0B5414F85B0403F3D7A06463B480078F7
+:10121000002804D13846A038007E002803D0384981
+:101220003D4811F04EFC3078002806D0012804D04B
+:101230000D203349800111F044FC082D39D2324889
+:1012400020380190C469307800282CD0012804D0BF
+:1012500031482B490F3011F034FC29460831012068
+:10126000884004430120A84020430090B179234CDA
+:1012700008027279690009191043FF310131888130
+:10128000B01C11F0E2FA717800020843A9000919B4
+:10129000C031C862387A401C387201990098C86120
+:1012A0000020207108E0294608310120884084434D
+:1012B000D8E7124807210171012110480B22417122
+:1012C000C270017005B0F0BD10B50C4C207800283C
+:1012D00004D120464030007E002804D00E48084942
+:1012E0000E3811F0EEFB11F0FFFC00202071012000
+:1012F00060710A21E170207010BD0000A002002082
+:10130000EC0A000006050000C00300209801002040
+:1013100024000020FF0E00003F03000010B508F07D
+:101320000AFF002803D0FC49FC4811F0CAFB07F073
+:10133000F5FE07F0D8FC0AF016FA002804D0F748AA
+:10134000F5490E3011F0BDFB07F039FF002804D03D
+:10135000F248F149123011F0B4FB11F0C5FCF0482D
+:1013600000240470FFF7DBF9EE480121047141719C
+:101370000222C2700170BFE770B5EA4D04462878BA
+:10138000002804D128464030007E002804D0EF20F9
+:10139000E149800011F095FB20781F2801D8601CDE
+:1013A00004D1DE48DC49DE3011F08BFB00202871CF
+:1013B0002078611C07F0BCFF012068712021E970D2
+:1013C00028709BE5F8B5D74C054620782646403670
+:1013D00000280CD1307E002809D108F02EFB00280F
+:1013E00002D1307C002807D0287800280ED0CB48C6
+:1013F000C949EB3011F065FB2878012806D0002898
+:1014000004D0C648C449F03011F05BFB0120607184
+:1014100028780027C44D01280BD0002008F074FE66
+:10142000002844D00C2020711B20E0700120207087
+:10143000F8BD0C20207107F003FF0028F4D0BA4853
+:1014400002210C300EF037FB002806D00F21A889AE
+:10145000090211F013FAA98100E0AF8101220321F2
+:10146000B14807F0E9FAB04808F051F8A88907F048
+:1014700059FC002803D1A849AC4811F022FBA889E7
+:10148000002107F053FE002804D0A848A249001DFF
+:1014900011F017FB317F708B08F0D9FE002804D0C3
+:1014A000A2489D49083011F00CFB2771BCE7277159
+:1014B000307C0028B8D1A889FFF712F9B4E770B5DD
+:1014C000984D04462878002804D128464030007EF4
+:1014D000002804D0954890493B3811F0F2FA207862
+:1014E0001F2801D8601C04D190488B493A3811F06C
+:1014F000E8FA002028712078611C07F02DFF0120F8
+:1015000068711A21E9702870F8E4F8B5854D044631
+:1015100028780C272E464036002806D1307E002839
+:1015200003D108F08AFA032804D16F207A49C00059
+:1015300011F0C7FA6079002801D001282FD1A079D5
+:10154000002801D001282AD1A07B002805D001283D
+:1015500003D0022801D0032821D1607B40071ED090
+:10156000618801208003814202D82288824201D909
+:1015700020790CE02079002804D0022805D0032827
+:1015800003D004E0202904D209E0A02A01D20128D6
+:1015900005D12088884207D92079012804D06348E2
+:1015A0005D495F3811F08DFA20887083207930779B
+:1015B0006079002802D0012803D00CE05C4A0021A9
+:1015C00005E0584A60329079002804D00121204675
+:1015D00007F03AFE074601202F7168711821E97063
+:1015E0002870F8BD70B54F4C05462078002804D10E
+:1015F00020464030007E002804D04C484649B63092
+:1016000011F05FFA08F019FA0C2102280ED14648B1
+:101610002A8883899A4219D10246C032137F002B4F
+:1016200004D1807E0E2803D00F2801D0217103E061
+:1016300005201077002020710E20A0702E20E07071
+:101640002888E08001206071207057E40220F2E7D2
+:1016500070B5344C05462078002804D1204640302F
+:10166000007E002804D031482B498A3011F029FA35
+:1016700008F0E3F90C2102280ED12B482A8883892F
+:101680009A421FD10646C036327F002A04D1807E9E
+:101690000E2803D00F2801D0217109E02148102223
+:1016A000A91C1E3811F070F804203077002020713A
+:1016B0000E20A0702D20E0702888E080012060714D
+:1016C00020701BE40220F2E710B501780B0011F046
+:1016D000FDFA3C90904590906590909090484B908A
+:1016E00090905E619090909090904F3590393D90A1
+:1016F00090909041909090909090905390575B90E4
+:101700001F319078686C7074907C90878B84809087
+:10171000801CFFF79DFF6AE0EC0A0000DF0200007A
+:10172000C0030020A002002098010020E90300006F
+:101730001D000020801CFFF755FF58E0801CFFF7BC
+:10174000E4FE54E0801CFFF7BAFE50E0801CFFF777
+:1017500039FE4CE0801CFFF70FFE48E0FFF7DEFD8E
+:1017600045E0FFF7B1FD42E0801CFFF749FD3EE098
+:10177000801CFFF725FD3AE0801CFFF7CAFC36E02D
+:10178000801CFFF795FC32E0FFF777FC2FE0FFF7B6
+:101790004FFC2CE0801CFFF70DFC28E0FFF7EDFB71
+:1017A00025E0801CFFF7B8FB21E0801CFFF78AFBD7
+:1017B0001DE0801CFFF74FFB19E0801CFFF71DFBAD
+:1017C00015E0801CFFF7FAFA11E0801CFFF7B0FA71
+:1017D0000DE0801CFFF77EFA09E0FFF75DFA06E0F6
+:1017E000801CFFF72EFA02E0801CFFF70DFA0120A3
+:1017F00082E5002080E510B51D491E4811F061F911
+:101800007AE570B51D4A012411461B4D4031030095
+:1018100011F05CFA05191C1C04191C00012200219E
+:10182000154807F009F91548002148380177417734
+:10183000C03808F068FD002804D00E480C49D330A9
+:1018400011F03FF964E40C74556561E46D200849BA
+:101850000001F5E730B5134606E0CC18203CE47FE4
+:10186000D51A44555B1EDBB2002BF6D130BD00000B
+:10187000EC0A0000CA05000098010020A002002028
+:1018800010B5030011F022FA070805080B0B0E0E25
+:10189000110003F0FAFF10BD01F0BAFF10BD0BF00C
+:1018A0009BFF10BD0DF004FE10BDFF20F8A17D30A0
+:1018B00011F007F910BD7FB5F94AFA4C51689268EA
+:1018C0000192009120700823F74A1946F7480EF05C
+:1018D00093FB0025F6480EF0ADFB6D1CEDB2072D15
+:1018E000F8D3F1490320803140020BF0C7FF0028F4
+:1018F00003D0E7A1912011F0E4F81E220221ED4867
+:101900000AF077FBEB481E22032110300BF0EBF8B6
+:10191000E8480722342174300AF0C4FAE5484C2123
+:10192000283010F090FFE3496A46743108464C387D
+:101930004164FF317B31816401211172039002F017
+:1019400016F902A80CF0CCFA002803D0D0A1A520EB
+:1019500011F0B7F8D54802222421A8380AF0A2FADB
+:10196000D24802222C215C380AF09CFAD2490B2082
+:101970000DF08AFE002803D0C5A1B22011F0A1F815
+:1019800003F070FF03F076F904F0D6FD6B46CB4A06
+:101990000821CBA002F04BF8002803D0BCA1B9204D
+:1019A00011F08FF8012005F0C8F8002803D0B8A185
+:1019B000BB2011F086F87921C900C44810F043FF1C
+:1019C000C249B74A0020135C0D18401CC0B2EB702E
+:1019D0000428F8D3002060606070A0707FBD70B5EF
+:1019E000BB4E0546706A94B00C46401C04D1B06AE8
+:1019F000C0430004000C0BD0306AC007C00F287031
+:101A0000706A10F033FFB06A2071000A607113E051
+:101A10002B206946087009A968460AF089FA00284F
+:101A200003D09BA1DF2011F04CF801202870062282
+:101A30000AA9204610F0A8FE2878002815D0607961
+:101A4000C0210843607117206946087000A806226B
+:101A50002146023010F098FE09A968460AF068FA9B
+:101A6000002816D08AA1F42011E0322069460870BF
+:101A700000A806222146023010F086FE09A9684619
+:101A80000AF056FA002804D0FF2081A1013011F09D
+:101A900018F814B070BDF0B58D4C0646206895B0AE
+:101AA0000D463746401C0837002808D16068401CA6
+:101AB00005D1A068401C02D1E068401C11D020680C
+:101AC000314610F0D3FE6068311D10F0CFFEA068E3
+:101AD000394610F0CBFEE06831460C3110F0C6FEFE
+:101AE00025E02B206946087009A968460AF020FA0B
+:101AF000002804D0FF2066A1203010F0E2FF082269
+:101B00000AA9304610F040FE2B206946087009A94A
+:101B100068460AF00DFA002804D0FF205CA12730A7
+:101B200010F0CFFF08220AA9384610F02DFE2069D8
+:101B30002E46401C0836002808D16069401C05D19B
+:101B4000A069401C02D1E069401C12D020692946DE
+:101B500010F08CFE6069291D10F088FEA0693146E6
+:101B600010F084FEE06929460C3110F07FFE15B0BC
+:101B7000F0BD2B246846047009A90AF0D9F90028A1
+:101B800004D0FF2042A1453010F09BFF082209AF8E
+:101B90000AA9284610F0F8FD6846047009A90AF061
+:101BA000C7F9002804D0FF2039A14C3010F089FF7C
+:101BB0000822391D304610F0E7FDD8E710B50021A6
+:101BC00008460EF0ECFA002101200EF0E8FA0021A0
+:101BD00002200EF0E4FA002103200EF0E0FA0021CA
+:101BE00004200EF0DCFA002105200EF0D8FA10BD1A
+:101BF00010B5364CA0780A2804D3FF2024A19630D3
+:101C000010F05FFF20786021484300190830002160
+:101C100001704178E722C908C900C91C1140417010
+:101C2000204A0121517010BD70B51E4C607800280B
+:101C30000ED0264800250178491CC9B201700A2936
+:101C400000D105708178491C81700EF072FB6570BF
+:101C500070BD70B5134C05466068002804D0FF20A5
+:101C60000BA1BF3010F02DFF656070BD70B50D4E3B
+:101C7000164DFFF7BDFF7168044600292AD0602287
+:101C8000FEF7A2FAFFF7D0FF00207060F1E7000036
+:101C90007372635C686F73745F636F72652E630049
+:101CA000F82C01002C000020C40300206C1100203F
+:101CB00081180000440A0020141000203412000093
+:101CC0006E52463531383232000000004C0C002094
+:101CD000800000102879002852D0FE480AF0F2F85F
+:101CE0006060002804D1FF20FB49DD3010F0E9FEE0
+:101CF00060680AF045F9002810D0204601F0A5F8E8
+:101D00006078010707D5C008C000401C60702879C2
+:101D1000401E287126E0EF48616829E0ED486168BF
+:101D20000AF0D9F8687900282AD0EA484C380AF035
+:101D3000C9F86060002803D1E749E84810F0C1FE07
+:101D400060680AF021F9002815D0204603F0DCFD78
+:101D50006078010709D5C008C000801C60706879F0
+:101D6000401E6871FFF760FF83E7DA4861684C380E
+:101D70000AF0B1F87DE7D74861684C380AF0ABF853
+:101D800070BDF7B505460078002700090C463E46B1
+:101D9000062804D0D148D049223010F092FE287A8B
+:101DA00000280ED0012814D0CC48CB49433010F085
+:101DB00088FE0298002C068001D0278066800020D3
+:101DC000FEBD02270926002C0ED0A889A080A87B82
+:101DD00008E003271426002C06D02869E060A88AB2
+:101DE0002082287B2072E4E702980680E7E770B53E
+:101DF0000E4600211C4619801546030010F066FFB0
+:101E00000723050B1711231D2300224629463046C0
+:101E100003F046FD70BD22462946304601F09BFA8C
+:101E200070BD22462946304604F081FA70BD224634
+:101E30002946304602F052FF70BD22462946304600
+:101E4000FFF79FFF70BD4D20A349C00010F039FE81
+:101E5000032070BD01469F4810B54C380AF03BF88E
+:101E60009F494879401CC0B24871012803D19D4860
+:101E7000007800F0C7FB10BDF8B505460720400705
+:101E80000F460A18012189038A4209D2002D02D087
+:101E90002818884204D2E81C80088000A84201D09B
+:101EA0001020F8BD8E488178002911D03988009122
+:101EB0004178602251430C18083420783B460007D3
+:101EC000000F00222146FFF792FF060004D015E024
+:101ED000002038800520F8BD002D13D039880098E7
+:101EE000814201D90C260DE020783B460007000F07
+:101EF0002A462146FFF77BFF060005D00C2E01D0B5
+:101F0000002038803046F8BD754D6878401CC0B25E
+:101F100068700A2801D100206870A878401EA87057
+:101F200061784807400F022810D00128EAD169489B
+:101F3000616809F0D0FF2879401CC0B228710128DF
+:101F4000E0D16848007800F05DFBDBE7C806D9D433
+:101F50006068FFF77FFFD5E770B504466248164614
+:101F60000D46814204D15D485B49DB3010F0A9FD8C
+:101F7000012E05D059485849EB3010F0A2FD70BD34
+:101F80005848012181706620207000202072A581B0
+:101F9000A17370BD70B516460D46040001D1FFF760
+:101FA00027FE662101700121017229680161A9885B
+:101FB00081820673002C01D1FFF736FE70BD072128
+:101FC0004907012241189203914201D31020704722
+:101FD0000721017000207047052210B5920390423E
+:101FE0000ED301239B04C21A404B9A4208D3404BA4
+:101FF000984205D2072252078A18DB139A4201D36E
+:10200000102010BD0DF079FB10BD052310B59B030A
+:1020100099420ED301239B04344CCB1AA34208D31C
+:10202000334B994205D2E3020124D318A403A342FF
+:1020300001D3102010BD022803D0102801D00920A0
+:1020400010BD0DF080FB0028FAD0052010BD70B542
+:1020500005239B03984212D301239B04234CC31AEC
+:10206000A3420CD3224B984209D2E4020D19DB1390
+:102070009D4204D2002A04D014199C4201D310209E
+:1020800070BD0DF086FB0028FAD0072070BD10B59A
+:1020900004460720400701212018890394B0884294
+:1020A00002D3102014B010BD01F0ADFD002801D006
+:1020B0001120F7E70F2008A9087369460BA809F05B
+:1020C00037FF0028EED16846007A207068464089C4
+:1020D00060800FE010110020901C0000FF01000044
+:1020E0004C0C00202C000020FFFF00000000FC1F13
+:1020F0000040002068468089A0800020D2E710B50B
+:1021000094B0044601F07FFD002801D01120C9E7FA
+:10211000002C01D00720C5E7392168460170002155
+:10212000817009A909F004FF002803D01549164859
+:1021300010F0C7FC0020B5E770B5144C0846A17834
+:10214000002913D000280FD0072252070123851839
+:102150009B039D4203D20568AA189A4201D310201E
+:1021600070BD8288002A03D0012903D0082070BDE9
+:10217000092070BD04F042FA0028FAD10021A170B4
+:1021800070BD0000901C0000790300002C000020AE
+:1021900010B56038030010F099FD07050A0E131AF8
+:1021A00021252C0005C91146FFF766FE10BD086801
+:1021B000FFF705FF10BD05C91146FFF70DFF10BD64
+:1021C0004B6808788A681946FFF71FFF10BD4B68F7
+:1021D0008A6808681946FFF73AFF10BD0868FFF7DC
+:1021E00056FF10BD08884A6880B21146FFF7A4FF69
+:1021F00010BD012010BD10B56C2801D0012010BD0C
+:102200000878FFF77CFF10BD10B5EFF31080C4070E
+:10221000E40F72B6D6484178491C417040780128D5
+:1022200001D10EF0ABF8002C00D162B610BD70B534
+:10223000CF4CE07800280AD10125E570FFF7E4FFD4
+:102240000EF0A4F8002804D000200EF077F800204B
+:1022500070BDC84865714560F9E770B5EFF310804F
+:10226000C507ED0F72B6C24C6078002803D1C2A139
+:102270008F2010F026FC6078401E60706078002887
+:1022800001D10EF07FF8002D00D162B670BD10B5FF
+:10229000B748C178002904D000214171C170FFF70F
+:1022A000DCFF002010BD10B504460EF06FF8B049F9
+:1022B000C978084000D001202060002010BDF8B58A
+:1022C0000246AB4C0026A6710820042101251027E8
+:1022D000130010F0FBFC0D080A0C0E101214161E51
+:1022E000262123252800257122E0022001E021710A
+:1022F0001EE020711CE027711AE02020F9E701267A
+:1023000016E0FFF781FF0EF041F80028FBD002260F
+:102310000EE02171A5710BE02771FBE7202000E0A2
+:1023200040202071F6E7FF2093A17E3010F0C9FB1A
+:102330000EF038F8002809D00EF03AF8B04205D176
+:1023400030460EF038F80028FAD024E0012080074B
+:10235000C5608D4A002151608C4A9661854B0222EE
+:102360005A6085608A4803690569DB43DB06DB1731
+:102370005B1C10273D430561834D00E020BF6F6863
+:10238000002FFBD0002B03D1076910239F43076167
+:10239000784882606960A07900280CD00DF0F6FFC3
+:1023A00005460DF053FF7B4A002D02D0A260E0608D
+:1023B00001E0E260A060002E01D100F0B1F8F8BDAC
+:1023C00010B504460DF0E8FF002805D0684901204B
+:1023D000C8704A78521C4A702046FFF770FF10BD43
+:1023E000F8B5694FB8680025012802D1BD600DF02D
+:1023F000A5FF7868012800D17D60386801265C4C13
+:10240000012814D13D606079002803D000200DF030
+:1024100095FF65712078002809D00DF0B7FF0028DE
+:1024200005D05948C038866300060661A670386931
+:1024300001282CD13D6100F068F801208007466139
+:10244000A079002815D00DF0A1FF00900DF0FEFE40
+:102450000099002901D0E16800E0A168411A022931
+:1024600001DA8A1C13DC0099002901D0E06000E049
+:10247000A060FFF7C9FE0DF089FF002806D0424892
+:10248000C038866300060661A67000E02670F86812
+:10249000012819D100F039F800F037F800F035F8CC
+:1024A000A078002804D1FF2033A1053010F009FBEB
+:1024B000FD60A5702570FFF7D0FE0DF042FA0028F0
+:1024C00002D03148C038C663F8BD10B5284CE0785A
+:1024D000002801D10DF056FF01208107886100F02E
+:1024E00014F8A07800280BD0274CE068002803D10E
+:1024F0000DF061FF0028F8D10020E06000F005F841
+:1025000000201C49C043886010BD08B550206946B2
+:1025100008806A461088411E11800028F9D108BD44
+:10252000F8B5144819278760174900200860C8606B
+:102530000DF02CFFBD0701240D4E002805D01248D8
+:10254000C03884632C61B47000E03470FFF75CFE27
+:10255000084847600D4930798863FFF7D6FFAC61C2
+:10256000FFF7D3FF0849002008616C61F8BD000047
+:1025700034000020000300407372635C736F635F7C
+:10258000636C6F636B2E6300000100400005004028
+:1025900000ED00E0FFFFFF7F01203F49400608609B
+:1025A0003E4908603E490A68FF231B029A43831292
+:1025B0001A430A60384980390860704710B50246EE
+:1025C0000420384904E0C3005B181B79002B0AD0B3
+:1025D0000346401EC0B2002BF5D133A1432010F0BA
+:1025E00070FAFF2010BDC300CA50002259184A716A
+:1025F0008A7101220A7110BD2A4A0021C000801888
+:102600000171704710B50446042803D326A1522057
+:1026100010F057FA2348E1000C182079012803D064
+:1026200021A1532010F04DFA6079A179401CC0B26D
+:10263000814200D060710120174940068031086056
+:1026400010BD70B5164800680004800F022803D042
+:1026500015A1692010F035FA124E194C0325207887
+:10266000C10088190279012A07D1427983799A42F7
+:1026700003D042798271705880472078401CC0B2E4
+:102680002070042801D30020207028466D1EEDB272
+:102690000028E4D170BD000080E100E080E200E0AD
+:1026A00018E400E08C1100207372635C736F635F49
+:1026B0007369676E616C6C696E672E630000000061
+:1026C000440000208107C90E002808DA0007000F27
+:1026D000083880082C4A80008018C06904E080080F
+:1026E0002A4A800080180068C8400006800F7047A2
+:1026F00010B50D20FFF7E6FFC4B20420C043FFF77A
+:10270000E1FFC0B2844203D021A11A2010F0D9F910
+:1027100010BD0121234A48031060234B00221A6098
+:10272000224A5160224A1060224A11601D498039B4
+:102730000860704701211B4A480310601D4A516020
+:10274000194A002111601A490860704710B51649EE
+:102750000868012804D00EA1562010F0B2F910BD6F
+:10276000154880680022C0B20A600DF041FA10BD21
+:1027700010B50D4801680029FCD0FFF7E7FF0120E4
+:102780000B494003086010BD00ED00E000E400E0EC
+:102790007372635C736F635F68616C5F726E672EE8
+:1027A0006300000080E100E000D1004000D3004061
+:1027B00080E200E000D0004000D5004030B40121AC
+:1027C000BB48C9020160CD1005604A030260B948E8
+:1027D00003681B021B0A036004680023240A240206
+:1027E0000460B5480468240A24020460B348012444
+:1027F00044608460B24C23606360A360B14B196095
+:102800001D601A60B04B19601A600121016030BC74
+:10281000704710B40121A648CC0204600A0202608D
+:102820000B060360A54841608160A549002008604F
+:1028300048608860A34804600260036010BC704771
+:102840000121A048C9020160C91001607047002839
+:1028500005D0012805D0022805D19C4870479C4826
+:1028600070479C48704710B59BA18B2010F029F948
+:10287000002010BD70B500219E4C9F4D9F4A904B8B
+:10288000002808D001281DD0022822D092A1B32010
+:1028900010F017F970BD01200004A060A86011605D
+:1028A0001960974B42109A60964A9060804A0012D5
+:1028B0001060954801608648016094480160944822
+:1028C000017070BD01204004A060A8605160596093
+:1028D00070BD01208004A060A8609160996070BD07
+:1028E000F8B59446834A844D00240127744E00288D
+:1028F00008D0012836D0022844D077A1E82010F073
+:10290000E0F8F8BD891E0902090A01200004906060
+:1029100034606860794A1160012B21D000217C4A23
+:102920007C4B517061463D31DC63DF637A4B5C6008
+:1029300002249C6004241C61734B196073490F606E
+:10294000604B891519606F4B58605F48016074488F
+:102950007249C16086606A49600348601770F8BDBB
+:102960000121DCE701205B4E40046E4F012B04D1B6
+:102970003460506068603960F8BD906034606860B1
+:102980003960F8BD0120514E8004674F012BF4D10E
+:10299000EEE766484068704770B5494D28680026E4
+:1029A000544C012806D1A068C00303D501200004BF
+:1029B000A0602E606868012809D1A068800306D550
+:1029C00001204004A0606E6001200EF05BFAA86850
+:1029D000012809D1A068400306D501208004A06029
+:1029E000AE6002200EF04EFA70BD10B5484908786E
+:1029F000002818D00120424AC0039060414A40009C
+:102A000090602B4A001210603F4A00201060304A4C
+:102A100010603E4A106008704A78002A02D0487060
+:102A20000EF030FA10BD0320FAE7012040490006FD
+:102A300008607047012023490006086070470120A4
+:102A40003B4940050860704701201E494005086069
+:102A5000704730490020C8637047410A354AC005B5
+:102A6000C00D5043801C5143400A0818704710B4F1
+:102A7000314C430B63431B0C5C020C602D4C6343D5
+:102A8000C31A2E485C0258432A4B400D4343E31AB5
+:102A90000124DB0324041B191B1613700A68101889
+:102AA000086010BC704710B50EF0B6FA10BD0000FB
+:102AB00080E100E008E400E018E400E000B000403D
+:102AC00040B1004080E200E000E100E048B1004099
+:102AD0004081004044B100407372635C72656D5F79
+:102AE00068616C5F6576656E745F74696D65722E82
+:102AF0006300000000B3004040B3004040B5004018
+:102B000000F5014000830040408500400082004005
+:102B100045000020C08F004000850040008000403C
+:102B200080F5014044B5004048B5004000B5004084
+:102B300000E200E0093D0000378600006F0C010054
+:102B400010B50EF055FA10BD012001218140064A52
+:102B5000116000BF00200549C8630120C8637047A9
+:102B600000200249C863704780E100E0C01F0040B8
+:102B700070B5FF4D044629680300A03110F0A6F897
+:102B800008053E08080E1D2C3242FAA1D22033E07F
+:102B9000887F012832D0F7A1D8202DE001F058FE1F
+:102BA00005282BD001F054FE062827D001F050FE56
+:102BB000072823D0EFA1DB201EE001F049FE032807
+:102BC0001CD001F045FE062818D001F041FE072870
+:102BD00014D0E8A1E0200FE0887F05280ED0E5A101
+:102BE000E52009E001F034FE052807D001F030FEB1
+:102BF000062803D0DFA1E8200FF063FF2868A0308B
+:102C0000847770BDDBA1EC20F6E7D949C1220968C1
+:102C1000525CD206920F05D1A0318A8A824201D13C
+:102C2000887D70470020704770B5044611202070E1
+:102C30000021CF4D61702968C0318978002908D002
+:102C400003290ED0042910D0FF20CAA116300FF09E
+:102C500038FF20780009012802D92868807E60703A
+:102C600070BD0007000F203002E00007000F303079
+:102C70002070EEE730B50388C249C34C8B4202D0C6
+:102C80009A1FA2421ED242888A4202D0951FA542B4
+:102C900018D2934216D883887D24E400A34211D829
+:102CA000C088884205D0B84D04460A3C2D1FAC426E
+:102CB00008D2884208D08A4206D05B1C5A43C00022
+:102CC000824201DD072030BD002030BDFFB500226B
+:102CD000099B002802D0994205DC5CE0002902D162
+:102CE000002004B0F0BD0920FBE7845C002C12D06A
+:102CF00085186F780D2F4CD010DC3B000FF0E6FFED
+:102D00000A421B2A2A303032323A3A42835C002B84
+:102D10003FD1521CD2B28A42F8DBE1E7122F31D008
+:102D200004DC0E2F35D00F2F2CD132E0142F11D010
+:102D3000152F27D116E0022CD5D1AB78039C072B99
+:102D4000237001D25B0701D40A20CAE7029B012449
+:102D50001B7814E0E343DB0708E0012C08D011E006
+:102D60000620BEE70F2523072D075B19002BF4D0A3
+:102D70003046B6E7029B1B789C070AD40224234303
+:102D8000029C2370835C521C9A18D2B28A4204DDE2
+:102D9000A9E70B20A5E7192676028A42A5DB9FE763
+:102DA00005E00278401C002A01D0002070470A4646
+:102DB000491E89B2002AF4D10120704730B56C4D0C
+:102DC0000021286887B0C943A0308182002484751F
+:102DD000214606200DF0E3F9002105200DF0DFF972
+:102DE000002102200DF0DBF90120FFF7C1FE286869
+:102DF000BF210C54C0300470012069460870684639
+:102E00000BF08FF807B030BD10B5594A94B0126876
+:102E1000A032927F042A0AD028236A461370508079
+:102E2000132906D03B2904D0072014B010BD082078
+:102E3000FBE71171104609A909F07AF8040002D1E4
+:102E40000420FFF795FE2046EFE7F0B59BB00400A5
+:102E500003D148A14D480FF034FE72202070606805
+:102E6000002701780826491F414D0B000FF02EFF67
+:102E70000F096ECBFB6E70F9F8AA6E6E6E6EF7F6E8
+:102E80006E002868A030807F032804D0972039A1E5
+:102E900080000FF016FE002108460DF080F96078E2
+:102EA00010233043607028680146C0314A781A43C5
+:102EB0004A7061688A783C2A45D08E880146012292
+:102EC000A0318A756268D2890A836268128A4A834D
+:102ED0006268528A8A838E8261680622C979C173C8
+:102EE0006168103008310FF04FFC0520FFF740FEFD
+:102EF0002868C2210F54017FFB2211400177B021C5
+:102F000009584A7A920892004A72C782304602F003
+:102F1000B5FC002804D01D4816A122300FF0D1FDC9
+:102F2000304601F0C7FE002804D04F2011A1C00098
+:102F30000FF0C7FD304603F00FFB002806D0134802
+:102F40000CA1273023E10120FFF712FE1BB0F0BDDA
+:102F5000878801F07DFC052820D001F079FC062847
+:102F60001CD001F075FC072818D001F071FC0FE0AF
+:102F7000480000207372635C6761705F636F726505
+:102F80002E630000FFFF00007B0C000053020000D6
+:102F9000042803D0FB49FC480FF093FD60783043D0
+:102FA00060702868C030417831434170FFF706FFF8
+:102FB000384602F068FC384601F082FE384603F0DD
+:102FC00001FBC3E701F044FC052810D001F040FCF0
+:102FD00006280CD001F03CFC072808D001F038FC92
+:102FE000042804D0E848E74913300FF06AFD606810
+:102FF000807902F000FD0028A8D06178314361702B
+:103000006168C880A2E701F023FC052810D001F018
+:103010001FFC06280CD001F01BFC072808D001F08B
+:1030200017FC042804D05520D649C0000FF049FDF4
+:103030006078304360706068C1882868A030018380
+:10304000616809894183616849898183002102207F
+:103050000DF0A5F82868A030C77777E70CE167E1A5
+:103060006FE070E0FFE701F0F3FB052810D001F0FE
+:10307000EFFB06280CD001F0EBFB072808D001F08D
+:10308000E7FB042804D0C048BE4935300FF019FDD5
+:103090002868BE21095C042993D0807D40063CD578
+:1030A000606802210C30FFF77BFE002835D0606895
+:1030B0000821001DFFF774FE00282ED02868014665
+:1030C00080310A6B527A920708D1C222125C002A20
+:1030D00008D1C28AD30505D5D20703D1C38A4022BD
+:1030E0009343C382C38A80229343C3822D236A46BB
+:1030F0001370A030808A5080CB698A694869096A58
+:1031000001AC0DC4049109A9684608F011FF00281C
+:10311000A3D09D489B49573039E062682868A421B4
+:1031200092890A5261680822091DA6300FF02CFB13
+:1031300010A806742868A630159014A80AF0F1FEAD
+:1031400004E70121817101F083FB052810D001F013
+:103150007FFB06280CD001F07BFB072808D001F08C
+:1031600077FB042804D0884886497B300FF0A9FCFF
+:103170002868BE21095C0429E2D061688A79002AA6
+:1031800002D08978002905D07F487E49E1300FF0D0
+:1031900098FCDBE6617831436170B0210958497AC7
+:1031A0008907890F01294DD1817D09064AD4017F04
+:1031B000490701D5042100E00321C03081702B2094
+:1031C0006946087009A9684608F0B2FE002804D0D4
+:1031D0006D486C4997300FF074FC69462868098D7A
+:1031E00001830E2210A90A7468491591027A0A70A7
+:1031F000024609324A600F320A61521D8A6010325B
+:10320000CA60133A4A618A328A61921CCA61423AA0
+:103210000A6210324A6210328A62403A8A63D21FCE
+:10322000CA63521C54300A64486414A80CF004F8B1
+:10323000022815D0002813D053485249BF300FF050
+:1032400040FC0DE0817D4906017F490701D504213D
+:1032500000E00321C0308170002106200CF09FFFA8
+:103260002868C18A0A0602D440229143C1828AB2E8
+:1032700080218A43C28269E62868A030807F0328C3
+:1032800004D041483F49ED300FF01BFC00210846B7
+:103290000CF085FF60781023304360702868014689
+:1032A000C0314A781A434A7061688A783C2A00D152
+:1032B00049E68E8801460122A0318A756268D2896A
+:1032C0000A836268128A4A836268528A8A838E827B
+:1032D00061680622C979C1736168103008310FF046
+:1032E00053FA0520FFF744FC2868C2210F54017FE0
+:1032F000FB2211400177C782304602F0BFFA002856
+:1033000004D0E3201F4980000FF0DBFB304601F0C2
+:10331000D1FC002803D01B491D480FF0D2FB3046DA
+:1033200003F01AF90028A6D019481649801C2EE788
+:1033300060783043607009E600290BD0888015481A
+:103340000068A030028BCA80028B0A81428B4A81BE
+:10335000808B88817047F7B5064600780C460027B9
+:10336000010982B03D4601296FD00A4800680090EB
+:10337000C03002296AD0072910D00A2967D0014934
+:103380000548DAE1742F0000860200000C120020CC
+:103390008F030000480000201105000071680A78C2
+:1033A000521F13000FF092FC0F09B054B0B02F5B06
+:1033B0005B47B0B0B0B0656FB0008A783C2A1BD0D4
+:1033C00010271625002C7DD08888A0807068A21D4B
+:1033D000C08920827068C089E0817068008A60823C
+:1033E0007068408AA082716808460831C07901F08F
+:1033F00034FA0020607375E019270725002CE2D00D
+:103400000021A17171E011270725002CDBD08988EC
+:103410000091A1807168F7228979A17141781140EA
+:103420004170009802F030FA009801F04DFC0098CD
+:1034300003F0D6F8ACE101270925002CC3D0888819
+:10344000A080706880792072A2E160E09DE178E060
+:10345000888812270E252146FFF76EFF98E118276E
+:103460000825002CAFD08888A080A01DFFF7DCFBCA
+:103470008EE11A270725002CA5D04888A080706807
+:103480000079A07184E18A783C2A32D01027162571
+:10349000002C98D08888A0807068C08920827068CD
+:1034A000C089E0817068008A60827068408AA0826A
+:1034B0007168607B497D40084000C907C90F084317
+:1034C000607300E036E17168C007497DC00F4908AC
+:1034D0004900084360737168A21D08460831C0792D
+:1034E00001F0BBF9FB480068C0304178EF22114081
+:1034F00031E119270725002C88D00021A1714278DD
+:10350000EF210A40427043E1F349F44815E1307A73
+:10351000012803D0F148F04917300EE112270E259B
+:1035200070892146FFF708FF002C87D0707840078C
+:10353000400F032888D1E7480068C0304178FB225B
+:10354000D5E7E4490968A031002C01D08A8AA2801D
+:10355000327A921E13000FF0B9FB073B4651EEDBA7
+:103560006B05EE0013270C25002C85D0F1688978B7
+:103570008907890F0129217A27D04908490021723A
+:10358000FD221140F268E32392785207D20F5200D5
+:10359000114321720022E2801940F3681B785B0717
+:1035A000DB0E19432172DF231940F3685B78DB07D8
+:1035B0009B0E194321726272F1680122C978A172CF
+:1035C00001781143F722114016E001221143D6E79A
+:1035D00015270C25002C8FD0F06806220068A11D4D
+:1035E0000EF032F8D4E016270725002C84D0317B6A
+:1035F000A1710178082219E00170C9E01427122591
+:10360000002C92D000980099C07BA21D103101F0CF
+:1036100024F9B089E081207C01210843F921084088
+:103620002074AC480068C030017802221143E3E7FF
+:1036300017273825002C7DD03221A01D0FF001F96D
+:103640000020A071207A03210843A24A2072116849
+:10365000FB260B7F30405B07DB0F9B00184320727B
+:10366000B0204058407A800751D0A07A8A7D400827
+:10367000D2074000D20F1043FD221040A0728B7D74
+:1036800030409B07DB0F9B00184308231843EF23B0
+:103690001840A0728A7DE07AD206D20F30409200A4
+:1036A0001043E072F72210408A7DD206D20FD2007A
+:1036B0001043E072088BA0812046102264310E3046
+:1036C0000FF062F88349A07F0968C0078A7EC00FA7
+:1036D00052001043A0770A7F400852074000D20FE3
+:1036E0001043A077084644304DC820344DC4303CC8
+:1036F0003D20405C224630323E3101F0AEF8754844
+:1037000000688030006B417A8908890041723FE08F
+:10371000327B022A14D017273825002C2ED0012AFC
+:103720001BD0032A1BD0042A1CD0052A1AD06A49B0
+:103730006A4801E022E024E0B1300FF0C2F927E04E
+:1037400019270725002C19D0898AA1800121A17190
+:1037500041784908490041701AE0012000E0022048
+:10376000A07106E0707B0007000F8030A071052A71
+:1037700002D00020E0710BE00120FBE704980580F7
+:103780000CE09F205449C000D7E7317A002908D0C7
+:103790000498002C058001D027806580002005B0AA
+:1037A000F0BD19270725002CE8D00021C943A180CE
+:1037B0000021A1714178FD2299E600B595B001F094
+:1037C00047F8022803D001F043F8032819D11B2140
+:1037D00008A801730021817369460BA808F0A8FBB3
+:1037E000002804D1684640781B2802D0032015B079
+:1037F00000BD002108460CF0D2FC68468078002805
+:1038000001D00820F3E70120FFF7B2F90020EEE72E
+:1038100070B500252F4C002807D0022817D0A9200A
+:103820002D49C0000FF04DF970BDFFF7C6FF00280D
+:10383000FAD1FEF7DDF9222101700572FEF7F4F9E5
+:103840002068C030417802221143417070BDFEF7FC
+:10385000CFF912210170012101722168A0318A8AF9
+:103860004281CD77FEF7E0F92068C030417804222C
+:10387000EAE770B50D46040004D155201649000151
+:103880000FF01FF92078012804D0134914480FF0D5
+:1038900018F970BDA18813480E4E814209D1E28803
+:1038A000824206D130681321A030808AFFF7ACFA3B
+:1038B00070BD814202D1E088002815D01220287006
+:1038C000687808210843687007CC083507C50021CF
+:1038D00011E0000048000020742F00003D040000AB
+:1038E0006E050000FFFF0000002278231146022031
+:1038F0000CF0B3FB02213068A030C17770BDF748EF
+:103900000068C0308078704738B5F44C05460178BF
+:1039100020680B00A0300FF0D9F909863506067132
+:1039200013365A758600807F052803D0EC49ED4890
+:103930000FF0C7F820680422017F114301775DE092
+:10394000A98800291ED0808AE74988421AD0A86831
+:10395000002804D1E348E2490F300FF0B2F8A8681C
+:1039600006220A38A86000902068AB88A030808AC0
+:10397000042101F0B7FE002804D0DA48D8491430F9
+:103980000FF09FF838BD2979807F02290BD00428D9
+:10399000F8D0284600F072FF20681321A030808AFA
+:1039A000FFF732FA38BD062804D0CE48CC491E3085
+:1039B0000FF087F8284600F061FF20680122C03030
+:1039C0004178114341700520FFF7D2F838BD00F06F
+:1039D0003FFF052808D000F03BFF042804D0C14871
+:1039E000BF493C300FF06DF80ECDC0480361C26096
+:1039F0008160A2210170FEF72CF938BD284600F045
+:103A00003DFF38BD00F024FF052808D000F020FF5E
+:103A1000062804D0B348B2494D300FF052F80720C1
+:103A2000FFF7A6F8EAE7AF48AD495630A8E7FFB57B
+:103A300093B00124684603218470C9021D460180A9
+:103A400009F063FF00226946012003F027F80646CB
+:103A500009F05FFF002E5CD1684615218470490291
+:103A6000018000271C2101A808970EF0ECFE012020
+:103A70000146103108A801700020014608A84170D5
+:103A80008178F9200140891C214308A8817068468B
+:103A9000017902263143017114998185C7851F215F
+:103AA000018608A80A9013980D906846099009F0BD
+:103AB0002CFF0EAA09A901A802F0D4FD074609F0BF
+:103AC00028FF002F02D0384617B0F0BD834F68465C
+:103AD0003968008F4880684684708549018008A84D
+:103AE0008078F9210840801C4108490008A88170AD
+:103AF00068468685068615A80D9009F006FF0EAA71
+:103B000009A901A802F0AEFD064609F002FF002E49
+:103B100001D03046D8E768463968008F88807449FC
+:103B200068468470C91C0180298810A801806988B2
+:103B30004180A9888180E988C18008216846818503
+:103B4000018610A80D9009F0E0FE0EAA09A901A8AF
+:103B500002F088FD044609F0DCFE002C01D020466E
+:103B6000B2E768463968008FC8800020ACE770B5BE
+:103B700004465E48C421A8300EF065FE5B48574DF0
+:103B8000A83000212860C943A030818200268675B4
+:103B90000120FEF7EDFF2868BF210E5401460931D0
+:103BA0000830FDF71CFF296808462D311D30FDF750
+:103BB00072FF002C26D02868B0210C501E21A18154
+:103BC000217A8F2211401031217201461831216172
+:103BD00009396161491CA1610839E161491C21620F
+:103BE0009B31616287392160103161601339E16274
+:103BF000091F21637E3121643039616310318430C3
+:103C0000A163E06370BD35480068A030807F042860
+:103C100001D0002070470120704730B504460520D0
+:103C2000800395B0844208D3012080043149201AD2
+:103C3000884202D33048844202D3102015B030BDF0
+:103C400026490868A030807F012801D00820F5E7C8
+:103C5000FFF7D9FF002801D01120EFE70D68012000
+:103C600028722278002A08D024491720012A0AD075
+:103C7000022A1FD0032A25D121E03220694608708C
+:103C80000020287205E0A2799209032A1AD1694618
+:103C9000087000A80622611C02300EF075FD28464F
+:103CA0000622611C09300EF06FFD09A9684608F074
+:103CB0003FF9C3E7A2799209012A03D1E7E7A27984
+:103CC0009209E4D00846B9E707214907012210B557
+:103CD00041189203914213D3102010BD48000020D8
+:103CE000742F000085050000FFFF0000AC110020CC
+:103CF000012A00000000FC1F0040002002320000EA
+:103D0000F949024609680B7A0931184600F0A5FD09
+:103D10000020E2E7FFB599B005460020694608712A
+:103D2000087208A9087408751E461446052001216A
+:103D300080038904ED4AEE4B002D06D085420DD359
+:103D40006F1A97420AD39D4208D2002C09D08442B0
+:103D500004D3601A904201D39C4202D310201DB0BC
+:103D6000F0BD2846204318D01F270CAB01AA0097AE
+:103D700028461A99FEF7AAFF0028F0D10DAB02AA37
+:103D8000314620460097FEF7A1FF0028E7D168469C
+:103D9000007AC10703D00A20E1E70720DFE78007A8
+:103DA00005D568460079800701D50B20D7E7FFF7D6
+:103DB0002AFF002801D01120D1E703AF002D0FD03A
+:103DC0001A20694608731A9888732946F81C1A9AAB
+:103DD0000EF0DAFC0EA903A808F0AAF80028BED15C
+:103DE000002C0ED02021684601738673324621468E
+:103DF000F81C0EF0C9FC0EA903A808F099F80028D9
+:103E0000ADD1B94908A80968007C08700020A6E770
+:103E1000F0B5044695B0002014900520800384423C
+:103E200075D301208004B14F201AB8426FD3B04837
+:103E300084426CD2207801280CD105216068890366
+:103E4000884264D301218904411AB9425FD3A84949
+:103E500088425CD200F0FCFC022809D000F0F8FC9B
+:103E6000032805D0A048BE210068095C012902D0C2
+:103E7000082015B0F0BDC121095CCA06920F03D11C
+:103E80008A0701D4490701D51120F2E721780129D9
+:103E900015D0228A974D1346203BAB4272D202299D
+:103EA00001D0032901D1A02A6CD3012907D00278BF
+:103EB000D20704D0628A002A64D0B42A62D80029CA
+:103EC00006D0012908D0022904D003295AD110E0D4
+:103ED000002512E0022510E061680125097800291B
+:103EE0000BD0012907D0022905D0032903D082482D
+:103EF000BFE7032501E001211491217A002907D0B1
+:103F0000012907D0022907D003293BD106E037E079
+:103F1000002604E0012602E0022600E00326002D30
+:103F200001D0022D3FD1002E3DD0E168002929D0DB
+:103F30000A79002A27D0082A24D80B7B9C46082B14
+:103F400020D8002A0CD005230A689B039A4217D375
+:103F500001239B04D31ABB4212D3654B9A420FD262
+:103F60006246002A13D0896805229203914207D342
+:103F7000012292048A1ABA4202D35D4A914206D3C0
+:103F8000102076E75EE00B7B002B5BD0D5E7017855
+:103F9000890702D05848401E6BE7022D03D1022E3C
+:103FA00050D0032E4ED0182269460A70228A4A80C9
+:103FB000228A8A808D71007A0127002802D0012888
+:103FC0007ED102E00020C87100E0CF711498087221
+:103FD000217802A80130012922D006210EF031FCFF
+:103FE00007216846C173067409A907F0A1FF0028DC
+:103FF000C7D10A206946087009A9684607F098FFEA
+:104000000028BED13A206946087009A9684607F021
+:104010008FFF0028B5D1002D08D0022D06D04AE030
+:1040200061680622491C0EF0AFFBD9E7002E42D092
+:10403000002623E00168B00009580978002903D060
+:10404000012905D0072014E700216A46917001E09C
+:1040500069468F70E16806220968095800A8491C62
+:1040600003300EF091FB0B206946087009A96846E1
+:1040700007F05EFF002884D1761CF6B2E068017973
+:10408000B142D7D8002612E08068B100415800A89C
+:10409000102202300EF078FB3B206946087009A917
+:1040A000684607F045FF0028CDD1761CF6B2E068DF
+:1040B000017BB142E8D81B2168460170877000E09F
+:1040C0002EE009A907F034FF0028BCD108A84079E8
+:1040D0001B2825D1002D15D0012D0FD0022D21D068
+:1040E000032D12D11EE00000480000200000FC1F3C
+:1040F00000400020E13F0000023200000320FEF7F4
+:1041000037FD11E00320FEF733FD608A00280BD055
+:1041100000228300114610460BF09FFF002803D0B9
+:104120000320A6E60220EEE70020A2E670B586B0E6
+:104130000C0006460CD00520800384424BD301209E
+:104140008004FD49201A884245D3FC48844242D26B
+:10415000FB4DBF212868095C022903D0C03040789C
+:10416000400702D5112006B070BD002C04D02046B7
+:10417000FEF780FD0028F6D13046FEF746FD012807
+:1041800003D0022823D0EF48EDE721001BD10820FF
+:1041900069468882286801ABC08805AA002103F01F
+:1041A00048F80028DFD16846808A082801D003201B
+:1041B000D9E7684681888181C188C18101890182EE
+:1041C0004189418203A9304601F0E5FBCBE7002C91
+:1041D00001D00620C7E71020C5E770B50C4605469C
+:1041E000FEF713FD012803D0022801D0D54870BD89
+:1041F00021462846FEF708FE70BD00B50146143082
+:1042000095B0192801D2880707D008461E3004D07F
+:104210000A3002D0072015B000BDFFF7F4FC0028DB
+:1042200001D01120F7E7C648312200684170684686
+:104230000270817009A907F07BFEECE701B582B03E
+:10424000022069460880BE4802AB00686A46808842
+:10425000002102F073FE69460988022900D003207C
+:104260000EBD38B502216A46118007214907012297
+:1042700041189203914201D3102038BDB049034642
+:1042800009686A468C880021204602F0D2FF694600
+:1042900009880229F1D0032038BD3EB50446082024
+:1042A0006946088005208003844208D301208004E9
+:1042B000A149201A884202D3A048844201D3102089
+:1042C0003EBD2046FEF7D6FC0028F9D1208869467D
+:1042D00088806088C880A0880881E08848819848E4
+:1042E00001AB00686A46C088002102F027FE6946DB
+:1042F00009880829E4D003203EBD1FB504460820E4
+:104300006946888105208003844208D30120800407
+:104310008949201A884202D38848844202D3102057
+:1043200004B0DAE486486B46006803AAC08800211E
+:1043300002F07FFF0028F3D169468989082901D05E
+:104340000320EDE769460988218069464988618034
+:1043500069468988A1806946C988E180E0E7FEB5A1
+:1043600005460520800317460E46814208D30121E9
+:104370008904714A731A934202D3704B9E4201D34F
+:104380001020FEBD1F2F01D90C20FEBD6C4C8542B4
+:104390002AD3681A904227D39D4225D2206801A9CA
+:1043A000408802F07DFD0028EFD1287869464871E9
+:1043B000206801A9408802F056FD0028E5D1694631
+:1043C0000090087802210843694608704979090776
+:1043D00003D0082108436946087020686946408870
+:1043E00002F0EBFC0028D0D169460F8120683346EB
+:1043F000408802AA002102F0A1FD69460989B9425C
+:10440000C3D00320FEBD38B50C4607210122490761
+:104410009203002802D04318934202D261189142BD
+:1044200001D3102038BD21886A461180002801D0B0
+:1044300000290BD04249034609684D8800212846CF
+:1044400002F0F7FE69460988218038BD0C2038BD8E
+:1044500010B50C460521890386B08C4208D3012192
+:104460008904354A611A914202D334498C4202D3FD
+:10447000102006B031E432490968A031897F05294E
+:1044800001D00820F5E7FEF7C0FB012803D0022881
+:1044900026D02C48EDE720881E2801D20720E8E727
+:1044A0000620FEF765FB052168460170007981084A
+:1044B000A0788900C007C00F014368460171FB2046
+:1044C0000140A0788007C00F800001436846017159
+:1044D0002188C18009F025FD0028CAD00320C8E743
+:1044E0000620C6E770B586B014460D46FEF78DFB74
+:1044F000012803D0022801D0124834E6104EC02112
+:104500003068095CC90706D0BE21095C042902D0C5
+:10451000002D02D05AE0082025E6052189038C42AF
+:1045200008D301218904044A611A914202D3034944
+:104530008C4209D3102016E60000FC1F004000202A
+:104540004800002001300000A178C906490F042965
+:104550000CD8E178072909D3102907D822798A4293
+:1045600004D3102A02D822881E2A01D00720FAE597
+:104570008030026BF7239172026B2179D172026B4A
+:10458000117A1940A3789B06DB0FDB0019431172E7
+:10459000026B21889181026BA378517ADB0789082D
+:1045A0008900DB0F19435172FB231940A378026B7A
+:1045B0009B07DB0F9B0019435172006BA278017AB5
+:1045C000D206C908C900520F114301720B20694677
+:1045D0000870852D25D008DC002D1AD0812D1AD029
+:1045E000822D1AD0832D08D119E0862D1BD0882D5D
+:1045F0001BD0892D1BD08A2D1BD00B2008710520C4
+:10460000FEF7B6FA684609F08CFC002813D00320A8
+:10461000A9E50020F2E70120F0E70220EEE7032001
+:10462000ECE70520EAE70620E8E70820E6E70920AE
+:10463000E4E70A20E2E73068C03001784908490021
+:10464000017000208FE570B5924E0D46316886B03E
+:10465000C03109781446090701D4082083E5FEF724
+:10466000D4FA012803D0022801D08B487BE5002D25
+:1046700013D005208003844208D301208004874999
+:10468000201A884202D38648844201D310206AE56A
+:10469000012D0BD0022D02D106E0002C01D0072005
+:1046A00061E50020029005E0022000E0012069465B
+:1046B00008710294032069460870684609F031FCCD
+:1046C000002801D003204EE53068F722C030017881
+:1046D00011400170002046E570B594B014460E46B6
+:1046E000FEF793FA012804D0022802D06A4814B0D9
+:1046F00070BD684D2868C0300078800701D408205C
+:10470000F5E7002C01D00720F1E7FFF77CFA00283D
+:1047100001D01120EBE7002E1DD02D21684601703D
+:104720002C68B420015B684641801022B11C01A8AE
+:104730000EF02AF8207FFB210840B17CC907490F01
+:1047400008432077B07CFF214008A076E08A8231C0
+:104750000843E08207E02E21684601702868A030F7
+:10476000818A6846418009A9684607F0E1FB29680B
+:10477000FD23C0310A781A400A70B8E710B50C461C
+:10478000FEF743FA012803D0022801D0424810BDA9
+:1047900005208003844208D3012080043F49201A69
+:1047A000884202D33E48844201D3102010BD2046E7
+:1047B000FEF73AFA002010BD10B594B00446FEF79B
+:1047C00024FA012804D0022802D0334814B010BDC6
+:1047D00030480068A030807F04280ED03820694619
+:1047E00008704C8001200871487109A9684607F0DB
+:1047F0009FFB0028EAD00B20E8E70020E6E710B591
+:1048000094B00446FEF701FA012803D0022801D033
+:104810002148DBE71F480068A030807F04280BD0C8
+:104820003820694608704C8000200871487109A939
+:10483000684607F07DFBC9E70020C7E71548006818
+:10484000A030807F052801D30120704700207047E9
+:1048500010480068A030807F704708B513460028D4
+:1048600006D010A00068009048796A468009105C64
+:1048700018700622581C0DF087FF08BD10B50446BD
+:10488000FDF7B6F9A22101700ECC08300EC0FDF77D
+:10489000CBF910BD48000020013000000000FC1FD3
+:1048A000004000200302FF01FFB581B001980E46D1
+:1048B000C078174610360E37022809D0032840D09A
+:1048C00005287DD0F2A1F7480EF0FBF805B0F0BD49
+:1048D000CC890A2060430E30188031230A98002AC0
+:1048E0000380F3D04868008890800020D080108139
+:1048F000097B9481891FCDB21AE0308871683880B5
+:1049000048780A7800021043F880C8788A78000254
+:1049100010433881BA1C091D28460AF014FF002DE7
+:1049200001D0002802D000203871788008360A377C
+:104930002046641EA4B20028DFD101990020C8706F
+:10494000C4E7CC890A2060430E30188032230A98CD
+:10495000002A0380BAD04868002500889080D5805E
+:104960001581087B401FC0B20090948142E07168BD
+:1049700032880878FA803A79C30752085200DB0F70
+:104980001A43FD231A408307DB0F5B001A43FB2306
+:104990001A404307DB0F9B001A43F7231A40030713
+:1049A000DB0FDB001A43EF231A40C306DB0F1B01AA
+:1049B0001A43DF231A408306DB0F5B011A4300E032
+:1049C00020E0BF231A404306DB0F9B011A433A71D4
+:1049D000C00978718A784B781002184338813A46BA
+:1049E000C91C00980AF0AFFE002801D0BD703D80C0
+:1049F00008360A372046641EA4B20028B7D10198B1
+:104A0000C57063E7087BCC89801E85B228460830D4
+:104A100060431030188034230A98002A03808FD016
+:104A200048681746008890800020D08010819481CB
+:104A30001037E000D581C0190CE03088388000982C
+:104A400078602A46716800980DF09EFE009808363E
+:104A50000837401900902046641EA4B20028ECD10B
+:104A60006BE7FFB50546C07881B00C460A9E03008F
+:104A70000EF02CF90BA3071733414F6D8F9D9D9DB1
+:104A8000A300207B1746082806D0032804D08548B9
+:104A90007FA153300EF015F804990E2008803020C5
+:104AA0000CE0207B1746042804D07E4878A17030A3
+:104AB0000EF007F804990E20088031203080002F76
+:104AC00044D060680088B880607AFF300130F88098
+:104AD000E08938810020B88137E0207B1746042820
+:104AE00004D070486AA18C300DF0EBFF04990E20C1
+:104AF00008803220E2E7207B1746022804D069486C
+:104B000063A1A8300DF0DDFF04990E20088033204A
+:104B1000D4E7207B1746042804D062485CA1C33048
+:104B20000DF0CFFF04981021018034203080002F39
+:104B30000CD060680088B880607AFF300130F8805F
+:104B4000E08938810020B881F881E870BEE6207BDA
+:104B50001746052806D0062804D052484CA1E0305C
+:104B60000DF0AFFF04981221018035203080002F16
+:104B7000ECD060680088B880607AFF300130F8803F
+:104B8000E0893881E089B88100203882A988F981DC
+:104B9000DBE7207B1746072804D042483CA1F730CA
+:104BA0000DF08FFF04990E200880362086E70096CE
+:104BB0002846049B00F02BFD88E635A13A480DF00D
+:104BC00080FF83E670B5054600780C460826030092
+:104BD0000EF07CF8124C3434241C380A0A0A0A0AF3
+:104BE0000A0A0A0A0A0A0A4C6878002804D02E48E1
+:104BF00027A12C300DF065FF002C03D12A4824A1F9
+:104C00002D3008E060783043607020E0002CF9D14E
+:104C100025481FA135300DF054FFF3E7002904D0DB
+:104C200021481BA13D300DF04CFFFCF7E1FF04468D
+:104C3000407830436070FCF7F7FF08E01A4814A191
+:104C4000473002E0184812A14C300DF03AFF002C1A
+:104C50000AD06078000707D593202070204658229C
+:104C600029460830FBF7B0FA002070BD0E4808A1B5
+:104C70005030EAE710B500200C4C0D490346C20045
+:104C80008C525218401C0006D370000EF7D010BD95
+:104C90007372635C67617474635F636F72652E63C4
+:104CA000000000005A020000B2030000FFFF0000F5
+:104CB0004C000020FD4908800120887000207047CA
+:104CC000FA4900208870704710B50021F748C943A1
+:104CD00001800021C17007F065F9D8E7F7B584B00D
+:104CE0000546002768460781878068680C4600886B
+:104CF00000F0EAFB0646287A032805D0002E03D1EF
+:104D0000EB49EC480DF0DDFE287A2146C01E123139
+:104D1000009103000DF0DAFF0FF1F0EF3D09AA4614
+:104D20005C6D34B3CCF28B8BEF00F078012803D0AC
+:104D3000DF49AD200DF0C5FEA8896946C0000E30E0
+:104D4000888030200881002C22D068680188A180EA
+:104D5000E7802781A989A18100200DE0C100B279F7
+:104D600009190A74B288CA8182005219D3894B8208
+:104D7000128A401C8A8280B2A1898142EED8D6E094
+:104D800002A8009001AB22462946304600F0CAFB3B
+:104D9000F0E002A8009001AB22462946304600F020
+:104DA00003FCE7E0F07806281AD0FF20C049223043
+:104DB00014E068680188A180E7802781A989A18122
+:104DC000B188E181E9892182EA89296900982BE08B
+:104DD000F078062804D0FF20B5493C300DF071FE74
+:104DE000E88969461230888035200881002CE0D19E
+:104DF000C0E0F078072804D0FF20AD4956300DF010
+:104E000060FEA88969460E30888036200881002C13
+:104E1000BED068680188A180E7802781A989A18127
+:104E20002046AA890E3029690DF0AEFC7FE0E889A2
+:104E30006946123080B2382288800A81002C78D0EE
+:104E400068680188A180E7802781A989A181287AE3
+:104E5000102809D00221A173E9892182EA892969F0
+:104E600000980DF091FC85E00121F4E702A8009084
+:104E700001AB224629463046FFF716FD7AE0F0786E
+:104E8000082803D08A498C480DF01BFE142069467F
+:104E9000888037200881002C6CD068680188A18048
+:104EA000E7802781A989A18167820120A0733EE064
+:104EB000F078092804D080487D4917300DF001FEB4
+:104EC000288A69461430888037200881002C51D008
+:104ED00068680188A180E78004212781A173A989DE
+:104EE000A181E9892182298A618220462A8A143097
+:104EF000696999E702E038E01CE024E0F0780A28CC
+:104F000004D06D486A4932300DF0DBFD142069464B
+:104F1000888037200881002C2CD068680188A18007
+:104F2000E78027810521A173A78127826782F77017
+:104F300020E017E002A8009001AB22462946304647
+:104F4000FFF78FFD16E00D206946392288800A811F
+:104F5000002C07D00120E08054480188A1802781DF
+:104F6000277307E00699088010E0524850493C300A
+:104F70000DF0A7FD6846069980880880002C05D0B2
+:104F8000684600892080684680886080002007B0DD
+:104F9000F0BDF7B594B015460F46149800F09FFA8F
+:104FA00004000AD0032000F087FB022802D2E07838
+:104FB000002804D0112017B0F0BD4048FBE71720AF
+:104FC000694601260883002D0FD003216846017130
+:104FD0001021018210A80246059004A928460AF073
+:104FE000D8FB00280DD00720E5E7082168460171AD
+:104FF00000210781C943418105218673C90281814E
+:105000000CE0A878A0712888A080684605218673E6
+:10501000C902818100210781C943418109AA023265
+:1050200006A901A806F0F7FF002802D000F06AFAEE
+:10503000C1E707A800906846038B04220321149857
+:1050400000F050FB0028B6D1E670B4E770B592B01E
+:105050000D0006460ED000F042FA04000CD00320EA
+:1050600000F02AFB022802D2E078002806D01120A6
+:1050700012B070BD1020FBE71048F9E71721684611
+:10508000818004210172298881816988C18101217F
+:1050900081740B4901820AAA023201A902A806F012
+:1050A000BAFF00280ED000F02DFAE1E74C000020F6
+:1050B000904C00003B04000063020000013000003F
+:1050C0000228000008A80090684683880422032173
+:1050D000304600F007FB0028CAD10221E170C7E783
+:1050E00070B592B00D0006460DD000F0F8F904003E
+:1050F0000BD0032000F0E0FA022802D2E07800286A
+:1051000005D01120B4E71020B2E7FA48B0E7172124
+:105110006846818004210172298881816988C18162
+:1051200001218174F44901820AAA023201A902A86C
+:1051300006F071FF002802D000F0E4F998E708A813
+:1051400000906846838804220321304600F0CAFAA2
+:1051500000288DD10321E1708AE770B592B00D006F
+:1051600006460DD000F0BBF904000BD0032000F080
+:10517000A3FA022802D2E078002805D0112077E7B0
+:10518000102075E7DB4873E7022168460172298821
+:1051900081816988C181172181800AAA023201A90F
+:1051A00002A806F038FF002802D000F0ABF95FE754
+:1051B00008A800906846838804220321304600F046
+:1051C00091FA0028DBD10421E17051E7F0B591B0EC
+:1051D00015000E4607460ED000F081F904000CD0F1
+:1051E000032000F069FA022802D2E078002806D0F5
+:1051F000112011B0F0BD1020FBE7BE48F9E71721E0
+:105200006846818004210172298881816988C18171
+:10521000B1788174318801820AAA023201A902A8F8
+:1052200006F0F9FE002802D000F06CF9E1E708A8CA
+:1052300000906846838804220321384600F052FA21
+:105240000028D6D10521E170D3E7F7B592B0154615
+:105250000E46129800F043F904000AD0032000F033
+:105260002BFA022802D2E078002804D0112015B0D1
+:10527000F0BDA048FBE70627002D12D06846077254
+:105280008681C581A5801720694688800AAA0232D6
+:1052900001A902A806F0BFFE002807D000F032F9ED
+:1052A000E5E70521684601728681EBE708A80090D2
+:1052B0006846838804220321129800F013FA00281C
+:1052C000D5D1E770D3E7F7B592B016460D000ED0F2
+:1052D000129800F004F904000BD0032000F0ECF960
+:1052E000022802D2E078002805D01120BFE7102064
+:1052F000BDE78048BBE7072768460772868117210C
+:10530000049581800AAA023201A902A806F083FE50
+:10531000002802D000F0F6F8A9E708A80090684637
+:10532000838804220321129800F0DCF900289ED122
+:10533000E7709CE7F3B5172091B00C46002915D013
+:1053400021780B000DF0C2FC062B05051A041C2B5E
+:105350001520C01EE28880B2002A02D0A368002B6C
+:1053600004D0824204D90C2013B0F0BD1020FBE71A
+:10537000042905D0A088002811D101E00620F3E718
+:10538000119800F0ACF805000BD02078092701280F
+:105390001AD0022807D0042824D0052835D00720A9
+:1053A000E2E75448E0E76846077161880181E188D7
+:1053B0004181A06808260390304600F07DF9072857
+:1053C00029D34C48801CCFE70C21684601716188C5
+:1053D0000181E1884181A06803900EE0E87800280F
+:1053E00011D118E00D216846017161880181A18801
+:1053F0004181E1888181A06804900326304600F055
+:105400005BF90228EAD31120AEE70E21684601714C
+:10541000217B0172F1E717216846018309AA023254
+:1054200006A901A806F0F7FD002802D000F06AF8EE
+:105430009AE707A800906846038B0422314611982A
+:1054400000F050F900288FD12178012907D00229D6
+:105450008AD0042905D0052905D0032084E7082136
+:1054600002E0EF7080E70A21E9707DE730B591B086
+:105470000C46054600F033F8002808D0032000F061
+:105480001BF9022805D31B48801C11B030BD1948F8
+:10549000FBE70F216846017104811721018309AAE6
+:1054A000023206A901A806F0B6FD002802D000F0DD
+:1054B00029F8EAE707A800906846038B0422032135
+:1054C000284600F00FF9E0E70C49884205D00C4966
+:1054D0000988814201D10A4870470020704710B501
+:1054E000FFF7F2FF002802D08178C90700D1002021
+:1054F00010BD00000130000003280000FFFF000085
+:105500004C000020002806D0012805D0052805D031
+:10551000062805D0032070471120704708207047E7
+:105520005C487047FFB583B003980C9EC0781D4659
+:1055300014460F46012803D05749D2200DF0C1FA76
+:10554000F889C0000E30288030203080387B001F62
+:10555000C0B20190002C26D078680088A08000207E
+:10556000E0802081F889A081002616E0F00005196E
+:10557000C01900902A4641690E3201980AF0E3F8FA
+:10558000002802D000202874E8810098761C008A48
+:1055900068820098B6B2408AA882A089B042E5D855
+:1055A00003990020C870F2E4F8B50646C0781F469B
+:1055B00014460D46042804D0FF20374903300DF06F
+:1055C00080FAA889062148430E3038803321069896
+:1055D000002C01801AD068680088A0800020E0803C
+:1055E0002081A989A18103460CE019460622514376
+:1055F0004A190919D789CF81977C8F74128A5B1C4D
+:105600000A829BB2A1899942EFD8F070F8BD70B5BB
+:1056100014460546142204981A8037220280002C72
+:1056200018D0486800260088A080487AFF300130F2
+:10563000E080C8892081C889A0816682E87808282E
+:1056400009D0092811D00A2819D0134913480DF0A0
+:1056500038FAEE7070BD087B0C2804D00F480E4954
+:105660000C380DF02EFA012012E0087B0D2804D032
+:105670000A48094908380DF024FA042008E0087B9C
+:105680000E2804D005480449001F0DF01AFA052021
+:10569000A073DEE702300000904C000081030000A0
+:1056A00001460020FA4A02E0401C082803D24300C9
+:1056B000D35A8B42F8D1704730B50446F44A0020E3
+:1056C000163A117953790AE05518AD79A54201D1FE
+:1056D000401CC0B2491CC9B2102900D100218B4224
+:1056E000F2D130BDFFB5EA4881B0163841790A9C45
+:1056F000491CCDB21E46102D00D10025E4481638B5
+:105700000079A84202D1042005B0F0BD0820FFF7BF
+:10571000D3FF0746072804D9FF20DEA1A5300DF0EE
+:10572000D0F90298082801D1072F17D001982080BE
+:10573000301D6080002060712071E6800398208118
+:10574000204606F019FC00280AD0D14802991638E4
+:105750004379821D995445710020D5E7D248D3E79B
+:10576000FF20CCA1B7300DF0ACF90320CCE7F0B5A9
+:105770008DB0044600256846057116468C46062005
+:10578000FFF79AFF00281CD121780127C8070028BD
+:1057900001D0132917D9684687766178C17602212E
+:1057A0008183C58304A8009070680C2300880522BB
+:1057B0000621FFF797FF002803D0B6A185200DF042
+:1057C00080F90DB0F0BDB24816380278002AF8D042
+:1057D000427863789A42F4D1012918D0132919D15B
+:1057E0006146062916D10570002101200AF0D7FC78
+:1057F00068460771706801886846C1800021C94306
+:105800000181607922790102114368461AE06146FC
+:10581000062908D0684600790028D2D0314601A870
+:10582000FEF727F8CDE70570002101200AF0B7FC4C
+:105830006846077160792279010211436846018147
+:105840000021C9434181E9E7914810B5002116388C
+:1058500001704A1E428041700171417101200AF0BD
+:105860009EFC10BD10B5FFF7EFFF002088490246EF
+:105870004300401CCA520828FAD310BD8449163987
+:10588000488000207047DFE770470EB50121684669
+:10589000017086498180C1800021FDF7EAFF0EBDBD
+:1058A000F7B505460078002700090C463E4601285A
+:1058B00004D0FF2077A168300DF003F9287A022880
+:1058C0000CD0FF2073A17E300DF0FBF80298002C65
+:1058D000068001D0278066800020FEBDEA897027FF
+:1058E00010460A3086B2002C0BD068680088A08071
+:1058F000A8892081E28020460A3029690CF044FF03
+:10590000E4E702980680E7E7F0B543680246D979F4
+:105910009C79090221435C7A1E7A25025C88981DD5
+:105920003543241F87B0A1421DD11B79022B1AD108
+:10593000042D1AD0052D2AD0062D1AD0402D12D3B1
+:10594000061D0F4614462846FFF7AAFE08280AD06F
+:105950001120207002202072A581E78126616078E5
+:1059600008210843607007B0F0BD001D00F0E1F8A9
+:10597000F9E7041D0D46FEF761FF0028F3D006216C
+:10598000684601700194057208F0CBFAEBE7001D40
+:10599000FFF7EDFEE7E710B53D4C8AB0163C2278E4
+:1059A000012A26D012236A46937363789B1CD37313
+:1059B000082313820B8853824B8893828B88D3826F
+:1059C000C988118301A900910C2305220721FFF743
+:1059D00089FE00280BD10022F023114601200AF095
+:1059E0003CFB012020706078801C607000200AB0B1
+:1059F00010BD1120FBE7F0B5254C0027163C87B001
+:105A00000646A51D1FE060792179884204D1112046
+:105A100020A140010DF055F82079405D042804D004
+:105A2000082808D17F1CFFB205E0072069460870EE
+:105A3000684608F076FA2079401CC0B22071102820
+:105A400001D1002020713046761EF6B20028DAD14E
+:105A5000384688E710B50446402801D2072010BD1B
+:105A6000FFF71EFE082802D03120000210BD0021E1
+:105A7000074802E0491C082903D24A00825A002A3A
+:105A8000F8D1082914D049004452002010BD00006C
+:105A90002E1300207372635C6C326361705F636FFE
+:105AA00072652E630000000003300000FFFF00005D
+:105AB0000420EBE700B5402801D2072000BDFFF726
+:105AC000EFFD082805D000213B4A4000115208464E
+:105AD00000BD052000BDF0B58BB016460C00074692
+:105AE00007D0002E05D06188402904D207200BB0D2
+:105AF000F0BD1020FBE72088002801D0172801D92D
+:105B00000C20F4E70846FFF7CBFD08280FD02588C6
+:105B100003A82A46314602300CF036FE01A8009058
+:105B200062882B4608213846FFF7DCFDDFE70520B9
+:105B3000DDE7F0B50E46074601468BB01446012559
+:105B4000304606F0E5FB08281DD10020694608858F
+:105B50000120FFF7B1FD002802D117206946088512
+:105B600003AB02330AAA39463046009406F0E3FF3D
+:105B700000280AD0022819D0032804D0FF200F499A
+:105B800002300CF09EFF2846B1E76846038D002BDB
+:105B9000F9D001A800906068042200880121FFF775
+:105BA000A1FD0028EFD00549EC20EAE76078002548
+:105BB000102108436070E6E72E130020945A00007D
+:105BC000002803D08178012939D101E010207047E5
+:105BD0000188FA4A881A914233D01BDCF84A881AA5
+:105BE00091422ED00BDC00292BD00320C002081AD2
+:105BF00027D0012825D001210903401A07E00128F8
+:105C00001FD002281DD0FF281BD0FF3801380028E4
+:105C100015D116E0FF220132811A904211D008DC22
+:105C200001280ED002280CD0FE280AD0FF2806D169
+:105C300007E0012905D0022903D0032901D0002063
+:105C400070470F20704700B50A2821D008DC0300F8
+:105C50000DF03CF80A1C2024241A24282224261A99
+:105C6000102819D008DC0B2816D00C2814D00D28C9
+:105C70001AD00F2808D111E011280FD0822807D0A0
+:105C800084280DD085280DD0032000BD002000BD44
+:105C9000052000BDCB4800BD072000BD0F2000BD82
+:105CA000042000BD062000BD0C2000BD70B50029F9
+:105CB0000BD0CB1FFA3B81241E46CDB2112B1BD239
+:105CC000012805D0022806D009E0002010701DE050
+:105CD000FF20043001E0FF200330814218D0330060
+:105CE0000CF0F4FF111613131613161613161616CE
+:105CF00013131313161316000846FF3881381F2894
+:105D000003D9FF39FE39022902D81570002070BD71
+:105D10001470072070BD00B503000CF0D7FF060417
+:105D200006040C080A0C002000BD112000BD07204D
+:105D300000BD082000BD032000BD00780207120F3F
+:105D400004D0012A05D0022A0AD10EE0000907D1A9
+:105D500008E00009012805D0022803D0032801D05B
+:105D60000720704708700020704706207047002801
+:105D700007D0012807D0022807D0032807D0072022
+:105D80007047002004E0112002E0212000E03120D3
+:105D900008700020704738B50C4605004FD06946A2
+:105DA000FFF7CBFF002822D12088032189028843F6
+:105DB000694609788907090D084320806946681CEF
+:105DC000FFF7BBFF002812D1218803200003814385
+:105DD000684600788007800C01432180A87840073E
+:105DE000820F2020012A03D0022A03D0072038BDC9
+:105DF000814300E00143218088B20105890F08D06A
+:105E0000012189038843A9780907C90F8903084339
+:105E1000208080B28104890F0AD0A9784004C90685
+:105E2000C90F400CC903084320808004800F02D1B1
+:105E30002088400403D5208840210843208000208A
+:105E400038BD70B504460020088015466068FFF72D
+:105E5000A2FF002815D12189A089814210D861684C
+:105E6000594E8978C90707D0711E884208D8314633
+:105E70000CF004FD298009E0FF21FF31884201D99F
+:105E80000C2070BDFF30FF300330288060688078C0
+:105E9000C007A08903D031460CF0F0FC03E0FF30CE
+:105EA000FF30033081B22980206881784748017330
+:105EB00020684649008820394885002070BD10B50B
+:105EC000137804785B08E4075B00E40F2343137046
+:105ED000FD2423400478A407E40F640023431370D7
+:105EE000FB24234004786407E40FA40023431370C9
+:105EF000F724234004782407E40FE40023431370BD
+:105F0000EF2423400478E406E40F240123431370B4
+:105F1000DF2423400478A406E40F640123431370B4
+:105F20000078BF244006C00F234080010343137054
+:105F3000002906D00878C10701D1800701D50120CA
+:105F400000E00020C0015906490E0843107010BD42
+:105F500030B50A8803239B0204889A4323059D0FCA
+:105F600002D1A3049C0F01D09B0F00E001239B02F0
+:105F70001A4303230A801B039A4303889804840F5F
+:105F800002D11805830F01D0800F00E0012000032B
+:105F900002430A8030BDF3B591B00D0018D01198BE
+:105FA000002818D0122128460CF04BFC01A9012032
+:105FB00007F0A8FD00242646374677E002290000B6
+:105FC00001280000023000000102000060130020E0
+:105FD000102013B0F0BD0720FBE76846007C0128C5
+:105FE0000BD16846C1890520C002081A0AD00128D1
+:105FF0000AD002280CD003280CD0042C0ED0052C7B
+:106000000FD10DE0012400E002246846868908E0F3
+:10601000032406E068460424878902E0052400E0A2
+:10602000062468468189119881423FD12C74002E44
+:106030003AD00BA800900CAB10220021304607F09C
+:10604000F3FD002820D16846808D2A46C0B20CA9F5
+:1060500009F079FB002817D1AE81002F24D00BA8BE
+:10606000009006AB13220021384607F0DDFD002822
+:106070000AD16846808D06A9C01E0331C0B22A1D10
+:1060800009F061FB002801D00320A2E76846817E69
+:10609000427E08021043E881062C05D16846007C48
+:1060A000A8726846C0892881002092E701A807F0FD
+:1060B00031FD002891D0FFF7C6FD8AE7002804D003
+:1060C000012903D0022904D003207047F949C98D62
+:1060D00002E0F8494031C988814201D1002070476F
+:1060E0000720704730B5F34C0025608B91B0C00B92
+:1060F0002ED1216900292BD0207B800728D40122B2
+:1061000068460271027200224272228B8281A28A48
+:10611000828204911721018309AA0023023206A971
+:1061200001A807F0BBF8002803D0FFF7F4FD11B079
+:1061300030BD207B02210843207307A800906946E8
+:106140000B8B208804220121FFF7CCFA05460BE0D7
+:10615000FBF74EFD842101700921017218341ECC19
+:106160000C301EC0FBF760FD2846E0E710B5D14CAF
+:10617000034621690020002909D02146012210315F
+:106180001846FBF707FF00202061A0820120217B39
+:10619000F9221140217310BD70B50C4605461C2133
+:1061A00020460CF04EFB00202080002D08D0012D51
+:1061B00004D0C1A1C5480CF084FC70BD062000E0ED
+:1061C0000520A07070BD10B507F090FA10BDFEB5A7
+:1061D0000546007800260C46374603000CF076FD95
+:1061E0000C91070C1D962F462F46486C89916868C4
+:1061F0000A38FBF72FFE89E0002904D0B348AEA18E
+:106200001B300CF05EFCFBF7F3FC044640780821E1
+:1062100008436070FBF708FD78E0002C04D1BB2038
+:10622000A5A180000CF04DFC284601F05BFA002887
+:106230006CD06078082108436070022666E0E88828
+:10624000694608800190002C04D1A0489AA12F3003
+:106250000CF037FC287807281CD10198C00B19D006
+:10626000944800218171A988818012E003264DE0C5
+:10627000002C04D1C52090A180000CF022FC8D4898
+:10628000017B89070BD50069002802D0E888C00B84
+:106290003CD00226607808210843607036E0291D52
+:1062A0008EC918308EC02838018802260122204667
+:1062B000FBF752FE0127EDE7002C04D183487EA1B5
+:1062C00064300CF0FEFB7B480821007B4007C00FC8
+:1062D0004600607808436070002E17D128790128A5
+:1062E00002D16879002811D02046FFF73FFF07460A
+:1062F0000CE0002CCED10D206FA180010CF0E1FB51
+:10630000C8E772486CA17A300CF0DBFB002C0CD093
+:106310006078000709D5002F07D18420207020461F
+:10632000582229460830F9F74FFF3046FEBDF7B531
+:10633000027A88B00C46054620460C30049006923E
+:1063400016300027921E02903E460A31594813002B
+:106350000CF0BCFC0ADF06E62AE62AE66A98C6E6E6
+:106360004288002A02D052270726DDE051271E2648
+:10637000002C7DD06A684F481288A2800122A27149
+:106380008079C0004019C089FFF705FE002877D149
+:1063900048488179C9004919C98921818079C0009B
+:1063A0004019408AA083BFE0688A009006980728B9
+:1063B00017D1E889C00B14D000985127223086B23B
+:1063C000002C55D0A8890499FFF7E5FD002857D186
+:1063D00068680088A0800220A071A889208101201F
+:1063E00041E000985027203086B2002C40D0A88988
+:1063F000FFF7D1FD002843D168680088A080A889F4
+:10640000E080287A07280AD002202072288AA083F8
+:106410000098E083204669692030009A01E001205D
+:10642000F3E70CF0B1F97FE0698A00910169002976
+:1064300002D0E989C90B22D00099512722318EB2AE
+:1064400000218171A9898180002C5FD00088A08003
+:10645000A8890499FFF79FFD002811D10220A0719F
+:10646000A88920810420A072288AE083009801E096
+:106470004CE005E020846969009A0298D1E7032086
+:106480000BB0F0BD007B400702D55127222601E06A
+:1064900050272026002C39D06868502F0088A08013
+:1064A00016D00220A0712146287B0831FFF774FE28
+:1064B0003AE00000401300207372635C67617474FB
+:1064C000735F636F72652E6300000000CB020000F3
+:1064D000287BA11DFFF760FE0020FFF747FE23E0A9
+:1064E000A9890089884207D154270626002C0DD09F
+:1064F00068680088A08017E053270826002C05D084
+:1065000068680088A080A889E0800DE00A9806806D
+:1065100010E055270726002CF8D00020A07103E0DA
+:10652000FD49FE480CF0CDFA0A98002C068001D0F7
+:10653000278066800020A3E7F948002101722038F7
+:10654000418081718180027BF923520852001A40F8
+:10655000027301618182704770B5F14C86B0203CB6
+:10656000208000206080A071A0806946012007F093
+:10657000C9FA102608E00199088802461207D20FCE
+:10658000B043120110430880684607F0C3FA0500C3
+:10659000F1D02069002804D0E048DF4931300CF008
+:1065A00090FA207B800704D5DC48DB4932300CF0C0
+:1065B00088FA822D04D02846FFF745FB06B070BD4F
+:1065C0000020FBE7D64810B52038017B012211439B
+:1065D0000173002141808171818006F05BFA10BD5A
+:1065E00010B5CF4C0020C043203C20800020FFF796
+:1065F000BDFD207B40084000207310BD70B5C84D24
+:106600000446203D287B800704D5C448C249493050
+:106610000CF057FA287BC00706D12888C149884268
+:1066200002D02869002801D0082070BD002C08D0B5
+:10663000A088162801D2092070BD20682861A08892
+:10664000A882FFF74FFD70BD10B50C4607F04BFA5E
+:10665000002803D0B049B4480CF033FA2046FFF7C5
+:10666000F2FA10BDF0B5AE4D0446203591B00020D1
+:10667000089068820E462882E8812946E8804039E1
+:106680000886694608830885088688838882A44826
+:106690000E90007A1746012808D0022806D0032859
+:1066A00004D0042802D0082011B0F0BD05239B03BC
+:1066B0009C421CD3012080049C49221A8A4216D392
+:1066C0009B4A944213D29E4211D3331A8B420ED36B
+:1066D00096420CD26268002A16D005239B039A4288
+:1066E00005D3101A884202D39148824201D3102068
+:1066F000DAE760892189884203D801225202914257
+:1067000001D90C20D0E7089010AA0CA93046FFF759
+:1067100098FB0028C8D106A92069FFF73CFB002898
+:10672000C2D1206900280CD0607880070028684614
+:10673000008B03DA8004800F56D002E08004800FC3
+:1067400052D105A96069FFF726FB0028ACD160692A
+:10675000002808D06846808A0105890F012943D1A5
+:106760008004800F40D007A9A069FFF714FB002820
+:106770009AD16846008B800636D46846808A8006A7
+:1067800032D46846808B81062ED4A169002906D0B8
+:106790000105890F012927D18004800F24D0E068EA
+:1067A000002804D0007800281ED01C281CD25C4A87
+:1067B000611C123220460992FFF781FB0321002061
+:1067C0008902884301218902411868460D9101859B
+:1067D0000121817457490182514A0FA9153230684D
+:1067E00008F0D7FF002801D007205DE708A8007F48
+:1067F0004B49C01CC2B26A7100201031FF320090B8
+:106800000190FF3203460291039003320AA904A8C3
+:1068100007F004F9002827D141482038008E0B905A
+:106820003F4833893830326901461239029100936A
+:106830000192039010A90A8873890CA9306807F0A7
+:10684000EDF801007AD13648E98811308170090AE3
+:10685000C1700026009631386A79008E3146099B56
+:1068600007F05BF8002802D0FFF7EDF91CE70E985F
+:10687000807CC00928D068460D990185012181746A
+:10688000292109020182AE81287B61784008C9076D
+:106890004000C90F08432873FD2108406178204A51
+:1068A0008907C90F4900084328732A32901C022126
+:1068B000029200910190002303961F4A0AA904A89E
+:1068C00007F0ACF80100BDD1606800283FD0206916
+:1068D00000280DD106A90CA8FFF73AFB60788007C5
+:1068E00006D46946088B0321090388436946088357
+:1068F0000120694688740F48FE3008820E492089BD
+:10690000891E0BF0BBFF62680548089B2E3003967A
+:1069100000930192029012E0B8640000220400008B
+:1069200060130020FFFF0000260600000000FC1F8F
+:1069300000400020032800000302000086E00A4611
+:10694000002306A904A807F069F801007ED1207889
+:10695000C10601D480062BD56846068460690028EC
+:106960000DD105A90CA8FFF7F3FA6846818A032028
+:1069700080028143012080020918684681826946AD
+:10698000888A482108436946888201208874F8482B
+:106990000882F84908AA022001920291009000237F
+:1069A0000396F54A05A904A807F038F8010062D15A
+:1069B0002078C0072DD068460684A06900280DD134
+:1069C00007A90CA8FFF7C4FA6846808B0321890247
+:1069D0008843012189024118684681836846818B7A
+:1069E000402001436846818301218174E04908AA5F
+:1069F000491C0182DF480221801C01920091029013
+:106A000000230396DC4A07A904A807F007F8010051
+:106A100031D1E068002832D068460D990185012106
+:106A20008174D349891C0182E16808A80A78027040
+:106A300049784170E068418868464184E06801799E
+:106A400008A80171E068C18808A800E013E041715E
+:106A5000090A8171C7480722001D08A90092019107
+:106A60000290412200230396D2000AA904A806F04E
+:106A7000D5FF010003D00B98FFF7E6FD14E60321D4
+:106A80000E98002F017207D0E8883880E889788056
+:106A9000288AB880688AF880002005E6F0B50124CD
+:106AA0008BB016460F46012802D002281BD104E005
+:106AB000684605218474C90202E06846AF498474BF
+:106AC0000182002F11D00321002089028843012177
+:106AD000890241186846018506AA05A9384608F0CA
+:106AE00058FE002803D00720CAE41020C8E4A14DB6
+:106AF000B878303D287338882F46203F78856A461D
+:106B0000127D0020294606AB00920E310193FF3220
+:106B1000029103900346FF3203320AA904A806F04B
+:106B20007DFF002802D0FFF78EF8A9E4002E01D0E7
+:106B3000F88D30802C720020A2E470B592B0064629
+:106B4000012508A885708E496846018406F0DDFE9F
+:106B5000002208A90120FFF7A1FF044606F0D9FE94
+:106B6000002C02D0204612B070BD0024002E3ED072
+:106B70001C2168460BF067FE68460178202001431F
+:106B80006846017008A885707E49684601841194A2
+:106B90000794817FF9200140891C68468177002095
+:106BA0000146684601770020014668464177042186
+:106BB0008185C485018607A80A9011A80D9008A8B0
+:106BC000099006F0A2FE0EAA09A96846FFF74AFD41
+:106BD000054606F09EFE002D01D02846C3E7654815
+:106BE0006946098F503801816946898F4181614822
+:106BF000303804720020B6E7F7B55E4E9CB0002135
+:106C0000303E0091317A012904D0022902D00820B7
+:106C10001FB0F0BD57495039CA8D824201D00620BD
+:106C2000F6E71D98824201D10720F1E75348012180
+:106C300010AA9176401C1083002003239B02024679
+:106C40009A438B02D31810AA93846A4691844E49C2
+:106C5000D18410AA9077908317AA0A926A469185E8
+:106C60000C9009A806F075FF00242546274604A9C4
+:106C700009A806F071FF002810D0822877D1002CD7
+:106C80006AD0002D68D010A80481458100240475C5
+:106C900018A8807812AD012860D077E06846807D22
+:106CA000002F1FD0012853D16846818A3348401CE9
+:106CB000814219D114A800906846408A0EAB102278
+:106CC000002106F0B1FF002874D110A8008A042822
+:106CD00001D0062849D16846018F1D98814237D1DD
+:106CE0000F2095E7012833D16846808A0521C90223
+:106CF000884202D0491C88422AD11E485038C18D92
+:106D00006846408A814201D1012700E00027002C1B
+:106D100001D0002D0DD01D99884219D114A90091E0
+:106D200004460EAB1022002106F07EFF002841D160
+:106D300001E0009D0CE010A8008A022801D0102874
+:106D400013D1C0B218AA0EA908F0FDFC00280CD17E
+:106D50006846408A00908AE7052059E72A1D15A950
+:106D600018A808F016FD002810D0032050E721E0F5
+:106D700002290000901300200302000001280000F7
+:106D800001180000052A0000FFFF000010A8007D88
+:106D90000023001DC2B210A802751E98029019A906
+:106DA00001950394009216A806F038FE002801D140
+:106DB00002213172FEF747FF2AE73EB50B46401E1F
+:106DC00084B201AA00211846FFF779F806F09DFD6C
+:106DD00002A8009001AB01220021204606F09DFD93
+:106DE000044606F096FD68460089012803D0FE4956
+:106DF000FE480BF066FE2046FEF725FF3EBDF0B5CF
+:106E0000FB4E0446307A89B00F46032804D004288C
+:106E100002D0082009B0F0BD04AA06A92046FFF759
+:106E200010F80500F6D1F24823893830226901466E
+:106E30001039029100930192039069460A8A63898E
+:106E400006A9206806F0EAFD002802D0FEF7FBFE46
+:106E5000E0E7002F03D0E648203000893880042086
+:106E600030722846D6E738B50C00054608D0002217
+:106E7000694606F033FF002804D0FEF7E4FE38BD73
+:106E8000102038BD69462046FEF785FF0028F8D15E
+:106E9000A0786946C207D20F284606F03AFFECE711
+:106EA0003EB50C0008D002AA694606F017FF00287C
+:106EB00004D0FEF7C8FE3EBD10203EBD0321204693
+:106EC0000BF0BFFC6846008801A90005800FFEF7A3
+:106ED0004EFF00280BD16846007920706846008874
+:106EE00001A98004800FFEF742FF002801D0032093
+:106EF0003EBD684600796070A278EF200240684687
+:106F00000088C10B09010A43F7210A404104C90F57
+:106F1000C9000A43A270F9210A40800601D5012068
+:106F200000E00220400069460243097A5008400010
+:106F3000C907C90F0843A07000203EBDFEB51D461D
+:106F400014000E46074615D0002D13D006F0DDFCC8
+:106F500001A8009022882B463146384606F0DDFC19
+:106F6000054668468088208006F0D3FC2846FEF758
+:106F70006AFEFEBD1020FEBDF0B50C46002199B0A2
+:106F80000746684681850D46002C11D0E068002830
+:106F900006D0A06800280BD002886B469A85018035
+:106FA000A078012806D0022804D0072019B0F0BD2F
+:106FB0001020FBE72088002807D0401E80B201A9DE
+:106FC00006F0A0FD002842D136E08A48EEE7694687
+:106FD0008A8921888A420BD26846007C00250128D4
+:106FE0002CD16846C0898449884227D1012525E0F3
+:106FF0008A4203D1002D2FD06D1C01E0022D02D05A
+:10700000032D1BD31FE06946097C012916D169466F
+:10701000794BCA895B1ED11A9A421DD005DC77488C
+:10702000101A19D0012809D116E0012914D0FF390E
+:10703000013903D1032506E00D26B60201A806F0AA
+:1070400069FD0028C3D0822804D0002806D0FEF7AE
+:10705000FAFDABE7022DFAD13046A7E7E068002839
+:1070600013D006F052FC0BA800906A46A188208835
+:10707000928DE36806F051FC054606F04AFC002DAF
+:1070800019D16846A168808D088002980078C006F2
+:1070900001D55B488AE706F038FC0EA800906846E8
+:1070A00080890CAB0222002106F0BEFD054606F0E9
+:1070B00030FC002D01D02846C9E76846008F022821
+:1070C00001D0032072E7A078012808A8007C03D033
+:1070D00080070ED4082069E7C007FBD00820FEF720
+:1070E000EBFA072802D34348401C5FE7082502203B
+:1070F00001E00225032069460876218868468183DD
+:107100001721818611AA002302320DA906A806F0D4
+:10711000C5F8002802D0FEF7FEFD47E70FA8009053
+:107120006846838E042229463846FEF7DBFA3DE79F
+:1071300070B5064615460C460846FEF741FD002888
+:107140000AD106F0E2FB2A4621463046FFF7A6FCAC
+:10715000044606F0DEFB204670BD70B514460D46B1
+:10716000064606F0D2FB224629463046FFF744FD8C
+:10717000044606F0CEFB204670BD70B51E46144690
+:107180000D001AD0002C18D06168002915D00121FB
+:10719000FEF794FF00280FD12068FEF711FD0028AC
+:1071A0000AD106F0B2FB324621462846FFF75AFACA
+:1071B000044606F0AEFB204670BD102070BD70B5D1
+:1071C00015460C0023D00221FEF778FF00281DD1C0
+:1071D0002068FEF7F5FC002818D106F096FB29463A
+:1071E0002046FFF70CFE0DE0B86400003C060000EE
+:1071F0006013002002300000032800000028000077
+:1072000001340000044606F084FB204670BD1020C7
+:1072100070BDF8B51C4615460E46074600F01FFA2D
+:10722000002805D123462A4631463846FFF786FE18
+:10723000F8BDFFB583B01E4615000F460FD006F00F
+:1072400064FB01A800900023F74A3946039806F032
+:10725000EBFC044606F05DFB002C03D014E010208C
+:1072600007B0F0BD002E0CD006F04FFB00200090C0
+:107270002A8833463946039806F0D6FC044606F0C1
+:1072800048FB6846808828802046FEF7DCFCE7E75C
+:10729000002906D0E54B0A885B899A4201D8E44868
+:1072A000704769E610B586B004236C46A382DF4BB5
+:1072B0005C898C4201D2914202D9DD4806B010BDF2
+:1072C0006C462182628200210091019119892180FE
+:1072D0000221A17005A9029104A903916946FFF753
+:1072E0004BFEEBE7F0B591B00D4681206946087181
+:1072F00005F002FC0646002D08D02878CB4C01286A
+:1073000006D0022828D0072011B0F0BD1020FBE7DE
+:10731000A98801AAFEF7CAFC0028F5D1B00734D528
+:1073200068460079002820D1A879C0071DD006F052
+:10733000ECFA002000906A892989A088EB6806F0A1
+:10734000ECFA6946087106F0E4FA69460879002803
+:107350000BD0FEF778FCD7E7A98801AAFEF7A6FCB8
+:107360000028D1D1342006420FD001216846017295
+:10737000017301794173F00609D5A188684601823D
+:10738000A18A01832069059004E00820BCE7A08859
+:1073900069460882FAF72CFC05461720694688835F
+:1073A0000AAA2B46023207A902A805F077FF074672
+:1073B0006878000701D5FAF737FC002F03D038466C
+:1073C000FEF7A9FCA0E7F00603D5207B06210843C1
+:1073D0002073B00602D50020FEF7C8FE08A8009072
+:1073E00069468B8B208804220121FEF77BF98BE70D
+:1073F000F0B5002695B014460D4600290FD0022C9A
+:107400004FD3A71EBAB288480AF02EF929191039AD
+:10741000CA7B8B7B11021943884242D1BCB201A9BD
+:10742000012006F06FFB7AE0029F3888010776D5CD
+:10743000002D41D0A9190691CA788B78361D11020A
+:10744000B6B219438919A1422BD869468A8906998F
+:107450004B7809781B020B439A4222D1C00623D5F0
+:1074600006F053FA07A800900698AB19C178807807
+:107470000A0206990243487809780002084300216D
+:1074800006F04BFA009006F044FA009800283ED12E
+:107490000698C178827808026946898B1043884231
+:1074A00002D00B2015B0F0BD0698C1788278080292
+:1074B0001043801986B22EE0C0062CD5002007AA02
+:1074C00001461154401C80B21028FAD306F01DFA70
+:1074D00006A800906846002380891022194606F00D
+:1074E000A3FB0090002803D006F013FA00980EE0EA
+:1074F0000BA86946009088890A8B07AB002106F02B
+:107500000CFA009006F005FA0098002803D0FEF768
+:107510009AFBC7E703E0388810218843388001A828
+:1075200006F0F8FA002800D17EE7404D698800296E
+:1075300021D0012268460276027700244477018434
+:10754000172181850EAA234602320BA906A805F051
+:10755000A5FE002802D0FEF7DEFBA3E70CA80090F2
+:1075600069468B8D288804220121FEF7BBF800288C
+:1075700098D16C8096E7002094E7F0B5002487B09E
+:1075800015460E46002A04D002A9012006F0BAFAD8
+:1075900040E0102064E60398007800073AD506F032
+:1075A000B4F901A8009068460023008A1E4A1946D3
+:1075B00006F03AFB074606F0ACF9002F23D1002E67
+:1075C00023D068468088298820183719001D8142F9
+:1075D00036D36946098A3970090A797069468988FB
+:1075E000B970090AF97006F090F901A8694600908F
+:1075F000088A8A883B1D002106F016FB074606F024
+:1076000088F9002F01D003202AE6684680882018D8
+:10761000001D84B202A806F07DFA0028BBD08228A3
+:1076200008D0FEF710FB1BE6FFFF00004013002010
+:1076300002300000002E0ED02988A01C814201D209
+:107640000C200DE62246314639480AF00DF8311972
+:107650000870000A4870A41C2C80002000E600B5C9
+:1076600085B06946FEF797FC00280AD16846007C81
+:1076700003000BF02BFB08052F2F2F2F08080531D7
+:10768000032005B000BD68468078012807D1684610
+:1076900000880321C902401A1CD001281AD068466C
+:1076A0008079012806D16846808815214902401A50
+:1076B00005280FD96846807A012811D168460189CA
+:1076C00029200002081A05D0022803D0032801D07F
+:1076D000042805D10F20D4E7164917480BF0F1F91B
+:1076E0000020CEE738B5154A0021518003791AE011
+:1076F000CC002418A46800946C462488250707D57C
+:10770000E50605D5D90008182038C08B508006E062
+:10771000640406D59171C9000818C08890800120C2
+:1077200038BD491CC9B28B42E2D8002038BD0000E8
+:10773000FFFF0000B8640000330200004013002087
+:10774000F8B50125F84902260E603F27F7493F02A8
+:107750008F60F7490022CA63CD63F649C96A0907F9
+:107760000ED4F4494031CB6AF34A53620B6B9362F7
+:107770004B6BD3628B6B1363C96BD3051943516396
+:10778000EE49EF4CC969002829D001282BD0FF20F1
+:10779000ECA16E300BF095F9EE48A063FF200430A9
+:1077A00060632563EC49032008602061E44996206A
+:1077B00040314860DD48E94940304163E649FC39E1
+:1077C0000163E649091FC163E349F0398163D74882
+:1077D0004760E34910204860E2480660F8BDE2488F
+:1077E0006061E24804E0E148E0306061DF48801F0A
+:1077F0000143A161D0E70120D0494006C86170472C
+:1078000010B5CE4C0020A070214660702031487029
+:1078100008746061A072A06209F02AFBA061204692
+:10782000343009F038FF002804D0FF20C5A13A30D9
+:107830000BF047F901204006E0610020FFF780FFD0
+:1078400010BDBE49012008707047BC490020087077
+:10785000704770477047BA4940310028086802D025
+:107860000122104301E0400840000860704770B5F5
+:107870000C46B24D01460622E81C0AF085FF6C72E8
+:1078800070BDAE48203040787047AC4A917050705F
+:10789000704770B50D460446082904D9FF20A9A1F8
+:1078A000CB300BF00EF90022B14809E0910063588B
+:1078B00009180B6053001B191B8C0B62521CD2B2AF
+:1078C000AA42F3D3206BAA494031086070BD0B2354
+:1078D000DB4310B5C21A9A4998421FD008DC1C320B
+:1078E00022D00A2A20D0142A1CD0182A08D117E046
+:1078F000083011D004280DD0082809D00C2805D054
+:10790000FF2090A1F7300BF0DCF810BD04200CE054
+:1079100000200AE0FC2008E0F82006E0F42004E063
+:10792000F02002E0EC2000E0D820C86010BD8348C1
+:107930002030007B704710B5814CC17861620AF03D
+:1079400084FF0002E06110BD252808D0262808D059
+:10795000272808D041000A2807D8091D06E002217F
+:1079600005E01A2103E0502101E0891DC9B2744AE3
+:107970009160734940314861704770494861704770
+:1079800070B56E4DA87200F028FBA87AC0073CD0F5
+:10799000714C2068800703D46AA176480BF091F8F7
+:1079A000A87A010619D5800707D5724865A1801C01
+:1079B0000BF087F8A87A00060FD55C4E2878403681
+:1079C000012811D0002804D0A3205EA180000BF074
+:1079D00078F869487061A8693061A87A800714D581
+:1079E0002068C00708D102E06348001FF2E7A52025
+:1079F00054A180000BF065F8A87A4007206801D5F3
+:107A0000042100E008210843206070BD70B5012406
+:107A10004A4D002807D0012818D002281AD055480E
+:107A200048A145380BE000F0D8FA53482978001FE8
+:107A3000012907D0002907D04E4842A158380BF041
+:107A400040F870BD046070BD446070BD8120FFF7D8
+:107A500097FF70BD00F0C1FA6869002804D145485D
+:107A600038A150380BF02DF86969A86A40184349CD
+:107A7000C8602E484249403001623F490C314162A2
+:107A80002A49001548603F4884602C48203004741F
+:107A900070BDF8B50C2069460870314C6068C006AE
+:107AA000C50F1026A66034480021FC300161324B1E
+:107AB00001221B1F1A610BE000BF00BF00BF00BF07
+:107AC00000BF00BF00BF00BF6B461A78521E1A707D
+:107AD0006A461278002A02D00269002AECD00161BD
+:107AE00068460078002804D1224816A131380AF0EF
+:107AF000E8FF002D00D06660F8BD10490020C86185
+:107B0000704710B50AF0A1FE00020D49000AC863D3
+:107B100010BD054902200860704703490220086033
+:107B2000104908607047000080E100E000F5014066
+:107B3000C01F004080000010001700409C13002070
+:107B4000001500407372635C68616C5F7263732E32
+:107B5000630000005B06000000120040448000400B
+:107B60000013004080E200E006010200250003004F
+:107B7000001600407B0200000410004040850040D9
+:107B80004C81004000050040FB4902200860C9E725
+:107B9000FA490870C6E710B5F94809F084FD0028D5
+:107BA00004D02B20F74900010AF08BFF10BD10B55F
+:107BB000F34809F090FD10BDF3494860B2E7F04981
+:107BC00010B53439F14B0022C8605A60896A081830
+:107BD000EF49486000F008FA10BDE94810B5C2212D
+:107BE0003438C160E94A00215160806AE849C230F6
+:107BF000486000F0F9F910BDE64900208861C861CD
+:107C0000DF493439C860E24948608BE7DC4900202D
+:107C10003439886286E73F20DE49000240398860B7
+:107C200080E7D748DA493438806AFE30886079E7DF
+:107C3000D7490020886075E7D74801681022914332
+:107C40000160D649012088616CE7D5490020C861F0
+:107C5000D148016810221143016063E700B5FFF7C6
+:107C6000EBFFC74900203439087400BD00B5FFF7A9
+:107C7000ECFFC34901203439087400BDC849CA6902
+:107C8000012A01D000204DE7BF4A403292685206D7
+:107C9000520E524202700020C861012042E7F8B53E
+:107CA000BF4C2069012806D00021B548343800783F
+:107CB000012802D004E04021F7E7E268012A04D05D
+:107CC00000220A43012802D004E02022F9E761687B
+:107CD000012905D000211143B24A002802D007E053
+:107CE0001021F8E71368012B02D1E368012B04D0BF
+:107CF00000230B43002802D007E00823F9E71168AE
+:107D0000002902D1E168012905D000221A439F4EC3
+:107D1000002802D004E00422F8E77168012904D0A9
+:107D200000211143002802D004E00221F9E7606835
+:107D3000012829D000259C480D4301680906090E39
+:107D400002D06169012900D000218D4F143F3973A1
+:107D500000680006000E02D0A069012800D00020B3
+:107D600078738B488068002803D000F0ABFA0128B4
+:107D700000D00020B8730021E16021616160616181
+:107D8000A16171602846F8BD0125D4E77C48012136
+:107D90001438C173C6E6F8B5794E0127143E307C1D
+:107DA0000025002827D07C4C206800902560FFF734
+:107DB00070FE009820607A48C560056145604561A5
+:107DC000856174490015403988607848856030467F
+:107DD000203801787148012909D0002909D0694962
+:107DE00073480AF06EFE0AF06BFF3574F8BD076049
+:107DF000F9E74760F7E7FFF752FF04460020F0730A
+:107E0000634842685E4D343D6A620068A862297822
+:107E1000002909D1A978002906D05B4B5B681B7843
+:107E20000B406978994309D000213170E10707D0F0
+:107E3000104602F031FC0121A86A08E03770F5E72E
+:107E4000A10601D5022102E0A10702D5002102F01E
+:107E500030FC4D4F796806220931E81C0AF067FCB6
+:107E6000002807D1687A79680978C909884201D160
+:107E7000012000E000207070204600F0BBF83F4871
+:107E8000C2270078002815D0012828D002283BD02E
+:107E900003285AD03B4947480AF013FE287C0028A3
+:107EA00004D02878002865D0FFF7C6FE287800287F
+:107EB00061D08BE0A00701D501F001FC200703D5BC
+:107EC0000120EF6001F034FC600703D50020EF6073
+:107ED00001F02EFCA006E1D501F09EFBDEE7A00735
+:107EE00001D503F08BFE200703D50120EF6003F0DE
+:107EF00005FE600703D50020EF6003F0FFFDA0063C
+:107F0000CCD503F087FDC9E7A00703D5BF20044007
+:107F100009F07EFB200705D5BF2004400120EF605B
+:107F200009F075FB600705D5BF2004400020EF6015
+:107F300009F06DFBA00603D5BF20044009F066FBE5
+:107F40006006ABD509F065FBA8E7A00701D509F0ED
+:107F500063FB200703D50120EF6009F05CFB60079D
+:107F600003D50020EF6009F056FBA00696D509F076
+:107F700051FB93E720E022E000E100E05400002004
+:107F8000D0130020447B00000015004040810040D9
+:107F90004085004040F501400012004000100040C4
+:107FA0000011004000140040401600400005004051
+:107FB0006F0300009F040000FFF747FE76E7E868C4
+:107FC000002803D0A96A091826484160F07B0028E0
+:107FD00000D10BE70AF074FEF8BD234903200860C6
+:107FE0002249002008619DE520482149C1612149BD
+:107FF000816197E570B50546FFF7EFFF1E4CA17A4A
+:10800000080701D568071CD41C4AC80605D5507B53
+:10801000002802D0907B002813D0880602D5107863
+:1080200000280ED1480602D55078002809D000203B
+:108030008A070026002A07DA4A0704D5012222709F
+:1080400002E00120F4E72670CA0709D0AA0705D488
+:10805000890705D5002803D0A80601D4FFF719FD2C
+:10806000A67270BD408500400012004040F50140FE
+:1080700010100040448100409C130020BC130020DD
+:108080002E48002101704170704770B506461446B5
+:108090000D46012000F072F828490120284B087095
+:1080A0009E60DC601D6170BDF8B50446012000F0E3
+:1080B00065F822490120087021494C6021490026B9
+:1080C0004E601121204D8902A960204F002C0AD05A
+:1080D000012C03D01EA140200AF0F3FC3E601120C9
+:1080E00080026860F8BD386001208002F9E710B5B1
+:1080F0001248017800290ED01121134A890291609B
+:1081000010494A680021002A03D0154A12684270BB
+:1081100000E041700170002000F030F810BD074809
+:108120000178002907D007484068002802D00C4891
+:108130000068C0B2704740787047000055000020CA
+:1081400000F5004000F1004000F5014000F2004061
+:108150007372635C68616C5F63636D2E6300000023
+:1081600000F4004001202949C0030860284900208C
+:1081700008701120274980028860704770B5244D2F
+:1081800004462878A04207D0002C05D0002803D050
+:1081900021A14D200AF095FC2878A04210D00020A3
+:1081A00022492C70002C23D01A4A214D214B8032B9
+:1081B000012C06D0022C13D017A16A200AF081FCF2
+:1081C00070BD0860022008604D6112481A494030B5
+:1081D00001624362081D10601648001D506070BDAA
+:1081E0000860032008604D6114481060536070BD42
+:1081F00008600860112007498002886070BD10B5D2
+:1082000005A173200AF05DFC10BD000080E100E0D4
+:108210005700002000F501407372635C68616C5F79
+:1082200063636D5F6161722E6300000000F50040C2
+:10823000D413002000F000400011004048810040AD
+:10824000364800210170417010218170704770B56F
+:10825000064614460D460220FFF790FF01202F49E5
+:108260002F4A0870E41E14619660556070BD10B509
+:108270000220FFF783FF29490120087029480021C7
+:1082800001604160816028490014486010BD10B54C
+:10829000224C2078002811D00120234980038860D7
+:1082A00000F02EF80021002804D0012060701F4843
+:1082B000006801E061701020A07021700020FFF7BD
+:1082C0005DFF10BD10B515480178002905D000F0FC
+:1082D00017F8002800D0012010BD407810BD10B55F
+:1082E0000E480178002909D000F00AF8002803D0D0
+:1082F0000E480068C0B210BD102010BD807810BDBF
+:1083000008480168002905D04168002902D080682A
+:10831000002801D00020704701207047580000203D
+:1083200000F5004000F1004000F5014000F400407D
+:1083300010B528210AF085FA10BD40788006800E1D
+:10834000704740788006800EC01C70472820704718
+:1083500070B5054600780A0700090001120F1043A6
+:1083600028700B000AF0B2FC070507050705090590
+:108370000B00062408E00C2406E0222404E000247C
+:10838000FEA158200AF09DFB6878800980012043F7
+:10839000687070BD00780007000F704710B50622A6
+:1083A000C01C0AF0F1F910BD0B4610B5C11C062225
+:1083B00018460AF0E9F910BD10B5062209300AF096
+:1083C000E3F910BD0B46014610B5062209311846E7
+:1083D0000AF0DAF910BD0278BF23C9071A40490E26
+:1083E0000A430270704700784006C00F7047027859
+:1083F0005206520EC9010A43027070470078C00944
+:10840000704770B50C460546C11C2046062209304F
+:108410000AF0BAF920784006400E20702978490603
+:10842000C90FC9010843207070BD70B515460E46CE
+:1084300004461F2A03D9D1A1A9200AF042FB2046F5
+:108440002A46314609300AF09FF96078AD1D80094F
+:108450008001A906890E0843607070BD70B505469D
+:1084600040780E468406A40E062C03D2C3A1B92080
+:108470000AF027FBA41FE4B21F2C00D91F242946B1
+:108480002246093130460AF07FF9204670BD70B5AA
+:1084900015460E4604461F2A03D9B8A1CD200AF07E
+:1084A00010FB20462A46314609300AF06DF9607803
+:1084B000AD1D80098001A906890E0843607070BD5A
+:1084C00070B5044640780E468506AD0E062D03D2E3
+:1084D000AAA1DE200AF0F5FAAD1FEDB21F2D03D9D7
+:1084E000A6A1E2200AF0EDFA21462A4609313046DB
+:1084F0000AF04AF9284670BD10B504220F300AF080
+:1085000043F910BD0B46014610B504220F31184641
+:108510000AF03AF910BD10B5032213300AF034F90D
+:1085200010BD0B46014610B50322133118460AF060
+:108530002BF910BD4176090A81767047817E427E13
+:10854000080210437047C176090A01777047017F1E
+:10855000C27E0802104370474177090A817770474D
+:10856000817F427F080210437047C175090A017676
+:108570007047017EC27D08021043704781757047C5
+:10858000807D704720300279C90652095201C90E18
+:108590000A430271704720300079C006C00E704750
+:1085A00020300279D206D20E49010A430271704787
+:1085B000203000794009704710B505221F300AF0BD
+:1085C000E3F810BD0B46014610B505221F311846D1
+:1085D0000AF0DAF810BD30B5411C837E0A46190254
+:1085E000D37D447E927D1B0221431343674D827DE0
+:1085F0008C1FAC4210D8002A0ED0082A0CD88A4210
+:108600000AD28B4208D8817F427F08021043A91DFD
+:10861000884201D8012030BD002030BD00210A462B
+:108620004254491C2229FBDB70474078C006C00E2B
+:1086300070474078C006C00EC01C704722207047AB
+:1086400010B502788B07920892009B0F1A430270B4
+:108650004278520952014270012908D0022906D0FD
+:10866000032905D0FF2045A1A3300AF02AFA10BD46
+:1086700001210A43427010BD10B502788B079208A1
+:1086800092009B0F1A4302704278520952014270C5
+:10869000012908D0022906D0032905D0FF2037A1DF
+:1086A000BD300AF00EFA10BD01210A43427010BD20
+:1086B00000788007800F70470278FB23C9071A40B3
+:1086C000490F0A430270704700784007C00F704797
+:1086D0000278F723C9071A40090F0A43027070474E
+:1086E00000780007C00F70470278EF23C9071A40CF
+:1086F000C90E0A43027070470078C006C00F704769
+:1087000070B50546C1700B000AF0E0FA0E080A0CBD
+:108710000E1012120C14141212160C180C2413E062
+:10872000082411E002240FE017240DE00D240BE0D3
+:10873000012409E0092407E0062405E0452000247F
+:108740000EA1C0000AF0BDF968784009400120433D
+:10875000687070BDC078704770B5044640780E46AA
+:10876000C506ED0E1B2D03D904A109480AF0A9F98D
+:108770006019C01C042231460CE000007372635C77
+:10878000756C5F7064752E63000000007A0C000049
+:108790003A02000009F0F8FF70BD70B50446407859
+:1087A0000E46C506ED0E1B2D03D9A049A0480AF0C0
+:1087B00088F96119C91C0422304609F0E5FF70BD33
+:1087C000C171090A01727047017AC2790802104327
+:1087D00070474172090A81727047817A427A0802B1
+:1087E00010437047C172090A01737047017BC27A56
+:1087F0000802104370474171090A817170478179FD
+:108800004279080210437047017170470079704740
+:108810004173090A81737047817B427B08021043D0
+:10882000704730B5411C037A0A46C47919022143C6
+:10883000537914791B0223437E4D00798C1FAC427F
+:1088400010D800280ED008280CD888420AD28B42B3
+:1088500008D8D07A917A00020843A91D884201D82D
+:10886000012030BD002030BD10B50522001D09F0EB
+:108870008BFF10BD0B4610B5011D0522184609F0EF
+:1088800083FF10BD4172090A81727047817A427A72
+:10889000080210437047017170470079704710B5A6
+:1088A0000822001D09F070FF10BD0B4610B5011D18
+:1088B0000822184609F068FF10BD0A78027349784B
+:1088C00041737047027B0A70407B4870704710B557
+:1088D00008220E3009F058FF10BD0B46014610B5B6
+:1088E00008220E31184609F04FFF10BD10B50422C2
+:1088F000163009F049FF10BD0B46014610B50422A1
+:108900001631184609F040FF10BD10B50822001DB1
+:1089100009F03AFF10BD0B4610B5011D082218469C
+:1089200009F032FF10BD10B504220C3009F02CFF05
+:1089300010BD0B46014610B504220C31184609F053
+:1089400023FF10BD017170474171090A81717047A1
+:10895000C171090A017270470079704781794279C3
+:10896000080210437047017AC27908021043704729
+:108970000171704700797047017170470079704745
+:1089800010B50822001D09F0FFFE10BD0B4610B502
+:10899000011D0822184609F0F7FE10BD10B5082287
+:1089A000001D09F0F1FE10BD0B4610B5011D082297
+:1089B000184609F0E9FE10BD70B515460E4604468E
+:1089C0001B2A04D93720194900010AF07AF82A46EF
+:1089D0003146E01C09F0D8FE6078E9064009400104
+:1089E000C90E0843607070BD70B5054640780E46EC
+:1089F000C406E40E1B2C04D9DF200C4980000AF0C9
+:108A000060F82246E91C304609F0BEFE204670BDE3
+:108A10004078C006C00E1B2801D8012070470020F6
+:108A2000704710B5222209F0AFFE10BD7C87000010
+:108A3000430200007A0C0000FEB50F4601460646D0
+:108A40000546C031203640350446032F04D0002FA0
+:108A50002BD0012F29D049E000206080A080E08049
+:108A600020816081A082E082E873A074E074A07627
+:108A7000E076A073E0732074607430740123AB73EC
+:108A80006882E88208762146A883603108702883CE
+:108A90002873687320776077B072B0730872487279
+:108AA00088720A7488746883FEBD00206882E88238
+:108AB000012F50D0E08B0090608C0190C000009995
+:108AC00009F0DCFE401C80B2A882009919224143C3
+:108AD0009202914201DD401EA8827D200002009991
+:108AE00009F0CCFE401CE883002F01D0022FDBD11F
+:108AF000307AC006C00E30720020E872221824219D
+:108B00008B5C4032D9075B08DE07C90FF60F71187E
+:108B10005B08DE07F60F71185B08DE07F60F7118A9
+:108B20005B08DE07F60F71185B08DE07F60F711899
+:108B30005B08DE07F60F71185B0859189171EA7A25
+:108B4000401C5118C0B2E9720528D7D3002FABD111
+:108B500000202874FEBD4A7F2046E030022A12D051
+:108B6000097F022913D050A1722009F0AAFF012029
+:108B700000900190E08B698B4843009909F08CFECE
+:108B8000688301989AE7818800910089F1E7018A5A
+:108B90000091808AEDE770B504464034E67A0546D8
+:108BA000002E68D0252E66D8002964D03C20405D78
+:108BB000227B48431018252109F060FE08462173E6
+:108BC0004207C908520F3C4B691820319A5C097959
+:108BD0008A4367D0314609F051FE491CCAB20020D1
+:108BE00006E0002804D0291840314979511ACAB248
+:108BF000291846235B5C93423AD320310979C94353
+:108C0000CB07DB17D21A521E1206120E34D08B0776
+:108C1000DB17D21A521E1206120E2FD04B07DB178B
+:108C2000D21A521E1206120E2BD00B07DB17D21AC5
+:108C3000521E1206120E27D0CB06DB17D21A521E76
+:108C40001206120E23D08B06DB17D21A521E120602
+:108C5000120E1FD04B06DB17D21A521E1206120E2E
+:108C60001BD00906C917511A491E0A06120E17D041
+:108C7000401C0528B5DB70BDC00013E0C000401CDF
+:108C800010E0C000801C0DE0C000C01C0AE0C00065
+:108C9000001D07E0C000401D04E0C000801D01E091
+:108CA000C000C01D607370BD7372635C6C6C5F75D7
+:108CB00074696C2E63000000042D010010B5FF489C
+:108CC0000021017041708170C17041718171C17169
+:108CD000083008F0E0FC002804D0FF20F8A1843020
+:108CE00009F0EFFE10BD10B5F44900204872081DD0
+:108CF00008F0D1FC002804D0FF20F1A1C33009F016
+:108D0000E0FEFFF7DBFFF148FFF788FC0021EF48AA
+:108D1000FFF7EAFC0121ED48FFF792FC10BDE2E706
+:108D20001B207047E5494A7A002A01D0002070478D
+:108D3000488101204872704710B5E0494A7A002AFC
+:108D400002D04989814201D0002010BDDB48001DBE
+:108D500008F0A9FC002804D0FF20D9A1B43009F004
+:108D6000B0FED648001D08F0B6FCFFF7A7FF0120B3
+:108D700010BD70B5D14C0025627A002A02D06289FC
+:108D8000824201D00D700DE0227863789A4203D3BD
+:108D900022786378D21A04E062782378D21A1023FA
+:108DA0009A1A0A70FFF7C8FF002801D065720120E7
+:108DB00070BDC2494A7A002A04D04989814201D152
+:108DC0000120704700207047BC490A784B78521C3C
+:108DD0001207120F9A4207D0097822225143BC4A47
+:108DE000891801600120704700207047B34801785E
+:108DF0004278491C0907090F914206D00178491CA5
+:108E00000907090F01700120704700207047AB4926
+:108E10004A7A002A04D04989814201D10120704751
+:108E200000207047A5490A784B789A4207D04978C4
+:108E300022225143A64A8918016001207047002070
+:108E4000704710B59D4C20786178884216D06078C4
+:108E5000401C0007000F6070201D08F024FC002853
+:108E600004D0E078401CE070012010BDA078401CC8
+:108E7000A0709248001D08F02EFCF5E7002010BD00
+:108E80008E4801784078814201D10120704700204E
+:108E900070478A4801784278914202D3017840783D
+:108EA00003E041780078081A1021081AC0B2704710
+:108EB0000F20704770B5814C0D46617A002916D09D
+:108EC0006189814213D100262E70201D08F0EBFB32
+:108ED000002805D1A0782870A670201D08F0FBFBA3
+:108EE0002878E17840182870E670012070BD0020D5
+:108EF00070BD76490160704770494A7A002A04D0F3
+:108F00004989814201D101207047002070476B4997
+:108F10004979002901D0002070476E490160012085
+:108F2000704766484179002901D00020704701212F
+:108F300041710846704761494A7A002A04D049893C
+:108F4000814201D101207047002070475B49497977
+:108F5000012901D0002070475E490160012070475F
+:108F600056484179012901D0002070470021417104
+:108F70000120704751484079012801D001207047F5
+:108F8000002070474D494A7A002A04D0498981421D
+:108F900001D1012070470020704770B5474C05464D
+:108FA000A0790721401C09F069FCE079814208D0D2
+:108FB000A0792221484347492231401828600120E6
+:108FC00070BD002070BD10B53C4C0721A079401C3D
+:108FD00009F054FCE079814207D0A0790721401CB8
+:108FE00009F04CFCA171012010BD002010BD3348D8
+:108FF0008179C079814201D10120704700207047FA
+:109000002E494A7A002A04D04989814201D101209F
+:1090100070470020704710B504462848083008F013
+:1090200042FB002815D125498879CA7990420CD095
+:10903000C8792221484327492231401820601F481F
+:10904000083008F048FB012010BD1C48083008F02B
+:1090500042FB002010BD10B504461848083008F047
+:1090600022FB002815D115498879CA7990420CD085
+:10907000C8792221484317492231401820600F48FF
+:10908000083008F028FB012010BD0C48083008F01B
+:1090900022FB002010BD094810B5083008F003FB82
+:1090A000002822D1054CA079E17988421AD0E079D4
+:1090B0000721401C09F0E2FBE1710DE05C0000209B
+:1090C0007372635C646D5F712E6300002F17002064
+:1090D000FF1300201F1600202046083008F0FBFA7E
+:1090E000012010BD0C4808F0F6FA002010BD0A4817
+:1090F00008388179C079814201D101207047002070
+:109100007047054808388179C079814201D1012032
+:1091100070470020704700006400002070477047CF
+:10912000FF2070477047704700207047002070474D
+:1091300000207047002070470020704700207047D3
+:1091400000207047002070470020704701207047C2
+:1091500000207047002070470020704700207047B3
+:10916000F8B5FA4D0446A87F002600280CD0002947
+:1091700023D1667010202070E87FA0702846203030
+:109180000078E070AE7718E0287A012801D000203E
+:10919000F8BD002911D16670EC49687A01270A31BF
+:1091A000002801D0132000E0052020701422A01C0C
+:1091B00009F0EAFAA7716E722E720120F8BDF8B5B7
+:1091C000E3480078002802D00C273846F8BD002775
+:1091D000DE4D3C46203DAF74EF742F7528466F730B
+:1091E0002038DA4E47737771687D002804D0FEF787
+:1091F0001FFDFFF74CF86C7534727472B477D34866
+:109200002430FFF795F8D1484C30FFF791F8D0485B
+:109210004470DAE710B5CE4C00232370CB4C203CD1
+:109220006375CA4B01241C71603B583307C3FFF7B9
+:10923000C6FF002803D0C7A1FF2009F042FC10BDE3
+:10924000C2482038807C7047F8B5C04D0646407B48
+:10925000203DE873BD4837791346AF73B27B827106
+:109260000446603C217006221946601C09F08CFA05
+:10927000B07960730622F11DE01D09F085FA687B64
+:109280000126002800D0EE74B0484038407B00280A
+:1092900000D02E75002F09D0012F09D0022F24D025
+:1092A000032F43D0FF20ABA14B3013E000211DE082
+:1092B000A64801212430FFF74BF8A448E11D2430D3
+:1092C000FFF77AF8607B002807D0012807D0FF203D
+:1092D000A0A1413009F0F5FB0CE0002100E00121E4
+:1092E0009A482430FFF783F804E006219748243099
+:1092F000FFF72EF89548611C2430FFF74FF893488C
+:1093000021782430FFF767F8904804214C30FFF7AC
+:109310001FF88E48611C4C30FFF740F88B482178CD
+:109320004C30FFF758F8AE740020F8BD0221DDE79D
+:1093300070B50446854D0020203D287528462246FC
+:10934000323809F021FA2846203844730120287564
+:1093500070BD7E490871704710B57C4C0022203CDE
+:10936000E274607302462046123809F00DFA0120BB
+:10937000E07410BDF8B500F02DFB744C0025203CC6
+:10938000607D002804D0FEF753FCFEF780FF657572
+:109390006F4E3570FEF70BFCA07B012804D0002136
+:1093A000084601F02DF9F8BD0021022001F028F94E
+:1093B000664C207A0127002809D0A07F0028F2D12E
+:1093C0000520E077204620300570A777F8BD70783B
+:1093D0000028FBD05D4906226039487BE073C91D37
+:1093E0000846693009F0D0F93C20A07227727570E8
+:1093F000F8BD10B5554C203CE17B207CCA0701D05C
+:10940000C2070BD08A070FD582070DD42620FEF79E
+:109410009BFA207C02210843207410BD2520FEF712
+:1094200093FA207C0121F6E74907F6D54007F4D4EA
+:109430002720FEF789FA207C0421ECE770B5444828
+:109440000078002861D1414C203CA07C00285CD0F1
+:10945000FEF7A1FB0026267466743046FEF798FBE3
+:109460000020FEF76DF93F48FEF765FA2546403DBE
+:10947000296E8857FEF72BFA3A48C01EFEF741FBCB
+:10948000FEF7BAFBFFF7B5FFFEF7DBF9FEF77CFB53
+:109490000120FEF7BBFA0F210520FEF7F6F9297827
+:1094A000681CFEF7E4F9A07B01280AD0E07C0028C4
+:1094B00007D0214612390846627B5630FEF7B5FFC9
+:1094C000E674207D002808D0204840380146427BC1
+:1094D00012398C30FEF7DBFF2675E86D0178002924
+:1094E00003D00178001DFEF7D4F9A86D017800299A
+:1094F00007D00178154A401C7732FEF7A8FE0120FC
+:109500006075FEF754FB002070BD0C2070BD104943
+:109510004860704770B50546FEF76EFB002D06D01B
+:109520000020FEF72DFAFEF78CF9FFF762FF074CDB
+:10953000203C607C002819D0A07B012803D105A124
+:10954000094809F0BEFAFFF715FF70BDB4170020F7
+:10955000680000207372635C6C6C5F6164762E63DC
+:10956000000000000F2D0100CF0300000126002D98
+:1095700004D00220FEF74AFAFE484671FD48243026
+:10958000FEF71AFB012008F03CF8FEF762F9A07B19
+:1095900000280ED001280CD002280AD003280AD0B7
+:1095A000F549F64809F08DFAE07B217C884306D026
+:1095B00009E0032000E00120FEF7E2F9F4E7A07BD8
+:1095C000012803D06674EE480670BEE700202074C0
+:1095D000F9E710B5FEF7DFFAE948007800280ED168
+:1095E000E4482038807C002809D00020FFF792FF53
+:1095F000F6F7F9FEDF480079012806D007E000F011
+:10960000E9F9FEF7D4FA0C2010BD09F059FB00204F
+:1096100010BDDB494870704770B500F0AFFE002800
+:1096200019D0FF202D30FEF7A8F9D54E3078D14C57
+:10963000012813D0022801D003282ED0CE49D148CA
+:1096400009F03FFA3078002807D0F6F7CCFE2079F1
+:1096500001282CD030E0FFF78DFE76E7C54D203D88
+:10966000A87B032819D0FEF7B8FA687D002803D03C
+:10967000FEF7FDFDFEF7D5FABE487430FEF79CFA02
+:10968000012007F0BFFFA87B01280BD0A1796F2034
+:10969000012906D0032904D004E00120FFF73AFF96
+:1096A000D0E77F20FEF76CF902203070CAE76079BE
+:1096B000002801D1FEF76AFB0020607145E770B514
+:1096C000AC4C203C607D002803D0FEF7B1FAFEF7D9
+:1096D000DEFD00F053FE00281CD0A94D287802289A
+:1096E00004D0A848A4492B3009F0EBF9A07B01284D
+:1096F00013D0FF202D30FEF740F90120FFF70AFFBD
+:109700002878002808D0F6F76EFE9A4C20790128B8
+:1097100006D00AE0FFF72EFE17E799208000EAE75F
+:109720006079002801D1FEF731FB002060710CE761
+:10973000F8B50446FEF7FBF80546FEF7C3FD012821
+:1097400000D0002000908E480078022804D08D4878
+:109750008949673009F0B5F9864E203E707D0028B2
+:1097600003D0FEF765FAFEF792FDFEF745FA814851
+:109770007430FEF70FFE21007E4C07464DD0FEF7F9
+:1097800080F80028FAD03B0009F0A0FA06474747C6
+:1097900004471D47B07B0128F0D00098054304D151
+:1097A000A079002801D0022837D172484C30FEF74A
+:1097B00003FA012007F025FF0120FEF7E1F87048C9
+:1097C00003210170F5E06B4F74373846D438F978CF
+:1097D000C27991421BD13979027A914217D17979B4
+:1097E000427A914213D1B979827A91420FD1F979B3
+:1097F000C27A91420BD1397A027B914207D13978F2
+:10980000407B4906C90F814201D1012100E00021BE
+:10981000B07B012802D0002803D0C3E0002908D182
+:10982000C0E00098054304D1A079002801D00128A8
+:109830007ED150487430FEF7CEFE002878D0504DCF
+:109840004C49686804228331323008F09DFF387833
+:109850003E214006C20F68680A540622F91C3F30B8
+:1098600008F092FF4349686803228731363008F0D8
+:109870008BFF6868BA7D39210A543E4974310A7EEB
+:10988000CB7D12021A4342878A7E4B7E12021A4314
+:10989000C2830A7FCB7E110219430184354974319A
+:1098A0008A7F4B7F1102194341843249052293314B
+:1098B000243008F069FF2F486D68943001792F46F5
+:1098C000C906C90E20373977007940097877207AA0
+:1098D000002810D0A07F002858D1607A002801D03D
+:1098E000132000E005202349E07700202031087094
+:1098F0000120A0774AE01F48717D1030002925D053
+:109900000021A172A989A181B97FE17329460622AC
+:109910003F3108F039FFE88BE082288C2083688C87
+:109920006083787F2077607F00994008400000E0E6
+:1099300038E008436077FEF7D2FC617F4000C9073A
+:10994000C90F01436177012060721EE00021A172FE
+:10995000A989A181B97FE173294606223F3108F028
+:1099600013FFE88BE082288C2083688C6083787FEB
+:10997000207709E0B417002054950000ED030000A3
+:10998000680000206B02000001202072194D0020A9
+:10999000287000F01FF8FEF70AF90120696800F04E
+:1099A0002FFE06E0FF202D30FDF7E7FF0120FFF737
+:1099B000B1FD1048007800280BD0F6F714FD20798F
+:1099C000012804D16079002801D1FEF7DFF90020D9
+:1099D0006071F8BD10B5FEF719F9FEF70DF9FEF745
+:1099E00058F80020FDF7CCFFFEF715F9FEF795F8C3
+:1099F00010BD0000680000208107C90E002808DAA9
+:109A00000007000F08388008F94A80008018C069F4
+:109A100004E08008F74A800080180068C84000060B
+:109A2000800F7047F448C07D7047F44800780028E4
+:109A300001D00020704701207047F048007870473F
+:109A400010B5EE4A1378EC4CA47DA34202D007F087
+:109A500059F910BD1078032803D1E8490120891D68
+:109A6000887000F04AFE10BD38B5E44DE24CAD1DE3
+:109A7000687801281ED00121684606F041F8684642
+:109A80000078DF49000208F0F9FE68684118606854
+:109A900007F08FF86060DB48A060A18A00200029F1
+:109AA00010D06070032121702073A07ED249FFF78F
+:109AB000C7FF38BD7D21C900606807F07AF8606093
+:109AC000D148E9E70121A18202216170EAE7FFB5EF
+:109AD000C94C85B01C3461680191A1680391C749E4
+:109AE0001E46891E4A6807995388C91A89B202918D
+:109AF000002E04D025463C3521464C3102E0BE4DB7
+:109B0000114664310091BC4F03213C372970002875
+:109B100018D0BA49891E4968403101287ED00228F0
+:109B20005CD003287BD0B9A1BC4808F0CAFF2878D4
+:109B3000002E75D0032804D0B848B4A1093008F02D
+:109B4000C0FF35E1A068002804D1B448AFA1663851
+:109B500008F0B7FFA948B149801E40686031408FC6
+:109B600048434018069900F0CEFDE061A348AB4998
+:109B7000801E40686031C08B4843069900F0C3FDE9
+:109B80009E492062891E4B68A44A598FA0686032A2
+:109B9000514386464118E069A04A091A4C3A89188F
+:109BA0008C462033E1629D4A597E60325143411810
+:109BB0000818FF3016306062A06261467046081ACD
+:109BC000FF38974935388842B1D29649884204D245
+:109BD00092488EA1593808F074FFD0E0508F8F4A18
+:109BE0002169603250430818069900F08CFDE0614D
+:109BF00082488A49801E40686031C08B484306997C
+:109C000000F081FD2062A068002804D183487FA174
+:109C1000513808F056FF7948801E02E02FE05EE0E0
+:109C2000C1E040685621095A7F4B0029418F2269C3
+:109C30001DD059435118E269891AE1626269E168ED
+:109C4000794B5143E26989183922125C5A438A18C8
+:109C50005118FF3114316162C08B216A5843411A97
+:109C600072480818A062A168E06A401A81E059436E
+:109C70005118E269891A6268D3398918DDE7C88A00
+:109C8000002802D0A068002804D164485FA13938B8
+:109C900008F017FF59486449801E4068C28B4A4348
+:109CA000216A8E46511AE1628C4656226369125A25
+:109CB000E168D21A5943E3692030CB187146514309
+:109CC000407E594A5918504308184018FF30143044
+:109CD0006062564861466044A062A06848E0D08B4C
+:109CE000514A5043226A801A029A5043E062C88A5D
+:109CF000002805D0002E19D0B87D002816D0A1E08C
+:109D0000002E02D0B87D0028F6D10198002802D09C
+:109D10000398002804D141483CA1213808F0D1FE25
+:109D20000198E16AD3380818E06207E0019800283A
+:109D300004D08D2035A1C00008F0C3FE2F48801E3E
+:109D400042685620815A02980818216A4843400008
+:109D5000FF3014306062D08B334A5043411A33488D
+:109D60000818A0622448C07D00280BD0E16A03983F
+:109D7000081AFF382A492338884200D3D7E6022040
+:109D80002870D4E606F072FC01461B48006907F013
+:109D9000C7FBE16A081AFF3821491E388842EDD214
+:109DA000012009B0F0BD032802D1144907204870F2
+:109DB0001148E16A006906F0FCFE6860A16A606A09
+:109DC000884202D90098016001E00099086000987B
+:109DD000174900680818A8600848801E40688188F4
+:109DE0000798081A00B2002824DD022023E00000B2
+:109DF00000ED00E000E400E05018002072000020B8
+:109E000010270000F82A0000B78913007372635C02
+:109E10006C6C5F6C6D2E73302E630000820400004A
+:109E20004707000082020000E204000061FCFFFF1F
+:109E3000EF160000002068702E73002E04D0B87D4D
+:109E4000002801D00220ACE701204640BE76F7484A
+:109E5000807E2946FFF7F4FD0020A2E7F8B5F3481D
+:109E60003C30807EF14FF24D3C461C3400280CD033
+:109E70006968208F4988884207D17878002804D102
+:109E8000A920EC49C00008F01CFE06F0EFFB0146DB
+:109E9000386907F045FB00F044FC6968228F4B8865
+:109EA0001E18B24202DB521C228702E0401C181826
+:109EB0002087208F0A89904201D1401C2087B88AD0
+:109EC000032802D2401CB88201E0208F8880084617
+:109ED0004030828A408A4988101A401E401886B253
+:109EE00017E028786B6841002033D3485B7F415AE4
+:109EF0005B00C05A081881B2207E0023FFF7E7FDFF
+:109F0000002811D0012810D00B20CA49C00108F048
+:109F1000D8FD228FB01A00B20028E2DA6868082162
+:109F20002030417400F0A7FDF8BD208F401C208731
+:109F3000EFE770B5BD4C00261C3466600120A660BA
+:109F400000F0C9FBBA481F21801C41700078B74D52
+:109F5000030008F0BBFE044545033745B3482670AF
+:109F60003C30807EB24E002806D106F07FFB216C8B
+:109F700007F0D6FA002811DC7068228F41888A42E7
+:109F800004D10289511A4181428003E0511A418172
+:109F9000218F41806868206428610BE0A18E706881
+:109FA0004288891A4181A18E4180216C69602961B2
+:109FB000E16C4166706801F0FFFB00280DD09D49FF
+:109FC0009E4808E068682861FFF738FA002804D046
+:109FD0009A489849401D08F074FDF6F704FA70BDE0
+:109FE000964894490C30F6E7F8B505468F4A0120AB
+:109FF0003C3290758D4C17466576213F00260B004C
+:10A0000008F064FE09061D2E4E2B69691C64690068
+:10A0100020768748801C0078022807D0384607F051
+:10A0200042FB002803D1A07EA84200D12676207EE4
+:10A03000002803D1FFF77DFF00F0A0FBF8BD207ED4
+:10A04000002806D006F064FA6676384607F043FB2F
+:10A0500001E000F075FB2676F8BDFDF79CFEF8BD2B
+:10A060007348801C017802290ED0A17E0078A94295
+:10A070000DD0002804D0FF206E497B3008F021FD70
+:10A08000284606F0D8FAF8BDFFF7E8FEF8BD032829
+:10A0900003D0FF206749813015E0FFF7E5FCF8BDEC
+:10A0A000A07EA84204D0FF206249873008F009FD55
+:10A0B0005F48801C01780229E6D000780328ECD0A4
+:10A0C000FF205C498E3008F0FCFCE6E7284606F0ED
+:10A0D000B2FA6676F8BDFF2056499D3008F0F1FCD3
+:10A0E000F8BD524988755248801C00E020BF0278B4
+:10A0F0008B7D9A42FAD00078002803D000200022FD
+:10A100008A7570470120FAE710B500280BD00128A6
+:10A1100005D04A484749853808F0D3FC09E00320B8
+:10A12000FFF7DFFF01E000F049FB002801D000202D
+:10A1300010BD0C2010BDF8B5FF273D4D1F24D037B2
+:10A14000AD1C2E78330008F0C1FD040811030C117A
+:10A150000220FFF7C6FF002801D000240FE00C24E6
+:10A160000AE00120FFF7D0FF044603E031493846FA
+:10A1700008F0A7FC002C02D02878B042E1D1287862
+:10A18000002804D0FF202B49D53008F09AFC27493D
+:10A1900000201C3108761C39887501226A70244A17
+:10A1A00008325070C87508612046F8BD70B5044685
+:10A1B0000120FFF721FCC5B20B20FFF71DFCC0B248
+:10A1C000854204D0FF201B49A73008F07AFC01200B
+:10A1D000FFF712FCC5B21820FFF70EFCC0B2854293
+:10A1E00004D0FF201349A83008F06BFC0420C043C2
+:10A1F000FFF702FCC5B21920FFF7FEFBC0B2854293
+:10A2000004D0FF200B49A93008F05BFC08484470DB
+:10A2100006481B3007F03FFA05490020891C0870EA
+:10A2200002498875FFF787FF70BD000050180020B5
+:10A23000700000200C9E0000142D0100220300007D
+:10A24000F74840787047F649891E08707047F3B5A3
+:10A2500081B006F0E9F9F349884200D20846FF30A0
+:10A260009930EF4D87B22878002801D00C20FEBD30
+:10A27000ED4806F08CF9ED4CA076E9490320087012
+:10A2800000268D1DAE70A07E002804D19720E849DD
+:10A29000800008F016FC0298012827D0E5490198B3
+:10A2A00048436860012028700146684605F028FC94
+:10A2B00068460078E049000208F0E0FA0D4606F032
+:10A2C000D5F9791906F075FC6060DC48A0600320C0
+:10A2D0002070022060702673A07ED449FFF7B0FB87
+:10A2E000CF48A682072141700020FEBD06F0BEF9CE
+:10A2F000394606F05EFC6060D148A0602E700120F7
+:10A300006870E4E7704770B5C5490A78002A01D043
+:10A310000C2089E702220A70C14CC44DA41E1C35D2
+:10A320006060287E002804D0C248C1494E3008F041
+:10A33000C8FB207800234100C248425A616820319E
+:10A34000497F4900405A101881B21A461846FFF753
+:10A35000BEFB002804D0B748B549503008F0B1FB27
+:10A36000002068610121E8602976B049888262682E
+:10A370005188491E51802887A88655E770B5A8489E
+:10A380000124801D4078A94D002813D028461C3098
+:10A390008168AD48814202D8AA7D032A00D10024F9
+:10A3A000814207D9A87D032801D0012000E00020C8
+:10A3B000FFF72FF9A87D032800D10024204633E7BA
+:10A3C0009A481C300178491C0170026B81689142E7
+:10A3D00004D8007E012801D001207047002070477A
+:10A3E0000020704770B5914C1C34207E032849D161
+:10A3F0000021204620308175894DAD1E68684030AF
+:10A40000007C00283ED106F031F988490A690146EE
+:10A41000104607F085F8002834DD00F082F96968FD
+:10A42000401C4A888018A0860889A28E904229D9AB
+:10A430004888088140318A8A498A511A491E081879
+:10A4400086B21AE0287841007E48425A6968203175
+:10A45000497F4900405A1018A28E81B2207E012304
+:10A46000FFF735FB00280DD001280CD0022809D0B9
+:10A470006C486F49C43808F024FBA08E301A00B233
+:10A480000028DFDAD0E6A08E401CA086F5E7F8B5FC
+:10A49000664C634F00251C34BF1E012819D00720CD
+:10A4A000B91C487006F034F8604E304675761B30A3
+:10A4B00007F011F97878F8F7A5F8B5827868314691
+:10A4C0004088208701203C318875002000F003F986
+:10A4D000F8BD267E52495B48891E0A7853004A68B7
+:10A4E00011462031032E18D0267E022E21D0267E42
+:10A4F000012ED7D1497FC35A4900405A12891818F2
+:10A5000081B200230120FFF7E2FA0028CAD04548B3
+:10A510004749213808F0D5FAC4E76561E560497F0D
+:10A52000C35A4900405A1289181881B200230320E7
+:10A53000E9E75626B65A6661497FC35A4900405A30
+:10A540001289181881B200230220FFF7C0FA0121F6
+:10A550002176DAE7F8B5324E0021B61D7078334C1B
+:10A560000D46002801D075701AE03078002809D017
+:10A570000121684605F0C4FA684600782E490002B9
+:10A5800008F07CF970684118606806F012FB6060A2
+:10A59000257302206070607E2449FFF751FAA5827E
+:10A5A00005F0B6FF214865761B3007F094F81C488B
+:10A5B000801E4078F8F726F8002000F08CF8F8BDEF
+:10A5C00010B5030008F082FB060A0E0406130916F4
+:10A5D000012000E0002000F037F910BD0120FFF756
+:10A5E00056FF10BD114903201C31087610BD00F044
+:10A5F0003DF910BD0B480E498E3008F062FA10BDCF
+:10A6000070B50A4D002821D0054EB61D012828D06E
+:10A61000022837D003480649AD3008F052FA03E665
+:10A6200072000020F6050000E99F0000501800208D
+:10A630000C9E00007102000010270000F82A0000A4
+:10A64000B7891300142D01002E841300FFF782FF39
+:10A65000A97D9448002901D01F2100E00721417005
+:10A66000E2E5002490487470047600F046F8032078
+:10A67000F7F7C7F805F04CFF8B486C76401E07F0E3
+:10A680002AF8D1E5FFF766FF0120B07000F035F839
+:10A690000420F7F7B6F8C7E582490978022907D1FF
+:10A6A00081490A78002A03D148600A6B10180863B0
+:10A6B000704710B57C4A00290BD0012906D0022929
+:10A6C00006D07A497A4808F0FCF910BD401E00E037
+:10A6D000401F906010BD744910B51C39C875002822
+:10A6E00005D0F5F781FE0220F5F778FE10BDF5F7ED
+:10A6F0007CFE0120F5F77AFE10BD6A48002101704A
+:10A7000001214170704710B504460020002907D090
+:10A71000684808F0B3F80146204608F0AFF8401C3E
+:10A7200010BD10B500280AD05E49634A891E4968E9
+:10A73000C98B51435C4A126A891A08F09FF810BD10
+:10A7400010B558480078030008F0C0FA0414140348
+:10A750000A1401F035F900280BD05449574806E097
+:10A76000FEF737FF002804D054485049001D08F078
+:10A77000A8F910BD51484D490B30F8E710B505F068
+:10A7800053FF4849891E4968CA8B4B494A43464989
+:10A790000B6AD21AD33AFF2332330A63984202D2A9
+:10A7A0004748101802E0101A464A801808634648C5
+:10A7B0000A6B824200D81046086310BDF0B53A4CCF
+:10A7C000032685B01C3CA67520461B30009001E096
+:10A7D00020BF009806F067FF0028F9D10025A57575
+:10A7E00030480178032903D0007800281DD021E0EB
+:10A7F000A07E002803D12D49344808F062F9A77ED5
+:10A80000684606710221417105F030FF0290FF2079
+:10A81000F5300390012168460174A57601A93846F8
+:10A8200006F070FAFFF769FF0CE01E48801D817882
+:10A83000012906D00024009806F04DFF204605B0FF
+:10A84000F0BD85700124F6E710B5002803D0002084
+:10A85000FFF71DFE04E01348801E4078F7F7D2FE94
+:10A86000FFF74BFF0020F6F7CCFF10BD10B50E4AE6
+:10A87000114B106AD0600B48801E4068C18B594351
+:10A8800011610146E0314B8843870C7839231C5411
+:10A890008B88C383CB880384098941840220107686
+:10A8A00010BD0000720000206C1800200C9E0000FB
+:10A8B000C306000040420F00E20400004303000012
+:10A8C000A5F8FFFFD6F9FFFF1612000029020000CD
+:10A8D000F8B5FEF7DEFA0646FEF74CFBF94D0746E3
+:10A8E0006879F94C002809D0012823D0022826D005
+:10A8F00003282ED0FF20F5A1BC3033E0F2481430FD
+:10A90000FEF724FB002801D003200FE0EE481430AE
+:10A91000FEF788FA002804D020696030007A002809
+:10A9200006D0E9481430FEF7E4FA012068711BE014
+:10A930000220FBE7E4481430FEF7DBFA14E0E248BB
+:10A940001430FEF76FFA00280ED1FF20DFA1AE30E1
+:10A9500008E0DD481430FEF7F9FA002804D1FF20A2
+:10A96000DAA1B63008F0ADF86169F7220878104036
+:10A970000870AA79D207120F1043FB22104008700A
+:10A98000EA79D207520F104308706B79EF22022B3D
+:10A9900004D0012B07D0032B07D00CE0012E06D8E2
+:10A9A000002F04D007E07F1E3E43002E03D010404E
+:10A9B0001022104300E010400870287C002811D0BD
+:10A9C000687901280ED0BF484A38FDF7F5F8BD492F
+:10A9D00020694A3978306269FDF757FB0020FDF79E
+:10A9E00063FB04E00846FDF7E7F8FDF780FB6069CC
+:10A9F0000078C00606D4A0690078C00602D4E079C9
+:10AA0000002802D0A079002801D0012000E0032016
+:10AA1000FCF7B6FF0320207001202071F8BDAA4882
+:10AA200010B51830FEF7B9FAA74C002802D0002064
+:10AA3000607004E001206070A2484A38A061A1481B
+:10AA4000407C002802D06078002805D0A069FDF77E
+:10AA5000B3F8FDF74CFB10BD9A484A38FDF7ACF847
+:10AA6000984A20694A3AA030A169FDF70EFB0120FF
+:10AA7000FDF71AFB10BD10B5934900220869302379
+:10AA80008276C27601221A544030007C002803D01E
+:10AA90000A700021022001E000210320FFF790FD51
+:10AAA00010BD70B5884C6079C20620460169084621
+:10AAB0004030002A01DA002202E0C28A4B89D21813
+:10AAC0000B46C282C0331A7E002A03D0428B4D89C6
+:10AAD00052194283627A002A03D03D2001F0A3F884
+:10AAE00052E08A7E032A4FD0227A002A13D05007E0
+:10AAF00001D4D00601D51E2036E0100701D53D2037
+:10AB000032E0D00705D1900703D470A1734807F055
+:10AB1000D8FF2A2028E060310978002905D0818BF0
+:10AB20004A1C8283C28B91420FD2597F062902D0E0
+:10AB3000197F062905D1018B4A1C0283C28B9142E1
+:10AB400003D2428B818A8A4201D322200CE0827B8D
+:10AB5000408A002A0FD006280FD35A48C07B01280C
+:10AB600001D03E2000E0082001F05DF82069807EE1
+:10AB7000032809D001E08842F5D20120207000218D
+:10AB80000846FFF71DFD70BDFFF775FF70BD10B5DE
+:10AB90004C494D48CA7B002A2BD0012A29D0022AD1
+:10ABA00027D0032A04D049A14D4807F08AFF10BDE1
+:10ABB000897B02290FD007291BD00069014640314B
+:10ABC0008A8A498A511A891E89B2032900D303212E
+:10ABD000028951180BE00069014640314A8A032A74
+:10ABE00001D2018903E04288898A5118491C818079
+:10ABF00010BD0069F5E700B5030008F067F806042A
+:10AC0000070B0F12121700290ED00FE0491E022960
+:10AC10000AD90BE0491F012906D907E0072903D00B
+:10AC200004E00A390C2901D8012000BD002000BD34
+:10AC3000FEB5054624481430FEF769F9002804D112
+:10AC40003D2022A1400107F03CFF1F4C6069FDF749
+:10AC5000E5FC03216069FDF70FFD6069EF220178D3
+:10AC6000114001702946FDF74BFD002601272B00FE
+:10AC700008F02CF80E5D5D085D1D6161155D4D5D90
+:10AC8000613D385D20697121095C002901D00621F0
+:10AC900001E0C030417E6069FDF7FDFD4BE0A06939
+:10ACA000FDF758FD01466069FDF766FE43E0216946
+:10ACB0006069D031FDF729FE216960699531FDF7A2
+:10ACC00032FE38E006190020800000207372635CB9
+:10ACD0006C6C5F736C6176652E630000610200002E
+:10ACE0006F08000006216069FDF742FE23E0E0687E
+:10ACF00001786069FDF726FEE06881886069FDF7EC
+:10AD000023FEE06841886069FDF722FE13E00096AB
+:10AD1000019620696030007C002803D069460878DD
+:10AD20003843087069466069FDF738FE03E0FA4968
+:10AD3000FA4807F0C6FEFEF7F4F8002804D1F748F9
+:10AD4000F549801D07F0BDFE0C2D07D0072D04D05E
+:10AD500020695C210E5260300770FEBD20694030D2
+:10AD60000683FEBDF0B5EE4CDC2021698DB0405C61
+:10AD7000042809D0052834D16031487A002829D028
+:10AD800001204874022026E01022EA31684600F0D3
+:10AD90007AFF21691022C83104A800F074FF6846C8
+:10ADA00005F007F8216908AA6CCA0F46CB67783707
+:10ADB0008A670846FE608030BD60074620376CC752
+:10ADC0000023036343630120A0310876D54948740A
+:10ADD000052000E00D20FFF72BFF21690020C03186
+:10ADE00008770DB0F0BDF8B5CD481430FEF78FF8F8
+:10ADF000002842D0CA4C207A00283ED12069002584
+:10AE0000C030007EC74E00280BD0B17B0120FFF779
+:10AE1000F2FE002805D1B17B0420FFF7ECFE0028EC
+:10AE200006D020690127C030407F062807D00CE0FB
+:10AE300020695A210D526030457402202FE0B17B09
+:10AE40000420FFF7D8FE002810D0B07B030007F0E5
+:10AE50003DFF173F3F3F3F1E3F3F3F3D3F203F3FAE
+:10AE60003F292C3F3F3F3F3F3F2F3F0020696A2152
+:10AE7000095CC90702D0C0304577F8BD0C20FFF748
+:10AE8000D7FE20696030817A39438172F8BD07208E
+:10AE900005E0FEF7ACF80028F8D075740B20FFF73A
+:10AEA000C7FEF8BD00F0FEFEF8BDFFF75BFFF8BD82
+:10AEB0002069002180308160C160057437740620EC
+:10AEC000FFF7B6FE206960300570F8BD0920E6E79F
+:10AED00000F0B2FEF8BD70B5924DA87B072831D1C5
+:10AEE0008F4CDE2220694188125A491C914229D197
+:10AEF000217A002926D10146E0318B88C28B93420A
+:10AF000007D1CA88068CB24203D10A89468CB24264
+:10AF10000AD0844A8689283A9680D380CB881381C8
+:10AF2000098951810121117001221146FDF784FD2B
+:10AF300000210420FFF744FB21690020C03148773D
+:10AF4000A873E87370BD70B5764CA07B162803D04B
+:10AF50007149754807F0B5FD7148002102697148D3
+:10AF60006032117211702838067C0B250123002EE7
+:10AF700006D0027B002A12D14573817303730EE061
+:10AF8000567A002E06D051722288828281740C2259
+:10AF9000027404E022888282817483750574A1732F
+:10AFA00070BDF8B55E4DA879800723D5287A0028B2
+:10AFB00020D15C4C0120A17BFFF71DFE002819D198
+:10AFC00068690026C0780127030007F07FFE0E594C
+:10AFD0005908592E3B4F0A591459205245590220FD
+:10AFE00021E0A07B042804D04F484B49333807F0B8
+:10AFF00068FDA673F8BDA07B082804D04A484649DE
+:10B000002D3807F05EFD286960300670F1E7A07BFF
+:10B010000A2804D015204049800107F052FD286914
+:10B02000603007720B20A073F8BDA07B0E2804D0FF
+:10B030003D4839491F3807F044FD286960300772E0
+:10B040000F20F0E7A07B0F2804D03748324918388A
+:10B0500007F037FD1120E6E7A07B0F2804D0324827
+:10B060002D49123807F02DFD1320DCE7FFF76BFFA9
+:10B07000F8BD2869C030417F0629F9D14677F8BD6F
+:10B0800029482549813007F01CFDF8BD10B5254C35
+:10B090000020A17BFFF7AFFD002804D1204801224A
+:10B0A000017A114301720420A07310BD10B51C4C2D
+:10B0B000DD212069095C002903D0217A0122114396
+:10B0C00021726030807A800715D4A069FDF744FCB6
+:10B0D00021696031C872A069FDF740FC21696031C7
+:10B0E0008881A069FDF73FFC216902226031C88197
+:10B0F000887A10438872206900220146C0310B7F94
+:10B10000062B13D06A231B5CDB0703D106234B7786
+:10B110004030028310BD0000CCAC0000E40700000A
+:10B120008000002006190020660500000A77F1E77C
+:10B13000F8B5FE48817B0020FFF75DFDFC4C012641
+:10B14000002807D120696030407A002802D1207A97
+:10B1500030432072216900255C204552602046540E
+:10B16000C831A069FDF7B9FB2169A0699131FDF7EC
+:10B17000C3FB2169042208469131B93007F004FB72
+:10B18000EA482838017C0827002906D0017B0029DD
+:10B1900012D14773857306730EE0216905468989CC
+:10B1A0004182E249A0691439FDF77FFBDF49A069BC
+:10B1B0000C39FDF787FB2F74DC480E218173F8BD35
+:10B1C00070B5DA4D0020A97BFFF715FDD84C00289B
+:10B1D00003D1207A012108432072A069FDF721FBE9
+:10B1E00000280ED0A069FDF717FB2169DE2250521E
+:10B1F000498800F0A2FD002806D0282000F013FDA9
+:10B2000070BDFFF743FF70BDA069FDF7FFFA21692C
+:10B21000E0310870A069FDF7F2FA2169E031488059
+:10B22000A069FDF7D1FA2169E0318880A069FDF7B6
+:10B23000D4FA2169E031C880A069FDF7D7FA216905
+:10B24000E03108810720A87370BDF8B5B84CA0792B
+:10B25000C0076ED0207A00286BD1B44D0120A97BA5
+:10B26000FFF7C9FC002853D1A0690027C17802224A
+:10B2700001260B0007F02AFD0D161308354A4A383F
+:10B280004C474A1929444A00FDF707FB2169DA2295
+:10B290005054AE735C20475260310E7038E000F0BD
+:10B2A00057FD35E0FFF78CFF32E0A97B0020FFF768
+:10B2B000A2FC002802D1207A3043207220695C2150
+:10B2C0000F52603006700A2018E0A87B0B2802D0CD
+:10B2D000207A104320722F742069603046720C204F
+:10B2E0000CE0FFF725FF13E0A87B112802D0207A9D
+:10B2F000104320722069603007701620A87307E0A1
+:10B30000FFF7D4FE04E000F0F0FC01E0FFF7BEFE22
+:10B31000FDF759FE002803D18649874807F0D1FB85
+:10B32000206900238030016B426B491C5A41426303
+:10B330000163F8BDF8B57D4F787C002802D1387CD8
+:10B34000002801D0FCF7D3FEFCF760FCFCF754FCAE
+:10B350000020FCF715FBFCF79CFBFCF75CFCFCF702
+:10B36000DCFBFCF724FCF87B01260025704C002850
+:10B370000FD16079C10705D00220F87320694030F1
+:10B38000857302E0800717D5FE7300210120FFF7C7
+:10B3900017F9F87B012802D0022808D00CE0607968
+:10B3A000C00709D00220F8732069403085736079A6
+:10B3B000000701D50320F87300F0EEFCFFF713FD42
+:10B3C0002079002801D03D8102E03889401C388175
+:10B3D0006079C007206904D072210D544030458245
+:10B3E00003E04030418A491C4182E079002806D0C0
+:10B3F00021696031887C022806D8401C8874206945
+:10B400006030807C022804D93D817D8120696030D4
+:10B410008574B97B0020FFF7EEFB002802D1B87BD2
+:10B4200006284BD120690146C0310A7F062A45D043
+:10B43000497F062942D03D49C97B03293ED160306E
+:10B44000807C00283AD1FDF71BFD002836D0FDF79F
+:10B4500091FD002832D02169C88801282ED90A46DA
+:10B460004032D673908A578A831E9F4201DB0120A7
+:10B4700002E0C01B401E80B22C4B0F8C1B89BB42CC
+:10B4800001D3012302E0FB1A5B1C9BB2984200D956
+:10B490001846012800D1D5732A22525C002A11D007
+:10B4A000224A898D52898A4201D3012102E0891AF8
+:10B4B000491C89B2884205D9084603E02169012068
+:10B4C0004031CD7321694A8810180881FFF75FFB6E
+:10B4D0002069122215490C3007F056F9FFF7E1FAFE
+:10B4E000FEF77EFF002808D010482838817F002909
+:10B4F00003D121698989018486770D481830FDF7C9
+:10B50000AAFD00280FD0A06900788007800F0128CD
+:10B5100009D0022807D0FDF7BEFD002803D1054958
+:10B52000064807F0CEFA2069403009E006190020ED
+:10B5300080000020CCAC0000DF040000720300009B
+:10B540000574F8BD70B5FE4C607900283DD0FD4D06
+:10B55000022811D1FDF775FC002804D17320FA49A7
+:10B56000000107F0AEFA2A69002380329068D168A2
+:10B57000401C5941D16090600026667120790128F5
+:10B5800004D12671A87910210843A871E078012818
+:10B5900016D1E670A87908210843A871FDF7E0FCF0
+:10B5A000002804D1E920E849C00007F08AFA296997
+:10B5B000002380318A68C868521C58418A60C8607C
+:10B5C000A079012802D00120A07170BDA67170BDC4
+:10B5D000F8B5DC4CDA4DA269002710780421830706
+:10B5E0009B0FE8790126012B11D0022B0FD0032BE2
+:10B5F00001D0207A2FE06178002905D1AE70A179C1
+:10B600003143A17122E0EF71F8BDEE71F8BD5278BF
+:10B61000D3061BD060780028F8D1D006C00E1B28B6
+:10B6200017D8607908436071FDF7CDFC002803D17D
+:10B63000C549C64807F045FA206900238030026BEF
+:10B64000416B521C594102634163E8790128DCD106
+:10B65000D9E7207A102108432072F8BD70B5B84DA3
+:10B660000446283D287B002600280AD0002976D1F0
+:10B67000667010202070687BA070A87BE0702E732D
+:10B680006DE02878002810D0002968D16670072066
+:10B69000207005E02E700A22A91CA01C07F074F887
+:10B6A00028780028F6D1A67059E0287C002839D0E7
+:10B6B000002954D1297CA3480B0007F007FB0D2E6D
+:10B6C0002E2E2E2E2E2E2E112E2E22082E0066709D
+:10B6D0000C212170A97CA17000698089A0801AE0EA
+:10B6E00008216670217000690A468089944960804B
+:10B6F0001439201D07F048F891484A38C08FA081BE
+:10B7000009E066700B212170A97CA1700069808915
+:10B71000A080A87DA0712E7421E08B498C4807F091
+:10B72000D0F91CE0AA7F86480838002A08D00029F2
+:10B7300015D166701121217000886080AE770EE00F
+:10B740007F4A083A9378002B0BD0002907D1667006
+:10B750001221217081886180C088A08096700120AC
+:10B7600070BD002070BD77480078012801D00C2002
+:10B770007047734900202839087008730874887767
+:10B78000704770B56F4C064620780D46002804D0EF
+:10B790006F486D493F3007F094F90120E660E07290
+:10B7A000E5612070FFF7DFFF002804D09320664991
+:10B7B000000107F086F970BDF8B5624C21780129C7
+:10B7C00002D12178012901D00C20F8BD014605469F
+:10B7D000206112220C315A4806F0D6FF012740356D
+:10B7E0002F74574D2888FDF712FB002827D0288892
+:10B7F000FDF7C8FB002822D02888FDF77DFB002834
+:10B800001DD02888FDF797FB002818D0FCF7C3F956
+:10B8100020690026C088002824D04A481430FDF74B
+:10B8200076FB00281ED02069C030007E002819D089
+:10B83000A97B0120FFF7DFF9002802D012E01220D7
+:10B84000F8BDA97B0420FFF7D6F900280AD12169A9
+:10B850005A20465260314E740220FFF7E9F9206900
+:10B860004030C67320694189491E8AB229898918E6
+:10B870002981297B002902D06E812E7302E069891B
+:10B8800089186981014640314B8A9B184B82C388D5
+:10B89000012B01D85B1CC380002A01D072221654F0
+:10B8A000AA7B032A16D0C97B002915D02989008CD0
+:10B8B000814211D2FDF7E4FA00280DD020692A2137
+:10B8C000095C00290BD06989808D814207D3A6705D
+:10B8D000E7700CE0A7700AE0A670E67007E06889E0
+:10B8E0000021401C6881A7700520FEF769FE2069D1
+:10B8F0004F210E54A178002930D12030807A0028C1
+:10B9000000D06E810120FBF71BFF20693630FCF769
+:10B91000F8F820693230FCF70EF8E169002008568B
+:10B92000FBF7D5FF0120FCF733F9FBF78EFFFCF79F
+:10B930002BF90120FCF76AF82069406E0AE000004C
+:10B940000619002080000020CCAC00007B0700001E
+:10B95000E7080000FCF733F9FFF761F8A87B05283A
+:10B9600001D0062816D12069DE224188125A891A90
+:10B9700009B200290EDB01460522E0312430F4F73C
+:10B9800023FC012202212069FDF756F82069C0300E
+:10B990004677AE7320694189FDF7FDF82069403094
+:10B9A000407BFBF7D1FF6671E671A6712672A67225
+:10B9B0006672267102202070FCF7F9F80020F8BDAD
+:10B9C00010B5FE4C2078022801D00C2010BDFCF7E9
+:10B9D000E2F8A078002802D0FFF7ACFC15E000F0F8
+:10B9E0001AF920692030807B012809D0FCF736F94C
+:10B9F000FBF730FFF4F7F7FCE07A012803D004E00E
+:10BA0000FCF734F9F4E707F05BF9002010BDEB49CF
+:10BA1000C872704710B5E94C2078032803D0E84974
+:10BA2000E84807F04EF8E84801218278002A06D05D
+:10BA3000002282700171A27904231A43A271626903
+:10BA40001378DB439B0707D1C378002B04D1C17067
+:10BA5000A07902210843A0711078C00606D4A0691D
+:10BA60000078C00602D4E07900280CD06078002865
+:10BA700009D1A079002806D1FEF7A2FC002802D047
+:10BA8000207A002802D0FFF755FC03E0FEF7C7FF3D
+:10BA900000F0C1F82078012806D0F4F7A4FCE07A81
+:10BAA000012801D1FCF772F910BD38B5C34C2069EB
+:10BAB0002030807B012820D1A07A00281DD1684643
+:10BAC000FCF7DCF8002818D021692F20405C012801
+:10BAD00010D1BD4A0D236D460020D356285683420F
+:10BAE00008D050738989283A918411462031887191
+:10BAF00001208870A07A401CA07238BD70B5AF4C90
+:10BB000006462078042804D0AE48AD49553006F0EA
+:10BB1000D8FF607910210843AB4D6071002E47D0EB
+:10BB2000FCF7FDFA61780126084300280ED1687CF5
+:10BB300000280BD0A0694178C90607D00078E979C0
+:10BB40000007C00F884201D1667247E0E078002804
+:10BB500009D0A0694178C90605D10078C00602D491
+:10BB6000FFF7A3FF3AE0FFF7A0FFA069A9790078EB
+:10BB70004007C00F884205D0FFF7E4FC6079082138
+:10BB800008436071A069E97900780007C00F884216
+:10BB900001D1FFF71DFD6079304360710020E07135
+:10BBA000A079000702D5A87B022817D0207A13E0DD
+:10BBB000022108436071E079401CC0B2E0710128A5
+:10BBC0000CD8687C00280CD07F484A384078C106E1
+:10BBD000C90E052905D2C006002802D0FFF7AAFB2E
+:10BBE00001E0FEF775FE2078012806D0F4F7FBFB94
+:10BBF000E07A012801D1FCF7C9F870BD10B56F4893
+:10BC00000078042804D06F486D49B73006F059FF1A
+:10BC1000FFF790FB10BD10B50720FBF7B1FE674999
+:10BC20000420087010BD6549312209695054664AE4
+:10BC3000032090738876704710B5604C2069C0303F
+:10BC4000007F00281ED06048817B0020FEF7D3FFD4
+:10BC5000002817D02069DC21095C0B0007F036F8BA
+:10BC6000071212121212120512006030807AC007F9
+:10BC700008D10C20FEF7DCFF206901226030817AB8
+:10BC80001143817210BD10B5002A0AD0002306E0CE
+:10BC9000D41A6418203CE47FC4545B1CDBB293428A
+:10BCA000F6D310BD10B503F02AFF0C281CD3434C6B
+:10BCB00008212069D03003F023FF002806D0206936
+:10BCC0000421953003F01CFF002803D13C493F4874
+:10BCD00006F0F7FE2169042208469531BD3006F0D2
+:10BCE00053FD0420FEF7A4FF10BD7CB5364E0020A6
+:10BCF000B17BFEF780FF0125304C002802D1207A6D
+:10BD0000284320726946A069FCF74EFE6846007819
+:10BD10000021C207D20F684602702069002A02D0B3
+:10BD20006030057401E06030017420695C221152BA
+:10BD3000603005700820B0737CBD401A244900B201
+:10BD4000884201DC002801DC012070470020704798
+:10BD500070B51D4D0020A97BFEF74DFF174C002844
+:10BD600003D1207A012108432072A069FCF78EFDDF
+:10BD70002169DE2250524988FFF7DFFF002803D0F7
+:10BD80002820FFF750FF70BD2169A069E031FCF762
+:10BD900071FD0520A87370BD70B500F054F8074C14
+:10BDA000094D6079400716D5A97B0520FEF723FFD2
+:10BDB000002810D0207A082108430BE080000020E2
+:10BDC000CCAC00001D0A000006190020640600002B
+:10BDD000FE7F00002072FFF738FA00F012F8FFF73C
+:10BDE000E0F8A079C00609D5A87B030006F06EFF35
+:10BDF00006060606060604060620A873FFF76BF87B
+:10BE000070BD10B525488179490714D5017A0029FC
+:10BE100011D12349897B0B0006F058FF080D050D51
+:10BE20000D0D0E0D100D0069002260210A54C03066
+:10BE3000807EFFF7F8FE10BD012100E002210069BD
+:10BE4000C030417710BD10B51448817909071DD560
+:10BE5000017A00291AD1124A947B230006F036FF9A
+:10BE60001416160B1616161616161616161616167F
+:10BE7000161616161716006960300170407C0028EF
+:10BE800001D0062000E01620FFF7CDFE10BD0069AE
+:10BE9000603001720170917310BD000080000020BD
+:10BEA0000619002010B5031D03600020521E04E097
+:10BEB0005C181C60401C2346C0B29042F8DB002096
+:10BEC000186010BD01460A680020002A02D0104602
+:10BED00012680A60704702680A60016070470000DB
+:10BEE00000B51A2822D00ADC030006F0EFFE0D117F
+:10BEF0001F131F1F191915171F1F1F1B1F002A288B
+:10BF000014DD3A38030006F0E1FE030F11091100B9
+:10BF1000002000BD1E4800BD042000BD0D2000BD56
+:10BF20000F2000BD082000BD112000BD032000BD72
+:10BF300010B50C46F5F7C8FB00281AD02046F4F7D8
+:10BF400061FE002812D020780E280BD00F2809D0CF
+:10BF5000022807D0032805D00EA1772006F0B1FDF6
+:10BF6000002010BDA078FFF7BBFF10BD09A17D2008
+:10BF7000F4E708A18320F1E710B5F4F7CBFD10BD7D
+:10BF800010B5F4F73FFE10BD10B5F4F721FE10BD5B
+:10BF9000013000007372635C686F73745F6863697B
+:10BFA0002E630000F0B597B00021032004F0F7F8ED
+:10BFB0000025FE4E022775807574347C12E0F0680F
+:10BFC000E1004018818800290CD0858069460F70F7
+:10BFD0004D7001680291808869468880002168461A
+:10BFE000F8F7F0FD2046641EE4B20028E7D117B050
+:10BFF000F0BDEE4BD86019741A80D3E7EB49EC4BD7
+:10C000004A8800201A4200D00120497C002901D032
+:10C01000082108437047F7B504460E460078012111
+:10C02000E34A8140521C114098B0E04A0091518887
+:10C03000E04B994205D0009B002B05D0DC4B194208
+:10C0400002D001201BB0F0BD009BD84A194351809B
+:10C050001A9D002D11D00020287022781A980027F0
+:10C06000401C130006F032FE10EF0D152137555D10
+:10C070006A39AFAB85B3EEEDECEF0B28EDD00420C1
+:10C08000E0E702212970A1880170090A41700320AC
+:10C0900093E004212970A1880170090A4170E188A8
+:10C0A0008170090AC170052087E006212970A188E6
+:10C0B0000170090A4170E1888170090AC170218903
+:10C0C0000171090A4171A289E81D216906F05CFB32
+:10C0D000A089C01D71E0082129702178082901D1AB
+:10C0E00010212970A1880170090A4170E1888170CE
+:10C0F000090AC1700520308020466A1D01A9083058
+:10C1000003F047FB00287DD1694630880979401843
+:10C1100053E00A212970A1880170090A41700320A7
+:10C120000AE00C212970A1880170090A4170E18898
+:10C130008170090AC170052030809DE0A088844686
+:10C140004000401C81B2308888425BD3052959D316
+:10C150000E202870002008E0A36842009B5A521964
+:10C1600053701B0A401C937080B26045F4D3318039
+:10C17000B6E08E49487C002873D0401E4874C868D9
+:10C1800021790822C9004518A9882868401808386C
+:10C19000A16806F0F9FA0221684601710021417197
+:10C1A00028680390A98868460181002101A8F8F752
+:10C1B00009FD0020A880002E00D0308090E0297872
+:10C1C000802211432970297840221143297029784F
+:10C1D0008909890112312970A1880170090A417009
+:10C1E000E288E81CA16806F0CFFAE088C01C308025
+:10C1F0002878410640D5C00972D0012168460171F6
+:10C20000002100E02BE041713188ED1C091D018106
+:10C210001A980390E08840190490001D634D059022
+:10C22000297C68460176002101A8F8F7CBFC074677
+:10C2300030880C303080022F06D0002F50D060E0C4
+:10C240003CE032E01CE059E06946097EE868CA003B
+:10C2500080182A7C914202D28188002902D00427CA
+:10C260004FE02EE0697C491C69741A99016031889D
+:10C2700081800020308044E04C48A188C1802FE0BC
+:10C2800029788909890116312970A1880170090A64
+:10C290004170E1888170090AC1702289681DE168D6
+:10C2A00006F072FA2089401D46E72878800980014F
+:10C2B000183028702079687002207EE73B480A0415
+:10C2C00001D405271DE00289A3889A4201D00627E0
+:10C2D00017E01E222A70012249043280490C418055
+:10C2E000009800280DD0314D002228881146830087
+:10C2F000032003F0B2FE2078287107E00020308090
+:10C3000003272A48009942888A434280384699E6A2
+:10C31000F7B59AB002000C4606D0172A04D8234875
+:10C32000244B4088984202D107201DB0F0BD2378ED
+:10C330005D0601D4DB0901D00820F6E700236D4635
+:10C340002B706B701D462378611C9F06931E1893FB
+:10C35000531E19939BB2169302AB1793134BBF0E48
+:10C36000DE883B0006F0B2FC208511F15EF16BF136
+:10C37000A3F1C6F1F2F1FBF1EEF1EDF1ECF1F1F127
+:10C38000EBF1EAF1E9F1E8F185F1052A71D1042236
+:10C3900069460A7005490A7969460A71E178A37805
+:10C3A0000A021A436946CA80227905E0181900205A
+:10C3B000FE710000FFFF00004A7061788906890E57
+:10C3C0000C2923D009DC891E0B0006F07FFC091321
+:10C3D00052155219521B521D520012291CD004DC56
+:10C3E0000E2915D01029D1D114E0162916D01829FC
+:10C3F000CCD115E0800700E04007002839DA2AE1B7
+:10C400000007FAE7C006F8E78006F6E74006F4E71B
+:10C410000006F2E7C005F0E7C004EEE78004ECE7B1
+:10C420004004EAE7800724D5032AAFD105206A46F5
+:10C430001070487809780002084390800BE14007AB
+:10C44000F1D5062A15D31898617880B2012902D057
+:10C4500002299BD101E0022700E01027062269464D
+:10C460000A7000228A8001AEA11C0236BA1C179203
+:10C4700018E0B6E04A780B7812021A433280801E28
+:10C48000891C1890B21C1691384603F05CF9169975
+:10C4900018986B469A88C919C01BB61D521C9A8001
+:10C4A000179A80B28242E5D900289CD1D3E00007D8
+:10C4B000B9D51998694682B2072008700020888093
+:10C4C000601C891D11E0437806781B0233430B8002
+:10C4D000C37886781B0233434B806E46121FB388A5
+:10C4E000001D091D5B1C92B2B380042AEBD2002A06
+:10C4F00077D1B0E0C00674D5022A72D3189808210B
+:10C5000082B2684601700021C18063780371A01C6B
+:10C5100017990EE04678077836023E430E80861C57
+:10C520004E606F46D21AFE88C0180831761C92B24F
+:10C53000FE809342EED9DAE76FE076E065E051E005
+:10C5400046E01EE014E00AE000E0A0E0800648D5E6
+:10C5500009206A46107096801698D0800FE0400639
+:10C560003FD50A22684602708680169AC28006E08D
+:10C57000000636D50B206A461070169890800291FE
+:10C5800069E0C0052DD5022A7FD318980C2182B20C
+:10C59000684601700021C18063780371A01C17995F
+:10C5A00013E04678077836023E430E80C6788778D7
+:10C5B00036023E434E80061D4E606F46D21AFE88FC
+:10C5C000C0180831761C92B2FE809342E9D98EE7FA
+:10C5D000C0045AD5012A58D10D21684601708680C1
+:10C5E00039E052E0800450D5052A4ED30E23684628
+:10C5F00003708680C8788B78010219436846C18031
+:10C60000521F0281601D039025E040043DD5012AA0
+:10C610003BD10F20694608701DE0030435D44B78E8
+:10C620000E781B023343244E3381032A2DD31B2F54
+:10C6300027D011236E46337001261F4BF60330437B
+:10C64000588048780B780102194368468180D21ED1
+:10C65000C280E01C029020788006800E1B280AD041
+:10C660001D2808D00021032003F099FD12484188BD
+:10C67000C90BC903418068461C99F8F7A3FA2846FC
+:10C6800053E610206B461870DBE70725F7E708250F
+:10C69000F5E700B50022D243074997B04A80032846
+:10C6A00007D1032268460270097901710021F8F769
+:10C6B00089FA17B000BD000018190020FFB589B035
+:10C6C0000020019009981027FE4C1E4615460828A8
+:10C6D00006D0E06901F05EF8002809D03770BEE0AE
+:10C6E000288809213843108013980227017016E02A
+:10C6F000E169012088710521E269C9029180E1693F
+:10C700008872E169F0480881E1690020887328880F
+:10C7100020210843288011211398042701701398C1
+:10C720000225801C0290307806900A203070E5487F
+:10C730001830049001F00DFA0020059020462C30AE
+:10C7400003906DE00998102808D1022D06D00199B8
+:10C750000298A28D401A8270110AC170E08D0A9968
+:10C76000884202D901F0D5F806E0884204D1069843
+:10C77000002801D030701CE00298E18D0170090A98
+:10C78000417012980088401BC01B82B2FF20C01B62
+:10C79000904200D2024607A8009002980021C319D7
+:10C7A000E08D01F041FA3070002805D0C0B2832836
+:10C7B00058D0E08D20833EE00598002804D0206CFE
+:10C7C00000790A282CD336E06846808BC119C9B29B
+:10C7D0000191022D0DD01399019A4978914202D10D
+:10C7E000228F824208D00191206C0178032908D061
+:10C7F00023E0084613994870206C0178042906D07C
+:10C8000007E000790A2818D20120059008E0E18DA0
+:10C81000818002990198081802900198281885B221
+:10C820000399049801F098F9002804D1129800881F
+:10C83000401BB84286DA022D0DD00998102806D187
+:10C8400002990198A28D081A8270110AC17012987B
+:10C85000058000203070206C0078032802D0002072
+:10C860000DB0F0BD0220FBE7F8B5964A0026126D28
+:10C87000002A2ED0401F934D84B24035E88A2346CB
+:10C880000833AF8AC318BB4222D88B784F781B027B
+:10C8900010183B4303701B0A43700B79CF781A02C0
+:10C8A0003A438270120AC2700471220A427122460F
+:10C8B000491D801D05F068FFE88AA41D001980B29B
+:10C8C0008049E882096D002208180270427000E079
+:10C8D00009263046F8BD30B57A4B028840339B8A32
+:10C8E000934213D9774B1C6DA3185C781D782402F2
+:10C8F0002C430BD05C791D7924022C436404640C16
+:10C90000A41D1219028000200B6030BD822030BDB2
+:10C91000F0B585B0074600266846068155E00198C7
+:10C92000417802780D0215434179027908021043DB
+:10C9300000044AD43D8003A8002301220090520243
+:10C940001946284601F070F9040044D1684601896F
+:10C9500001820198417902790902114343780278F2
+:10C960001C021443AC421CD10A041AD44A0401210B
+:10C97000520C89030A430096C1788078090201436A
+:10C980000023204600F0C9FF040010D10199487926
+:10C990000A79000210430122D20310430871000AF1
+:10C9A000487101A904A8FFF796FF0400D1D00199AE
+:10C9B00000964878097800020843694600238A896E
+:10C9C000194600F0AAFF822C05D101A902A8FFF7A1
+:10C9D00082FF0400A3D06846068109E001994879E6
+:10C9E0000A79000210434004400C0871000A4871A3
+:10C9F00001A902A8FFF76FFF0028EFD0822C02D018
+:10CA0000204605B0F0BD0020FBE7F7B584B0144622
+:10CA10000646002700F079FF2A480025006D00280F
+:10CA20002FD0059801282CD12046FFF771FF070071
+:10CA300027D1002E29D06846058118E00199487851
+:10CA40000978000208432080019B009558791979E4
+:10CA50000202D8780A4301029F78587839431F7838
+:10CA600000029B1D384300F058FF002805D101A9A2
+:10CA700002A8FFF730FF0028E0D0822800D1002074
+:10CA80000746002E01D00F48056500F042FF3846EA
+:10CA900007B0F0BDF0B597B00021042003F07FFB94
+:10CAA000084F00243D467C8040356C73AC73287B76
+:10CAB000B96CC00008380E18B08800280DD00120CD
+:10CAC000694603E02C190020012800000870306836
+:10CAD000019000216846F9F77AFBB4803C65AC828E
+:10CAE000EC8217B0F0BDFE4B9864184640300173DD
+:10CAF0001A803838D861CDE7F949002049880A07FB
+:10CB000000D501200A06120F01D002221043CA05E7
+:10CB100001D5042210438A0501D51022104349058E
+:10CB200001D520210843EE494031497B002901D03D
+:10CB3000082108437047FFB5A7B00400289816469F
+:10CB40001B9022D00178E6484D0642882292024688
+:10CB500040320092002D14DB8A06920E1E2A0ED05F
+:10CB6000229A5205520E10D13288172A0DD3009AFC
+:10CB7000927B002A09D1DB4D229AAA4205D0CA092C
+:10CB800006D08A06920E122A02D003202BB0F0BDE6
+:10CB9000D348826C0098007B2590C000083810189C
+:10CBA0001F9048060CD40098407B002808D00099BC
+:10CBB00088731F99289808601F9884800220E5E7F1
+:10CBC000002718A90F7069460F72C54902AA0A64A6
+:10CBD000309A4A6410A90F850F861B981D4600786D
+:10CBE00020908106BE4B601F24901A462C32219261
+:10CBF0002898DA691833890E1E93401C0B0006F042
+:10CC000065F81FFDFD11FD1AFD90FDFCFDFBFDFA11
+:10CC1000FDF9FDFCFDF8FDFDFDF7FDF6FDFDFDFD5B
+:10CC2000FDF5FD00032C7BD10320287017226A70CC
+:10CC30000022AA70E0E2052CF5D1417802780902C1
+:10CC40001143A74B10AA19831185C278807812026C
+:10CC500002435A8300297DD091427BD80021184697
+:10CC600081720181491E01841E9800F072FF052027
+:10CC70002870A81C1D900220009021991E9800F099
+:10CC80006BFF002803D047E018A90870F0E2944831
+:10CC90002030807C012803D002206870102002E040
+:10CCA00001206870022022908D48303023900022AD
+:10CCB00020A9239802F06DFD00282AD120A8007831
+:10CCC0002299814225D132880099801C511A8142D3
+:10CCD0001FDB83481D99C08D0870000A48701D989D
+:10CCE00020A9801C1D9000981D9A801C00902398FC
+:10CCF00002F04FFD20A909781D9840181D9000985A
+:10CD0000401880B2009021991E9800F025FF00285D
+:10CD1000CDD0009802288DD10A2018A908706CE2A5
+:10CD20006DE0072C6BD341780378090219436C4BF3
+:10CD30008446198310AB1985C37880781B02184389
+:10CD4000674B0029588305D0814203D8012118463A
+:10CD5000817200E0A4E061464B7909791B020B4324
+:10CD6000038100218173104600F014FD00280FD1CB
+:10CD70005B480121C26991710522C369D2029A8080
+:10CD8000C2699172C26958491181C06900218173D9
+:10CD90005349E01F08841B98C01D48621E9800F08C
+:10CDA000D8FE07202870681C009001201D904C4878
+:10CDB0000021C18530E01D98012815D04848C1697F
+:10CDC000897901292FD000981038C17B807B090216
+:10CDD000014300980170090A41700098801C00907E
+:10CDE0001D98801C80B21D903D4809E013E2BEE111
+:10CDF0007AE1D8E00DE2A0E080E03BE01EE2B6E0A0
+:10CE0000C18D00980170090A41700098801C009043
+:10CE10001D98801C80B21D9021991E9800F09CFEE8
+:10CE2000002802D006E0818DD3E731881D98081ACA
+:10CE30000428C0DA1D98012800D16DE72848C1698F
+:10CE40008979012903D0828D26498A4205D1818DB5
+:10CE500000980170090A417009E000981038C17B00
+:10CE6000827B0802009910430870000A48701D98E0
+:10CE7000801CC1E1072C01D0152C78D141780378B2
+:10CE800009021943164B198310AB1985C3788078B2
+:10CE90001B02034312480029438301D0994201D960
+:10CEA0000120F1E60E480121817200210181817388
+:10CEB000052C07D024981B99C0B2491D02F043FCF1
+:10CEC0000028BAD100200649C04308841B98009668
+:10CED0000195007818AB8006800E1CAA002105E0A1
+:10CEE0002C190020FFFF000001280000FFF7E6FBDF
+:10CEF0000746FE4810A9008B08857EE1032CBCD1B3
+:10CF0000402210A90A86417802780802F7491043A6
+:10CF1000088310A9088520A9009131886B1C491E3F
+:10CF20008AB2002100F080FE18A90870002830D1D4
+:10CF30000B20287020A8008833E0052C9DD180218B
+:10CF400010AB1986014640780B780202E7481A4375
+:10CF50000283CB7889781B021943E44B104619846D
+:10CF600010AB1A85E24A914202D307208CE697E083
+:10CF70003F23DE4A9B021943118421AA0092328882
+:10CF80006B1C521E92B200F04FFE18A908700028C8
+:10CF900003D08328B1D102272FE10D20287020A8CB
+:10CFA0008088401C28E120990C22C9095143C91CE2
+:10CFB0001E91A14204D92098400671D500201BE1A2
+:10CFC000417800780902014310A801851B98007878
+:10CFD00042062898C01C1D90002A62DA05206A4685
+:10CFE00010721B980078C00944D00822684602726B
+:10CFF0008181A01A87B268468782289806901E9879
+:10D00000201A81B26846C1811D980490401805F02D
+:10D010001CFC079006982599C0190890491E08A87D
+:10D02000017102A83099F9F7D2F807460021684645
+:10D030000172002F1BD0022F18D1009808A9007B85
+:10D040000979401E884210DDA848289A836CC900DF
+:10D050005A50816C08A80079C000001D0C5200983D
+:10D060000099407B401C4873C7E00527EAE0062092
+:10D0700069460872002000901E980021201A209016
+:10D0800082B21B9B10A8DB1C008D00F046FC014601
+:10D0900018A80170002268460272832903D003E0B9
+:10D0A00093E00720E4E702271B98007840060ED59E
+:10D0B0008E484188C90506D510AA018B128D914270
+:10D0C00001D100214162002018A9087094E0FF21DD
+:10D0D000013110A80186018D8448018320990184C3
+:10D0E0001D994162132085E0052C6ED341780378A9
+:10D0F0000A021A4310A90A859446092269460A724F
+:10D100000021009101222499D20311438AB2C178EF
+:10D11000807809021B9B01435B1D604600F0FDFB0C
+:10D1200018A90870002269460A720122520210A949
+:10D130000A86832802D0002805D099E06B48098D23
+:10D14000018302277EE06948006D002807D0204651
+:10D150001B99FFF789FB18A9087000284DD12B46B1
+:10D16000324620461B9900F024FB074645E01B98F9
+:10D17000022C4078009064D1002801D0012860D1B1
+:10D180000A2168460172009901731AAA00200099C9
+:10D19000FFF73BFC0146684641730021817302A8FA
+:10D1A0003099F9F714F80746002168460172012109
+:10D1B000890210A80186022F08D04C48006C8079A3
+:10D1C000002807D018A9087020E04BE047490098D4
+:10D1D000088337E0002F03D0812018A9087031E0C0
+:10D1E0001AAA01200099FFF710FC18A9087000285E
+:10D1F00003D119202870012030806846007A002869
+:10D2000004D002A83099F8F7E2FF0746002F2BD090
+:10D2100018E0062038E522993448090711D5012C79
+:10D220000FD10B2269460A72C08888810021042030
+:10D2300002F0B5FF082010A90886BFE62098400636
+:10D2400010D50327294810AA4188128E1143418026
+:10D250005005400E04D01F99289808601F988480BC
+:10D26000384693E404200FE518A8007800280ED073
+:10D27000012028701B980078687010A8008DA87095
+:10D28000000AE87018A80078287105203080174837
+:10D2900010AA4188128E91434180E1E7FFB506460E
+:10D2A0009FB000201B903178012088401149124A1C
+:10D2B000084010A908860D494988914203D00028EA
+:10D2C00004D0080702D5012023B0F0BD219D00271E
+:10D2D0002F7020983C46018810A8018418A8077177
+:10D2E00000F013FB6846077202A907E02C19002022
+:10D2F0000102000009F80000FFFF0000FA48016485
+:10D3000001464031826C1A91097BC90008395718CF
+:10D3100022994164307801282AD0022809D00328B4
+:10D3200079D12878800980011D302870EE48B188B5
+:10D33000C1803078022804D12878800980011B3010
+:10D34000287001A8009010A8008CEB1CC01E82B2AF
+:10D35000B088002100F068FC0028E1D1B188697034
+:10D36000090AA9706946888810A9C01C08842DE1A3
+:10D37000717918A801713079012802D00228CFD123
+:10D38000E6E0D9487F2340881B010246184010ABD5
+:10D390001886802840D006DC102810D020280ED017
+:10D3A00040280AD120E0FF38013859D0FF38013831
+:10D3B0006AD0FF38FF3802387ED0052491E0D006CD
+:10D3C00001D5082000E010201B9004206946087257
+:10D3D0000020888118A800900195318919AB1CAAFA
+:10D3E0001B98FFF76BF977E0BF4B3289188B8242AD
+:10D3F0004FD10A221B92002973D101A9009110A9D3
+:10D40000098C6B1C491E8AB2002100F00DFC18A982
+:10D4100008710B2017E0F6E0B34B3289188B82427B
+:10D4200037D10C221B9200295BD101A9009110A9D0
+:10D43000098C491E8AB21946098C6B1C00F0F4FB5A
+:10D4400018A908710D2028706946888810A9401C09
+:10D450000884042069460872A348008B888140E054
+:10D46000A14A3389108B834213D112231B930029C5
+:10D4700037D1536A002B05D00091128C00F04DFA81
+:10D4800018A9087113205EE097483289038B9A42ED
+:10D4900001D00424E7E016221B92026D002A09D174
+:10D4A000F268002A06D002651A98328A82821A9A95
+:10D4B0000020D082002900E02FE012D1B88839681E
+:10D4C000FFF7D2F918A9087100280AD1B8882B46AD
+:10D4D00018AA396800F06DF90446022818D0042C07
+:10D4E00016D0B88800280FD06846007A002804D0EB
+:10D4F00002A82299F8F76BFE0446012069460872DB
+:10D50000386803900020B880002C5FD0052C7BD0B9
+:10D510006846007A032873D0A5E018201B900029E4
+:10D5200005D071483189018300210165D9E76E4832
+:10D530000246017E18320120FFF767FA18A9087128
+:10D540000028CED119202870012010A90884C8E72E
+:10D550001A98407B002856D0307AC0001358001D1E
+:10D560000193105A1D9000291AD100F0D2F906201B
+:10D5700069460872002000901D980F3882B2019809
+:10D580008178437808021843019B0021DB1C00F0DE
+:10D59000C4F918A90871002269460A72832830D09C
+:10D5A000002118A8017110A80184012168460172A8
+:10D5B000019803901A981A99407B401E48731A9854
+:10D5C000807B002802D01A99401E887310A8008E14
+:10D5D0007F21090102468A431DD04348002200886A
+:10D5E00011468300042002F038FD3F483178017174
+:10D5F00010A94088098E08433B4948800FE003E0AA
+:10D600002BE002242FE00524374810AA4188128E0F
+:10D610009143418027E034494A8882434A806846E2
+:10D62000007A002805D03048416C02A8F8F7CFFDF9
+:10D63000044618A80079002815D01B9868700120AE
+:10D6400028702948008BA870000AE87018A8007993
+:10D650002871052110A8018405E02348416C02A827
+:10D66000F8F7B5FD044600F054F91F48408840051E
+:10D67000400E20D11A98807B00281CD1B888002841
+:10D6800019D0209910AA098811842299009139682B
+:10D6900018AA219BFFF74FFA044602280BD001205D
+:10D6A000694608723868039002A82299F8F78FFD3E
+:10D6B00004460020B88010A8018C209801802046E4
+:10D6C00002E600B50022D243074997B04A800428F9
+:10D6D00007D1022268460270097901710021F8F72A
+:10D6E00076FD17B000BD00002C19002010B5394C94
+:10D6F00003780022216C012B02D0022B44D126E0BA
+:10D700000B78002B01D0042B03D10A71226C03216A
+:10D710001170216C83880A79D200921D8B52216C82
+:10D720000A79D20008328918C2880A80216C0389DC
+:10D730000A79D2000A328B524289206C0179C900E1
+:10D740000C314252216C0879401C087120E00A74A7
+:10D75000226C81889180216CC288CA80226C0189E8
+:10D760001181226C41895181216CC068C860616C53
+:10D77000206CF8F72CFD0146022807D0206C007CB5
+:10D78000002802D1002903D0812010BD832010BDC4
+:10D79000002010BD8178012909D100880521C90226
+:10D7A000884202D0491C884201D1002070470520E0
+:10D7B000704710B51488844201D2052010BD17248B
+:10D7C0001C701080421E491C581C04F0DDFF002014
+:10D7D00010BD00002C19002010B50446FEF759FFBB
+:10D7E0002046FFF76EFF10BD10B58B78002B11D0CF
+:10D7F00082789A4207D10B88002B0BD003E0091DD9
+:10D800008B78002B08D08B789A42F8D103880C884B
+:10D81000A342F4D1002010BD812010BD10B5002915
+:10D8200002D001290DD102E00088000501E0008846
+:10D830008004800F07D001281CD0022809D00328BB
+:10D8400010D0812010BD002901D0032010BD02207E
+:10D8500010BDF6F754F803280CD004280AD000288D
+:10D8600006D009E0F6F74BF8042803D0022803D0CD
+:10D87000052010BD002010BD0F2010BDF3B5C81C41
+:10D8800080080E46800081B0B04201D08620FEBDE7
+:10D89000FE4C354626600198A08000202081E08063
+:10D8A00014E0B807A978800D0843F94904F0E6FFB1
+:10D8B000E088401CE080B80607D42089401880B278
+:10D8C00020810199081A8019A8600C352F887807E3
+:10D8D000E7D40020A072FEBDEC480C22C18800896C
+:10D8E0005143081880B2704770B51346E74A45188F
+:10D8F0009488AC4201D2842070BD126810180A4688
+:10D90000194604F041FF002070BDE04901208872F3
+:10D910007047DE49002088727047FFB589B09704D0
+:10D920000E460546BF0C029200F017FA040021D003
+:10D93000002069460873D548807A012812D0012159
+:10D940002046FFF76BFF002815D12078400609D547
+:10D950000221684601730582218841828682C7823E
+:10D960000C9806900298000407D500273E46012532
+:10D9700001970CE001200DB0F0BD2078A178800760
+:10D98000800D0843C249019004F078FF0D460298CB
+:10D9900040040AD50198A84207D12088E178800583
+:10D9A000800F00020843B04201D3AE4201D90720E4
+:10D9B000E1E7B81980B20290A84201D90D20DAE758
+:10D9C0006846007B002804D003A8F8F7FCFB002879
+:10D9D000D1D10198A8420BD12088032109028843A4
+:10D9E00002998905890F0902084320800298E07096
+:10D9F0001298002800D007800C9800280CD02078BE
+:10DA0000000609D4A0683A4680190C9904F0BCFEBF
+:10DA100020881021884320800020ACE7FFB59B4D73
+:10DA200081B00E46E8882F680C21009048433C18CE
+:10DA30009749039804F022FF0A462889E11B84468F
+:10DA40000C314018318880B28B0601D5002300E0EC
+:10DA500013461818AB8880B2834202D8842005B0E0
+:10DA6000F0BD0098894D401C80B2E88021800D995E
+:10DA7000002900D00C600399A170E2702188039DF9
+:10DA80008908AD058900AD0F294303252D02A9435F
+:10DA90009505AD0F2D0229430425294321800C99BA
+:10DAA000002900D0088001998978A171019909881D
+:10DAB000A1803178890601D50B9905E0734962444C
+:10DAC00092B20A81991AC919A16000212173327892
+:10DAD000920601D50020C2E700910B9B0A9A049997
+:10DAE000FFF71BFFBBE710B5044600F036F900282E
+:10DAF00006D06649641ECC8000210170084610BD26
+:10DB0000012010BD002803D0401E0880002070476F
+:10DB10000120704710B55D490288CB889A4201D335
+:10DB2000822010BD0B680C21514359180B88CC780A
+:10DB30009B059B0F1B02234341608C7904738C88E7
+:10DB40004481C3818968521C0161028002810020E6
+:10DB500010BD012101827047FEB505460020C0437B
+:10DB6000088068680F468178684681706868018817
+:10DB70006846018000218171288A2C88A04200D348
+:10DB800004462C8234E0288A401C2882301D6968B3
+:10DB9000FFF72AFE002829D139883E48814201D169
+:10DBA000601E38806888A04227D33088F1788005CD
+:10DBB000800F0002084302906946301DFFF714FEF3
+:10DBC000002813D12989334881421AD000213046D8
+:10DBD000FFF724FE002809D12A890298824205D144
+:10DBE000E968B06804F0A3FD00280AD0641CA4B260
+:10DBF000204600F0B2F80600C5D1641E2C828220B7
+:10DC0000FEBD7C80B079B871B088B880308838812A
+:10DC100030788007810DB078014379810298B8810E
+:10DC2000B06838610020FEBDFFB585B014460F46D0
+:10DC3000059800F092F8050037D01448BE05807AA8
+:10DC4000B60D012815D000212846FFF7E7FD002872
+:10DC500029D1287840060CD5012168460170059924
+:10DC600081802988C18006814481F8F7ACFA0028B8
+:10DC700019D12888AA788107890D11438005800F62
+:10DC8000EA7800021043BE4211D005E0841900205A
+:10DC900001020000FFFF0000374A914207D3611ED6
+:10DCA000814204DD0B2009B0F0BD0120FBE7864274
+:10DCB00001D90720F7E7801B82B2A24200D9224691
+:10DCC0000E98002800D002800898002804D0A86888
+:10DCD0008119089804F058FD0020E4E770B5144657
+:10DCE0000D4600F03AF800280DD001882980002C5C
+:10DCF0000DD0017880788907890D01431E48814243
+:10DD000003D2012002E0012070BD0020207000201D
+:10DD100070BD70B516460D4600F01FF804000DD01A
+:10DD20002D882580FF2E16D0A807A178800D0843E6
+:10DD3000114904F0A3FD002E06D101E0012070BDC1
+:10DD4000FF31FF31033189B2A170A8088000890535
+:10DD5000890F08432080002070BD0849CA8882428C
+:10DD600007D3002805D00C22096850430C38081846
+:10DD70007047002070470000010200008419002055
+:10DD8000F0B585B00E4605460020694608707078EB
+:10DD9000FE49C00003900C58FD4F002D0ED0022DFF
+:10DDA00073D0002C72D02078801E030004F08EFF08
+:10DDB00009837F7F7F83797F77727F00002C03D177
+:10DDC000F4A16B2004F07DFE2078801E030004F097
+:10DDD0007DFF09065E5E5E19365E50545E00307847
+:10DDE000062803D0EBA1762004F06BFEB8687168BA
+:10DDF000806A032204F0C8FC0120694608700028EC
+:10DE000035D1CEE730780C2803D0E2A1812004F090
+:10DE100058FEE0680078002806D0B8687168C06BCA
+:10DE2000102204F0B1FC28E0B8681021406B04F027
+:10DE300008FDB868C16A406B0A787168F1E730780C
+:10DE40000D2803D0D3A1942004F03BFE04206946A2
+:10DE5000087071684878097800020843B9684A6A0E
+:10DE60005178127809021143484069468880084673
+:10DE700008E0C8A1AF2004F024FE6846007800281E
+:10DE80008FD06846F5F740FD8BE727E01CE0C1A185
+:10DE9000B420F0E7B8686169406CFEF71CF8A1692E
+:10DEA00000E0E168B868406CFEF715F803E0B9A13E
+:10DEB000E32004F006FEB8682146406CFEF70BF83C
+:10DEC000B24A039900205050022D07D0002D05D0F2
+:10DED000012D03D0AFA1EF2004F0F3FD05B0F0BD9C
+:10DEE00010B501780124012902D0022910D112E0D5
+:10DEF0004268A748002182600170A4486C38C1665E
+:10DF0000016741678167928902214C3001F083F9F2
+:10DF10000024204610BDFF209EA11C3004F0D1FD3E
+:10DF2000F7E7F0B505469EA103C997B01491139089
+:10DF3000002108A8017595482A781030944C049067
+:10DF40002078012605903746A068130004F0BEFE35
+:10DF50000CEE073098EFF5EBEAE9E8E8E7EE217020
+:10DF60000124FF2655360D4610A80570457001F0B6
+:10DF700063F90746012803D086A1304604F0A1FDCD
+:10DF800010A93846FFF7FCFE2046641EE4B20028C4
+:10DF9000EAD10A20694608706846029501F02AFA1B
+:10DFA000002803D0FF207BA15E3066E00026E6E279
+:10DFB000006B0078C0072ED06846077001F01AFA8F
+:10DFC000002804D0FF2073A1713004F07AFDA0680E
+:10DFD000406CFDF777FF050004D1FF206DA1743080
+:10DFE00004F06FFD08984078C1006848455006204D
+:10DFF0002870A068016869600069A8606448C01C56
+:10E00000E860284601F0F6F9022804D0FF2061A15B
+:10E010007E3004F056FDA068006B00784007C5D53F
+:10E020006846077001F0E6F9002804D0FF2059A1E6
+:10E03000863004F046FDA068406CFDF743FF050004
+:10E0400004D1FF2053A1893004F03BFD08984078AB
+:10E05000C1004E48455006202870A06801686960DC
+:10E060000069A8604A48401DE860284601F0C2F9EE
+:10E0700002289BD0FF2047A1933004F022FD95E7B2
+:10E08000A8680028684632D001712879012833D069
+:10E09000022804D0FF203FA1AD3004F012FD3B4820
+:10E0A00010221030A96804F06FFB38481030014688
+:10E0B000103148602078C1062DD5EF21084020702E
+:10E0C000032069460870314810300290684601F01C
+:10E0D000B3F80446022808D0002C06D0012C04D046
+:10E0E000FF202CA1BE3004F0ECFC69462AE1077148
+:10E0F000264820304160DDE7244A04986C3AD16715
+:10E1000041608160C1600621A86803F087FA1F4959
+:10E1100010310860C9E720210843207046E758E124
+:10E1200014E1D6E0A3E046E007E000E031E2FF20A2
+:10E1300018A1E73004F0C5FC21E2172269460A72F3
+:10E140000F7089788A08297992008907890F0A4314
+:10E1500069468A70FB210A4029794907C90F89005D
+:10E160000A4369468A70EA888A80826C02A96846F6
+:10E1700001F082F9002804D0FF2006A1F73004F056
+:10E18000A0FC052108A8017568460DE0FC190020D7
+:10E19000A00000207372635C736D2E6300000000AA
+:10E1A00004411A8800A48000017A0187A068002633
+:10E1B000806C0F90E7E16846077001F01BF90028BA
+:10E1C00003D0FD49FD4804F07CFCA068406CFDF7DD
+:10E1D00079FE060004D18320F749800004F071FC29
+:10E1E000A068406CFDF76EFE070004D1F348F249C9
+:10E1F000801D04F066FCF2488068406CFDF762FE0A
+:10E20000040004D1ED48EC49093004F05AFC0898A8
+:10E210004078C100EB4846500A203070287A3071AF
+:10E220006868E74DB060A868806C30611720307373
+:10E2300077613046B46101F0DDF80446022808D069
+:10E24000002C06D0012C04D01120DB49400104F041
+:10E2500038FC2046316AFFF793FD297805220A40F1
+:10E26000042A00D0A2E6FB22114029702AE0059979
+:10E270004908490021708A071CD5FD2211402170F0
+:10E280000F216A46117017211171806C0290684647
+:10E2900000F0D2FF0546022808D0002D06D0012D3F
+:10E2A00004D0C648C4493A3004F00BFC69462846FD
+:10E2B000FFF766FD2078052101400429D2D1FB211A
+:10E2C00008402070072008A90875BD4880780876A6
+:10E2D0006CE66846077001F08DF8002804D0B74856
+:10E2E000B549543004F0EDFBA068406CFDF7EAFD41
+:10E2F000060004D11320B049400104F0E2FBA068FD
+:10E30000406CFDF7DFFD070004D1AC48AA495A3044
+:10E3100004F0D7FB08984078C100AA48465007206F
+:10E320003070A068406870606868F760B060304620
+:10E3300001F060F8040004D0A0489F49653004F063
+:10E34000C0FB316A2046FFF71BFD2FE668460770C9
+:10E3500001F050F8002804D0984897497A3004F02A
+:10E36000B0FB08984778A068406CFDF7ABFD06004D
+:10E3700004D151209049C00004F0A3FBA068406C78
+:10E38000FDF7A0FD040004D18C488B49823004F0D5
+:10E3900098FB8C48F900465008182A694260092009
+:10E3A000307068687060A868B060A889B0818548DE
+:10E3B0006C3830611030B4617061304601F01AF889
+:10E3C000022804D07D487C49903004F07AFB2F75F8
+:10E3D000ECE57C4B00212033197002216A46117054
+:10E3E00001932979002902D0184601709BE07449F5
+:10E3F00003220C314968FB230A708A7800259208B1
+:10E4000092001A408A70027A1207D20F4A706D4A3F
+:10E4100020325560C37ACB70837A13724469537A81
+:10E4200024785B08E4075B00E40F2343537284699C
+:10E43000D460FD242340C4692478E407A40F234357
+:10E440005372036A13614D710D71437A5C4A9C07E4
+:10E450000C32A40F1268012C04D19478A407A40FE5
+:10E46000012C1DD09B089B00437293785B0702D45C
+:10E47000437A5B0728D5037A13AD5B075B0FDC009B
+:10E480005B00E318147864001B19DBB2DC082C5D18
+:10E490005D076D0F06235B1BDC40A3079B0F14E099
+:10E4A000037A54795B065B0F1C404C711379062587
+:10E4B0002B400B71DB002343414C63708B789B082E
+:10E4C0009B005B1C8B70D0E700238C78FB252C40D5
+:10E4D000457A6D07ED0FAD002C438C70047A64070C
+:10E4E000640F0C705178012908D1017A090705D50C
+:10E4F000032108A801750221017614E0022B1ED029
+:10E50000012B21D02F4B00216C3B049AD96751601D
+:10E510009160D16019467C310A4610325160417ACF
+:10E52000FB2211404172684600F086FE040021D0B3
+:10E53000012C20D02049244804F0C3FA1BE003201A
+:10E5400008A908750F76EEE70598000704D5C320E3
+:10E550001949800004F0B5FA1A4C0D211034E01C62
+:10E5600004F06FF9204610304460022008A90875B5
+:10E570000E94D8E7002669462046FFF701FC08A85C
+:10E58000007D002802D00DA8F5F7BEF9304617B07F
+:10E59000F0BDCB2008498000CCE5F0B5054697B02A
+:10E5A0000C460020694608700548064E2F78483E04
+:10E5B000017882680AE0000094E10000090200008E
+:10E5C000A0000020FC1900201F0300003B0004F005
+:10E5D0007DFB0BA8820724394A6977778D9AA800BA
+:10E5E0002B20694608730CA903A8FDF7A1FC00289D
+:10E5F00003D05349534804F064FA53490D9804F08A
+:10E600003DF952480160524869680160AA68426059
+:10E6100001910820694608708CE08A0610D5DF2237
+:10E620001140017003202070484810304168A160FB
+:10E630004068002802D00020207177E00120FBE72D
+:10E64000102256E02B2069460873404903A85C3924
+:10E65000FDF76EFC002804D03A483949293004F00F
+:10E6600030FA04201BE02A206946087303A8102210
+:10E670000230696804F088F807A810220230A968FF
+:10E6800004F082F8314903A85C39FDF751FC0028F9
+:10E6900004D02C482A493A3004F013FA052020709F
+:10E6A000666043E02A79002A02D0012211430170FA
+:10E6B00005206946087028798880A868029039E0AA
+:10E6C000106B4023018819430180106C6968102287
+:10E6D00004F05AF82AE0FB22114001700620694636
+:10E6E0000870A96868680291019023E0CB0703D005
+:10E6F0000222114301704AE70F2020701720207179
+:10E70000906CA06012E0537A9B0706D0126B44789D
+:10E710001388FF3401342343138004221143017012
+:10E7200004E0084806497C3004F0CBF968460078DC
+:10E730000028E0D06846F5F7E7F828E701207047A1
+:10E7400094E100004D03000040420F000C1A00202D
+:10E75000AC00002070B504780D460646230004F096
+:10E76000B5FA0B1C181C1C1C1C07181C1C181C00C0
+:10E770000021052001F013FDB068007805280CD0B9
+:10E78000FA480022008811468300052001F065FC4C
+:10E7900003E00021052001F002FD002D0ED0002035
+:10E7A000287029463046FFF7F8FEF1482978005DC9
+:10E7B000884201D1032070BD022070BD0021304687
+:10E7C000FFF7EBFE002070BD30B5E8494B68497A91
+:10E7D0000A0111460C315C5C032C0CD00446002568
+:10E7E0002034257125725C5CA500AA18641C5C5459
+:10E7F0009850032030BD062030BDF0B504462646B3
+:10E8000020360D463279012008218FB0002A0CD025
+:10E81000012A21D0022A2BD0032A04D12A78052AE2
+:10E8200001D1297000200FB0F0BD01203071606867
+:10E8300000280AD0A0690170616841602169816087
+:10E840006169C160FFF7C0FFEDE70720287020690C
+:10E8500068606069A86009E029780729E3D102208F
+:10E86000307105202870C248203868600320DAE73C
+:10E8700029780529D7D1A08910280AD9103880B263
+:10E88000A081A1681023091803A86A6800F033FE6C
+:10E890002DE0102804D0C1B20BAA1020A76809E00F
+:10E8A00010232269A16817E0491EC9B2401EC0B2F8
+:10E8B0007B5C13540029F7D100280AD0401EC0B257
+:10E8C00080211154002102E0401EC0B211540028E2
+:10E8D000FAD1626910230BA907A800F00CFE1023DF
+:10E8E00007A903A86A6800F006FE0320307160687B
+:10E8F000019003A8029005206946087029466846E1
+:10E90000FFF728FF8FE7F0B5044626460D46203670
+:10E91000317901208DB000290BD0012938D002298E
+:10E9200005D12978052902D10920287000200DB0D1
+:10E93000F0BD217D6846CA07D20F02738807C10F58
+:10E9400068460174012203A905A800F0CCFD04A9C2
+:10E95000012205AF481D00F0C6FD0722B81CE16882
+:10E9600000F0C1FD07A807220130216900F0BBFDBE
+:10E970006068019009A80290102305AAA16800F020
+:10E98000BAFD01203071052168460170294621E059
+:10E9900029780529CBD1062203A8E16900F0A3FD5F
+:10E9A00004A806220230A16900F09DFD042106A8FA
+:10E9B00000F091FD6068019007A80290102303AA5F
+:10E9C000696800F098FD02203071052069460870E2
+:10E9D00029466846FFF7BEFEA9E7F0B5074685B0B1
+:10E9E0000C460020694608703E466248203632795F
+:10E9F0008179133801250078130004F067F9180DA8
+:10EA0000FEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EF9E
+:10EA1000EEEDECEBEAE9E8E7B968039100291BD0D9
+:10EA2000012269460A7003220A710A224A71396971
+:10EA30000291397900297DD0039A1278002A7AD080
+:10EA40000C2A78D2130004F041F90BF009F0354D8F
+:10EA50008498B1F2EEEDF0000020BEE30021062024
+:10EA600001F09DFB3879072866D1424D133D287887
+:10EA7000022802D000287FD101E0002028700398EE
+:10EA80000079C11F0A2901D30A249AE16870394824
+:10EA90000722C01F039900F026FD01203071287065
+:10EAA0000220694608703348801F01903869401C75
+:10EAB00002903BE211293DD12E4D133D0228DAD1BF
+:10EAC00068686978007A884201D9062479E1039957
+:10EAD00026481022491C303800F005FD032028701C
+:10EAE000022046E11129E6D1224C133C0428C2D170
+:10EAF0000520207003991D481022491C203800F081
+:10EB0000F2FC062030717869032101706268516857
+:10EB1000416016492039816021460C31C160C91D10
+:10EB20000161017D537A49084900DB07DB0F194376
+:10EB3000017502E064E34AE387E1D3688361FD2362
+:10EB40001940537A9B07DB0F5B001943017511696C
+:10EB500079E10229AFD1002868D005206946087103
+:10EB60000398407848713869029045E3601A0020A4
+:10EB70004C2D0100C700002073E011299BD1F84CF7
+:10EB800006286ED1A0680399406B1022491C00F042
+:10EB9000AAFC0620694608703869029000200871B6
+:10EBA00001466846FFF7D6FD072058E00B299AD1A9
+:10EBB000EB4C07287ED1A0680399C06A0222491C49
+:10EBC00000F091FCA0680822006B17E00EE10AE358
+:10EBD000F3E2D3E2B9E2AEE28EE265E24FE248E26E
+:10EBE00028E2FDE1E7E1D0E1C6E1BFE1ADE16DE1A1
+:10EBF0004AE12BE1DCE0BFE0B0E076E00399C91C1C
+:10EC000000F071FC0621684601703869029000210D
+:10EC100068460171FFF79EFD20461330417949088F
+:10EC200049003EE041E01DE001E05CE0E2E2112944
+:10EC300090D1CB4C08283DD1A0680399806B10225D
+:10EC4000491C00F050FC06206946087038690290A3
+:10EC50000020087101466846FFF77CFD09202070FE
+:10EC6000BDE227E0082989D1BD49092822D10398AE
+:10EC700042788868C16B0A700399006C0622891C6F
+:10EC800000F031FC062168460170386902900021CD
+:10EC900068460171FFF75EFDB14813304179FD22EE
+:10ECA0001FE041714FE230717EE01129C0D1AC49C3
+:10ECB0000A2801D0082484E088680399406C102257
+:10ECC000491C00F010FC062168460170386902906A
+:10ECD000002168460171FFF73DFDA14813304179DD
+:10ECE000FB221140DDE707246BE0217802297DD16A
+:10ECF0009B490128FBD162684A6014780846002CC1
+:10ED00005DD106216A46117039690291072111719E
+:10ED1000029902240C70CA785207520FCA704B79BC
+:10ED20005B075B0F4B718B795B075B0F8B71D207B6
+:10ED300001D18A714A7105460A794078824200D22F
+:10ED40006A7087480722133000F0CDFB00202C703A
+:10ED5000307101466846FFF7FDFC40E22178042946
+:10ED6000C5D1032871D108227E48616800F0BBFB41
+:10ED7000032030710420E3E121780429B7D1784FD2
+:10ED80000328B4D1774808220830616800F0ABFB53
+:10ED90000420307178684168002907D00321217070
+:10EDA000002121714068A060032531E20320C7E102
+:10EDB000207803289BD1207900281BD00446002C02
+:10EDC00014D0062168460170386902900221684615
+:10EDD0000171029805210170447000216846FFF717
+:10EDE000B9FC012168460170042100E0A2E1017133
+:10EDF000447105E25A49A06849680028486001D179
+:10EE000059484860052030717869032202704A68C9
+:10EE10004260544A8260524A0C32C260D21D026182
+:10EE2000027D4B7A5208DB075200DB0F1A43027552
+:10EE3000CB688361FD231A404B7A9B07DB0F5B0095
+:10EE40001A4302750969C16194E1F2E02178092948
+:10EE500086D14349032891D10420087006206946D1
+:10EE6000087038690290112008710298032101701E
+:10EE7000401C1022616800F036FB00216846FFF755
+:10EE800069FC00203071AAE12178092992D1052876
+:10EE900090D13449626820391020401EC0B20B5C0A
+:10EEA000145CA34203D000200424307189E70028B9
+:10EEB000F3D107203071786904210170284949682D
+:10EEC0004968416027498160103952E120780A2859
+:10EED000BED106216846017038690290112168464A
+:10EEE0000171029804210170401C10221D4900F09C
+:10EEF000FAFA00216846FFF72DFC194810214078E6
+:10EF00006268091AC9B2101800F0E5FA6068019049
+:10EF100013481330C178C9070FD08179002902D175
+:10EF20004079002809D00820307109E1214668465F
+:10EF3000DFE0054601287CD06AE1072069460870B9
+:10EF400000216846FFF706FC4BE120780E289DD192
+:10EF50000348616881604969407808700920A2E629
+:10EF6000B4000020501A00202C2D0100C80701D049
+:10EF70000A20E3E00F2096E620780F2859D1A068F8
+:10EF80003861207938730B20F3E620780428F5D116
+:10EF90006168F84C0822A068C06900F0A4FA0C204F
+:10EFA000307178690722B9690270A268D36843603A
+:10EFB000D2698260DDE020780D28DFD1ED4D6168F7
+:10EFC000A86802230269806900F095FA0D2030716B
+:10EFD000786906210170A9688A68426009695FE062
+:10EFE00020780C28CAD1E34D6168A8686A78006A65
+:10EFF00000F079FA6878AA681021091A126AC9B271
+:10F00000101800F068FA062168460170386902900D
+:10F01000112268460271029810220170A968401CF2
+:10F02000096A00F060FA00216846FFF793FB0E20A2
+:10F030005AE0A2E020780F287CD1062069460870AB
+:10F04000386902900B200871029C0720C94D20707E
+:10F05000A86802228169601C00F045FAA8680822AD
+:10F06000C169E01C00F03FFA00216846FFF772FB1F
+:10F0700080E7880701D5102060E0132013E6207890
+:10F080000F287AD1A0683861207938731120307147
+:10F09000786906210170B7498968C9684160B64935
+:10F0A0008160B549091D64E020780C2865D1B14D17
+:10F0B0006168A8681022406A00F015FA06216846C7
+:10F0C0000170386902901121684601710298082187
+:10F0D0000170A968401C496A102200F004FA00215E
+:10F0E0006846FFF737FB122030710921684601702E
+:10F0F0002146FFF72FFB1CE720780F281AD10621A5
+:10F1000068460170386902900821684601710298CA
+:10F1100009210170974989680A78D207D20F427095
+:10F1200049680622801C00F0DEF900216846FFF7DE
+:10F1300011FBA2E769E0480705D5142030710920CA
+:10F1400069460870F2E61620ADE520780F2853D105
+:10F15000A0683861207938731520307178690621EC
+:10F160000170844989688A684260096981608249BE
+:10F17000891DC160FFF728FBDBE63DE020780C2805
+:10F1800043D161687B4C1022A068806A00F0ABF923
+:10F1900006206946087038690290112008710298AB
+:10F1A0000A210170A168401C896A102200F09BF9B5
+:10F1B00000216846FFF7CEFAC5E76E481330407964
+:10F1C00000280ED0C10703D06A480621017006E06E
+:10F1D000800701D5082000E00A2066490870002554
+:10F1E00016E017205FE56349002805D00020307144
+:10F1F00008700A206946087068460078002804D024
+:10F2000000216846FFF7A6FA00255A480021017040
+:10F21000284605B0F0BD10B5584BFF245C7258600D
+:10F2200019721A80002204E0491EC9B20B010C3386
+:10F23000C2540029F8D110BDF0B5504E0546717A80
+:10F2400001208DB0FF2971D00127727A73681101F6
+:10F250005C180C31595C8900091F64586A70217868
+:10F260000B0003F033FD0B960709272C59818D4ABB
+:10F270004F5492002F7075E0214620310A91097990
+:10F280000120002902D001296DD10EE060680190B3
+:10F2900005A802900D21C01C00F01DF9032205A84D
+:10F2A000A16800F020F90A984EE02978052974D168
+:10F2B000062156E029462046FFF725FB69E0214656
+:10F2C0002031069109790120002902D0012964D159
+:10F2D0000EE06068019007A802900822E16800F043
+:10F2E00002F9082209A8A16800F0FDF806982BE0B1
+:10F2F0002978052951D10A2133E02946204600F01A
+:10F3000005F946E029462046FFF777FA41E029460D
+:10F310002046FFF762FB3CE0214620310591097948
+:10F320000120002903D0012937D116E056E060689A
+:10F33000019007A802900822A16800F0D4F80821E3
+:10F3400009A800F0C8F805986946077105200870FB
+:10F3500029466846FFF7FEF91BE0297805291CD1EC
+:10F360000B212970002018E02946204600F014F9EE
+:10F370000FE00000B4000020242D0100601A0020DE
+:10F380002946204600F038F903E029462046FFF7D9
+:10F39000D5F9002801D001280CD12562717A736853
+:10F3A00009010C315A5C521E1206120E5A5401D039
+:10F3B00003204AE70328FCD0737A726819011D0103
+:10F3C0000D312C46515C7172FF270D3417550C35E9
+:10F3D000545D002C02D0FF2903D173720DB0F0BD33
+:10F3E00021460C010D34145DFF2CF9D109010D31BA
+:10F3F0005354F3E770B5A24C0546607A21460346A4
+:10F400004A6811E0010108460C30105C08E0401E1B
+:10F41000C0B286008E199659AE4201D1042070BD4B
+:10F420000028F4D10D31505CFF28EBD19448002125
+:10F43000007A01E0491CC9B2884204D90E010C3699
+:10F44000965D002EF6D1884201D8052070BD0801D6
+:10F450000D30135461722846FFF7B6F9032806D021
+:10F46000617A626809010D31515C617270BD284694
+:10F470002830FFF7E1FE70BD10B504780123012CA0
+:10F4800014D10C78022C11D30B23137083785B07F3
+:10F490005B0F537002220A708088002805D0830019
+:10F4A00000221146062000F0D8FD0023184610BDAA
+:10F4B0000EB50022012105280AD0062807D168468A
+:10F4C00001700221017142710021FFF766F80EBD43
+:10F4D00068460170F6E7002202E0491EC9B24254B4
+:10F4E0000029FAD1704703E0521ED2B28B5C8354DC
+:10F4F000002AF9D1704730B505E05B1EDBB2CC5C69
+:10F50000D55C6C40C454002BF7D130BD3EB50446E9
+:10F5100020300D4602790121002A02D0012A39D17A
+:10F520000EE06168019157490291012101710520A6
+:10F530006946087029466846FFF70CF9014629E03C
+:10F540002878052826D169681022A06800F087F87D
+:10F550006868C07B000606D54A4AA06810231032AE
+:10F560000146FFF7C8FF1022A168E06800F077F8B5
+:10F57000A068C07B000606D5424AE068102310321E
+:10F580000146FFF7B8FF07202870A0686860E068B0
+:10F590000021A86008463EBDF0B5044626460F4649
+:10F5A00020363179012089B0002909D0012905D1FF
+:10F5B0003978052902D10C203870002009B0F0BD3F
+:10F5C000606803AD01900295022203A8A168FFF7CD
+:10F5D0008AFF0222A81CE168FFF785FF0C21281D85
+:10F5E000FFF779FF01203071052069460870394620
+:10F5F0006846FFF7AFF8E1E710B5034620331C7902
+:10F600000122002C04D0012C10D0022C25D11EE0A8
+:10F6100001211971C16806220A70406848601948C2
+:10F62000801F8860801CC86008460CE00C780C2C99
+:10F6300013D102221A71C268052313704968516000
+:10F64000806890601046FFF7BFF8024605E0087832
+:10F650000B2802D10D2008700022104610BD10B5F5
+:10F66000002409E00B78521E5B0023430370401C0A
+:10F670000B78491CD2B2DC09002AF3D110BD00007E
+:10F68000601A00202C2D010070B50D46040012D028
+:10F69000002D10D02101284603F0D3F81022544940
+:10F6A000284603F071F8524801210838018044804F
+:10F6B0004560002070BD012070BD70B54C4E002427
+:10F6C0000546083E11E0716820014018817BAA7B45
+:10F6D000914209D1C17BEA7B914205D10C22294696
+:10F6E00003F025F8002806D0641C30888442EADB49
+:10F6F0000020C04370BD204670BD70B50D460600A9
+:10F700000AD0002D08D03A4C083C20886188401C63
+:10F71000884203D9042070BD102070BD3046FFF729
+:10F72000CCFF002801DB0F2070BD2088616800013C
+:10F7300040181022314603F027F82088401C208012
+:10F740002870002070BD70B514460D001FD0002C2D
+:10F750001DD00021A170022802D0102817D108E086
+:10F76000687829780002084311D00121A170108027
+:10F770000BE02846FFF7A1FF002808DB401CA07023
+:10F78000687B297B000208432080002070BD012097
+:10F7900070BD70B5054614460E000AD000203070CA
+:10F7A000A878012807D004D9114908390A8890425D
+:10F7B0000BD9012070BD002C04D028782070288837
+:10F7C000000A50700220087010E0002C0CD049682C
+:10F7D0000001411810391022204602F0D5FF287888
+:10F7E00020732888000A607310203070002070BDDC
+:10F7F000D8000020734909680160002070477149F2
+:10F8000008600020704701216F4A704B002803D028
+:10F81000012805D06E48704791630020187001E000
+:10F82000D1631970002070476A4901200860684858
+:10F83000801C70470422684B6649002805D05A6036
+:10F84000086901221043086108E008694008400087
+:10F8500008619A605C490020C031886000207047D0
+:10F860005C490622002808D0012809D002280DD0C2
+:10F8700003280FD05648401C70470869904302E0A7
+:10F8800008699043801C0861002070470869904314
+:10F89000001DF8E708691043F5E74E494A6A02433C
+:10F8A0004A62002070474B494A6A82434A620020FC
+:10F8B00070474849496A0160002070474549CA6954
+:10F8C0000243CA61002070474249CA698243CA6143
+:10F8D000002070473F49C96901600020704730B57A
+:10F8E0000546002072B601463A4A384C4032002D97
+:10F8F00011D00123012D0CD0022D02D0072062B6B9
+:10F9000030BDA3706478002C01D09363F7E7916356
+:10F91000F5E7A170F9E7A170F9E72F4904208860A5
+:10F9200029490020C03188602849012008702B49EE
+:10F930000A688023120A12021A430A6028490860E2
+:10F94000704722480078704770B5EFF31080C50704
+:10F95000ED0F72B61D4C6078401C0006000E607002
+:10F9600003D120A1CC2003F0ACF86078012806D1A7
+:10F97000A078002803D01749012040318863002D6A
+:10F9800000D162B670BD70B5EFF31080C507ED0F02
+:10F9900072B60E4C6078002803D112A1DC2003F06F
+:10F9A00090F86078401E0006000E607006D1A078C6
+:10F9B000002803D00749002040318863002D00D182
+:10F9C00062B670BD0004004040000040E800002026
+:10F9D00004200000000500400003004000E400E0B7
+:10F9E00000E100E07372635C736F635F706F776553
+:10F9F000722E63008107C90E002808DA0007000F85
+:10FA000008388008B94A80008018C06904E080087E
+:10FA1000B74A800080180068C8400006800F704711
+:10FA2000B44948788978884201D3401A02E02122FB
+:10FA3000511A0818C0B27047AE4923314878897806
+:10FA4000884201D3401A02E02122511A0818C0B29C
+:10FA50007047A849463148788978884201D3401ACE
+:10FA600002E02122511A0818C0B27047A04810B510
+:10FA70000C300168FF22120291430122D20311438C
+:10FA800001609C49002023314870887023394870F8
+:10FA90008870463148708870974801F0FCFD9648A0
+:10FAA000401C01F0F8FDF2F723FE00F015F910BD3F
+:10FAB00020207047B4E770B50C4605460026FFF7D6
+:10FAC000AFFF8C49A04214D30A46203A00232046B7
+:10FAD000641EE4B200280BD08878105C2870887807
+:10FAE0006D1C401CC0B288702128F0D18B70EEE7ED
+:10FAF000012600F0F1F8304670BD202070479BE7EA
+:10FB000070B50C4605460026FFF796FF794923316C
+:10FB1000A04214D30A46203A00232046641EE4B2D1
+:10FB200000280BD08878105C287088786D1C401CE9
+:10FB3000C0B288702128F0D18B70EEE7012600F06A
+:10FB4000CBF8304670BD202101700020704710B501
+:10FB50000446FFF77EFF2070002010BD70B50C46F4
+:10FB60000546FFF776FF63494631A04215D30A46A2
+:10FB7000203A00232046641EE4B200280BD0887887
+:10FB8000105C287088786D1C401CC0B288702128D9
+:10FB9000F0D18B70EEE7002400E0584C00F09CF8A8
+:10FBA000204670BD70B50C460546212904D9FF20BA
+:10FBB00053A1473002F085FF4C484068103840B2EE
+:10FBC000FFF718FFC6B20D20FFF714FFC0B2864240
+:10FBD00007D2FF204AA14D3002F073FF01E0F2F797
+:10FBE000C7FD21462846FFF766FF0028F7D070BD05
+:10FBF000F8B5404E07462336B1787078212200F0E0
+:10FC000060F8354623353B4C00280ED0A17860784B
+:10FC1000212200F056F8002814D0A9786878212213
+:10FC200000F04FF800281AD025E032497078C91C3E
+:10FC30000F547078401CC0B2707021281BD1002076
+:10FC4000707018E02B49607820390F546078401CA0
+:10FC5000C0B2607021280ED1002060700BE02549F1
+:10FC6000687826310F546878401CC0B2687021282B
+:10FC700001D100206870B1787078212200F021F85D
+:10FC800000281DD0A1786078212200F01AF8002801
+:10FC900016D0A9786878212200F013F800280FD038
+:10FCA000F2F748FD144801F0FEFC012149038842A7
+:10FCB00003D013A1C12002F004FF0F4801F00BFD97
+:10FCC000F8BD401C884205D0904201D1002901D0E6
+:10FCD000002070470120704710B5074801F0E3FC91
+:10FCE000002801D1F2F715FD10BD000000ED00E085
+:10FCF00000E400E08C1A0020EB0000200720000048
+:10FD00007372635C736F635F72616E642E63000075
+:10FD100010B5284801F0BFFC002803D026A11D2003
+:10FD200002F0CFFE2348401C01F0B5FC002803D0B0
+:10FD300021A1212002F0C5FE10BDF1B5224D6F6852
+:10FD400001261C4801F0AFFC1A4C002803D1002604
+:10FD5000601C01F0C0FC1D4A1D490120506000BF1D
+:10FD600000BF00BF00BF00BF00230B604B60009BC3
+:10FD70006B60106000BF00BF00BF00BF00BF08681D
+:10FD8000002802D148680028F9D048680028E4D14A
+:10FD9000002E04D06F60601C01F085FC07E0601C41
+:10FDA00001F081FC0028D3D1024801F094FC00202E
+:10FDB000F8BDC2E7ED0000207372635C736F635F90
+:10FDC0006563622E6300000000E5004000E0004033
+:10FDD00000E1004030B5EFF31081CC07E40F72B6BC
+:10FDE0001D4A116910230D461D431561002C00D1D9
+:10FDF00062B61A4DC406E40E0120A0402C680442ED
+:10FE00000DD0C8060AD4EFF31080C007C00F72B639
+:10FE1000116999431161002800D162B630BD20BF3D
+:10FE200040BF20BFEAE70E4908784A78401CC0B2BC
+:10FE3000904200D008707047084A094820BF40BF70
+:10FE400020BF4178037843701368002B02D10378F8
+:10FE50008B42F3D00020704700ED00E000E200E0AC
+:10FE6000EF000020FEB5F44C07466068FF213E011C
+:10FE700081552178FF2913D00901083141583246B4
+:10FE8000491E083209020192090A805800F0CBF994
+:10FE9000002802D02478254615E06168207888552E
+:10FEA0002770FEBDE448426801981158280100906F
+:10FEB0000830105800F0B7F9002806D1DE482C466B
+:10FEC000416800980D5CFF2DECD1DB4821014068B2
+:10FED00085554754FEBD70B5D74A04460020157AB3
+:10FEE00053680AE00201561C9E5DA64203D10C3203
+:10FEF0009A588A4204D0401CC0B28542F2D8FF20F2
+:10FF000070BDF8B5CC4F3E7801F042FB0146FF2EA4
+:10FF100071D03401254678680835405900F083F9DE
+:10FF200002280CD97868405901F025FB01F030FB1C
+:10FF300001467868405900F076F902285BD8BE493E
+:10FF40004868025D0A70A11C425C002A0CD0521E57
+:10FF5000425441590122D20589180902090A415126
+:10FF60003046FFF77FFF30E0631CC25C0092221D29
+:10FF700094468258002A10D001239B029A420FD93E
+:10FF80009205920D43595703DB191B021B0A43517B
+:10FF90006346C3589A1A920A09E0FF21C1540AE045
+:10FFA000435952039A181202120A42510022425433
+:10FFB0003046FFF757FFA0480C344168C2680098EC
+:10FFC000095980001258009890479B4C2078FF28D0
+:10FFD00011D0000161680830085801F0CCFA01F036
+:10FFE000D7FA01462078626800010830105800F006
+:10FFF0001AF9022886D3F8BDF8B51C4615460E46F8
+:020000040001F9
+:100000000746FF2B03D38DA1D12002F05AFD8A4869
+:10001000FF21C760456004720674017000224270BF
+:10002000104604E00201521C401CA954C0B2A04278
+:10003000F8D3F8BD70B5804C06466578207C8542C3
+:1000400003D37EA1E42002F03CFDE068A900465005
+:100050006078401C6070284670BDFFB581B01D46B9
+:10006000FF2401F095FA744F064679780198814291
+:1000700003D872A1F22002F024FD6F480021037A18
+:10008000406810E00A019446521C825CFF2A25D089
+:10009000019FBA4205D162460C328758029A9742B4
+:1000A0001ED0491CC9B28B42ECD8FF2C18D02101BC
+:1000B0004A1C019B83540B460C33029AC250039B8B
+:1000C0005D4F0022012B0ED00B1DC25001239B025D
+:1000D0009D4216D9AA05920D08D008E00C46E0E72B
+:1000E000FF2005B0F0BD0B1DC550EFE71A465303C6
+:1000F0009B190E461B0208361B0AAA1A8351920A44
+:1001000009E0002D00D101256B039B191D022D0A6A
+:100110000B460833C550891C42543D463E78204664
+:10012000FFF7A0FE2878B04214D0000169680830BB
+:10013000085801F020FA01F02BFA29786A680901C1
+:10014000083152580146104600F06DF8022801D2DD
+:10015000FFF7D7FE0198C4E770B50C46054601F0DD
+:1001600017FA064621462846FFF7B5FEFF2814D0A9
+:10017000314D04012046696808300858314600F0C6
+:1001800052F80121090340186968A41C095D400B5D
+:10019000002901D08902081870BD002070BDF3B598
+:1001A00081B00F460198FFF796FEFF282AD0224E15
+:1001B0003578726829460C4604E0844205D025460D
+:1001C0002301D45CFF2CF8D11CE0FF2C1AD0A542EF
+:1001D0001CD10801105C3070FF2815D000010830D8
+:1001E000105801F0C8F901F0D3F90146307872686F
+:1001F00000010830105800F016F8022806D2FFF768
+:1002000080FE03E00020FEBD01F0BDF939460198F3
+:10021000FFF7A2FF22017168FF23541C0B558A5C73
+:100220002B01CA54FEBD401A00020121000AC90573
+:10023000884200D900207047D81A00207372635C8E
+:10024000736F635F74696D65722E6300F0B500248F
+:100250001C4A01211C4B0803546018601B4B1C6096
+:100260001B4C20601B480469E443E406E61704695C
+:10027000761C10252C430461174C6160174D2960D2
+:1002800000E020BF1F68002FFBD0002E03D10769BC
+:100290001026B743076190688005906801D5104A21
+:1002A00010436960A160002119600121084A090317
+:1002B0001160F0BD10B50446FFF7C8FF20600020B4
+:1002C00010BD000000C5004080E100E000C100401A
+:1002D00080E200E000ED00E000C3004000C000400C
+:1002E00000FCFFFF70B51F490A68002A17D00023E1
+:1002F0001D4601244A68521C4A60092A00D34D60F9
+:100300000E792246B2400E6816420AD072B60B68C9
+:1003100093430B6062B649680160002070BD052000
+:1003200070BD5B1C092BE5D30FA1362002F0C9FB81
+:10033000F5E701201049800508607047EFF3108150
+:10034000CA07D20F72B601218140064803681943DB
+:100350000160002A00D162B6EBE70248002101608B
+:1003600041607047F40000207372635C736F635FD9
+:100370006576742E6300000000E200E00120810732
+:100380000860704701208107486070471048C068C6
+:10039000C00700D0012070470D488068C00700D01A
+:1003A000012070470A484069C00700D0012070470B
+:1003B0000748C069704706498A69D20306D589692A
+:1003C0008907890F814201D10120704700207047C1
+:1003D00000040040F8B5FE4C607A217A88421BD0B8
+:1003E0000126FC4D0027207A215C14200A46424356
+:1003F0005019037C052B10D0062B19D0072B23D0C6
+:10040000437C012B2BD02120F3A1400102F059FBAA
+:10041000617A207A8142E6D1F8BD0674207A401CC8
+:100420004007400F2072491CC8B2AA58022109E0B7
+:100430000674207A401C4007400F2072491CC8B245
+:10044000AA5803219047E3E70674207A401C40072E
+:10045000400F2072491CC8B2AA580821F2E747741D
+:10046000207A401C4007400F2072491CC8B2AA588D
+:100470000721E7E770B5DB4D05202871DA48002435
+:1004800044700470183044720472D84801F003F9C3
+:10049000D7480474AC71D748611E41606C70847792
+:1004A000C4772C704477D448022104704470D34838
+:1004B000047528300470491EFAD10120F2F7DAF9E8
+:1004C0000020F2F7D7F90120A870F2F765F8CC48C0
+:1004D000F2F774F8CB4C2070CB48F2F76FF86070ED
+:1004E000F2F76CF970BD10B5F2F793F9C54C2078AE
+:1004F000F2F782F86078F2F77FF8BA4CE0780028DB
+:1005000005D0FFF740FAF1F7A8FE0020E07010BD1B
+:1005100070B5B44CA078002805D0FF20AEA1B23051
+:1005200002F0CFFA70BDA079002804D1FF20AAA163
+:10053000953002F0C6FA0125A5700026A671207933
+:10054000042114225043A34AAA4C80180174606805
+:10055000401C04D0481F60600120F2F78BF9002096
+:10056000F2F788F9F2F76CF9F2F773FAF2F7F8FAA2
+:10057000A1480078022804D0032804D1E07F002895
+:1005800001D0A57700E0A677F2F74FFA70BD0346D9
+:1005900090490420142242435218203A127F002A24
+:1005A00004D0401E0006000EF4D1704714224243CE
+:1005B00051180A46403AD362012220390A7770471F
+:1005C000012805D0032805D1002903D10020704758
+:1005D0000029FBD010B4874C00236377864A00289B
+:1005E00090700CD002280AD007291AD20B007B4445
+:1005F0001B79DB189F441505070D0F111300D370ED
+:1006000003E01B2000E03A20D0700120607710BC8E
+:1006100070475820F8E77720F6E79620F4E7B520F2
+:10062000F2E710BC0020704710B573484078F2F72D
+:1006300014FA80B210BD411E1422504310B5654A11
+:100640008418203C032902D8207F002803D162A10E
+:100650006E4802F036FA207F012804D001205EA106
+:10066000400202F02EFA0020207710BD70B55E4CDB
+:1006700060782178884201D1012500E00025F2F759
+:1006800088F9F2F7EAF961782278914201D10121E3
+:1006900000E00021A942EBD170BDF7B58CB0064651
+:1006A0000D98401EC1B20090029114204143494868
+:1006B0000D1828460195007C2D1D07282BD1444F8D
+:1006C00000203C7A797AA14222D03A5D02998A428E
+:1006D00007D1002803D040A14D4802F0F2F90120D3
+:1006E00001E0002804D0611C4907490F795C3955A5
+:1006F000641C6407797A640FA142E6D1002807D010
+:10070000787A002802D0787A401E00E007207872BC
+:100710000199012008740099324C0D9803290FD8D3
+:10072000142148432B4940182038007F002807D067
+:100730000198007C012807D00E98C07A012807D0C4
+:1007400025A1344802F0BDF90E98C07A012839D1AC
+:100750000198204B007C02280FD01D4C607A217A32
+:10076000401C4007400F884203D11BA12A4802F0D9
+:10077000A8F901990120487434E12079029A0146D0
+:10078000904206D0014614277843C018807C9042DE
+:10079000F8D12279824208D1217914225143C91813
+:1007A000897C21710121617107E014224243D21832
+:1007B00014277943927CC9188A7414220521504366
+:1007C000C01881740E98007A06283BD226E00000FB
+:1007D000D41B0020EC1A00207372635C72656D2ECE
+:1007E00063000000001C0020BC1B0020071C002030
+:1007F000C01B0020E01B0020FE000020E81A0020A3
+:1008000003FF0000FC000020D5030100FF010000F1
+:10081000450200004E0200005B02000003007B4422
+:100820001B79DB189F44020C0A08060400200FE025
+:10083000B4200DE073200BE0322009E00A2007E02D
+:10084000062005E0FF20F749443002F03AF9002085
+:1008500003900E98C07A02280E9824D0807A2872CD
+:100860000E9803990068401A28600E99097A0029A9
+:1008700061D00221401A0002000A28600E98016827
+:10088000406808186860C01D0002000A68600E9881
+:100890000627407AA8720E98007A6872FFF776FDF4
+:1008A00000284AD053E04168007A00282DD0022069
+:1008B00009180398C01D09182079052827D0DA489F
+:1008C000039A4078904200D81046801A4218D748C0
+:1008D000921D8446207914235843D54BC018436891
+:1008E00080689B1B801B1B0200021B0A000A9A42A5
+:1008F00004D8CE4A934201D8604508D92079142201
+:100900005043CB4A801880680CE00420D0E7C648EA
+:10091000039A4078904200D81046801A8019801DB2
+:100920000002000A286040180002000A68600020E7
+:1009300028726868A7E704219CE7687A032806D232
+:10094000002804D0039838210F1A32200390B649AA
+:100950000878012801D003280AD1487803998842F1
+:1009600006D9B449C97F002902D10399401AC71991
+:100970002968AE488B1B69681A02891B0591090218
+:10098000120A090A97421ED8074682421BD8B9426A
+:1009900019D82079012205282FD0002001210491A7
+:1009A00021799C46059B14225143A14A89184A6823
+:1009B000921B9A4203D28A68921B62452BD800226E
+:1009C0000AAF3A5430E0019905209B4C0874607AD4
+:1009D000217A401C4007400F884203D197A19A48D2
+:1009E00002F06FF8617A02986054607A401C400708
+:1009F000400F607200200FB0F0BD019802230299F1
+:100A000003742379052B00D02379837421716271DB
+:100A100001200FB0F0BD01220AAF3A548A7BAF7AB1
+:100A2000BA4201D800220492897C401CC0B2052938
+:100A300003D0049A002AB6D1A1E00498002877D008
+:100A400025790520002704900AA8C05D012827D039
+:100A500004951420454376487F1C2818857CFFB2F6
+:100A6000052DF1D1019802230374714F20790528D7
+:100A700053D025790520049001984068811B1420EB
+:100A80006843C0194268921B8A4262D92079A84201
+:100A90004FD1019902980B742279052A42D142E084
+:100AA0002079A8420BD121791420414360480818CD
+:100AB000807C2071012060710020207011E004987A
+:100AC000052803D15DA1614801F0FBFF28461421F0
+:100AD0004843574914234018827C049858434018CF
+:100AE0008274284614214843514906224018027452
+:100AF0005148417A007A491C4907490F814203D184
+:100B00004EA1534801F0DDFF4B48417A4554417AEC
+:100B1000491C4907490F41729BE7227901990298C4
+:100B2000052A00D022798A7420710120607123E0A7
+:100B300025E00498052803D140A1464801F0C1FFF3
+:100B4000049814225043C019029981740198857445
+:100B500012E0807C052807D0049505468FD137A187
+:100B60003D4801F0AEFF21E014214D43E919029800
+:100B7000887401990520887401200FB0F0BD019898
+:100B800005212D4C0174607A217A401C4007400FEA
+:100B9000884203D129A1314801F093FF617A02987C
+:100BA0006054607A401C4007400F607200200FB014
+:100BB000F0BD70B50D460646294900242046891B24
+:100BC000A04103D21DA1274801F07BFF2649002048
+:100BD000491BA04103D219A1244801F072FF244A05
+:100BE00070190021821A8C4101D32249401870BD2E
+:100BF000F8B5401EC0B2142148430D494518687B22
+:100C000006283DD203007B441B79DB189F44023643
+:100C100034080604002067E0B4203AE0732038E08E
+:100C2000322036E0D8070100FE000020FFFF3F0021
+:100C3000EC1A0020E01B0020D41B00207372635CC0
+:100C400072656D2E63000000A3020000DE0200004A
+:100C5000E302000007030000170300001D0300006B
+:100C6000FF7F841E290300000020A1072A03000043
+:100C70000080841E00807BE10A200AE0062008E054
+:100C8000FF20FE49443001F01CFF697B0020002951
+:100C90002AD0022140186968002440180C21000263
+:100CA0006956000A002921DBF1F7D7FEF44A06460F
+:100CB0000C27EF570021101AA14103D2EF49F14848
+:100CC00001F0FFFEF0490020C91BA04103D2EB490F
+:100CD000EE4801F0F6FEEE4AF0190021821A8C412E
+:100CE00001D3EC494018F8BD0421D3E7F1F7B5FE74
+:100CF0000C21695600224018E149091AA241F2D29A
+:100D00004042F8BDF0B5074683B0E3480E46029076
+:100D100000F0C9FCE14C00282ED0E14D287C0028D1
+:100D200003D0E0A1E24801F0CCFE012028742F732B
+:100D3000DB4D30782872707868722A460A3229466C
+:100D40007068F1F794FE0A2028560F2804DD1F383A
+:100D5000A8722868401C28600021B0686A4600918B
+:100D6000117101AA6946F1F782FE6A460420105605
+:100D70000F2846DD012045E060782178401C4007BF
+:100D8000400F884203D1C7A1CA4801F09AFE60789B
+:100D90000101C94809180F73617809010D183078ED
+:100DA0002872707868722A460A3229467068F1F70C
+:100DB0005EFE0A2028560F2804DD1F38A872286816
+:100DC000401C28600021B0686A460091117101AA98
+:100DD0006946F1F74CFE6A46042010560F2801DDE3
+:100DE000012000E00020009940186860307BE87224
+:100DF0006078401C4007400F6070029800F06BFC68
+:100E000005E00020009940186860307BE872607847
+:100E10002178884224D0A9480579052D22D0F1F700
+:100E2000B8FD14214D43A64969180A7C042A17D03D
+:100E3000032A15D04B6889681B1A091A180209027F
+:100E4000A04A000A090A06280AD31346904207D886
+:100E5000994205D860782178884201D0F1F7E5FD04
+:100E600003B0F0BD607821788842F7D103B0F0BDBF
+:100E700010B50020F1F7EBFC10BD10B50120F1F723
+:100E8000E6FC10BDF8B5074602281ED08B4C207931
+:100E9000052803D183A18C4801F013FE0020A07027
+:100EA0000125A571207903211422854E5043801914
+:100EB0000174F1F7BFFD3800844F0BD001281FD01B
+:100EC00003286FD077A1824838E082480078F1F794
+:100ED00099FBF8BD65700020F1F7CCFC7968481CDF
+:100EE00004D0012300221846F1F7FAFC2079217979
+:100EF000401CC0B214225143725801219047F8BDE2
+:100F00000120F1F7B7FC607800280CD07868401C0D
+:100F100009D020792179401CC0B214225143725863
+:100F200006219047F8BD387E01280AD0022812D049
+:100F3000032824D0042836D05AA1674801F0C1FD07
+:100F4000F8BD2078002804D000202070F1F777FD4C
+:100F5000FD77002024E0E078002804D1FEF7F4FCBF
+:100F6000F1F752F9E57020792179401CC0B21422C2
+:100F7000514372580021904700203876F8BD397AE5
+:100F800038680123411A00221846F1F7A9FC20789D
+:100F9000002804D000202070F1F751FDFD770220D9
+:100FA0003876F8BD1AE0397F38680123411A0022EB
+:100FB0001846F1F795FCE078002804D1FEF7C4FC50
+:100FC000F1F722F9E57020792179401CC0B2142292
+:100FD00051437258002190473D76F8BD2079217920
+:100FE000401CC0B214225143725805219047F8BDED
+:100FF00010B5324C2079052803D12AA1374801F0D9
+:1010000060FD20792179401CC0B2142251432C4A42
+:1010100052580421904710BDF0B583B00526F1F772
+:10102000B8FC054629484068401C03D01DA12C4847
+:1010300001F047FD214C21792A480190052956D01D
+:101040002179142041431E480918097C04294ED0F7
+:101050002179142251430818007C03287ED001987E
+:10106000184902684068521B401B12020002120A13
+:10107000000A062A72D30B468A4235E03C0C010076
+:10108000FF7F841E290300000020A1072A0300001F
+:101090000080841E00807BE1071C0020BC1B002018
+:1010A000C01B00207372635C72656D2E63000000CC
+:1010B0006E0300005F0300003C1B0020001C0020AA
+:1010C000EC1A0020FFFF3F00A2030000E01B0020FD
+:1010D000F3030000FC000020E7030000FA03000017
+:1010E0002B040000EC1B002038D8984236D8002092
+:1010F00060702079052808D1F648407F002804D088
+:10110000F548C1784170817801702079052814D0A4
+:10111000207914214843F1494018007C04280CD15F
+:1011200026792279012014235A4352181074227907
+:101130005A435118897C21716071E94F7878397868
+:10114000884215D038780101E6480A183978090133
+:101150000818017B2846FFF7A0FA00E071E1387813
+:10116000401C4007400F3870787839788842E9D1C0
+:10117000DD4F387C002806D0397B3A462846FFF7F9
+:101180008CFA00203874052E1BD0142031464143C0
+:10119000D2480818017C012913D10721D34F0174CB
+:1011A000787A401C0840397A884203D1D0A1D348CC
+:1011B00001F087FC787A3E54787A401C4007400F53
+:1011C0007872207905287DD0607900287BD00020B6
+:1011D0006071217914204143C048BE4F0E18C849A0
+:1011E000B3687268F6688E604B600A60797D00298A
+:1011F00010D0022621791422B84851430818407BA8
+:10120000062815D203007B441B79DB189F44040E8B
+:101210000C0A08060426EDE700200FE0B4200DE0DC
+:1012200073200BE0322009E00A2007E0062005E0E9
+:10123000FF20AFA1443001F044FC00203872797DDA
+:10124000022901D001290FD1F96809184A1B12029D
+:10125000120A382A08D90320787532390802000AA0
+:10126000F860322038720AE0322808D2E07800288C
+:101270000ED1FEF769FBF0F7C7FF012007E0E07829
+:10128000002805D0FEF77FFBF0F7E7FF0020E070B5
+:10129000914A0621507838771278012A01D0032A22
+:1012A00006D1012222703A7A904201D9811A891D11
+:1012B000BA7F002A00D0891C2378002B01D1002A94
+:1012C00061D001E088E098E08C468E490091019958
+:1012D0000B6849685B1B491B09021B02090A1B0AB0
+:1012E00001919C451CD8874DAB4219D8019B0099B0
+:1012F0008B4215D8397A884223D9FB68421A9A1A48
+:101300001202120A101880190002000AFA603860EE
+:10131000002914D0032038760006000E3ED144E0A8
+:1013200000202070B877397A002925D0F868401855
+:1013300080190002000A3860022038762EE0012071
+:10134000E9E781420BD9FA68511889190902090A9B
+:101350003960002801D00420DDE70220DBE7002A05
+:1013600003D163A1684801F0ACFBF8688019000262
+:10137000000A3860002004E0F96889190902090AA6
+:101380003960387611E0387A00281DD0F9680818DD
+:1013900080190002000A386002203876F8680123BC
+:1013A000811900221846F1F79BFA2079142148434D
+:1013B0004A490C2240188256012300203968F1F76F
+:1013C0008FFAF1F7C1FB18E0F86880190002000AF3
+:1013D000386000203876E8E70120F1F74BFA00206A
+:1013E000F1F748FAF1F72CFAE078002805D0FEF77B
+:1013F000CAFAF0F732FF0020E070364DA87F0028CF
+:1014000004D0F1F71CFB0020E877A877687F00285C
+:1014100004D03148C178417081780170207800286B
+:1014200006D000202C49E8770978002900D12070E7
+:101430002E48417A007A814203D034484078F1F74F
+:10144000E1F803B0F0BDF0B5314C0746207983B028
+:10145000052803D126A12F4801F033FB2079142160
+:101460001E4E48438019007C032803D020A12A483F
+:1014700001F027FB174D6868401C03D01CA12748CA
+:1014800001F01FFB20791421484381190C200856D4
+:1014900000216A4600911171C01901AA6946F1F74D
+:1014A000E6FA6A46042010560F2801DD012000E00C
+:1014B000002000994018296840180102090A696053
+:1014C0006078002804D0012300221846F1F708FABA
+:1014D00003B0F0BDE01B0020FE000020EC1A00204D
+:1014E000BC1B00203C1B0020C01B0020D41B002084
+:1014F0007372635C72656D2E630000005C04000013
+:10150000EC1B0020FFFF3F00AE040000FC000020A9
+:10151000001C00200B0500000C0500000D0500005C
+:10152000F8B51D4D0A1A00242346551BA34106D3C6
+:10153000194E431A254600279E1BBD4101D2104675
+:10154000F8BD164E0025B21AA54103D2721C101A1E
+:101550004018F8BD114D0022EB1AA24104D26A1CBA
+:10156000511A08184042F8BD53200DA1000101F0A6
+:10157000A8FA0020F8BD10B5014601230022022080
+:10158000F1F7AEF910BD10B50220F1F773F910BDF7
+:1015900010B5F1F7FEF910BD0020A107FF7F841EF2
+:1015A0007372635C72656D2E6300000010B50146B6
+:1015B00020220A4801F0E8F808490020C8770846C8
+:1015C00010BD0749012048610648074A0168914259
+:1015D00001D100210160704770477047081C00204E
+:1015E0000005004004010020EFBEADDE064A107089
+:1015F0005170704704481C2201784171427001709B
+:101600007047704770477047080100207047704767
+:1016100070477047704770477047704730B5034652
+:10162000002002460DE09C5C2546303D0A2D02D389
+:101630000020C04330BD0A25684330382018521CB2
+:10164000D2B28A42EFD330BD70B50D46144608E0E1
+:101650000A2101F013F92A193031203A641ED1779A
+:10166000E4B2002CF4D170BD10B5002310E0040AE0
+:1016700000020443A0B2CC5C44402006000F60404E
+:101680000407240C44402006C00C60405B1C9BB245
+:101690009342ECD310BD002101700846704701460B
+:1016A000002008707047EFF31081C907C90F72B6A8
+:1016B0000278012A01D0012200E0002201230370F8
+:1016C000002900D162B6002A01D000207047012015
+:1016D00040037047E7E7EFF31081C907C90F72B6FF
+:1016E00000220270002900D162B600207047F2E7A4
+:1016F0000348004703480449024A034B704700006F
+:10170000312B0100481C0020481C002010B5203857
+:101710000C46030001F0DAFA331B1F23272C313764
+:101720003C41474D5054585C606D71656974787CDC
+:101730008084888C9094989C9FA2A6AAAEB2B8BCD4
+:10174000C0C5CACFE9F0F3D3D7E0DBE4F8002068E6
+:10175000FFF7A1FFD6E02068FFF7A5FFD2E02068E1
+:10176000FFF7B9FFCEE0207840B200F0F3F9C9E00E
+:10177000207840B200F011FAC4E02078616840B2ED
+:1017800000F024FABEE0207840B200F034FAB9E06C
+:10179000207840B200F03FFAB4E02078217940B2DE
+:1017A00000F04AFAAEE02078616840B200F074FAC6
+:1017B000A8E000F080FAA5E0206800F084FAA1E03B
+:1017C000207800F099FA9DE02068FEF7BCF999E0D6
+:1017D0002068FEF7BCF995E021792068FEF7BEF994
+:1017E00090E02068FEF706F88CE02068FEF707F826
+:1017F00088E02078FEF707F884E0FEF715F881E02E
+:101800002078FEF717F87DE02078FEF729F879E0D8
+:101810002068FEF742F875E02068FEF744F871E0B2
+:101820002068FEF746F86DE02068FEF747F869E0AB
+:101830002068FEF749F865E02068FEF74BF861E0A4
+:101840002068FEF74CF85DE00846EEF77FFC59E0B3
+:10185000F0F7EDFC56E0F0F71AFD53E02068F0F7E2
+:1018600022FD4FE0206800F079FA4BE0206800F09C
+:101870007BFA47E0206800F07CFA43E02078A26819
+:10188000616800F07BFA3DE0207800F083FA39E0EF
+:10189000207800F08BFA35E02078616800F093FA48
+:1018A00030E02078616800F09AFA2BE02179207806
+:1018B00000F0ACFB26E02068FEF73FFA22E020684B
+:1018C000FEF710FD1EE02068FEF7F4FC1AE020464B
+:1018D00007C800F078FC15E0206800F0C0FC11E0BB
+:1018E0006168206800F0E2FC0CE0206800F04EFE29
+:1018F00008E009E003E0FFE700F061FE02E0206895
+:1019000000F079FE206010BD0120086010BD0000CD
+:1019100010B572B600F0E4F800280BD0EEF7C0FC6A
+:10192000FEF7E1FD00F039FB72490020C8628862D1
+:101930007149086062B6002010BDF3B50025012092
+:101940000007C06A81B0C0430006000E0AD16B4890
+:101950000168491C05D000686949884202D069487D
+:10196000FEBD012572B600F0BBF8002801D062B6BA
+:1019700088E0EEF701FCEEF797FC634C634A002128
+:101980002368CB40DB0720D00346CB40DB0718D1D0
+:101990004BB2002B07DA1E07360F083EB608B6001A
+:1019A000B618F66904E09E08594FB600F619366875
+:1019B0009B07DB0EDE4033069B0F012B05D0032B6C
+:1019C00003D062B64F48401EFEBD491C2029D7D324
+:1019D000019C01204F49230001F078F914222424AE
+:1019E0002424242424240B0D1012142016181A1C4D
+:1019F0001E2F002400E00124C86314E00224FBE74A
+:101A00000324F9E70424F7E70824F5E70924F3E7BA
+:101A10000A24F1E70B24EFE70C24EDE70524EBE7BC
+:101A2000072400E00624D06901210002000AC9074A
+:101A30000843D061002D04D009E062B60120000304
+:101A4000FEBD2C4D3448E862EEF72EFCA8622A4910
+:101A500032480860324902980860EEF725FC2146BA
+:101A600000F082FAFEF706FD00F04CFC00F0FEFAF2
+:101A70000198EEF7E3FB040062B603D0FFF748FFDE
+:101A80002046FEBD0020FEBD10B5044600F028F83B
+:101A9000002800D001202070002010BD21491848E6
+:101AA00008600020704710B50C46102808D0112897
+:101AB0000BD012280CD013280ED00120086010BDC6
+:101AC00061682068FFF739FF08E0FFF721FF05E0B4
+:101AD0002068FFF7D9FF01E0FFF7E0FF206010BDAD
+:101AE00005480E490068884201D101207047002056
+:101AF00070470000000500400401002000100010A5
+:101B0000004001000210000000E100E000ED00E0F4
+:101B100000E400E04000004000200000EFBEADDE29
+:101B200010010020000000208107C90E002808DAFB
+:101B30000007000F08388008814A80008018C069BB
+:101B400004E080087F4A800080180068C8400006D2
+:101B5000800F704710B5044600F0DBF8002813D062
+:101B60002046FFF7E1FFC0B200F0E1F800280DD0F9
+:101B70007549E2060B78D20E01209040002B08D068
+:101B80004A681043486006E0704810BD6F48401C2A
+:101B900010BD6F490860002010BD10B5044600F06C
+:101BA000B8F800280BD06849E2060B78D20E012065
+:101BB0009040002B05D04A6882434A6004E06348A5
+:101BC00010BD634980310860002010BD70B50D461E
+:101BD000044600F09EF800280BD05E480068E2063C
+:101BE000D20E01219140084000D001202860002041
+:101BF00070BD564870BD10B5044600F08AF8002844
+:101C000007D0E106C90E0120884052490860002033
+:101C100010BD4E4810BD10B5044600F07AF80028FB
+:101C200008D0E106C90E012088404A498031086089
+:101C3000002010BD454810BD70B50D46044600F0AB
+:101C400068F8002819D0284600F071F8002816D04E
+:101C5000A007C20EFF209040A907090E9140002C5A
+:101C600010DA2207120F083A9308354A9B009B1896
+:101C7000DA6982430A43DA610CE0344870BD3348C4
+:101C8000401C70BDA3082F4A9B009B181A68824312
+:101C90000A431A60002070BD70B50C46054600F07E
+:101CA00038F8002805D02846FFF73EFF20700020B6
+:101CB00070BD264870BDBFF34F8F21492648C860CC
+:101CC000BFF34F8FFEE770B51F4C0546217801200A
+:101CD00000290ED1207072B600F06EF91C4E8036CD
+:101CE00031688143616000F067F9C043306062B6DB
+:101CF00000202870002070BD13490A78002A06D001
+:101D0000002804D1124A48681060002008700020A2
+:101D1000704710B50446202805DA00F04DF901217E
+:101D2000A140084201D0002010BD012010BD0128B3
+:101D300003D0032801D00020704701207047000025
+:101D400000ED00E000E400E01401002001200000AC
+:101D500000E100E000E200E00400FA05364909680D
+:101D6000C9B20160002070473349C0B2486000200A
+:101D700070473149C0B2886000207047082801D3FD
+:101D80002E4870472C4BC0001033C01801604260D1
+:101D900000207047022802D32848401C7047284979
+:101DA000C00040180121016000207047022802D3C2
+:101DB0002248401C70472249C000091D40180121DB
+:101DC000016000207047022802D31C48401C704765
+:101DD0001C4A80008018C9B20160002070470228A8
+:101DE00002D31648401C7047164A800080180068CD
+:101DF000C0B208600020704710B5FF200E49C043F4
+:101E000088600D4B082210330021D000C0180160FB
+:101E10004160521C102AF8D30A4B00208200D218CD
+:101E2000022801D3116002E01468E4B21460401C7F
+:101E30000428F3D310BD000000F501400820000085
+:101E400000F0014000F80140F8B504468007002585
+:101E50000126002804DA5A48C563C6630220844379
+:101E6000E00404D55748C563C6638014844360000A
+:101E700003D55548456080058443E00504D55348A3
+:101E8000C563C66380158443A00404D55048C56368
+:101E9000C6634014844360042704C00FF90F8842CE
+:101EA00003D04CA1612000F00CFEB80F0AD04E49BF
+:101EB000CD634E48C563C563CE63C663C663032066
+:101EC0008003844320050AD5494FFD632F20EEF798
+:101ED0006BF9FE632F20EEF767F9F8148443002CAA
+:101EE00003DAFFF789FF640064084248044203D024
+:101EF00038A1902000F0E5FDF8BDF0B500210A46BC
+:101F0000FF230446CC40E4072AD04CB2E606F60E86
+:101F10000125B540384E3560384E3560002C11DA59
+:101F200025072D0F083DAE08354DB6007619F56929
+:101F3000A407E70E1C46BC40A5431446BC402543FD
+:101F4000F5610DE0A6082F4DB60076193568A40797
+:101F5000E70E1C46BC40A5431446BC4025433560F3
+:101F6000491C2029CDD3F0BD70B5274C0D4620600B
+:101F7000FFF76AFF2068FFF7C0FF2846F0F720FA56
+:101F8000FDF7C6FEFDF772FDFFF736FFFDF7C5FC56
+:101F9000F0F702FB00F06AF870BD10B51A4C20682B
+:101FA000FFF752FF2068FFF7A8FFFFF725FFF0F7C4
+:101FB0008CFA0020206010BD1348006870470000B4
+:101FC000C01F0040C0CF004000E50140C08F00406E
+:101FD000C0DF00407372635C736F635F636F6E6634
+:101FE00069672E6300000000C0EF0040C0FF0040A2
+:101FF000C0BF0040FEFF0FFC80E100E080E200E097
+:1020000000ED00E000E400E01C01002070B50024B9
+:1020100002460D4620462146002A1ED0012A04D041
+:10202000022A04D0032A1ED103E0012002E002208C
+:1020300013E003202B0000F049FE07160507090BEB
+:102040000D0F1600012108E0022106E0032104E043
+:10205000042102E0052100E00621FEF7B1FA002884
+:1020600001D0204670BD0724FBE700009B490020FB
+:10207000087088709A490870704770B5974C0E4682
+:102080006178884203D097A15A2000F01AFD0325F9
+:10209000330000F01BFE0953063030535353534AAC
+:1020A00053002078022803D08EA15E2000F009FDA5
+:1020B0002570A078022802D0012804D014E0A0687E
+:1020C00000F004FB10E000250BE0E0680168A06868
+:1020D00000F00DFBA068001DA060E068001D6D1CF5
+:1020E000E06020698542F0D30020A070FEF710FA6E
+:1020F0000420207070BD2078022803D079A17620BA
+:1021000000F0DFFC60687649401C6060032801D85D
+:102110004D7003E0062806D80220487070496078A8
+:10212000FEF7F0FD70BD032003E0A0780028FAD18F
+:102130000220FEF703F900F0C7F870BD69A19E20E8
+:1021400000F0BFFC70BD70B50546644C00206060B7
+:102150002078012803D063A1A52000F0B2FC6049DB
+:10216000022008738D6003224A7020706078FEF7A9
+:10217000C9FD70BD10B5594CA078002802D1207857
+:10218000002801D0112010BD5A48FEF700FA6070F7
+:102190006078002803D001202070002010BD0320AB
+:1021A00010BD10B50124020B64040121524BA04262
+:1021B00002D29140186802E0203A586891400840E5
+:1021C00000D0012010BDF8B50E46910005464F190C
+:1021D00014463F1F009100F09CFA00998002891973
+:1021E000091FB14201D2012200E00022002C03D0DD
+:1021F000FF2101318C4201D90920F8BD3F498D42B0
+:1022000019D3AF4217D3854205D2874203D228465D
+:102210003043800701D01020F8BD8E420BD3002A36
+:1022200009D12846FFF7BDFF002804D13846FFF743
+:10223000B8FF002801D00F20F8BDFFF79BFF002852
+:10224000FAD126480121C66085600461817020466C
+:10225000312148431430FFF776FF0020F8BD10B558
+:1022600004462648800A84420BD300F052FAA0426A
+:1022700001D8102010BDA0020446FFF792FF0028ED
+:1022800001D00F2010BDFFF775FF0028FAD11348C9
+:102290000221846081701A48FFF755FF002010BDAD
+:1022A0001648010B01208840401E704700B50B46C0
+:1022B0000246FFF7F5FF104201D00F2000BD0E4887
+:1022C00002604360002000BD10B5044C6078FEF74A
+:1022D000B2F900202070A07010BD00002001002085
+:1022E000281C00207372635C736F635F666C61739C
+:1022F000682E63007B2001000006004000400100C2
+:1023000010540000E349002048700870887048604D
+:10231000E1490873704710B5E048826A81158A4325
+:10232000DC498B691A438262826A0223C9699A4333
+:102330000A438262FEF7ECF810BD002814D0417801
+:10234000002901D001290ED18168D54A6439914212
+:1023500009D24068D349884205D8CE494978012935
+:1023600003D1002801D0002070470120704770B5CC
+:102370000446FEF782FD0068002803D0CAA1802031
+:1023800000F09FFB0126C34D002C06D020780028CA
+:102390002BD0012827D0022801D0EE7023E0287826
+:1023A000002820D16068FFF7C8FF0028F5D06068DA
+:1023B0000078002800D00220B74E30706068806836
+:1023C0009630B06060684168E868FEF7F2FB7060C4
+:1023D000606803244078002808D07470AE49A8785B
+:1023E000FEF790FC6C70FFF796FF70BD02207070D6
+:1023F000F4E7F8B5A74C0D46A178884203D0AAA10E
+:10240000BF2000F05EFB284600270526A24D0300F2
+:1024100000F05CFC09061135587F8997B8A2B80016
+:102420006078032806D06078022803D09EA1C320DC
+:1024300000F047FBF8BD6078032806D060780228DA
+:1024400003D099A1C72000F03CFB04206070E77026
+:102450002078002802D0FEF75BF8F8BDA86896380F
+:10246000FEF7F1FF6868E0608C48816A82151140D0
+:10247000A161806A02210840E06100205CE0607890
+:10248000032806D06078022803D087A1E22000F05C
+:1024900018FB2078002802D000F0EFF8F8BD607833
+:1024A000032802D02069410020E004202DE07A4971
+:1024B000A078FEF727FCF8BD0420FDF73FFF0120C0
+:1024C0006070F8BD6078032807D06078022804D0D7
+:1024D000FF2075A1043000F0F4FA20780028DBD149
+:1024E0006078032810D06868A06076492161A068F0
+:1024F000FEF75FFB686069686069FFF711F868497B
+:1025000063318842D8DCD2E70520FDF717FF6670FB
+:10251000F8BD6078042804D0FF2063A1263000F0C5
+:10252000D0FA022008E06078042804D0FF205EA1E1
+:102530002B3000F0C6FA012061688847FFF717FFCB
+:10254000F8BD6078042804D0FF2057A1303000F097
+:10255000B8FAFFF7E0FEF8BD6078042804D0FF2049
+:1025600051A1353000F0ADFA2078002894D1E07800
+:10257000002805D00620FDF7E1FE6670E770F8BD83
+:102580000720C2E7FF2048A14B3051E770B5050096
+:1025900005D0404C6078002803D0112070BD102079
+:1025A00070BD4948FDF7F3FFA070A078002804D063
+:1025B000656001206070002070BD032070BD10B503
+:1025C00034480178002901D0112010BD417800293C
+:1025D0000BD0417805290AD04178012907D0012183
+:1025E00001704078052802D003E00F2010BD00F0F4
+:1025F00044F8002010BD70B5264C064660780528CA
+:1026000004D06078012801D00F2070BD002E25D0A5
+:102610003046FFF792FE002822D060781E4D012838
+:1026200020D07168E068FEF7C4FA6860B068963040
+:10263000A8603078002800D0032028707078002827
+:1026400017D0032068706078052814D002206070CD
+:102650001149A078FEF756FB002070BD102070BD18
+:10266000072070BDFEF702F86061A0601549216186
+:10267000D9E70220E6E70320E9E710B5054CA0788A
+:10268000FDF7D9FF0820FDF759FE0020607020708B
+:1026900010BD000034010020381C0020000500405F
+:1026A0003D860100FF1FA1077372635C736F635F58
+:1026B000726164696F5F74696D65736C6F742E63AA
+:1026C0000000000024080000F3230100134A022147
+:1026D000516013490B68002BFCD0906008680028FB
+:1026E000FCD00020506008680028FCD0704710B56E
+:1026F0000A4B01225A600A4A1468002CFCD001607F
+:1027000010680028FCD00020586010680028FCD019
+:1027100010BD0120000740697047000000E501403E
+:1027200000E40140704770477047704770470346A8
+:1027300010B50B439B070FD1042A0DD308C810C94D
+:10274000121FA342F8D018BA21BA884201D9012039
+:1027500010BD0020C04310BD002A03D0D30703D012
+:10276000521C07E0002010BD03780C78401C491C67
+:102770001B1B07D103780C78401C491C1B1B01D183
+:10278000921EF1D1184610BDF8B5042A2CD3830748
+:1027900012D00B78491C0370401C521E83070BD0CB
+:1027A0000B78491C0370401C521E830704D00B7821
+:1027B000491C0370401C521E8B079B0F05D0C91A81
+:1027C000DF002023DE1B08C90AE0EDF7FDFCF8BDA1
+:1027D0001D4608C9FD401C46B4402C4310C0121FC2
+:1027E000042AF5D2F308C91A521EF0D40B78491CFA
+:1027F0000370401C521EEAD40B78491C0370401C25
+:10280000521EE4D409780170F8BD01E004C0091F2C
+:102810000429FBD28B0701D50280801CC90700D098
+:102820000270704700290BD0C30702D00270401C11
+:10283000491E022904D3830702D50280801C891E09
+:10284000E3E70022EEE70022DFE70378C2781946CB
+:10285000437812061B0219438378C0781B0419437E
+:1028600011430902090A000608437047020A08706A
+:102870004A70020C8A70020ECA7070470022030967
+:102880008B4273D3030A8B4258D3030B8B423CD346
+:10289000030C8B4221D312E003460B437FD400226A
+:1028A00043088B4274D303098B425FD3030A8B42E4
+:1028B00044D3030B8B4228D3030C8B420DD3FF224E
+:1028C000090212BA030C8B4202D31212090265D01C
+:1028D000030B8B4219D300E0090AC30B8B4201D3CF
+:1028E000CB03C01A5241830B8B4201D38B03C01A16
+:1028F0005241430B8B4201D34B03C01A5241030B8D
+:102900008B4201D30B03C01A5241C30A8B4201D33D
+:10291000CB02C01A5241830A8B4201D38B02C01AE8
+:102920005241430A8B4201D34B02C01A5241030A5F
+:102930008B4201D30B02C01A5241CDD2C3098B4244
+:1029400001D3CB01C01A524183098B4201D38B01C1
+:10295000C01A524143098B4201D34B01C01A524164
+:1029600003098B4201D30B01C01A5241C3088B42A9
+:1029700001D3CB00C01A524183088B4201D38B0094
+:10298000C01A524143088B4201D34B00C01A524136
+:10299000411A00D201465241104670475DE0CA0F0D
+:1029A00000D04942031000D34042534000229C46CD
+:1029B00003098B422DD3030A8B4212D3FC228901D7
+:1029C00012BA030A8B420CD3890192118B4208D3AD
+:1029D000890192118B4204D389013AD0921100E00F
+:1029E0008909C3098B4201D3CB01C01A5241830923
+:1029F0008B4201D38B01C01A524143098B4201D350
+:102A00004B01C01A524103098B4201D30B01C01A7A
+:102A10005241C3088B4201D3CB00C01A52418308F4
+:102A20008B4201D38B00C01A5241D9D243088B424A
+:102A300001D34B00C01A5241411A00D201466346ED
+:102A400052415B10104601D34042002B00D5494251
+:102A5000704763465B1000D3404201B50020C0467A
+:102A6000C04602BD704770477047704710B500F010
+:102A700077F810BD30B58C180278401C13071B0F77
+:102A800001D10378401C120906D10278401C03E0F2
+:102A90000578401C0D70491C5B1EF9D101E00B70DC
+:102AA000491C521EFBD1A142E6D3002030BD0000DC
+:102AB00001231B68134B1860134B1960134B1A60EA
+:102AC0007047134A134B13607246053AF0E7114AF8
+:102AD0000F4B1B689A420ED10D4B002018600198D5
+:102AE0000D4B04B598470CBC9E46024602980099CF
+:102AF0000A4B1B68184706980599094B1B68DB6849
+:102B0000184700005C0100206001002064010020E3
+:102B100054010020EFBEADDEAD1501001001002014
+:102B2000000000200B4A12680B4B9A420AD1004762
+:102B3000084A1268084B9A4204D101B5FDF773F9AF
+:102B400003BC8E4605490968EFF305808000014407
+:102B50000968084704010020EFBEADDE0000002038
+:102B60001C481D497047FFF7FBFFEDF7E7FA00BD72
+:102B700001200007C06AC0B2FF2804D117481849D5
+:102B80000968884202D0174817490160174A136044
+:102B90005B68184720BFFDE7154B1B680F4999423A
+:102BA00002D018688842F5D004D1124B18680B493E
+:102BB0008842EFD080F308880F49884204DD0F482F
+:102BC000026802210A4302600D4880470D48804791
+:102BD0000D480047481C0020481C0020FFFFFFFF55
+:102BE000001000102C050040040000000000002030
+:102BF00014100010004001000020002024050040B7
+:102C0000C3150100712B0100B12A01001248704563
+:102C100002D1EFF3098101E0EFF3088188690238FE
+:102C20000078102812DB20280EDB0C4A12680C4BAF
+:102C30009A4203D1602804DB0A4A10470220086048
+:102C40007047094A10470000084A1047084A1268AE
+:102C50002C32126810470000FDFFFFFF0401002026
+:102C6000EFBEADDEAD0200000D170100A71A010096
+:102C7000000000200A480B4908470B48094908474B
+:102C80000A48084908470A480649084709480549C3
+:102C9000084709480349084708480249084700000F
+:102CA000E1230000252B0100412B0000EB2900004F
+:102CB000992900004D270000A72A000043260000A4
+:102CC00003B40148019001BD0500002030B47446F2
+:102CD000641E2578641CAB4200D21D46635D5B0018
+:102CE000E31830BC1847000002490020C8612039B1
+:102CF00008727047A003002000020206FFFFFFFFDA
+:102D00000000FFFF0102040810204080555555D6F1
+:102D1000BE898E00F401FA00960064004B00320078
+:102D20001E0014000100030000000100000000006C
+:102D3000000000000000000000000000870000000C
+:102D4000000000000000000000000000000002037E
+:102D5000040500000E0F0000882D01000400002073
+:102D60001000000004010000982D01001400002054
+:102D700054010000742A0100C02D010068010020E8
+:102D8000E01A0000200100000249022208681042F7
+:102D9000FCD0704700E200E0A1074E56FF9900CD3D
+:102DA00029023501022B013601000100D83720FB32
+:102DB000349B5F8074800010027001E4B52A01002A
+:020000041000EA
+:1010000000400100FFFFFFFFFFFFFFFFFFFFFFFFAB
+:041010004900FFFF95
+:04000005000000C136
+:00000001FF