From 7eaaffccea0fd764d9c154179189e8aa1ed11899 Mon Sep 17 00:00:00 2001 From: iranl Date: Sat, 17 May 2025 21:19:17 +0200 Subject: [PATCH 01/30] C5 --- .github/workflows/beta.yml | 4 +- .github/workflows/build.yml | 4 +- .github/workflows/nightly.yml | 4 +- .github/workflows/release.yml | 4 +- Docker/README.md | 2 +- README.md | 23 +++++++----- boards/nuki-esp32-c5.json | 31 ++++++++++++++++ index.html | 6 +-- lib/BleScanner/src/main.cpp | 9 ----- lib/PsychicHttp/src/async_worker.cpp | 55 +--------------------------- lib/nuki_ble | 2 +- partitions_c5.csv | 1 + pio_package_post.py | 32 +--------------- platformio.ini | 22 ++++++++++- resources/how-to-flash.txt | 11 ++++++ sdkconfig.defaults.esp32-c5 | 6 +++ src/Config.h | 17 ++++++++- src/Gpio.h | 14 +++++-- src/idf_component.yml | 2 +- stacktrace/index.html | 3 ++ updater/partitions_c5.csv | 1 + updater/platformio.ini | 10 ++++- updater/sdkconfig.defaults.esp32-c5 | 6 +++ 23 files changed, 145 insertions(+), 124 deletions(-) create mode 100644 boards/nuki-esp32-c5.json delete mode 100644 lib/BleScanner/src/main.cpp create mode 100644 partitions_c5.csv create mode 100644 sdkconfig.defaults.esp32-c5 create mode 100644 updater/partitions_c5.csv create mode 100644 updater/sdkconfig.defaults.esp32-c5 diff --git a/.github/workflows/beta.yml b/.github/workflows/beta.yml index 103a4de..6768dd1 100644 --- a/.github/workflows/beta.yml +++ b/.github/workflows/beta.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - board: [esp32, esp32-s3, esp32-s3-oct, esp32-c3, esp32-c6, esp32-h2, esp32-solo1, esp32-gl-s10, esp32-p4] + board: [esp32, esp32-s3, esp32-s3-oct, esp32-c3, esp32-c5, esp32-c6, esp32-h2, esp32-solo1, esp32-gl-s10, esp32-p4] build: [release] env: BOARD: ${{ matrix.board }} @@ -36,7 +36,7 @@ jobs: key: ${{ runner.os }}-pio-${{ matrix.board }} - uses: actions/setup-python@v5 with: - python-version: '3.10' + python-version: '3.11' - name: Install dependencies run: make deps - name: Add version info diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 98196f1..5c4e935 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -18,7 +18,7 @@ jobs: strategy: fail-fast: false matrix: - board: [esp32, esp32-s3, esp32-s3-oct, esp32-c3, esp32-c6, esp32-h2, esp32-solo1, esp32-gl-s10, esp32-p4] + board: [esp32, esp32-s3, esp32-s3-oct, esp32-c3, esp32-c5, esp32-c6, esp32-h2, esp32-solo1, esp32-gl-s10, esp32-p4] build: [release] env: BOARD: ${{ matrix.board }} @@ -42,7 +42,7 @@ jobs: key: ${{ runner.os }}-pio-${{ matrix.board }} - uses: actions/setup-python@v5 with: - python-version: '3.10' + python-version: '3.11' - name: Install dependencies run: make deps - name: Add version info diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 9713a6b..ae6e08b 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -34,7 +34,7 @@ jobs: strategy: fail-fast: false matrix: - board: [esp32, esp32-s3, esp32-s3-oct, esp32-c3, esp32-c6, esp32-h2, esp32-solo1, esp32-gl-s10, esp32-p4] + board: [esp32, esp32-s3, esp32-s3-oct, esp32-c3, esp32-c5, esp32-c6, esp32-h2, esp32-solo1, esp32-gl-s10, esp32-p4] build: [release] env: BOARD: ${{ matrix.board }} @@ -58,7 +58,7 @@ jobs: key: ${{ runner.os }}-pio-${{ matrix.board }} - uses: actions/setup-python@v5 with: - python-version: '3.10' + python-version: '3.11' - name: Install dependencies run: make deps - name: Add version info diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0113275..bcb795b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - board: [esp32, esp32-s3, esp32-s3-oct, esp32-c3, esp32-c6, esp32-h2, esp32-solo1, esp32-gl-s10, esp32-p4] + board: [esp32, esp32-s3, esp32-s3-oct, esp32-c3, esp32-c5, esp32-c6, esp32-h2, esp32-solo1, esp32-gl-s10, esp32-p4] build: [release] env: BOARD: ${{ matrix.board }} @@ -36,7 +36,7 @@ jobs: key: ${{ runner.os }}-pio-${{ matrix.board }} - uses: actions/setup-python@v5 with: - python-version: '3.10' + python-version: '3.11' - name: Install dependencies run: make deps - name: Add version info diff --git a/Docker/README.md b/Docker/README.md index 1809df4..fb6c479 100644 --- a/Docker/README.md +++ b/Docker/README.md @@ -2,7 +2,7 @@ You can build this project using Docker. Just run the following commands in the console: -## Build with PlatformIO (will build for the ESP32, ESP32-S3, ESP32-C3, ESP32-C6, ESP32-H2, ESP32-P4 and ESP32-Solo1) +## Build with PlatformIO (will build for the ESP32, ESP32-S3, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-H2, ESP32-P4 and ESP32-Solo1) ```console git clone https://github.com/technyon/nuki_hub --recursive cd nuki_hub/Docker diff --git a/README.md b/README.md index 2b0547a..d3c98f8 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Feel free to join us on Discord: https://discord.gg/9nPq85bP4p Supported ESP32 devices: - Nuki Hub is compiled against all ESP32 models with Wi-Fi and Bluetooh Low Energy (BLE) which are supported by ESP-IDF 5.4.1 and Arduino Core 3.2.0. -- Tested stable builds are provided for the ESP32, ESP32-S3, ESP32-C3, ESP32-C6 and ESP32-H2. +- Tested stable builds are provided for the ESP32, ESP32-S3, ESP32-C3, ESP32-C5, ESP32-C6 and ESP32-H2. - Untested builds are provided for the ESP32-P4 (with the ESP32-C6-MINI-1 module for BLE and WiFi) and ESP32-Solo1 (as the developers don't own one). Not supported ESP32 devices: @@ -55,25 +55,26 @@ See the "[Connecting via Ethernet](#connecting-via-ethernet-optional)" section f ## Recommended ESP32 devices -We don't recommend using single-core ESP32 devices (ESP32-C3, ESP32-C6, ESP32-H2, ESP32-Solo1).
-Although Nuki Hub supports single-core devices, Nuki Hub uses both CPU cores (if available) to process tasks (e.g. HTTP server/MQTT client/BLE scanner/BLE client) and thus runs much better on dual-core devices.
+We don't recommend using the original ESP32 or ESP32-Solo1 devices because these devices experience unexpected crashes related to the (closed-source) BLE controller.
+In newer models (e.g. ESP32-S3, ESP32-P4, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-H2) these unexpected crashed are seen a lot less. -We also don't recommend using the original ESP32 or ESP32-Solo1 devices because these devices experience unexpected crashes related to the (closed-source) BLE controller.
-In all newer models (e.g. ESP32-S3, ESP32-P4, ESP32-C3, ESP32-C6, ESP32-H2) these unexpected crashed haven't been seen. - -When buying a new device in 2025 we can only recommend the ESP32-S3 with PSRAM (look for an ESP32-S3 with the designation N>=4 and R>=2 such as an ESP32-S3 N16R8).
+When buying a new device in 2025 we generally recommend the ESP32-S3 with PSRAM (look for an ESP32-S3 with the designation N>=4 and R>=2 such as an ESP32-S3 N16R8).
The ESP32-S3 is a dual-core CPU with many GPIO's, ability to enlarge RAM using PSRAM, ability to connect Ethernet modules over SPI and optionally power the device with a PoE splitter.
-The only functions missing from the ESP32-S3 as compared to other ESP devices is the ability to use some Ethernet modules only supported by the original ESP32 (and ESP32-P4) and the ability to connect over WIFI6 (C6 or ESP32-P4 with C6 module) +The only functions missing from the ESP32-S3 as compared to other ESP devices is the ability to use some Ethernet modules only supported by the original ESP32 (and ESP32-P4) and the ability to connect over WIFI6 (C5, C6 or ESP32-P4 with C6 module) + +The ESP32-C5 with PSRAM is a good option providing higher clockspeeds than the C6 and adding PSRAM and WIFI 6 on the 5 Ghz band support. +Nuki Hub uses both CPU cores (if available) to process tasks (e.g. HTTP server/MQTT client/BLE scanner/BLE client) and thus runs better on dual-core devices.
We provide a build for the ESP32-P4 with ESP32-C6-MINI-1 module for BLE/WiFi but this device is untested as of now. Other considerations: - If Ethernet/PoE is required: An ESP32-S3 with PSRAM in combination with a SPI Ethernet module ([W5500](https://www.aliexpress.com/w/wholesale-w5500.html)) and [PoE to Ethernet and USB type B/C splitter](https://aliexpress.com/w/wholesale-poe-splitter-usb-c.html) or the LilyGO-T-ETH ELite, LilyGO-T-ETH-Lite-ESP32S3 or M5stack Atom S3R with the M5stack AtomPoe W5500 module -- If WIFI6 is absolutely required (it probably isn't): ESP32-C6 or ESP32-P4 with ESP32-C6-MINI-1 module (UNTESTED) +- If WIFI6 is required: ESP32-C5, ESP32-C6 or ESP32-P4 with ESP32-C6-MINI-1 module (UNTESTED) Devices ranked best-to-worst: - ESP32-P4 with ESP32-C6-MINI-1 module (UNTESTED) - ESP32-S3 with PSRAM +- ESP32-C5 with PSRAM - ......
(Devices below will not support some Nuki Hub functions, be slower and/or are more likely to experience unexpected crashes) - ESP32-S3 without PSRAM @@ -83,6 +84,7 @@ Devices ranked best-to-worst: - ESP32 without PSRAM - ......
(Devices below will not support more Nuki Hub functions, be slower and/or are more likely to experience unexpected crashes) +- ESP32-C5 - ESP32-C6 - ESP32-solo1 - ESP32-C3 @@ -189,6 +191,7 @@ On version >=9.10 of Nuki Hub with only a Nuki Lock connected the expected free - ESP32: 70.000 bytes - ESP32 with PSRAM: 110.000 bytes + PSRAM - ESP32-C3: 90.000 bytes +- ESP32-C5: TBD bytes - ESP32-C6: 200.000 bytes - ESP32-S3 130.000 bytes - ESP32-S3 with PSRAM: 180.000 bytes + PSRAM @@ -943,7 +946,7 @@ Now connect via Wi-Fi and change the network hardware to "Generic W5500".
If Ethernet hardware isn't detected or initialised properly after changing the network device, Wi-Fi will be used as a fallback.

-Note: LAN8720 modules are only supported on the ESP32, ESP32-P4 and ESP32-Solo1, not on the ESP32-S3, ESP32-C3 or ESP-C6
+Note: LAN8720 modules are only supported on the ESP32, ESP32-P4 and ESP32-Solo1, not on the ESP32-S3, ESP32-C3, ESP32-C5 or ESP-C6
## FAQ / Troubleshooting diff --git a/boards/nuki-esp32-c5.json b/boards/nuki-esp32-c5.json new file mode 100644 index 0000000..f9719f0 --- /dev/null +++ b/boards/nuki-esp32-c5.json @@ -0,0 +1,31 @@ +{ + "build": { + "core": "esp32", + "f_cpu": "240000000L", + "f_flash": "80000000L", + "flash_mode": "qio", + "mcu": "esp32c5", + "variant": "esp32c5" + }, + "connectivity": [ + "bluetooth", + "wifi" + ], + "debug": { + "openocd_target": "esp32c5.cfg" + }, + "frameworks": [ + "arduino", + "espidf" + ], + "name": "ESP32-C5 (>=4MB QD, QUAD OR NO PSRAM)", + "upload": { + "flash_size": "4MB", + "maximum_ram_size": 327680, + "maximum_size": 4194304, + "require_upload_port": true, + "speed": 460800 + }, + "url": "https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32c5/esp32-c5-devkitc-1/user_guide.html", + "vendor": "Espressif" +} diff --git a/index.html b/index.html index 3c6fa7a..269ab1a 100644 --- a/index.html +++ b/index.html @@ -70,20 +70,20 @@

"); response.print("

"); response.print("

"); - #if defined(CONFIG_IDF_TARGET_ESP32S3) + #if defined(CONFIG_SOC_SPIRAM_SUPPORTED) && defined(CONFIG_SPIRAM) if(esp_psram_get_size() <= 0) { response.print("

"); @@ -5937,7 +5937,7 @@ esp_err_t WebCfgServer::buildInfoHtml(PsychicRequest *request, PsychicResponse* response.print(ESP.getFreeHeap()); response.print("\nTotal internal heap: "); response.print(ESP.getHeapSize()); - #ifdef CONFIG_SOC_SPIRAM_SUPPORTED + #if defined(CONFIG_SOC_SPIRAM_SUPPORTED) && defined(CONFIG_SPIRAM) if(esp_psram_get_size() > 0) { response.print("\nPSRAM Available: Yes"); diff --git a/src/idf_component.yml b/src/idf_component.yml index 308ab67..80d9dba 100644 --- a/src/idf_component.yml +++ b/src/idf_component.yml @@ -1,6 +1,6 @@ dependencies: # Required IDF version - idf: ">=5.2" + idf: ">=5.5" esp-nimble-cpp: git: https://github.com/h2zero/esp-nimble-cpp.git diff --git a/src/main.cpp b/src/main.cpp index fcd6c10..86efc9b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -20,7 +20,7 @@ bool nuki_hub_https_server_enabled = true; #else bool nuki_hub_https_server_enabled = false; #endif -#ifdef CONFIG_SOC_SPIRAM_SUPPORTED +#if defined(CONFIG_SOC_SPIRAM_SUPPORTED) && defined(CONFIG_SPIRAM) #include "esp_psram.h" #endif @@ -625,7 +625,7 @@ void nukiTask(void *pvParameters) { if (preferences->getBool(preference_mqtt_ssl_enabled, false)) { - #ifdef CONFIG_SOC_SPIRAM_SUPPORTED + #if defined(CONFIG_SOC_SPIRAM_SUPPORTED) && defined(CONFIG_SPIRAM) if (esp_psram_get_size() <= 0) { Log->println("Waiting 20 seconds to start BLE because of MQTT SSL"); @@ -1040,7 +1040,7 @@ void logCoreDump() void setup() { - #ifdef CONFIG_SOC_SPIRAM_SUPPORTED + #if defined(CONFIG_SOC_SPIRAM_SUPPORTED) && defined(CONFIG_SPIRAM) #ifndef FORCE_NUKI_HUB_HTTPS_SERVER if(esp_psram_get_size() <= 0) { diff --git a/src/networkDevices/EthernetDevice.cpp b/src/networkDevices/EthernetDevice.cpp index 83ae97a..9319b95 100644 --- a/src/networkDevices/EthernetDevice.cpp +++ b/src/networkDevices/EthernetDevice.cpp @@ -101,7 +101,11 @@ void EthernetDevice::initialize() // https://github.com/arendst/Tasmota/commit/f8fbe153000591727e40b5007e0de78c33833131 // https://github.com/arendst/Tasmota/commit/f8fbe153000591727e40b5007e0de78c33833131#diff-32fc0eefbf488dd507b3bef52189bbe37158737aba6f96fe98a8746dc5021955R417 uint32_t pkg_version = bootloader_common_get_chip_ver_pkg(); + #if defined(CONFIG_SOC_SPIRAM_SUPPORTED) && defined(CONFIG_SPIRAM) if(esp_psram_get_size() <= 0 && pkg_version <= 3) + #else + if(pkg_version <= 3) + #endif { esp_gpio_revoke(0xFFFFFFFFFFFFFFFF); } diff --git a/updater/pio_package_post.py b/updater/pio_package_post.py index 2bb6416..5f757a4 100644 --- a/updater/pio_package_post.py +++ b/updater/pio_package_post.py @@ -12,6 +12,10 @@ def get_board_name(env): board = 'esp32gls10' elif env.get('BOARD') == 'nuki-esp32-s3-oct': board = 'esp32s3oct' + elif env.get('BOARD') == 'nuki-esp32-s3-nopsram': + board = 'esp32s3nopsram' + elif env.get('BOARD') == 'nuki-esp32dev-nopsram': + board = 'esp32nopsram' return board def create_target_dir(env): diff --git a/updater/platformio.ini b/updater/platformio.ini index 014c1f4..5325cbf 100644 --- a/updater/platformio.ini +++ b/updater/platformio.ini @@ -70,11 +70,21 @@ build_flags = ${env.build_flags} -DNUKI_HUB_HTTPS_SERVER +[env:updater_esp32-nopsram] +board = nuki-esp32dev-nopsram +extra_scripts = + pre:pio_package_pre.py + post:pio_package_post.py +board_build.cmake_extra_args = + -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.defaults.esp32-nopsram" +build_flags = + ${env.build_flags} + [env:updater_esp32-gl-s10] extends = env:updater_esp32 board = nuki-esp32gls10 board_build.cmake_extra_args = - -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.defaults.esp32;sdkconfig.gls10.defaults" + -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.defaults.esp32;sdkconfig.defaults.gls10" build_flags = ${env:updater_esp32.build_flags} -DNUKI_TARGET_GL_S10=y @@ -91,6 +101,12 @@ board = nuki-esp32-s3 board_build.cmake_extra_args = -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.defaults.esp32-s3" +[env:updater_esp32-s3-nopsram] +extends = env:updater_esp32-nopsram +board = nuki-esp32-s3-nopsram +board_build.cmake_extra_args = + -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.defaults.esp32-s3-nopsram" + [env:updater_esp32-s3-oct] extends = env:updater_esp32 board = nuki-esp32-s3-oct diff --git a/updater/sdkconfig.defaults.esp32-nopsram b/updater/sdkconfig.defaults.esp32-nopsram new file mode 100644 index 0000000..92f4d3b --- /dev/null +++ b/updater/sdkconfig.defaults.esp32-nopsram @@ -0,0 +1 @@ +CONFIG_SPIRAM=n \ No newline at end of file diff --git a/updater/sdkconfig.defaults.esp32-s3-nopsram b/updater/sdkconfig.defaults.esp32-s3-nopsram new file mode 100644 index 0000000..92f4d3b --- /dev/null +++ b/updater/sdkconfig.defaults.esp32-s3-nopsram @@ -0,0 +1 @@ +CONFIG_SPIRAM=n \ No newline at end of file diff --git a/updater/sdkconfig.gls10.defaults b/updater/sdkconfig.defaults.gls10 similarity index 100% rename from updater/sdkconfig.gls10.defaults rename to updater/sdkconfig.defaults.gls10 diff --git a/updater/src/idf_component.yml b/updater/src/idf_component.yml index 2bf3442..52f8774 100644 --- a/updater/src/idf_component.yml +++ b/updater/src/idf_component.yml @@ -1,9 +1,9 @@ dependencies: # Required IDF version - idf: ">=5.2" + idf: ">=5.5" espressif/esp_hosted: - version: "*" + version: 2.0.10 rules: - if: "target in [esp32p4]" From 009b167d1da2277434276d0b11b80015332f826b Mon Sep 17 00:00:00 2001 From: iranl Date: Thu, 19 Jun 2025 14:09:48 +0200 Subject: [PATCH 12/30] TWDT --- src/HomeAssistantDiscovery.cpp | 30 ++++++-- src/NukiNetwork.cpp | 78 ++++++++++++++----- src/NukiNetworkLock.cpp | 6 ++ src/NukiNetworkOpener.cpp | 6 ++ src/NukiOpenerWrapper.cpp | 45 ++++++++--- src/NukiWrapper.cpp | 83 +++++++++++++++----- src/SerialReader.cpp | 6 ++ src/WebCfgServer.cpp | 7 +- src/main.cpp | 106 ++++++++++++++++---------- src/networkDevices/EthernetDevice.cpp | 21 ++++- src/networkDevices/WifiDevice.cpp | 47 ++++++++++-- 11 files changed, 328 insertions(+), 107 deletions(-) diff --git a/src/HomeAssistantDiscovery.cpp b/src/HomeAssistantDiscovery.cpp index a56a21d..0e4a5fd 100644 --- a/src/HomeAssistantDiscovery.cpp +++ b/src/HomeAssistantDiscovery.cpp @@ -25,7 +25,10 @@ HomeAssistantDiscovery::HomeAssistantDiscovery(NetworkDevice* device, Preference char uidString[20]; itoa(_preferences->getUInt(preference_device_id_lock, 0), uidString, 10); removeHASSConfig(uidString); - delay(3000); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(3000 / portTICK_PERIOD_MS); } else if(savedDevId != curDevId) { @@ -38,10 +41,16 @@ HomeAssistantDiscovery::HomeAssistantDiscovery(NetworkDevice* device, Preference char uidString[20]; itoa(_preferences->getUInt(preference_device_id_lock, 0), uidString, 10); removeHASSConfig(uidString); - delay(3000); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(3000 / portTICK_PERIOD_MS); itoa(savedDevId, uidString, 10); removeHASSConfig(uidString); - delay(3000); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(3000 / portTICK_PERIOD_MS); } sprintf(_nukiHubUidString, "%" PRIu64, curDevId); @@ -93,7 +102,10 @@ void HomeAssistantDiscovery::setupHASS(int type, uint32_t nukiId, char* nukiName void HomeAssistantDiscovery::disableHASS() { removeHASSConfig(_nukiHubUidString); - delay(3000); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(3000 / portTICK_PERIOD_MS); char uidString[20]; @@ -101,13 +113,19 @@ void HomeAssistantDiscovery::disableHASS() { itoa(_preferences->getUInt(preference_nuki_id_lock, 0), uidString, 16); removeHASSConfig(uidString); - delay(3000); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(3000 / portTICK_PERIOD_MS); } if(_preferences->getUInt(preference_nuki_id_opener, 0) != 0) { itoa(_preferences->getUInt(preference_nuki_id_opener, 0), uidString, 16); removeHASSConfig(uidString); - delay(3000); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(3000 / portTICK_PERIOD_MS); } } diff --git a/src/NukiNetwork.cpp b/src/NukiNetwork.cpp index 487644e..1d2f83e 100644 --- a/src/NukiNetwork.cpp +++ b/src/NukiNetwork.cpp @@ -470,7 +470,10 @@ bool NukiNetwork::update() bool success = reconnect(); if(!success) { - delay(2000); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(2000 / portTICK_PERIOD_MS); _mqttConnectCounter++; return false; } @@ -479,14 +482,20 @@ bool NukiNetwork::update() if(forceEnableWebServer && !_webEnabled) { forceEnableWebServer = false; - delay(200); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(200 / portTICK_PERIOD_MS); setRestartServices(false); } else if(!_webEnabled) { forceEnableWebServer = false; } - delay(2000); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(2000 / portTICK_PERIOD_MS); } if(!_device->isConnected() || !_device->mqttConnected() ) @@ -498,10 +507,16 @@ bool NukiNetwork::update() forceEnableWebServer = true; } Log->println("Network timeout has been reached, restarting ..."); - delay(200); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(200 / portTICK_PERIOD_MS); restartEsp(RestartReason::NetworkTimeoutWatchdog); } - delay(2000); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(2000 / portTICK_PERIOD_MS); return false; } @@ -729,7 +744,10 @@ bool NukiNetwork::reconnect(bool force) while(!_connectReplyReceived && espMillis() < timeout) { - delay(50); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(50 / portTICK_PERIOD_MS); _device->update(); if(_keepAliveCallback != nullptr) { @@ -742,7 +760,10 @@ bool NukiNetwork::reconnect(bool force) Log->println("MQTT connected"); _mqttConnectedTs = millis(); _mqttConnectionState = 1; - delay(100); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(100 / portTICK_PERIOD_MS); _device->mqttOnMessage(onMqttDataReceivedCallback); if(_firstConnect) @@ -987,7 +1008,10 @@ void NukiNetwork::onMqttDataReceived(const char* topic, byte* payload, const uns { Log->println("Restart requested via MQTT."); clearWifiFallback(); - delay(200); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(200 / portTICK_PERIOD_MS); restartEsp(RestartReason::RequestedViaMqtt); } else if(comparePrefixedPath(topic, mqtt_topic_update) && strcmp(data, "1") == 0 && _preferences->getBool(preference_update_from_mqtt, false) && !mqttRecentlyConnected()) @@ -1040,7 +1064,10 @@ void NukiNetwork::onMqttDataReceived(const char* topic, byte* payload, const uns _preferences->putString(preference_ota_updater_url, GITHUB_LATEST_UPDATER_BINARY_URL); _preferences->putString(preference_ota_main_url, GITHUB_LATEST_RELEASE_BINARY_URL); Log->println("Updating to latest release version."); - delay(200); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(200 / portTICK_PERIOD_MS); restartEsp(RestartReason::OTAReboot); } } @@ -1055,7 +1082,10 @@ void NukiNetwork::onMqttDataReceived(const char* topic, byte* payload, const uns _preferences->putString(preference_ota_updater_url, GITHUB_BETA_UPDATER_BINARY_URL); _preferences->putString(preference_ota_main_url, GITHUB_BETA_RELEASE_BINARY_URL); Log->println("Updating to latest beta version."); - delay(200); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(200 / portTICK_PERIOD_MS); restartEsp(RestartReason::OTAReboot); } } @@ -1070,7 +1100,10 @@ void NukiNetwork::onMqttDataReceived(const char* topic, byte* payload, const uns _preferences->putString(preference_ota_updater_url, GITHUB_MASTER_UPDATER_BINARY_URL); _preferences->putString(preference_ota_main_url, GITHUB_MASTER_RELEASE_BINARY_URL); Log->println("Updating to latest developmemt version."); - delay(200); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(200 / portTICK_PERIOD_MS); restartEsp(RestartReason::OTAReboot); } } @@ -1085,7 +1118,10 @@ void NukiNetwork::onMqttDataReceived(const char* topic, byte* payload, const uns _preferences->putString(preference_ota_updater_url, GITHUB_LATEST_UPDATER_BINARY_URL); _preferences->putString(preference_ota_main_url, GITHUB_LATEST_RELEASE_BINARY_URL); Log->println("Updating to latest release version."); - delay(200); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(200 / portTICK_PERIOD_MS); restartEsp(RestartReason::OTAReboot); } } @@ -1122,7 +1158,10 @@ void NukiNetwork::onMqttDataReceived(const char* topic, byte* payload, const uns _preferences->putBool(preference_webserver_enabled, false); } clearWifiFallback(); - delay(200); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(200 / portTICK_PERIOD_MS); setRestartServices(false); } else if(comparePrefixedPath(topic, mqtt_topic_nuki_hub_config_action) && !mqttRecentlyConnected()) @@ -1173,10 +1212,10 @@ void NukiNetwork::onMqttDataReceived(const char* topic, byte* payload, const uns while (duoResult == 2) { duoResult = _importExport->checkDuoApprove(); - delay(2000); - #if !defined(CONFIG_IDF_TARGET_ESP32C5) - esp_task_wdt_reset(); - #endif + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(2000 / portTICK_PERIOD_MS); } } @@ -1293,7 +1332,10 @@ void NukiNetwork::onMqttDataReceived(const char* topic, byte* payload, const uns serializeJson(json, _buffer, _bufferSize); publishString(_maintenancePathPrefix, mqtt_topic_nuki_hub_config_json, _buffer, false); publishString(_maintenancePathPrefix, mqtt_topic_nuki_hub_config_action, "--", true); - delay(200); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(200 / portTICK_PERIOD_MS); restartEsp(RestartReason::ConfigurationUpdated); } else diff --git a/src/NukiNetworkLock.cpp b/src/NukiNetworkLock.cpp index b7189c4..e02f0db 100644 --- a/src/NukiNetworkLock.cpp +++ b/src/NukiNetworkLock.cpp @@ -7,6 +7,7 @@ #include "RestartReason.h" #include #include +#include "hal/wdt_hal.h" extern bool forceEnableWebServer; extern const uint8_t x509_crt_imported_bundle_bin_start[] asm("_binary_x509_crt_bundle_start"); @@ -160,6 +161,11 @@ void NukiNetworkLock::initialize() bool NukiNetworkLock::update() { + wdt_hal_context_t rtc_wdt_ctx = RWDT_HAL_CONTEXT_DEFAULT(); + wdt_hal_write_protect_disable(&rtc_wdt_ctx); + wdt_hal_feed(&rtc_wdt_ctx); + wdt_hal_write_protect_enable(&rtc_wdt_ctx); + bool ret = false; if(_nukiOfficial->hasOffStateToPublish()) diff --git a/src/NukiNetworkOpener.cpp b/src/NukiNetworkOpener.cpp index 8574ebd..53dc37f 100644 --- a/src/NukiNetworkOpener.cpp +++ b/src/NukiNetworkOpener.cpp @@ -5,6 +5,7 @@ #include "Logger.h" #include "Config.h" #include +#include "hal/wdt_hal.h" NukiNetworkOpener::NukiNetworkOpener(NukiNetwork* network, Preferences* preferences, char* buffer, size_t bufferSize) : _preferences(preferences), @@ -131,6 +132,11 @@ void NukiNetworkOpener::initialize() void NukiNetworkOpener::update() { + wdt_hal_context_t rtc_wdt_ctx = RWDT_HAL_CONTEXT_DEFAULT(); + wdt_hal_write_protect_disable(&rtc_wdt_ctx); + wdt_hal_feed(&rtc_wdt_ctx); + wdt_hal_write_protect_enable(&rtc_wdt_ctx); + if(_resetRingStateTs != 0 && espMillis() >= _resetRingStateTs) { _resetRingStateTs = 0; diff --git a/src/NukiOpenerWrapper.cpp b/src/NukiOpenerWrapper.cpp index 30e9d3a..8207749 100644 --- a/src/NukiOpenerWrapper.cpp +++ b/src/NukiOpenerWrapper.cpp @@ -247,7 +247,10 @@ void NukiOpenerWrapper::update() } else { - delay(200); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(200 / portTICK_PERIOD_MS); return; } } @@ -265,7 +268,10 @@ void NukiOpenerWrapper::update() Log->print("No BLE beacon received from the opener for "); Log->print((ts - lastReceivedBeaconTs) / 1000); Log->println(" seconds, signalling to restart BLE controller."); - delay(200); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(200 / portTICK_PERIOD_MS); _restartController = 2; } @@ -298,7 +304,10 @@ void NukiOpenerWrapper::update() _network->publishRetry(std::to_string(retryCount + 1)); - delay(_retryDelay); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(_retryDelay / portTICK_PERIOD_MS); ++retryCount; } @@ -594,7 +603,10 @@ void NukiOpenerWrapper::updateBatteryState() { Log->print("Querying opener battery state: "); result = _nukiOpener.requestBatteryReport(&_batteryReport); - delay(250); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(250 / portTICK_PERIOD_MS); if(result != Nuki::CmdResult::Success) { ++retryCount; @@ -766,7 +778,10 @@ void NukiOpenerWrapper::updateAuthData(bool retrieved) if(result == Nuki::CmdResult::Success) { _waitAuthLogUpdateTs = espMillis() + 5000; - delay(100); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(100 / portTICK_PERIOD_MS); std::list log; _nukiOpener.getLogEntries(&log); @@ -993,7 +1008,10 @@ void NukiOpenerWrapper::updateAuth(bool retrieved) { Log->print("Querying opener authorization: "); result = _nukiOpener.retrieveAuthorizationEntries(0, _preferences->getInt(preference_auth_max_entries, MAX_AUTH)); - delay(250); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(250 / portTICK_PERIOD_MS); if(result != Nuki::CmdResult::Success) { ++retryCount; @@ -3032,7 +3050,10 @@ void NukiOpenerWrapper::onKeypadJsonCommandReceived(const char *value) if(resultKp == Nuki::CmdResult::Success) { - delay(5000); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(5000 / portTICK_PERIOD_MS); std::list entries; _nukiOpener.getKeypadEntries(&entries); @@ -3398,7 +3419,10 @@ void NukiOpenerWrapper::onTimeControlCommandReceived(const char *value) if(resultTc == Nuki::CmdResult::Success) { - delay(5000); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(5000 / portTICK_PERIOD_MS); std::list timeControlEntries; _nukiOpener.getTimeControlEntries(&timeControlEntries); @@ -3854,7 +3878,10 @@ void NukiOpenerWrapper::onAuthCommandReceived(const char *value) if(resultAuth == Nuki::CmdResult::Success) { - delay(5000); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(5000 / portTICK_PERIOD_MS); std::list entries; _nukiOpener.getAuthorizationEntries(&entries); diff --git a/src/NukiWrapper.cpp b/src/NukiWrapper.cpp index a138432..075ab04 100644 --- a/src/NukiWrapper.cpp +++ b/src/NukiWrapper.cpp @@ -263,7 +263,10 @@ void NukiWrapper::update(bool reboot) } else { - delay(200); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(200 / portTICK_PERIOD_MS); return; } } @@ -281,7 +284,10 @@ void NukiWrapper::update(bool reboot) Log->print("No BLE beacon received from the lock for "); Log->print((ts - lastReceivedBeaconTs) / 1000); Log->println(" seconds, signalling to restart BLE controller."); - delay(200); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(200 / portTICK_PERIOD_MS); _restartController = 2; } @@ -318,7 +324,10 @@ void NukiWrapper::update(bool reboot) _network->publishRetry(std::to_string(retryCount + 1)); - delay(_retryDelay); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(_retryDelay / portTICK_PERIOD_MS); ++retryCount; } @@ -801,8 +810,10 @@ void NukiWrapper::updateDebug() Log->println(result); count = 0; while (count < 5) { - delay(1000); - esp_task_wdt_reset(); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(1000 / portTICK_PERIOD_MS); count++; } @@ -821,8 +832,10 @@ void NukiWrapper::updateDebug() count = 0; while (count < 15) { - delay(1000); - esp_task_wdt_reset(); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(1000 / portTICK_PERIOD_MS); count++; } @@ -841,8 +854,10 @@ void NukiWrapper::updateDebug() count = 0; while (count < 20) { - delay(1000); - esp_task_wdt_reset(); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(1000 / portTICK_PERIOD_MS); count++; } @@ -921,7 +936,10 @@ void NukiWrapper::updateAuthData(bool retrieved) if(result == Nuki::CmdResult::Success) { _waitAuthLogUpdateTs = espMillis() + 5000; - delay(100); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(100 / portTICK_PERIOD_MS); std::list log; _nukiLock.getLogEntries(&log); @@ -1146,7 +1164,10 @@ void NukiWrapper::updateAuth(bool retrieved) { Log->print("Querying lock authorization: "); result = _nukiLock.retrieveAuthorizationEntries(0, _preferences->getInt(preference_auth_max_entries, MAX_AUTH)); - delay(250); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(250 / portTICK_PERIOD_MS); if(result != Nuki::CmdResult::Success) { ++retryCount; @@ -3279,7 +3300,10 @@ void NukiWrapper::onKeypadJsonCommandReceived(const char *value) if(resultKp == Nuki::CmdResult::Success) { - delay(5000); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(5000 / portTICK_PERIOD_MS); std::list entries; _nukiLock.getKeypadEntries(&entries); @@ -3646,7 +3670,10 @@ void NukiWrapper::onTimeControlCommandReceived(const char *value) if(resultTc == Nuki::CmdResult::Success) { - delay(5000); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(5000 / portTICK_PERIOD_MS); std::list timeControlEntries; _nukiLock.getTimeControlEntries(&timeControlEntries); @@ -3862,7 +3889,10 @@ void NukiWrapper::onAuthCommandReceived(const char *value) if(idExists) { result = _nukiLock.deleteAuthorizationEntry(authId); - delay(250); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(250 / portTICK_PERIOD_MS); Log->print("Delete authorization: "); Log->println((int)result); } @@ -4082,7 +4112,10 @@ void NukiWrapper::onAuthCommandReceived(const char *value) } result = _nukiLock.addAuthorizationEntry(entry); - delay(250); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(250 / portTICK_PERIOD_MS); Log->print("Add authorization: "); Log->println((int)result); } @@ -4105,7 +4138,10 @@ void NukiWrapper::onAuthCommandReceived(const char *value) if(resultAuth == Nuki::CmdResult::Success) { - delay(5000); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(5000 / portTICK_PERIOD_MS); std::list entries; _nukiLock.getAuthorizationEntries(&entries); @@ -4248,7 +4284,10 @@ void NukiWrapper::onAuthCommandReceived(const char *value) } result = _nukiLock.updateAuthorizationEntry(entry); - delay(250); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(250 / portTICK_PERIOD_MS); Log->print("Update authorization: "); Log->println((int)result); } @@ -4360,7 +4399,10 @@ void NukiWrapper::readConfig() { ++retryCount; Log->println("Failed to retrieve lock config, retrying in 1s"); - delay(1000); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(1000 / portTICK_PERIOD_MS); } else { @@ -4388,7 +4430,10 @@ void NukiWrapper::readAdvancedConfig() { ++retryCount; Log->println("Failed to retrieve lock advanced config, retrying in 1s"); - delay(1000); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(1000 / portTICK_PERIOD_MS); } else { diff --git a/src/SerialReader.cpp b/src/SerialReader.cpp index ac949bd..eb88124 100644 --- a/src/SerialReader.cpp +++ b/src/SerialReader.cpp @@ -1,6 +1,7 @@ #include "SerialReader.h" #include "RestartReason.h" #include "EspMillis.h" +#include "hal/wdt_hal.h" SerialReader::SerialReader(ImportExport *importExport, NukiNetwork* network) : _importExport(importExport), @@ -11,6 +12,11 @@ SerialReader::SerialReader(ImportExport *importExport, NukiNetwork* network) void SerialReader::update() { + wdt_hal_context_t rtc_wdt_ctx = RWDT_HAL_CONTEXT_DEFAULT(); + wdt_hal_write_protect_disable(&rtc_wdt_ctx); + wdt_hal_feed(&rtc_wdt_ctx); + wdt_hal_write_protect_enable(&rtc_wdt_ctx); + if(Serial.available()) { String line = Serial.readStringUntil('\n'); diff --git a/src/WebCfgServer.cpp b/src/WebCfgServer.cpp index 8dec350..99fd3b4 100644 --- a/src/WebCfgServer.cpp +++ b/src/WebCfgServer.cpp @@ -1512,7 +1512,10 @@ bool WebCfgServer::processWiFi(PsychicRequest *request, PsychicResponse* resp, S int loop = 0; while(!_network->isConnected() && loop < 150) { - delay(100); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(100 / portTICK_PERIOD_MS); loop++; } @@ -1803,7 +1806,7 @@ void WebCfgServer::waitAndProcess(const bool blocking, const uint32_t duration) } else { - vTaskDelay( 50 / portTICK_PERIOD_MS); + vTaskDelay(50 / portTICK_PERIOD_MS); } } } diff --git a/src/main.cpp b/src/main.cpp index 86efc9b..90627b3 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -30,6 +30,7 @@ bool nuki_hub_https_server_enabled = false; #include "NukiNetworkLock.h" #include "NukiOpenerWrapper.h" #include "Gpio.h" +#include "Gpio.h" #include "CharBuffer.h" #include "NukiDeviceId.h" #include "WebCfgServer.h" @@ -456,7 +457,10 @@ void restartServices(bool reconnect) Log->println("Deinit BLE device done"); } - delay(2000); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(2000 / portTICK_PERIOD_MS); if(lockEnabled || openerEnabled) { @@ -498,6 +502,11 @@ void restartServices(bool reconnect) Log->println("Restarting Nuki opener done"); } + + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(2000 / portTICK_PERIOD_MS); bleDone = true; if(webStarted || webSSLStarted) @@ -545,6 +554,10 @@ void networkTask(void *pvParameters) } #endif network->update(); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(50 / portTICK_PERIOD_MS); bool connected = network->isConnected(); if(connected && reroute) @@ -588,11 +601,19 @@ void networkTask(void *pvParameters) if(connected && lockStarted) { rebootLock = networkLock->update(); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(50 / portTICK_PERIOD_MS); } if(connected && openerStarted) { networkOpener->update(); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(50 / portTICK_PERIOD_MS); } } #endif @@ -614,26 +635,36 @@ void networkTask(void *pvParameters) restartEsp(RestartReason::RestartTimer); } - #if !defined(CONFIG_IDF_TARGET_ESP32C5) - esp_task_wdt_reset(); - #endif + + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(50 / portTICK_PERIOD_MS); } } #ifndef NUKI_HUB_UPDATER void nukiTask(void *pvParameters) { + esp_task_wdt_add(NULL); + if (preferences->getBool(preference_mqtt_ssl_enabled, false)) { #if defined(CONFIG_SOC_SPIRAM_SUPPORTED) && defined(CONFIG_SPIRAM) if (esp_psram_get_size() <= 0) { Log->println("Waiting 20 seconds to start BLE because of MQTT SSL"); - delay(20000); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(20000 / portTICK_PERIOD_MS); } #else Log->println("Waiting 20 seconds to start BLE because of MQTT SSL"); - delay(20000); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(20000 / portTICK_PERIOD_MS); #endif } int64_t nukiLoopTs = 0; @@ -645,14 +676,20 @@ void nukiTask(void *pvParameters) if(bleScannerStarted) { bleScanner->update(); - delay(20); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(20 / portTICK_PERIOD_MS); } bool needsPairing = (lockStarted && !nuki->isPaired()) || (openerStarted && !nukiOpener->isPaired()); if (needsPairing) { - delay(2500); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(2500 / portTICK_PERIOD_MS); } else if (!whiteListed) { @@ -739,9 +776,10 @@ void nukiTask(void *pvParameters) Log->println("nukiTask is running"); nukiLoopTs = espMillis(); } - #if !defined(CONFIG_IDF_TARGET_ESP32C5) - esp_task_wdt_reset(); - #endif + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(50 / portTICK_PERIOD_MS); } } @@ -832,6 +870,8 @@ esp_err_t _http_event_handler(esp_http_client_event_t *evt) void otaTask(void *pvParameter) { + esp_task_wdt_add(NULL); + partitionType = checkPartition(); String updateUrl; @@ -885,14 +925,17 @@ void otaTask(void *pvParameter) { Log->println("Firmware upgrade failed, retrying in 5 seconds"); retryCount++; - #if !defined(CONFIG_IDF_TARGET_ESP32C5) - esp_task_wdt_reset(); - #endif - delay(5000); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(5000 / portTICK_PERIOD_MS); continue; } while (1) { + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } vTaskDelay(1000 / portTICK_PERIOD_MS); } } @@ -904,15 +947,13 @@ void otaTask(void *pvParameter) void setupTasks(bool ota) { // configMAX_PRIORITIES is 25 - #if !defined(CONFIG_IDF_TARGET_ESP32C5) esp_task_wdt_config_t twdt_config = { .timeout_ms = 300000, - .idle_core_mask = 0, + .idle_core_mask = (1 << CONFIG_FREERTOS_NUMBER_OF_CORES) - 1, .trigger_panic = true, }; esp_task_wdt_reconfigure(&twdt_config); - #endif esp_chip_info_t info; esp_chip_info(&info); @@ -923,26 +964,17 @@ void setupTasks(bool ota) if(ota) { xTaskCreatePinnedToCore(otaTask, "ota", 8192, NULL, 2, &otaTaskHandle, (espCores > 1) ? 1 : 0); - #if !defined(CONFIG_IDF_TARGET_ESP32C5) - esp_task_wdt_add(otaTaskHandle); - #endif } else { if(!disableNetwork) { xTaskCreatePinnedToCore(networkTask, "ntw", preferences->getInt(preference_task_size_network, NETWORK_TASK_SIZE), NULL, 3, &networkTaskHandle, (espCores > 1) ? 1 : 0); - #if !defined(CONFIG_IDF_TARGET_ESP32C5) - esp_task_wdt_add(networkTaskHandle); - #endif } #ifndef NUKI_HUB_UPDATER if(!network->isApOpen() && (lockEnabled || openerEnabled)) { xTaskCreatePinnedToCore(nukiTask, "nuki", preferences->getInt(preference_task_size_nuki, NUKI_TASK_SIZE), NULL, 2, &nukiTaskHandle, 0); - #if !defined(CONFIG_IDF_TARGET_ESP32C5) - esp_task_wdt_add(nukiTaskHandle); - #endif } #endif } @@ -951,7 +983,10 @@ void setupTasks(bool ota) void logCoreDump() { coredumpPrinted = false; - delay(500); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(500 / portTICK_PERIOD_MS); Log->println("Printing coredump and saving to coredump.hex on SPIFFS"); size_t size = 0; size_t address = 0; @@ -1272,13 +1307,7 @@ void setup() Log->println(lockEnabled ? F("Nuki Lock enabled") : F("Nuki Lock disabled")); if(lockEnabled) { - nukiOfficial = new NukiOfficial(preferences); - networkLock = new NukiNetworkLock(network, nukiOfficial, preferences, CharBuffer::get(), buffer_size); - - if(!disableNetwork) - { - networkLock->initialize(); - } + startNuki(true); nuki = new NukiWrapper("NukiHub", deviceIdLock, bleScanner, networkLock, nukiOfficial, gpio, preferences, CharBuffer::get(), buffer_size); nuki->initialize(); @@ -1287,12 +1316,7 @@ void setup() Log->println(openerEnabled ? F("Nuki Opener enabled") : F("Nuki Opener disabled")); if(openerEnabled) { - networkOpener = new NukiNetworkOpener(network, preferences, CharBuffer::get(), buffer_size); - - if(!disableNetwork) - { - networkOpener->initialize(); - } + startNuki(false); nukiOpener = new NukiOpenerWrapper("NukiHub", deviceIdOpener, bleScanner, networkOpener, gpio, preferences, CharBuffer::get(), buffer_size); nukiOpener->initialize(); diff --git a/src/networkDevices/EthernetDevice.cpp b/src/networkDevices/EthernetDevice.cpp index 9319b95..04df634 100644 --- a/src/networkDevices/EthernetDevice.cpp +++ b/src/networkDevices/EthernetDevice.cpp @@ -1,3 +1,4 @@ +#include "esp_task_wdt.h" #include "EthernetDevice.h" #include "../PreferencesKeys.h" #include "../Logger.h" @@ -68,14 +69,20 @@ const String EthernetDevice::deviceName() const void EthernetDevice::initialize() { - delay(250); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(250 / portTICK_PERIOD_MS); if(ethCriticalFailure) { ethCriticalFailure = false; Log->println("Failed to initialize ethernet hardware"); Log->println("Network device has a critical failure, enable fallback to Wi-Fi and reboot."); wifiFallback = true; - delay(200); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(200 / portTICK_PERIOD_MS); restartEsp(RestartReason::NetworkDeviceCriticalFailure); return; } @@ -140,7 +147,10 @@ void EthernetDevice::initialize() Log->println("Failed to initialize ethernet hardware"); Log->println("Network device has a critical failure, enable fallback to Wi-Fi and reboot."); wifiFallback = true; - delay(200); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(200 / portTICK_PERIOD_MS); restartEsp(RestartReason::NetworkDeviceCriticalFailure); return; } @@ -222,7 +232,10 @@ void EthernetDevice::onNetworkEvent(arduino_event_id_t event, arduino_event_info void EthernetDevice::reconfigure() { - delay(200); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(200 / portTICK_PERIOD_MS); restartEsp(RestartReason::ReconfigureETH); } diff --git a/src/networkDevices/WifiDevice.cpp b/src/networkDevices/WifiDevice.cpp index f518b46..642a1d8 100644 --- a/src/networkDevices/WifiDevice.cpp +++ b/src/networkDevices/WifiDevice.cpp @@ -1,3 +1,4 @@ +#include "esp_task_wdt.h" #include "WifiDevice.h" #include "../PreferencesKeys.h" #include "../Logger.h" @@ -50,7 +51,10 @@ void WifiDevice::initialize() WiFi.disconnect(true); WiFi.mode(WIFI_STA); WiFi.disconnect(); - delay(5000); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(5000 / portTICK_PERIOD_MS); Log->println("Dummy WiFi device for Hosted on P4 done"); } return; @@ -63,12 +67,21 @@ void WifiDevice::scan(bool passive, bool async) WiFi.disconnect(true); WiFi.mode(WIFI_STA); WiFi.disconnect(); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(1000 / portTICK_PERIOD_MS); } WiFi.scanDelete(); WiFi.setScanMethod(WIFI_ALL_CHANNEL_SCAN); WiFi.setSortMethod(WIFI_CONNECT_AP_BY_SIGNAL); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(1000 / portTICK_PERIOD_MS); + if(async) { Log->println("Wi-Fi async scan started"); @@ -94,9 +107,15 @@ void WifiDevice::openAP() Log->println("Starting AP with SSID NukiHub and Password NukiHubESP32"); _startAP = false; WiFi.mode(WIFI_AP); - delay(500); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(500 / portTICK_PERIOD_MS); WiFi.softAPsetHostname(_hostname.c_str()); - delay(500); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(500 / portTICK_PERIOD_MS); WiFi.softAP("NukiHub", "NukiHubESP32"); //if(MDNS.begin(_hostname.c_str())){ @@ -109,7 +128,10 @@ bool WifiDevice::connect() { WiFi.mode(WIFI_STA); WiFi.setHostname(_hostname.c_str()); - delay(500); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(500 / portTICK_PERIOD_MS); int bestConnection = -1; @@ -162,10 +184,13 @@ bool WifiDevice::connect() Log->print("WiFi connecting"); int loop = 0; - while(!isConnected() && loop < 150) + while(!isConnected() && loop < 600) { Log->print("."); - delay(100); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(25 / portTICK_PERIOD_MS); loop++; } Log->println(""); @@ -177,7 +202,10 @@ bool WifiDevice::connect() if(_preferences->getBool(preference_restart_on_disconnect, false) && (espMillis() > 60000)) { Log->println("Restart on disconnect watchdog triggered, rebooting"); - delay(100); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(100 / portTICK_PERIOD_MS); restartEsp(RestartReason::RestartOnDisconnectWatchdog); } else @@ -201,7 +229,10 @@ void WifiDevice::reconfigure() { _preferences->putString(preference_wifi_ssid, ""); _preferences->putString(preference_wifi_pass, ""); - delay(200); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(200 / portTICK_PERIOD_MS); restartEsp(RestartReason::ReconfigureWifi); } From d4768eae10d44caf8c9827a0d5ad8b1836658c92 Mon Sep 17 00:00:00 2001 From: iranl Date: Thu, 19 Jun 2025 14:58:51 +0200 Subject: [PATCH 13/30] Update README.md --- scripts/sendcfg/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/sendcfg/README.md b/scripts/sendcfg/README.md index e80961c..399ac54 100644 --- a/scripts/sendcfg/README.md +++ b/scripts/sendcfg/README.md @@ -16,7 +16,7 @@ Prior to running the script, pyserial has to be installed via pip. The ESP will only accept a configuration via serial as long as the device in not configured yet, meaning the ESP Wifi access point is open. Once the ESP is connected to a network, it will ignore any commands send via the serial interface.

To generate a configuration a configuration file, the export configuration function can be used. -After exporting a configuration, it can be edited to the required values. Usually only specific valus like +After exporting a configuration, it can be edited to the required values. Usually only specific values like the IP address, Wifi credentials or network hardware are intended to be set. In that case all other configuration values can be deleted from the configuration.
For example configurations, see the "example_configurations" subdirectory. @@ -35,7 +35,7 @@ All configuration entries are saved in JSON format. - ipgtw: Gateway used to connect to the internet - dnssrv: DNS server used to resolve domain names - nwhw: Network hardware used. See WebCfgServer.cpp, method getNetworkDetectionOptions for possible values. -At the time of writing: 1=Wifi, 2=Generic W5500, 3 = M5Stack Atom POE (W5500), 4 = "Olimex ESP32-POE / ESP-POE-ISO, 5 = WT32-ETH01, 6 = M5STACK PoESP32 Unit, 7 = LilyGO T-ETH-POE, 8 = GL-S10, 9 = ETH01-Evo, 10 = M5Stack Atom POE S3 (W5500), 11 = Custom LAN module, 12 = LilyGO T-ETH ELite, 13 = Waveshare ESP32-S3-ETH / ESP32-S3-ETH-POE, 14 = LilyGO T-ETH-Lite-ESP32S3 +At the time of writing: 1=Wifi, 2=Generic W5500, 3 = M5Stack Atom POE (W5500), 4 = "Olimex ESP32-POE / ESP-POE-ISO, 5 = WT32-ETH01, 6 = M5STACK PoESP32 Unit, 7 = LilyGO T-ETH-POE, 8 = GL-S10, 9 = ETH01-Evo, 10 = M5Stack Atom POE S3 (W5500), 11 = Custom LAN module, 12 = LilyGO T-ETH ELite, 13 = Waveshare ESP32-S3-ETH / ESP32-S3-ETH-POE, 14 = LilyGO T-ETH-Lite-ESP32S3, 15 = Waveshare ESP32-P4-NANO, 16 = Waveshare ESP32-P4-Module-DEV-KIT, 17 = ESP32-P4-Function-EV-Board ## Serial commands From 19dcd1fce99ffa1f9f1fde43871b4e5f5602b495 Mon Sep 17 00:00:00 2001 From: iranl Date: Thu, 19 Jun 2025 15:22:11 +0200 Subject: [PATCH 14/30] Update index.html --- index.html | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/index.html b/index.html index 269ab1a..cad3d24 100644 --- a/index.html +++ b/index.html @@ -74,12 +74,16 @@ + + + + @@ -87,6 +91,8 @@ + +
From ef85bc105beb76c6d19c92c5010d3f04a6e3fd18 Mon Sep 17 00:00:00 2001 From: iranl Date: Fri, 20 Jun 2025 09:27:10 +0200 Subject: [PATCH 15/30] BLE improvements --- README.md | 1 - lib/nuki_ble | 2 +- src/Config.h | 2 +- src/NukiNetwork.cpp | 28 +++++++++++++++------------- src/NukiOpenerWrapper.cpp | 18 +++++++++++++++--- src/NukiWrapper.cpp | 20 ++++++++++++++++---- src/PreferencesKeys.h | 17 ++++++----------- src/WebCfgServer.cpp | 23 +++++------------------ src/main.cpp | 4 ++-- src/networkDevices/NetworkDevice.cpp | 17 +++++++++++++++++ src/networkDevices/NetworkDevice.h | 1 + 11 files changed, 79 insertions(+), 54 deletions(-) diff --git a/README.md b/README.md index 822d3b7..52fb002 100644 --- a/README.md +++ b/README.md @@ -291,7 +291,6 @@ In a browser navigate to the IP address assigned to the ESP32. - Nuki Smartlock enabled: Enable if you want Nuki Hub to connect to a Nuki Lock (1.0-4.0 and Ultra) - Nuki Smartlock Ultra/Go/5th gen enabled: Enable if you want Nuki Hub to connect to a Nuki Lock Ultra/Go/5th gen Pro - Nuki Opener enabled: Enable if you want Nuki Hub to connect to a Nuki Opener -- New Nuki Bluetooth connection mode (disable if there are connection issues): Enable to use the latest Nuki BLE connection mode (recommended). Disable if you have issues communicating with the lock/opener #### Advanced Nuki Configuration diff --git a/lib/nuki_ble b/lib/nuki_ble index 01c81b5..c54698d 160000 --- a/lib/nuki_ble +++ b/lib/nuki_ble @@ -1 +1 @@ -Subproject commit 01c81b52b2ede42d8742dd0b5dff7e7b5813cf4d +Subproject commit c54698d31d6747df166fc522145862e9560eb0d5 diff --git a/src/Config.h b/src/Config.h index 7990004..c6b989a 100644 --- a/src/Config.h +++ b/src/Config.h @@ -5,7 +5,7 @@ #define NUKI_HUB_VERSION "9.12" #define NUKI_HUB_VERSION_INT (uint32_t)912 #define NUKI_HUB_BUILD "unknownbuildnr" -#define NUKI_HUB_DATE "2025-06-19" +#define NUKI_HUB_DATE "2025-06-20" #define GITHUB_LATEST_RELEASE_URL (char*)"https://github.com/technyon/nuki_hub/releases/latest" #define GITHUB_OTA_MANIFEST_URL (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/manifest.json" diff --git a/src/NukiNetwork.cpp b/src/NukiNetwork.cpp index 1d2f83e..79e8dad 100644 --- a/src/NukiNetwork.cpp +++ b/src/NukiNetwork.cpp @@ -103,19 +103,9 @@ void NukiNetwork::setupDevice() Log->print("Network device: "); Log->println(_device->deviceName()); -#ifndef NUKI_HUB_UPDATER - _device->mqttOnConnect([&](bool sessionPresent) - { - onMqttConnect(sessionPresent); - }); - _device->mqttOnDisconnect([&](espMqttClientTypes::DisconnectReason reason) - { - onMqttDisconnect(reason); - }); - + #ifndef NUKI_HUB_UPDATER _hadiscovery = new HomeAssistantDiscovery(_device, _preferences, _buffer, _bufferSize); -#endif - + #endif } void NukiNetwork::reconfigureDevice() @@ -391,6 +381,17 @@ void NukiNetwork::setMQTTConnectionSettings() Log->print(_mqttBrokerAddr); Log->print(":"); Log->println(_mqttPort); + + #ifndef NUKI_HUB_UPDATER + _device->mqttOnConnect([&](bool sessionPresent) + { + onMqttConnect(sessionPresent); + }); + _device->mqttOnDisconnect([&](espMqttClientTypes::DisconnectReason reason) + { + onMqttDisconnect(reason); + }); + #endif } int NukiNetwork::getRestartServices() @@ -703,7 +704,8 @@ bool NukiNetwork::reconnect(bool force) { if (force) { - _device->mqttDisconnect(true); + _mqttReceivers.clear(); + _device->mqttRestart(); setMQTTConnectionSettings(); } diff --git a/src/NukiOpenerWrapper.cpp b/src/NukiOpenerWrapper.cpp index a5da83a..1a0998a 100644 --- a/src/NukiOpenerWrapper.cpp +++ b/src/NukiOpenerWrapper.cpp @@ -62,10 +62,10 @@ void NukiOpenerWrapper::initialize() _nukiOpener.setDebugCommand(_preferences->getBool(preference_debug_command, false)); _nukiOpener.registerLogger(Log); - _nukiOpener.initialize(_preferences->getBool(preference_connect_mode, true)); + _nukiOpener.initialize(); _nukiOpener.registerBleScanner(_bleScanner); _nukiOpener.setEventHandler(this); - _nukiOpener.setConnectTimeout(3); + _nukiOpener.setConnectTimeout(2); _nukiOpener.setDisconnectTimeout(2000); _hassEnabled = _preferences->getBool(preference_mqtt_hass_enabled, false); @@ -337,9 +337,17 @@ void NukiOpenerWrapper::update() } if(_statusUpdated || _nextLockStateUpdateTs == 0 || ts >= _nextLockStateUpdateTs || (queryCommands & QUERY_COMMAND_LOCKSTATE) > 0) { - _statusUpdated = updateKeyTurnerState(); _nextLockStateUpdateTs = ts + _intervalLockstate * 1000; + _statusUpdated = updateKeyTurnerState(); _network->publishStatusUpdated(_statusUpdated); + + if(_statusUpdated) + { + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(500 / portTICK_PERIOD_MS); + } } if(_network->mqttConnectionState() == 2) { @@ -517,6 +525,10 @@ bool NukiOpenerWrapper::updateKeyTurnerState() Log->println("ms"); _nextLockStateUpdateTs = espMillis() + _retryDelay; } + else + { + _nextLockStateUpdateTs = espMillis() + (_retryLockstateCount * 333); + } _network->publishKeyTurnerState(_keyTurnerState, _lastKeyTurnerState); return false; } diff --git a/src/NukiWrapper.cpp b/src/NukiWrapper.cpp index 075ab04..5021299 100644 --- a/src/NukiWrapper.cpp +++ b/src/NukiWrapper.cpp @@ -68,10 +68,10 @@ void NukiWrapper::initialize() _nukiLock.saveUltraPincode(_preferences->getInt(preference_lock_gemini_pin, 0), false); } - _nukiLock.initialize(_preferences->getBool(preference_connect_mode, true)); + _nukiLock.initialize(); _nukiLock.registerBleScanner(_bleScanner); _nukiLock.setEventHandler(this); - _nukiLock.setConnectTimeout(3); + _nukiLock.setConnectTimeout(2); _nukiLock.setDisconnectTimeout(2000); _hassEnabled = _preferences->getBool(preference_mqtt_hass_enabled, false); @@ -361,9 +361,17 @@ void NukiWrapper::update(bool reboot) if(_nukiOfficial->getStatusUpdated() || _statusUpdated || _nextLockStateUpdateTs == 0 || ts >= _nextLockStateUpdateTs || (queryCommands & QUERY_COMMAND_LOCKSTATE) > 0) { Log->println("Updating Lock state based on status, timer or query"); - _statusUpdated = updateKeyTurnerState(); _nextLockStateUpdateTs = ts + _intervalLockstate * 1000; + _statusUpdated = updateKeyTurnerState(); _network->publishStatusUpdated(_statusUpdated); + + if(_statusUpdated) + { + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(500 / portTICK_PERIOD_MS); + } } if(_network->mqttConnectionState() == 2) { @@ -382,7 +390,7 @@ void NukiWrapper::update(bool reboot) updateConfig(); if(_isDebugging) { - updateDebug(); + //updateDebug(); } } if(_waitAuthLogUpdateTs != 0 && ts > _waitAuthLogUpdateTs) @@ -551,6 +559,10 @@ bool NukiWrapper::updateKeyTurnerState() Log->println("ms"); _nextLockStateUpdateTs = espMillis() + _retryDelay; } + else + { + _nextLockStateUpdateTs = espMillis() + (_retryLockstateCount * 333); + } _network->publishKeyTurnerState(_keyTurnerState, _lastKeyTurnerState); return false; } diff --git a/src/PreferencesKeys.h b/src/PreferencesKeys.h index 721159f..b13c9c2 100644 --- a/src/PreferencesKeys.h +++ b/src/PreferencesKeys.h @@ -37,10 +37,6 @@ #define preference_time_server (char*)"timeServer" //MQTT RELATED -#define preference_mqtt_ssl_enabled (char*)"mqttSSLena" -#define preference_mqtt_ca (char*)"mqttca" -#define preference_mqtt_crt (char*)"mqttcrt" -#define preference_mqtt_key (char*)"mqttkey" #define preference_mqtt_log_enabled (char*)"mqttlog" #define preference_gpio_configuration (char*)"gpiocfg" @@ -105,7 +101,6 @@ #define preference_opener_force_keypad (char*)"opForceKp" #define preference_admin_secret (char*)"adminsecret" -//TO BE EFFECTUATED IN WEBSERVER AND OTHER USES //REQUIRE SERVICES RELOAD #define preference_lock_enabled (char*)"lockena" #define preference_opener_enabled (char*)"openerena" @@ -119,7 +114,6 @@ #define preference_cred_password (char*)"crdpass" #define preference_lock_gemini_pin (char*)"geminiPin" #define preference_lock_gemini_enabled (char*)"geminiena" -#define preference_connect_mode (char*)"nukiConnMode" #define preference_https_fqdn (char*)"httpsFQDN" #define preference_bypass_proxy (char*)"credBypass" #define preference_http_auth_type (char*)"httpdAuthType" @@ -160,8 +154,10 @@ #define preference_hybrid_reboot_on_disconnect (char*)"hybridRbtLck" #define preference_bypass_secret (char*)"bypassecret" #define preference_totp_secret (char*)"totpsecret" - -//END TO BE EFFECTUATED IN WEBSERVER AND OTHER USES +#define preference_mqtt_ssl_enabled (char*)"mqttSSLena" +#define preference_mqtt_ca (char*)"mqttca" +#define preference_mqtt_crt (char*)"mqttcrt" +#define preference_mqtt_key (char*)"mqttkey" //NOT USER CHANGABLE #define preference_mfa_reconfigure (char*)"mfaRECONF" @@ -254,7 +250,6 @@ inline void initPreferences(Preferences* preferences) preferences->putBool(preference_debug_readable_data, false); preferences->putBool(preference_debug_hex_data, false); preferences->putBool(preference_debug_command, false); - preferences->putBool(preference_connect_mode, true); preferences->putBool(preference_retain_gpio, false); preferences->putBool(preference_enable_debug_mode, false); preferences->putBool(preference_cred_duo_enabled, false); @@ -544,7 +539,7 @@ private: preference_network_custom_pwr, preference_network_custom_mdio, preference_lock_max_auth_entry_count, preference_opener_max_auth_entry_count, preference_auth_control_enabled, preference_auth_topic_per_entry, preference_auth_info_enabled, preference_auth_max_entries, preference_wifi_ssid, preference_wifi_pass, preference_keypad_check_code_enabled, preference_disable_network_not_connected, preference_mqtt_hass_enabled, preference_hass_device_discovery, preference_retain_gpio, - preference_debug_connect, preference_debug_communication, preference_debug_readable_data, preference_debug_hex_data, preference_debug_command, preference_connect_mode, + preference_debug_connect, preference_debug_communication, preference_debug_readable_data, preference_debug_hex_data, preference_debug_command, preference_lock_force_id, preference_lock_force_doorsensor, preference_lock_force_keypad, preference_opener_force_id, preference_opener_force_keypad, preference_nukihub_id, preference_cred_duo_host, preference_cred_duo_ikey, preference_cred_duo_skey, preference_cred_duo_user, preference_cred_duo_enabled, preference_https_fqdn, preference_bypass_proxy, preference_cred_session_lifetime, preference_cred_session_lifetime_remember, preference_cred_session_lifetime_duo, preference_cred_session_lifetime_duo_remember, @@ -568,7 +563,7 @@ private: preference_official_hybrid_actions, preference_official_hybrid_retry, preference_conf_info_enabled, preference_disable_non_json, preference_update_from_mqtt, preference_auth_control_enabled, preference_auth_topic_per_entry, preference_auth_info_enabled, preference_webserial_enabled, preference_hass_device_discovery, preference_keypad_check_code_enabled, preference_disable_network_not_connected, preference_find_best_rssi, preference_cred_bypass_boot_btn_enabled, - preference_debug_connect, preference_debug_communication, preference_debug_readable_data, preference_debug_hex_data, preference_debug_command, preference_connect_mode, + preference_debug_connect, preference_debug_communication, preference_debug_readable_data, preference_debug_hex_data, preference_debug_command, preference_lock_force_id, preference_lock_force_doorsensor, preference_lock_force_keypad, preference_opener_force_id, preference_opener_force_keypad, preference_mqtt_ssl_enabled, preference_hybrid_reboot_on_disconnect, preference_lock_gemini_enabled, preference_enable_debug_mode, preference_cred_duo_enabled, preference_cred_duo_approval, preference_publish_config, preference_config_from_mqtt diff --git a/src/WebCfgServer.cpp b/src/WebCfgServer.cpp index 99fd3b4..a9dc51d 100644 --- a/src/WebCfgServer.cpp +++ b/src/WebCfgServer.cpp @@ -694,7 +694,7 @@ void WebCfgServer::initialize() return resp->redirect("/"); } esp_err_t res = buildConfirmHtml(request, resp, "Restarting services...", 2, true); - _network->setRestartServices(_restartServicesRequired); + _network->setRestartServices(_restartServicesRequired == 1 ? false : true); _restartServicesRequired = 0; waitAndProcess(true, 1000); return res; @@ -2626,7 +2626,7 @@ bool WebCfgServer::processArgs(PsychicRequest *request, PsychicResponse* resp, S } Log->print("Setting changed: "); Log->println(key); - configChanged = true; + restartServicesReconnect = true; } } } @@ -2662,7 +2662,7 @@ bool WebCfgServer::processArgs(PsychicRequest *request, PsychicResponse* resp, S } Log->print("Setting changed: "); Log->println(key); - configChanged = true; + restartServicesReconnect = true; } } } @@ -2698,7 +2698,7 @@ bool WebCfgServer::processArgs(PsychicRequest *request, PsychicResponse* resp, S } Log->print("Setting changed: "); Log->println(key); - configChanged = true; + restartServicesReconnect = true; } } } @@ -3258,7 +3258,7 @@ bool WebCfgServer::processArgs(PsychicRequest *request, PsychicResponse* resp, S _preferences->putBool(preference_mqtt_ssl_enabled, (value == "1")); Log->print("Setting changed: "); Log->println(key); - configChanged = true; + restartServicesReconnect = true; } } else if(key == "WEBLOG") @@ -4329,16 +4329,6 @@ bool WebCfgServer::processArgs(PsychicRequest *request, PsychicResponse* resp, S restartServicesReconnect = true; } } - else if(key == "CONNMODE") - { - if(_preferences->getBool(preference_connect_mode, true) != (value == "1")) - { - _preferences->putBool(preference_connect_mode, (value == "1")); - Log->print("Setting changed: "); - Log->println(key); - restartServicesNoReconnect = true; - } - } else if(key == "CREDUSER") { if(value == "#") @@ -5791,7 +5781,6 @@ esp_err_t WebCfgServer::buildNukiConfigHtml(PsychicRequest *request, PsychicResp printCheckBox(&response, "LOCKENA", "Nuki Lock enabled", _preferences->getBool(preference_lock_enabled, true), ""); printCheckBox(&response, "GEMINIENA", "Nuki Smartlock Ultra/Go/5th gen enabled", _preferences->getBool(preference_lock_gemini_enabled, false), ""); printCheckBox(&response, "OPENA", "Nuki Opener enabled", _preferences->getBool(preference_opener_enabled, false), ""); - printCheckBox(&response, "CONNMODE", "New Nuki Bluetooth connection mode (disable if there are connection issues)", _preferences->getBool(preference_connect_mode, true), ""); response.print("
"); response.print("

Advanced Nuki Configuration

"); response.print(""); @@ -6186,8 +6175,6 @@ esp_err_t WebCfgServer::buildInfoHtml(PsychicRequest *request, PsychicResponse* response.print("Disabled"); } response.print("\n\n------------ BLUETOOTH ------------"); - response.print("\nBluetooth connection mode: "); - response.print(_preferences->getBool(preference_connect_mode, true) ? "New" : "Old"); response.print("\nBluetooth TX power (dB): "); response.print(_preferences->getInt(preference_ble_tx_power, 9)); response.print("\nBluetooth command nr of retries: "); diff --git a/src/main.cpp b/src/main.cpp index 90627b3..3219b31 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1107,8 +1107,8 @@ void setup() if(esp_reset_reason() == esp_reset_reason_t::ESP_RST_PANIC || esp_reset_reason() == esp_reset_reason_t::ESP_RST_INT_WDT || - esp_reset_reason() == esp_reset_reason_t::ESP_RST_TASK_WDT || - esp_reset_reason() == esp_reset_reason_t::ESP_RST_WDT) + esp_reset_reason() == esp_reset_reason_t::ESP_RST_TASK_WDT) + //|| esp_reset_reason() == esp_reset_reason_t::ESP_RST_WDT) { logCoreDump(); } diff --git a/src/networkDevices/NetworkDevice.cpp b/src/networkDevices/NetworkDevice.cpp index 39c7d91..5b85f3f 100644 --- a/src/networkDevices/NetworkDevice.cpp +++ b/src/networkDevices/NetworkDevice.cpp @@ -10,6 +10,8 @@ void NetworkDevice::init() { + _useEncryption = false; + if(_preferences->getBool(preference_mqtt_ssl_enabled, false)) { if (!SPIFFS.begin(true)) { Log->println("SPIFFS Mount Failed"); @@ -265,6 +267,21 @@ void NetworkDevice::mqttDisable() _mqttEnabled = false; } +void NetworkDevice::mqttRestart() +{ + if (_useEncryption) + { + delete _mqttClientSecure; + _mqttClientSecure = nullptr; + } + else + { + delete _mqttClient; + _mqttClient = nullptr; + } + init(); +} + bool NetworkDevice::isEncrypted() { return _useEncryption; diff --git a/src/networkDevices/NetworkDevice.h b/src/networkDevices/NetworkDevice.h index 4bf949e..16993a7 100644 --- a/src/networkDevices/NetworkDevice.h +++ b/src/networkDevices/NetworkDevice.h @@ -33,6 +33,7 @@ public: virtual bool mqttConnect(); virtual bool mqttDisconnect(bool force); virtual void mqttDisable(); + virtual void mqttRestart(); virtual bool mqttConnected() const; virtual uint16_t mqttPublish(const char* topic, uint8_t qos, bool retain, const char* payload); From 520a2fdb648fd44b47154ea06e4f9207d1e4e47e Mon Sep 17 00:00:00 2001 From: iranl Date: Fri, 20 Jun 2025 21:15:51 +0200 Subject: [PATCH 16/30] Update README.md --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index 52fb002..4cee1d7 100644 --- a/README.md +++ b/README.md @@ -957,6 +957,15 @@ If Ethernet hardware isn't detected or initialised properly after changing the n
Note: LAN8720 modules are only supported on the ESP32, ESP32-P4 and ESP32-Solo1, not on the ESP32-S3, ESP32-C3, ESP32-C5 or ESP-C6
+## Debugging crashes + +If you are running a pre-compiled version of NukiHub (latest release, beta or nightly) you can use https://technyon.github.io/nuki_hub/stacktrace/ to debug crashes. +You will need to collect a stack trace of the crash while connected to the serial logger (over USB). + +A stack trace usually starts with `Guru Mediation Error` and ends with `ELF file SHA256: ......` +Copy the entire stack trace to the box in our online decoder and select the correct binary you are using. +Click Run and check the output to find in which function the crash occurs and consider creating an issue on GitHub. + ## FAQ / Troubleshooting ### Pairing with the lock (or opener) doesn't work From 279d3c6db713e7a3cdf648a81324a8491b516f44 Mon Sep 17 00:00:00 2001 From: iranl Date: Fri, 20 Jun 2025 21:59:38 +0200 Subject: [PATCH 17/30] Update to No PSRAM --- src/Config.h | 8 ++++---- src/WebCfgServer.cpp | 18 ++++++++++++++++-- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/Config.h b/src/Config.h index c6b989a..f3bd2d5 100644 --- a/src/Config.h +++ b/src/Config.h @@ -211,10 +211,10 @@ #define GITHUB_BETA_UPDATER_BINARY_URL_DBG (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/debug/beta/nuki_hub_updater_esp32nopsram.bin" #define GITHUB_MASTER_RELEASE_BINARY_URL_DBG (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/debug/master/nuki_hub_esp32nopsram.bin" #define GITHUB_MASTER_UPDATER_BINARY_URL_DBG (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/debug/master/nuki_hub_updater_esp32nopsram.bin" -#define GITHUB_LATEST_RELEASE_BINARY_URL_OTHER (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/nuki_hub_esp32.bin" -#define GITHUB_LATEST_UPDATER_BINARY_URL_OTHER (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/nuki_hub_updater_esp32.bin" -#define GITHUB_LATEST_RELEASE_BINARY_URL_OTHER2 (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/nuki_hub_esp32gls10.bin" -#define GITHUB_LATEST_UPDATER_BINARY_URL_OTHER2 (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/nuki_hub_updater_esp32gls10.bin" +#define GITHUB_LATEST_RELEASE_BINARY_URL_OTHER (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/nuki_hub_esp32gls10.bin" +#define GITHUB_LATEST_UPDATER_BINARY_URL_OTHER (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/nuki_hub_updater_esp32gls10.bin" +#define GITHUB_LATEST_RELEASE_BINARY_URL_OTHER2 (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/nuki_hub_esp32.bin" +#define GITHUB_LATEST_UPDATER_BINARY_URL_OTHER2 (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/nuki_hub_updater_esp32.bin" #define NUKI_HUB_HW (char*)"ESP32 (No PSRAM)" #define BOOT_BUTTON_GPIO (gpio_num_t)0 #endif diff --git a/src/WebCfgServer.cpp b/src/WebCfgServer.cpp index a9dc51d..a76781b 100644 --- a/src/WebCfgServer.cpp +++ b/src/WebCfgServer.cpp @@ -1637,16 +1637,30 @@ esp_err_t WebCfgServer::buildOtaHtml(PsychicRequest *request, PsychicResponse* r response.print("

"); response.print("

"); response.print("

"); - #if defined(CONFIG_SOC_SPIRAM_SUPPORTED) && defined(CONFIG_SPIRAM) + #if defined(CONFIG_IDF_TARGET_ESP32S3) && defined(CONFIG_SPIRAM) if(esp_psram_get_size() <= 0) { response.print("

"); + response.print("

"); } - #elif defined(CONFIG_IDF_TARGET_ESP32) && !defined(NUKI_TARGET_GL_S10) + #elif defined(CONFIG_IDF_TARGET_ESP32S3) + response.print("

"); + response.print("

"); + #elif defined(CONFIG_IDF_TARGET_ESP32) && defined(CONFIG_SPIRAM) && !defined(NUKI_TARGET_GL_S10) if(_preferences->getInt(preference_network_hardware) == 8) { response.print("

"); } + if(esp_psram_get_size() <= 0) + { + response.print("

"); + } + #elif defined(CONFIG_IDF_TARGET_ESP32) && !defined(CONFIG_SPIRAM) + if(_preferences->getInt(preference_network_hardware) == 8) + { + response.print("

"); + } + response.print("

"); #endif response.print("

"); From 5fe56146861cce992930b49344e2a30811df493f Mon Sep 17 00:00:00 2001 From: iranl Date: Sun, 22 Jun 2025 22:24:20 +0200 Subject: [PATCH 18/30] WiFi and RAM optimizations --- README.md | 15 +++-- lib/PsychicHttp/src/PsychicRequest.cpp | 2 + platformio.ini | 32 ++++----- sdkconfig.defaults | 6 +- sdkconfig.ramoptimize.defaults | 33 +++++++++ src/Config.h | 2 +- src/idf_component.yml | 2 +- src/main.cpp | 57 ++++++++++++++-- src/networkDevices/WifiDevice.cpp | 93 +++++++++++++------------- src/networkDevices/WifiDevice.h | 1 + 10 files changed, 164 insertions(+), 79 deletions(-) create mode 100644 sdkconfig.ramoptimize.defaults diff --git a/README.md b/README.md index 4cee1d7..5047de5 100644 --- a/README.md +++ b/README.md @@ -198,18 +198,19 @@ ESP32 devices have a limited amount of free RAM available.

On version >=9.10 of Nuki Hub with only a Nuki Lock connected the expected free amount of RAM/Heap available is around: -- ESP32: 70.000 bytes -- ESP32 with PSRAM: 110.000 bytes + PSRAM -- ESP32-C3: 90.000 bytes -- ESP32-C5: 110.000 bytes +- ESP32: 105.000 bytes +- ESP32 with PSRAM: 120.000 bytes + PSRAM +- ESP32-C3: 70.000 bytes +- ESP32-C5 with PSRAM: 130.000 bytes + PSRAM - ESP32-C6: 200.000 bytes -- ESP32-S3 130.000 bytes -- ESP32-S3 with PSRAM: 180.000 bytes + PSRAM +- ESP32-P4: 450.000 bytes +- ESP32-S3 135.000 bytes +- ESP32-S3 with PSRAM: 185.000 bytes + PSRAM This free amount of RAM can be reduced (temporarily) by certain actions (such as changing Nuki device config) or continuously when enabling the following: - Connecting both a Nuki opener and a Nuki lock to Nuki Hub - Enlarging stack sizes of the Nuki and Network task to accommodate large amounts of keypad codes, authorization entries or timecontrol entries -- MQTT SSL (Costs about 30k RAM) +- MQTT SSL (Costs about 20k-30k RAM) - HTTP SSL (Costs about 30k RAM) - Developing/debugging Nuki devices and/or Nuki Hub, using WebSerial (Costs about 30k RAM) diff --git a/lib/PsychicHttp/src/PsychicRequest.cpp b/lib/PsychicHttp/src/PsychicRequest.cpp index 9f0b921..f5664e9 100644 --- a/lib/PsychicHttp/src/PsychicRequest.cpp +++ b/lib/PsychicHttp/src/PsychicRequest.cpp @@ -306,6 +306,8 @@ String PsychicRequest::getCookie(const char* key) if (!hasCookie(key, &size)) return cookie; + size = httpd_req_get_hdr_value_len(this->_req, "Cookie"); + // allocate cookie buffer... keep it on the stack char buf[size]; diff --git a/platformio.ini b/platformio.ini index 808c99c..55a49e6 100644 --- a/platformio.ini +++ b/platformio.ini @@ -101,7 +101,7 @@ build_flags = extends = env:esp32 board = esp32-c3-devkitc-02 board_build.cmake_extra_args = - -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.release.defaults;sdkconfig.singlecore.defaults" + -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.release.defaults;sdkconfig.singlecore.defaults;sdkconfig.ramoptimize.defaults" build_flags = ${env.build_flags} -DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_NONE @@ -110,32 +110,32 @@ build_flags = extends = env:esp32 board = nuki-esp32-s3 board_build.cmake_extra_args = - -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.release.defaults;sdkconfig.defaults.esp32-s3" + -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.release.defaults;sdkconfig.ramoptimize.defaults;sdkconfig.defaults.esp32-s3" [env:esp32-s3-nopsram] extends = env:esp32 board = nuki-esp32-s3-nopsram board_build.cmake_extra_args = - -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.release.defaults;sdkconfig.defaults.esp32-s3-nopsram" + -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.release.defaults;sdkconfig.ramoptimize.defaults;sdkconfig.defaults.esp32-s3-nopsram" [env:esp32-s3-oct] extends = env:esp32 board = nuki-esp32-s3-oct board_build.cmake_extra_args = - -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.release.defaults;sdkconfig.defaults.esp32-s3-oct" + -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.release.defaults;sdkconfig.ramoptimize.defaults;sdkconfig.defaults.esp32-s3-oct" [env:esp32-c5] extends = env:esp32 board_build.partitions = partitions_c5.csv board = nuki-esp32-c5 board_build.cmake_extra_args = - -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.release.defaults;sdkconfig.defaults.esp32-c5;sdkconfig.singlecore.defaults" + -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.release.defaults;sdkconfig.singlecore.defaults;sdkconfig.ramoptimize.defaults;sdkconfig.defaults.esp32-c5" [env:esp32-c6] extends = env:esp32 board = esp32-c6-devkitm-1 board_build.cmake_extra_args = - -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.release.defaults;sdkconfig.singlecore.defaults" + -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.release.defaults;sdkconfig.singlecore.defaults;sdkconfig.ramoptimize.defaults" build_flags = ${env:esp32.build_flags} -DNUKI_HUB_HTTPS_SERVER @@ -146,7 +146,7 @@ extends = env:esp32 board = esp32-h2-devkitm-1 board_build.cmake_extra_args = -DNUKI_TARGET_H2=y - -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.release.defaults;sdkconfig.singlecore.defaults" + -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.release.defaults;sdkconfig.singlecore.defaults;sdkconfig.ramoptimize.defaults" lib_ignore = BLE BluetoothSerial @@ -174,7 +174,7 @@ extends = env:esp32 board_build.embed_txtfiles = board = esp32-p4 board_build.cmake_extra_args = - -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.release.defaults;sdkconfig.defaults.esp32-p4" + -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.release.defaults;sdkconfig.ramoptimize.defaults;sdkconfig.defaults.esp32-p4" [env:esp32_dbg] extends = env:esp32 @@ -210,7 +210,7 @@ build_flags = extends = env:esp32-c3 custom_build = debug board_build.cmake_extra_args = - -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.debug.defaults;sdkconfig.singlecore.defaults" + -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.debug.defaults;sdkconfig.singlecore.defaults;sdkconfig.ramoptimize.defaults" build_flags = ${env.build_flags} -DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG @@ -222,7 +222,7 @@ board_build.partitions = partitions_c5dbg.csv board = nuki-esp32-c5dbg custom_build = debug board_build.cmake_extra_args = - -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.debug.defaults;sdkconfig.defaults.esp32-c5;sdkconfig.defaults.esp32-c5dbg;sdkconfig.singlecore.defaults" + -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.debug.defaults;sdkconfig.singlecore.defaults;sdkconfig.ramoptimize.defaults;sdkconfig.defaults.esp32-c5;sdkconfig.defaults.esp32-c5dbg" build_flags = ${env:esp32_dbg.build_flags} @@ -230,7 +230,7 @@ build_flags = extends = env:esp32-c6 custom_build = debug board_build.cmake_extra_args = - -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.debug.defaults;sdkconfig.singlecore.defaults" + -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.debug.defaults;sdkconfig.singlecore.defaults;sdkconfig.ramoptimize.defaults" build_flags = ${env:esp32_dbg.build_flags} -DFORCE_NUKI_HUB_HTTPS_SERVER @@ -240,7 +240,7 @@ extends = env:esp32-h2 custom_build = debug board_build.cmake_extra_args = -DNUKI_TARGET_H2=y - -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.debug.defaults;sdkconfig.singlecore.defaults" + -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.debug.defaults;sdkconfig.singlecore.defaults;sdkconfig.ramoptimize.defaults" build_flags = ${env.build_flags} -DCORE_DEBUG_LEVEL=ARDUHAL_LOG_LEVEL_DEBUG @@ -250,7 +250,7 @@ build_flags = extends = env:esp32-s3 custom_build = debug board_build.cmake_extra_args = - -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.debug.defaults;sdkconfig.defaults.esp32-s3" + -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.debug.defaults;sdkconfig.ramoptimize.defaults;sdkconfig.defaults.esp32-s3" build_flags = ${env:esp32_dbg.build_flags} @@ -258,7 +258,7 @@ build_flags = extends = env:esp32-s3-nopsram custom_build = debug board_build.cmake_extra_args = - -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.debug.defaults;sdkconfig.defaults.esp32-s3-nopsram" + -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.debug.defaults;sdkconfig.ramoptimize.defaults;sdkconfig.defaults.esp32-s3-nopsram" build_flags = ${env:esp32-nopsram_dbg.build_flags} @@ -266,7 +266,7 @@ build_flags = extends = env:esp32-s3-oct custom_build = debug board_build.cmake_extra_args = - -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.debug.defaults;sdkconfig.defaults.esp32-s3-oct" + -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.debug.defaults;sdkconfig.ramoptimize.defaults;sdkconfig.defaults.esp32-s3-oct" build_flags = ${env:esp32_dbg.build_flags} @@ -284,6 +284,6 @@ build_flags = extends = env:esp32-p4 custom_build = debug board_build.cmake_extra_args = - -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.debug.defaults;sdkconfig.defaults.esp32-p4" + -DSDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.debug.defaults;sdkconfig.ramoptimize.defaults;sdkconfig.defaults.esp32-p4" build_flags = ${env:esp32_dbg.build_flags} \ No newline at end of file diff --git a/sdkconfig.defaults b/sdkconfig.defaults index 1abe5c5..44caab5 100644 --- a/sdkconfig.defaults +++ b/sdkconfig.defaults @@ -39,7 +39,9 @@ CONFIG_ARDUINO_SELECTIVE_Insights=n CONFIG_ARDUINO_LOOP_STACK_SIZE=12288 # LOGS -CONFIG_HEAP_TASK_TRACKING=n +#CONFIG_HEAP_TASK_TRACKING=y +#CONFIG_HEAP_TRACK_DELETED_TASKS=y +#CONFIG_ESP_SYSTEM_USE_FRAME_POINTER=y CONFIG_LOG_COLORS=n CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT=n CONFIG_LOG_MAXIMUM_LEVEL=4 @@ -162,7 +164,7 @@ CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH=y # HTTP(S) SERVER CONFIG_ESP_HTTPS_SERVER_ENABLE=y CONFIG_HTTPD_MAX_REQ_HDR_LEN=2048 -CONFIG_HTTPD_MAX_URI_LEN=512 +CONFIG_HTTPD_MAX_URI_LEN=2048 CONFIG_HTTPD_ERR_RESP_NO_DELAY=y CONFIG_HTTPD_PURGE_BUF_LEN=32 CONFIG_HTTPD_WS_SUPPORT=y diff --git a/sdkconfig.ramoptimize.defaults b/sdkconfig.ramoptimize.defaults new file mode 100644 index 0000000..2e2b706 --- /dev/null +++ b/sdkconfig.ramoptimize.defaults @@ -0,0 +1,33 @@ +CONFIG_COMPILER_OPTIMIZATION_NONE=n +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT=y +CONFIG_LWIP_IRAM_OPTIMIZATION=n +CONFIG_LWIP_EXTRA_IRAM_OPTIMIZATION=n +CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=n +CONFIG_SPI_MASTER_IN_IRAM=n +CONFIG_SPI_SLAVE_IN_IRAM=n +CONFIG_ANA_CMPR_ISR_HANDLER_IN_IRAM=n +CONFIG_PARLIO_TX_ISR_HANDLER_IN_IRAM=n +CONFIG_PARLIO_RX_ISR_HANDLER_IN_IRAM=n +CONFIG_RMT_TX_ISR_HANDLER_IN_IRAM=n +CONFIG_RMT_RX_ISR_HANDLER_IN_IRAM=n +CONFIG_I2C_MASTER_ISR_HANDLER_IN_IRAM=n +CONFIG_GDMA_ISR_HANDLER_IN_IRAM=n +CONFIG_LIBC_LOCKS_PLACE_IN_IRAM=n +CONFIG_HAL_ASSERTION_SILENT=y +#CONFIG_SPI_FLASH_AUTO_SUSPEND=y ## CAUSES CRASHES ON SOME DEVICES +#CONFIG_SPI_FLASH_PLACE_FUNCTIONS_IN_IRAM=n ## CAUSES CRASHES ON SOME DEVICES +#CONFIG_SPI_FLASH_AUTO_CHECK_SUSPEND_STATUS=y ## CAUSES CRASHES ON SOME DEVICES +CONFIG_LIBC_MISC_IN_IRAM=n +CONFIG_ESP_TIMER_IN_IRAM=n +CONFIG_ESP_INTR_IN_IRAM=n +CONFIG_LOG_IN_IRAM=n +CONFIG_ESP_ROM_PRINT_IN_IRAM=n +CONFIG_PM_SLEEP_FUNC_IN_IRAM=n +CONFIG_PM_RTOS_IDLE_OPT=n +CONFIG_ESP_SLEEP_POWER_DOWN_FLASH=n +CONFIG_PM_SLP_IRAM_OPT=n +CONFIG_ESP_REGI2C_CTRL_FUNC_IN_IRAM=n +CONFIG_ESP_PERIPH_CTRL_FUNC_IN_IRAM=n +CONFIG_ESP_PHY_IRAM_OPT=n +CONFIG_ESP_WIFI_SLP_IRAM_OPT=n +CONFIG_ESP_WIFI_EXTRA_IRAM_OPT=n \ No newline at end of file diff --git a/src/Config.h b/src/Config.h index f3bd2d5..a58d185 100644 --- a/src/Config.h +++ b/src/Config.h @@ -5,7 +5,7 @@ #define NUKI_HUB_VERSION "9.12" #define NUKI_HUB_VERSION_INT (uint32_t)912 #define NUKI_HUB_BUILD "unknownbuildnr" -#define NUKI_HUB_DATE "2025-06-20" +#define NUKI_HUB_DATE "2025-06-25" #define GITHUB_LATEST_RELEASE_URL (char*)"https://github.com/technyon/nuki_hub/releases/latest" #define GITHUB_OTA_MANIFEST_URL (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/manifest.json" diff --git a/src/idf_component.yml b/src/idf_component.yml index 80d9dba..fb57423 100644 --- a/src/idf_component.yml +++ b/src/idf_component.yml @@ -9,7 +9,7 @@ dependencies: espressif/libsodium: "^1.0.20~2" espressif/esp_hosted: - version: 2.0.10 + version: "*" rules: - if: "target in [esp32p4]" diff --git a/src/main.cpp b/src/main.cpp index 3219b31..46dc1b1 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -6,6 +6,10 @@ #include "esp_http_client.h" #include "esp_https_ota.h" #include "esp_task_wdt.h" +#ifdef CONFIG_HEAP_TASK_TRACKING +#include "esp_heap_task_info.h" +#include "esp_heap_caps.h" +#endif #include "Config.h" #include "esp32-hal-log.h" #include "hal/wdt_hal.h" @@ -644,6 +648,49 @@ void networkTask(void *pvParameters) } #ifndef NUKI_HUB_UPDATER +#ifdef CONFIG_HEAP_TASK_TRACKING +static void print_all_tasks_info(void) +{ + heap_all_tasks_stat_t tasks_stat; + /* call API to dynamically allocate the memory necessary to store the + * information collected while calling heap_caps_get_all_task_stat */ + const esp_err_t ret_val = heap_caps_alloc_all_task_stat_arrays(&tasks_stat); + assert(ret_val == ESP_OK); + + /* collect the information */ + heap_caps_get_all_task_stat(&tasks_stat); + + /* process the information retrieved */ + Log->printf("\n--------------------------------------------------------------------------------\n"); + Log->printf("PRINTING ALL TASKS INFO\n"); + Log->printf("--------------------------------------------------------------------------------\n"); + for (size_t task_idx = 0; task_idx < tasks_stat.task_count; task_idx++) { + task_stat_t task_stat = tasks_stat.stat_arr[task_idx]; + Log->printf("%s: %s: Peak Usage %" PRIu16 ", Current Usage %" PRIu16 "\n", task_stat.name, + task_stat.is_alive ? "ALIVE " : "DELETED", + task_stat.overall_peak_usage, + task_stat.overall_current_usage); + + for (size_t heap_idx = 0; heap_idx < task_stat.heap_count; heap_idx++) { + heap_stat_t heap_stat = task_stat.heap_stat[heap_idx]; + Log->printf(" %s: Caps: %" PRIu32 ". Size %" PRIu16 ", Current Usage %" PRIu16 ", Peak Usage %" PRIu16 ", alloc count %" PRIu16 "\n", heap_stat.name, + heap_stat.caps, + heap_stat.size, + heap_stat.current_usage, + heap_stat.peak_usage, + heap_stat.alloc_count); + + for (size_t alloc_idx = 0; alloc_idx < heap_stat.alloc_count; alloc_idx++) { + heap_task_block_t alloc_stat = heap_stat.alloc_stat[alloc_idx]; + Log->printf(" %p: Size: %" PRIu32 "\n", alloc_stat.address, alloc_stat.size); + } + } + } + + /* delete the memory dynamically allocated while calling heap_caps_alloc_all_task_stat_arrays */ + heap_caps_free_all_task_stat_arrays(&tasks_stat); +} +#endif void nukiTask(void *pvParameters) { esp_task_wdt_add(NULL); @@ -1256,6 +1303,9 @@ void setup() Log->println(NUKI_HUB_VERSION); Log->print("Nuki Hub build "); Log->println(NUKI_HUB_BUILD); + + Log->println(preferences->getString(preference_cred_user)); + Log->println(preferences->getString(preference_cred_password)); uint32_t devIdOpener = preferences->getUInt(preference_device_id_opener); @@ -1372,12 +1422,7 @@ void setup() setupTasks(false); } -#ifdef DEBUG_NUKIHUB - Log->print("Task Name\tStatus\tPrio\tHWM\tTask\tAffinity\n"); - char stats_buffer[1024]; - vTaskList(stats_buffer); - Log->println(stats_buffer); -#endif + //print_all_tasks_info(); } void loop() diff --git a/src/networkDevices/WifiDevice.cpp b/src/networkDevices/WifiDevice.cpp index 642a1d8..e96ce11 100644 --- a/src/networkDevices/WifiDevice.cpp +++ b/src/networkDevices/WifiDevice.cpp @@ -51,10 +51,16 @@ void WifiDevice::initialize() WiFi.disconnect(true); WiFi.mode(WIFI_STA); WiFi.disconnect(); - if (esp_task_wdt_status(NULL) == ESP_OK) { - esp_task_wdt_reset(); + + int loop = 0; + while (!_wifiClientStarted && loop < 50) { + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(100 / portTICK_PERIOD_MS); + loop++; } - vTaskDelay(5000 / portTICK_PERIOD_MS); + Log->println("Dummy WiFi device for Hosted on P4 done"); } return; @@ -64,24 +70,25 @@ void WifiDevice::scan(bool passive, bool async) { if (!_openAP) { + _wifiClientStarted = false; WiFi.disconnect(true); WiFi.mode(WIFI_STA); WiFi.disconnect(); + } + + int loop = 0; + while (!_wifiClientStarted && loop < 50) { if (esp_task_wdt_status(NULL) == ESP_OK) { esp_task_wdt_reset(); } - vTaskDelay(1000 / portTICK_PERIOD_MS); + vTaskDelay(100 / portTICK_PERIOD_MS); + loop++; } WiFi.scanDelete(); WiFi.setScanMethod(WIFI_ALL_CHANNEL_SCAN); WiFi.setSortMethod(WIFI_CONNECT_AP_BY_SIGNAL); - if (esp_task_wdt_status(NULL) == ESP_OK) { - esp_task_wdt_reset(); - } - vTaskDelay(1000 / portTICK_PERIOD_MS); - if(async) { Log->println("Wi-Fi async scan started"); @@ -126,13 +133,6 @@ void WifiDevice::openAP() bool WifiDevice::connect() { - WiFi.mode(WIFI_STA); - WiFi.setHostname(_hostname.c_str()); - if (esp_task_wdt_status(NULL) == ESP_OK) { - esp_task_wdt_reset(); - } - vTaskDelay(500 / portTICK_PERIOD_MS); - int bestConnection = -1; if(_preferences->getBool(preference_find_best_rssi, false)) @@ -215,7 +215,7 @@ bool WifiDevice::connect() } return false; - } + } return true; } @@ -284,10 +284,10 @@ void WifiDevice::onWifiEvent(const WiFiEvent_t &event, const WiFiEventInfo_t &in Log->printf("[WiFi-event] event: %d\n", event); switch (event) { - case ARDUINO_EVENT_WIFI_READY: - Log->println("WiFi interface ready"); + case ARDUINO_EVENT_WIFI_READY: + Log->println("WiFi interface ready"); break; - case ARDUINO_EVENT_WIFI_SCAN_DONE: + case ARDUINO_EVENT_WIFI_SCAN_DONE: Log->println("Completed scan for access points"); _foundNetworks = WiFi.scanComplete(); @@ -315,28 +315,29 @@ void WifiDevice::onWifiEvent(const WiFiEvent_t &event, const WiFiEventInfo_t &in scan(false, true); } break; - case ARDUINO_EVENT_WIFI_STA_START: - Log->println("WiFi client started"); + case ARDUINO_EVENT_WIFI_STA_START: + Log->println("WiFi client started"); + _wifiClientStarted = true; break; - case ARDUINO_EVENT_WIFI_STA_STOP: - Log->println("WiFi clients stopped"); + case ARDUINO_EVENT_WIFI_STA_STOP: + Log->println("WiFi clients stopped"); if(!_openAP) { onDisconnected(); } break; - case ARDUINO_EVENT_WIFI_STA_CONNECTED: + case ARDUINO_EVENT_WIFI_STA_CONNECTED: Log->println("Connected to access point"); break; - case ARDUINO_EVENT_WIFI_STA_DISCONNECTED: - Log->println("Disconnected from WiFi access point"); + case ARDUINO_EVENT_WIFI_STA_DISCONNECTED: + Log->println("Disconnected from WiFi access point"); if(!_openAP) { onDisconnected(); } break; - case ARDUINO_EVENT_WIFI_STA_AUTHMODE_CHANGE: - Log->println("Authentication mode of access point has changed"); + case ARDUINO_EVENT_WIFI_STA_AUTHMODE_CHANGE: + Log->println("Authentication mode of access point has changed"); break; case ARDUINO_EVENT_WIFI_STA_GOT_IP: Log->print("Obtained IP address: "); @@ -346,38 +347,38 @@ void WifiDevice::onWifiEvent(const WiFiEvent_t &event, const WiFiEventInfo_t &in onConnected(); } break; - case ARDUINO_EVENT_WIFI_STA_LOST_IP: + case ARDUINO_EVENT_WIFI_STA_LOST_IP: Log->println("Lost IP address and IP address is reset to 0"); if(!_openAP) { onDisconnected(); } break; - case ARDUINO_EVENT_WIFI_AP_START: + case ARDUINO_EVENT_WIFI_AP_START: Log->println("WiFi access point started"); break; - case ARDUINO_EVENT_WIFI_AP_STOP: - Log->println("WiFi access point stopped"); + case ARDUINO_EVENT_WIFI_AP_STOP: + Log->println("WiFi access point stopped"); break; - case ARDUINO_EVENT_WIFI_AP_STACONNECTED: - Log->println("Client connected"); + case ARDUINO_EVENT_WIFI_AP_STACONNECTED: + Log->println("Client connected"); break; - case ARDUINO_EVENT_WIFI_AP_STADISCONNECTED: - Log->println("Client disconnected"); + case ARDUINO_EVENT_WIFI_AP_STADISCONNECTED: + Log->println("Client disconnected"); break; - case ARDUINO_EVENT_WIFI_AP_STAIPASSIGNED: - Log->println("Assigned IP address to client"); + case ARDUINO_EVENT_WIFI_AP_STAIPASSIGNED: + Log->println("Assigned IP address to client"); break; - case ARDUINO_EVENT_WIFI_AP_PROBEREQRECVED: - Log->println("Received probe request"); + case ARDUINO_EVENT_WIFI_AP_PROBEREQRECVED: + Log->println("Received probe request"); break; - case ARDUINO_EVENT_WIFI_AP_GOT_IP6: - Log->println("AP IPv6 is preferred"); + case ARDUINO_EVENT_WIFI_AP_GOT_IP6: + Log->println("AP IPv6 is preferred"); break; - case ARDUINO_EVENT_WIFI_STA_GOT_IP6: - Log->println("STA IPv6 is preferred"); + case ARDUINO_EVENT_WIFI_STA_GOT_IP6: + Log->println("STA IPv6 is preferred"); break; - default: + default: break; } } \ No newline at end of file diff --git a/src/networkDevices/WifiDevice.h b/src/networkDevices/WifiDevice.h index 9c29c08..1d7225d 100644 --- a/src/networkDevices/WifiDevice.h +++ b/src/networkDevices/WifiDevice.h @@ -43,4 +43,5 @@ private: bool _openAP = false; bool _startAP = true; bool _connected = false; + bool _wifiClientStarted = false; }; \ No newline at end of file From 6c74d6253156c4ab02efe261836d7d16a89ef66c Mon Sep 17 00:00:00 2001 From: iranl Date: Wed, 25 Jun 2025 22:52:12 +0200 Subject: [PATCH 19/30] P4 fixes --- Makefile | 2 +- .../espressif__esp_hosted/.component_hash | 1 + resources/espressif__esp_hosted/.editorconfig | 19 + resources/espressif__esp_hosted/.gitignore | 7 + .../.gitlab-ci-override-idf-component.yml | 5 + resources/espressif__esp_hosted/.gitmodules | 3 + .../espressif__esp_hosted/CMakeLists.txt | 94 + resources/espressif__esp_hosted/Kconfig | 1356 ++ resources/espressif__esp_hosted/LICENSE | 202 + resources/espressif__esp_hosted/README.md | 280 + .../common/esp_hosted_header.h | 32 + .../common/esp_hosted_interface.h | 30 + .../common/log/esp_hosted_log.h | 34 + .../common/proto/README.md | 53 + .../common/proto/esp_hosted_rpc.pb-c.c | 17767 ++++++++++++++++ .../common/proto/esp_hosted_rpc.pb-c.h | 7219 +++++++ .../common/proto/esp_hosted_rpc.proto | 1830 ++ .../common/protobuf-c/.commit_docs.sh | 75 + .../common/protobuf-c/.gitignore | 43 + .../common/protobuf-c/CONTRIBUTING.md | 5 + .../common/protobuf-c/ChangeLog | 564 + .../common/protobuf-c/Doxyfile.in | 2312 ++ .../common/protobuf-c/DoxygenLayout.xml | 193 + .../common/protobuf-c/LICENSE | 32 + .../common/protobuf-c/Makefile.am | 382 + .../common/protobuf-c/README.md | 73 + .../common/protobuf-c/TODO | 82 + .../common/protobuf-c/autogen.sh | 2 + .../common/protobuf-c/build-cmake/.gitignore | 3 + .../protobuf-c/build-cmake/CMakeLists.txt | 218 + .../common/protobuf-c/configure.ac | 139 + .../common/protobuf-c/m4/.gitignore | 5 + .../protobuf-c/m4/ax_check_compile_flag.m4 | 74 + .../protobuf-c/m4/ax_cxx_compile_stdcxx.m4 | 948 + .../common/protobuf-c/m4/code_coverage.m4 | 158 + .../common/protobuf-c/m4/ld-version-script.m4 | 53 + .../common/protobuf-c/m4/pkg.m4 | 214 + .../common/protobuf-c/m4/valgrind-tests.m4 | 35 + .../protobuf-c/protobuf-c/libprotobuf-c.pc.in | 13 + .../protobuf-c/protobuf-c/libprotobuf-c.sym | 28 + .../common/protobuf-c/protobuf-c/protobuf-c.c | 3672 ++++ .../common/protobuf-c/protobuf-c/protobuf-c.h | 1110 + .../protobuf-c/protobuf-c/protobuf-c.proto | 86 + .../protobuf-c/protoc-c/c_bytes_field.cc | 163 + .../protobuf-c/protoc-c/c_bytes_field.h | 100 + .../common/protobuf-c/protoc-c/c_enum.cc | 334 + .../common/protobuf-c/protoc-c/c_enum.h | 118 + .../protobuf-c/protoc-c/c_enum_field.cc | 149 + .../common/protobuf-c/protoc-c/c_enum_field.h | 98 + .../common/protobuf-c/protoc-c/c_extension.cc | 90 + .../common/protobuf-c/protoc-c/c_extension.h | 110 + .../common/protobuf-c/protoc-c/c_field.cc | 241 + .../common/protobuf-c/protoc-c/c_field.h | 133 + .../common/protobuf-c/protoc-c/c_file.cc | 274 + .../common/protobuf-c/protoc-c/c_file.h | 115 + .../common/protobuf-c/protoc-c/c_generator.cc | 176 + .../common/protobuf-c/protoc-c/c_generator.h | 106 + .../common/protobuf-c/protoc-c/c_helpers.cc | 558 + .../common/protobuf-c/protoc-c/c_helpers.h | 186 + .../common/protobuf-c/protoc-c/c_message.cc | 633 + .../common/protobuf-c/protoc-c/c_message.h | 148 + .../protobuf-c/protoc-c/c_message_field.cc | 129 + .../protobuf-c/protoc-c/c_message_field.h | 97 + .../protobuf-c/protoc-c/c_primitive_field.cc | 211 + .../protobuf-c/protoc-c/c_primitive_field.h | 96 + .../common/protobuf-c/protoc-c/c_service.cc | 294 + .../common/protobuf-c/protoc-c/c_service.h | 112 + .../protobuf-c/protoc-c/c_string_field.cc | 160 + .../protobuf-c/protoc-c/c_string_field.h | 100 + .../common/protobuf-c/protoc-c/main.cc | 22 + .../common/protobuf-c/t/README | 38 + .../t/generated-code/test-generated-code.c | 71 + .../t/generated-code2/common-test-arrays.h | 62 + .../cxx-generate-packed-data.cc | 1169 + .../t/generated-code2/test-generated-code2.c | 2383 +++ .../common/protobuf-c/t/issue204/.gitignore | 1 + .../common/protobuf-c/t/issue204/issue204.c | 48 + .../protobuf-c/t/issue204/issue204.proto | 15 + .../common/protobuf-c/t/issue220/.gitignore | 1 + .../common/protobuf-c/t/issue220/issue220.c | 13 + .../protobuf-c/t/issue220/issue220.proto | 20 + .../common/protobuf-c/t/issue251/.gitignore | 1 + .../common/protobuf-c/t/issue251/issue251.c | 12 + .../protobuf-c/t/issue251/issue251.proto | 11 + .../common/protobuf-c/t/issue330/.gitignore | 1 + .../common/protobuf-c/t/issue330/issue330.c | 25 + .../protobuf-c/t/issue330/issue330.proto | 5 + .../common/protobuf-c/t/issue375/.gitignore | 1 + .../common/protobuf-c/t/issue375/issue375.c | 24 + .../protobuf-c/t/issue375/issue375.proto | 7 + .../protobuf-c/t/issue389/issue389.proto | 12 + .../common/protobuf-c/t/issue440/.gitignore | 1 + .../common/protobuf-c/t/issue440/issue440.c | 30 + .../protobuf-c/t/issue440/issue440.proto | 9 + .../common/protobuf-c/t/test-full.proto | 423 + .../common/protobuf-c/t/test-optimized.proto | 13 + .../common/protobuf-c/t/test-proto3.proto | 40 + .../common/protobuf-c/t/test.proto | 42 + .../common/protobuf-c/t/version/version.c | 56 + .../common/rpc/esp_hosted_bitmasks.h | 120 + .../common/rpc/esp_hosted_rpc.h | 35 + .../common/transport/esp_hosted_transport.h | 65 + .../transport/esp_hosted_transport_init.h | 60 + .../transport/esp_hosted_transport_spi_hd.h | 38 + .../docs/bluetooth_design.md | 527 + .../docs/design_consideration.md | 195 + .../docs/esp32_p4_function_ev_board.md | 393 + .../docs/images/ESP-Hosted-FG-MCU_design.svg | 4 + .../images/PerformanceSetup-ShieldBox.png | Bin 0 -> 114919 bytes .../docs/images/esp32-p4-esp-prog.jpg | Bin 0 -> 2843410 bytes .../esp32-p4-function-ev-board-esp-prog.jpg | Bin 0 -> 2489906 bytes .../images/esp32-p4-function-ev-board.jpg | Bin 0 -> 2794134 bytes .../docs/images/hosted_diagram-ditaa.svg | 53 + .../docs/images/hosted_diagram-ditaa.txt | 48 + .../docs/images/hosted_wifi_call.svg | 1 + .../docs/images/hosted_wifi_call.txt | 49 + .../docs/images/native_wifi_call.svg | 1 + .../docs/images/native_wifi_call.txt | 13 + .../docs/images/spi_hd_sequence_init.svg | 1 + .../docs/images/spi_hd_sequence_init.txt | 34 + .../docs/images/spi_hd_sequence_read.svg | 1 + .../docs/images/spi_hd_sequence_read.txt | 27 + .../docs/images/spi_hd_sequence_write.svg | 1 + .../docs/images/spi_hd_sequence_write.txt | 24 + .../docs/images/spi_hd_timing_2_lines.svg | 1 + .../docs/images/spi_hd_timing_2_lines.txt | 42 + .../docs/images/spi_hd_timing_4_lines.svg | 1 + .../docs/images/spi_hd_timing_4_lines.txt | 42 + .../docs/performance_optimization.md | 102 + resources/espressif__esp_hosted/docs/sdio.md | 640 + ...p_esp_idf__latest_stable__linux_macos.fish | 65 + ...tup_esp_idf__latest_stable__linux_macos.sh | 62 + .../docs/shield-box-test-setup.md | 75 + .../docs/spi_full_duplex.md | 565 + .../docs/spi_half_duplex.md | 811 + .../docs/troubleshooting.md | 149 + resources/espressif__esp_hosted/docs/uart.md | 450 + .../espressif__esp_hosted/docs/wifi_design.md | 79 + .../CMakeLists.txt | 8 + .../README.md | 59 + .../ble_compatibility_test_case.md | 180 + .../main/CMakeLists.txt | 3 + .../main/ble_compatibility_test.c | 730 + .../main/ble_compatibility_test.h | 31 + .../main/idf_component.yml | 9 + .../sdkconfig.defaults | 23 + .../CMakeLists.txt | 9 + .../README.md | 298 + .../main/CMakeLists.txt | 8 + .../main/Kconfig.projbuild | 15 + .../main/idf_component.yml | 9 + .../main/main.c | 483 + .../sdkconfig.defaults | 29 + .../host_bluedroid_host_only/CMakeLists.txt | 8 + .../host_bluedroid_host_only/README.md | 100 + .../main/CMakeLists.txt | 3 + .../main/idf_component.yml | 9 + .../host_bluedroid_host_only/main/main.c | 307 + .../sdkconfig.defaults | 24 + .../CMakeLists.txt | 8 + .../README.md | 235 + .../main/CMakeLists.txt | 6 + .../main/Kconfig.projbuild | 144 + .../main/bleprph.h | 35 + .../main/gatt_svr.c | 247 + .../main/idf_component.yml | 11 + .../main/main.c | 548 + .../main/uart_driver.c | 258 + .../main/uart_driver.h | 31 + .../sdkconfig.defaults | 11 + .../tutorial/bleprph_host_only_walkthrough.md | 83 + .../tutorial/hardware_setup.jpg | Bin 0 -> 495040 bytes .../CMakeLists.txt | 6 + .../README.md | 202 + .../main/CMakeLists.txt | 5 + .../main/Kconfig.projbuild | 80 + .../main/bleprph.h | 35 + .../main/gatt_svr.c | 247 + .../main/idf_component.yml | 11 + .../main/main.c | 550 + .../sdkconfig.defaults | 23 + .../8d519870/slave/CMakeLists.txt | 34 + .../8d519870/slave/ExtractVersion.cmake | 43 + .../8d519870/slave/main/CMakeLists.txt | 33 + .../8d519870/slave/main/Kconfig.projbuild | 845 + .../8d519870/slave/main/app_main.c | 945 + .../8d519870/slave/main/app_main.h | 28 + .../slave/main/common/esp_hosted_header.h | 32 + .../slave/main/common/esp_hosted_interface.h | 30 + .../slave/main/common/log/esp_hosted_log.h | 34 + .../slave/main/common/proto/README.md | 53 + .../main/common/proto/esp_hosted_rpc.pb-c.c | 17767 ++++++++++++++++ .../main/common/proto/esp_hosted_rpc.pb-c.h | 7219 +++++++ .../main/common/proto/esp_hosted_rpc.proto | 1830 ++ .../main/common/protobuf-c/.commit_docs.sh | 75 + .../slave/main/common/protobuf-c/.gitignore | 43 + .../main/common/protobuf-c/CONTRIBUTING.md | 5 + .../slave/main/common/protobuf-c/ChangeLog | 564 + .../slave/main/common/protobuf-c/Doxyfile.in | 2312 ++ .../main/common/protobuf-c/DoxygenLayout.xml | 193 + .../slave/main/common/protobuf-c/LICENSE | 32 + .../slave/main/common/protobuf-c/Makefile.am | 382 + .../slave/main/common/protobuf-c/README.md | 73 + .../slave/main/common/protobuf-c/TODO | 82 + .../slave/main/common/protobuf-c/autogen.sh | 2 + .../common/protobuf-c/build-cmake/.gitignore | 3 + .../protobuf-c/build-cmake/CMakeLists.txt | 218 + .../slave/main/common/protobuf-c/configure.ac | 139 + .../main/common/protobuf-c/m4/.gitignore | 5 + .../protobuf-c/m4/ax_check_compile_flag.m4 | 74 + .../protobuf-c/m4/ax_cxx_compile_stdcxx.m4 | 948 + .../common/protobuf-c/m4/code_coverage.m4 | 158 + .../common/protobuf-c/m4/ld-version-script.m4 | 53 + .../slave/main/common/protobuf-c/m4/pkg.m4 | 214 + .../common/protobuf-c/m4/valgrind-tests.m4 | 35 + .../protobuf-c/protobuf-c/libprotobuf-c.pc.in | 13 + .../protobuf-c/protobuf-c/libprotobuf-c.sym | 28 + .../common/protobuf-c/protobuf-c/protobuf-c.c | 3672 ++++ .../common/protobuf-c/protobuf-c/protobuf-c.h | 1110 + .../protobuf-c/protobuf-c/protobuf-c.proto | 86 + .../protobuf-c/protoc-c/c_bytes_field.cc | 163 + .../protobuf-c/protoc-c/c_bytes_field.h | 100 + .../main/common/protobuf-c/protoc-c/c_enum.cc | 334 + .../main/common/protobuf-c/protoc-c/c_enum.h | 118 + .../protobuf-c/protoc-c/c_enum_field.cc | 149 + .../common/protobuf-c/protoc-c/c_enum_field.h | 98 + .../common/protobuf-c/protoc-c/c_extension.cc | 90 + .../common/protobuf-c/protoc-c/c_extension.h | 110 + .../common/protobuf-c/protoc-c/c_field.cc | 241 + .../main/common/protobuf-c/protoc-c/c_field.h | 133 + .../main/common/protobuf-c/protoc-c/c_file.cc | 274 + .../main/common/protobuf-c/protoc-c/c_file.h | 115 + .../common/protobuf-c/protoc-c/c_generator.cc | 176 + .../common/protobuf-c/protoc-c/c_generator.h | 106 + .../common/protobuf-c/protoc-c/c_helpers.cc | 558 + .../common/protobuf-c/protoc-c/c_helpers.h | 186 + .../common/protobuf-c/protoc-c/c_message.cc | 633 + .../common/protobuf-c/protoc-c/c_message.h | 148 + .../protobuf-c/protoc-c/c_message_field.cc | 129 + .../protobuf-c/protoc-c/c_message_field.h | 97 + .../protobuf-c/protoc-c/c_primitive_field.cc | 211 + .../protobuf-c/protoc-c/c_primitive_field.h | 96 + .../common/protobuf-c/protoc-c/c_service.cc | 294 + .../common/protobuf-c/protoc-c/c_service.h | 112 + .../protobuf-c/protoc-c/c_string_field.cc | 160 + .../protobuf-c/protoc-c/c_string_field.h | 100 + .../main/common/protobuf-c/protoc-c/main.cc | 22 + .../slave/main/common/protobuf-c/t/README | 38 + .../t/generated-code/test-generated-code.c | 71 + .../t/generated-code2/common-test-arrays.h | 62 + .../cxx-generate-packed-data.cc | 1169 + .../t/generated-code2/test-generated-code2.c | 2383 +++ .../common/protobuf-c/t/issue204/.gitignore | 1 + .../common/protobuf-c/t/issue204/issue204.c | 48 + .../protobuf-c/t/issue204/issue204.proto | 15 + .../common/protobuf-c/t/issue220/.gitignore | 1 + .../common/protobuf-c/t/issue220/issue220.c | 13 + .../protobuf-c/t/issue220/issue220.proto | 20 + .../common/protobuf-c/t/issue251/.gitignore | 1 + .../common/protobuf-c/t/issue251/issue251.c | 12 + .../protobuf-c/t/issue251/issue251.proto | 11 + .../common/protobuf-c/t/issue330/.gitignore | 1 + .../common/protobuf-c/t/issue330/issue330.c | 25 + .../protobuf-c/t/issue330/issue330.proto | 5 + .../common/protobuf-c/t/issue375/.gitignore | 1 + .../common/protobuf-c/t/issue375/issue375.c | 24 + .../protobuf-c/t/issue375/issue375.proto | 7 + .../protobuf-c/t/issue389/issue389.proto | 12 + .../common/protobuf-c/t/issue440/.gitignore | 1 + .../common/protobuf-c/t/issue440/issue440.c | 30 + .../protobuf-c/t/issue440/issue440.proto | 9 + .../main/common/protobuf-c/t/test-full.proto | 423 + .../common/protobuf-c/t/test-optimized.proto | 13 + .../common/protobuf-c/t/test-proto3.proto | 40 + .../slave/main/common/protobuf-c/t/test.proto | 42 + .../common/protobuf-c/t/version/version.c | 56 + .../main/common/rpc/esp_hosted_bitmasks.h | 120 + .../slave/main/common/rpc/esp_hosted_rpc.h | 35 + .../common/transport/esp_hosted_transport.h | 65 + .../transport/esp_hosted_transport_init.h | 60 + .../transport/esp_hosted_transport_spi_hd.h | 38 + .../slave/main/coprocessor_fw_version.txt | 1 + .../8d519870/slave/main/interface.h | 139 + .../8d519870/slave/main/mempool.c | 161 + .../8d519870/slave/main/mempool.h | 82 + .../8d519870/slave/main/mempool_ll.c | 360 + .../8d519870/slave/main/mempool_ll.h | 354 + .../8d519870/slave/main/protocomm_pserial.c | 346 + .../8d519870/slave/main/protocomm_pserial.h | 39 + .../8d519870/slave/main/sdio_slave_api.c | 700 + .../8d519870/slave/main/sdio_slave_api.h | 25 + .../8d519870/slave/main/slave_bt.c | 318 + .../8d519870/slave/main/slave_bt.h | 168 + .../8d519870/slave/main/slave_bt_uart.h | 26 + .../8d519870/slave/main/slave_bt_uart_esp32.c | 43 + .../slave/main/slave_bt_uart_esp32c3_s3.c | 267 + .../slave/main/slave_bt_uart_esp32xx.c | 33 + .../8d519870/slave/main/slave_control.c | 2535 +++ .../8d519870/slave/main/slave_control.h | 38 + .../8d519870/slave/main/spi_hd_slave_api.c | 877 + .../8d519870/slave/main/spi_slave_api.c | 1039 + .../8d519870/slave/main/stats.c | 272 + .../8d519870/slave/main/stats.h | 127 + .../8d519870/slave/main/uart_slave_api.c | 663 + .../8d519870/slave/partitions.esp32.csv | 7 + .../8d519870/slave/partitions.esp32c2.csv | 7 + .../8d519870/slave/partitions.esp32c5.csv | 7 + .../8d519870/slave/partitions.esp32c6.csv | 7 + .../8d519870/slave/sdkconfig.defaults | 12 + .../8d519870/slave/sdkconfig.defaults.esp32 | 39 + .../8d519870/slave/sdkconfig.defaults.esp32c2 | 19 + .../8d519870/slave/sdkconfig.defaults.esp32c3 | 10 + .../8d519870/slave/sdkconfig.defaults.esp32c5 | 10 + .../8d519870/slave/sdkconfig.defaults.esp32c6 | 26 + .../8d519870/slave/sdkconfig.defaults.esp32s3 | 9 + .../host/api/include/esp_hosted_api_types.h | 25 + .../host/api/include/esp_hosted_bt_config.h | 54 + .../host/api/include/esp_hosted_config.h | 396 + .../host/api/include/esp_hosted_ota.h | 35 + .../api/include/esp_hosted_transport_config.h | 240 + .../api/include/esp_hosted_wifi_remote_glue.h | 44 + .../host/api/priv/esp_hosted_api_priv.h | 84 + .../host/api/src/esp_hosted_api.c | 480 + .../host/api/src/esp_wifi_weak.c | 277 + .../host/drivers/bt/hci_drv.h | 18 + .../host/drivers/bt/hci_stub_drv.c | 93 + .../host/drivers/bt/vhci_drv.c | 263 + .../host/drivers/mempool/CMakeLists.txt | 7 + .../host/drivers/mempool/mempool.c | 157 + .../host/drivers/mempool/mempool.h | 51 + .../host/drivers/rpc/core/rpc_core.c | 1050 + .../host/drivers/rpc/core/rpc_core.h | 136 + .../host/drivers/rpc/core/rpc_evt.c | 177 + .../host/drivers/rpc/core/rpc_req.c | 510 + .../host/drivers/rpc/core/rpc_rsp.c | 624 + .../host/drivers/rpc/slaveif/rpc_slave_if.c | 373 + .../host/drivers/rpc/slaveif/rpc_slave_if.h | 471 + .../host/drivers/rpc/wrap/rpc_wrap.c | 1363 ++ .../host/drivers/rpc/wrap/rpc_wrap.h | 106 + .../host/drivers/serial/serial_drv.c | 251 + .../host/drivers/serial/serial_drv.h | 107 + .../host/drivers/serial/serial_ll_if.c | 358 + .../host/drivers/serial/serial_ll_if.h | 107 + .../host/drivers/transport/sdio/sdio_drv.c | 1147 + .../host/drivers/transport/sdio/sdio_drv.h | 33 + .../host/drivers/transport/sdio/sdio_reg.h | 116 + .../host/drivers/transport/spi/spi_drv.c | 713 + .../host/drivers/transport/spi/spi_drv.h | 47 + .../drivers/transport/spi_hd/spi_hd_drv.c | 767 + .../drivers/transport/spi_hd/spi_hd_drv.h | 22 + .../host/drivers/transport/transport_drv.c | 666 + .../host/drivers/transport/transport_drv.h | 138 + .../host/drivers/transport/uart/uart_drv.c | 554 + .../drivers/virtual_serial_if/serial_if.c | 219 + .../drivers/virtual_serial_if/serial_if.h | 48 + .../espressif__esp_hosted/host/esp_hosted.h | 45 + .../host/esp_hosted_bt.h | 21 + .../host/esp_hosted_host_init.c | 26 + .../host/hosted_os_abstraction.h | 122 + .../freertos/include/esp_hosted_wifi_config.h | 35 + .../port/esp/freertos/include/os_header.h | 16 + .../port/esp/freertos/include/os_wrapper.h | 180 + .../port/esp/freertos/include/sdio_wrapper.h | 50 + .../esp/freertos/include/spi_hd_wrapper.h | 53 + .../port/esp/freertos/include/spi_wrapper.h | 29 + .../port/esp/freertos/include/uart_wrapper.h | 37 + .../port/esp/freertos/src/esp_hosted_config.c | 16 + .../port/esp/freertos/src/esp_hosted_ota.c | 248 + .../src/esp_hosted_transport_config.c | 245 + .../host/port/esp/freertos/src/os_wrapper.c | 854 + .../host/port/esp/freertos/src/sdio_wrapper.c | 542 + .../port/esp/freertos/src/spi_hd_wrapper.c | 553 + .../host/port/esp/freertos/src/spi_wrapper.c | 119 + .../host/port/esp/freertos/src/uart_wrapper.c | 187 + .../espressif__esp_hosted/host/utils/common.c | 130 + .../espressif__esp_hosted/host/utils/common.h | 125 + .../espressif__esp_hosted/host/utils/stats.c | 236 + .../espressif__esp_hosted/host/utils/stats.h | 139 + .../espressif__esp_hosted/host/utils/util.c | 255 + .../espressif__esp_hosted/host/utils/util.h | 46 + .../espressif__esp_hosted/idf_component.yml | 11 + .../espressif__esp_hosted/sdkconfig.rename | 147 + .../slave/CMakeLists.txt | 34 + .../slave/ExtractVersion.cmake | 43 + .../slave/main/CMakeLists.txt | 33 + .../slave/main/Kconfig.projbuild | 845 + .../slave/main/app_main.c | 945 + .../slave/main/app_main.h | 28 + .../slave/main/common/esp_hosted_header.h | 32 + .../slave/main/common/esp_hosted_interface.h | 30 + .../slave/main/common/log/esp_hosted_log.h | 34 + .../slave/main/common/proto/README.md | 53 + .../main/common/proto/esp_hosted_rpc.pb-c.c | 17767 ++++++++++++++++ .../main/common/proto/esp_hosted_rpc.pb-c.h | 7219 +++++++ .../main/common/proto/esp_hosted_rpc.proto | 1830 ++ .../main/common/protobuf-c/.commit_docs.sh | 75 + .../slave/main/common/protobuf-c/.gitignore | 43 + .../main/common/protobuf-c/CONTRIBUTING.md | 5 + .../slave/main/common/protobuf-c/ChangeLog | 564 + .../slave/main/common/protobuf-c/Doxyfile.in | 2312 ++ .../main/common/protobuf-c/DoxygenLayout.xml | 193 + .../slave/main/common/protobuf-c/LICENSE | 32 + .../slave/main/common/protobuf-c/Makefile.am | 382 + .../slave/main/common/protobuf-c/README.md | 73 + .../slave/main/common/protobuf-c/TODO | 82 + .../slave/main/common/protobuf-c/autogen.sh | 2 + .../common/protobuf-c/build-cmake/.gitignore | 3 + .../protobuf-c/build-cmake/CMakeLists.txt | 218 + .../slave/main/common/protobuf-c/configure.ac | 139 + .../main/common/protobuf-c/m4/.gitignore | 5 + .../protobuf-c/m4/ax_check_compile_flag.m4 | 74 + .../protobuf-c/m4/ax_cxx_compile_stdcxx.m4 | 948 + .../common/protobuf-c/m4/code_coverage.m4 | 158 + .../common/protobuf-c/m4/ld-version-script.m4 | 53 + .../slave/main/common/protobuf-c/m4/pkg.m4 | 214 + .../common/protobuf-c/m4/valgrind-tests.m4 | 35 + .../protobuf-c/protobuf-c/libprotobuf-c.pc.in | 13 + .../protobuf-c/protobuf-c/libprotobuf-c.sym | 28 + .../common/protobuf-c/protobuf-c/protobuf-c.c | 3672 ++++ .../common/protobuf-c/protobuf-c/protobuf-c.h | 1110 + .../protobuf-c/protobuf-c/protobuf-c.proto | 86 + .../protobuf-c/protoc-c/c_bytes_field.cc | 163 + .../protobuf-c/protoc-c/c_bytes_field.h | 100 + .../main/common/protobuf-c/protoc-c/c_enum.cc | 334 + .../main/common/protobuf-c/protoc-c/c_enum.h | 118 + .../protobuf-c/protoc-c/c_enum_field.cc | 149 + .../common/protobuf-c/protoc-c/c_enum_field.h | 98 + .../common/protobuf-c/protoc-c/c_extension.cc | 90 + .../common/protobuf-c/protoc-c/c_extension.h | 110 + .../common/protobuf-c/protoc-c/c_field.cc | 241 + .../main/common/protobuf-c/protoc-c/c_field.h | 133 + .../main/common/protobuf-c/protoc-c/c_file.cc | 274 + .../main/common/protobuf-c/protoc-c/c_file.h | 115 + .../common/protobuf-c/protoc-c/c_generator.cc | 176 + .../common/protobuf-c/protoc-c/c_generator.h | 106 + .../common/protobuf-c/protoc-c/c_helpers.cc | 558 + .../common/protobuf-c/protoc-c/c_helpers.h | 186 + .../common/protobuf-c/protoc-c/c_message.cc | 633 + .../common/protobuf-c/protoc-c/c_message.h | 148 + .../protobuf-c/protoc-c/c_message_field.cc | 129 + .../protobuf-c/protoc-c/c_message_field.h | 97 + .../protobuf-c/protoc-c/c_primitive_field.cc | 211 + .../protobuf-c/protoc-c/c_primitive_field.h | 96 + .../common/protobuf-c/protoc-c/c_service.cc | 294 + .../common/protobuf-c/protoc-c/c_service.h | 112 + .../protobuf-c/protoc-c/c_string_field.cc | 160 + .../protobuf-c/protoc-c/c_string_field.h | 100 + .../main/common/protobuf-c/protoc-c/main.cc | 22 + .../slave/main/common/protobuf-c/t/README | 38 + .../t/generated-code/test-generated-code.c | 71 + .../t/generated-code2/common-test-arrays.h | 62 + .../cxx-generate-packed-data.cc | 1169 + .../t/generated-code2/test-generated-code2.c | 2383 +++ .../common/protobuf-c/t/issue204/.gitignore | 1 + .../common/protobuf-c/t/issue204/issue204.c | 48 + .../protobuf-c/t/issue204/issue204.proto | 15 + .../common/protobuf-c/t/issue220/.gitignore | 1 + .../common/protobuf-c/t/issue220/issue220.c | 13 + .../protobuf-c/t/issue220/issue220.proto | 20 + .../common/protobuf-c/t/issue251/.gitignore | 1 + .../common/protobuf-c/t/issue251/issue251.c | 12 + .../protobuf-c/t/issue251/issue251.proto | 11 + .../common/protobuf-c/t/issue330/.gitignore | 1 + .../common/protobuf-c/t/issue330/issue330.c | 25 + .../protobuf-c/t/issue330/issue330.proto | 5 + .../common/protobuf-c/t/issue375/.gitignore | 1 + .../common/protobuf-c/t/issue375/issue375.c | 24 + .../protobuf-c/t/issue375/issue375.proto | 7 + .../protobuf-c/t/issue389/issue389.proto | 12 + .../common/protobuf-c/t/issue440/.gitignore | 1 + .../common/protobuf-c/t/issue440/issue440.c | 30 + .../protobuf-c/t/issue440/issue440.proto | 9 + .../main/common/protobuf-c/t/test-full.proto | 423 + .../common/protobuf-c/t/test-optimized.proto | 13 + .../common/protobuf-c/t/test-proto3.proto | 40 + .../slave/main/common/protobuf-c/t/test.proto | 42 + .../common/protobuf-c/t/version/version.c | 56 + .../main/common/rpc/esp_hosted_bitmasks.h | 120 + .../slave/main/common/rpc/esp_hosted_rpc.h | 35 + .../common/transport/esp_hosted_transport.h | 65 + .../transport/esp_hosted_transport_init.h | 60 + .../transport/esp_hosted_transport_spi_hd.h | 38 + .../slave/main/interface.h | 139 + .../slave/main/mempool.c | 161 + .../slave/main/mempool.h | 82 + .../slave/main/mempool_ll.c | 360 + .../slave/main/mempool_ll.h | 354 + .../slave/main/protocomm_pserial.c | 346 + .../slave/main/protocomm_pserial.h | 39 + .../slave/main/sdio_slave_api.c | 700 + .../slave/main/sdio_slave_api.h | 25 + .../slave/main/slave_bt.c | 318 + .../slave/main/slave_bt.h | 168 + .../slave/main/slave_bt_uart.h | 26 + .../slave/main/slave_bt_uart_esp32.c | 43 + .../slave/main/slave_bt_uart_esp32c3_s3.c | 267 + .../slave/main/slave_bt_uart_esp32xx.c | 33 + .../slave/main/slave_control.c | 2535 +++ .../slave/main/slave_control.h | 38 + .../slave/main/spi_hd_slave_api.c | 877 + .../slave/main/spi_slave_api.c | 1039 + .../espressif__esp_hosted/slave/main/stats.c | 272 + .../espressif__esp_hosted/slave/main/stats.h | 127 + .../slave/main/uart_slave_api.c | 663 + .../slave/partitions.esp32.csv | 7 + .../slave/partitions.esp32c2.csv | 7 + .../slave/partitions.esp32c5.csv | 7 + .../slave/partitions.esp32c6.csv | 7 + .../slave/sdkconfig.defaults | 12 + .../slave/sdkconfig.defaults.esp32 | 39 + .../slave/sdkconfig.defaults.esp32c2 | 19 + .../slave/sdkconfig.defaults.esp32c3 | 10 + .../slave/sdkconfig.defaults.esp32c5 | 10 + .../slave/sdkconfig.defaults.esp32c6 | 26 + .../slave/sdkconfig.defaults.esp32s3 | 9 + src/Config.h | 2 +- src/idf_component.yml | 3 +- updater/sdkconfig.defaults.esp32-p4 | 1 + updater/src/idf_component.yml | 5 +- 519 files changed, 191600 insertions(+), 5 deletions(-) create mode 100644 resources/espressif__esp_hosted/.component_hash create mode 100644 resources/espressif__esp_hosted/.editorconfig create mode 100644 resources/espressif__esp_hosted/.gitignore create mode 100644 resources/espressif__esp_hosted/.gitlab-ci-override-idf-component.yml create mode 100644 resources/espressif__esp_hosted/.gitmodules create mode 100644 resources/espressif__esp_hosted/CMakeLists.txt create mode 100644 resources/espressif__esp_hosted/Kconfig create mode 100644 resources/espressif__esp_hosted/LICENSE create mode 100644 resources/espressif__esp_hosted/README.md create mode 100644 resources/espressif__esp_hosted/common/esp_hosted_header.h create mode 100644 resources/espressif__esp_hosted/common/esp_hosted_interface.h create mode 100644 resources/espressif__esp_hosted/common/log/esp_hosted_log.h create mode 100644 resources/espressif__esp_hosted/common/proto/README.md create mode 100644 resources/espressif__esp_hosted/common/proto/esp_hosted_rpc.pb-c.c create mode 100644 resources/espressif__esp_hosted/common/proto/esp_hosted_rpc.pb-c.h create mode 100644 resources/espressif__esp_hosted/common/proto/esp_hosted_rpc.proto create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/.commit_docs.sh create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/.gitignore create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/CONTRIBUTING.md create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/ChangeLog create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/Doxyfile.in create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/DoxygenLayout.xml create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/LICENSE create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/Makefile.am create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/README.md create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/TODO create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/autogen.sh create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/build-cmake/.gitignore create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/build-cmake/CMakeLists.txt create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/configure.ac create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/m4/.gitignore create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/m4/ax_check_compile_flag.m4 create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/m4/ax_cxx_compile_stdcxx.m4 create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/m4/code_coverage.m4 create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/m4/ld-version-script.m4 create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/m4/pkg.m4 create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/m4/valgrind-tests.m4 create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protobuf-c/libprotobuf-c.pc.in create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protobuf-c/libprotobuf-c.sym create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protobuf-c/protobuf-c.c create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protobuf-c/protobuf-c.h create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protobuf-c/protobuf-c.proto create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_bytes_field.cc create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_bytes_field.h create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_enum.cc create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_enum.h create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_enum_field.cc create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_enum_field.h create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_extension.cc create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_extension.h create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_field.cc create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_field.h create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_file.cc create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_file.h create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_generator.cc create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_generator.h create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_helpers.cc create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_helpers.h create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_message.cc create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_message.h create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_message_field.cc create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_message_field.h create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_primitive_field.cc create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_primitive_field.h create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_service.cc create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_service.h create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_string_field.cc create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_string_field.h create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/main.cc create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/README create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/generated-code/test-generated-code.c create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/generated-code2/common-test-arrays.h create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/generated-code2/cxx-generate-packed-data.cc create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/generated-code2/test-generated-code2.c create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue204/.gitignore create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue204/issue204.c create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue204/issue204.proto create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue220/.gitignore create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue220/issue220.c create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue220/issue220.proto create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue251/.gitignore create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue251/issue251.c create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue251/issue251.proto create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue330/.gitignore create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue330/issue330.c create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue330/issue330.proto create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue375/.gitignore create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue375/issue375.c create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue375/issue375.proto create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue389/issue389.proto create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue440/.gitignore create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue440/issue440.c create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue440/issue440.proto create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/test-full.proto create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/test-optimized.proto create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/test-proto3.proto create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/test.proto create mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/version/version.c create mode 100644 resources/espressif__esp_hosted/common/rpc/esp_hosted_bitmasks.h create mode 100644 resources/espressif__esp_hosted/common/rpc/esp_hosted_rpc.h create mode 100644 resources/espressif__esp_hosted/common/transport/esp_hosted_transport.h create mode 100644 resources/espressif__esp_hosted/common/transport/esp_hosted_transport_init.h create mode 100644 resources/espressif__esp_hosted/common/transport/esp_hosted_transport_spi_hd.h create mode 100644 resources/espressif__esp_hosted/docs/bluetooth_design.md create mode 100644 resources/espressif__esp_hosted/docs/design_consideration.md create mode 100644 resources/espressif__esp_hosted/docs/esp32_p4_function_ev_board.md create mode 100644 resources/espressif__esp_hosted/docs/images/ESP-Hosted-FG-MCU_design.svg create mode 100644 resources/espressif__esp_hosted/docs/images/PerformanceSetup-ShieldBox.png create mode 100644 resources/espressif__esp_hosted/docs/images/esp32-p4-esp-prog.jpg create mode 100644 resources/espressif__esp_hosted/docs/images/esp32-p4-function-ev-board-esp-prog.jpg create mode 100644 resources/espressif__esp_hosted/docs/images/esp32-p4-function-ev-board.jpg create mode 100644 resources/espressif__esp_hosted/docs/images/hosted_diagram-ditaa.svg create mode 100644 resources/espressif__esp_hosted/docs/images/hosted_diagram-ditaa.txt create mode 100644 resources/espressif__esp_hosted/docs/images/hosted_wifi_call.svg create mode 100644 resources/espressif__esp_hosted/docs/images/hosted_wifi_call.txt create mode 100644 resources/espressif__esp_hosted/docs/images/native_wifi_call.svg create mode 100644 resources/espressif__esp_hosted/docs/images/native_wifi_call.txt create mode 100644 resources/espressif__esp_hosted/docs/images/spi_hd_sequence_init.svg create mode 100644 resources/espressif__esp_hosted/docs/images/spi_hd_sequence_init.txt create mode 100644 resources/espressif__esp_hosted/docs/images/spi_hd_sequence_read.svg create mode 100644 resources/espressif__esp_hosted/docs/images/spi_hd_sequence_read.txt create mode 100644 resources/espressif__esp_hosted/docs/images/spi_hd_sequence_write.svg create mode 100644 resources/espressif__esp_hosted/docs/images/spi_hd_sequence_write.txt create mode 100644 resources/espressif__esp_hosted/docs/images/spi_hd_timing_2_lines.svg create mode 100644 resources/espressif__esp_hosted/docs/images/spi_hd_timing_2_lines.txt create mode 100644 resources/espressif__esp_hosted/docs/images/spi_hd_timing_4_lines.svg create mode 100644 resources/espressif__esp_hosted/docs/images/spi_hd_timing_4_lines.txt create mode 100644 resources/espressif__esp_hosted/docs/performance_optimization.md create mode 100644 resources/espressif__esp_hosted/docs/sdio.md create mode 100644 resources/espressif__esp_hosted/docs/setup_esp_idf__latest_stable__linux_macos.fish create mode 100644 resources/espressif__esp_hosted/docs/setup_esp_idf__latest_stable__linux_macos.sh create mode 100644 resources/espressif__esp_hosted/docs/shield-box-test-setup.md create mode 100644 resources/espressif__esp_hosted/docs/spi_full_duplex.md create mode 100644 resources/espressif__esp_hosted/docs/spi_half_duplex.md create mode 100644 resources/espressif__esp_hosted/docs/troubleshooting.md create mode 100644 resources/espressif__esp_hosted/docs/uart.md create mode 100644 resources/espressif__esp_hosted/docs/wifi_design.md create mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/CMakeLists.txt create mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/README.md create mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/ble_compatibility_test_case.md create mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/CMakeLists.txt create mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/ble_compatibility_test.c create mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/ble_compatibility_test.h create mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/idf_component.yml create mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/sdkconfig.defaults create mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/CMakeLists.txt create mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/README.md create mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/CMakeLists.txt create mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/Kconfig.projbuild create mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/idf_component.yml create mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/main.c create mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/sdkconfig.defaults create mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_host_only/CMakeLists.txt create mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_host_only/README.md create mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_host_only/main/CMakeLists.txt create mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_host_only/main/idf_component.yml create mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_host_only/main/main.c create mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_host_only/sdkconfig.defaults create mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/CMakeLists.txt create mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/README.md create mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/CMakeLists.txt create mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/Kconfig.projbuild create mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/bleprph.h create mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/gatt_svr.c create mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/idf_component.yml create mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/main.c create mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/uart_driver.c create mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/uart_driver.h create mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/sdkconfig.defaults create mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/tutorial/bleprph_host_only_walkthrough.md create mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/tutorial/hardware_setup.jpg create mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/CMakeLists.txt create mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/README.md create mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/CMakeLists.txt create mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/Kconfig.projbuild create mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/bleprph.h create mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/gatt_svr.c create mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/idf_component.yml create mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/main.c create mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/sdkconfig.defaults create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/CMakeLists.txt create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/ExtractVersion.cmake create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/CMakeLists.txt create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/Kconfig.projbuild create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/app_main.c create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/app_main.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/esp_hosted_header.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/esp_hosted_interface.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/log/esp_hosted_log.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/README.md create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/esp_hosted_rpc.pb-c.c create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/esp_hosted_rpc.pb-c.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/esp_hosted_rpc.proto create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/.commit_docs.sh create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/.gitignore create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/CONTRIBUTING.md create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/ChangeLog create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/Doxyfile.in create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/DoxygenLayout.xml create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/LICENSE create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/Makefile.am create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/README.md create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/TODO create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/autogen.sh create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/build-cmake/.gitignore create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/build-cmake/CMakeLists.txt create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/configure.ac create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/m4/.gitignore create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/m4/ax_check_compile_flag.m4 create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/m4/ax_cxx_compile_stdcxx.m4 create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/m4/code_coverage.m4 create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/m4/ld-version-script.m4 create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/m4/pkg.m4 create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/m4/valgrind-tests.m4 create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protobuf-c/libprotobuf-c.pc.in create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protobuf-c/libprotobuf-c.sym create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protobuf-c/protobuf-c.c create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protobuf-c/protobuf-c.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protobuf-c/protobuf-c.proto create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_bytes_field.cc create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_bytes_field.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_enum.cc create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_enum.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_enum_field.cc create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_enum_field.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_extension.cc create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_extension.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_field.cc create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_field.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_file.cc create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_file.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_generator.cc create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_generator.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_helpers.cc create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_helpers.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_message.cc create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_message.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_message_field.cc create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_message_field.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_primitive_field.cc create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_primitive_field.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_service.cc create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_service.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_string_field.cc create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_string_field.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/main.cc create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/README create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/generated-code/test-generated-code.c create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/generated-code2/common-test-arrays.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/generated-code2/cxx-generate-packed-data.cc create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/generated-code2/test-generated-code2.c create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue204/.gitignore create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue204/issue204.c create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue204/issue204.proto create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue220/.gitignore create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue220/issue220.c create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue220/issue220.proto create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue251/.gitignore create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue251/issue251.c create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue251/issue251.proto create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue330/.gitignore create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue330/issue330.c create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue330/issue330.proto create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue375/.gitignore create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue375/issue375.c create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue375/issue375.proto create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue389/issue389.proto create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue440/.gitignore create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue440/issue440.c create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue440/issue440.proto create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/test-full.proto create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/test-optimized.proto create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/test-proto3.proto create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/test.proto create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/version/version.c create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/rpc/esp_hosted_bitmasks.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/rpc/esp_hosted_rpc.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/transport/esp_hosted_transport.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/transport/esp_hosted_transport_init.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/transport/esp_hosted_transport_spi_hd.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/coprocessor_fw_version.txt create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/interface.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/mempool.c create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/mempool.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/mempool_ll.c create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/mempool_ll.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/protocomm_pserial.c create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/protocomm_pserial.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/sdio_slave_api.c create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/sdio_slave_api.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/slave_bt.c create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/slave_bt.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/slave_bt_uart.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/slave_bt_uart_esp32.c create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/slave_bt_uart_esp32c3_s3.c create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/slave_bt_uart_esp32xx.c create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/slave_control.c create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/slave_control.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/spi_hd_slave_api.c create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/spi_slave_api.c create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/stats.c create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/stats.h create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/uart_slave_api.c create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/partitions.esp32.csv create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/partitions.esp32c2.csv create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/partitions.esp32c5.csv create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/partitions.esp32c6.csv create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/sdkconfig.defaults create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/sdkconfig.defaults.esp32 create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/sdkconfig.defaults.esp32c2 create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/sdkconfig.defaults.esp32c3 create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/sdkconfig.defaults.esp32c5 create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/sdkconfig.defaults.esp32c6 create mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/sdkconfig.defaults.esp32s3 create mode 100644 resources/espressif__esp_hosted/host/api/include/esp_hosted_api_types.h create mode 100644 resources/espressif__esp_hosted/host/api/include/esp_hosted_bt_config.h create mode 100644 resources/espressif__esp_hosted/host/api/include/esp_hosted_config.h create mode 100644 resources/espressif__esp_hosted/host/api/include/esp_hosted_ota.h create mode 100644 resources/espressif__esp_hosted/host/api/include/esp_hosted_transport_config.h create mode 100644 resources/espressif__esp_hosted/host/api/include/esp_hosted_wifi_remote_glue.h create mode 100644 resources/espressif__esp_hosted/host/api/priv/esp_hosted_api_priv.h create mode 100644 resources/espressif__esp_hosted/host/api/src/esp_hosted_api.c create mode 100644 resources/espressif__esp_hosted/host/api/src/esp_wifi_weak.c create mode 100644 resources/espressif__esp_hosted/host/drivers/bt/hci_drv.h create mode 100644 resources/espressif__esp_hosted/host/drivers/bt/hci_stub_drv.c create mode 100644 resources/espressif__esp_hosted/host/drivers/bt/vhci_drv.c create mode 100644 resources/espressif__esp_hosted/host/drivers/mempool/CMakeLists.txt create mode 100644 resources/espressif__esp_hosted/host/drivers/mempool/mempool.c create mode 100644 resources/espressif__esp_hosted/host/drivers/mempool/mempool.h create mode 100644 resources/espressif__esp_hosted/host/drivers/rpc/core/rpc_core.c create mode 100644 resources/espressif__esp_hosted/host/drivers/rpc/core/rpc_core.h create mode 100644 resources/espressif__esp_hosted/host/drivers/rpc/core/rpc_evt.c create mode 100644 resources/espressif__esp_hosted/host/drivers/rpc/core/rpc_req.c create mode 100644 resources/espressif__esp_hosted/host/drivers/rpc/core/rpc_rsp.c create mode 100644 resources/espressif__esp_hosted/host/drivers/rpc/slaveif/rpc_slave_if.c create mode 100644 resources/espressif__esp_hosted/host/drivers/rpc/slaveif/rpc_slave_if.h create mode 100644 resources/espressif__esp_hosted/host/drivers/rpc/wrap/rpc_wrap.c create mode 100644 resources/espressif__esp_hosted/host/drivers/rpc/wrap/rpc_wrap.h create mode 100644 resources/espressif__esp_hosted/host/drivers/serial/serial_drv.c create mode 100644 resources/espressif__esp_hosted/host/drivers/serial/serial_drv.h create mode 100644 resources/espressif__esp_hosted/host/drivers/serial/serial_ll_if.c create mode 100644 resources/espressif__esp_hosted/host/drivers/serial/serial_ll_if.h create mode 100644 resources/espressif__esp_hosted/host/drivers/transport/sdio/sdio_drv.c create mode 100644 resources/espressif__esp_hosted/host/drivers/transport/sdio/sdio_drv.h create mode 100644 resources/espressif__esp_hosted/host/drivers/transport/sdio/sdio_reg.h create mode 100644 resources/espressif__esp_hosted/host/drivers/transport/spi/spi_drv.c create mode 100644 resources/espressif__esp_hosted/host/drivers/transport/spi/spi_drv.h create mode 100644 resources/espressif__esp_hosted/host/drivers/transport/spi_hd/spi_hd_drv.c create mode 100644 resources/espressif__esp_hosted/host/drivers/transport/spi_hd/spi_hd_drv.h create mode 100644 resources/espressif__esp_hosted/host/drivers/transport/transport_drv.c create mode 100644 resources/espressif__esp_hosted/host/drivers/transport/transport_drv.h create mode 100644 resources/espressif__esp_hosted/host/drivers/transport/uart/uart_drv.c create mode 100644 resources/espressif__esp_hosted/host/drivers/virtual_serial_if/serial_if.c create mode 100644 resources/espressif__esp_hosted/host/drivers/virtual_serial_if/serial_if.h create mode 100644 resources/espressif__esp_hosted/host/esp_hosted.h create mode 100644 resources/espressif__esp_hosted/host/esp_hosted_bt.h create mode 100644 resources/espressif__esp_hosted/host/esp_hosted_host_init.c create mode 100644 resources/espressif__esp_hosted/host/hosted_os_abstraction.h create mode 100644 resources/espressif__esp_hosted/host/port/esp/freertos/include/esp_hosted_wifi_config.h create mode 100644 resources/espressif__esp_hosted/host/port/esp/freertos/include/os_header.h create mode 100644 resources/espressif__esp_hosted/host/port/esp/freertos/include/os_wrapper.h create mode 100644 resources/espressif__esp_hosted/host/port/esp/freertos/include/sdio_wrapper.h create mode 100644 resources/espressif__esp_hosted/host/port/esp/freertos/include/spi_hd_wrapper.h create mode 100644 resources/espressif__esp_hosted/host/port/esp/freertos/include/spi_wrapper.h create mode 100644 resources/espressif__esp_hosted/host/port/esp/freertos/include/uart_wrapper.h create mode 100644 resources/espressif__esp_hosted/host/port/esp/freertos/src/esp_hosted_config.c create mode 100644 resources/espressif__esp_hosted/host/port/esp/freertos/src/esp_hosted_ota.c create mode 100644 resources/espressif__esp_hosted/host/port/esp/freertos/src/esp_hosted_transport_config.c create mode 100644 resources/espressif__esp_hosted/host/port/esp/freertos/src/os_wrapper.c create mode 100644 resources/espressif__esp_hosted/host/port/esp/freertos/src/sdio_wrapper.c create mode 100644 resources/espressif__esp_hosted/host/port/esp/freertos/src/spi_hd_wrapper.c create mode 100644 resources/espressif__esp_hosted/host/port/esp/freertos/src/spi_wrapper.c create mode 100644 resources/espressif__esp_hosted/host/port/esp/freertos/src/uart_wrapper.c create mode 100644 resources/espressif__esp_hosted/host/utils/common.c create mode 100644 resources/espressif__esp_hosted/host/utils/common.h create mode 100644 resources/espressif__esp_hosted/host/utils/stats.c create mode 100644 resources/espressif__esp_hosted/host/utils/stats.h create mode 100644 resources/espressif__esp_hosted/host/utils/util.c create mode 100644 resources/espressif__esp_hosted/host/utils/util.h create mode 100644 resources/espressif__esp_hosted/idf_component.yml create mode 100644 resources/espressif__esp_hosted/sdkconfig.rename create mode 100644 resources/espressif__esp_hosted/slave/CMakeLists.txt create mode 100644 resources/espressif__esp_hosted/slave/ExtractVersion.cmake create mode 100644 resources/espressif__esp_hosted/slave/main/CMakeLists.txt create mode 100644 resources/espressif__esp_hosted/slave/main/Kconfig.projbuild create mode 100644 resources/espressif__esp_hosted/slave/main/app_main.c create mode 100644 resources/espressif__esp_hosted/slave/main/app_main.h create mode 100644 resources/espressif__esp_hosted/slave/main/common/esp_hosted_header.h create mode 100644 resources/espressif__esp_hosted/slave/main/common/esp_hosted_interface.h create mode 100644 resources/espressif__esp_hosted/slave/main/common/log/esp_hosted_log.h create mode 100644 resources/espressif__esp_hosted/slave/main/common/proto/README.md create mode 100644 resources/espressif__esp_hosted/slave/main/common/proto/esp_hosted_rpc.pb-c.c create mode 100644 resources/espressif__esp_hosted/slave/main/common/proto/esp_hosted_rpc.pb-c.h create mode 100644 resources/espressif__esp_hosted/slave/main/common/proto/esp_hosted_rpc.proto create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/.commit_docs.sh create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/.gitignore create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/CONTRIBUTING.md create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/ChangeLog create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/Doxyfile.in create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/DoxygenLayout.xml create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/LICENSE create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/Makefile.am create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/README.md create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/TODO create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/autogen.sh create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/build-cmake/.gitignore create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/build-cmake/CMakeLists.txt create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/configure.ac create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/m4/.gitignore create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/m4/ax_check_compile_flag.m4 create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/m4/ax_cxx_compile_stdcxx.m4 create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/m4/code_coverage.m4 create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/m4/ld-version-script.m4 create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/m4/pkg.m4 create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/m4/valgrind-tests.m4 create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protobuf-c/libprotobuf-c.pc.in create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protobuf-c/libprotobuf-c.sym create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protobuf-c/protobuf-c.c create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protobuf-c/protobuf-c.h create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protobuf-c/protobuf-c.proto create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_bytes_field.cc create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_bytes_field.h create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_enum.cc create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_enum.h create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_enum_field.cc create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_enum_field.h create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_extension.cc create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_extension.h create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_field.cc create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_field.h create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_file.cc create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_file.h create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_generator.cc create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_generator.h create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_helpers.cc create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_helpers.h create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_message.cc create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_message.h create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_message_field.cc create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_message_field.h create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_primitive_field.cc create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_primitive_field.h create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_service.cc create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_service.h create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_string_field.cc create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_string_field.h create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/main.cc create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/README create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/generated-code/test-generated-code.c create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/generated-code2/common-test-arrays.h create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/generated-code2/cxx-generate-packed-data.cc create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/generated-code2/test-generated-code2.c create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue204/.gitignore create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue204/issue204.c create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue204/issue204.proto create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue220/.gitignore create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue220/issue220.c create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue220/issue220.proto create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue251/.gitignore create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue251/issue251.c create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue251/issue251.proto create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue330/.gitignore create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue330/issue330.c create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue330/issue330.proto create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue375/.gitignore create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue375/issue375.c create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue375/issue375.proto create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue389/issue389.proto create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue440/.gitignore create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue440/issue440.c create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue440/issue440.proto create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/test-full.proto create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/test-optimized.proto create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/test-proto3.proto create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/test.proto create mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/version/version.c create mode 100644 resources/espressif__esp_hosted/slave/main/common/rpc/esp_hosted_bitmasks.h create mode 100644 resources/espressif__esp_hosted/slave/main/common/rpc/esp_hosted_rpc.h create mode 100644 resources/espressif__esp_hosted/slave/main/common/transport/esp_hosted_transport.h create mode 100644 resources/espressif__esp_hosted/slave/main/common/transport/esp_hosted_transport_init.h create mode 100644 resources/espressif__esp_hosted/slave/main/common/transport/esp_hosted_transport_spi_hd.h create mode 100644 resources/espressif__esp_hosted/slave/main/interface.h create mode 100644 resources/espressif__esp_hosted/slave/main/mempool.c create mode 100644 resources/espressif__esp_hosted/slave/main/mempool.h create mode 100644 resources/espressif__esp_hosted/slave/main/mempool_ll.c create mode 100644 resources/espressif__esp_hosted/slave/main/mempool_ll.h create mode 100644 resources/espressif__esp_hosted/slave/main/protocomm_pserial.c create mode 100644 resources/espressif__esp_hosted/slave/main/protocomm_pserial.h create mode 100644 resources/espressif__esp_hosted/slave/main/sdio_slave_api.c create mode 100644 resources/espressif__esp_hosted/slave/main/sdio_slave_api.h create mode 100644 resources/espressif__esp_hosted/slave/main/slave_bt.c create mode 100644 resources/espressif__esp_hosted/slave/main/slave_bt.h create mode 100644 resources/espressif__esp_hosted/slave/main/slave_bt_uart.h create mode 100644 resources/espressif__esp_hosted/slave/main/slave_bt_uart_esp32.c create mode 100644 resources/espressif__esp_hosted/slave/main/slave_bt_uart_esp32c3_s3.c create mode 100644 resources/espressif__esp_hosted/slave/main/slave_bt_uart_esp32xx.c create mode 100644 resources/espressif__esp_hosted/slave/main/slave_control.c create mode 100644 resources/espressif__esp_hosted/slave/main/slave_control.h create mode 100644 resources/espressif__esp_hosted/slave/main/spi_hd_slave_api.c create mode 100644 resources/espressif__esp_hosted/slave/main/spi_slave_api.c create mode 100644 resources/espressif__esp_hosted/slave/main/stats.c create mode 100644 resources/espressif__esp_hosted/slave/main/stats.h create mode 100644 resources/espressif__esp_hosted/slave/main/uart_slave_api.c create mode 100644 resources/espressif__esp_hosted/slave/partitions.esp32.csv create mode 100644 resources/espressif__esp_hosted/slave/partitions.esp32c2.csv create mode 100644 resources/espressif__esp_hosted/slave/partitions.esp32c5.csv create mode 100644 resources/espressif__esp_hosted/slave/partitions.esp32c6.csv create mode 100644 resources/espressif__esp_hosted/slave/sdkconfig.defaults create mode 100644 resources/espressif__esp_hosted/slave/sdkconfig.defaults.esp32 create mode 100644 resources/espressif__esp_hosted/slave/sdkconfig.defaults.esp32c2 create mode 100644 resources/espressif__esp_hosted/slave/sdkconfig.defaults.esp32c3 create mode 100644 resources/espressif__esp_hosted/slave/sdkconfig.defaults.esp32c5 create mode 100644 resources/espressif__esp_hosted/slave/sdkconfig.defaults.esp32c6 create mode 100644 resources/espressif__esp_hosted/slave/sdkconfig.defaults.esp32s3 diff --git a/Makefile b/Makefile index c9a48b5..bc4cdcc 100644 --- a/Makefile +++ b/Makefile @@ -49,7 +49,7 @@ help: .PHONY: clean clean: @echo "Cleaning build artifacts..." - @-rm -rf release debug .pio/build updater/.pio/build + @-rm -rf release debug .pio/build updater/.pio/build dependencies.lock updater/dependencies.lock managed_components updater/managed_components # Install dependencies .PHONY: deps diff --git a/resources/espressif__esp_hosted/.component_hash b/resources/espressif__esp_hosted/.component_hash new file mode 100644 index 0000000..a5f848f --- /dev/null +++ b/resources/espressif__esp_hosted/.component_hash @@ -0,0 +1 @@ +ba380b52c57e1adfb384591dd8ad85ebc7fce6f990741c403af2ea06c33f3371 \ No newline at end of file diff --git a/resources/espressif__esp_hosted/.editorconfig b/resources/espressif__esp_hosted/.editorconfig new file mode 100644 index 0000000..d394d9d --- /dev/null +++ b/resources/espressif__esp_hosted/.editorconfig @@ -0,0 +1,19 @@ +# EditorConfig helps developers define and maintain consistent +# coding styles between different editors and IDEs +# http://editorconfig.org + +root = true + +# Default configuration for all files +# - tabs for indentation +[*] +indent_style = tab +indent_size = 4 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +# Some Mermaid diagram commands need to end with a trailing whitespace in Markdown files +[*.md] +trim_trailing_whitespace = false diff --git a/resources/espressif__esp_hosted/.gitignore b/resources/espressif__esp_hosted/.gitignore new file mode 100644 index 0000000..6edbbdf --- /dev/null +++ b/resources/espressif__esp_hosted/.gitignore @@ -0,0 +1,7 @@ +build +dependencies.lock +managed_components +sdkconfig +sdkconfig.old +slave/main/coprocessor_fw_version.h +slave/main/coprocessor_fw_version.txt diff --git a/resources/espressif__esp_hosted/.gitlab-ci-override-idf-component.yml b/resources/espressif__esp_hosted/.gitlab-ci-override-idf-component.yml new file mode 100644 index 0000000..54e7717 --- /dev/null +++ b/resources/espressif__esp_hosted/.gitlab-ci-override-idf-component.yml @@ -0,0 +1,5 @@ + espressif/esp_hosted: + version: ">=1.0" + override_path: "${OVERRIDE_PATH}" + rules: + - if: "target in [esp32p4, esp32h2]" diff --git a/resources/espressif__esp_hosted/.gitmodules b/resources/espressif__esp_hosted/.gitmodules new file mode 100644 index 0000000..542fb1d --- /dev/null +++ b/resources/espressif__esp_hosted/.gitmodules @@ -0,0 +1,3 @@ +[submodule "esp_hosted_fg/common/protobuf-c"] + path = common/protobuf-c + url = https://github.com/protobuf-c/protobuf-c.git diff --git a/resources/espressif__esp_hosted/CMakeLists.txt b/resources/espressif__esp_hosted/CMakeLists.txt new file mode 100644 index 0000000..3f79b2f --- /dev/null +++ b/resources/espressif__esp_hosted/CMakeLists.txt @@ -0,0 +1,94 @@ +if(CONFIG_ESP_HOSTED_ENABLED) + message(STATUS "Using Hosted Wi-Fi") + set(FG_root_dir ".") + set(host_dir "${FG_root_dir}/host") + + set(srcs "${host_dir}/esp_hosted_host_init.c" "${host_dir}/api/src/esp_wifi_weak.c" "${host_dir}/api/src/esp_hosted_api.c" "${host_dir}/drivers/transport/transport_drv.c" "${host_dir}/drivers/serial/serial_ll_if.c" "${host_dir}/utils/common.c" "${host_dir}/utils/util.c" "${host_dir}/utils/stats.c" "${host_dir}/drivers/serial/serial_drv.c") + + # only these directories are public. Others are private + set(pub_include "${host_dir}" "${host_dir}/api/include") + + set(priv_include "${host_dir}/drivers/transport" "${host_dir}/drivers/transport/spi" "${host_dir}/drivers/transport/sdio" "${host_dir}/drivers/serial" "${host_dir}/utils" "${host_dir}/api/priv") + + # rpc files - wrap -> slaveif -> core + set(rpc_dir "${host_dir}/drivers/rpc") + set(rpc_core_dir "${rpc_dir}/core") + set(rpc_slaveif_dir "${rpc_dir}/slaveif") + set(rpc_wrap_dir "${rpc_dir}/wrap") + list(APPEND srcs "${rpc_core_dir}/rpc_core.c" "${rpc_core_dir}/rpc_req.c" "${rpc_core_dir}/rpc_rsp.c" "${rpc_core_dir}/rpc_evt.c" + "${rpc_slaveif_dir}/rpc_slave_if.c" + "${rpc_wrap_dir}/rpc_wrap.c") + list(APPEND priv_include "${rpc_core_dir}" "${rpc_slaveif_dir}" "${rpc_wrap_dir}") + + # virtual serial + set(virt_serial_dir "${host_dir}/drivers/virtual_serial_if") + list(APPEND srcs "${virt_serial_dir}/serial_if.c") + list(APPEND priv_include "${virt_serial_dir}") + + # mempool + list(APPEND srcs "${host_dir}/drivers/mempool/mempool.c") + list(APPEND priv_include "${host_dir}/drivers/mempool" ) + + # slave and host common files + set(common_dir "${FG_root_dir}/common") + list(APPEND srcs "${common_dir}/protobuf-c/protobuf-c/protobuf-c.c" "${common_dir}/proto/esp_hosted_rpc.pb-c.c" ) + list(APPEND priv_include "${common_dir}" "${common_dir}/log" "${common_dir}/rpc" "${common_dir}/transport" "${common_dir}/protobuf-c" "${common_dir}/proto" ) + + # host ESP32 specific files + list(APPEND srcs "${host_dir}/port/esp/freertos/src/esp_hosted_ota.c") + + # bt (NimBLE) + ### TODO config for HCI over UART + list(APPEND priv_include "${host_dir}/drivers/bt") + if(CONFIG_ESP_HOSTED_NIMBLE_HCI_VHCI OR CONFIG_ESP_HOSTED_BLUEDROID_HCI_VHCI) + list(APPEND srcs "${host_dir}/drivers/bt/vhci_drv.c") + else() + list(APPEND srcs "${host_dir}/drivers/bt/hci_stub_drv.c") + endif() + + # transport files + if(CONFIG_ESP_HOSTED_SDIO_HOST_INTERFACE) + list(APPEND srcs "${host_dir}/drivers/transport/sdio/sdio_drv.c") + elseif(CONFIG_ESP_HOSTED_SPI_HD_HOST_INTERFACE) + list(APPEND srcs "${host_dir}/drivers/transport/spi_hd/spi_hd_drv.c") + elseif(CONFIG_ESP_HOSTED_SPI_HOST_INTERFACE) + list(APPEND srcs "${host_dir}/drivers/transport/spi/spi_drv.c") + elseif(CONFIG_ESP_HOSTED_UART_HOST_INTERFACE) + list(APPEND srcs "${host_dir}/drivers/transport/uart/uart_drv.c") + endif() + + # config files + list(APPEND priv_include "${host_dir}/port/esp/freertos/include") + list(APPEND srcs "${host_dir}/port/esp/freertos/src/esp_hosted_config.c" "${host_dir}/port/esp/freertos/src/esp_hosted_transport_config.c") + + # transport port files + list(APPEND srcs "${host_dir}/port/esp/freertos/src/os_wrapper.c") + if(CONFIG_ESP_HOSTED_SDIO_HOST_INTERFACE) + list(APPEND srcs "${host_dir}/port/esp/freertos/src/sdio_wrapper.c") + elseif(CONFIG_ESP_HOSTED_SPI_HD_HOST_INTERFACE) + list(APPEND srcs "${host_dir}/port/esp/freertos/src/spi_hd_wrapper.c") + elseif(CONFIG_ESP_HOSTED_SPI_HOST_INTERFACE) + list(APPEND srcs "${host_dir}/port/esp/freertos/src/spi_wrapper.c") + elseif(CONFIG_ESP_HOSTED_UART_HOST_INTERFACE) + list(APPEND srcs "${host_dir}/port/esp/freertos/src/uart_wrapper.c") + endif() + +endif() + +idf_component_register(SRCS ${srcs} + PRIV_REQUIRES soc esp_event esp_netif esp_timer driver esp_wifi bt esp_http_client + INCLUDE_DIRS ${pub_include} + PRIV_INCLUDE_DIRS ${priv_include}) + +idf_component_set_property(${COMPONENT_NAME} WHOLE_ARCHIVE TRUE) + +if(CONFIG_ESP_HOSTED_SDIO_HOST_INTERFACE) + idf_component_optional_requires(PRIVATE sdmmc) +endif() + +# Required if using ESP-IDF without commit 6b6065de509b5de39e4655fd425bf96f43b365f7: +# fix(driver_spi): fix p4 cache auto writeback during spi(dma) rx +# if(CONFIG_IDF_TARGET_ESP32P4 AND (CONFIG_ESP_HOSTED_SPI_HOST_INTERFACE OR CONFIG_ESP_HOSTED_SPI_HD_HOST_INTERFACE)) +# # used to workaround SPI transfer issue +# idf_component_optional_requires(PRIVATE esp_mm) +# endif() diff --git a/resources/espressif__esp_hosted/Kconfig b/resources/espressif__esp_hosted/Kconfig new file mode 100644 index 0000000..929e356 --- /dev/null +++ b/resources/espressif__esp_hosted/Kconfig @@ -0,0 +1,1356 @@ +config ESP_HOSTED_ENABLED + bool + default y if ESP_WIFI_REMOTE_ENABLED && ESP_WIFI_REMOTE_LIBRARY_HOSTED + default n + +menu "ESP-Hosted config" + depends on ESP_HOSTED_ENABLED + + # Co-processor selection done in Wi-Fi Remote Component + comment "ESP32 is Slave Target from Wi-Fi Remote Component" + depends on SLAVE_IDF_TARGET_ESP32 + comment "ESP32-S2 is Slave Target from Wi-Fi Remote Component" + depends on SLAVE_IDF_TARGET_ESP32S2 + comment "ESP32-S3 is Slave Target from Wi-Fi Remote Component" + depends on SLAVE_IDF_TARGET_ESP32S3 + comment "ESP32-C2 is Slave Target from Wi-Fi Remote Component" + depends on SLAVE_IDF_TARGET_ESP32C2 + comment "ESP32-C3 is Slave Target from Wi-Fi Remote Component" + depends on SLAVE_IDF_TARGET_ESP32C3 + comment "ESP32-C6 is Slave Target from Wi-Fi Remote Component" + depends on SLAVE_IDF_TARGET_ESP32C6 + comment "ESP32-C5 is Slave Target from Wi-Fi Remote Component" + depends on SLAVE_IDF_TARGET_ESP32C5 + comment "ESP32-C61 is Slave Target from Wi-Fi Remote Component" + depends on SLAVE_IDF_TARGET_ESP32C61 + + # y if SDIO Transport is available, based on host and slave selection + config ESP_HOSTED_PRIV_SDIO_OPTION + bool + default y if (IDF_TARGET_ESP32 || IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32P4) && (SLAVE_IDF_TARGET_ESP32 || SLAVE_IDF_TARGET_ESP32C6 || SLAVE_IDF_TARGET_ESP32C5) + default n + + # y if SPI HD Transport is available, based on host and slave selection + config ESP_HOSTED_PRIV_SPI_HD_OPTION + bool + default n if (IDF_TARGET_ESP32 || SLAVE_IDF_TARGET_ESP32) + default y + + choice ESP_HOSTED_HOST_INTERFACE + bool "Transport layer" + default ESP_HOSTED_SDIO_HOST_INTERFACE if ESP_HOSTED_PRIV_SDIO_OPTION + default ESP_HOSTED_SPI_HOST_INTERFACE + help + Bus interface to be used for communication with the host + + config ESP_HOSTED_SPI_HOST_INTERFACE + bool "SPI Full-duplex" + help + Enable/Disable SPI Full-duplex host interface + + config ESP_HOSTED_SDIO_HOST_INTERFACE + depends on ESP_HOSTED_PRIV_SDIO_OPTION + bool "SDIO" + help + Enable/Disable SDIO host interface + + # SPI Half Duplex is not supported in ESP32 + config ESP_HOSTED_SPI_HD_HOST_INTERFACE + depends on ESP_HOSTED_PRIV_SPI_HD_OPTION + bool "SPI Half-duplex" + help + Enable/Disable SPI Half-duplex host interface + + config ESP_HOSTED_UART_HOST_INTERFACE + bool "UART" + help + Enable/Disable UART host interface + endchoice + + config ESP_HOSTED_IDF_SLAVE_TARGET + string + default "esp32" if SLAVE_IDF_TARGET_ESP32 + default "esp32s2" if SLAVE_IDF_TARGET_ESP32S2 + default "esp32s3" if SLAVE_IDF_TARGET_ESP32S3 + default "esp32c2" if SLAVE_IDF_TARGET_ESP32C2 + default "esp32c3" if SLAVE_IDF_TARGET_ESP32C3 + default "esp32c6" if SLAVE_IDF_TARGET_ESP32C6 + default "esp32c5" if SLAVE_IDF_TARGET_ESP32C5 + default "invalid" + + menu "SPI Configuration" + depends on ESP_HOSTED_SPI_HOST_INTERFACE + + choice ESP_HOSTED_SPI_PRIV_MODE_ESP32 + depends on SLAVE_IDF_TARGET_ESP32 + bool "Host SPI mode" + default ESP_HOSTED_SPI_PRIV_MODE_2_ESP32 + + config ESP_HOSTED_SPI_PRIV_MODE_0_ESP32 + bool "Host SPI mode 0" + + config ESP_HOSTED_SPI_PRIV_MODE_1_ESP32 + bool "Host SPI mode 1" + + config ESP_HOSTED_SPI_PRIV_MODE_2_ESP32 + bool "Host SPI mode 2" + + config ESP_HOSTED_SPI_PRIV_MODE_3_ESP32 + bool "Host SPI mode 3" + endchoice + + choice ESP_HOSTED_SPI_PRIV_MODE_ESP32XX + depends on !SLAVE_IDF_TARGET_ESP32 + bool "Host SPI mode" + default ESP_HOSTED_SPI_PRIV_MODE_3_ESP32XX + + config ESP_HOSTED_SPI_PRIV_MODE_0_ESP32XX + bool "Host SPI mode 0" + + config ESP_HOSTED_SPI_PRIV_MODE_1_ESP32XX + bool "Host SPI mode 1" + + config ESP_HOSTED_SPI_PRIV_MODE_2_ESP32XX + bool "Host SPI mode 2" + + config ESP_HOSTED_SPI_PRIV_MODE_3_ESP32XX + bool "Host SPI mode 3" + endchoice + + config ESP_HOSTED_SPI_MODE + int + default 0 if ESP_HOSTED_SPI_PRIV_MODE_0_ESP32 + default 1 if ESP_HOSTED_SPI_PRIV_MODE_1_ESP32 + default 2 if ESP_HOSTED_SPI_PRIV_MODE_2_ESP32 + default 3 if ESP_HOSTED_SPI_PRIV_MODE_3_ESP32 + default 0 if ESP_HOSTED_SPI_PRIV_MODE_0_ESP32XX + default 1 if ESP_HOSTED_SPI_PRIV_MODE_1_ESP32XX + default 2 if ESP_HOSTED_SPI_PRIV_MODE_2_ESP32XX + default 3 if ESP_HOSTED_SPI_PRIV_MODE_3_ESP32XX + + choice ESP_HOSTED_SPI_CONTROLLER + bool "Host SPI controller to use" + default ESP_HOSTED_SPI_HSPI + + config ESP_HOSTED_SPI_HSPI + bool "HSPI/FSPI" + help + "HSPI/FSPI: SPI_controller_1" + + config ESP_HOSTED_SPI_VSPI + depends on IDF_TARGET_ESP32 + bool "VSPI" + help + "VSPI: SPI_controller_2" + + endchoice + + config ESP_HOSTED_SPI_CONTROLLER + int + default 2 if ESP_HOSTED_SPI_VSPI + default 1 + + menu "Host SPI GPIOs Config" + + choice ESP_HOSTED_SPI_HANDSHAKE_GPIO_CONFIG + bool "Handshake GPIO Config" + default ESP_HOSTED_HS_ACTIVE_HIGH + + config ESP_HOSTED_HS_ACTIVE_HIGH + bool "HS: Active High" + config ESP_HOSTED_HS_ACTIVE_LOW + bool "HS: Active Low" + endchoice + + choice ESP_HOSTED_SPI_DATAREADY__GPIO_CONFIG + bool "DataReady GPIO Config" + default ESP_HOSTED_DR_ACTIVE_HIGH + + config ESP_HOSTED_DR_ACTIVE_HIGH + bool "DR: Active High" + config ESP_HOSTED_DR_ACTIVE_LOW + bool "DR: Active Low" + endchoice + + choice ESP_HOSTED_SPI_RESET_GPIO_CONFIG + bool "Reset GPIO Config" + default ESP_HOSTED_SPI_RESET_ACTIVE_HIGH + help + "If Active High, High->Low->High will trigger reset (Low will trigger reset) + If Active Low, Low->High->Low will trigger reset (High will trigger reset)" + + config ESP_HOSTED_SPI_RESET_ACTIVE_HIGH + bool "RESET: Active High" + config ESP_HOSTED_SPI_RESET_ACTIVE_LOW + bool "RESET: Active Low" + endchoice + + config ESP_HOSTED_SPI_HSPI_GPIO_MOSI + depends on ESP_HOSTED_SPI_HSPI + int "GPIO pin for Host MOSI" + default 14 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 + default 23 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 + default 13 if IDF_TARGET_ESP32 + default 11 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 + default 5 if IDF_TARGET_ESP32H2 + default 7 + help + SPI controller Host MOSI + + config ESP_HOSTED_SPI_HSPI_GPIO_MISO + depends on ESP_HOSTED_SPI_HSPI + int "GPIO pin for Host MISO" + default 15 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 + default 22 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 + default 12 if IDF_TARGET_ESP32 + default 13 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 + default 0 if IDF_TARGET_ESP32H2 + default 2 + help + SPI controller Host MISO + + config ESP_HOSTED_SPI_HSPI_GPIO_CLK + depends on ESP_HOSTED_SPI_HSPI + int "GPIO pin for Host CLK" + default 18 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 + default 33 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 + default 14 if IDF_TARGET_ESP32 + default 12 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 + default 4 if IDF_TARGET_ESP32H2 + default 6 + help + SPI controller Host CLK + + config ESP_HOSTED_SPI_HSPI_GPIO_CS + depends on ESP_HOSTED_SPI_HSPI + int "GPIO pin for Host CS" + default 19 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 + default 4 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 + default 15 if IDF_TARGET_ESP32 + default 10 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 + default 1 if IDF_TARGET_ESP32H2 + default 10 + help + SPI controller Host CS + + config ESP_HOSTED_SPI_VSPI_GPIO_MOSI + depends on ESP_HOSTED_SPI_VSPI + int "GPIO pin for Host MOSI" + default 23 + help + SPI controller Host MOSI + + config ESP_HOSTED_SPI_VSPI_GPIO_MISO + depends on ESP_HOSTED_SPI_VSPI + int "GPIO pin for Host MISO" + default 19 + help + SPI controller Host MISO + + config ESP_HOSTED_SPI_VSPI_GPIO_CLK + depends on ESP_HOSTED_SPI_VSPI + int "GPIO pin for Host CLK" + default 18 + help + SPI controller Host CLK + + config ESP_HOSTED_SPI_VSPI_GPIO_CS + depends on ESP_HOSTED_SPI_VSPI + int "GPIO pin for Host CS" + default 5 + help + SPI controller Host CS + + config ESP_HOSTED_SPI_GPIO_MOSI + int + default ESP_HOSTED_SPI_VSPI_GPIO_MOSI if ESP_HOSTED_SPI_VSPI + default ESP_HOSTED_SPI_HSPI_GPIO_MOSI + + config ESP_HOSTED_SPI_GPIO_MISO + int + default ESP_HOSTED_SPI_VSPI_GPIO_MISO if ESP_HOSTED_SPI_VSPI + default ESP_HOSTED_SPI_HSPI_GPIO_MISO + + config ESP_HOSTED_SPI_GPIO_CLK + int + default ESP_HOSTED_SPI_VSPI_GPIO_CLK if ESP_HOSTED_SPI_VSPI + default ESP_HOSTED_SPI_HSPI_GPIO_CLK + + config ESP_HOSTED_SPI_GPIO_CS + int + default ESP_HOSTED_SPI_VSPI_GPIO_CS if ESP_HOSTED_SPI_VSPI + default ESP_HOSTED_SPI_HSPI_GPIO_CS + + config ESP_HOSTED_SPI_GPIO_HANDSHAKE + int "GPIO pin for handshake" + default 16 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 + default 21 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 + default 3 if IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C6 + default 17 if IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32S2 + default 22 if IDF_TARGET_ESP32H2 + default 26 + help + GPIO pin to use for handshake with other spi controller + + config ESP_HOSTED_SPI_GPIO_DATA_READY + int "GPIO pin for data ready interrupt" + default 17 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 + default 32 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 + default 12 if IDF_TARGET_ESP32H2 + default 4 + help + GPIO pin for indicating host that SPI slave has data to be read by host + + config ESP_HOSTED_SPI_GPIO_RESET_SLAVE + int "GPIO pin for Reseting slave ESP" + default 54 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 + default 53 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 + default 10 if IDF_TARGET_ESP32H2 + default 5 + help + GPIO pin for Resetting ESP SPI slave device. Should be connected to RST/EN of ESP SPI slave device. + endmenu + +ESP32XX_SPI_CLK_FREQ_RANGE_MIN := 1 +ESP32_SPI_CLK_FREQ_RANGE_MAX := 10 +ESP32C6_SPI_CLK_FREQ_RANGE_MAX := 40 +ESP32XX_SPI_CLK_FREQ_RANGE_MAX := 40 + + config ESP_HOSTED_SPI_FREQ_ESP32 + depends on SLAVE_IDF_TARGET_ESP32 + int "SPI Clock Freq (MHz)" + default 10 + range $(ESP32XX_SPI_CLK_FREQ_RANGE_MIN) $(ESP32_SPI_CLK_FREQ_RANGE_MAX) + help + "Optimize SPI CLK by increasing till host practically can support" + + config ESP_HOSTED_SPI_FREQ_ESP32C6 + depends on SLAVE_IDF_TARGET_ESP32C6 + int "SPI Clock Freq (MHz)" + default 40 if IDF_TARGET_ESP32P4 #config for ESP32-P4 Function_EV_Board + default 26 + range $(ESP32XX_SPI_CLK_FREQ_RANGE_MIN) $(ESP32C6_SPI_CLK_FREQ_RANGE_MAX) + help + "Optimize SPI CLK by increasing till host practically can support" + + config ESP_HOSTED_SPI_FREQ_ESP32XX + depends on SLAVE_IDF_TARGET_ESP32C2 || SLAVE_IDF_TARGET_ESP32C3 || SLAVE_IDF_TARGET_ESP32S2 || SLAVE_IDF_TARGET_ESP32S3 || SLAVE_IDF_TARGET_ESP32C5 + int "SPI Clock Freq" + default 40 if SLAVE_IDF_TARGET_ESP32C2 || SLAVE_IDF_TARGET_ESP32C3 || SLAVE_IDF_TARGET_ESP32S2 || SLAVE_IDF_TARGET_ESP32S3 || SLAVE_IDF_TARGET_ESP32C5 + range $(ESP32XX_SPI_CLK_FREQ_RANGE_MIN) $(ESP32XX_SPI_CLK_FREQ_RANGE_MAX) + help + "Optimize SPI CLK by increasing till host practically can support" + + config ESP_HOSTED_SPI_CLK_FREQ + int + default ESP_HOSTED_SPI_FREQ_ESP32 if SLAVE_IDF_TARGET_ESP32 + default ESP_HOSTED_SPI_FREQ_ESP32C6 if SLAVE_IDF_TARGET_ESP32C6 + default ESP_HOSTED_SPI_FREQ_ESP32XX if SLAVE_IDF_TARGET_ESP32C2 || SLAVE_IDF_TARGET_ESP32C3 || SLAVE_IDF_TARGET_ESP32S2 || SLAVE_IDF_TARGET_ESP32S3 || SLAVE_IDF_TARGET_ESP32C5 + help + "Optimize SPI CLK by increasing till host practically can support" + + config ESP_HOSTED_SPI_TX_Q_SIZE + int "ESP to Host SPI queue size" + default 20 + help + Very small tx queue will lower ESP -- SPI --> Host data rate + + config ESP_HOSTED_SPI_RX_Q_SIZE + int "Host to ESP SPI queue size" + default 20 + help + Very small RX queue will lower ESP <-- SPI -- Host data rate + + endmenu + + menu "Hosted SDIO Configuration" + depends on ESP_HOSTED_SDIO_HOST_INTERFACE + + choice ESP_HOSTED_SDIO_RESET_GPIO_CONFIG + bool "RESET GPIO Config" + default ESP_HOSTED_SDIO_RESET_ACTIVE_HIGH + help + "If Active High, High->Low->High will trigger reset (Low will trigger reset) + If Active Low, Low->High->Low will trigger reset (High will trigger reset)" + + config ESP_HOSTED_SDIO_RESET_ACTIVE_HIGH + bool "RESET: Active High" + config ESP_HOSTED_SDIO_RESET_ACTIVE_LOW + bool "RESET: Active Low" + endchoice + + choice ESP_HOSTED_SDIO_RX_OPTIMIZATION + bool "SDIO Receive Optimization" + default ESP_HOSTED_SDIO_OPTIMIZATION_RX_STREAMING_MODE + + config ESP_HOSTED_SDIO_OPTIMIZATION_RX_NONE + bool "No optimization" + help + Use SDIO as is, with no optimizations. + + config ESP_HOSTED_SDIO_OPTIMIZATION_RX_MAX_SIZE + bool "Always Rx Max Packet size" + help + Always read max Rx Packet Size (512 * 3 bytes). This saves one SDIO + transaction (get Rx Packet Size) when reading data from slave by + always transferring a fixed amount of data. Extra data at end of valid + packet data is discarded. + + config ESP_HOSTED_SDIO_OPTIMIZATION_RX_STREAMING_MODE + bool "Use Streaming Mode" + help + Receive a stream of queued data from the slave, made up of one or more + packets of data. Host extracts packets from the stream. This improves + SDIO read performance by doing one large read transaction instead of + many smaller read transactions for each packet. + (Note: requires slave to support streaming mode.) + + endchoice + + choice + prompt "SDIO Slot To Use" + default ESP_HOSTED_SDIO_SLOT_1 + help + On the ESP32-P4 EV Board: + - Slot 0 connects to the MicroSD Card slot + - Slot 1 connects to the on-board ESP32-C6 + For the ESP32, Slot 0 is usually occupied by SPI Flash and not usable for SDIO. + For the ESP32-P4, Slot 0 is IOMUXed and GPIO values cannot be changed + + config ESP_HOSTED_SDIO_SLOT_0 + depends on IDF_TARGET_ESP32P4 || IDF_TARGET_ESP32S3 + bool "Slot 0" + + config ESP_HOSTED_SDIO_SLOT_1 + bool "Slot 1" + endchoice + + config ESP_HOSTED_SDIO_SLOT + int + default 0 if ESP_HOSTED_SDIO_SLOT_0 + default 1 if ESP_HOSTED_SDIO_SLOT_1 + + config ESP_HOSTED_SD_PWR_CTRL_LDO_INTERNAL_IO + depends on SOC_SDMMC_IO_POWER_EXTERNAL + bool "SDIO power supply comes from internal LDO IO (READ HELP!)" + default n + help + Only needed when the SDIO module is connected to specific IO pins which can be used for high-speed SDIO. + Please read the schematic first and check if the SD VDD is connected to any internal LDO output. + Unselect this option if the SDIO is powered by an external power supply. + For ESP32-P4 EV Board, SDMMC slot 0 may require internal LDO output. + + config ESP_HOSTED_SD_PWR_CTRL_LDO_IO_ID + depends on SOC_SDMMC_IO_POWER_EXTERNAL && ESP_HOSTED_SD_PWR_CTRL_LDO_INTERNAL_IO + int "LDO ID" + default 4 if IDF_TARGET_ESP32P4 + help + Please check your schematic first and input your LDO ID. + + choice + prompt "SDIO Bus Width" + default ESP_HOSTED_SDIO_4_BIT_BUS + help + Select the SDIO Bus Width to use + + config ESP_HOSTED_SDIO_4_BIT_BUS + bool "4 Bits" + + config ESP_HOSTED_SDIO_1_BIT_BUS + bool "1 Bit" + endchoice + + config ESP_HOSTED_SDIO_BUS_WIDTH + int + default 1 if ESP_HOSTED_SDIO_1_BIT_BUS + default 4 + +ESP32_SDIO_CLK_FREQ_KHZ_RANGE_MIN := 400 +ESP32_SDIO_CLK_FREQ_KHZ_RANGE_MAX := 40000 +ESP32XX_SDIO_CLK_FREQ_KHZ_RANGE_MIN := 400 +ESP32XX_SDIO_CLK_FREQ_KHZ_RANGE_MAX := 50000 + + config ESP_HOSTED_SDIO_CLOCK_FREQ_KHZ + int "SDIO Clock Freq (in kHz)" + default 40000 + range $(ESP32_SDIO_CLK_FREQ_KHZ_RANGE_MIN) $(ESP32_SDIO_CLK_FREQ_KHZ_RANGE_MAX) if IDF_TARGET_ESP32 + range $(ESP32XX_SDIO_CLK_FREQ_KHZ_RANGE_MIN) $(ESP32XX_SDIO_CLK_FREQ_KHZ_RANGE_MAX) if IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32P4 + help + "Optimize SDIO CLK by increasing till host practically can support. Clock frequency for ESP32-P4 as host <= 40MHz" + + config ESP_HOSTED_CUSTOM_SDIO_PINS + bool "Use custom SDIO GPIO pins" + default n + help + Enable this to use custom GPIO pins for SDIO on ESP32-P4 and ESP32-S3. + ESP32 has fixed GPIOs for SDIO host (Do not use custom GPIOs) + ESP32-P4 slot 0 is fixed GPIOs for SDIO host (Do not use custom GPIOs) + ESP32-P4 slot 1, ESP32-S3 slot 0/1 is flexible GPIOs for SDIO host (Flexible GPIOs) + + config ESP_HOSTED_SDIO_CMD_GPIO_RANGE_MIN + int + default 4 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 + default 19 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 + default 15 if IDF_TARGET_ESP32 + default 0 + + config ESP_HOSTED_SDIO_CMD_GPIO_RANGE_MAX + int + default 4 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 + default 19 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 + default 15 if IDF_TARGET_ESP32 + default 100 + + config ESP_HOSTED_SDIO_CLK_GPIO_RANGE_MIN + int + default 33 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 + default 18 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 + default 14 if IDF_TARGET_ESP32 + default 0 + + config ESP_HOSTED_SDIO_CLK_GPIO_RANGE_MAX + int + default 33 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 + default 18 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 + default 14 if IDF_TARGET_ESP32 + default 100 + + config ESP_HOSTED_SDIO_D0_GPIO_RANGE_MIN + int + default 20 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 + default 14 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 + default 2 if IDF_TARGET_ESP32 + default 0 + + config ESP_HOSTED_SDIO_D0_GPIO_RANGE_MAX + int + default 20 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 + default 14 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 + default 2 if IDF_TARGET_ESP32 + default 100 + + config ESP_HOSTED_SDIO_D1_GPIO_RANGE_MIN + int + default 23 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 + default 15 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 + default 4 if IDF_TARGET_ESP32 + default 0 + + config ESP_HOSTED_SDIO_D1_GPIO_RANGE_MAX + int + default 23 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 + default 15 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 + default 4 if IDF_TARGET_ESP32 + default 100 + + config ESP_HOSTED_SDIO_D2_GPIO_RANGE_MIN + int + default 21 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 + default 16 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 + default 12 if IDF_TARGET_ESP32 + default 0 + + config ESP_HOSTED_SDIO_D2_GPIO_RANGE_MAX + int + default 21 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 + default 16 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 + default 12 if IDF_TARGET_ESP32 + default 100 + + config ESP_HOSTED_SDIO_D3_GPIO_RANGE_MIN + int + default 22 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 + default 17 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 + default 13 if IDF_TARGET_ESP32 + default 0 + + config ESP_HOSTED_SDIO_D3_GPIO_RANGE_MAX + int + default 22 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 + default 17 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 + default 13 if IDF_TARGET_ESP32 + default 100 + + config ESP_HOSTED_SDIO_RESET_SLAVE_GPIO_MIN + int + default 53 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 + default 54 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 + default 42 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32S3 + default 5 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32 + default 0 + help + GPIO pin for Resetting ESP SDIO slave device. Should be connected to RST/EN of ESP SDIO slave device. + + config ESP_HOSTED_SDIO_RESET_SLAVE_GPIO_MAX + int + default 53 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 + default 54 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 + default 42 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32S3 + default 5 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32 + default 100 + +### *START* GPIO SDIO pin configurations for Slot 0 and 1 + config ESP_HOSTED_PRIV_SDIO_PIN_CMD_SLOT_0 + depends on ESP_HOSTED_SDIO_SLOT_0 + int "CMD GPIO number" + default 47 if IDF_TARGET_ESP32S3 + range 44 44 if IDF_TARGET_ESP32P4 + range 15 15 if IDF_TARGET_ESP32 + help + "Value can only be configured for some targets. Displayed always for reference." + + config ESP_HOSTED_PRIV_SDIO_PIN_CMD_SLOT_1 + depends on ESP_HOSTED_SDIO_SLOT_1 + int "CMD GPIO number" + default 47 if IDF_TARGET_ESP32S3 + default 4 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 + default 19 if IDF_TARGET_ESP32P4 + default 15 if IDF_TARGET_ESP32 + range ESP_HOSTED_SDIO_CMD_GPIO_RANGE_MIN ESP_HOSTED_SDIO_CMD_GPIO_RANGE_MAX + help + CMD GPIO pin for SDIO. Range enforced dynamically based on slave target to ensure IOMUX compliance. + Enable 'Use custom SDIO GPIO pins' to disable range restrictions. + + config ESP_HOSTED_PRIV_SDIO_PIN_CLK_SLOT_0 + depends on ESP_HOSTED_SDIO_SLOT_0 + int "CLK GPIO number" + default 19 if IDF_TARGET_ESP32S3 + range 43 43 if IDF_TARGET_ESP32P4 + range 14 14 if IDF_TARGET_ESP32 + help + "Value can only be configured for some targets. Displayed always for reference." + + config ESP_HOSTED_PRIV_SDIO_PIN_CLK_SLOT_1 + depends on ESP_HOSTED_SDIO_SLOT_1 + int "CLK GPIO number" + default 19 if IDF_TARGET_ESP32S3 + default 33 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 + default 18 if IDF_TARGET_ESP32P4 + default 14 if IDF_TARGET_ESP32 + range ESP_HOSTED_SDIO_CLK_GPIO_RANGE_MIN ESP_HOSTED_SDIO_CLK_GPIO_RANGE_MAX + help + CLK GPIO pin for SDIO. Range enforced dynamically based on slave target to ensure IOMUX compliance. + Enable 'Use custom SDIO GPIO pins' to disable range restrictions. + + config ESP_HOSTED_PRIV_SDIO_PIN_D0_SLOT_0 + depends on ESP_HOSTED_SDIO_SLOT_0 + int "D0 GPIO number" + default 13 if IDF_TARGET_ESP32S3 + range 39 39 if IDF_TARGET_ESP32P4 + range 2 2 if IDF_TARGET_ESP32 + help + "Value can only be configured for some targets. Displayed always for reference." + + config ESP_HOSTED_PRIV_SDIO_PIN_D0_SLOT_1 + depends on ESP_HOSTED_SDIO_SLOT_1 + int "D0 GPIO number" + default 13 if IDF_TARGET_ESP32S3 + default 20 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 + default 14 if IDF_TARGET_ESP32P4 + default 2 if IDF_TARGET_ESP32 + range ESP_HOSTED_SDIO_D0_GPIO_RANGE_MIN ESP_HOSTED_SDIO_D0_GPIO_RANGE_MAX + help + D0 GPIO pin for SDIO. Range enforced dynamically based on slave target to ensure IOMUX compliance. + Enable 'Use custom SDIO GPIO pins' to disable range restrictions. + + if ESP_HOSTED_SDIO_4_BIT_BUS + config ESP_HOSTED_PRIV_SDIO_PIN_D1_4BIT_BUS_SLOT_0 + depends on ESP_HOSTED_SDIO_SLOT_0 + int "D1 GPIO number" + default 35 if IDF_TARGET_ESP32S3 + range 40 40 if IDF_TARGET_ESP32P4 + range 4 4 if IDF_TARGET_ESP32 + help + "Value can only be configured for some targets. Displayed always for reference." + + config ESP_HOSTED_PRIV_SDIO_PIN_D1_4BIT_BUS_SLOT_1 + depends on ESP_HOSTED_SDIO_SLOT_1 + int "D1 GPIO number" + default 35 if IDF_TARGET_ESP32S3 + default 23 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 + default 15 if IDF_TARGET_ESP32P4 + default 4 if IDF_TARGET_ESP32 + range ESP_HOSTED_SDIO_D1_GPIO_RANGE_MIN ESP_HOSTED_SDIO_D1_GPIO_RANGE_MAX + help + D1 GPIO pin for SDIO. Range enforced dynamically based on slave target to ensure IOMUX compliance. + Enable 'Use custom SDIO GPIO pins' to disable range restrictions. + + config ESP_HOSTED_PRIV_SDIO_PIN_D2_4BIT_BUS_SLOT_0 + depends on ESP_HOSTED_SDIO_SLOT_0 + int "D2 GPIO number" + default 20 if IDF_TARGET_ESP32S3 + range 41 41 if IDF_TARGET_ESP32P4 + range 12 12 if IDF_TARGET_ESP32 + help + "Value can only be configured for some targets. Displayed always for reference." + + config ESP_HOSTED_PRIV_SDIO_PIN_D2_4BIT_BUS_SLOT_1 + depends on ESP_HOSTED_SDIO_SLOT_1 + int "D2 GPIO number" + default 20 if IDF_TARGET_ESP32S3 + default 21 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 + default 16 if IDF_TARGET_ESP32P4 + default 12 if IDF_TARGET_ESP32 + range ESP_HOSTED_SDIO_D2_GPIO_RANGE_MIN ESP_HOSTED_SDIO_D2_GPIO_RANGE_MAX + help + D2 GPIO pin for SDIO. Range enforced dynamically based on slave target to ensure IOMUX compliance. + Enable 'Use custom SDIO GPIO pins' to disable range restrictions. + + config ESP_HOSTED_PRIV_SDIO_PIN_D3_4BIT_BUS_SLOT_0 + depends on ESP_HOSTED_SDIO_SLOT_0 + int "D3 GPIO number" + default 9 if IDF_TARGET_ESP32S3 + range 42 42 if IDF_TARGET_ESP32P4 + range 13 13 if IDF_TARGET_ESP32 + help + "Value can only be configured for some targets. Displayed always for reference." + + config ESP_HOSTED_PRIV_SDIO_PIN_D3_4BIT_BUS_SLOT_1 + depends on ESP_HOSTED_SDIO_SLOT_1 + int "D3 GPIO number" + default 9 if IDF_TARGET_ESP32S3 + default 22 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 + default 17 if IDF_TARGET_ESP32P4 + default 13 if IDF_TARGET_ESP32 + range ESP_HOSTED_SDIO_D3_GPIO_RANGE_MIN ESP_HOSTED_SDIO_D3_GPIO_RANGE_MAX + help + D3 GPIO pin for SDIO. Range enforced dynamically based on slave target to ensure IOMUX compliance. + Enable 'Use custom SDIO GPIO pins' to disable range restrictions. + endif + + if !ESP_HOSTED_SDIO_4_BIT_BUS + config ESP_HOSTED_PRIV_SDIO_PIN_D1_1BIT_BUS_SLOT_0 + depends on ESP_HOSTED_SDIO_SLOT_0 + int "D1 GPIO number (Interrupt Line)" + default 35 if IDF_TARGET_ESP32S3 + range 40 40 if IDF_TARGET_ESP32P4 + range 4 4 if IDF_TARGET_ESP32 + help + "Value can only be configured for some targets. Displayed always for reference." + config ESP_HOSTED_PRIV_SDIO_PIN_D1_1BIT_BUS_SLOT_1 + depends on ESP_HOSTED_SDIO_SLOT_1 + int "D1 GPIO number (Interrupt Line)" + default 35 if IDF_TARGET_ESP32S3 + default 23 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 + default 15 if IDF_TARGET_ESP32P4 + default 4 if IDF_TARGET_ESP32 + range ESP_HOSTED_SDIO_D1_GPIO_RANGE_MIN ESP_HOSTED_SDIO_D1_GPIO_RANGE_MAX + help + D1 GPIO pin for SDIO. Range enforced dynamically based on slave target to ensure IOMUX compliance. + Enable 'Use custom SDIO GPIO pins' to disable range restrictions. + endif + + config ESP_HOSTED_SDIO_GPIO_RESET_SLAVE + int "GPIO pin for Reseting slave ESP" + range ESP_HOSTED_SDIO_RESET_SLAVE_GPIO_MIN ESP_HOSTED_SDIO_RESET_SLAVE_GPIO_MAX + default 53 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 + default 54 if IDF_TARGET_ESP32P4 + default 42 if IDF_TARGET_ESP32S3 + default 5 if IDF_TARGET_ESP32 + help + GPIO pin for Resetting ESP SDIO slave device. Should be connected to RST/EN of ESP SDIO slave device. + +### *END* GPIO SDIO pin configurations for Slot 0 and 1 + + config ESP_HOSTED_SDIO_PIN_CMD + int + default ESP_HOSTED_PRIV_SDIO_PIN_CMD_SLOT_0 if ESP_HOSTED_SDIO_SLOT_0 + default ESP_HOSTED_PRIV_SDIO_PIN_CMD_SLOT_1 if ESP_HOSTED_SDIO_SLOT_1 + + config ESP_HOSTED_SDIO_PIN_CLK + int + default ESP_HOSTED_PRIV_SDIO_PIN_CLK_SLOT_0 if ESP_HOSTED_SDIO_SLOT_0 + default ESP_HOSTED_PRIV_SDIO_PIN_CLK_SLOT_1 if ESP_HOSTED_SDIO_SLOT_1 + + config ESP_HOSTED_SDIO_PIN_D0 + int + default ESP_HOSTED_PRIV_SDIO_PIN_D0_SLOT_0 if ESP_HOSTED_SDIO_SLOT_0 + default ESP_HOSTED_PRIV_SDIO_PIN_D0_SLOT_1 if ESP_HOSTED_SDIO_SLOT_1 + + if ESP_HOSTED_SDIO_4_BIT_BUS + config ESP_HOSTED_SDIO_PRIV_PIN_D1_4BIT_BUS + int + default ESP_HOSTED_PRIV_SDIO_PIN_D1_4BIT_BUS_SLOT_0 if ESP_HOSTED_SDIO_SLOT_0 + default ESP_HOSTED_PRIV_SDIO_PIN_D1_4BIT_BUS_SLOT_1 if ESP_HOSTED_SDIO_SLOT_1 + + config ESP_HOSTED_SDIO_PIN_D2 + int + default ESP_HOSTED_PRIV_SDIO_PIN_D2_4BIT_BUS_SLOT_0 if ESP_HOSTED_SDIO_SLOT_0 + default ESP_HOSTED_PRIV_SDIO_PIN_D2_4BIT_BUS_SLOT_1 if ESP_HOSTED_SDIO_SLOT_1 + + config ESP_HOSTED_SDIO_PIN_D3 + int + default ESP_HOSTED_PRIV_SDIO_PIN_D3_4BIT_BUS_SLOT_0 if ESP_HOSTED_SDIO_SLOT_0 + default ESP_HOSTED_PRIV_SDIO_PIN_D3_4BIT_BUS_SLOT_1 if ESP_HOSTED_SDIO_SLOT_1 + endif + + if !ESP_HOSTED_SDIO_4_BIT_BUS + config ESP_HOSTED_SDIO_PRIV_PIN_D1_1BIT_BUS + int + default ESP_HOSTED_PRIV_SDIO_PIN_D1_1BIT_BUS_SLOT_0 if ESP_HOSTED_SDIO_SLOT_0 + default ESP_HOSTED_PRIV_SDIO_PIN_D1_1BIT_BUS_SLOT_1 if ESP_HOSTED_SDIO_SLOT_1 + endif + + config ESP_HOSTED_SDIO_PIN_D1 + int + default ESP_HOSTED_SDIO_PRIV_PIN_D1_4BIT_BUS if ESP_HOSTED_SDIO_4_BIT_BUS + default ESP_HOSTED_SDIO_PRIV_PIN_D1_1BIT_BUS if !ESP_HOSTED_SDIO_4_BIT_BUS + + config ESP_HOSTED_SDIO_TX_Q_SIZE + int "Host SDIO Tx queue size" + default 20 + help + Very small tx queue will lower data rate + + config ESP_HOSTED_SDIO_RX_Q_SIZE + int "Host SDIO Rx queue size" + default 20 + help + Very small RX queue will lower data rate + + config ESP_HOSTED_SDIO_CHECKSUM + bool "SDIO checksum ENABLE/DISABLE" + help + ENABLE/DISABLE software SDIO checksum + endmenu + + menu "SPI Half-duplex Configuration" + depends on ESP_HOSTED_SPI_HD_HOST_INTERFACE + + config ESP_HOSTED_SPI_HD_MODE + int "SPI Mode to use" + default 3 + range 0 3 + help + SPI Mode to use. The same mode must be used on both host and slave. + + choice ESP_HOSTED_SPI_HD_PRIV_INTERFACE_NUM_DATA_LINES + bool "Num Data Lines to use" + default ESP_HOSTED_SPI_HD_PRIV_INTERFACE_4_DATA_LINES + help + Number of Data Lines to use in the SPI HD interface + + config ESP_HOSTED_SPI_HD_PRIV_INTERFACE_4_DATA_LINES + bool "4 data lines" + + config ESP_HOSTED_SPI_HD_PRIV_INTERFACE_2_DATA_LINES + bool "2 data lines" + endchoice + + config ESP_HOSTED_SPI_HD_INTERFACE_NUM_DATA_LINES + int + default 4 if ESP_HOSTED_SPI_HD_PRIV_INTERFACE_4_DATA_LINES + default 2 if ESP_HOSTED_SPI_HD_PRIV_INTERFACE_2_DATA_LINES + + choice ESP_HOSTED_SPI_HD_RESET_GPIO_CONFIG + bool "RESET GPIO Config" + default ESP_HOSTED_SPI_HD_RESET_ACTIVE_HIGH + help + "If Active High, High->Low->High will trigger reset (Low will trigger reset) + If Active Low, Low->High->Low will trigger reset (High will trigger reset)" + + config ESP_HOSTED_SPI_HD_RESET_ACTIVE_HIGH + bool "RESET: Active High" + config ESP_HOSTED_SPI_HD_RESET_ACTIVE_LOW + bool "RESET: Active Low" + endchoice + + choice ESP_HOSTED_SPI_HD_DATAREADY_GPIO_CONFIG + bool "DataReady GPIO Config" + default ESP_HOSTED_SPI_HD_DR_ACTIVE_HIGH + + config ESP_HOSTED_SPI_HD_DR_ACTIVE_HIGH + bool "DR: Active High" + config ESP_HOSTED_SPI_HD_DR_ACTIVE_LOW + bool "DR: Active Low" + endchoice + + menu "Host GPIOs Config" + config ESP_HOSTED_SPI_HD_GPIO_CS + int "GPIO pin for Host CS" + default 10 if IDF_TARGET_ESP32S3 + default 4 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 + default 19 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 + default 1 if IDF_TARGET_ESP32H2 + default 15 + help + SPI Half-duplex controller Host CS + + config ESP_HOSTED_SPI_HD_GPIO_CLK + int "GPIO pin for Host CLK" + default 12 if IDF_TARGET_ESP32S3 + default 33 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 + default 18 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 + default 4 if IDF_TARGET_ESP32H2 + default 18 + help + SPI Half-duplex controller Host CLK + + config ESP_HOSTED_SPI_HD_GPIO_D0 + int "GPIO pin for Host D0" + default 11 if IDF_TARGET_ESP32S3 + default 23 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 + default 14 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 + default 5 if IDF_TARGET_ESP32H2 + default 2 + help + SPI Half-duplex controller Host D0 + + config ESP_HOSTED_SPI_HD_GPIO_D1 + int "GPIO pin for Host D1" + default 13 if IDF_TARGET_ESP32S3 + default 22 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 + default 15 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 + default 0 if IDF_TARGET_ESP32H2 + default 4 + help + SPI Half-duplex controller Host D1 + + config ESP_HOSTED_SPI_HD_GPIO_D2 + depends on ESP_HOSTED_SPI_HD_PRIV_INTERFACE_4_DATA_LINES + int "GPIO pin for Host D2" + default 14 if IDF_TARGET_ESP32S3 + default 20 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 + default 16 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 + default 2 if IDF_TARGET_ESP32H2 + default 12 + help + SPI Half-duplex controller Host D2 + + config ESP_HOSTED_SPI_HD_GPIO_D3 + depends on ESP_HOSTED_SPI_HD_PRIV_INTERFACE_4_DATA_LINES + int "GPIO pin for Host D3" + default 9 if IDF_TARGET_ESP32S3 + default 21 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 + default 17 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 + default 3 if IDF_TARGET_ESP32H2 + default 13 + help + SPI Half-duplex controller Host D3 + + config ESP_HOSTED_SPI_HD_GPIO_DATA_READY + int "GPIO pin for data ready interrupt" + default 4 if IDF_TARGET_ESP32S3 + default 32 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 + default 6 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 + default 12 if IDF_TARGET_ESP32H2 + default 8 + help + GPIO pin for indicating host that slave has data to be read by host + + config ESP_HOSTED_SPI_HD_GPIO_RESET_SLAVE + int "GPIO pin for Reseting slave ESP" + default 5 if IDF_TARGET_ESP32S3 + default 53 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 + default 54 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 + default 10 if IDF_TARGET_ESP32H2 + default 5 + help + GPIO pin for Resetting ESP slave device. Should be connected to RST/EN of ESP SPI slave device. + endmenu + +ESP32XX_SPI_HD_CLK_FREQ_RANGE_MIN := 1 +ESP32_SPI_HD_CLK_FREQ_RANGE_MAX := 10 +ESP32C6_SPI_HD_CLK_FREQ_RANGE_MAX := 40 +ESP32XX_SPI_HD_CLK_FREQ_RANGE_MAX := 40 + + config ESP_HOSTED_SPI_HD_FREQ_ESP32C6 + depends on SLAVE_IDF_TARGET_ESP32C6 + int "SPI HD Clock Freq (MHz)" + default 40 if IDF_TARGET_ESP32P4 #config for ESP32-P4 Function_EV_Board + default 10 + range $(ESP32XX_SPI_HD_CLK_FREQ_RANGE_MIN) $(ESP32C6_SPI_HD_CLK_FREQ_RANGE_MAX) + help + "Optimize CLK by increasing till host practically can support" + + config ESP_HOSTED_SPI_HD_FREQ_ESP32XX + depends on SLAVE_IDF_TARGET_ESP32C2 || SLAVE_IDF_TARGET_ESP32C3 || SLAVE_IDF_TARGET_ESP32S2 || SLAVE_IDF_TARGET_ESP32S3 || SLAVE_IDF_TARGET_ESP32C5 + int "SPI HD Clock Freq (MHz)" + default 40 if SLAVE_IDF_TARGET_ESP32C2 || SLAVE_IDF_TARGET_ESP32C3 || SLAVE_IDF_TARGET_ESP32S2 || SLAVE_IDF_TARGET_ESP32S3 || SLAVE_IDF_TARGET_ESP32C5 + range $(ESP32XX_SPI_HD_CLK_FREQ_RANGE_MIN) $(ESP32XX_SPI_HD_CLK_FREQ_RANGE_MAX) + help + "Optimize CLK by increasing till host practically can support" + + config ESP_HOSTED_SPI_HD_CLK_FREQ + int + default ESP_HOSTED_SPI_HD_FREQ_ESP32C6 if SLAVE_IDF_TARGET_ESP32C6 + default ESP_HOSTED_SPI_HD_FREQ_ESP32XX if SLAVE_IDF_TARGET_ESP32C2 || SLAVE_IDF_TARGET_ESP32C3 || SLAVE_IDF_TARGET_ESP32S2 || SLAVE_IDF_TARGET_ESP32S3 || SLAVE_IDF_TARGET_ESP32C5 + help + "Optimize CLK by increasing till host practically can support" + + config ESP_HOSTED_SPI_HD_TX_Q_SIZE + int "ESP to Host queue size" + default 20 + help + Very small tx queue will lower ESP -- SPI Half-duplex --> Host data rate + + config ESP_HOSTED_SPI_HD_RX_Q_SIZE + int "Host to ESP queue size" + default 20 + help + Very small RX queue will lower ESP <-- SPI Half-duplex -- Host data rate + + config ESP_HOSTED_SPI_HD_CHECKSUM + bool "Checksum ENABLE/DISABLE" + default y + help + ENABLE/DISABLE software checksum + endmenu + + menu "UART Configuration" + depends on ESP_HOSTED_UART_HOST_INTERFACE + + choice ESP_HOSTED_UART_RESET_GPIO_CONFIG + bool "RESET GPIO Config" + default ESP_HOSTED_UART_RESET_ACTIVE_HIGH + help + "If Active High, High->Low->High will trigger reset (Low will trigger reset) + If Active Low, Low->High->Low will trigger reset (High will trigger reset)" + + config ESP_HOSTED_UART_RESET_ACTIVE_HIGH + bool "RESET: Active High" + config ESP_HOSTED_UART_RESET_ACTIVE_LOW + bool "RESET: Active Low" + endchoice + + config ESP_HOSTED_UART_PORT + int "UART Port to Use" + default 1 + range 0 2 if IDF_TARGET_ESP32 + range 0 1 if IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C5 || IDF_TARGET_ESP32C6 + range 0 2 if IDF_TARGET_ESP32C61 + range 0 1 if IDF_TARGET_ESP32S2 + range 0 2 if IDF_TARGET_ESP32S3 + range 0 4 if IDF_TARGET_ESP32P4 + help + Select UART Port to Use. Do not select the UART Port used for console output (if enabled) + + config ESP_HOSTED_UART_PIN_TX + int "TX GPIO number" + default 13 if IDF_TARGET_ESP32 + default 5 if IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C3 + default 14 if IDF_TARGET_ESP32C5 + default 21 if IDF_TARGET_ESP32C6 + default 5 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 + default 14 if IDF_TARGET_ESP32P4 + help + GPIO used for UART TX + + config ESP_HOSTED_UART_PIN_RX + int "RX GPIO number" + default 12 if IDF_TARGET_ESP32 + default 4 if IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C3 + default 13 if IDF_TARGET_ESP32C5 + default 20 if IDF_TARGET_ESP32C6 + default 4 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 + default 15 if IDF_TARGET_ESP32P4 + help + GPIO used for UART RX + + config ESP_HOSTED_UART_BAUDRATE + int "Baud Rate" + default 921600 + range 9600 3500000 + help + Baud Rate to Use. Make sure Hardware supports the rate. Standard rates are 9600, 19200, 38400, 57600, 115200, 460800, 921600 + + config ESP_HOSTED_UART_NUM_DATA_BITS + int "Number of Data Bits" + default 8 + range 5 8 + help + Number of Data Bits to use + + choice ESP_HOSTED_UART_PRIV_PARITY + bool "Parity" + + config ESP_HOSTED_UART_PRIV_PARITY_NONE + bool "None" + + config ESP_HOSTED_UART_PRIV_PARITY_EVEN + bool "Even" + + config ESP_HOSTED_UART_PRIV_PARITY_ODD + bool "Odd" + endchoice + + config ESP_HOSTED_UART_PARITY + int + default 0 if ESP_HOSTED_UART_PRIV_PARITY_NONE + default 1 if ESP_HOSTED_UART_PRIV_PARITY_EVEN + default 2 if ESP_HOSTED_UART_PRIV_PARITY_ODD + + choice ESP_HOSTED_UART_PRIV_STOP_BITS + bool "Number of Stop Bits" + + config ESP_HOSTED_UART_PRIV_STOP_BITS_1 + bool "1" + + config ESP_HOSTED_UART_PRIV_STOP_BITS_1_5 + bool "1.5" + + config ESP_HOSTED_UART_PRIV_STOP_BITS_2 + bool "2" + endchoice + + config ESP_HOSTED_UART_STOP_BITS + int + default 0 if ESP_HOSTED_UART_PRIV_STOP_BITS_1 + default 1 if ESP_HOSTED_UART_PRIV_STOP_BITS_1_5 + default 2 if ESP_HOSTED_UART_PRIV_STOP_BITS_2 + + config ESP_HOSTED_UART_GPIO_RESET_SLAVE + int "GPIO pin for Reseting slave ESP" + default 54 if IDF_TARGET_ESP32P4 + default 42 if IDF_TARGET_ESP32S3 + default 5 + help + GPIO pin for Resetting ESP SDIO slave device. Should be connected to RST/EN of ESP SDIO slave device. + + config ESP_HOSTED_UART_TX_Q_SIZE + int "Tx Queue Size" + default 5 + help + UART rates are low, so large queue sizes are not required + + config ESP_HOSTED_UART_RX_Q_SIZE + int "Rx Queue Size" + default 5 + help + UART rates are low, so large queue sizes are not required + + config ESP_HOSTED_UART_CHECKSUM + bool "UART checksum ENABLE/DISABLE" + default y + help + ENABLE/DISABLE software UART checksum + endmenu + + config ESP_HOSTED_GPIO_SLAVE_RESET_SLAVE + int + default ESP_HOSTED_SPI_GPIO_RESET_SLAVE if ESP_HOSTED_SPI_HOST_INTERFACE + default ESP_HOSTED_SDIO_GPIO_RESET_SLAVE if ESP_HOSTED_SDIO_HOST_INTERFACE + default ESP_HOSTED_SPI_HD_GPIO_RESET_SLAVE if ESP_HOSTED_SPI_HD_HOST_INTERFACE + default ESP_HOSTED_UART_GPIO_RESET_SLAVE if ESP_HOSTED_UART_HOST_INTERFACE + + config ESP_HOSTED_RESET_GPIO_ACTIVE_LOW + bool + default n if ESP_HOSTED_SDIO_RESET_ACTIVE_HIGH || ESP_HOSTED_SPI_RESET_ACTIVE_HIGH || ESP_HOSTED_SPI_HD_RESET_ACTIVE_HIGH || ESP_HOSTED_UART_RESET_ACTIVE_HIGH + default y if ESP_HOSTED_SDIO_RESET_ACTIVE_LOW || ESP_HOSTED_SPI_RESET_ACTIVE_LOW || ESP_HOSTED_SPI_HD_RESET_ACTIVE_LOW || ESP_HOSTED_UART_RESET_ACTIVE_LOW + + menu "Bluetooth Support" + + comment "Following options must be set before this option can be enabled" + depends on !BT_ENABLED || BT_CONTROLLER_ONLY || (BT_NIMBLE_ENABLED && (BT_NIMBLE_TRANSPORT_UART || BT_CONTROLLER_ENABLED)) || (BT_BLUEDROID_ENABLED && BT_CONTROLLER_ENABLED) + + comment "'Component config->Bluetooth' must be enabled" + depends on !BT_ENABLED + + comment "'Component config->Bluetooth->Host' must be enabled" + depends on BT_ENABLED && BT_CONTROLLER_ONLY + + comment "'Component config->Bluetooth->Controller' must be disabled" + depends on BT_ENABLED && BT_CONTROLLER_ENABLED + + comment "'Component config->Bluetooth->NimBLE Options->Host-controller Transport->Uart Transport' must be disabled" + depends on BT_NIMBLE_ENABLED && BT_NIMBLE_TRANSPORT_UART + + if BT_ENABLED && BT_BLUEDROID_ENABLED && !BT_CONTROLLER_ENABLED + config ESP_HOSTED_ENABLE_BT_BLUEDROID + bool "Enable Hosted Bluedroid Bluetooth support" + default n + help + Enable Bluetooth Support for Bluedroid via Hosted + + choice ESP_HOSTED_BLUEDROID_HCI_TYPE + bool "BT Bluedroid HCI Type" + default ESP_HOSTED_BLUEDROID_HCI_VHCI + depends on ESP_HOSTED_ENABLE_BT_BLUEDROID + help + Selects the HCI to use + + config ESP_HOSTED_BLUEDROID_HCI_VHCI + bool "VHCI" + help + Bluetooth data is sent through the selected transport layer + endchoice + endif + + if BT_ENABLED && BT_NIMBLE_ENABLED && !BT_CONTROLLER_ENABLED && !BT_NIMBLE_TRANSPORT_UART + config ESP_HOSTED_ENABLE_BT_NIMBLE + bool "Enable Hosted Nimble Bluetooth support" + default n + help + Enable Bluetooth Support via Hosted + + choice ESP_HOSTED_NIMBLE_HCI_TYPE + bool "BT Nimble HCI Type" + default ESP_HOSTED_NIMBLE_HCI_VHCI + depends on ESP_HOSTED_ENABLE_BT_NIMBLE + help + Selects the HCI to use + + config ESP_HOSTED_NIMBLE_HCI_VHCI + bool "VHCI" + help + Bluetooth data is sent through the selected transport layer + endchoice + endif + endmenu + + menu "Task defaults" + config ESP_HOSTED_RPC_TASK_STACK + int "RPC task stack size" + default 4096 + + config ESP_HOSTED_DFLT_TASK_STACK + int "Hosted default task size" + default 3072 + endmenu + + config ESP_HOSTED_USE_MEMPOOL + bool "Cache allocated memory like mempool - helps to reduce malloc calls" + default y + help + Cache allocated memory - reduces number of malloc calls + + config ESP_HOSTED_MAX_SIMULTANEOUS_SYNC_RPC_REQUESTS + int "Maximum number of simultaneous synchronous RPC Request" + default 5 + help + Sets the maximum number of simultaneous synchronous RPC Requests. + (Synchronous RPC Request: each sending task waits for the response.) + Usually, the host application may send up to 3 simultaneous RPC requests to the slave. + Increase this number if you need to send more simultaneous RPC requests. + Note: the slave will only process one RPC request (sync and async) at a time + + config ESP_HOSTED_MAX_SIMULTANEOUS_ASYNC_RPC_REQUESTS + int "Maximum number of simultaneous asynchronous RPC Request" + default 5 + help + Sets the maximum number of simultaneous asynchronous RPC Requests. + (Asynchronous RPC Request: each sending task registers a callback to get the response.) + Usually, the host application may send up to 3 simultaneous RPC requests to the slave. + Increase this number if you need to send more simultaneous RPC requests. + Note: the slave will only process one RPC request (sync and async) at a time + + menu "Debug Settings" + + config ESP_HOSTED_RAW_THROUGHPUT_TRANSPORT + bool "RawTP: Transport level throughput debug test" + default n + help + Find max transport performance which helps to assess stability of porting done + + choice ESP_HOSTED_RAW_THROUGHPUT_DIRECTION + bool "RawTP: Send data from:" + depends on ESP_HOSTED_RAW_THROUGHPUT_TRANSPORT + + config ESP_HOSTED_RAW_THROUGHPUT_TX_TO_SLAVE + bool "Host to Slave" + help + Sends data from Host to Slave + + config ESP_HOSTED_RAW_THROUGHPUT_RX_FROM_SLAVE + bool "Slave to Host" + help + Sends data from Slave to Slave + + config ESP_HOSTED_RAW_THROUGHPUT_BIDIRECTIONAL + bool "Bidirectional" + help + Sends data in both directions + endchoice + + config ESP_HOSTED_RAW_TP_HOST_TO_ESP_PKT_LEN + depends on ESP_HOSTED_RAW_THROUGHPUT_TRANSPORT + int "RawTP: Host to ESP packet size" + range 1 1500 + default 1460 + + config ESP_HOSTED_RAW_TP_REPORT_INTERVAL + depends on ESP_HOSTED_RAW_THROUGHPUT_TRANSPORT + int "RawTP: periodic duration to report stats accumulated" + default 5 + + config ESP_HOSTED_PKT_STATS + bool "Transport level packet stats" + default n + help + On comparing with slave packet stats helps to understand any packet loss at hosted + + endmenu + + menu "Data path options" + config ESP_HOSTED_HOST_TO_ESP_WIFI_DATA_THROTTLE + bool "Report WiFi queue utilization to host" + default y + help + Proactively drop Host->slave Wi-Fi data when Slave Wi-Fi is under load + Slave Wi-Fi may drop ingress bursty or higher than capacity packets. + To have synchronous way of packet dropped for application, + Host will throttle incoming data if the slave datapath Rx load is high + + config ESP_HOSTED_PRIV_WIFI_TX_SPI_HIGH_THRESHOLD + depends on ESP_HOSTED_HOST_TO_ESP_WIFI_DATA_THROTTLE && ESP_HOSTED_SPI_HOST_INTERFACE + int "High threshold to report host to drop data when wifi highly loaded" + range 0 100 + default 90 + help + Host will throttle incoming data if the slave datapath Rx load goes beyond this threshold + 0 value will disable this function + + config ESP_HOSTED_PRIV_WIFI_TX_SDIO_HIGH_THRESHOLD + depends on ESP_HOSTED_HOST_TO_ESP_WIFI_DATA_THROTTLE && ESP_HOSTED_SDIO_HOST_INTERFACE + int "High threshold to report host to drop data when wifi highly loaded" + range 0 100 + default 80 + help + Host will throttle incoming data if the slave datapath Rx load goes beyond this threshold + 0 value will disable this function + + config ESP_HOSTED_PRIV_WIFI_TX_SPI_HD_HIGH_THRESHOLD + depends on ESP_HOSTED_HOST_TO_ESP_WIFI_DATA_THROTTLE && ESP_HOSTED_SPI_HD_HOST_INTERFACE + int "High threshold to report host to drop data when wifi highly loaded" + range 0 100 + default 80 + help + Host will throttle incoming data if the slave datapath Rx load goes beyond this threshold + 0 value will disable this function + + config ESP_HOSTED_PRIV_WIFI_TX_UART_HIGH_THRESHOLD + depends on ESP_HOSTED_HOST_TO_ESP_WIFI_DATA_THROTTLE && ESP_HOSTED_UART_HOST_INTERFACE + int "High threshold to report host to drop data when wifi highly loaded" + range 0 100 + default 80 + help + Host will throttle incoming data if the slave datapath Rx load goes beyond this threshold + 0 value will disable this function + + config ESP_HOSTED_TO_WIFI_DATA_THROTTLE_HIGH_THRESHOLD + depends on ESP_HOSTED_HOST_TO_ESP_WIFI_DATA_THROTTLE + int + default ESP_HOSTED_PRIV_WIFI_TX_SPI_HIGH_THRESHOLD if ESP_HOSTED_SPI_HOST_INTERFACE + default ESP_HOSTED_PRIV_WIFI_TX_SDIO_HIGH_THRESHOLD if ESP_HOSTED_SDIO_HOST_INTERFACE + default ESP_HOSTED_PRIV_WIFI_TX_SPI_HD_HIGH_THRESHOLD if ESP_HOSTED_SPI_HD_HOST_INTERFACE + default ESP_HOSTED_PRIV_WIFI_TX_UART_HIGH_THRESHOLD if ESP_HOSTED_UART_HOST_INTERFACE + + config ESP_HOSTED_TO_WIFI_DATA_THROTTLE_LOW_THRESHOLD + depends on ESP_HOSTED_HOST_TO_ESP_WIFI_DATA_THROTTLE + int "Low threshold to report host to stop dropping data" + range 0 ESP_HOSTED_TO_WIFI_DATA_THROTTLE_HIGH_THRESHOLD + default 60 + help + Once the Wi-Fi is no more stressed, data throttling would be stopped, once slave Wi-Fi load + is lower than this threshold + endmenu + + config ESP_HOSTED_DECODE_WIFI_RESERVED_FIELD + bool "Copy Wi-Fi configuration reserved field values" + default n + help + ESP-IDF Wi-Fi structures contain reserved bitmask values. + Enable this option if you want to copy these values between host and co-processor. + It is usually safe to ignore these reserved values. + +endmenu diff --git a/resources/espressif__esp_hosted/LICENSE b/resources/espressif__esp_hosted/LICENSE new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/resources/espressif__esp_hosted/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/resources/espressif__esp_hosted/README.md b/resources/espressif__esp_hosted/README.md new file mode 100644 index 0000000..72695cd --- /dev/null +++ b/resources/espressif__esp_hosted/README.md @@ -0,0 +1,280 @@ +# ESP-Hosted-MCU: Espressif SoCs as Communication Co-Processors + +[![Component Registry](https://components.espressif.com/components/espressif/esp_hosted/badge.svg)](https://components.espressif.com/components/espressif/esp_hosted) + +## 1 Introduction + +ESP-Hosted-MCU is an open-source solution that allows you to use Espressif Chipsets and modules as a communication co-processor. This solution provides wireless connectivity (Wi-Fi and Bluetooth) to the host microprocessor or microcontroller, enabling it to communicate with other devices. Additionally, the user has complete control over the co-processor's resources. + +This high-level block diagram shows ESP-Hosted's relationship with the host MCU and slave co-processor. + +ESP-Hosted + +For detailed design diagrams in Wi-Fi and Bluetooth, refer to the following design documents: + +- [WiFi Design](https://github.com/espressif/esp-hosted-mcu/blob/main/docs/wifi_design.md) +- [Bluetooth Design](https://github.com/espressif/esp-hosted-mcu/blob/main/docs/bluetooth_design.md) + +`esp-hosted-mcu` is dedicated for any host as MCU support. If you are interested in Linux as host, please refer to the [`esp-hosted`](https://github.com/espressif/esp-hosted) repository. + +## 2 Architecture + +##### Hosted Co-Processor +This is an ESP chip that provides Wi-Fi, Bluetooth, and other capabilities. It is also referred as `hosted-slave` interchangeably. + +##### Host MCU +This can be any generic microcontroller (MCU). We demonstrate any ESP as host. Using port layer, any host can act as host MCU. + +##### Communication +- Host extends the capabilities of the Hosted co-processor through Remote Procedure Calls (RPCs). The Host MCU sends these RPC commands to the Hosted co-processor using a reliable communication bus, like SPI, SDIO, or UART. The Hosted co-processor then handles the RPC and provides the requested functionality to the Host MCU. +- The data (network or Bluetooth) is packaged efficiently at the transport layer to minimize overhead and delays when passing between the Host and co-processor. +- This modular design allows any MCU to be used as the Host, and any ESP chip with Wi-Fi and/or Bluetooth to be used as the Hosted co-processor. The RPC calls can also be extended to provide any function required by the Host, as long as the co-processor can support it. + +## 3 Solution Flexibility + +- **Any MCU can be the host** + - You can evaluate ESP as an example host and then port ESP-Hosted to your desired MCU. +- **Any ESP chip can be the co-processor** + - Any Wi-Fi and/or Bluetooth capable ESP chipset can be chosen as co-processor + - Choose the co-processor device based on your product requirements. The [ESP Product Selector](https://www.espressif.com/en/products/socs) can help in this. +- **Flexible transport layer (SDIO, SPI, UART)** + - ESP-Hosted supports various communication interfaces between the host and the co-processor, allowing you to choose the most suitable one for your application. + - Any other new transport also could be added to the open source code +- **Complete control over co-processor's resources** + - The user is not limited to just using the co-processor for wireless connectivity. They have complete control over the co-processor's resources, allowing for a more flexible and powerful system. +- **Extensible RPC library** + - The Remote Procedure Call (RPC) used by ESP-Hosted can be extended to provide any function required by the Host, as long as the co-processor can support it. Currently, the essential [ESP-IDF](https://github.com/espressif/esp-idf) Wi-Fi functions have been implemented. + +## 4 Quick Demo with ESP32-P4-Function-EV-Board + +Impatient to test? We've got you covered! +The [ESP32-P4-Function-EV-Board](https://www.espressif.com/en/products/socs/esp32-p4) can be used as a host MCU with an on-board [ESP32-C6](https://www.espressif.com/en/products/socs/esp32-c6) as co-processor, already connected via SDIO as transport. +Prerequisite: You need to have an ESP32-P4-Function-EV-Board` + +> [!NOTE] +> If you have already set up ESP-IDF (version 5.3 or later), you can skip to [5 Source Code and Dependencies](#5-source-code-and-dependencies). + +### 4.1 Set-Up ESP-IDF + +- Windows + - Install and setup ESP-IDF on Windows as documented in the [Standard Setup of Toolchain for Windows](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/windows-setup.html). + - Use the ESP-IDF [Powershell Command Prompt](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/windows-setup.html#using-the-command-prompt) to move to expected + +- Linux or MacOS + - bash +```bash +bash docs/setup_esp_idf__latest_stable__linux_macos.sh +``` + - fish +```fish +fish docs/setup_esp_idf__latest_stable__linux_macos.fish +``` + +### 4.2 Set-Up P4 with C6 +The host, ESP32-P4, lacks native Wi-Fi/Bluetooth support. Our [Quick Demo](docs/esp32_p4_function_ev_board.md) will help you run iperf over P4--SDIO--C6. + +### 4.3 Don't Have ESP32-P4-Function-EV-Board? + +No worries if you don't have an ESP32-P4. In fact, most users don't. You can choose and use any two ESP chipsets/SoCs/Modules/DevKits. DevKits are convenient to use as they have GPIO headers already in place. From these two ESP chipsets, one would act as host and another as slave/co-processor. However, as these are not connected directly, you would need to manually connect some transport, which is explained later in the section [`Detailed Setup`](#7-detailed-setup). + +## 5 Source Code and Dependencies + +### 5.1 ESP-Hosted-MCU Source Code + +- ESP-Hosted-MCU code can be found at Espressif Registry Component [`esp_hosted` (ESP-Hosted)](https://components.espressif.com/components/espressif/esp_hosted) or GitHub repo at [`esp-hosted-mcu`](https://github.com/espressif/esp-hosted-mcu/) + +- ESP-Hosted repo clone is **not** required if you have ESP as host. + - Reason: [ESP component manager](https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-guides/tools/idf-component-manager.html) automatically clones esp-hosted component while building. +- However, For non-ESP host development, you can clone the repo using command: +```bash +git clone --recurse-submodules --depth 1 https://github.com/espressif/esp-hosted-mcu.git +``` + +### 5.2 Dependencies + +ESP-Hosted-MCU Solution is dependent on `ESP-IDF`, `esp_wifi_remote` and `protobuf-c` + +###### ESP-IDF + - [`ESP-IDF`](https://github.com/espressif/esp-idf) is the development framework for Espressif SoCs supported on Windows, Linux and macOS + - ESP-Hosted-MCU solution is based on ESP-IDF as base software. ESP chipsets as host and slave always tried to design such a way that ESP-IDF components are re-used. + - Although, We totally understand, host MCUs in case of non-ESP chipset may not desire to be dependent on ESP-IDF. The port layer is written to avoid suc dependencies. Some crucial ESP-IDF components could also be just copy-pasted to fast-track the non-ESP host development. + +###### Wi-Fi Remote + - [`esp_wifi_remote`](https://components.espressif.com/components/espressif/esp_wifi_remote) i.e. 'Wi-Fi Remote' is very thin interface made up of ESP-IDF Wi-Fi APIs with empty weak definitions. Real definitions for these APIs are provided by ESP-Hosted-MCU + - Wi-Fi Remote Code can be found at either [GitHub Repo](https://github.com/espressif/esp-wifi-remote/) or [Espressif Registry Component](https://components.espressif.com/components/espressif/esp_wifi_remote) + +###### Protobuf + - [`protobuf-c`](https://github.com/protobuf-c/protobuf-c) is data serialization framework provided by Google. RPC messages communicated in host and slave are protobuf encoded. + - It helps to avoid manual serialization or endien-ness conversion. + - Provides Flexibility for users to port the ESP-Hosted-MCU RPC framework in any protobuf supported programming language + - Code is checked-out as submodule at `common/protobuf-c` + +##### 5.2.1 How Dependencies Work Together (short explanation) +- RPC Request - Response + - Wi-Fi Remote is an API layer or interface that provides the standard ESP-IDF Wi-Fi calls to the application (`esp_wifi_init()`, etc.) + - Wi-Fi Remote forwards the Wi-Fi calls to ESP-Hosted, as ESP-Hosted 'implements' tha APIs provided by Wi-Fi Remote interface. + - ESP-Hosted host MCU creates RPC requests which are protobuf encoded and sends over the transport (SPI/SDIO etc) to the slave. + - Slave de-serialize the protobuf RPC request and response send back to host over transport, again with protobuf serialised. + - Responses received at transport returned to Wi-Fi Remote, which returns the reponses to the calling app at host + - To the app, it is as if it made a standard ESP-IDF Wi-Fi API call. +- RPC Event + - Asynchronous Wi-Fi events when subscribed, are sent by slave to host. + - These events terminate in standard ESP-IDF event loop on the host +- Please note, Only RPC i.e. control packets are serialised. Data Packets are never serialised as they do not need endien conversion. + +## 6 Decide the communication bus in between host and slave + +The communication bus is required to be setup correctly between host and slave. +We refer this as `transport medium` or simply `transport`. + +ESP-Hosted-MCU supports SPI/SDIO/UART transports. User can choose which transport to use. Choosing specific transport depends on factors: high performance, easy and quick to test, number of GPIOs used, or simply co-processor preference + +Below is chart for the transport medium comparison. + +Legends: + +- `FD` : Full duplex communication +- `HD` : Half duplex communication +- `BT` : Bluetooth +- `+2` in column `Num of GPIOs` + - There are two GPIOs additional applicable for all the transports + - (1) Co-Processor reset: Host needs one additional pin to connect to `RST`/`EN` pin of co-processor, to reset on bootup + - (2) Ground: Grounds of both chipsets need to be connected. + - If you use jumper cable connections, connect as many grounds as possible in between two boards for better noise cancellation. +- `Any_Slave` + - Co-processor suppored: ESP32, ESP32-C2, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-S2, ESP32-S3 + - Classic ESP32 supports 'Classic BT', 'BLE 4.2' & 'BTDM' + - Rest all chipsets support BLE only. BLE version supported is 5.0+. Exact bluetooth versions could be refered from [ESP Product Selector Page](https://products.espressif.com/#/product-selector) +- `Dedicated platforms` + - Bluetooth uses dedicated platform, UART and Wi-Fi uses any other base transport + - In other platforms, Bluetooth and Wi-Fi re-use same platform and hence use less GPIOs and less complicated + - This transport combination allows Bluetooth to use dedicated uart transportt with additional 2 or 4 depending on hardware flow control. +- (S) : Shield box reading +- (O) : Over the air reading +- TBD : To be determined +- iperf : iperf2 with test resukts in mbps + +> [!NOTE] +> +> For the shield box readings maked with (S), full network set up explained in [Shield Box Test Setup](shield-box-test-setup.md) + +**Host can be any ESP chipset or any non-ESP MCU.** + +###### Hosted Transports table + +| Transport | Type | Num of GPIOs | Setup with | Co-processor supported | Host Tx iperf | Host Rx iperf | Remarks | +|:---------------:|:-----:|:------------:|:----------------:|:--------------:|:------------:|:-----------:|:--------------------------:| +| Standard SPI | FD | 6 | jumper or PCB | Any_Slave | udp: 24 tcp: 22 | udp: 25 tcp: 22| Simplest solution for quick test | +| Dual SPI | HD | 5 | jumper or PCB | Any_Slave [1] | udp: 32 tcp: 26 (O) | udp: 33 tcp: 25 (O) | Better throughput, but half duplex | +| Quad SPI | HD | 7 | PCB only | Any_Slave [1] | udp: 41 tcp: 29 (O) | udp: 42 tcp: 28 (O) | Due to signal integrity, PCB is mandatory | +| SDIO 1-Bit | HD | 4 | jumper or PCB | ESP32, ESP32-C6, ESP32-C5 [3] | TBD | TBD | Stepping stone for PCB based SDIO 4-bit | +| SDIO 4-Bit | HD | 6 | PCB only | ESP32, ESP32-C6, ESP32-C5 [3] | udp: 79.5 tcp: 53.4 (S) | udp: 68.1 tcp: 44 (S) | Highest performance | +| Only BT over UART | FD | 2 or 4 | jumper or PCB | Any_Slave | NA | NA | Dedicated Bluetooth over UART pins | +| UART | FD | 2 | jumper or PCB | Any_Slave | udp: 0.68 tcp: 0.67 (O) | udp: 0.68 tcp: 0.60 (O) | UART dedicated for BT & Wi-Fi [2] | +| Dedicated platforms | FD | Extra 2 or 4 | jumper or PCB | Any_Slave | NA | NA | UART dedicated for BT & Wi-Fi on any other transport | + +> [!NOTE] +> - [1] Dual/Quad SPI is not supported on ESP32 +> +> - [2] UART is only suitable for low throughput environments +> +> - [3] Currently in BETA support for ESP32-C5 (`--preview` in ESP-IDF master branch) + +With jumper cables, 'Standard SPI' and 'Dual SPI' solutions are easiest to evaluate, without much of hardware dependencies. SDIO 1-Bit can be tested with jumper cables, but it needs some additional hardware config, such as installation of external pull-up registers. + +In case case of dedicated platforms, Blutooth uses standard HCI over UART. In rest of cases, Bluetooth and Wi-Fi uses same transport and hence less GPIOs and less complicated. In shared mode, bluetooth runs as Hosted HCI (multiplexed mode) + +## 7 ESP-Hosted-MCU Header + +### 7.1 ESP Hosted header + +Host and slave always populate below header at the start of every frame, irrespective of actual or dummy data in payload. + +| Field | Type | Bits | Mandatory? | Description | +|----------------|----------|------|------------|-----------------------------------------------------------------------------| +| if_type | uint8_t | 4 | M | Interface type | +| if_num | uint8_t | 4 | M | Interface number | +| flags | uint8_t | 8 | M | Flags for additional information | +| len | uint16_t | 16 | M | Length of the payload | +| offset | uint16_t | 16 | M | Offset for the payload | +| checksum | uint16_t | 16 | M | Checksum for error detection (0 if checksum disabled) | +| seq_num | uint16_t | 16 | O | Sequence number for tracking packets (Useful in debugging) | +| throttle_cmd | uint8_t | 0 or 2 | O | Flow control command | +| reserved2 | uint8_t | 6 or 8 | M | Reserved bits | +| reserved3 | uint8_t | 8 | M | Reserved byte (union field) | +| hci\_pkt\_type or priv\_pkt\_type | uint8_t | 8 | M | Packet type for HCI interface (union field) | + +### 7.2 Interface Types + +Start of header states which type of frame is being carried. + +| Interface Type | Value | Description | +|----------------------|-------|--------------------------------------------------| +| ESP\_INVALID\_IF | 0 | Invalid interface | +| ESP\_STA\_IF | 1 | Station frame | +| ESP\_AP\_IF | 2 | SoftAP frame | +| ESP\_SERIAL\_IF | 3 | Control frame | +| ESP\_HCI\_IF | 4 | Bluetooth Hosted HCI frame | +| ESP\_PRIV\_IF | 5 | Private communication between slave and host | +| ESP\_TEST\_IF | 6 | Transport throughput test | +| ESP\_ETH\_IF | 7 | Invalid | +| ESP\_MAX\_IF | 8 | type mentioned in dummy or empty frame | + +## 8 Detailed Setup + +Once you decided the transport to use, this section should guide how to set this transport, with hardware connections, configurations and verification. Users can evaluate one transport first and then move to other. + +> [!IMPORTANT] +> +> [Design Considerations](https://github.com/espressif/esp-hosted-mcu/blob/main/docs/design_consideration.md) that could be referred to, before you stick to any transport option. Referring to these consideration would help to get you faster to solution, make your design stable and less error-prone. + + +Irrespective of transport chosen, following steps are needed, which are step-wise explained in each transport. + +1. Set-up the hosted-transport +2. Slave Flashing + - Slave project creation + - Slave configuration + - Slave flashing + - Slave logs +3. Host flashing + - Host project integration with ESP-IDF example + - Host configuration + - Host flashing + - Host logs + +- [**Standard SPI (Full duplex)**](https://github.com/espressif/esp-hosted-mcu/blob/main/docs/spi_full_duplex.md) + +- [**SPI - Dual / Quad Half Duplex**](https://github.com/espressif/esp-hosted-mcu/blob/main/docs/spi_half_duplex.md) + +- [**SDIO (1-Bit / 4-Bit)**](https://github.com/espressif/esp-hosted-mcu/blob/main/docs/sdio.md) + +- [**UART for Wi-Fi and Bluetooth**](https://github.com/espressif/esp-hosted-mcu/blob/main/docs/uart.md) + +## 9 Examples +Check [examples](https://github.com/espressif/esp-hosted-mcu/tree/main/examples) directory for sample applications using ESP-Hosted. + - `examples/host_bluedroid_ble_compatibility_test` + - host BlueDroid Bluetooth example to test the Bluetooth compatibility and mobile phones + - `examples/host_bluedroid_bt_hid_mouse_device` + - host BlueDroid Bluetooth example to show how to implement a Bluetooth HID device using the APIs provided by Classic Bluetooth HID profile + - `examples/host_bluedroid_host_only` + - host BlueDroid Bluetooth example Bluetooth Host using ESP-Hosted as HCI IO to the BT Controller + - `examples/host_nimble_bleprph_host_only_vhci` + - host NimBLE Bluetooth example without needing extra GPIOs for HCI transport + +## 10 Troubleshooting + +If you encounter issues with using ESP-Hosted, see the following guide: + +- [Troubleshooting Guide](https://github.com/espressif/esp-hosted-mcu/blob/main/docs/troubleshooting.md) + +## 11 References + +- [ESP Product Selector Page](https://products.espressif.com) +- [ESP-IDF Get Started Guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started) +- [ESP-IDF Wi-Fi API](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/network/esp_wifi.html) +- [ESP-IDF Iperf Example](https://github.com/espressif/esp-idf/tree/master/examples/wifi/iperf) +- [ESP-IDF NimBLE](https://github.com/espressif/esp-nimble) +- [ESP Component Registry](https://components.espressif.com) +- [Registry Component: esp\_wifi\_remote](https://components.espressif.com/components/espressif/esp_wifi_remote) +- [Registry Component: esp\_hosted](https://components.espressif.com/components/espressif/esp_hosted) diff --git a/resources/espressif__esp_hosted/common/esp_hosted_header.h b/resources/espressif__esp_hosted/common/esp_hosted_header.h new file mode 100644 index 0000000..be13c3a --- /dev/null +++ b/resources/espressif__esp_hosted/common/esp_hosted_header.h @@ -0,0 +1,32 @@ +// Copyright 2025 Espressif Systems (Shanghai) PTE LTD +/* SPDX-License-Identifier: GPL-2.0-only OR Apache-2.0 */ + +#ifndef __ESP_HOSTED_HEADER__H +#define __ESP_HOSTED_HEADER__H + +struct esp_payload_header { + uint8_t if_type:4; + uint8_t if_num:4; + uint8_t flags; + uint16_t len; + uint16_t offset; + uint16_t checksum; + uint16_t seq_num; + uint8_t throttle_cmd:2; + uint8_t reserved2:6; + /* Position of union field has to always be last, + * this is required for hci_pkt_type */ + union { + uint8_t reserved3; + uint8_t hci_pkt_type; /* Packet type for HCI interface */ + uint8_t priv_pkt_type; /* Packet type for priv interface */ + }; + /* Do no add anything here */ +} __attribute__((packed)); + +/* ESP Payload Header Flags */ +#define MORE_FRAGMENT (1 << 0) + +#define H_ESP_PAYLOAD_HEADER_OFFSET sizeof(struct esp_payload_header) + +#endif diff --git a/resources/espressif__esp_hosted/common/esp_hosted_interface.h b/resources/espressif__esp_hosted/common/esp_hosted_interface.h new file mode 100644 index 0000000..7574a88 --- /dev/null +++ b/resources/espressif__esp_hosted/common/esp_hosted_interface.h @@ -0,0 +1,30 @@ +/* +* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD +* +* SPDX-License-Identifier: Apache-2.0 +*/ + +#ifndef __ESP_HOSTED_INTERFACE_H__ +#define __ESP_HOSTED_INTERFACE_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum { + ESP_INVALID_IF, + ESP_STA_IF, + ESP_AP_IF, + ESP_SERIAL_IF, + ESP_HCI_IF, + ESP_PRIV_IF, + ESP_TEST_IF, + ESP_ETH_IF, + ESP_MAX_IF, +} esp_hosted_if_type_t; + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/resources/espressif__esp_hosted/common/log/esp_hosted_log.h b/resources/espressif__esp_hosted/common/log/esp_hosted_log.h new file mode 100644 index 0000000..6ddc6cd --- /dev/null +++ b/resources/espressif__esp_hosted/common/log/esp_hosted_log.h @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright 2015-2021 Espressif Systems (Shanghai) PTE LTD +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at + +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +#ifndef __ESP_HOSTED_LOG_H +#define __ESP_HOSTED_LOG_H +#include "esp_log.h" + +#define ESP_PRIV_HEXDUMP(tag1, tag2, buff, len, curr_level) \ + if ( LOG_LOCAL_LEVEL >= curr_level) { \ + ESP_LOG_LEVEL_LOCAL(curr_level, tag1, "%s: len[%d]", tag2, (int)len); \ + ESP_LOG_BUFFER_HEXDUMP(tag2, buff, len, curr_level); \ + } + +#define ESP_HEXLOGE(tag2, buff, len) ESP_PRIV_HEXDUMP(TAG, tag2, buff, len, ESP_LOG_ERROR) +#define ESP_HEXLOGW(tag2, buff, len) ESP_PRIV_HEXDUMP(TAG, tag2, buff, len, ESP_LOG_WARN) +#define ESP_HEXLOGI(tag2, buff, len) ESP_PRIV_HEXDUMP(TAG, tag2, buff, len, ESP_LOG_INFO) +#define ESP_HEXLOGD(tag2, buff, len) ESP_PRIV_HEXDUMP(TAG, tag2, buff, len, ESP_LOG_DEBUG) +#define ESP_HEXLOGV(tag2, buff, len) ESP_PRIV_HEXDUMP(TAG, tag2, buff, len, ESP_LOG_VERBOSE) + +#endif + diff --git a/resources/espressif__esp_hosted/common/proto/README.md b/resources/espressif__esp_hosted/common/proto/README.md new file mode 100644 index 0000000..57c0e94 --- /dev/null +++ b/resources/espressif__esp_hosted/common/proto/README.md @@ -0,0 +1,53 @@ +# About Proto Files + + +## Protobuf Submodule + +[protobuf-c](https://github.com/protobuf-c/protobuf-c) is open source code used as submodule in ESP-Hosted-FG in directory `../protobuf-c/` +If this directory is empty, please run +```sh +$ cd esp-hosted +$ git submodule update --init --recursive +``` + +## Files + +- `esp_hosted_rpc.proto` + - This is Ready-To-Use protobuf file which has messages for Request / Response / Events to communicate between Host and ESP + - User can add his own message field in `.proto` file and generate respective C files using 'protoc' + +- `esp_hosted_rpc.pb-c.c` & `esp_hosted_rpc.pb-c.h` + - Ready-To-Use Source Generated files using `esp_hosted_rpc.proto` + - These files also cached which was generated with current `esp_hosted_rpc.proto` file for easy use (No need to generate again) + - If any addition or modifications `esp_hosted_rpc.proto` done, these files need to be re-generated + + +## Generate esp_hosted_rpc.pb-c.c & esp_hosted_rpc.pb-c.h + +If you want to add or modify existing set of RPC procedures supported, you need to modify `esp_hosted_rpc.proto` as needed and build it to generate new set of `esp_hosted_rpc.pb-c.c` & `esp_hosted_rpc.pb-c.h`. +For this, third party software for protobuf C compiler is needed to be installed +- Debian/Ubuntu + - sudo apt install protobuf-c-compiler +- Mac OS + - brew install protobuf +- Windows + - check https://github.com/protobuf-c/protobuf-c + +`protoc-c` command should be available once installed. + +This software might only be needed on development environment, Once esp_hosted_rpc.pb-c.c & esp_hosted_rpc.pb-c.h files are generated, could also be uninstalled. + +##### Steps to generate +```sh +$ cd /common/proto +$ protoc-c esp_hosted_rpc.proto --c_out=. +``` + +## Add new RPC message +To send an new RPC request/response + +1. Add C function in `host/host_common/commands.c` +2. Create python binding in `host/linux/host_control/python_support/commands_map_py_to_c.py` and its python function in `host/linux/host_control/python_support/commands_lib.py`. +3. Add ESP side C function in `esp/esp_driver/network_adapter/main/slave_commands.c`, respective to python function, to handle added message field. + +User can test added functionality using `host/linux/host_control/python_support/test.py`. diff --git a/resources/espressif__esp_hosted/common/proto/esp_hosted_rpc.pb-c.c b/resources/espressif__esp_hosted/common/proto/esp_hosted_rpc.pb-c.c new file mode 100644 index 0000000..eb1a1e3 --- /dev/null +++ b/resources/espressif__esp_hosted/common/proto/esp_hosted_rpc.pb-c.c @@ -0,0 +1,17767 @@ +/* Generated by the protocol buffer compiler. DO NOT EDIT! */ +/* Generated from: esp_hosted_rpc.proto */ + +/* Do not generate deprecated warnings for self */ +#ifndef PROTOBUF_C__NO_DEPRECATED +#define PROTOBUF_C__NO_DEPRECATED +#endif + +#include "esp_hosted_rpc.pb-c.h" +void wifi_init_config__init + (WifiInitConfig *message) +{ + static const WifiInitConfig init_value = WIFI_INIT_CONFIG__INIT; + *message = init_value; +} +size_t wifi_init_config__get_packed_size + (const WifiInitConfig *message) +{ + assert(message->base.descriptor == &wifi_init_config__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_init_config__pack + (const WifiInitConfig *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_init_config__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_init_config__pack_to_buffer + (const WifiInitConfig *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_init_config__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiInitConfig * + wifi_init_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiInitConfig *) + protobuf_c_message_unpack (&wifi_init_config__descriptor, + allocator, len, data); +} +void wifi_init_config__free_unpacked + (WifiInitConfig *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_init_config__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_country__init + (WifiCountry *message) +{ + static const WifiCountry init_value = WIFI_COUNTRY__INIT; + *message = init_value; +} +size_t wifi_country__get_packed_size + (const WifiCountry *message) +{ + assert(message->base.descriptor == &wifi_country__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_country__pack + (const WifiCountry *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_country__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_country__pack_to_buffer + (const WifiCountry *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_country__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiCountry * + wifi_country__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiCountry *) + protobuf_c_message_unpack (&wifi_country__descriptor, + allocator, len, data); +} +void wifi_country__free_unpacked + (WifiCountry *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_country__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_active_scan_time__init + (WifiActiveScanTime *message) +{ + static const WifiActiveScanTime init_value = WIFI_ACTIVE_SCAN_TIME__INIT; + *message = init_value; +} +size_t wifi_active_scan_time__get_packed_size + (const WifiActiveScanTime *message) +{ + assert(message->base.descriptor == &wifi_active_scan_time__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_active_scan_time__pack + (const WifiActiveScanTime *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_active_scan_time__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_active_scan_time__pack_to_buffer + (const WifiActiveScanTime *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_active_scan_time__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiActiveScanTime * + wifi_active_scan_time__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiActiveScanTime *) + protobuf_c_message_unpack (&wifi_active_scan_time__descriptor, + allocator, len, data); +} +void wifi_active_scan_time__free_unpacked + (WifiActiveScanTime *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_active_scan_time__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_scan_time__init + (WifiScanTime *message) +{ + static const WifiScanTime init_value = WIFI_SCAN_TIME__INIT; + *message = init_value; +} +size_t wifi_scan_time__get_packed_size + (const WifiScanTime *message) +{ + assert(message->base.descriptor == &wifi_scan_time__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_scan_time__pack + (const WifiScanTime *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_scan_time__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_scan_time__pack_to_buffer + (const WifiScanTime *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_scan_time__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiScanTime * + wifi_scan_time__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiScanTime *) + protobuf_c_message_unpack (&wifi_scan_time__descriptor, + allocator, len, data); +} +void wifi_scan_time__free_unpacked + (WifiScanTime *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_scan_time__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_scan_config__init + (WifiScanConfig *message) +{ + static const WifiScanConfig init_value = WIFI_SCAN_CONFIG__INIT; + *message = init_value; +} +size_t wifi_scan_config__get_packed_size + (const WifiScanConfig *message) +{ + assert(message->base.descriptor == &wifi_scan_config__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_scan_config__pack + (const WifiScanConfig *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_scan_config__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_scan_config__pack_to_buffer + (const WifiScanConfig *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_scan_config__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiScanConfig * + wifi_scan_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiScanConfig *) + protobuf_c_message_unpack (&wifi_scan_config__descriptor, + allocator, len, data); +} +void wifi_scan_config__free_unpacked + (WifiScanConfig *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_scan_config__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_he_ap_info__init + (WifiHeApInfo *message) +{ + static const WifiHeApInfo init_value = WIFI_HE_AP_INFO__INIT; + *message = init_value; +} +size_t wifi_he_ap_info__get_packed_size + (const WifiHeApInfo *message) +{ + assert(message->base.descriptor == &wifi_he_ap_info__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_he_ap_info__pack + (const WifiHeApInfo *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_he_ap_info__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_he_ap_info__pack_to_buffer + (const WifiHeApInfo *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_he_ap_info__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiHeApInfo * + wifi_he_ap_info__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiHeApInfo *) + protobuf_c_message_unpack (&wifi_he_ap_info__descriptor, + allocator, len, data); +} +void wifi_he_ap_info__free_unpacked + (WifiHeApInfo *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_he_ap_info__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_ap_record__init + (WifiApRecord *message) +{ + static const WifiApRecord init_value = WIFI_AP_RECORD__INIT; + *message = init_value; +} +size_t wifi_ap_record__get_packed_size + (const WifiApRecord *message) +{ + assert(message->base.descriptor == &wifi_ap_record__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_ap_record__pack + (const WifiApRecord *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_ap_record__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_ap_record__pack_to_buffer + (const WifiApRecord *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_ap_record__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiApRecord * + wifi_ap_record__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiApRecord *) + protobuf_c_message_unpack (&wifi_ap_record__descriptor, + allocator, len, data); +} +void wifi_ap_record__free_unpacked + (WifiApRecord *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_ap_record__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_scan_threshold__init + (WifiScanThreshold *message) +{ + static const WifiScanThreshold init_value = WIFI_SCAN_THRESHOLD__INIT; + *message = init_value; +} +size_t wifi_scan_threshold__get_packed_size + (const WifiScanThreshold *message) +{ + assert(message->base.descriptor == &wifi_scan_threshold__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_scan_threshold__pack + (const WifiScanThreshold *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_scan_threshold__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_scan_threshold__pack_to_buffer + (const WifiScanThreshold *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_scan_threshold__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiScanThreshold * + wifi_scan_threshold__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiScanThreshold *) + protobuf_c_message_unpack (&wifi_scan_threshold__descriptor, + allocator, len, data); +} +void wifi_scan_threshold__free_unpacked + (WifiScanThreshold *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_scan_threshold__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_pmf_config__init + (WifiPmfConfig *message) +{ + static const WifiPmfConfig init_value = WIFI_PMF_CONFIG__INIT; + *message = init_value; +} +size_t wifi_pmf_config__get_packed_size + (const WifiPmfConfig *message) +{ + assert(message->base.descriptor == &wifi_pmf_config__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_pmf_config__pack + (const WifiPmfConfig *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_pmf_config__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_pmf_config__pack_to_buffer + (const WifiPmfConfig *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_pmf_config__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiPmfConfig * + wifi_pmf_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiPmfConfig *) + protobuf_c_message_unpack (&wifi_pmf_config__descriptor, + allocator, len, data); +} +void wifi_pmf_config__free_unpacked + (WifiPmfConfig *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_pmf_config__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_ap_config__init + (WifiApConfig *message) +{ + static const WifiApConfig init_value = WIFI_AP_CONFIG__INIT; + *message = init_value; +} +size_t wifi_ap_config__get_packed_size + (const WifiApConfig *message) +{ + assert(message->base.descriptor == &wifi_ap_config__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_ap_config__pack + (const WifiApConfig *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_ap_config__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_ap_config__pack_to_buffer + (const WifiApConfig *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_ap_config__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiApConfig * + wifi_ap_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiApConfig *) + protobuf_c_message_unpack (&wifi_ap_config__descriptor, + allocator, len, data); +} +void wifi_ap_config__free_unpacked + (WifiApConfig *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_ap_config__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_sta_config__init + (WifiStaConfig *message) +{ + static const WifiStaConfig init_value = WIFI_STA_CONFIG__INIT; + *message = init_value; +} +size_t wifi_sta_config__get_packed_size + (const WifiStaConfig *message) +{ + assert(message->base.descriptor == &wifi_sta_config__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_sta_config__pack + (const WifiStaConfig *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_sta_config__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_sta_config__pack_to_buffer + (const WifiStaConfig *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_sta_config__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiStaConfig * + wifi_sta_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiStaConfig *) + protobuf_c_message_unpack (&wifi_sta_config__descriptor, + allocator, len, data); +} +void wifi_sta_config__free_unpacked + (WifiStaConfig *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_sta_config__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_config__init + (WifiConfig *message) +{ + static const WifiConfig init_value = WIFI_CONFIG__INIT; + *message = init_value; +} +size_t wifi_config__get_packed_size + (const WifiConfig *message) +{ + assert(message->base.descriptor == &wifi_config__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_config__pack + (const WifiConfig *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_config__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_config__pack_to_buffer + (const WifiConfig *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_config__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiConfig * + wifi_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiConfig *) + protobuf_c_message_unpack (&wifi_config__descriptor, + allocator, len, data); +} +void wifi_config__free_unpacked + (WifiConfig *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_config__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_sta_info__init + (WifiStaInfo *message) +{ + static const WifiStaInfo init_value = WIFI_STA_INFO__INIT; + *message = init_value; +} +size_t wifi_sta_info__get_packed_size + (const WifiStaInfo *message) +{ + assert(message->base.descriptor == &wifi_sta_info__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_sta_info__pack + (const WifiStaInfo *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_sta_info__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_sta_info__pack_to_buffer + (const WifiStaInfo *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_sta_info__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiStaInfo * + wifi_sta_info__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiStaInfo *) + protobuf_c_message_unpack (&wifi_sta_info__descriptor, + allocator, len, data); +} +void wifi_sta_info__free_unpacked + (WifiStaInfo *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_sta_info__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_sta_list__init + (WifiStaList *message) +{ + static const WifiStaList init_value = WIFI_STA_LIST__INIT; + *message = init_value; +} +size_t wifi_sta_list__get_packed_size + (const WifiStaList *message) +{ + assert(message->base.descriptor == &wifi_sta_list__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_sta_list__pack + (const WifiStaList *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_sta_list__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_sta_list__pack_to_buffer + (const WifiStaList *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_sta_list__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiStaList * + wifi_sta_list__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiStaList *) + protobuf_c_message_unpack (&wifi_sta_list__descriptor, + allocator, len, data); +} +void wifi_sta_list__free_unpacked + (WifiStaList *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_sta_list__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_pkt_rx_ctrl__init + (WifiPktRxCtrl *message) +{ + static const WifiPktRxCtrl init_value = WIFI_PKT_RX_CTRL__INIT; + *message = init_value; +} +size_t wifi_pkt_rx_ctrl__get_packed_size + (const WifiPktRxCtrl *message) +{ + assert(message->base.descriptor == &wifi_pkt_rx_ctrl__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_pkt_rx_ctrl__pack + (const WifiPktRxCtrl *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_pkt_rx_ctrl__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_pkt_rx_ctrl__pack_to_buffer + (const WifiPktRxCtrl *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_pkt_rx_ctrl__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiPktRxCtrl * + wifi_pkt_rx_ctrl__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiPktRxCtrl *) + protobuf_c_message_unpack (&wifi_pkt_rx_ctrl__descriptor, + allocator, len, data); +} +void wifi_pkt_rx_ctrl__free_unpacked + (WifiPktRxCtrl *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_pkt_rx_ctrl__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_promiscuous_pkt__init + (WifiPromiscuousPkt *message) +{ + static const WifiPromiscuousPkt init_value = WIFI_PROMISCUOUS_PKT__INIT; + *message = init_value; +} +size_t wifi_promiscuous_pkt__get_packed_size + (const WifiPromiscuousPkt *message) +{ + assert(message->base.descriptor == &wifi_promiscuous_pkt__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_promiscuous_pkt__pack + (const WifiPromiscuousPkt *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_promiscuous_pkt__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_promiscuous_pkt__pack_to_buffer + (const WifiPromiscuousPkt *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_promiscuous_pkt__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiPromiscuousPkt * + wifi_promiscuous_pkt__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiPromiscuousPkt *) + protobuf_c_message_unpack (&wifi_promiscuous_pkt__descriptor, + allocator, len, data); +} +void wifi_promiscuous_pkt__free_unpacked + (WifiPromiscuousPkt *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_promiscuous_pkt__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_promiscuous_filter__init + (WifiPromiscuousFilter *message) +{ + static const WifiPromiscuousFilter init_value = WIFI_PROMISCUOUS_FILTER__INIT; + *message = init_value; +} +size_t wifi_promiscuous_filter__get_packed_size + (const WifiPromiscuousFilter *message) +{ + assert(message->base.descriptor == &wifi_promiscuous_filter__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_promiscuous_filter__pack + (const WifiPromiscuousFilter *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_promiscuous_filter__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_promiscuous_filter__pack_to_buffer + (const WifiPromiscuousFilter *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_promiscuous_filter__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiPromiscuousFilter * + wifi_promiscuous_filter__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiPromiscuousFilter *) + protobuf_c_message_unpack (&wifi_promiscuous_filter__descriptor, + allocator, len, data); +} +void wifi_promiscuous_filter__free_unpacked + (WifiPromiscuousFilter *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_promiscuous_filter__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_csi_config__init + (WifiCsiConfig *message) +{ + static const WifiCsiConfig init_value = WIFI_CSI_CONFIG__INIT; + *message = init_value; +} +size_t wifi_csi_config__get_packed_size + (const WifiCsiConfig *message) +{ + assert(message->base.descriptor == &wifi_csi_config__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_csi_config__pack + (const WifiCsiConfig *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_csi_config__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_csi_config__pack_to_buffer + (const WifiCsiConfig *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_csi_config__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiCsiConfig * + wifi_csi_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiCsiConfig *) + protobuf_c_message_unpack (&wifi_csi_config__descriptor, + allocator, len, data); +} +void wifi_csi_config__free_unpacked + (WifiCsiConfig *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_csi_config__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_csi_info__init + (WifiCsiInfo *message) +{ + static const WifiCsiInfo init_value = WIFI_CSI_INFO__INIT; + *message = init_value; +} +size_t wifi_csi_info__get_packed_size + (const WifiCsiInfo *message) +{ + assert(message->base.descriptor == &wifi_csi_info__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_csi_info__pack + (const WifiCsiInfo *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_csi_info__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_csi_info__pack_to_buffer + (const WifiCsiInfo *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_csi_info__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiCsiInfo * + wifi_csi_info__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiCsiInfo *) + protobuf_c_message_unpack (&wifi_csi_info__descriptor, + allocator, len, data); +} +void wifi_csi_info__free_unpacked + (WifiCsiInfo *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_csi_info__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_ant_gpio__init + (WifiAntGpio *message) +{ + static const WifiAntGpio init_value = WIFI_ANT_GPIO__INIT; + *message = init_value; +} +size_t wifi_ant_gpio__get_packed_size + (const WifiAntGpio *message) +{ + assert(message->base.descriptor == &wifi_ant_gpio__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_ant_gpio__pack + (const WifiAntGpio *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_ant_gpio__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_ant_gpio__pack_to_buffer + (const WifiAntGpio *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_ant_gpio__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiAntGpio * + wifi_ant_gpio__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiAntGpio *) + protobuf_c_message_unpack (&wifi_ant_gpio__descriptor, + allocator, len, data); +} +void wifi_ant_gpio__free_unpacked + (WifiAntGpio *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_ant_gpio__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_ant_gpio_config__init + (WifiAntGpioConfig *message) +{ + static const WifiAntGpioConfig init_value = WIFI_ANT_GPIO_CONFIG__INIT; + *message = init_value; +} +size_t wifi_ant_gpio_config__get_packed_size + (const WifiAntGpioConfig *message) +{ + assert(message->base.descriptor == &wifi_ant_gpio_config__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_ant_gpio_config__pack + (const WifiAntGpioConfig *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_ant_gpio_config__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_ant_gpio_config__pack_to_buffer + (const WifiAntGpioConfig *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_ant_gpio_config__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiAntGpioConfig * + wifi_ant_gpio_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiAntGpioConfig *) + protobuf_c_message_unpack (&wifi_ant_gpio_config__descriptor, + allocator, len, data); +} +void wifi_ant_gpio_config__free_unpacked + (WifiAntGpioConfig *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_ant_gpio_config__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_ant_config__init + (WifiAntConfig *message) +{ + static const WifiAntConfig init_value = WIFI_ANT_CONFIG__INIT; + *message = init_value; +} +size_t wifi_ant_config__get_packed_size + (const WifiAntConfig *message) +{ + assert(message->base.descriptor == &wifi_ant_config__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_ant_config__pack + (const WifiAntConfig *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_ant_config__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_ant_config__pack_to_buffer + (const WifiAntConfig *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_ant_config__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiAntConfig * + wifi_ant_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiAntConfig *) + protobuf_c_message_unpack (&wifi_ant_config__descriptor, + allocator, len, data); +} +void wifi_ant_config__free_unpacked + (WifiAntConfig *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_ant_config__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_action_tx_req__init + (WifiActionTxReq *message) +{ + static const WifiActionTxReq init_value = WIFI_ACTION_TX_REQ__INIT; + *message = init_value; +} +size_t wifi_action_tx_req__get_packed_size + (const WifiActionTxReq *message) +{ + assert(message->base.descriptor == &wifi_action_tx_req__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_action_tx_req__pack + (const WifiActionTxReq *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_action_tx_req__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_action_tx_req__pack_to_buffer + (const WifiActionTxReq *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_action_tx_req__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiActionTxReq * + wifi_action_tx_req__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiActionTxReq *) + protobuf_c_message_unpack (&wifi_action_tx_req__descriptor, + allocator, len, data); +} +void wifi_action_tx_req__free_unpacked + (WifiActionTxReq *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_action_tx_req__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_ftm_initiator_cfg__init + (WifiFtmInitiatorCfg *message) +{ + static const WifiFtmInitiatorCfg init_value = WIFI_FTM_INITIATOR_CFG__INIT; + *message = init_value; +} +size_t wifi_ftm_initiator_cfg__get_packed_size + (const WifiFtmInitiatorCfg *message) +{ + assert(message->base.descriptor == &wifi_ftm_initiator_cfg__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_ftm_initiator_cfg__pack + (const WifiFtmInitiatorCfg *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_ftm_initiator_cfg__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_ftm_initiator_cfg__pack_to_buffer + (const WifiFtmInitiatorCfg *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_ftm_initiator_cfg__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiFtmInitiatorCfg * + wifi_ftm_initiator_cfg__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiFtmInitiatorCfg *) + protobuf_c_message_unpack (&wifi_ftm_initiator_cfg__descriptor, + allocator, len, data); +} +void wifi_ftm_initiator_cfg__free_unpacked + (WifiFtmInitiatorCfg *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_ftm_initiator_cfg__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_event_sta_scan_done__init + (WifiEventStaScanDone *message) +{ + static const WifiEventStaScanDone init_value = WIFI_EVENT_STA_SCAN_DONE__INIT; + *message = init_value; +} +size_t wifi_event_sta_scan_done__get_packed_size + (const WifiEventStaScanDone *message) +{ + assert(message->base.descriptor == &wifi_event_sta_scan_done__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_event_sta_scan_done__pack + (const WifiEventStaScanDone *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_event_sta_scan_done__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_event_sta_scan_done__pack_to_buffer + (const WifiEventStaScanDone *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_event_sta_scan_done__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiEventStaScanDone * + wifi_event_sta_scan_done__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiEventStaScanDone *) + protobuf_c_message_unpack (&wifi_event_sta_scan_done__descriptor, + allocator, len, data); +} +void wifi_event_sta_scan_done__free_unpacked + (WifiEventStaScanDone *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_event_sta_scan_done__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_event_sta_connected__init + (WifiEventStaConnected *message) +{ + static const WifiEventStaConnected init_value = WIFI_EVENT_STA_CONNECTED__INIT; + *message = init_value; +} +size_t wifi_event_sta_connected__get_packed_size + (const WifiEventStaConnected *message) +{ + assert(message->base.descriptor == &wifi_event_sta_connected__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_event_sta_connected__pack + (const WifiEventStaConnected *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_event_sta_connected__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_event_sta_connected__pack_to_buffer + (const WifiEventStaConnected *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_event_sta_connected__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiEventStaConnected * + wifi_event_sta_connected__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiEventStaConnected *) + protobuf_c_message_unpack (&wifi_event_sta_connected__descriptor, + allocator, len, data); +} +void wifi_event_sta_connected__free_unpacked + (WifiEventStaConnected *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_event_sta_connected__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_event_sta_disconnected__init + (WifiEventStaDisconnected *message) +{ + static const WifiEventStaDisconnected init_value = WIFI_EVENT_STA_DISCONNECTED__INIT; + *message = init_value; +} +size_t wifi_event_sta_disconnected__get_packed_size + (const WifiEventStaDisconnected *message) +{ + assert(message->base.descriptor == &wifi_event_sta_disconnected__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_event_sta_disconnected__pack + (const WifiEventStaDisconnected *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_event_sta_disconnected__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_event_sta_disconnected__pack_to_buffer + (const WifiEventStaDisconnected *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_event_sta_disconnected__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiEventStaDisconnected * + wifi_event_sta_disconnected__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiEventStaDisconnected *) + protobuf_c_message_unpack (&wifi_event_sta_disconnected__descriptor, + allocator, len, data); +} +void wifi_event_sta_disconnected__free_unpacked + (WifiEventStaDisconnected *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_event_sta_disconnected__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_event_sta_authmode_change__init + (WifiEventStaAuthmodeChange *message) +{ + static const WifiEventStaAuthmodeChange init_value = WIFI_EVENT_STA_AUTHMODE_CHANGE__INIT; + *message = init_value; +} +size_t wifi_event_sta_authmode_change__get_packed_size + (const WifiEventStaAuthmodeChange *message) +{ + assert(message->base.descriptor == &wifi_event_sta_authmode_change__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_event_sta_authmode_change__pack + (const WifiEventStaAuthmodeChange *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_event_sta_authmode_change__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_event_sta_authmode_change__pack_to_buffer + (const WifiEventStaAuthmodeChange *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_event_sta_authmode_change__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiEventStaAuthmodeChange * + wifi_event_sta_authmode_change__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiEventStaAuthmodeChange *) + protobuf_c_message_unpack (&wifi_event_sta_authmode_change__descriptor, + allocator, len, data); +} +void wifi_event_sta_authmode_change__free_unpacked + (WifiEventStaAuthmodeChange *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_event_sta_authmode_change__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_event_sta_wps_er_pin__init + (WifiEventStaWpsErPin *message) +{ + static const WifiEventStaWpsErPin init_value = WIFI_EVENT_STA_WPS_ER_PIN__INIT; + *message = init_value; +} +size_t wifi_event_sta_wps_er_pin__get_packed_size + (const WifiEventStaWpsErPin *message) +{ + assert(message->base.descriptor == &wifi_event_sta_wps_er_pin__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_event_sta_wps_er_pin__pack + (const WifiEventStaWpsErPin *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_event_sta_wps_er_pin__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_event_sta_wps_er_pin__pack_to_buffer + (const WifiEventStaWpsErPin *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_event_sta_wps_er_pin__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiEventStaWpsErPin * + wifi_event_sta_wps_er_pin__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiEventStaWpsErPin *) + protobuf_c_message_unpack (&wifi_event_sta_wps_er_pin__descriptor, + allocator, len, data); +} +void wifi_event_sta_wps_er_pin__free_unpacked + (WifiEventStaWpsErPin *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_event_sta_wps_er_pin__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void ap_cred__init + (ApCred *message) +{ + static const ApCred init_value = AP_CRED__INIT; + *message = init_value; +} +size_t ap_cred__get_packed_size + (const ApCred *message) +{ + assert(message->base.descriptor == &ap_cred__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t ap_cred__pack + (const ApCred *message, + uint8_t *out) +{ + assert(message->base.descriptor == &ap_cred__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t ap_cred__pack_to_buffer + (const ApCred *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &ap_cred__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +ApCred * + ap_cred__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (ApCred *) + protobuf_c_message_unpack (&ap_cred__descriptor, + allocator, len, data); +} +void ap_cred__free_unpacked + (ApCred *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &ap_cred__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_event_sta_wps_er_success__init + (WifiEventStaWpsErSuccess *message) +{ + static const WifiEventStaWpsErSuccess init_value = WIFI_EVENT_STA_WPS_ER_SUCCESS__INIT; + *message = init_value; +} +size_t wifi_event_sta_wps_er_success__get_packed_size + (const WifiEventStaWpsErSuccess *message) +{ + assert(message->base.descriptor == &wifi_event_sta_wps_er_success__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_event_sta_wps_er_success__pack + (const WifiEventStaWpsErSuccess *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_event_sta_wps_er_success__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_event_sta_wps_er_success__pack_to_buffer + (const WifiEventStaWpsErSuccess *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_event_sta_wps_er_success__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiEventStaWpsErSuccess * + wifi_event_sta_wps_er_success__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiEventStaWpsErSuccess *) + protobuf_c_message_unpack (&wifi_event_sta_wps_er_success__descriptor, + allocator, len, data); +} +void wifi_event_sta_wps_er_success__free_unpacked + (WifiEventStaWpsErSuccess *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_event_sta_wps_er_success__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_event_ap_probe_req_rx__init + (WifiEventApProbeReqRx *message) +{ + static const WifiEventApProbeReqRx init_value = WIFI_EVENT_AP_PROBE_REQ_RX__INIT; + *message = init_value; +} +size_t wifi_event_ap_probe_req_rx__get_packed_size + (const WifiEventApProbeReqRx *message) +{ + assert(message->base.descriptor == &wifi_event_ap_probe_req_rx__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_event_ap_probe_req_rx__pack + (const WifiEventApProbeReqRx *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_event_ap_probe_req_rx__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_event_ap_probe_req_rx__pack_to_buffer + (const WifiEventApProbeReqRx *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_event_ap_probe_req_rx__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiEventApProbeReqRx * + wifi_event_ap_probe_req_rx__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiEventApProbeReqRx *) + protobuf_c_message_unpack (&wifi_event_ap_probe_req_rx__descriptor, + allocator, len, data); +} +void wifi_event_ap_probe_req_rx__free_unpacked + (WifiEventApProbeReqRx *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_event_ap_probe_req_rx__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_event_bss_rssi_low__init + (WifiEventBssRssiLow *message) +{ + static const WifiEventBssRssiLow init_value = WIFI_EVENT_BSS_RSSI_LOW__INIT; + *message = init_value; +} +size_t wifi_event_bss_rssi_low__get_packed_size + (const WifiEventBssRssiLow *message) +{ + assert(message->base.descriptor == &wifi_event_bss_rssi_low__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_event_bss_rssi_low__pack + (const WifiEventBssRssiLow *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_event_bss_rssi_low__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_event_bss_rssi_low__pack_to_buffer + (const WifiEventBssRssiLow *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_event_bss_rssi_low__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiEventBssRssiLow * + wifi_event_bss_rssi_low__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiEventBssRssiLow *) + protobuf_c_message_unpack (&wifi_event_bss_rssi_low__descriptor, + allocator, len, data); +} +void wifi_event_bss_rssi_low__free_unpacked + (WifiEventBssRssiLow *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_event_bss_rssi_low__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_ftm_report_entry__init + (WifiFtmReportEntry *message) +{ + static const WifiFtmReportEntry init_value = WIFI_FTM_REPORT_ENTRY__INIT; + *message = init_value; +} +size_t wifi_ftm_report_entry__get_packed_size + (const WifiFtmReportEntry *message) +{ + assert(message->base.descriptor == &wifi_ftm_report_entry__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_ftm_report_entry__pack + (const WifiFtmReportEntry *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_ftm_report_entry__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_ftm_report_entry__pack_to_buffer + (const WifiFtmReportEntry *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_ftm_report_entry__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiFtmReportEntry * + wifi_ftm_report_entry__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiFtmReportEntry *) + protobuf_c_message_unpack (&wifi_ftm_report_entry__descriptor, + allocator, len, data); +} +void wifi_ftm_report_entry__free_unpacked + (WifiFtmReportEntry *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_ftm_report_entry__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_event_ftm_report__init + (WifiEventFtmReport *message) +{ + static const WifiEventFtmReport init_value = WIFI_EVENT_FTM_REPORT__INIT; + *message = init_value; +} +size_t wifi_event_ftm_report__get_packed_size + (const WifiEventFtmReport *message) +{ + assert(message->base.descriptor == &wifi_event_ftm_report__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_event_ftm_report__pack + (const WifiEventFtmReport *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_event_ftm_report__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_event_ftm_report__pack_to_buffer + (const WifiEventFtmReport *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_event_ftm_report__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiEventFtmReport * + wifi_event_ftm_report__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiEventFtmReport *) + protobuf_c_message_unpack (&wifi_event_ftm_report__descriptor, + allocator, len, data); +} +void wifi_event_ftm_report__free_unpacked + (WifiEventFtmReport *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_event_ftm_report__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_event_action_tx_status__init + (WifiEventActionTxStatus *message) +{ + static const WifiEventActionTxStatus init_value = WIFI_EVENT_ACTION_TX_STATUS__INIT; + *message = init_value; +} +size_t wifi_event_action_tx_status__get_packed_size + (const WifiEventActionTxStatus *message) +{ + assert(message->base.descriptor == &wifi_event_action_tx_status__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_event_action_tx_status__pack + (const WifiEventActionTxStatus *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_event_action_tx_status__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_event_action_tx_status__pack_to_buffer + (const WifiEventActionTxStatus *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_event_action_tx_status__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiEventActionTxStatus * + wifi_event_action_tx_status__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiEventActionTxStatus *) + protobuf_c_message_unpack (&wifi_event_action_tx_status__descriptor, + allocator, len, data); +} +void wifi_event_action_tx_status__free_unpacked + (WifiEventActionTxStatus *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_event_action_tx_status__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_event_roc_done__init + (WifiEventRocDone *message) +{ + static const WifiEventRocDone init_value = WIFI_EVENT_ROC_DONE__INIT; + *message = init_value; +} +size_t wifi_event_roc_done__get_packed_size + (const WifiEventRocDone *message) +{ + assert(message->base.descriptor == &wifi_event_roc_done__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_event_roc_done__pack + (const WifiEventRocDone *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_event_roc_done__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_event_roc_done__pack_to_buffer + (const WifiEventRocDone *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_event_roc_done__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiEventRocDone * + wifi_event_roc_done__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiEventRocDone *) + protobuf_c_message_unpack (&wifi_event_roc_done__descriptor, + allocator, len, data); +} +void wifi_event_roc_done__free_unpacked + (WifiEventRocDone *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_event_roc_done__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_event_ap_wps_rg_pin__init + (WifiEventApWpsRgPin *message) +{ + static const WifiEventApWpsRgPin init_value = WIFI_EVENT_AP_WPS_RG_PIN__INIT; + *message = init_value; +} +size_t wifi_event_ap_wps_rg_pin__get_packed_size + (const WifiEventApWpsRgPin *message) +{ + assert(message->base.descriptor == &wifi_event_ap_wps_rg_pin__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_event_ap_wps_rg_pin__pack + (const WifiEventApWpsRgPin *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_event_ap_wps_rg_pin__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_event_ap_wps_rg_pin__pack_to_buffer + (const WifiEventApWpsRgPin *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_event_ap_wps_rg_pin__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiEventApWpsRgPin * + wifi_event_ap_wps_rg_pin__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiEventApWpsRgPin *) + protobuf_c_message_unpack (&wifi_event_ap_wps_rg_pin__descriptor, + allocator, len, data); +} +void wifi_event_ap_wps_rg_pin__free_unpacked + (WifiEventApWpsRgPin *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_event_ap_wps_rg_pin__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_event_ap_wps_rg_fail_reason__init + (WifiEventApWpsRgFailReason *message) +{ + static const WifiEventApWpsRgFailReason init_value = WIFI_EVENT_AP_WPS_RG_FAIL_REASON__INIT; + *message = init_value; +} +size_t wifi_event_ap_wps_rg_fail_reason__get_packed_size + (const WifiEventApWpsRgFailReason *message) +{ + assert(message->base.descriptor == &wifi_event_ap_wps_rg_fail_reason__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_event_ap_wps_rg_fail_reason__pack + (const WifiEventApWpsRgFailReason *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_event_ap_wps_rg_fail_reason__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_event_ap_wps_rg_fail_reason__pack_to_buffer + (const WifiEventApWpsRgFailReason *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_event_ap_wps_rg_fail_reason__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiEventApWpsRgFailReason * + wifi_event_ap_wps_rg_fail_reason__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiEventApWpsRgFailReason *) + protobuf_c_message_unpack (&wifi_event_ap_wps_rg_fail_reason__descriptor, + allocator, len, data); +} +void wifi_event_ap_wps_rg_fail_reason__free_unpacked + (WifiEventApWpsRgFailReason *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_event_ap_wps_rg_fail_reason__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_event_ap_wps_rg_success__init + (WifiEventApWpsRgSuccess *message) +{ + static const WifiEventApWpsRgSuccess init_value = WIFI_EVENT_AP_WPS_RG_SUCCESS__INIT; + *message = init_value; +} +size_t wifi_event_ap_wps_rg_success__get_packed_size + (const WifiEventApWpsRgSuccess *message) +{ + assert(message->base.descriptor == &wifi_event_ap_wps_rg_success__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_event_ap_wps_rg_success__pack + (const WifiEventApWpsRgSuccess *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_event_ap_wps_rg_success__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_event_ap_wps_rg_success__pack_to_buffer + (const WifiEventApWpsRgSuccess *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_event_ap_wps_rg_success__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiEventApWpsRgSuccess * + wifi_event_ap_wps_rg_success__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiEventApWpsRgSuccess *) + protobuf_c_message_unpack (&wifi_event_ap_wps_rg_success__descriptor, + allocator, len, data); +} +void wifi_event_ap_wps_rg_success__free_unpacked + (WifiEventApWpsRgSuccess *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_event_ap_wps_rg_success__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_protocols__init + (WifiProtocols *message) +{ + static const WifiProtocols init_value = WIFI_PROTOCOLS__INIT; + *message = init_value; +} +size_t wifi_protocols__get_packed_size + (const WifiProtocols *message) +{ + assert(message->base.descriptor == &wifi_protocols__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_protocols__pack + (const WifiProtocols *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_protocols__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_protocols__pack_to_buffer + (const WifiProtocols *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_protocols__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiProtocols * + wifi_protocols__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiProtocols *) + protobuf_c_message_unpack (&wifi_protocols__descriptor, + allocator, len, data); +} +void wifi_protocols__free_unpacked + (WifiProtocols *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_protocols__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_bandwidths__init + (WifiBandwidths *message) +{ + static const WifiBandwidths init_value = WIFI_BANDWIDTHS__INIT; + *message = init_value; +} +size_t wifi_bandwidths__get_packed_size + (const WifiBandwidths *message) +{ + assert(message->base.descriptor == &wifi_bandwidths__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_bandwidths__pack + (const WifiBandwidths *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_bandwidths__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_bandwidths__pack_to_buffer + (const WifiBandwidths *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_bandwidths__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiBandwidths * + wifi_bandwidths__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiBandwidths *) + protobuf_c_message_unpack (&wifi_bandwidths__descriptor, + allocator, len, data); +} +void wifi_bandwidths__free_unpacked + (WifiBandwidths *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_bandwidths__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void connected_stalist__init + (ConnectedSTAList *message) +{ + static const ConnectedSTAList init_value = CONNECTED_STALIST__INIT; + *message = init_value; +} +size_t connected_stalist__get_packed_size + (const ConnectedSTAList *message) +{ + assert(message->base.descriptor == &connected_stalist__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t connected_stalist__pack + (const ConnectedSTAList *message, + uint8_t *out) +{ + assert(message->base.descriptor == &connected_stalist__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t connected_stalist__pack_to_buffer + (const ConnectedSTAList *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &connected_stalist__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +ConnectedSTAList * + connected_stalist__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (ConnectedSTAList *) + protobuf_c_message_unpack (&connected_stalist__descriptor, + allocator, len, data); +} +void connected_stalist__free_unpacked + (ConnectedSTAList *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &connected_stalist__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__get_mac_address__init + (RpcReqGetMacAddress *message) +{ + static const RpcReqGetMacAddress init_value = RPC__REQ__GET_MAC_ADDRESS__INIT; + *message = init_value; +} +size_t rpc__req__get_mac_address__get_packed_size + (const RpcReqGetMacAddress *message) +{ + assert(message->base.descriptor == &rpc__req__get_mac_address__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__get_mac_address__pack + (const RpcReqGetMacAddress *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__get_mac_address__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__get_mac_address__pack_to_buffer + (const RpcReqGetMacAddress *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__get_mac_address__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqGetMacAddress * + rpc__req__get_mac_address__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqGetMacAddress *) + protobuf_c_message_unpack (&rpc__req__get_mac_address__descriptor, + allocator, len, data); +} +void rpc__req__get_mac_address__free_unpacked + (RpcReqGetMacAddress *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__get_mac_address__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__get_mac_address__init + (RpcRespGetMacAddress *message) +{ + static const RpcRespGetMacAddress init_value = RPC__RESP__GET_MAC_ADDRESS__INIT; + *message = init_value; +} +size_t rpc__resp__get_mac_address__get_packed_size + (const RpcRespGetMacAddress *message) +{ + assert(message->base.descriptor == &rpc__resp__get_mac_address__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__get_mac_address__pack + (const RpcRespGetMacAddress *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__get_mac_address__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__get_mac_address__pack_to_buffer + (const RpcRespGetMacAddress *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__get_mac_address__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespGetMacAddress * + rpc__resp__get_mac_address__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespGetMacAddress *) + protobuf_c_message_unpack (&rpc__resp__get_mac_address__descriptor, + allocator, len, data); +} +void rpc__resp__get_mac_address__free_unpacked + (RpcRespGetMacAddress *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__get_mac_address__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__get_mode__init + (RpcReqGetMode *message) +{ + static const RpcReqGetMode init_value = RPC__REQ__GET_MODE__INIT; + *message = init_value; +} +size_t rpc__req__get_mode__get_packed_size + (const RpcReqGetMode *message) +{ + assert(message->base.descriptor == &rpc__req__get_mode__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__get_mode__pack + (const RpcReqGetMode *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__get_mode__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__get_mode__pack_to_buffer + (const RpcReqGetMode *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__get_mode__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqGetMode * + rpc__req__get_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqGetMode *) + protobuf_c_message_unpack (&rpc__req__get_mode__descriptor, + allocator, len, data); +} +void rpc__req__get_mode__free_unpacked + (RpcReqGetMode *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__get_mode__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__get_mode__init + (RpcRespGetMode *message) +{ + static const RpcRespGetMode init_value = RPC__RESP__GET_MODE__INIT; + *message = init_value; +} +size_t rpc__resp__get_mode__get_packed_size + (const RpcRespGetMode *message) +{ + assert(message->base.descriptor == &rpc__resp__get_mode__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__get_mode__pack + (const RpcRespGetMode *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__get_mode__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__get_mode__pack_to_buffer + (const RpcRespGetMode *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__get_mode__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespGetMode * + rpc__resp__get_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespGetMode *) + protobuf_c_message_unpack (&rpc__resp__get_mode__descriptor, + allocator, len, data); +} +void rpc__resp__get_mode__free_unpacked + (RpcRespGetMode *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__get_mode__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__set_mode__init + (RpcReqSetMode *message) +{ + static const RpcReqSetMode init_value = RPC__REQ__SET_MODE__INIT; + *message = init_value; +} +size_t rpc__req__set_mode__get_packed_size + (const RpcReqSetMode *message) +{ + assert(message->base.descriptor == &rpc__req__set_mode__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__set_mode__pack + (const RpcReqSetMode *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__set_mode__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__set_mode__pack_to_buffer + (const RpcReqSetMode *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__set_mode__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqSetMode * + rpc__req__set_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqSetMode *) + protobuf_c_message_unpack (&rpc__req__set_mode__descriptor, + allocator, len, data); +} +void rpc__req__set_mode__free_unpacked + (RpcReqSetMode *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__set_mode__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__set_mode__init + (RpcRespSetMode *message) +{ + static const RpcRespSetMode init_value = RPC__RESP__SET_MODE__INIT; + *message = init_value; +} +size_t rpc__resp__set_mode__get_packed_size + (const RpcRespSetMode *message) +{ + assert(message->base.descriptor == &rpc__resp__set_mode__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__set_mode__pack + (const RpcRespSetMode *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__set_mode__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__set_mode__pack_to_buffer + (const RpcRespSetMode *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__set_mode__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespSetMode * + rpc__resp__set_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespSetMode *) + protobuf_c_message_unpack (&rpc__resp__set_mode__descriptor, + allocator, len, data); +} +void rpc__resp__set_mode__free_unpacked + (RpcRespSetMode *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__set_mode__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__get_ps__init + (RpcReqGetPs *message) +{ + static const RpcReqGetPs init_value = RPC__REQ__GET_PS__INIT; + *message = init_value; +} +size_t rpc__req__get_ps__get_packed_size + (const RpcReqGetPs *message) +{ + assert(message->base.descriptor == &rpc__req__get_ps__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__get_ps__pack + (const RpcReqGetPs *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__get_ps__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__get_ps__pack_to_buffer + (const RpcReqGetPs *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__get_ps__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqGetPs * + rpc__req__get_ps__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqGetPs *) + protobuf_c_message_unpack (&rpc__req__get_ps__descriptor, + allocator, len, data); +} +void rpc__req__get_ps__free_unpacked + (RpcReqGetPs *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__get_ps__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__get_ps__init + (RpcRespGetPs *message) +{ + static const RpcRespGetPs init_value = RPC__RESP__GET_PS__INIT; + *message = init_value; +} +size_t rpc__resp__get_ps__get_packed_size + (const RpcRespGetPs *message) +{ + assert(message->base.descriptor == &rpc__resp__get_ps__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__get_ps__pack + (const RpcRespGetPs *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__get_ps__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__get_ps__pack_to_buffer + (const RpcRespGetPs *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__get_ps__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespGetPs * + rpc__resp__get_ps__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespGetPs *) + protobuf_c_message_unpack (&rpc__resp__get_ps__descriptor, + allocator, len, data); +} +void rpc__resp__get_ps__free_unpacked + (RpcRespGetPs *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__get_ps__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__set_ps__init + (RpcReqSetPs *message) +{ + static const RpcReqSetPs init_value = RPC__REQ__SET_PS__INIT; + *message = init_value; +} +size_t rpc__req__set_ps__get_packed_size + (const RpcReqSetPs *message) +{ + assert(message->base.descriptor == &rpc__req__set_ps__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__set_ps__pack + (const RpcReqSetPs *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__set_ps__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__set_ps__pack_to_buffer + (const RpcReqSetPs *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__set_ps__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqSetPs * + rpc__req__set_ps__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqSetPs *) + protobuf_c_message_unpack (&rpc__req__set_ps__descriptor, + allocator, len, data); +} +void rpc__req__set_ps__free_unpacked + (RpcReqSetPs *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__set_ps__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__set_ps__init + (RpcRespSetPs *message) +{ + static const RpcRespSetPs init_value = RPC__RESP__SET_PS__INIT; + *message = init_value; +} +size_t rpc__resp__set_ps__get_packed_size + (const RpcRespSetPs *message) +{ + assert(message->base.descriptor == &rpc__resp__set_ps__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__set_ps__pack + (const RpcRespSetPs *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__set_ps__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__set_ps__pack_to_buffer + (const RpcRespSetPs *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__set_ps__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespSetPs * + rpc__resp__set_ps__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespSetPs *) + protobuf_c_message_unpack (&rpc__resp__set_ps__descriptor, + allocator, len, data); +} +void rpc__resp__set_ps__free_unpacked + (RpcRespSetPs *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__set_ps__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__set_mac_address__init + (RpcReqSetMacAddress *message) +{ + static const RpcReqSetMacAddress init_value = RPC__REQ__SET_MAC_ADDRESS__INIT; + *message = init_value; +} +size_t rpc__req__set_mac_address__get_packed_size + (const RpcReqSetMacAddress *message) +{ + assert(message->base.descriptor == &rpc__req__set_mac_address__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__set_mac_address__pack + (const RpcReqSetMacAddress *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__set_mac_address__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__set_mac_address__pack_to_buffer + (const RpcReqSetMacAddress *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__set_mac_address__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqSetMacAddress * + rpc__req__set_mac_address__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqSetMacAddress *) + protobuf_c_message_unpack (&rpc__req__set_mac_address__descriptor, + allocator, len, data); +} +void rpc__req__set_mac_address__free_unpacked + (RpcReqSetMacAddress *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__set_mac_address__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__set_mac_address__init + (RpcRespSetMacAddress *message) +{ + static const RpcRespSetMacAddress init_value = RPC__RESP__SET_MAC_ADDRESS__INIT; + *message = init_value; +} +size_t rpc__resp__set_mac_address__get_packed_size + (const RpcRespSetMacAddress *message) +{ + assert(message->base.descriptor == &rpc__resp__set_mac_address__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__set_mac_address__pack + (const RpcRespSetMacAddress *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__set_mac_address__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__set_mac_address__pack_to_buffer + (const RpcRespSetMacAddress *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__set_mac_address__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespSetMacAddress * + rpc__resp__set_mac_address__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespSetMacAddress *) + protobuf_c_message_unpack (&rpc__resp__set_mac_address__descriptor, + allocator, len, data); +} +void rpc__resp__set_mac_address__free_unpacked + (RpcRespSetMacAddress *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__set_mac_address__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__otabegin__init + (RpcReqOTABegin *message) +{ + static const RpcReqOTABegin init_value = RPC__REQ__OTABEGIN__INIT; + *message = init_value; +} +size_t rpc__req__otabegin__get_packed_size + (const RpcReqOTABegin *message) +{ + assert(message->base.descriptor == &rpc__req__otabegin__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__otabegin__pack + (const RpcReqOTABegin *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__otabegin__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__otabegin__pack_to_buffer + (const RpcReqOTABegin *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__otabegin__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqOTABegin * + rpc__req__otabegin__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqOTABegin *) + protobuf_c_message_unpack (&rpc__req__otabegin__descriptor, + allocator, len, data); +} +void rpc__req__otabegin__free_unpacked + (RpcReqOTABegin *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__otabegin__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__otabegin__init + (RpcRespOTABegin *message) +{ + static const RpcRespOTABegin init_value = RPC__RESP__OTABEGIN__INIT; + *message = init_value; +} +size_t rpc__resp__otabegin__get_packed_size + (const RpcRespOTABegin *message) +{ + assert(message->base.descriptor == &rpc__resp__otabegin__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__otabegin__pack + (const RpcRespOTABegin *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__otabegin__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__otabegin__pack_to_buffer + (const RpcRespOTABegin *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__otabegin__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespOTABegin * + rpc__resp__otabegin__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespOTABegin *) + protobuf_c_message_unpack (&rpc__resp__otabegin__descriptor, + allocator, len, data); +} +void rpc__resp__otabegin__free_unpacked + (RpcRespOTABegin *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__otabegin__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__otawrite__init + (RpcReqOTAWrite *message) +{ + static const RpcReqOTAWrite init_value = RPC__REQ__OTAWRITE__INIT; + *message = init_value; +} +size_t rpc__req__otawrite__get_packed_size + (const RpcReqOTAWrite *message) +{ + assert(message->base.descriptor == &rpc__req__otawrite__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__otawrite__pack + (const RpcReqOTAWrite *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__otawrite__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__otawrite__pack_to_buffer + (const RpcReqOTAWrite *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__otawrite__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqOTAWrite * + rpc__req__otawrite__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqOTAWrite *) + protobuf_c_message_unpack (&rpc__req__otawrite__descriptor, + allocator, len, data); +} +void rpc__req__otawrite__free_unpacked + (RpcReqOTAWrite *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__otawrite__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__otawrite__init + (RpcRespOTAWrite *message) +{ + static const RpcRespOTAWrite init_value = RPC__RESP__OTAWRITE__INIT; + *message = init_value; +} +size_t rpc__resp__otawrite__get_packed_size + (const RpcRespOTAWrite *message) +{ + assert(message->base.descriptor == &rpc__resp__otawrite__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__otawrite__pack + (const RpcRespOTAWrite *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__otawrite__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__otawrite__pack_to_buffer + (const RpcRespOTAWrite *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__otawrite__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespOTAWrite * + rpc__resp__otawrite__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespOTAWrite *) + protobuf_c_message_unpack (&rpc__resp__otawrite__descriptor, + allocator, len, data); +} +void rpc__resp__otawrite__free_unpacked + (RpcRespOTAWrite *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__otawrite__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__otaend__init + (RpcReqOTAEnd *message) +{ + static const RpcReqOTAEnd init_value = RPC__REQ__OTAEND__INIT; + *message = init_value; +} +size_t rpc__req__otaend__get_packed_size + (const RpcReqOTAEnd *message) +{ + assert(message->base.descriptor == &rpc__req__otaend__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__otaend__pack + (const RpcReqOTAEnd *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__otaend__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__otaend__pack_to_buffer + (const RpcReqOTAEnd *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__otaend__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqOTAEnd * + rpc__req__otaend__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqOTAEnd *) + protobuf_c_message_unpack (&rpc__req__otaend__descriptor, + allocator, len, data); +} +void rpc__req__otaend__free_unpacked + (RpcReqOTAEnd *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__otaend__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__otaend__init + (RpcRespOTAEnd *message) +{ + static const RpcRespOTAEnd init_value = RPC__RESP__OTAEND__INIT; + *message = init_value; +} +size_t rpc__resp__otaend__get_packed_size + (const RpcRespOTAEnd *message) +{ + assert(message->base.descriptor == &rpc__resp__otaend__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__otaend__pack + (const RpcRespOTAEnd *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__otaend__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__otaend__pack_to_buffer + (const RpcRespOTAEnd *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__otaend__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespOTAEnd * + rpc__resp__otaend__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespOTAEnd *) + protobuf_c_message_unpack (&rpc__resp__otaend__descriptor, + allocator, len, data); +} +void rpc__resp__otaend__free_unpacked + (RpcRespOTAEnd *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__otaend__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_set_max_tx_power__init + (RpcReqWifiSetMaxTxPower *message) +{ + static const RpcReqWifiSetMaxTxPower init_value = RPC__REQ__WIFI_SET_MAX_TX_POWER__INIT; + *message = init_value; +} +size_t rpc__req__wifi_set_max_tx_power__get_packed_size + (const RpcReqWifiSetMaxTxPower *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_max_tx_power__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_set_max_tx_power__pack + (const RpcReqWifiSetMaxTxPower *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_max_tx_power__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_set_max_tx_power__pack_to_buffer + (const RpcReqWifiSetMaxTxPower *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_max_tx_power__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiSetMaxTxPower * + rpc__req__wifi_set_max_tx_power__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiSetMaxTxPower *) + protobuf_c_message_unpack (&rpc__req__wifi_set_max_tx_power__descriptor, + allocator, len, data); +} +void rpc__req__wifi_set_max_tx_power__free_unpacked + (RpcReqWifiSetMaxTxPower *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_set_max_tx_power__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_set_max_tx_power__init + (RpcRespWifiSetMaxTxPower *message) +{ + static const RpcRespWifiSetMaxTxPower init_value = RPC__RESP__WIFI_SET_MAX_TX_POWER__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_set_max_tx_power__get_packed_size + (const RpcRespWifiSetMaxTxPower *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_max_tx_power__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_set_max_tx_power__pack + (const RpcRespWifiSetMaxTxPower *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_max_tx_power__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_set_max_tx_power__pack_to_buffer + (const RpcRespWifiSetMaxTxPower *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_max_tx_power__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiSetMaxTxPower * + rpc__resp__wifi_set_max_tx_power__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiSetMaxTxPower *) + protobuf_c_message_unpack (&rpc__resp__wifi_set_max_tx_power__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_set_max_tx_power__free_unpacked + (RpcRespWifiSetMaxTxPower *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_set_max_tx_power__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_get_max_tx_power__init + (RpcReqWifiGetMaxTxPower *message) +{ + static const RpcReqWifiGetMaxTxPower init_value = RPC__REQ__WIFI_GET_MAX_TX_POWER__INIT; + *message = init_value; +} +size_t rpc__req__wifi_get_max_tx_power__get_packed_size + (const RpcReqWifiGetMaxTxPower *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_max_tx_power__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_get_max_tx_power__pack + (const RpcReqWifiGetMaxTxPower *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_max_tx_power__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_get_max_tx_power__pack_to_buffer + (const RpcReqWifiGetMaxTxPower *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_max_tx_power__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiGetMaxTxPower * + rpc__req__wifi_get_max_tx_power__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiGetMaxTxPower *) + protobuf_c_message_unpack (&rpc__req__wifi_get_max_tx_power__descriptor, + allocator, len, data); +} +void rpc__req__wifi_get_max_tx_power__free_unpacked + (RpcReqWifiGetMaxTxPower *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_get_max_tx_power__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_get_max_tx_power__init + (RpcRespWifiGetMaxTxPower *message) +{ + static const RpcRespWifiGetMaxTxPower init_value = RPC__RESP__WIFI_GET_MAX_TX_POWER__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_get_max_tx_power__get_packed_size + (const RpcRespWifiGetMaxTxPower *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_max_tx_power__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_get_max_tx_power__pack + (const RpcRespWifiGetMaxTxPower *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_max_tx_power__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_get_max_tx_power__pack_to_buffer + (const RpcRespWifiGetMaxTxPower *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_max_tx_power__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiGetMaxTxPower * + rpc__resp__wifi_get_max_tx_power__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiGetMaxTxPower *) + protobuf_c_message_unpack (&rpc__resp__wifi_get_max_tx_power__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_get_max_tx_power__free_unpacked + (RpcRespWifiGetMaxTxPower *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_get_max_tx_power__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__config_heartbeat__init + (RpcReqConfigHeartbeat *message) +{ + static const RpcReqConfigHeartbeat init_value = RPC__REQ__CONFIG_HEARTBEAT__INIT; + *message = init_value; +} +size_t rpc__req__config_heartbeat__get_packed_size + (const RpcReqConfigHeartbeat *message) +{ + assert(message->base.descriptor == &rpc__req__config_heartbeat__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__config_heartbeat__pack + (const RpcReqConfigHeartbeat *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__config_heartbeat__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__config_heartbeat__pack_to_buffer + (const RpcReqConfigHeartbeat *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__config_heartbeat__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqConfigHeartbeat * + rpc__req__config_heartbeat__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqConfigHeartbeat *) + protobuf_c_message_unpack (&rpc__req__config_heartbeat__descriptor, + allocator, len, data); +} +void rpc__req__config_heartbeat__free_unpacked + (RpcReqConfigHeartbeat *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__config_heartbeat__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__config_heartbeat__init + (RpcRespConfigHeartbeat *message) +{ + static const RpcRespConfigHeartbeat init_value = RPC__RESP__CONFIG_HEARTBEAT__INIT; + *message = init_value; +} +size_t rpc__resp__config_heartbeat__get_packed_size + (const RpcRespConfigHeartbeat *message) +{ + assert(message->base.descriptor == &rpc__resp__config_heartbeat__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__config_heartbeat__pack + (const RpcRespConfigHeartbeat *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__config_heartbeat__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__config_heartbeat__pack_to_buffer + (const RpcRespConfigHeartbeat *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__config_heartbeat__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespConfigHeartbeat * + rpc__resp__config_heartbeat__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespConfigHeartbeat *) + protobuf_c_message_unpack (&rpc__resp__config_heartbeat__descriptor, + allocator, len, data); +} +void rpc__resp__config_heartbeat__free_unpacked + (RpcRespConfigHeartbeat *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__config_heartbeat__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_init__init + (RpcReqWifiInit *message) +{ + static const RpcReqWifiInit init_value = RPC__REQ__WIFI_INIT__INIT; + *message = init_value; +} +size_t rpc__req__wifi_init__get_packed_size + (const RpcReqWifiInit *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_init__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_init__pack + (const RpcReqWifiInit *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_init__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_init__pack_to_buffer + (const RpcReqWifiInit *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_init__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiInit * + rpc__req__wifi_init__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiInit *) + protobuf_c_message_unpack (&rpc__req__wifi_init__descriptor, + allocator, len, data); +} +void rpc__req__wifi_init__free_unpacked + (RpcReqWifiInit *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_init__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_init__init + (RpcRespWifiInit *message) +{ + static const RpcRespWifiInit init_value = RPC__RESP__WIFI_INIT__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_init__get_packed_size + (const RpcRespWifiInit *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_init__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_init__pack + (const RpcRespWifiInit *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_init__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_init__pack_to_buffer + (const RpcRespWifiInit *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_init__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiInit * + rpc__resp__wifi_init__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiInit *) + protobuf_c_message_unpack (&rpc__resp__wifi_init__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_init__free_unpacked + (RpcRespWifiInit *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_init__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_deinit__init + (RpcReqWifiDeinit *message) +{ + static const RpcReqWifiDeinit init_value = RPC__REQ__WIFI_DEINIT__INIT; + *message = init_value; +} +size_t rpc__req__wifi_deinit__get_packed_size + (const RpcReqWifiDeinit *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_deinit__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_deinit__pack + (const RpcReqWifiDeinit *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_deinit__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_deinit__pack_to_buffer + (const RpcReqWifiDeinit *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_deinit__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiDeinit * + rpc__req__wifi_deinit__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiDeinit *) + protobuf_c_message_unpack (&rpc__req__wifi_deinit__descriptor, + allocator, len, data); +} +void rpc__req__wifi_deinit__free_unpacked + (RpcReqWifiDeinit *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_deinit__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_deinit__init + (RpcRespWifiDeinit *message) +{ + static const RpcRespWifiDeinit init_value = RPC__RESP__WIFI_DEINIT__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_deinit__get_packed_size + (const RpcRespWifiDeinit *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_deinit__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_deinit__pack + (const RpcRespWifiDeinit *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_deinit__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_deinit__pack_to_buffer + (const RpcRespWifiDeinit *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_deinit__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiDeinit * + rpc__resp__wifi_deinit__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiDeinit *) + protobuf_c_message_unpack (&rpc__resp__wifi_deinit__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_deinit__free_unpacked + (RpcRespWifiDeinit *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_deinit__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_set_config__init + (RpcReqWifiSetConfig *message) +{ + static const RpcReqWifiSetConfig init_value = RPC__REQ__WIFI_SET_CONFIG__INIT; + *message = init_value; +} +size_t rpc__req__wifi_set_config__get_packed_size + (const RpcReqWifiSetConfig *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_config__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_set_config__pack + (const RpcReqWifiSetConfig *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_config__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_set_config__pack_to_buffer + (const RpcReqWifiSetConfig *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_config__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiSetConfig * + rpc__req__wifi_set_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiSetConfig *) + protobuf_c_message_unpack (&rpc__req__wifi_set_config__descriptor, + allocator, len, data); +} +void rpc__req__wifi_set_config__free_unpacked + (RpcReqWifiSetConfig *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_set_config__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_set_config__init + (RpcRespWifiSetConfig *message) +{ + static const RpcRespWifiSetConfig init_value = RPC__RESP__WIFI_SET_CONFIG__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_set_config__get_packed_size + (const RpcRespWifiSetConfig *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_config__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_set_config__pack + (const RpcRespWifiSetConfig *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_config__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_set_config__pack_to_buffer + (const RpcRespWifiSetConfig *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_config__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiSetConfig * + rpc__resp__wifi_set_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiSetConfig *) + protobuf_c_message_unpack (&rpc__resp__wifi_set_config__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_set_config__free_unpacked + (RpcRespWifiSetConfig *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_set_config__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_get_config__init + (RpcReqWifiGetConfig *message) +{ + static const RpcReqWifiGetConfig init_value = RPC__REQ__WIFI_GET_CONFIG__INIT; + *message = init_value; +} +size_t rpc__req__wifi_get_config__get_packed_size + (const RpcReqWifiGetConfig *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_config__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_get_config__pack + (const RpcReqWifiGetConfig *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_config__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_get_config__pack_to_buffer + (const RpcReqWifiGetConfig *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_config__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiGetConfig * + rpc__req__wifi_get_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiGetConfig *) + protobuf_c_message_unpack (&rpc__req__wifi_get_config__descriptor, + allocator, len, data); +} +void rpc__req__wifi_get_config__free_unpacked + (RpcReqWifiGetConfig *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_get_config__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_get_config__init + (RpcRespWifiGetConfig *message) +{ + static const RpcRespWifiGetConfig init_value = RPC__RESP__WIFI_GET_CONFIG__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_get_config__get_packed_size + (const RpcRespWifiGetConfig *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_config__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_get_config__pack + (const RpcRespWifiGetConfig *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_config__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_get_config__pack_to_buffer + (const RpcRespWifiGetConfig *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_config__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiGetConfig * + rpc__resp__wifi_get_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiGetConfig *) + protobuf_c_message_unpack (&rpc__resp__wifi_get_config__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_get_config__free_unpacked + (RpcRespWifiGetConfig *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_get_config__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_connect__init + (RpcReqWifiConnect *message) +{ + static const RpcReqWifiConnect init_value = RPC__REQ__WIFI_CONNECT__INIT; + *message = init_value; +} +size_t rpc__req__wifi_connect__get_packed_size + (const RpcReqWifiConnect *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_connect__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_connect__pack + (const RpcReqWifiConnect *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_connect__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_connect__pack_to_buffer + (const RpcReqWifiConnect *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_connect__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiConnect * + rpc__req__wifi_connect__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiConnect *) + protobuf_c_message_unpack (&rpc__req__wifi_connect__descriptor, + allocator, len, data); +} +void rpc__req__wifi_connect__free_unpacked + (RpcReqWifiConnect *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_connect__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_connect__init + (RpcRespWifiConnect *message) +{ + static const RpcRespWifiConnect init_value = RPC__RESP__WIFI_CONNECT__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_connect__get_packed_size + (const RpcRespWifiConnect *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_connect__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_connect__pack + (const RpcRespWifiConnect *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_connect__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_connect__pack_to_buffer + (const RpcRespWifiConnect *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_connect__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiConnect * + rpc__resp__wifi_connect__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiConnect *) + protobuf_c_message_unpack (&rpc__resp__wifi_connect__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_connect__free_unpacked + (RpcRespWifiConnect *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_connect__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_disconnect__init + (RpcReqWifiDisconnect *message) +{ + static const RpcReqWifiDisconnect init_value = RPC__REQ__WIFI_DISCONNECT__INIT; + *message = init_value; +} +size_t rpc__req__wifi_disconnect__get_packed_size + (const RpcReqWifiDisconnect *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_disconnect__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_disconnect__pack + (const RpcReqWifiDisconnect *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_disconnect__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_disconnect__pack_to_buffer + (const RpcReqWifiDisconnect *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_disconnect__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiDisconnect * + rpc__req__wifi_disconnect__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiDisconnect *) + protobuf_c_message_unpack (&rpc__req__wifi_disconnect__descriptor, + allocator, len, data); +} +void rpc__req__wifi_disconnect__free_unpacked + (RpcReqWifiDisconnect *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_disconnect__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_disconnect__init + (RpcRespWifiDisconnect *message) +{ + static const RpcRespWifiDisconnect init_value = RPC__RESP__WIFI_DISCONNECT__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_disconnect__get_packed_size + (const RpcRespWifiDisconnect *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_disconnect__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_disconnect__pack + (const RpcRespWifiDisconnect *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_disconnect__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_disconnect__pack_to_buffer + (const RpcRespWifiDisconnect *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_disconnect__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiDisconnect * + rpc__resp__wifi_disconnect__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiDisconnect *) + protobuf_c_message_unpack (&rpc__resp__wifi_disconnect__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_disconnect__free_unpacked + (RpcRespWifiDisconnect *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_disconnect__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_start__init + (RpcReqWifiStart *message) +{ + static const RpcReqWifiStart init_value = RPC__REQ__WIFI_START__INIT; + *message = init_value; +} +size_t rpc__req__wifi_start__get_packed_size + (const RpcReqWifiStart *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_start__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_start__pack + (const RpcReqWifiStart *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_start__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_start__pack_to_buffer + (const RpcReqWifiStart *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_start__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiStart * + rpc__req__wifi_start__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiStart *) + protobuf_c_message_unpack (&rpc__req__wifi_start__descriptor, + allocator, len, data); +} +void rpc__req__wifi_start__free_unpacked + (RpcReqWifiStart *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_start__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_start__init + (RpcRespWifiStart *message) +{ + static const RpcRespWifiStart init_value = RPC__RESP__WIFI_START__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_start__get_packed_size + (const RpcRespWifiStart *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_start__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_start__pack + (const RpcRespWifiStart *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_start__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_start__pack_to_buffer + (const RpcRespWifiStart *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_start__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiStart * + rpc__resp__wifi_start__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiStart *) + protobuf_c_message_unpack (&rpc__resp__wifi_start__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_start__free_unpacked + (RpcRespWifiStart *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_start__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_stop__init + (RpcReqWifiStop *message) +{ + static const RpcReqWifiStop init_value = RPC__REQ__WIFI_STOP__INIT; + *message = init_value; +} +size_t rpc__req__wifi_stop__get_packed_size + (const RpcReqWifiStop *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_stop__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_stop__pack + (const RpcReqWifiStop *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_stop__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_stop__pack_to_buffer + (const RpcReqWifiStop *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_stop__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiStop * + rpc__req__wifi_stop__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiStop *) + protobuf_c_message_unpack (&rpc__req__wifi_stop__descriptor, + allocator, len, data); +} +void rpc__req__wifi_stop__free_unpacked + (RpcReqWifiStop *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_stop__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_stop__init + (RpcRespWifiStop *message) +{ + static const RpcRespWifiStop init_value = RPC__RESP__WIFI_STOP__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_stop__get_packed_size + (const RpcRespWifiStop *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_stop__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_stop__pack + (const RpcRespWifiStop *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_stop__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_stop__pack_to_buffer + (const RpcRespWifiStop *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_stop__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiStop * + rpc__resp__wifi_stop__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiStop *) + protobuf_c_message_unpack (&rpc__resp__wifi_stop__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_stop__free_unpacked + (RpcRespWifiStop *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_stop__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_scan_start__init + (RpcReqWifiScanStart *message) +{ + static const RpcReqWifiScanStart init_value = RPC__REQ__WIFI_SCAN_START__INIT; + *message = init_value; +} +size_t rpc__req__wifi_scan_start__get_packed_size + (const RpcReqWifiScanStart *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_scan_start__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_scan_start__pack + (const RpcReqWifiScanStart *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_scan_start__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_scan_start__pack_to_buffer + (const RpcReqWifiScanStart *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_scan_start__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiScanStart * + rpc__req__wifi_scan_start__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiScanStart *) + protobuf_c_message_unpack (&rpc__req__wifi_scan_start__descriptor, + allocator, len, data); +} +void rpc__req__wifi_scan_start__free_unpacked + (RpcReqWifiScanStart *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_scan_start__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_scan_start__init + (RpcRespWifiScanStart *message) +{ + static const RpcRespWifiScanStart init_value = RPC__RESP__WIFI_SCAN_START__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_scan_start__get_packed_size + (const RpcRespWifiScanStart *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_scan_start__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_scan_start__pack + (const RpcRespWifiScanStart *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_scan_start__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_scan_start__pack_to_buffer + (const RpcRespWifiScanStart *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_scan_start__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiScanStart * + rpc__resp__wifi_scan_start__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiScanStart *) + protobuf_c_message_unpack (&rpc__resp__wifi_scan_start__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_scan_start__free_unpacked + (RpcRespWifiScanStart *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_scan_start__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_scan_stop__init + (RpcReqWifiScanStop *message) +{ + static const RpcReqWifiScanStop init_value = RPC__REQ__WIFI_SCAN_STOP__INIT; + *message = init_value; +} +size_t rpc__req__wifi_scan_stop__get_packed_size + (const RpcReqWifiScanStop *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_scan_stop__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_scan_stop__pack + (const RpcReqWifiScanStop *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_scan_stop__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_scan_stop__pack_to_buffer + (const RpcReqWifiScanStop *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_scan_stop__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiScanStop * + rpc__req__wifi_scan_stop__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiScanStop *) + protobuf_c_message_unpack (&rpc__req__wifi_scan_stop__descriptor, + allocator, len, data); +} +void rpc__req__wifi_scan_stop__free_unpacked + (RpcReqWifiScanStop *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_scan_stop__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_scan_stop__init + (RpcRespWifiScanStop *message) +{ + static const RpcRespWifiScanStop init_value = RPC__RESP__WIFI_SCAN_STOP__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_scan_stop__get_packed_size + (const RpcRespWifiScanStop *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_scan_stop__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_scan_stop__pack + (const RpcRespWifiScanStop *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_scan_stop__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_scan_stop__pack_to_buffer + (const RpcRespWifiScanStop *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_scan_stop__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiScanStop * + rpc__resp__wifi_scan_stop__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiScanStop *) + protobuf_c_message_unpack (&rpc__resp__wifi_scan_stop__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_scan_stop__free_unpacked + (RpcRespWifiScanStop *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_scan_stop__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_scan_get_ap_num__init + (RpcReqWifiScanGetApNum *message) +{ + static const RpcReqWifiScanGetApNum init_value = RPC__REQ__WIFI_SCAN_GET_AP_NUM__INIT; + *message = init_value; +} +size_t rpc__req__wifi_scan_get_ap_num__get_packed_size + (const RpcReqWifiScanGetApNum *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_num__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_scan_get_ap_num__pack + (const RpcReqWifiScanGetApNum *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_num__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_scan_get_ap_num__pack_to_buffer + (const RpcReqWifiScanGetApNum *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_num__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiScanGetApNum * + rpc__req__wifi_scan_get_ap_num__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiScanGetApNum *) + protobuf_c_message_unpack (&rpc__req__wifi_scan_get_ap_num__descriptor, + allocator, len, data); +} +void rpc__req__wifi_scan_get_ap_num__free_unpacked + (RpcReqWifiScanGetApNum *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_num__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_scan_get_ap_num__init + (RpcRespWifiScanGetApNum *message) +{ + static const RpcRespWifiScanGetApNum init_value = RPC__RESP__WIFI_SCAN_GET_AP_NUM__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_scan_get_ap_num__get_packed_size + (const RpcRespWifiScanGetApNum *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_num__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_scan_get_ap_num__pack + (const RpcRespWifiScanGetApNum *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_num__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_scan_get_ap_num__pack_to_buffer + (const RpcRespWifiScanGetApNum *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_num__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiScanGetApNum * + rpc__resp__wifi_scan_get_ap_num__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiScanGetApNum *) + protobuf_c_message_unpack (&rpc__resp__wifi_scan_get_ap_num__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_scan_get_ap_num__free_unpacked + (RpcRespWifiScanGetApNum *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_num__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_scan_get_ap_records__init + (RpcReqWifiScanGetApRecords *message) +{ + static const RpcReqWifiScanGetApRecords init_value = RPC__REQ__WIFI_SCAN_GET_AP_RECORDS__INIT; + *message = init_value; +} +size_t rpc__req__wifi_scan_get_ap_records__get_packed_size + (const RpcReqWifiScanGetApRecords *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_records__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_scan_get_ap_records__pack + (const RpcReqWifiScanGetApRecords *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_records__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_scan_get_ap_records__pack_to_buffer + (const RpcReqWifiScanGetApRecords *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_records__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiScanGetApRecords * + rpc__req__wifi_scan_get_ap_records__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiScanGetApRecords *) + protobuf_c_message_unpack (&rpc__req__wifi_scan_get_ap_records__descriptor, + allocator, len, data); +} +void rpc__req__wifi_scan_get_ap_records__free_unpacked + (RpcReqWifiScanGetApRecords *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_records__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_scan_get_ap_records__init + (RpcRespWifiScanGetApRecords *message) +{ + static const RpcRespWifiScanGetApRecords init_value = RPC__RESP__WIFI_SCAN_GET_AP_RECORDS__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_scan_get_ap_records__get_packed_size + (const RpcRespWifiScanGetApRecords *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_records__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_scan_get_ap_records__pack + (const RpcRespWifiScanGetApRecords *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_records__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_scan_get_ap_records__pack_to_buffer + (const RpcRespWifiScanGetApRecords *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_records__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiScanGetApRecords * + rpc__resp__wifi_scan_get_ap_records__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiScanGetApRecords *) + protobuf_c_message_unpack (&rpc__resp__wifi_scan_get_ap_records__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_scan_get_ap_records__free_unpacked + (RpcRespWifiScanGetApRecords *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_records__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_scan_get_ap_record__init + (RpcReqWifiScanGetApRecord *message) +{ + static const RpcReqWifiScanGetApRecord init_value = RPC__REQ__WIFI_SCAN_GET_AP_RECORD__INIT; + *message = init_value; +} +size_t rpc__req__wifi_scan_get_ap_record__get_packed_size + (const RpcReqWifiScanGetApRecord *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_record__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_scan_get_ap_record__pack + (const RpcReqWifiScanGetApRecord *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_record__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_scan_get_ap_record__pack_to_buffer + (const RpcReqWifiScanGetApRecord *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_record__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiScanGetApRecord * + rpc__req__wifi_scan_get_ap_record__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiScanGetApRecord *) + protobuf_c_message_unpack (&rpc__req__wifi_scan_get_ap_record__descriptor, + allocator, len, data); +} +void rpc__req__wifi_scan_get_ap_record__free_unpacked + (RpcReqWifiScanGetApRecord *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_record__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_scan_get_ap_record__init + (RpcRespWifiScanGetApRecord *message) +{ + static const RpcRespWifiScanGetApRecord init_value = RPC__RESP__WIFI_SCAN_GET_AP_RECORD__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_scan_get_ap_record__get_packed_size + (const RpcRespWifiScanGetApRecord *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_record__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_scan_get_ap_record__pack + (const RpcRespWifiScanGetApRecord *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_record__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_scan_get_ap_record__pack_to_buffer + (const RpcRespWifiScanGetApRecord *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_record__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiScanGetApRecord * + rpc__resp__wifi_scan_get_ap_record__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiScanGetApRecord *) + protobuf_c_message_unpack (&rpc__resp__wifi_scan_get_ap_record__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_scan_get_ap_record__free_unpacked + (RpcRespWifiScanGetApRecord *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_record__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_clear_ap_list__init + (RpcReqWifiClearApList *message) +{ + static const RpcReqWifiClearApList init_value = RPC__REQ__WIFI_CLEAR_AP_LIST__INIT; + *message = init_value; +} +size_t rpc__req__wifi_clear_ap_list__get_packed_size + (const RpcReqWifiClearApList *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_clear_ap_list__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_clear_ap_list__pack + (const RpcReqWifiClearApList *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_clear_ap_list__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_clear_ap_list__pack_to_buffer + (const RpcReqWifiClearApList *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_clear_ap_list__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiClearApList * + rpc__req__wifi_clear_ap_list__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiClearApList *) + protobuf_c_message_unpack (&rpc__req__wifi_clear_ap_list__descriptor, + allocator, len, data); +} +void rpc__req__wifi_clear_ap_list__free_unpacked + (RpcReqWifiClearApList *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_clear_ap_list__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_clear_ap_list__init + (RpcRespWifiClearApList *message) +{ + static const RpcRespWifiClearApList init_value = RPC__RESP__WIFI_CLEAR_AP_LIST__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_clear_ap_list__get_packed_size + (const RpcRespWifiClearApList *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_clear_ap_list__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_clear_ap_list__pack + (const RpcRespWifiClearApList *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_clear_ap_list__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_clear_ap_list__pack_to_buffer + (const RpcRespWifiClearApList *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_clear_ap_list__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiClearApList * + rpc__resp__wifi_clear_ap_list__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiClearApList *) + protobuf_c_message_unpack (&rpc__resp__wifi_clear_ap_list__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_clear_ap_list__free_unpacked + (RpcRespWifiClearApList *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_clear_ap_list__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_restore__init + (RpcReqWifiRestore *message) +{ + static const RpcReqWifiRestore init_value = RPC__REQ__WIFI_RESTORE__INIT; + *message = init_value; +} +size_t rpc__req__wifi_restore__get_packed_size + (const RpcReqWifiRestore *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_restore__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_restore__pack + (const RpcReqWifiRestore *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_restore__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_restore__pack_to_buffer + (const RpcReqWifiRestore *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_restore__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiRestore * + rpc__req__wifi_restore__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiRestore *) + protobuf_c_message_unpack (&rpc__req__wifi_restore__descriptor, + allocator, len, data); +} +void rpc__req__wifi_restore__free_unpacked + (RpcReqWifiRestore *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_restore__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_restore__init + (RpcRespWifiRestore *message) +{ + static const RpcRespWifiRestore init_value = RPC__RESP__WIFI_RESTORE__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_restore__get_packed_size + (const RpcRespWifiRestore *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_restore__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_restore__pack + (const RpcRespWifiRestore *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_restore__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_restore__pack_to_buffer + (const RpcRespWifiRestore *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_restore__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiRestore * + rpc__resp__wifi_restore__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiRestore *) + protobuf_c_message_unpack (&rpc__resp__wifi_restore__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_restore__free_unpacked + (RpcRespWifiRestore *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_restore__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_clear_fast_connect__init + (RpcReqWifiClearFastConnect *message) +{ + static const RpcReqWifiClearFastConnect init_value = RPC__REQ__WIFI_CLEAR_FAST_CONNECT__INIT; + *message = init_value; +} +size_t rpc__req__wifi_clear_fast_connect__get_packed_size + (const RpcReqWifiClearFastConnect *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_clear_fast_connect__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_clear_fast_connect__pack + (const RpcReqWifiClearFastConnect *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_clear_fast_connect__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_clear_fast_connect__pack_to_buffer + (const RpcReqWifiClearFastConnect *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_clear_fast_connect__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiClearFastConnect * + rpc__req__wifi_clear_fast_connect__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiClearFastConnect *) + protobuf_c_message_unpack (&rpc__req__wifi_clear_fast_connect__descriptor, + allocator, len, data); +} +void rpc__req__wifi_clear_fast_connect__free_unpacked + (RpcReqWifiClearFastConnect *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_clear_fast_connect__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_clear_fast_connect__init + (RpcRespWifiClearFastConnect *message) +{ + static const RpcRespWifiClearFastConnect init_value = RPC__RESP__WIFI_CLEAR_FAST_CONNECT__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_clear_fast_connect__get_packed_size + (const RpcRespWifiClearFastConnect *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_clear_fast_connect__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_clear_fast_connect__pack + (const RpcRespWifiClearFastConnect *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_clear_fast_connect__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_clear_fast_connect__pack_to_buffer + (const RpcRespWifiClearFastConnect *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_clear_fast_connect__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiClearFastConnect * + rpc__resp__wifi_clear_fast_connect__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiClearFastConnect *) + protobuf_c_message_unpack (&rpc__resp__wifi_clear_fast_connect__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_clear_fast_connect__free_unpacked + (RpcRespWifiClearFastConnect *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_clear_fast_connect__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_deauth_sta__init + (RpcReqWifiDeauthSta *message) +{ + static const RpcReqWifiDeauthSta init_value = RPC__REQ__WIFI_DEAUTH_STA__INIT; + *message = init_value; +} +size_t rpc__req__wifi_deauth_sta__get_packed_size + (const RpcReqWifiDeauthSta *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_deauth_sta__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_deauth_sta__pack + (const RpcReqWifiDeauthSta *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_deauth_sta__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_deauth_sta__pack_to_buffer + (const RpcReqWifiDeauthSta *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_deauth_sta__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiDeauthSta * + rpc__req__wifi_deauth_sta__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiDeauthSta *) + protobuf_c_message_unpack (&rpc__req__wifi_deauth_sta__descriptor, + allocator, len, data); +} +void rpc__req__wifi_deauth_sta__free_unpacked + (RpcReqWifiDeauthSta *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_deauth_sta__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_deauth_sta__init + (RpcRespWifiDeauthSta *message) +{ + static const RpcRespWifiDeauthSta init_value = RPC__RESP__WIFI_DEAUTH_STA__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_deauth_sta__get_packed_size + (const RpcRespWifiDeauthSta *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_deauth_sta__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_deauth_sta__pack + (const RpcRespWifiDeauthSta *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_deauth_sta__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_deauth_sta__pack_to_buffer + (const RpcRespWifiDeauthSta *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_deauth_sta__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiDeauthSta * + rpc__resp__wifi_deauth_sta__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiDeauthSta *) + protobuf_c_message_unpack (&rpc__resp__wifi_deauth_sta__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_deauth_sta__free_unpacked + (RpcRespWifiDeauthSta *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_deauth_sta__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_sta_get_ap_info__init + (RpcReqWifiStaGetApInfo *message) +{ + static const RpcReqWifiStaGetApInfo init_value = RPC__REQ__WIFI_STA_GET_AP_INFO__INIT; + *message = init_value; +} +size_t rpc__req__wifi_sta_get_ap_info__get_packed_size + (const RpcReqWifiStaGetApInfo *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_sta_get_ap_info__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_sta_get_ap_info__pack + (const RpcReqWifiStaGetApInfo *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_sta_get_ap_info__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_sta_get_ap_info__pack_to_buffer + (const RpcReqWifiStaGetApInfo *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_sta_get_ap_info__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiStaGetApInfo * + rpc__req__wifi_sta_get_ap_info__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiStaGetApInfo *) + protobuf_c_message_unpack (&rpc__req__wifi_sta_get_ap_info__descriptor, + allocator, len, data); +} +void rpc__req__wifi_sta_get_ap_info__free_unpacked + (RpcReqWifiStaGetApInfo *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_sta_get_ap_info__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_sta_get_ap_info__init + (RpcRespWifiStaGetApInfo *message) +{ + static const RpcRespWifiStaGetApInfo init_value = RPC__RESP__WIFI_STA_GET_AP_INFO__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_sta_get_ap_info__get_packed_size + (const RpcRespWifiStaGetApInfo *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_ap_info__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_sta_get_ap_info__pack + (const RpcRespWifiStaGetApInfo *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_ap_info__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_sta_get_ap_info__pack_to_buffer + (const RpcRespWifiStaGetApInfo *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_ap_info__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiStaGetApInfo * + rpc__resp__wifi_sta_get_ap_info__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiStaGetApInfo *) + protobuf_c_message_unpack (&rpc__resp__wifi_sta_get_ap_info__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_sta_get_ap_info__free_unpacked + (RpcRespWifiStaGetApInfo *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_ap_info__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_set_protocol__init + (RpcReqWifiSetProtocol *message) +{ + static const RpcReqWifiSetProtocol init_value = RPC__REQ__WIFI_SET_PROTOCOL__INIT; + *message = init_value; +} +size_t rpc__req__wifi_set_protocol__get_packed_size + (const RpcReqWifiSetProtocol *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_protocol__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_set_protocol__pack + (const RpcReqWifiSetProtocol *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_protocol__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_set_protocol__pack_to_buffer + (const RpcReqWifiSetProtocol *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_protocol__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiSetProtocol * + rpc__req__wifi_set_protocol__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiSetProtocol *) + protobuf_c_message_unpack (&rpc__req__wifi_set_protocol__descriptor, + allocator, len, data); +} +void rpc__req__wifi_set_protocol__free_unpacked + (RpcReqWifiSetProtocol *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_set_protocol__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_set_protocol__init + (RpcRespWifiSetProtocol *message) +{ + static const RpcRespWifiSetProtocol init_value = RPC__RESP__WIFI_SET_PROTOCOL__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_set_protocol__get_packed_size + (const RpcRespWifiSetProtocol *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_protocol__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_set_protocol__pack + (const RpcRespWifiSetProtocol *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_protocol__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_set_protocol__pack_to_buffer + (const RpcRespWifiSetProtocol *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_protocol__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiSetProtocol * + rpc__resp__wifi_set_protocol__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiSetProtocol *) + protobuf_c_message_unpack (&rpc__resp__wifi_set_protocol__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_set_protocol__free_unpacked + (RpcRespWifiSetProtocol *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_set_protocol__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_get_protocol__init + (RpcReqWifiGetProtocol *message) +{ + static const RpcReqWifiGetProtocol init_value = RPC__REQ__WIFI_GET_PROTOCOL__INIT; + *message = init_value; +} +size_t rpc__req__wifi_get_protocol__get_packed_size + (const RpcReqWifiGetProtocol *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_protocol__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_get_protocol__pack + (const RpcReqWifiGetProtocol *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_protocol__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_get_protocol__pack_to_buffer + (const RpcReqWifiGetProtocol *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_protocol__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiGetProtocol * + rpc__req__wifi_get_protocol__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiGetProtocol *) + protobuf_c_message_unpack (&rpc__req__wifi_get_protocol__descriptor, + allocator, len, data); +} +void rpc__req__wifi_get_protocol__free_unpacked + (RpcReqWifiGetProtocol *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_get_protocol__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_get_protocol__init + (RpcRespWifiGetProtocol *message) +{ + static const RpcRespWifiGetProtocol init_value = RPC__RESP__WIFI_GET_PROTOCOL__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_get_protocol__get_packed_size + (const RpcRespWifiGetProtocol *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_protocol__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_get_protocol__pack + (const RpcRespWifiGetProtocol *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_protocol__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_get_protocol__pack_to_buffer + (const RpcRespWifiGetProtocol *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_protocol__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiGetProtocol * + rpc__resp__wifi_get_protocol__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiGetProtocol *) + protobuf_c_message_unpack (&rpc__resp__wifi_get_protocol__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_get_protocol__free_unpacked + (RpcRespWifiGetProtocol *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_get_protocol__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_set_bandwidth__init + (RpcReqWifiSetBandwidth *message) +{ + static const RpcReqWifiSetBandwidth init_value = RPC__REQ__WIFI_SET_BANDWIDTH__INIT; + *message = init_value; +} +size_t rpc__req__wifi_set_bandwidth__get_packed_size + (const RpcReqWifiSetBandwidth *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_bandwidth__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_set_bandwidth__pack + (const RpcReqWifiSetBandwidth *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_bandwidth__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_set_bandwidth__pack_to_buffer + (const RpcReqWifiSetBandwidth *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_bandwidth__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiSetBandwidth * + rpc__req__wifi_set_bandwidth__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiSetBandwidth *) + protobuf_c_message_unpack (&rpc__req__wifi_set_bandwidth__descriptor, + allocator, len, data); +} +void rpc__req__wifi_set_bandwidth__free_unpacked + (RpcReqWifiSetBandwidth *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_set_bandwidth__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_set_bandwidth__init + (RpcRespWifiSetBandwidth *message) +{ + static const RpcRespWifiSetBandwidth init_value = RPC__RESP__WIFI_SET_BANDWIDTH__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_set_bandwidth__get_packed_size + (const RpcRespWifiSetBandwidth *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidth__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_set_bandwidth__pack + (const RpcRespWifiSetBandwidth *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidth__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_set_bandwidth__pack_to_buffer + (const RpcRespWifiSetBandwidth *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidth__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiSetBandwidth * + rpc__resp__wifi_set_bandwidth__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiSetBandwidth *) + protobuf_c_message_unpack (&rpc__resp__wifi_set_bandwidth__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_set_bandwidth__free_unpacked + (RpcRespWifiSetBandwidth *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidth__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_get_bandwidth__init + (RpcReqWifiGetBandwidth *message) +{ + static const RpcReqWifiGetBandwidth init_value = RPC__REQ__WIFI_GET_BANDWIDTH__INIT; + *message = init_value; +} +size_t rpc__req__wifi_get_bandwidth__get_packed_size + (const RpcReqWifiGetBandwidth *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_bandwidth__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_get_bandwidth__pack + (const RpcReqWifiGetBandwidth *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_bandwidth__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_get_bandwidth__pack_to_buffer + (const RpcReqWifiGetBandwidth *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_bandwidth__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiGetBandwidth * + rpc__req__wifi_get_bandwidth__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiGetBandwidth *) + protobuf_c_message_unpack (&rpc__req__wifi_get_bandwidth__descriptor, + allocator, len, data); +} +void rpc__req__wifi_get_bandwidth__free_unpacked + (RpcReqWifiGetBandwidth *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_get_bandwidth__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_get_bandwidth__init + (RpcRespWifiGetBandwidth *message) +{ + static const RpcRespWifiGetBandwidth init_value = RPC__RESP__WIFI_GET_BANDWIDTH__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_get_bandwidth__get_packed_size + (const RpcRespWifiGetBandwidth *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidth__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_get_bandwidth__pack + (const RpcRespWifiGetBandwidth *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidth__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_get_bandwidth__pack_to_buffer + (const RpcRespWifiGetBandwidth *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidth__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiGetBandwidth * + rpc__resp__wifi_get_bandwidth__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiGetBandwidth *) + protobuf_c_message_unpack (&rpc__resp__wifi_get_bandwidth__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_get_bandwidth__free_unpacked + (RpcRespWifiGetBandwidth *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidth__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_set_channel__init + (RpcReqWifiSetChannel *message) +{ + static const RpcReqWifiSetChannel init_value = RPC__REQ__WIFI_SET_CHANNEL__INIT; + *message = init_value; +} +size_t rpc__req__wifi_set_channel__get_packed_size + (const RpcReqWifiSetChannel *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_channel__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_set_channel__pack + (const RpcReqWifiSetChannel *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_channel__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_set_channel__pack_to_buffer + (const RpcReqWifiSetChannel *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_channel__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiSetChannel * + rpc__req__wifi_set_channel__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiSetChannel *) + protobuf_c_message_unpack (&rpc__req__wifi_set_channel__descriptor, + allocator, len, data); +} +void rpc__req__wifi_set_channel__free_unpacked + (RpcReqWifiSetChannel *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_set_channel__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_set_channel__init + (RpcRespWifiSetChannel *message) +{ + static const RpcRespWifiSetChannel init_value = RPC__RESP__WIFI_SET_CHANNEL__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_set_channel__get_packed_size + (const RpcRespWifiSetChannel *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_channel__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_set_channel__pack + (const RpcRespWifiSetChannel *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_channel__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_set_channel__pack_to_buffer + (const RpcRespWifiSetChannel *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_channel__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiSetChannel * + rpc__resp__wifi_set_channel__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiSetChannel *) + protobuf_c_message_unpack (&rpc__resp__wifi_set_channel__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_set_channel__free_unpacked + (RpcRespWifiSetChannel *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_set_channel__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_get_channel__init + (RpcReqWifiGetChannel *message) +{ + static const RpcReqWifiGetChannel init_value = RPC__REQ__WIFI_GET_CHANNEL__INIT; + *message = init_value; +} +size_t rpc__req__wifi_get_channel__get_packed_size + (const RpcReqWifiGetChannel *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_channel__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_get_channel__pack + (const RpcReqWifiGetChannel *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_channel__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_get_channel__pack_to_buffer + (const RpcReqWifiGetChannel *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_channel__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiGetChannel * + rpc__req__wifi_get_channel__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiGetChannel *) + protobuf_c_message_unpack (&rpc__req__wifi_get_channel__descriptor, + allocator, len, data); +} +void rpc__req__wifi_get_channel__free_unpacked + (RpcReqWifiGetChannel *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_get_channel__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_get_channel__init + (RpcRespWifiGetChannel *message) +{ + static const RpcRespWifiGetChannel init_value = RPC__RESP__WIFI_GET_CHANNEL__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_get_channel__get_packed_size + (const RpcRespWifiGetChannel *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_channel__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_get_channel__pack + (const RpcRespWifiGetChannel *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_channel__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_get_channel__pack_to_buffer + (const RpcRespWifiGetChannel *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_channel__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiGetChannel * + rpc__resp__wifi_get_channel__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiGetChannel *) + protobuf_c_message_unpack (&rpc__resp__wifi_get_channel__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_get_channel__free_unpacked + (RpcRespWifiGetChannel *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_get_channel__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_set_storage__init + (RpcReqWifiSetStorage *message) +{ + static const RpcReqWifiSetStorage init_value = RPC__REQ__WIFI_SET_STORAGE__INIT; + *message = init_value; +} +size_t rpc__req__wifi_set_storage__get_packed_size + (const RpcReqWifiSetStorage *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_storage__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_set_storage__pack + (const RpcReqWifiSetStorage *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_storage__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_set_storage__pack_to_buffer + (const RpcReqWifiSetStorage *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_storage__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiSetStorage * + rpc__req__wifi_set_storage__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiSetStorage *) + protobuf_c_message_unpack (&rpc__req__wifi_set_storage__descriptor, + allocator, len, data); +} +void rpc__req__wifi_set_storage__free_unpacked + (RpcReqWifiSetStorage *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_set_storage__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_set_storage__init + (RpcRespWifiSetStorage *message) +{ + static const RpcRespWifiSetStorage init_value = RPC__RESP__WIFI_SET_STORAGE__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_set_storage__get_packed_size + (const RpcRespWifiSetStorage *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_storage__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_set_storage__pack + (const RpcRespWifiSetStorage *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_storage__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_set_storage__pack_to_buffer + (const RpcRespWifiSetStorage *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_storage__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiSetStorage * + rpc__resp__wifi_set_storage__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiSetStorage *) + protobuf_c_message_unpack (&rpc__resp__wifi_set_storage__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_set_storage__free_unpacked + (RpcRespWifiSetStorage *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_set_storage__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_set_country_code__init + (RpcReqWifiSetCountryCode *message) +{ + static const RpcReqWifiSetCountryCode init_value = RPC__REQ__WIFI_SET_COUNTRY_CODE__INIT; + *message = init_value; +} +size_t rpc__req__wifi_set_country_code__get_packed_size + (const RpcReqWifiSetCountryCode *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_country_code__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_set_country_code__pack + (const RpcReqWifiSetCountryCode *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_country_code__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_set_country_code__pack_to_buffer + (const RpcReqWifiSetCountryCode *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_country_code__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiSetCountryCode * + rpc__req__wifi_set_country_code__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiSetCountryCode *) + protobuf_c_message_unpack (&rpc__req__wifi_set_country_code__descriptor, + allocator, len, data); +} +void rpc__req__wifi_set_country_code__free_unpacked + (RpcReqWifiSetCountryCode *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_set_country_code__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_set_country_code__init + (RpcRespWifiSetCountryCode *message) +{ + static const RpcRespWifiSetCountryCode init_value = RPC__RESP__WIFI_SET_COUNTRY_CODE__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_set_country_code__get_packed_size + (const RpcRespWifiSetCountryCode *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_country_code__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_set_country_code__pack + (const RpcRespWifiSetCountryCode *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_country_code__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_set_country_code__pack_to_buffer + (const RpcRespWifiSetCountryCode *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_country_code__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiSetCountryCode * + rpc__resp__wifi_set_country_code__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiSetCountryCode *) + protobuf_c_message_unpack (&rpc__resp__wifi_set_country_code__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_set_country_code__free_unpacked + (RpcRespWifiSetCountryCode *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_set_country_code__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_get_country_code__init + (RpcReqWifiGetCountryCode *message) +{ + static const RpcReqWifiGetCountryCode init_value = RPC__REQ__WIFI_GET_COUNTRY_CODE__INIT; + *message = init_value; +} +size_t rpc__req__wifi_get_country_code__get_packed_size + (const RpcReqWifiGetCountryCode *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_country_code__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_get_country_code__pack + (const RpcReqWifiGetCountryCode *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_country_code__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_get_country_code__pack_to_buffer + (const RpcReqWifiGetCountryCode *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_country_code__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiGetCountryCode * + rpc__req__wifi_get_country_code__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiGetCountryCode *) + protobuf_c_message_unpack (&rpc__req__wifi_get_country_code__descriptor, + allocator, len, data); +} +void rpc__req__wifi_get_country_code__free_unpacked + (RpcReqWifiGetCountryCode *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_get_country_code__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_get_country_code__init + (RpcRespWifiGetCountryCode *message) +{ + static const RpcRespWifiGetCountryCode init_value = RPC__RESP__WIFI_GET_COUNTRY_CODE__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_get_country_code__get_packed_size + (const RpcRespWifiGetCountryCode *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_country_code__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_get_country_code__pack + (const RpcRespWifiGetCountryCode *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_country_code__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_get_country_code__pack_to_buffer + (const RpcRespWifiGetCountryCode *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_country_code__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiGetCountryCode * + rpc__resp__wifi_get_country_code__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiGetCountryCode *) + protobuf_c_message_unpack (&rpc__resp__wifi_get_country_code__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_get_country_code__free_unpacked + (RpcRespWifiGetCountryCode *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_get_country_code__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_set_country__init + (RpcReqWifiSetCountry *message) +{ + static const RpcReqWifiSetCountry init_value = RPC__REQ__WIFI_SET_COUNTRY__INIT; + *message = init_value; +} +size_t rpc__req__wifi_set_country__get_packed_size + (const RpcReqWifiSetCountry *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_country__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_set_country__pack + (const RpcReqWifiSetCountry *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_country__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_set_country__pack_to_buffer + (const RpcReqWifiSetCountry *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_country__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiSetCountry * + rpc__req__wifi_set_country__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiSetCountry *) + protobuf_c_message_unpack (&rpc__req__wifi_set_country__descriptor, + allocator, len, data); +} +void rpc__req__wifi_set_country__free_unpacked + (RpcReqWifiSetCountry *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_set_country__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_set_country__init + (RpcRespWifiSetCountry *message) +{ + static const RpcRespWifiSetCountry init_value = RPC__RESP__WIFI_SET_COUNTRY__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_set_country__get_packed_size + (const RpcRespWifiSetCountry *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_country__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_set_country__pack + (const RpcRespWifiSetCountry *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_country__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_set_country__pack_to_buffer + (const RpcRespWifiSetCountry *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_country__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiSetCountry * + rpc__resp__wifi_set_country__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiSetCountry *) + protobuf_c_message_unpack (&rpc__resp__wifi_set_country__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_set_country__free_unpacked + (RpcRespWifiSetCountry *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_set_country__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_get_country__init + (RpcReqWifiGetCountry *message) +{ + static const RpcReqWifiGetCountry init_value = RPC__REQ__WIFI_GET_COUNTRY__INIT; + *message = init_value; +} +size_t rpc__req__wifi_get_country__get_packed_size + (const RpcReqWifiGetCountry *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_country__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_get_country__pack + (const RpcReqWifiGetCountry *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_country__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_get_country__pack_to_buffer + (const RpcReqWifiGetCountry *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_country__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiGetCountry * + rpc__req__wifi_get_country__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiGetCountry *) + protobuf_c_message_unpack (&rpc__req__wifi_get_country__descriptor, + allocator, len, data); +} +void rpc__req__wifi_get_country__free_unpacked + (RpcReqWifiGetCountry *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_get_country__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_get_country__init + (RpcRespWifiGetCountry *message) +{ + static const RpcRespWifiGetCountry init_value = RPC__RESP__WIFI_GET_COUNTRY__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_get_country__get_packed_size + (const RpcRespWifiGetCountry *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_country__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_get_country__pack + (const RpcRespWifiGetCountry *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_country__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_get_country__pack_to_buffer + (const RpcRespWifiGetCountry *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_country__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiGetCountry * + rpc__resp__wifi_get_country__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiGetCountry *) + protobuf_c_message_unpack (&rpc__resp__wifi_get_country__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_get_country__free_unpacked + (RpcRespWifiGetCountry *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_get_country__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_ap_get_sta_list__init + (RpcReqWifiApGetStaList *message) +{ + static const RpcReqWifiApGetStaList init_value = RPC__REQ__WIFI_AP_GET_STA_LIST__INIT; + *message = init_value; +} +size_t rpc__req__wifi_ap_get_sta_list__get_packed_size + (const RpcReqWifiApGetStaList *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_list__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_ap_get_sta_list__pack + (const RpcReqWifiApGetStaList *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_list__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_ap_get_sta_list__pack_to_buffer + (const RpcReqWifiApGetStaList *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_list__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiApGetStaList * + rpc__req__wifi_ap_get_sta_list__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiApGetStaList *) + protobuf_c_message_unpack (&rpc__req__wifi_ap_get_sta_list__descriptor, + allocator, len, data); +} +void rpc__req__wifi_ap_get_sta_list__free_unpacked + (RpcReqWifiApGetStaList *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_list__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_ap_get_sta_list__init + (RpcRespWifiApGetStaList *message) +{ + static const RpcRespWifiApGetStaList init_value = RPC__RESP__WIFI_AP_GET_STA_LIST__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_ap_get_sta_list__get_packed_size + (const RpcRespWifiApGetStaList *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_list__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_ap_get_sta_list__pack + (const RpcRespWifiApGetStaList *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_list__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_ap_get_sta_list__pack_to_buffer + (const RpcRespWifiApGetStaList *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_list__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiApGetStaList * + rpc__resp__wifi_ap_get_sta_list__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiApGetStaList *) + protobuf_c_message_unpack (&rpc__resp__wifi_ap_get_sta_list__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_ap_get_sta_list__free_unpacked + (RpcRespWifiApGetStaList *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_list__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_ap_get_sta_aid__init + (RpcReqWifiApGetStaAid *message) +{ + static const RpcReqWifiApGetStaAid init_value = RPC__REQ__WIFI_AP_GET_STA_AID__INIT; + *message = init_value; +} +size_t rpc__req__wifi_ap_get_sta_aid__get_packed_size + (const RpcReqWifiApGetStaAid *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_aid__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_ap_get_sta_aid__pack + (const RpcReqWifiApGetStaAid *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_aid__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_ap_get_sta_aid__pack_to_buffer + (const RpcReqWifiApGetStaAid *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_aid__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiApGetStaAid * + rpc__req__wifi_ap_get_sta_aid__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiApGetStaAid *) + protobuf_c_message_unpack (&rpc__req__wifi_ap_get_sta_aid__descriptor, + allocator, len, data); +} +void rpc__req__wifi_ap_get_sta_aid__free_unpacked + (RpcReqWifiApGetStaAid *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_aid__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_sta_get_negotiated_phymode__init + (RpcReqWifiStaGetNegotiatedPhymode *message) +{ + static const RpcReqWifiStaGetNegotiatedPhymode init_value = RPC__REQ__WIFI_STA_GET_NEGOTIATED_PHYMODE__INIT; + *message = init_value; +} +size_t rpc__req__wifi_sta_get_negotiated_phymode__get_packed_size + (const RpcReqWifiStaGetNegotiatedPhymode *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_sta_get_negotiated_phymode__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_sta_get_negotiated_phymode__pack + (const RpcReqWifiStaGetNegotiatedPhymode *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_sta_get_negotiated_phymode__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_sta_get_negotiated_phymode__pack_to_buffer + (const RpcReqWifiStaGetNegotiatedPhymode *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_sta_get_negotiated_phymode__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiStaGetNegotiatedPhymode * + rpc__req__wifi_sta_get_negotiated_phymode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiStaGetNegotiatedPhymode *) + protobuf_c_message_unpack (&rpc__req__wifi_sta_get_negotiated_phymode__descriptor, + allocator, len, data); +} +void rpc__req__wifi_sta_get_negotiated_phymode__free_unpacked + (RpcReqWifiStaGetNegotiatedPhymode *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_sta_get_negotiated_phymode__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_sta_get_negotiated_phymode__init + (RpcRespWifiStaGetNegotiatedPhymode *message) +{ + static const RpcRespWifiStaGetNegotiatedPhymode init_value = RPC__RESP__WIFI_STA_GET_NEGOTIATED_PHYMODE__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_sta_get_negotiated_phymode__get_packed_size + (const RpcRespWifiStaGetNegotiatedPhymode *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_negotiated_phymode__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_sta_get_negotiated_phymode__pack + (const RpcRespWifiStaGetNegotiatedPhymode *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_negotiated_phymode__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_sta_get_negotiated_phymode__pack_to_buffer + (const RpcRespWifiStaGetNegotiatedPhymode *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_negotiated_phymode__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiStaGetNegotiatedPhymode * + rpc__resp__wifi_sta_get_negotiated_phymode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiStaGetNegotiatedPhymode *) + protobuf_c_message_unpack (&rpc__resp__wifi_sta_get_negotiated_phymode__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_sta_get_negotiated_phymode__free_unpacked + (RpcRespWifiStaGetNegotiatedPhymode *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_negotiated_phymode__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_ap_get_sta_aid__init + (RpcRespWifiApGetStaAid *message) +{ + static const RpcRespWifiApGetStaAid init_value = RPC__RESP__WIFI_AP_GET_STA_AID__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_ap_get_sta_aid__get_packed_size + (const RpcRespWifiApGetStaAid *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_aid__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_ap_get_sta_aid__pack + (const RpcRespWifiApGetStaAid *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_aid__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_ap_get_sta_aid__pack_to_buffer + (const RpcRespWifiApGetStaAid *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_aid__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiApGetStaAid * + rpc__resp__wifi_ap_get_sta_aid__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiApGetStaAid *) + protobuf_c_message_unpack (&rpc__resp__wifi_ap_get_sta_aid__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_ap_get_sta_aid__free_unpacked + (RpcRespWifiApGetStaAid *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_aid__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_sta_get_rssi__init + (RpcReqWifiStaGetRssi *message) +{ + static const RpcReqWifiStaGetRssi init_value = RPC__REQ__WIFI_STA_GET_RSSI__INIT; + *message = init_value; +} +size_t rpc__req__wifi_sta_get_rssi__get_packed_size + (const RpcReqWifiStaGetRssi *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_sta_get_rssi__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_sta_get_rssi__pack + (const RpcReqWifiStaGetRssi *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_sta_get_rssi__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_sta_get_rssi__pack_to_buffer + (const RpcReqWifiStaGetRssi *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_sta_get_rssi__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiStaGetRssi * + rpc__req__wifi_sta_get_rssi__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiStaGetRssi *) + protobuf_c_message_unpack (&rpc__req__wifi_sta_get_rssi__descriptor, + allocator, len, data); +} +void rpc__req__wifi_sta_get_rssi__free_unpacked + (RpcReqWifiStaGetRssi *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_sta_get_rssi__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_sta_get_rssi__init + (RpcRespWifiStaGetRssi *message) +{ + static const RpcRespWifiStaGetRssi init_value = RPC__RESP__WIFI_STA_GET_RSSI__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_sta_get_rssi__get_packed_size + (const RpcRespWifiStaGetRssi *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_rssi__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_sta_get_rssi__pack + (const RpcRespWifiStaGetRssi *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_rssi__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_sta_get_rssi__pack_to_buffer + (const RpcRespWifiStaGetRssi *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_rssi__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiStaGetRssi * + rpc__resp__wifi_sta_get_rssi__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiStaGetRssi *) + protobuf_c_message_unpack (&rpc__resp__wifi_sta_get_rssi__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_sta_get_rssi__free_unpacked + (RpcRespWifiStaGetRssi *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_rssi__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_sta_get_aid__init + (RpcReqWifiStaGetAid *message) +{ + static const RpcReqWifiStaGetAid init_value = RPC__REQ__WIFI_STA_GET_AID__INIT; + *message = init_value; +} +size_t rpc__req__wifi_sta_get_aid__get_packed_size + (const RpcReqWifiStaGetAid *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_sta_get_aid__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_sta_get_aid__pack + (const RpcReqWifiStaGetAid *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_sta_get_aid__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_sta_get_aid__pack_to_buffer + (const RpcReqWifiStaGetAid *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_sta_get_aid__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiStaGetAid * + rpc__req__wifi_sta_get_aid__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiStaGetAid *) + protobuf_c_message_unpack (&rpc__req__wifi_sta_get_aid__descriptor, + allocator, len, data); +} +void rpc__req__wifi_sta_get_aid__free_unpacked + (RpcReqWifiStaGetAid *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_sta_get_aid__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_sta_get_aid__init + (RpcRespWifiStaGetAid *message) +{ + static const RpcRespWifiStaGetAid init_value = RPC__RESP__WIFI_STA_GET_AID__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_sta_get_aid__get_packed_size + (const RpcRespWifiStaGetAid *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_aid__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_sta_get_aid__pack + (const RpcRespWifiStaGetAid *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_aid__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_sta_get_aid__pack_to_buffer + (const RpcRespWifiStaGetAid *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_aid__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiStaGetAid * + rpc__resp__wifi_sta_get_aid__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiStaGetAid *) + protobuf_c_message_unpack (&rpc__resp__wifi_sta_get_aid__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_sta_get_aid__free_unpacked + (RpcRespWifiStaGetAid *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_aid__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_set_protocols__init + (RpcReqWifiSetProtocols *message) +{ + static const RpcReqWifiSetProtocols init_value = RPC__REQ__WIFI_SET_PROTOCOLS__INIT; + *message = init_value; +} +size_t rpc__req__wifi_set_protocols__get_packed_size + (const RpcReqWifiSetProtocols *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_protocols__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_set_protocols__pack + (const RpcReqWifiSetProtocols *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_protocols__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_set_protocols__pack_to_buffer + (const RpcReqWifiSetProtocols *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_protocols__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiSetProtocols * + rpc__req__wifi_set_protocols__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiSetProtocols *) + protobuf_c_message_unpack (&rpc__req__wifi_set_protocols__descriptor, + allocator, len, data); +} +void rpc__req__wifi_set_protocols__free_unpacked + (RpcReqWifiSetProtocols *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_set_protocols__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_set_protocols__init + (RpcRespWifiSetProtocols *message) +{ + static const RpcRespWifiSetProtocols init_value = RPC__RESP__WIFI_SET_PROTOCOLS__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_set_protocols__get_packed_size + (const RpcRespWifiSetProtocols *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_protocols__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_set_protocols__pack + (const RpcRespWifiSetProtocols *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_protocols__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_set_protocols__pack_to_buffer + (const RpcRespWifiSetProtocols *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_protocols__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiSetProtocols * + rpc__resp__wifi_set_protocols__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiSetProtocols *) + protobuf_c_message_unpack (&rpc__resp__wifi_set_protocols__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_set_protocols__free_unpacked + (RpcRespWifiSetProtocols *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_set_protocols__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_get_protocols__init + (RpcReqWifiGetProtocols *message) +{ + static const RpcReqWifiGetProtocols init_value = RPC__REQ__WIFI_GET_PROTOCOLS__INIT; + *message = init_value; +} +size_t rpc__req__wifi_get_protocols__get_packed_size + (const RpcReqWifiGetProtocols *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_protocols__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_get_protocols__pack + (const RpcReqWifiGetProtocols *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_protocols__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_get_protocols__pack_to_buffer + (const RpcReqWifiGetProtocols *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_protocols__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiGetProtocols * + rpc__req__wifi_get_protocols__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiGetProtocols *) + protobuf_c_message_unpack (&rpc__req__wifi_get_protocols__descriptor, + allocator, len, data); +} +void rpc__req__wifi_get_protocols__free_unpacked + (RpcReqWifiGetProtocols *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_get_protocols__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_get_protocols__init + (RpcRespWifiGetProtocols *message) +{ + static const RpcRespWifiGetProtocols init_value = RPC__RESP__WIFI_GET_PROTOCOLS__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_get_protocols__get_packed_size + (const RpcRespWifiGetProtocols *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_protocols__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_get_protocols__pack + (const RpcRespWifiGetProtocols *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_protocols__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_get_protocols__pack_to_buffer + (const RpcRespWifiGetProtocols *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_protocols__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiGetProtocols * + rpc__resp__wifi_get_protocols__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiGetProtocols *) + protobuf_c_message_unpack (&rpc__resp__wifi_get_protocols__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_get_protocols__free_unpacked + (RpcRespWifiGetProtocols *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_get_protocols__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_set_bandwidths__init + (RpcReqWifiSetBandwidths *message) +{ + static const RpcReqWifiSetBandwidths init_value = RPC__REQ__WIFI_SET_BANDWIDTHS__INIT; + *message = init_value; +} +size_t rpc__req__wifi_set_bandwidths__get_packed_size + (const RpcReqWifiSetBandwidths *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_bandwidths__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_set_bandwidths__pack + (const RpcReqWifiSetBandwidths *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_bandwidths__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_set_bandwidths__pack_to_buffer + (const RpcReqWifiSetBandwidths *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_bandwidths__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiSetBandwidths * + rpc__req__wifi_set_bandwidths__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiSetBandwidths *) + protobuf_c_message_unpack (&rpc__req__wifi_set_bandwidths__descriptor, + allocator, len, data); +} +void rpc__req__wifi_set_bandwidths__free_unpacked + (RpcReqWifiSetBandwidths *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_set_bandwidths__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_set_bandwidths__init + (RpcRespWifiSetBandwidths *message) +{ + static const RpcRespWifiSetBandwidths init_value = RPC__RESP__WIFI_SET_BANDWIDTHS__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_set_bandwidths__get_packed_size + (const RpcRespWifiSetBandwidths *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidths__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_set_bandwidths__pack + (const RpcRespWifiSetBandwidths *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidths__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_set_bandwidths__pack_to_buffer + (const RpcRespWifiSetBandwidths *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidths__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiSetBandwidths * + rpc__resp__wifi_set_bandwidths__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiSetBandwidths *) + protobuf_c_message_unpack (&rpc__resp__wifi_set_bandwidths__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_set_bandwidths__free_unpacked + (RpcRespWifiSetBandwidths *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidths__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_get_bandwidths__init + (RpcReqWifiGetBandwidths *message) +{ + static const RpcReqWifiGetBandwidths init_value = RPC__REQ__WIFI_GET_BANDWIDTHS__INIT; + *message = init_value; +} +size_t rpc__req__wifi_get_bandwidths__get_packed_size + (const RpcReqWifiGetBandwidths *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_bandwidths__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_get_bandwidths__pack + (const RpcReqWifiGetBandwidths *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_bandwidths__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_get_bandwidths__pack_to_buffer + (const RpcReqWifiGetBandwidths *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_bandwidths__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiGetBandwidths * + rpc__req__wifi_get_bandwidths__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiGetBandwidths *) + protobuf_c_message_unpack (&rpc__req__wifi_get_bandwidths__descriptor, + allocator, len, data); +} +void rpc__req__wifi_get_bandwidths__free_unpacked + (RpcReqWifiGetBandwidths *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_get_bandwidths__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_get_bandwidths__init + (RpcRespWifiGetBandwidths *message) +{ + static const RpcRespWifiGetBandwidths init_value = RPC__RESP__WIFI_GET_BANDWIDTHS__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_get_bandwidths__get_packed_size + (const RpcRespWifiGetBandwidths *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidths__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_get_bandwidths__pack + (const RpcRespWifiGetBandwidths *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidths__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_get_bandwidths__pack_to_buffer + (const RpcRespWifiGetBandwidths *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidths__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiGetBandwidths * + rpc__resp__wifi_get_bandwidths__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiGetBandwidths *) + protobuf_c_message_unpack (&rpc__resp__wifi_get_bandwidths__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_get_bandwidths__free_unpacked + (RpcRespWifiGetBandwidths *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidths__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_set_band__init + (RpcReqWifiSetBand *message) +{ + static const RpcReqWifiSetBand init_value = RPC__REQ__WIFI_SET_BAND__INIT; + *message = init_value; +} +size_t rpc__req__wifi_set_band__get_packed_size + (const RpcReqWifiSetBand *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_band__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_set_band__pack + (const RpcReqWifiSetBand *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_band__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_set_band__pack_to_buffer + (const RpcReqWifiSetBand *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_band__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiSetBand * + rpc__req__wifi_set_band__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiSetBand *) + protobuf_c_message_unpack (&rpc__req__wifi_set_band__descriptor, + allocator, len, data); +} +void rpc__req__wifi_set_band__free_unpacked + (RpcReqWifiSetBand *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_set_band__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_set_band__init + (RpcRespWifiSetBand *message) +{ + static const RpcRespWifiSetBand init_value = RPC__RESP__WIFI_SET_BAND__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_set_band__get_packed_size + (const RpcRespWifiSetBand *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_band__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_set_band__pack + (const RpcRespWifiSetBand *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_band__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_set_band__pack_to_buffer + (const RpcRespWifiSetBand *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_band__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiSetBand * + rpc__resp__wifi_set_band__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiSetBand *) + protobuf_c_message_unpack (&rpc__resp__wifi_set_band__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_set_band__free_unpacked + (RpcRespWifiSetBand *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_set_band__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_get_band__init + (RpcReqWifiGetBand *message) +{ + static const RpcReqWifiGetBand init_value = RPC__REQ__WIFI_GET_BAND__INIT; + *message = init_value; +} +size_t rpc__req__wifi_get_band__get_packed_size + (const RpcReqWifiGetBand *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_band__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_get_band__pack + (const RpcReqWifiGetBand *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_band__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_get_band__pack_to_buffer + (const RpcReqWifiGetBand *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_band__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiGetBand * + rpc__req__wifi_get_band__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiGetBand *) + protobuf_c_message_unpack (&rpc__req__wifi_get_band__descriptor, + allocator, len, data); +} +void rpc__req__wifi_get_band__free_unpacked + (RpcReqWifiGetBand *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_get_band__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_get_band__init + (RpcRespWifiGetBand *message) +{ + static const RpcRespWifiGetBand init_value = RPC__RESP__WIFI_GET_BAND__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_get_band__get_packed_size + (const RpcRespWifiGetBand *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_band__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_get_band__pack + (const RpcRespWifiGetBand *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_band__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_get_band__pack_to_buffer + (const RpcRespWifiGetBand *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_band__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiGetBand * + rpc__resp__wifi_get_band__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiGetBand *) + protobuf_c_message_unpack (&rpc__resp__wifi_get_band__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_get_band__free_unpacked + (RpcRespWifiGetBand *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_get_band__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_set_band_mode__init + (RpcReqWifiSetBandMode *message) +{ + static const RpcReqWifiSetBandMode init_value = RPC__REQ__WIFI_SET_BAND_MODE__INIT; + *message = init_value; +} +size_t rpc__req__wifi_set_band_mode__get_packed_size + (const RpcReqWifiSetBandMode *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_band_mode__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_set_band_mode__pack + (const RpcReqWifiSetBandMode *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_band_mode__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_set_band_mode__pack_to_buffer + (const RpcReqWifiSetBandMode *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_band_mode__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiSetBandMode * + rpc__req__wifi_set_band_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiSetBandMode *) + protobuf_c_message_unpack (&rpc__req__wifi_set_band_mode__descriptor, + allocator, len, data); +} +void rpc__req__wifi_set_band_mode__free_unpacked + (RpcReqWifiSetBandMode *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_set_band_mode__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_set_band_mode__init + (RpcRespWifiSetBandMode *message) +{ + static const RpcRespWifiSetBandMode init_value = RPC__RESP__WIFI_SET_BAND_MODE__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_set_band_mode__get_packed_size + (const RpcRespWifiSetBandMode *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_band_mode__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_set_band_mode__pack + (const RpcRespWifiSetBandMode *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_band_mode__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_set_band_mode__pack_to_buffer + (const RpcRespWifiSetBandMode *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_band_mode__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiSetBandMode * + rpc__resp__wifi_set_band_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiSetBandMode *) + protobuf_c_message_unpack (&rpc__resp__wifi_set_band_mode__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_set_band_mode__free_unpacked + (RpcRespWifiSetBandMode *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_set_band_mode__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_get_band_mode__init + (RpcReqWifiGetBandMode *message) +{ + static const RpcReqWifiGetBandMode init_value = RPC__REQ__WIFI_GET_BAND_MODE__INIT; + *message = init_value; +} +size_t rpc__req__wifi_get_band_mode__get_packed_size + (const RpcReqWifiGetBandMode *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_band_mode__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_get_band_mode__pack + (const RpcReqWifiGetBandMode *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_band_mode__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_get_band_mode__pack_to_buffer + (const RpcReqWifiGetBandMode *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_band_mode__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiGetBandMode * + rpc__req__wifi_get_band_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiGetBandMode *) + protobuf_c_message_unpack (&rpc__req__wifi_get_band_mode__descriptor, + allocator, len, data); +} +void rpc__req__wifi_get_band_mode__free_unpacked + (RpcReqWifiGetBandMode *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_get_band_mode__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_get_band_mode__init + (RpcRespWifiGetBandMode *message) +{ + static const RpcRespWifiGetBandMode init_value = RPC__RESP__WIFI_GET_BAND_MODE__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_get_band_mode__get_packed_size + (const RpcRespWifiGetBandMode *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_band_mode__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_get_band_mode__pack + (const RpcRespWifiGetBandMode *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_band_mode__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_get_band_mode__pack_to_buffer + (const RpcRespWifiGetBandMode *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_band_mode__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiGetBandMode * + rpc__resp__wifi_get_band_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiGetBandMode *) + protobuf_c_message_unpack (&rpc__resp__wifi_get_band_mode__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_get_band_mode__free_unpacked + (RpcRespWifiGetBandMode *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_get_band_mode__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__get_coprocessor_fw_version__init + (RpcReqGetCoprocessorFwVersion *message) +{ + static const RpcReqGetCoprocessorFwVersion init_value = RPC__REQ__GET_COPROCESSOR_FW_VERSION__INIT; + *message = init_value; +} +size_t rpc__req__get_coprocessor_fw_version__get_packed_size + (const RpcReqGetCoprocessorFwVersion *message) +{ + assert(message->base.descriptor == &rpc__req__get_coprocessor_fw_version__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__get_coprocessor_fw_version__pack + (const RpcReqGetCoprocessorFwVersion *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__get_coprocessor_fw_version__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__get_coprocessor_fw_version__pack_to_buffer + (const RpcReqGetCoprocessorFwVersion *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__get_coprocessor_fw_version__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqGetCoprocessorFwVersion * + rpc__req__get_coprocessor_fw_version__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqGetCoprocessorFwVersion *) + protobuf_c_message_unpack (&rpc__req__get_coprocessor_fw_version__descriptor, + allocator, len, data); +} +void rpc__req__get_coprocessor_fw_version__free_unpacked + (RpcReqGetCoprocessorFwVersion *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__get_coprocessor_fw_version__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__get_coprocessor_fw_version__init + (RpcRespGetCoprocessorFwVersion *message) +{ + static const RpcRespGetCoprocessorFwVersion init_value = RPC__RESP__GET_COPROCESSOR_FW_VERSION__INIT; + *message = init_value; +} +size_t rpc__resp__get_coprocessor_fw_version__get_packed_size + (const RpcRespGetCoprocessorFwVersion *message) +{ + assert(message->base.descriptor == &rpc__resp__get_coprocessor_fw_version__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__get_coprocessor_fw_version__pack + (const RpcRespGetCoprocessorFwVersion *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__get_coprocessor_fw_version__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__get_coprocessor_fw_version__pack_to_buffer + (const RpcRespGetCoprocessorFwVersion *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__get_coprocessor_fw_version__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespGetCoprocessorFwVersion * + rpc__resp__get_coprocessor_fw_version__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespGetCoprocessorFwVersion *) + protobuf_c_message_unpack (&rpc__resp__get_coprocessor_fw_version__descriptor, + allocator, len, data); +} +void rpc__resp__get_coprocessor_fw_version__free_unpacked + (RpcRespGetCoprocessorFwVersion *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__get_coprocessor_fw_version__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__event__wifi_event_no_args__init + (RpcEventWifiEventNoArgs *message) +{ + static const RpcEventWifiEventNoArgs init_value = RPC__EVENT__WIFI_EVENT_NO_ARGS__INIT; + *message = init_value; +} +size_t rpc__event__wifi_event_no_args__get_packed_size + (const RpcEventWifiEventNoArgs *message) +{ + assert(message->base.descriptor == &rpc__event__wifi_event_no_args__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__event__wifi_event_no_args__pack + (const RpcEventWifiEventNoArgs *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__event__wifi_event_no_args__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__event__wifi_event_no_args__pack_to_buffer + (const RpcEventWifiEventNoArgs *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__event__wifi_event_no_args__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcEventWifiEventNoArgs * + rpc__event__wifi_event_no_args__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcEventWifiEventNoArgs *) + protobuf_c_message_unpack (&rpc__event__wifi_event_no_args__descriptor, + allocator, len, data); +} +void rpc__event__wifi_event_no_args__free_unpacked + (RpcEventWifiEventNoArgs *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__event__wifi_event_no_args__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__event__espinit__init + (RpcEventESPInit *message) +{ + static const RpcEventESPInit init_value = RPC__EVENT__ESPINIT__INIT; + *message = init_value; +} +size_t rpc__event__espinit__get_packed_size + (const RpcEventESPInit *message) +{ + assert(message->base.descriptor == &rpc__event__espinit__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__event__espinit__pack + (const RpcEventESPInit *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__event__espinit__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__event__espinit__pack_to_buffer + (const RpcEventESPInit *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__event__espinit__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcEventESPInit * + rpc__event__espinit__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcEventESPInit *) + protobuf_c_message_unpack (&rpc__event__espinit__descriptor, + allocator, len, data); +} +void rpc__event__espinit__free_unpacked + (RpcEventESPInit *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__event__espinit__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__event__heartbeat__init + (RpcEventHeartbeat *message) +{ + static const RpcEventHeartbeat init_value = RPC__EVENT__HEARTBEAT__INIT; + *message = init_value; +} +size_t rpc__event__heartbeat__get_packed_size + (const RpcEventHeartbeat *message) +{ + assert(message->base.descriptor == &rpc__event__heartbeat__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__event__heartbeat__pack + (const RpcEventHeartbeat *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__event__heartbeat__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__event__heartbeat__pack_to_buffer + (const RpcEventHeartbeat *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__event__heartbeat__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcEventHeartbeat * + rpc__event__heartbeat__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcEventHeartbeat *) + protobuf_c_message_unpack (&rpc__event__heartbeat__descriptor, + allocator, len, data); +} +void rpc__event__heartbeat__free_unpacked + (RpcEventHeartbeat *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__event__heartbeat__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__event__ap__sta_disconnected__init + (RpcEventAPStaDisconnected *message) +{ + static const RpcEventAPStaDisconnected init_value = RPC__EVENT__AP__STA_DISCONNECTED__INIT; + *message = init_value; +} +size_t rpc__event__ap__sta_disconnected__get_packed_size + (const RpcEventAPStaDisconnected *message) +{ + assert(message->base.descriptor == &rpc__event__ap__sta_disconnected__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__event__ap__sta_disconnected__pack + (const RpcEventAPStaDisconnected *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__event__ap__sta_disconnected__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__event__ap__sta_disconnected__pack_to_buffer + (const RpcEventAPStaDisconnected *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__event__ap__sta_disconnected__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcEventAPStaDisconnected * + rpc__event__ap__sta_disconnected__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcEventAPStaDisconnected *) + protobuf_c_message_unpack (&rpc__event__ap__sta_disconnected__descriptor, + allocator, len, data); +} +void rpc__event__ap__sta_disconnected__free_unpacked + (RpcEventAPStaDisconnected *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__event__ap__sta_disconnected__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__event__ap__sta_connected__init + (RpcEventAPStaConnected *message) +{ + static const RpcEventAPStaConnected init_value = RPC__EVENT__AP__STA_CONNECTED__INIT; + *message = init_value; +} +size_t rpc__event__ap__sta_connected__get_packed_size + (const RpcEventAPStaConnected *message) +{ + assert(message->base.descriptor == &rpc__event__ap__sta_connected__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__event__ap__sta_connected__pack + (const RpcEventAPStaConnected *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__event__ap__sta_connected__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__event__ap__sta_connected__pack_to_buffer + (const RpcEventAPStaConnected *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__event__ap__sta_connected__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcEventAPStaConnected * + rpc__event__ap__sta_connected__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcEventAPStaConnected *) + protobuf_c_message_unpack (&rpc__event__ap__sta_connected__descriptor, + allocator, len, data); +} +void rpc__event__ap__sta_connected__free_unpacked + (RpcEventAPStaConnected *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__event__ap__sta_connected__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__event__sta_scan_done__init + (RpcEventStaScanDone *message) +{ + static const RpcEventStaScanDone init_value = RPC__EVENT__STA_SCAN_DONE__INIT; + *message = init_value; +} +size_t rpc__event__sta_scan_done__get_packed_size + (const RpcEventStaScanDone *message) +{ + assert(message->base.descriptor == &rpc__event__sta_scan_done__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__event__sta_scan_done__pack + (const RpcEventStaScanDone *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__event__sta_scan_done__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__event__sta_scan_done__pack_to_buffer + (const RpcEventStaScanDone *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__event__sta_scan_done__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcEventStaScanDone * + rpc__event__sta_scan_done__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcEventStaScanDone *) + protobuf_c_message_unpack (&rpc__event__sta_scan_done__descriptor, + allocator, len, data); +} +void rpc__event__sta_scan_done__free_unpacked + (RpcEventStaScanDone *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__event__sta_scan_done__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__event__sta_connected__init + (RpcEventStaConnected *message) +{ + static const RpcEventStaConnected init_value = RPC__EVENT__STA_CONNECTED__INIT; + *message = init_value; +} +size_t rpc__event__sta_connected__get_packed_size + (const RpcEventStaConnected *message) +{ + assert(message->base.descriptor == &rpc__event__sta_connected__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__event__sta_connected__pack + (const RpcEventStaConnected *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__event__sta_connected__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__event__sta_connected__pack_to_buffer + (const RpcEventStaConnected *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__event__sta_connected__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcEventStaConnected * + rpc__event__sta_connected__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcEventStaConnected *) + protobuf_c_message_unpack (&rpc__event__sta_connected__descriptor, + allocator, len, data); +} +void rpc__event__sta_connected__free_unpacked + (RpcEventStaConnected *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__event__sta_connected__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__event__sta_disconnected__init + (RpcEventStaDisconnected *message) +{ + static const RpcEventStaDisconnected init_value = RPC__EVENT__STA_DISCONNECTED__INIT; + *message = init_value; +} +size_t rpc__event__sta_disconnected__get_packed_size + (const RpcEventStaDisconnected *message) +{ + assert(message->base.descriptor == &rpc__event__sta_disconnected__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__event__sta_disconnected__pack + (const RpcEventStaDisconnected *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__event__sta_disconnected__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__event__sta_disconnected__pack_to_buffer + (const RpcEventStaDisconnected *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__event__sta_disconnected__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcEventStaDisconnected * + rpc__event__sta_disconnected__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcEventStaDisconnected *) + protobuf_c_message_unpack (&rpc__event__sta_disconnected__descriptor, + allocator, len, data); +} +void rpc__event__sta_disconnected__free_unpacked + (RpcEventStaDisconnected *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__event__sta_disconnected__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__init + (Rpc *message) +{ + static const Rpc init_value = RPC__INIT; + *message = init_value; +} +size_t rpc__get_packed_size + (const Rpc *message) +{ + assert(message->base.descriptor == &rpc__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__pack + (const Rpc *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__pack_to_buffer + (const Rpc *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +Rpc * + rpc__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (Rpc *) + protobuf_c_message_unpack (&rpc__descriptor, + allocator, len, data); +} +void rpc__free_unpacked + (Rpc *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +static const ProtobufCFieldDescriptor wifi_init_config__field_descriptors[20] = +{ + { + "static_rx_buf_num", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, static_rx_buf_num), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "dynamic_rx_buf_num", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, dynamic_rx_buf_num), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "tx_buf_type", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, tx_buf_type), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "static_tx_buf_num", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, static_tx_buf_num), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "dynamic_tx_buf_num", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, dynamic_tx_buf_num), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "cache_tx_buf_num", + 6, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, cache_tx_buf_num), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "csi_enable", + 7, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, csi_enable), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ampdu_rx_enable", + 8, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, ampdu_rx_enable), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ampdu_tx_enable", + 9, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, ampdu_tx_enable), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "amsdu_tx_enable", + 10, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, amsdu_tx_enable), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "nvs_enable", + 11, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, nvs_enable), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "nano_enable", + 12, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, nano_enable), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "rx_ba_win", + 13, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, rx_ba_win), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "wifi_task_core_id", + 14, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, wifi_task_core_id), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "beacon_max_len", + 15, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, beacon_max_len), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "mgmt_sbuf_num", + 16, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, mgmt_sbuf_num), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "feature_caps", + 17, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT64, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, feature_caps), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "sta_disconnected_pm", + 18, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, sta_disconnected_pm), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "espnow_max_encrypt_num", + 19, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, espnow_max_encrypt_num), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "magic", + 20, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, magic), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_init_config__field_indices_by_name[] = { + 7, /* field[7] = ampdu_rx_enable */ + 8, /* field[8] = ampdu_tx_enable */ + 9, /* field[9] = amsdu_tx_enable */ + 14, /* field[14] = beacon_max_len */ + 5, /* field[5] = cache_tx_buf_num */ + 6, /* field[6] = csi_enable */ + 1, /* field[1] = dynamic_rx_buf_num */ + 4, /* field[4] = dynamic_tx_buf_num */ + 18, /* field[18] = espnow_max_encrypt_num */ + 16, /* field[16] = feature_caps */ + 19, /* field[19] = magic */ + 15, /* field[15] = mgmt_sbuf_num */ + 11, /* field[11] = nano_enable */ + 10, /* field[10] = nvs_enable */ + 12, /* field[12] = rx_ba_win */ + 17, /* field[17] = sta_disconnected_pm */ + 0, /* field[0] = static_rx_buf_num */ + 3, /* field[3] = static_tx_buf_num */ + 2, /* field[2] = tx_buf_type */ + 13, /* field[13] = wifi_task_core_id */ +}; +static const ProtobufCIntRange wifi_init_config__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 20 } +}; +const ProtobufCMessageDescriptor wifi_init_config__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_init_config", + "WifiInitConfig", + "WifiInitConfig", + "", + sizeof(WifiInitConfig), + 20, + wifi_init_config__field_descriptors, + wifi_init_config__field_indices_by_name, + 1, wifi_init_config__number_ranges, + (ProtobufCMessageInit) wifi_init_config__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_country__field_descriptors[5] = +{ + { + "cc", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiCountry, cc), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "schan", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiCountry, schan), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "nchan", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiCountry, nchan), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "max_tx_power", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiCountry, max_tx_power), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "policy", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiCountry, policy), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_country__field_indices_by_name[] = { + 0, /* field[0] = cc */ + 3, /* field[3] = max_tx_power */ + 2, /* field[2] = nchan */ + 4, /* field[4] = policy */ + 1, /* field[1] = schan */ +}; +static const ProtobufCIntRange wifi_country__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 5 } +}; +const ProtobufCMessageDescriptor wifi_country__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_country", + "WifiCountry", + "WifiCountry", + "", + sizeof(WifiCountry), + 5, + wifi_country__field_descriptors, + wifi_country__field_indices_by_name, + 1, wifi_country__number_ranges, + (ProtobufCMessageInit) wifi_country__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_active_scan_time__field_descriptors[2] = +{ + { + "min", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiActiveScanTime, min), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "max", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiActiveScanTime, max), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_active_scan_time__field_indices_by_name[] = { + 1, /* field[1] = max */ + 0, /* field[0] = min */ +}; +static const ProtobufCIntRange wifi_active_scan_time__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor wifi_active_scan_time__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_active_scan_time", + "WifiActiveScanTime", + "WifiActiveScanTime", + "", + sizeof(WifiActiveScanTime), + 2, + wifi_active_scan_time__field_descriptors, + wifi_active_scan_time__field_indices_by_name, + 1, wifi_active_scan_time__number_ranges, + (ProtobufCMessageInit) wifi_active_scan_time__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_scan_time__field_descriptors[2] = +{ + { + "active", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(WifiScanTime, active), + &wifi_active_scan_time__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "passive", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiScanTime, passive), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_scan_time__field_indices_by_name[] = { + 0, /* field[0] = active */ + 1, /* field[1] = passive */ +}; +static const ProtobufCIntRange wifi_scan_time__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor wifi_scan_time__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_scan_time", + "WifiScanTime", + "WifiScanTime", + "", + sizeof(WifiScanTime), + 2, + wifi_scan_time__field_descriptors, + wifi_scan_time__field_indices_by_name, + 1, wifi_scan_time__number_ranges, + (ProtobufCMessageInit) wifi_scan_time__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_scan_config__field_descriptors[7] = +{ + { + "ssid", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiScanConfig, ssid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "bssid", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiScanConfig, bssid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "channel", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiScanConfig, channel), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "show_hidden", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(WifiScanConfig, show_hidden), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "scan_type", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiScanConfig, scan_type), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "scan_time", + 6, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(WifiScanConfig, scan_time), + &wifi_scan_time__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "home_chan_dwell_time", + 7, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiScanConfig, home_chan_dwell_time), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_scan_config__field_indices_by_name[] = { + 1, /* field[1] = bssid */ + 2, /* field[2] = channel */ + 6, /* field[6] = home_chan_dwell_time */ + 5, /* field[5] = scan_time */ + 4, /* field[4] = scan_type */ + 3, /* field[3] = show_hidden */ + 0, /* field[0] = ssid */ +}; +static const ProtobufCIntRange wifi_scan_config__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 7 } +}; +const ProtobufCMessageDescriptor wifi_scan_config__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_scan_config", + "WifiScanConfig", + "WifiScanConfig", + "", + sizeof(WifiScanConfig), + 7, + wifi_scan_config__field_descriptors, + wifi_scan_config__field_indices_by_name, + 1, wifi_scan_config__number_ranges, + (ProtobufCMessageInit) wifi_scan_config__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_he_ap_info__field_descriptors[2] = +{ + { + "bitmask", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiHeApInfo, bitmask), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "bssid_index", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiHeApInfo, bssid_index), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_he_ap_info__field_indices_by_name[] = { + 0, /* field[0] = bitmask */ + 1, /* field[1] = bssid_index */ +}; +static const ProtobufCIntRange wifi_he_ap_info__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor wifi_he_ap_info__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_he_ap_info", + "WifiHeApInfo", + "WifiHeApInfo", + "", + sizeof(WifiHeApInfo), + 2, + wifi_he_ap_info__field_descriptors, + wifi_he_ap_info__field_indices_by_name, + 1, wifi_he_ap_info__number_ranges, + (ProtobufCMessageInit) wifi_he_ap_info__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_ap_record__field_descriptors[15] = +{ + { + "bssid", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiApRecord, bssid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ssid", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiApRecord, ssid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "primary", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiApRecord, primary), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "second", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiApRecord, second), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "rssi", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiApRecord, rssi), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "authmode", + 6, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiApRecord, authmode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "pairwise_cipher", + 7, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiApRecord, pairwise_cipher), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "group_cipher", + 8, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiApRecord, group_cipher), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ant", + 9, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiApRecord, ant), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "bitmask", + 10, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiApRecord, bitmask), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "country", + 11, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(WifiApRecord, country), + &wifi_country__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "he_ap", + 12, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(WifiApRecord, he_ap), + &wifi_he_ap_info__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "bandwidth", + 13, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiApRecord, bandwidth), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "vht_ch_freq1", + 14, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiApRecord, vht_ch_freq1), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "vht_ch_freq2", + 15, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiApRecord, vht_ch_freq2), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_ap_record__field_indices_by_name[] = { + 8, /* field[8] = ant */ + 5, /* field[5] = authmode */ + 12, /* field[12] = bandwidth */ + 9, /* field[9] = bitmask */ + 0, /* field[0] = bssid */ + 10, /* field[10] = country */ + 7, /* field[7] = group_cipher */ + 11, /* field[11] = he_ap */ + 6, /* field[6] = pairwise_cipher */ + 2, /* field[2] = primary */ + 4, /* field[4] = rssi */ + 3, /* field[3] = second */ + 1, /* field[1] = ssid */ + 13, /* field[13] = vht_ch_freq1 */ + 14, /* field[14] = vht_ch_freq2 */ +}; +static const ProtobufCIntRange wifi_ap_record__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 15 } +}; +const ProtobufCMessageDescriptor wifi_ap_record__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_ap_record", + "WifiApRecord", + "WifiApRecord", + "", + sizeof(WifiApRecord), + 15, + wifi_ap_record__field_descriptors, + wifi_ap_record__field_indices_by_name, + 1, wifi_ap_record__number_ranges, + (ProtobufCMessageInit) wifi_ap_record__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_scan_threshold__field_descriptors[2] = +{ + { + "rssi", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiScanThreshold, rssi), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "authmode", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiScanThreshold, authmode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_scan_threshold__field_indices_by_name[] = { + 1, /* field[1] = authmode */ + 0, /* field[0] = rssi */ +}; +static const ProtobufCIntRange wifi_scan_threshold__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor wifi_scan_threshold__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_scan_threshold", + "WifiScanThreshold", + "WifiScanThreshold", + "", + sizeof(WifiScanThreshold), + 2, + wifi_scan_threshold__field_descriptors, + wifi_scan_threshold__field_indices_by_name, + 1, wifi_scan_threshold__number_ranges, + (ProtobufCMessageInit) wifi_scan_threshold__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_pmf_config__field_descriptors[2] = +{ + { + "capable", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(WifiPmfConfig, capable), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "required", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(WifiPmfConfig, required), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_pmf_config__field_indices_by_name[] = { + 0, /* field[0] = capable */ + 1, /* field[1] = required */ +}; +static const ProtobufCIntRange wifi_pmf_config__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor wifi_pmf_config__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_pmf_config", + "WifiPmfConfig", + "WifiPmfConfig", + "", + sizeof(WifiPmfConfig), + 2, + wifi_pmf_config__field_descriptors, + wifi_pmf_config__field_indices_by_name, + 1, wifi_pmf_config__number_ranges, + (ProtobufCMessageInit) wifi_pmf_config__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_ap_config__field_descriptors[12] = +{ + { + "ssid", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiApConfig, ssid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "password", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiApConfig, password), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ssid_len", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiApConfig, ssid_len), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "channel", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiApConfig, channel), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "authmode", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiApConfig, authmode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ssid_hidden", + 6, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiApConfig, ssid_hidden), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "max_connection", + 7, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiApConfig, max_connection), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "beacon_interval", + 8, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiApConfig, beacon_interval), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "pairwise_cipher", + 9, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiApConfig, pairwise_cipher), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ftm_responder", + 10, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(WifiApConfig, ftm_responder), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "pmf_cfg", + 11, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(WifiApConfig, pmf_cfg), + &wifi_pmf_config__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "sae_pwe_h2e", + 12, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiApConfig, sae_pwe_h2e), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_ap_config__field_indices_by_name[] = { + 4, /* field[4] = authmode */ + 7, /* field[7] = beacon_interval */ + 3, /* field[3] = channel */ + 9, /* field[9] = ftm_responder */ + 6, /* field[6] = max_connection */ + 8, /* field[8] = pairwise_cipher */ + 1, /* field[1] = password */ + 10, /* field[10] = pmf_cfg */ + 11, /* field[11] = sae_pwe_h2e */ + 0, /* field[0] = ssid */ + 5, /* field[5] = ssid_hidden */ + 2, /* field[2] = ssid_len */ +}; +static const ProtobufCIntRange wifi_ap_config__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 12 } +}; +const ProtobufCMessageDescriptor wifi_ap_config__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_ap_config", + "WifiApConfig", + "WifiApConfig", + "", + sizeof(WifiApConfig), + 12, + wifi_ap_config__field_descriptors, + wifi_ap_config__field_indices_by_name, + 1, wifi_ap_config__number_ranges, + (ProtobufCMessageInit) wifi_ap_config__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_sta_config__field_descriptors[15] = +{ + { + "ssid", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiStaConfig, ssid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "password", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiStaConfig, password), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "scan_method", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiStaConfig, scan_method), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "bssid_set", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(WifiStaConfig, bssid_set), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "bssid", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiStaConfig, bssid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "channel", + 6, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiStaConfig, channel), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "listen_interval", + 7, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiStaConfig, listen_interval), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "sort_method", + 8, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiStaConfig, sort_method), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "threshold", + 9, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(WifiStaConfig, threshold), + &wifi_scan_threshold__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "pmf_cfg", + 10, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(WifiStaConfig, pmf_cfg), + &wifi_pmf_config__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "bitmask", + 11, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiStaConfig, bitmask), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "sae_pwe_h2e", + 12, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiStaConfig, sae_pwe_h2e), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "failure_retry_cnt", + 13, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiStaConfig, failure_retry_cnt), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "he_bitmask", + 14, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiStaConfig, he_bitmask), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "sae_h2e_identifier", + 15, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiStaConfig, sae_h2e_identifier), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_sta_config__field_indices_by_name[] = { + 10, /* field[10] = bitmask */ + 4, /* field[4] = bssid */ + 3, /* field[3] = bssid_set */ + 5, /* field[5] = channel */ + 12, /* field[12] = failure_retry_cnt */ + 13, /* field[13] = he_bitmask */ + 6, /* field[6] = listen_interval */ + 1, /* field[1] = password */ + 9, /* field[9] = pmf_cfg */ + 14, /* field[14] = sae_h2e_identifier */ + 11, /* field[11] = sae_pwe_h2e */ + 2, /* field[2] = scan_method */ + 7, /* field[7] = sort_method */ + 0, /* field[0] = ssid */ + 8, /* field[8] = threshold */ +}; +static const ProtobufCIntRange wifi_sta_config__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 15 } +}; +const ProtobufCMessageDescriptor wifi_sta_config__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_sta_config", + "WifiStaConfig", + "WifiStaConfig", + "", + sizeof(WifiStaConfig), + 15, + wifi_sta_config__field_descriptors, + wifi_sta_config__field_indices_by_name, + 1, wifi_sta_config__number_ranges, + (ProtobufCMessageInit) wifi_sta_config__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_config__field_descriptors[2] = +{ + { + "ap", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(WifiConfig, u_case), + offsetof(WifiConfig, ap), + &wifi_ap_config__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "sta", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(WifiConfig, u_case), + offsetof(WifiConfig, sta), + &wifi_sta_config__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_config__field_indices_by_name[] = { + 0, /* field[0] = ap */ + 1, /* field[1] = sta */ +}; +static const ProtobufCIntRange wifi_config__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor wifi_config__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_config", + "WifiConfig", + "WifiConfig", + "", + sizeof(WifiConfig), + 2, + wifi_config__field_descriptors, + wifi_config__field_indices_by_name, + 1, wifi_config__number_ranges, + (ProtobufCMessageInit) wifi_config__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_sta_info__field_descriptors[3] = +{ + { + "mac", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiStaInfo, mac), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "rssi", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiStaInfo, rssi), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "bitmask", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiStaInfo, bitmask), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_sta_info__field_indices_by_name[] = { + 2, /* field[2] = bitmask */ + 0, /* field[0] = mac */ + 1, /* field[1] = rssi */ +}; +static const ProtobufCIntRange wifi_sta_info__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 3 } +}; +const ProtobufCMessageDescriptor wifi_sta_info__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_sta_info", + "WifiStaInfo", + "WifiStaInfo", + "", + sizeof(WifiStaInfo), + 3, + wifi_sta_info__field_descriptors, + wifi_sta_info__field_indices_by_name, + 1, wifi_sta_info__number_ranges, + (ProtobufCMessageInit) wifi_sta_info__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_sta_list__field_descriptors[2] = +{ + { + "sta", + 1, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(WifiStaList, n_sta), + offsetof(WifiStaList, sta), + &wifi_sta_info__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "num", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiStaList, num), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_sta_list__field_indices_by_name[] = { + 1, /* field[1] = num */ + 0, /* field[0] = sta */ +}; +static const ProtobufCIntRange wifi_sta_list__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor wifi_sta_list__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_sta_list", + "WifiStaList", + "WifiStaList", + "", + sizeof(WifiStaList), + 2, + wifi_sta_list__field_descriptors, + wifi_sta_list__field_indices_by_name, + 1, wifi_sta_list__number_ranges, + (ProtobufCMessageInit) wifi_sta_list__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_pkt_rx_ctrl__field_descriptors[19] = +{ + { + "rssi", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, rssi), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "rate", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, rate), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "sig_mode", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, sig_mode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "mcs", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, mcs), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "cwb", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, cwb), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "smoothing", + 6, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, smoothing), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "not_sounding", + 7, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, not_sounding), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "aggregation", + 8, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, aggregation), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "stbc", + 9, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, stbc), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "fec_coding", + 10, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, fec_coding), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "sgi", + 11, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, sgi), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "noise_floor", + 12, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, noise_floor), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ampdu_cnt", + 13, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, ampdu_cnt), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "channel", + 14, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, channel), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "secondary_channel", + 15, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, secondary_channel), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "timestamp", + 16, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, timestamp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ant", + 17, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, ant), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "sig_len", + 18, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, sig_len), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "rx_state", + 19, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, rx_state), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_pkt_rx_ctrl__field_indices_by_name[] = { + 7, /* field[7] = aggregation */ + 12, /* field[12] = ampdu_cnt */ + 16, /* field[16] = ant */ + 13, /* field[13] = channel */ + 4, /* field[4] = cwb */ + 9, /* field[9] = fec_coding */ + 3, /* field[3] = mcs */ + 11, /* field[11] = noise_floor */ + 6, /* field[6] = not_sounding */ + 1, /* field[1] = rate */ + 0, /* field[0] = rssi */ + 18, /* field[18] = rx_state */ + 14, /* field[14] = secondary_channel */ + 10, /* field[10] = sgi */ + 17, /* field[17] = sig_len */ + 2, /* field[2] = sig_mode */ + 5, /* field[5] = smoothing */ + 8, /* field[8] = stbc */ + 15, /* field[15] = timestamp */ +}; +static const ProtobufCIntRange wifi_pkt_rx_ctrl__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 19 } +}; +const ProtobufCMessageDescriptor wifi_pkt_rx_ctrl__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_pkt_rx_ctrl", + "WifiPktRxCtrl", + "WifiPktRxCtrl", + "", + sizeof(WifiPktRxCtrl), + 19, + wifi_pkt_rx_ctrl__field_descriptors, + wifi_pkt_rx_ctrl__field_indices_by_name, + 1, wifi_pkt_rx_ctrl__number_ranges, + (ProtobufCMessageInit) wifi_pkt_rx_ctrl__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_promiscuous_pkt__field_descriptors[2] = +{ + { + "rx_ctrl", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(WifiPromiscuousPkt, rx_ctrl), + &wifi_pkt_rx_ctrl__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "payload", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiPromiscuousPkt, payload), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_promiscuous_pkt__field_indices_by_name[] = { + 1, /* field[1] = payload */ + 0, /* field[0] = rx_ctrl */ +}; +static const ProtobufCIntRange wifi_promiscuous_pkt__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor wifi_promiscuous_pkt__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_promiscuous_pkt", + "WifiPromiscuousPkt", + "WifiPromiscuousPkt", + "", + sizeof(WifiPromiscuousPkt), + 2, + wifi_promiscuous_pkt__field_descriptors, + wifi_promiscuous_pkt__field_indices_by_name, + 1, wifi_promiscuous_pkt__number_ranges, + (ProtobufCMessageInit) wifi_promiscuous_pkt__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_promiscuous_filter__field_descriptors[1] = +{ + { + "filter_mask", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPromiscuousFilter, filter_mask), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_promiscuous_filter__field_indices_by_name[] = { + 0, /* field[0] = filter_mask */ +}; +static const ProtobufCIntRange wifi_promiscuous_filter__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor wifi_promiscuous_filter__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_promiscuous_filter", + "WifiPromiscuousFilter", + "WifiPromiscuousFilter", + "", + sizeof(WifiPromiscuousFilter), + 1, + wifi_promiscuous_filter__field_descriptors, + wifi_promiscuous_filter__field_indices_by_name, + 1, wifi_promiscuous_filter__number_ranges, + (ProtobufCMessageInit) wifi_promiscuous_filter__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_csi_config__field_descriptors[7] = +{ + { + "lltf_en", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(WifiCsiConfig, lltf_en), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "htltf_en", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(WifiCsiConfig, htltf_en), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "stbc_htltf2_en", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(WifiCsiConfig, stbc_htltf2_en), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ltf_merge_en", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(WifiCsiConfig, ltf_merge_en), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "channel_filter_en", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(WifiCsiConfig, channel_filter_en), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "manu_scale", + 6, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(WifiCsiConfig, manu_scale), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "shift", + 7, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiCsiConfig, shift), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_csi_config__field_indices_by_name[] = { + 4, /* field[4] = channel_filter_en */ + 1, /* field[1] = htltf_en */ + 0, /* field[0] = lltf_en */ + 3, /* field[3] = ltf_merge_en */ + 5, /* field[5] = manu_scale */ + 6, /* field[6] = shift */ + 2, /* field[2] = stbc_htltf2_en */ +}; +static const ProtobufCIntRange wifi_csi_config__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 7 } +}; +const ProtobufCMessageDescriptor wifi_csi_config__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_csi_config", + "WifiCsiConfig", + "WifiCsiConfig", + "", + sizeof(WifiCsiConfig), + 7, + wifi_csi_config__field_descriptors, + wifi_csi_config__field_indices_by_name, + 1, wifi_csi_config__number_ranges, + (ProtobufCMessageInit) wifi_csi_config__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_csi_info__field_descriptors[6] = +{ + { + "rx_ctrl", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(WifiCsiInfo, rx_ctrl), + &wifi_pkt_rx_ctrl__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "mac", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiCsiInfo, mac), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "dmac", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiCsiInfo, dmac), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "first_word_invalid", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(WifiCsiInfo, first_word_invalid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "buf", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiCsiInfo, buf), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "len", + 6, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiCsiInfo, len), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_csi_info__field_indices_by_name[] = { + 4, /* field[4] = buf */ + 2, /* field[2] = dmac */ + 3, /* field[3] = first_word_invalid */ + 5, /* field[5] = len */ + 1, /* field[1] = mac */ + 0, /* field[0] = rx_ctrl */ +}; +static const ProtobufCIntRange wifi_csi_info__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 6 } +}; +const ProtobufCMessageDescriptor wifi_csi_info__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_csi_info", + "WifiCsiInfo", + "WifiCsiInfo", + "", + sizeof(WifiCsiInfo), + 6, + wifi_csi_info__field_descriptors, + wifi_csi_info__field_indices_by_name, + 1, wifi_csi_info__number_ranges, + (ProtobufCMessageInit) wifi_csi_info__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_ant_gpio__field_descriptors[2] = +{ + { + "gpio_select", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiAntGpio, gpio_select), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "gpio_num", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiAntGpio, gpio_num), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_ant_gpio__field_indices_by_name[] = { + 1, /* field[1] = gpio_num */ + 0, /* field[0] = gpio_select */ +}; +static const ProtobufCIntRange wifi_ant_gpio__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor wifi_ant_gpio__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_ant_gpio", + "WifiAntGpio", + "WifiAntGpio", + "", + sizeof(WifiAntGpio), + 2, + wifi_ant_gpio__field_descriptors, + wifi_ant_gpio__field_indices_by_name, + 1, wifi_ant_gpio__number_ranges, + (ProtobufCMessageInit) wifi_ant_gpio__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_ant_gpio_config__field_descriptors[1] = +{ + { + "gpio_cfgs", + 1, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(WifiAntGpioConfig, n_gpio_cfgs), + offsetof(WifiAntGpioConfig, gpio_cfgs), + &wifi_ant_gpio__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_ant_gpio_config__field_indices_by_name[] = { + 0, /* field[0] = gpio_cfgs */ +}; +static const ProtobufCIntRange wifi_ant_gpio_config__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor wifi_ant_gpio_config__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_ant_gpio_config", + "WifiAntGpioConfig", + "WifiAntGpioConfig", + "", + sizeof(WifiAntGpioConfig), + 1, + wifi_ant_gpio_config__field_descriptors, + wifi_ant_gpio_config__field_indices_by_name, + 1, wifi_ant_gpio_config__number_ranges, + (ProtobufCMessageInit) wifi_ant_gpio_config__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_ant_config__field_descriptors[5] = +{ + { + "rx_ant_mode", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiAntConfig, rx_ant_mode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "rx_ant_default", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiAntConfig, rx_ant_default), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "tx_ant_mode", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiAntConfig, tx_ant_mode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "enabled_ant0", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiAntConfig, enabled_ant0), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "enabled_ant1", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiAntConfig, enabled_ant1), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_ant_config__field_indices_by_name[] = { + 3, /* field[3] = enabled_ant0 */ + 4, /* field[4] = enabled_ant1 */ + 1, /* field[1] = rx_ant_default */ + 0, /* field[0] = rx_ant_mode */ + 2, /* field[2] = tx_ant_mode */ +}; +static const ProtobufCIntRange wifi_ant_config__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 5 } +}; +const ProtobufCMessageDescriptor wifi_ant_config__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_ant_config", + "WifiAntConfig", + "WifiAntConfig", + "", + sizeof(WifiAntConfig), + 5, + wifi_ant_config__field_descriptors, + wifi_ant_config__field_indices_by_name, + 1, wifi_ant_config__number_ranges, + (ProtobufCMessageInit) wifi_ant_config__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_action_tx_req__field_descriptors[5] = +{ + { + "ifx", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiActionTxReq, ifx), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "dest_mac", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiActionTxReq, dest_mac), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "no_ack", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(WifiActionTxReq, no_ack), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "data_len", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiActionTxReq, data_len), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "data", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiActionTxReq, data), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_action_tx_req__field_indices_by_name[] = { + 4, /* field[4] = data */ + 3, /* field[3] = data_len */ + 1, /* field[1] = dest_mac */ + 0, /* field[0] = ifx */ + 2, /* field[2] = no_ack */ +}; +static const ProtobufCIntRange wifi_action_tx_req__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 5 } +}; +const ProtobufCMessageDescriptor wifi_action_tx_req__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_action_tx_req", + "WifiActionTxReq", + "WifiActionTxReq", + "", + sizeof(WifiActionTxReq), + 5, + wifi_action_tx_req__field_descriptors, + wifi_action_tx_req__field_indices_by_name, + 1, wifi_action_tx_req__number_ranges, + (ProtobufCMessageInit) wifi_action_tx_req__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_ftm_initiator_cfg__field_descriptors[4] = +{ + { + "resp_mac", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiFtmInitiatorCfg, resp_mac), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "channel", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiFtmInitiatorCfg, channel), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "frm_count", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiFtmInitiatorCfg, frm_count), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "burst_period", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiFtmInitiatorCfg, burst_period), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_ftm_initiator_cfg__field_indices_by_name[] = { + 3, /* field[3] = burst_period */ + 1, /* field[1] = channel */ + 2, /* field[2] = frm_count */ + 0, /* field[0] = resp_mac */ +}; +static const ProtobufCIntRange wifi_ftm_initiator_cfg__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 4 } +}; +const ProtobufCMessageDescriptor wifi_ftm_initiator_cfg__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_ftm_initiator_cfg", + "WifiFtmInitiatorCfg", + "WifiFtmInitiatorCfg", + "", + sizeof(WifiFtmInitiatorCfg), + 4, + wifi_ftm_initiator_cfg__field_descriptors, + wifi_ftm_initiator_cfg__field_indices_by_name, + 1, wifi_ftm_initiator_cfg__number_ranges, + (ProtobufCMessageInit) wifi_ftm_initiator_cfg__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_event_sta_scan_done__field_descriptors[3] = +{ + { + "status", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventStaScanDone, status), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "number", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventStaScanDone, number), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "scan_id", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventStaScanDone, scan_id), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_event_sta_scan_done__field_indices_by_name[] = { + 1, /* field[1] = number */ + 2, /* field[2] = scan_id */ + 0, /* field[0] = status */ +}; +static const ProtobufCIntRange wifi_event_sta_scan_done__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 3 } +}; +const ProtobufCMessageDescriptor wifi_event_sta_scan_done__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_event_sta_scan_done", + "WifiEventStaScanDone", + "WifiEventStaScanDone", + "", + sizeof(WifiEventStaScanDone), + 3, + wifi_event_sta_scan_done__field_descriptors, + wifi_event_sta_scan_done__field_indices_by_name, + 1, wifi_event_sta_scan_done__number_ranges, + (ProtobufCMessageInit) wifi_event_sta_scan_done__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_event_sta_connected__field_descriptors[6] = +{ + { + "ssid", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiEventStaConnected, ssid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ssid_len", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventStaConnected, ssid_len), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "bssid", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiEventStaConnected, bssid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "channel", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventStaConnected, channel), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "authmode", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiEventStaConnected, authmode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "aid", + 6, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiEventStaConnected, aid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_event_sta_connected__field_indices_by_name[] = { + 5, /* field[5] = aid */ + 4, /* field[4] = authmode */ + 2, /* field[2] = bssid */ + 3, /* field[3] = channel */ + 0, /* field[0] = ssid */ + 1, /* field[1] = ssid_len */ +}; +static const ProtobufCIntRange wifi_event_sta_connected__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 6 } +}; +const ProtobufCMessageDescriptor wifi_event_sta_connected__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_event_sta_connected", + "WifiEventStaConnected", + "WifiEventStaConnected", + "", + sizeof(WifiEventStaConnected), + 6, + wifi_event_sta_connected__field_descriptors, + wifi_event_sta_connected__field_indices_by_name, + 1, wifi_event_sta_connected__number_ranges, + (ProtobufCMessageInit) wifi_event_sta_connected__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_event_sta_disconnected__field_descriptors[5] = +{ + { + "ssid", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiEventStaDisconnected, ssid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ssid_len", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventStaDisconnected, ssid_len), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "bssid", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiEventStaDisconnected, bssid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "reason", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventStaDisconnected, reason), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "rssi", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiEventStaDisconnected, rssi), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_event_sta_disconnected__field_indices_by_name[] = { + 2, /* field[2] = bssid */ + 3, /* field[3] = reason */ + 4, /* field[4] = rssi */ + 0, /* field[0] = ssid */ + 1, /* field[1] = ssid_len */ +}; +static const ProtobufCIntRange wifi_event_sta_disconnected__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 5 } +}; +const ProtobufCMessageDescriptor wifi_event_sta_disconnected__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_event_sta_disconnected", + "WifiEventStaDisconnected", + "WifiEventStaDisconnected", + "", + sizeof(WifiEventStaDisconnected), + 5, + wifi_event_sta_disconnected__field_descriptors, + wifi_event_sta_disconnected__field_indices_by_name, + 1, wifi_event_sta_disconnected__number_ranges, + (ProtobufCMessageInit) wifi_event_sta_disconnected__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_event_sta_authmode_change__field_descriptors[2] = +{ + { + "old_mode", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiEventStaAuthmodeChange, old_mode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "new_mode", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiEventStaAuthmodeChange, new_mode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_event_sta_authmode_change__field_indices_by_name[] = { + 1, /* field[1] = new_mode */ + 0, /* field[0] = old_mode */ +}; +static const ProtobufCIntRange wifi_event_sta_authmode_change__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor wifi_event_sta_authmode_change__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_event_sta_authmode_change", + "WifiEventStaAuthmodeChange", + "WifiEventStaAuthmodeChange", + "", + sizeof(WifiEventStaAuthmodeChange), + 2, + wifi_event_sta_authmode_change__field_descriptors, + wifi_event_sta_authmode_change__field_indices_by_name, + 1, wifi_event_sta_authmode_change__number_ranges, + (ProtobufCMessageInit) wifi_event_sta_authmode_change__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_event_sta_wps_er_pin__field_descriptors[1] = +{ + { + "pin_code", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiEventStaWpsErPin, pin_code), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_event_sta_wps_er_pin__field_indices_by_name[] = { + 0, /* field[0] = pin_code */ +}; +static const ProtobufCIntRange wifi_event_sta_wps_er_pin__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor wifi_event_sta_wps_er_pin__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_event_sta_wps_er_pin", + "WifiEventStaWpsErPin", + "WifiEventStaWpsErPin", + "", + sizeof(WifiEventStaWpsErPin), + 1, + wifi_event_sta_wps_er_pin__field_descriptors, + wifi_event_sta_wps_er_pin__field_indices_by_name, + 1, wifi_event_sta_wps_er_pin__number_ranges, + (ProtobufCMessageInit) wifi_event_sta_wps_er_pin__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor ap_cred__field_descriptors[2] = +{ + { + "ssid", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(ApCred, ssid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "passphrase", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(ApCred, passphrase), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned ap_cred__field_indices_by_name[] = { + 1, /* field[1] = passphrase */ + 0, /* field[0] = ssid */ +}; +static const ProtobufCIntRange ap_cred__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor ap_cred__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "ap_cred", + "ApCred", + "ApCred", + "", + sizeof(ApCred), + 2, + ap_cred__field_descriptors, + ap_cred__field_indices_by_name, + 1, ap_cred__number_ranges, + (ProtobufCMessageInit) ap_cred__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_event_sta_wps_er_success__field_descriptors[2] = +{ + { + "ap_cred_cnt", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventStaWpsErSuccess, ap_cred_cnt), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ap_creds", + 2, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(WifiEventStaWpsErSuccess, n_ap_creds), + offsetof(WifiEventStaWpsErSuccess, ap_creds), + &ap_cred__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_event_sta_wps_er_success__field_indices_by_name[] = { + 0, /* field[0] = ap_cred_cnt */ + 1, /* field[1] = ap_creds */ +}; +static const ProtobufCIntRange wifi_event_sta_wps_er_success__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor wifi_event_sta_wps_er_success__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_event_sta_wps_er_success", + "WifiEventStaWpsErSuccess", + "WifiEventStaWpsErSuccess", + "", + sizeof(WifiEventStaWpsErSuccess), + 2, + wifi_event_sta_wps_er_success__field_descriptors, + wifi_event_sta_wps_er_success__field_indices_by_name, + 1, wifi_event_sta_wps_er_success__number_ranges, + (ProtobufCMessageInit) wifi_event_sta_wps_er_success__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_event_ap_probe_req_rx__field_descriptors[2] = +{ + { + "rssi", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiEventApProbeReqRx, rssi), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "mac", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventApProbeReqRx, mac), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_event_ap_probe_req_rx__field_indices_by_name[] = { + 1, /* field[1] = mac */ + 0, /* field[0] = rssi */ +}; +static const ProtobufCIntRange wifi_event_ap_probe_req_rx__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor wifi_event_ap_probe_req_rx__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_event_ap_probe_req_rx", + "WifiEventApProbeReqRx", + "WifiEventApProbeReqRx", + "", + sizeof(WifiEventApProbeReqRx), + 2, + wifi_event_ap_probe_req_rx__field_descriptors, + wifi_event_ap_probe_req_rx__field_indices_by_name, + 1, wifi_event_ap_probe_req_rx__number_ranges, + (ProtobufCMessageInit) wifi_event_ap_probe_req_rx__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_event_bss_rssi_low__field_descriptors[1] = +{ + { + "rssi", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiEventBssRssiLow, rssi), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_event_bss_rssi_low__field_indices_by_name[] = { + 0, /* field[0] = rssi */ +}; +static const ProtobufCIntRange wifi_event_bss_rssi_low__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor wifi_event_bss_rssi_low__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_event_bss_rssi_low", + "WifiEventBssRssiLow", + "WifiEventBssRssiLow", + "", + sizeof(WifiEventBssRssiLow), + 1, + wifi_event_bss_rssi_low__field_descriptors, + wifi_event_bss_rssi_low__field_indices_by_name, + 1, wifi_event_bss_rssi_low__number_ranges, + (ProtobufCMessageInit) wifi_event_bss_rssi_low__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_ftm_report_entry__field_descriptors[7] = +{ + { + "dlog_token", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiFtmReportEntry, dlog_token), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "rssi", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiFtmReportEntry, rssi), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "rtt", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiFtmReportEntry, rtt), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "t1", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT64, + 0, /* quantifier_offset */ + offsetof(WifiFtmReportEntry, t1), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "t2", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT64, + 0, /* quantifier_offset */ + offsetof(WifiFtmReportEntry, t2), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "t3", + 6, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT64, + 0, /* quantifier_offset */ + offsetof(WifiFtmReportEntry, t3), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "t4", + 7, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT64, + 0, /* quantifier_offset */ + offsetof(WifiFtmReportEntry, t4), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_ftm_report_entry__field_indices_by_name[] = { + 0, /* field[0] = dlog_token */ + 1, /* field[1] = rssi */ + 2, /* field[2] = rtt */ + 3, /* field[3] = t1 */ + 4, /* field[4] = t2 */ + 5, /* field[5] = t3 */ + 6, /* field[6] = t4 */ +}; +static const ProtobufCIntRange wifi_ftm_report_entry__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 7 } +}; +const ProtobufCMessageDescriptor wifi_ftm_report_entry__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_ftm_report_entry", + "WifiFtmReportEntry", + "WifiFtmReportEntry", + "", + sizeof(WifiFtmReportEntry), + 7, + wifi_ftm_report_entry__field_descriptors, + wifi_ftm_report_entry__field_indices_by_name, + 1, wifi_ftm_report_entry__number_ranges, + (ProtobufCMessageInit) wifi_ftm_report_entry__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_event_ftm_report__field_descriptors[7] = +{ + { + "peer_mac", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiEventFtmReport, peer_mac), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "status", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiEventFtmReport, status), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "rtt_raw", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventFtmReport, rtt_raw), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "rtt_est", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventFtmReport, rtt_est), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "dist_est", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventFtmReport, dist_est), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ftm_report_data", + 6, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(WifiEventFtmReport, n_ftm_report_data), + offsetof(WifiEventFtmReport, ftm_report_data), + &wifi_ftm_report_entry__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ftm_report_num_entries", + 7, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventFtmReport, ftm_report_num_entries), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_event_ftm_report__field_indices_by_name[] = { + 4, /* field[4] = dist_est */ + 5, /* field[5] = ftm_report_data */ + 6, /* field[6] = ftm_report_num_entries */ + 0, /* field[0] = peer_mac */ + 3, /* field[3] = rtt_est */ + 2, /* field[2] = rtt_raw */ + 1, /* field[1] = status */ +}; +static const ProtobufCIntRange wifi_event_ftm_report__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 7 } +}; +const ProtobufCMessageDescriptor wifi_event_ftm_report__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_event_ftm_report", + "WifiEventFtmReport", + "WifiEventFtmReport", + "", + sizeof(WifiEventFtmReport), + 7, + wifi_event_ftm_report__field_descriptors, + wifi_event_ftm_report__field_indices_by_name, + 1, wifi_event_ftm_report__number_ranges, + (ProtobufCMessageInit) wifi_event_ftm_report__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_event_action_tx_status__field_descriptors[4] = +{ + { + "ifx", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiEventActionTxStatus, ifx), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "context", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventActionTxStatus, context), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "da", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiEventActionTxStatus, da), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "status", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventActionTxStatus, status), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_event_action_tx_status__field_indices_by_name[] = { + 1, /* field[1] = context */ + 2, /* field[2] = da */ + 0, /* field[0] = ifx */ + 3, /* field[3] = status */ +}; +static const ProtobufCIntRange wifi_event_action_tx_status__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 4 } +}; +const ProtobufCMessageDescriptor wifi_event_action_tx_status__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_event_action_tx_status", + "WifiEventActionTxStatus", + "WifiEventActionTxStatus", + "", + sizeof(WifiEventActionTxStatus), + 4, + wifi_event_action_tx_status__field_descriptors, + wifi_event_action_tx_status__field_indices_by_name, + 1, wifi_event_action_tx_status__number_ranges, + (ProtobufCMessageInit) wifi_event_action_tx_status__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_event_roc_done__field_descriptors[1] = +{ + { + "context", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventRocDone, context), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_event_roc_done__field_indices_by_name[] = { + 0, /* field[0] = context */ +}; +static const ProtobufCIntRange wifi_event_roc_done__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor wifi_event_roc_done__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_event_roc_done", + "WifiEventRocDone", + "WifiEventRocDone", + "", + sizeof(WifiEventRocDone), + 1, + wifi_event_roc_done__field_descriptors, + wifi_event_roc_done__field_indices_by_name, + 1, wifi_event_roc_done__number_ranges, + (ProtobufCMessageInit) wifi_event_roc_done__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_event_ap_wps_rg_pin__field_descriptors[1] = +{ + { + "pin_code", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiEventApWpsRgPin, pin_code), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_event_ap_wps_rg_pin__field_indices_by_name[] = { + 0, /* field[0] = pin_code */ +}; +static const ProtobufCIntRange wifi_event_ap_wps_rg_pin__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor wifi_event_ap_wps_rg_pin__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_event_ap_wps_rg_pin", + "WifiEventApWpsRgPin", + "WifiEventApWpsRgPin", + "", + sizeof(WifiEventApWpsRgPin), + 1, + wifi_event_ap_wps_rg_pin__field_descriptors, + wifi_event_ap_wps_rg_pin__field_indices_by_name, + 1, wifi_event_ap_wps_rg_pin__number_ranges, + (ProtobufCMessageInit) wifi_event_ap_wps_rg_pin__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_event_ap_wps_rg_fail_reason__field_descriptors[2] = +{ + { + "reason", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiEventApWpsRgFailReason, reason), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "peer_macaddr", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiEventApWpsRgFailReason, peer_macaddr), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_event_ap_wps_rg_fail_reason__field_indices_by_name[] = { + 1, /* field[1] = peer_macaddr */ + 0, /* field[0] = reason */ +}; +static const ProtobufCIntRange wifi_event_ap_wps_rg_fail_reason__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor wifi_event_ap_wps_rg_fail_reason__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_event_ap_wps_rg_fail_reason", + "WifiEventApWpsRgFailReason", + "WifiEventApWpsRgFailReason", + "", + sizeof(WifiEventApWpsRgFailReason), + 2, + wifi_event_ap_wps_rg_fail_reason__field_descriptors, + wifi_event_ap_wps_rg_fail_reason__field_indices_by_name, + 1, wifi_event_ap_wps_rg_fail_reason__number_ranges, + (ProtobufCMessageInit) wifi_event_ap_wps_rg_fail_reason__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_event_ap_wps_rg_success__field_descriptors[1] = +{ + { + "peer_macaddr", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiEventApWpsRgSuccess, peer_macaddr), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_event_ap_wps_rg_success__field_indices_by_name[] = { + 0, /* field[0] = peer_macaddr */ +}; +static const ProtobufCIntRange wifi_event_ap_wps_rg_success__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor wifi_event_ap_wps_rg_success__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_event_ap_wps_rg_success", + "WifiEventApWpsRgSuccess", + "WifiEventApWpsRgSuccess", + "", + sizeof(WifiEventApWpsRgSuccess), + 1, + wifi_event_ap_wps_rg_success__field_descriptors, + wifi_event_ap_wps_rg_success__field_indices_by_name, + 1, wifi_event_ap_wps_rg_success__number_ranges, + (ProtobufCMessageInit) wifi_event_ap_wps_rg_success__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_protocols__field_descriptors[2] = +{ + { + "ghz_2g", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiProtocols, ghz_2g), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ghz_5g", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiProtocols, ghz_5g), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_protocols__field_indices_by_name[] = { + 0, /* field[0] = ghz_2g */ + 1, /* field[1] = ghz_5g */ +}; +static const ProtobufCIntRange wifi_protocols__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor wifi_protocols__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_protocols", + "WifiProtocols", + "WifiProtocols", + "", + sizeof(WifiProtocols), + 2, + wifi_protocols__field_descriptors, + wifi_protocols__field_indices_by_name, + 1, wifi_protocols__number_ranges, + (ProtobufCMessageInit) wifi_protocols__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_bandwidths__field_descriptors[2] = +{ + { + "ghz_2g", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiBandwidths, ghz_2g), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ghz_5g", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiBandwidths, ghz_5g), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_bandwidths__field_indices_by_name[] = { + 0, /* field[0] = ghz_2g */ + 1, /* field[1] = ghz_5g */ +}; +static const ProtobufCIntRange wifi_bandwidths__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor wifi_bandwidths__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_bandwidths", + "WifiBandwidths", + "WifiBandwidths", + "", + sizeof(WifiBandwidths), + 2, + wifi_bandwidths__field_descriptors, + wifi_bandwidths__field_indices_by_name, + 1, wifi_bandwidths__number_ranges, + (ProtobufCMessageInit) wifi_bandwidths__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor connected_stalist__field_descriptors[2] = +{ + { + "mac", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(ConnectedSTAList, mac), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "rssi", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(ConnectedSTAList, rssi), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned connected_stalist__field_indices_by_name[] = { + 0, /* field[0] = mac */ + 1, /* field[1] = rssi */ +}; +static const ProtobufCIntRange connected_stalist__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor connected_stalist__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "ConnectedSTAList", + "ConnectedSTAList", + "ConnectedSTAList", + "", + sizeof(ConnectedSTAList), + 2, + connected_stalist__field_descriptors, + connected_stalist__field_indices_by_name, + 1, connected_stalist__number_ranges, + (ProtobufCMessageInit) connected_stalist__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__get_mac_address__field_descriptors[1] = +{ + { + "mode", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqGetMacAddress, mode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__get_mac_address__field_indices_by_name[] = { + 0, /* field[0] = mode */ +}; +static const ProtobufCIntRange rpc__req__get_mac_address__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__get_mac_address__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_GetMacAddress", + "RpcReqGetMacAddress", + "RpcReqGetMacAddress", + "", + sizeof(RpcReqGetMacAddress), + 1, + rpc__req__get_mac_address__field_descriptors, + rpc__req__get_mac_address__field_indices_by_name, + 1, rpc__req__get_mac_address__number_ranges, + (ProtobufCMessageInit) rpc__req__get_mac_address__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__get_mac_address__field_descriptors[2] = +{ + { + "mac", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(RpcRespGetMacAddress, mac), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespGetMacAddress, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__get_mac_address__field_indices_by_name[] = { + 0, /* field[0] = mac */ + 1, /* field[1] = resp */ +}; +static const ProtobufCIntRange rpc__resp__get_mac_address__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__get_mac_address__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_GetMacAddress", + "RpcRespGetMacAddress", + "RpcRespGetMacAddress", + "", + sizeof(RpcRespGetMacAddress), + 2, + rpc__resp__get_mac_address__field_descriptors, + rpc__resp__get_mac_address__field_indices_by_name, + 1, rpc__resp__get_mac_address__number_ranges, + (ProtobufCMessageInit) rpc__resp__get_mac_address__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__get_mode__field_descriptors NULL +#define rpc__req__get_mode__field_indices_by_name NULL +#define rpc__req__get_mode__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__get_mode__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_GetMode", + "RpcReqGetMode", + "RpcReqGetMode", + "", + sizeof(RpcReqGetMode), + 0, + rpc__req__get_mode__field_descriptors, + rpc__req__get_mode__field_indices_by_name, + 0, rpc__req__get_mode__number_ranges, + (ProtobufCMessageInit) rpc__req__get_mode__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__get_mode__field_descriptors[2] = +{ + { + "mode", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespGetMode, mode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespGetMode, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__get_mode__field_indices_by_name[] = { + 0, /* field[0] = mode */ + 1, /* field[1] = resp */ +}; +static const ProtobufCIntRange rpc__resp__get_mode__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__get_mode__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_GetMode", + "RpcRespGetMode", + "RpcRespGetMode", + "", + sizeof(RpcRespGetMode), + 2, + rpc__resp__get_mode__field_descriptors, + rpc__resp__get_mode__field_indices_by_name, + 1, rpc__resp__get_mode__number_ranges, + (ProtobufCMessageInit) rpc__resp__get_mode__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__set_mode__field_descriptors[1] = +{ + { + "mode", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqSetMode, mode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__set_mode__field_indices_by_name[] = { + 0, /* field[0] = mode */ +}; +static const ProtobufCIntRange rpc__req__set_mode__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__set_mode__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_SetMode", + "RpcReqSetMode", + "RpcReqSetMode", + "", + sizeof(RpcReqSetMode), + 1, + rpc__req__set_mode__field_descriptors, + rpc__req__set_mode__field_indices_by_name, + 1, rpc__req__set_mode__number_ranges, + (ProtobufCMessageInit) rpc__req__set_mode__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__set_mode__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespSetMode, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__set_mode__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__set_mode__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__set_mode__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_SetMode", + "RpcRespSetMode", + "RpcRespSetMode", + "", + sizeof(RpcRespSetMode), + 1, + rpc__resp__set_mode__field_descriptors, + rpc__resp__set_mode__field_indices_by_name, + 1, rpc__resp__set_mode__number_ranges, + (ProtobufCMessageInit) rpc__resp__set_mode__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__get_ps__field_descriptors NULL +#define rpc__req__get_ps__field_indices_by_name NULL +#define rpc__req__get_ps__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__get_ps__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_GetPs", + "RpcReqGetPs", + "RpcReqGetPs", + "", + sizeof(RpcReqGetPs), + 0, + rpc__req__get_ps__field_descriptors, + rpc__req__get_ps__field_indices_by_name, + 0, rpc__req__get_ps__number_ranges, + (ProtobufCMessageInit) rpc__req__get_ps__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__get_ps__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespGetPs, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "type", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespGetPs, type), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__get_ps__field_indices_by_name[] = { + 0, /* field[0] = resp */ + 1, /* field[1] = type */ +}; +static const ProtobufCIntRange rpc__resp__get_ps__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__get_ps__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_GetPs", + "RpcRespGetPs", + "RpcRespGetPs", + "", + sizeof(RpcRespGetPs), + 2, + rpc__resp__get_ps__field_descriptors, + rpc__resp__get_ps__field_indices_by_name, + 1, rpc__resp__get_ps__number_ranges, + (ProtobufCMessageInit) rpc__resp__get_ps__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__set_ps__field_descriptors[1] = +{ + { + "type", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqSetPs, type), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__set_ps__field_indices_by_name[] = { + 0, /* field[0] = type */ +}; +static const ProtobufCIntRange rpc__req__set_ps__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__set_ps__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_SetPs", + "RpcReqSetPs", + "RpcReqSetPs", + "", + sizeof(RpcReqSetPs), + 1, + rpc__req__set_ps__field_descriptors, + rpc__req__set_ps__field_indices_by_name, + 1, rpc__req__set_ps__number_ranges, + (ProtobufCMessageInit) rpc__req__set_ps__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__set_ps__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespSetPs, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__set_ps__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__set_ps__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__set_ps__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_SetPs", + "RpcRespSetPs", + "RpcRespSetPs", + "", + sizeof(RpcRespSetPs), + 1, + rpc__resp__set_ps__field_descriptors, + rpc__resp__set_ps__field_indices_by_name, + 1, rpc__resp__set_ps__number_ranges, + (ProtobufCMessageInit) rpc__resp__set_ps__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__set_mac_address__field_descriptors[2] = +{ + { + "mac", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(RpcReqSetMacAddress, mac), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "mode", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqSetMacAddress, mode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__set_mac_address__field_indices_by_name[] = { + 0, /* field[0] = mac */ + 1, /* field[1] = mode */ +}; +static const ProtobufCIntRange rpc__req__set_mac_address__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__req__set_mac_address__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_SetMacAddress", + "RpcReqSetMacAddress", + "RpcReqSetMacAddress", + "", + sizeof(RpcReqSetMacAddress), + 2, + rpc__req__set_mac_address__field_descriptors, + rpc__req__set_mac_address__field_indices_by_name, + 1, rpc__req__set_mac_address__number_ranges, + (ProtobufCMessageInit) rpc__req__set_mac_address__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__set_mac_address__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespSetMacAddress, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__set_mac_address__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__set_mac_address__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__set_mac_address__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_SetMacAddress", + "RpcRespSetMacAddress", + "RpcRespSetMacAddress", + "", + sizeof(RpcRespSetMacAddress), + 1, + rpc__resp__set_mac_address__field_descriptors, + rpc__resp__set_mac_address__field_indices_by_name, + 1, rpc__resp__set_mac_address__number_ranges, + (ProtobufCMessageInit) rpc__resp__set_mac_address__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__otabegin__field_descriptors NULL +#define rpc__req__otabegin__field_indices_by_name NULL +#define rpc__req__otabegin__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__otabegin__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_OTABegin", + "RpcReqOTABegin", + "RpcReqOTABegin", + "", + sizeof(RpcReqOTABegin), + 0, + rpc__req__otabegin__field_descriptors, + rpc__req__otabegin__field_indices_by_name, + 0, rpc__req__otabegin__number_ranges, + (ProtobufCMessageInit) rpc__req__otabegin__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__otabegin__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespOTABegin, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__otabegin__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__otabegin__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__otabegin__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_OTABegin", + "RpcRespOTABegin", + "RpcRespOTABegin", + "", + sizeof(RpcRespOTABegin), + 1, + rpc__resp__otabegin__field_descriptors, + rpc__resp__otabegin__field_indices_by_name, + 1, rpc__resp__otabegin__number_ranges, + (ProtobufCMessageInit) rpc__resp__otabegin__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__otawrite__field_descriptors[1] = +{ + { + "ota_data", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(RpcReqOTAWrite, ota_data), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__otawrite__field_indices_by_name[] = { + 0, /* field[0] = ota_data */ +}; +static const ProtobufCIntRange rpc__req__otawrite__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__otawrite__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_OTAWrite", + "RpcReqOTAWrite", + "RpcReqOTAWrite", + "", + sizeof(RpcReqOTAWrite), + 1, + rpc__req__otawrite__field_descriptors, + rpc__req__otawrite__field_indices_by_name, + 1, rpc__req__otawrite__number_ranges, + (ProtobufCMessageInit) rpc__req__otawrite__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__otawrite__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespOTAWrite, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__otawrite__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__otawrite__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__otawrite__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_OTAWrite", + "RpcRespOTAWrite", + "RpcRespOTAWrite", + "", + sizeof(RpcRespOTAWrite), + 1, + rpc__resp__otawrite__field_descriptors, + rpc__resp__otawrite__field_indices_by_name, + 1, rpc__resp__otawrite__number_ranges, + (ProtobufCMessageInit) rpc__resp__otawrite__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__otaend__field_descriptors NULL +#define rpc__req__otaend__field_indices_by_name NULL +#define rpc__req__otaend__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__otaend__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_OTAEnd", + "RpcReqOTAEnd", + "RpcReqOTAEnd", + "", + sizeof(RpcReqOTAEnd), + 0, + rpc__req__otaend__field_descriptors, + rpc__req__otaend__field_indices_by_name, + 0, rpc__req__otaend__number_ranges, + (ProtobufCMessageInit) rpc__req__otaend__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__otaend__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespOTAEnd, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__otaend__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__otaend__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__otaend__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_OTAEnd", + "RpcRespOTAEnd", + "RpcRespOTAEnd", + "", + sizeof(RpcRespOTAEnd), + 1, + rpc__resp__otaend__field_descriptors, + rpc__resp__otaend__field_indices_by_name, + 1, rpc__resp__otaend__number_ranges, + (ProtobufCMessageInit) rpc__resp__otaend__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_set_max_tx_power__field_descriptors[1] = +{ + { + "power", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetMaxTxPower, power), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_set_max_tx_power__field_indices_by_name[] = { + 0, /* field[0] = power */ +}; +static const ProtobufCIntRange rpc__req__wifi_set_max_tx_power__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_set_max_tx_power__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiSetMaxTxPower", + "RpcReqWifiSetMaxTxPower", + "RpcReqWifiSetMaxTxPower", + "", + sizeof(RpcReqWifiSetMaxTxPower), + 1, + rpc__req__wifi_set_max_tx_power__field_descriptors, + rpc__req__wifi_set_max_tx_power__field_indices_by_name, + 1, rpc__req__wifi_set_max_tx_power__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_set_max_tx_power__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_set_max_tx_power__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiSetMaxTxPower, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_set_max_tx_power__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_set_max_tx_power__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_set_max_tx_power__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiSetMaxTxPower", + "RpcRespWifiSetMaxTxPower", + "RpcRespWifiSetMaxTxPower", + "", + sizeof(RpcRespWifiSetMaxTxPower), + 1, + rpc__resp__wifi_set_max_tx_power__field_descriptors, + rpc__resp__wifi_set_max_tx_power__field_indices_by_name, + 1, rpc__resp__wifi_set_max_tx_power__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_set_max_tx_power__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_get_max_tx_power__field_descriptors NULL +#define rpc__req__wifi_get_max_tx_power__field_indices_by_name NULL +#define rpc__req__wifi_get_max_tx_power__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_get_max_tx_power__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiGetMaxTxPower", + "RpcReqWifiGetMaxTxPower", + "RpcReqWifiGetMaxTxPower", + "", + sizeof(RpcReqWifiGetMaxTxPower), + 0, + rpc__req__wifi_get_max_tx_power__field_descriptors, + rpc__req__wifi_get_max_tx_power__field_indices_by_name, + 0, rpc__req__wifi_get_max_tx_power__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_get_max_tx_power__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_get_max_tx_power__field_descriptors[2] = +{ + { + "power", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetMaxTxPower, power), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetMaxTxPower, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_get_max_tx_power__field_indices_by_name[] = { + 0, /* field[0] = power */ + 1, /* field[1] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_get_max_tx_power__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_get_max_tx_power__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiGetMaxTxPower", + "RpcRespWifiGetMaxTxPower", + "RpcRespWifiGetMaxTxPower", + "", + sizeof(RpcRespWifiGetMaxTxPower), + 2, + rpc__resp__wifi_get_max_tx_power__field_descriptors, + rpc__resp__wifi_get_max_tx_power__field_indices_by_name, + 1, rpc__resp__wifi_get_max_tx_power__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_get_max_tx_power__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__config_heartbeat__field_descriptors[2] = +{ + { + "enable", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(RpcReqConfigHeartbeat, enable), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "duration", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqConfigHeartbeat, duration), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__config_heartbeat__field_indices_by_name[] = { + 1, /* field[1] = duration */ + 0, /* field[0] = enable */ +}; +static const ProtobufCIntRange rpc__req__config_heartbeat__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__req__config_heartbeat__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_ConfigHeartbeat", + "RpcReqConfigHeartbeat", + "RpcReqConfigHeartbeat", + "", + sizeof(RpcReqConfigHeartbeat), + 2, + rpc__req__config_heartbeat__field_descriptors, + rpc__req__config_heartbeat__field_indices_by_name, + 1, rpc__req__config_heartbeat__number_ranges, + (ProtobufCMessageInit) rpc__req__config_heartbeat__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__config_heartbeat__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespConfigHeartbeat, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__config_heartbeat__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__config_heartbeat__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__config_heartbeat__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_ConfigHeartbeat", + "RpcRespConfigHeartbeat", + "RpcRespConfigHeartbeat", + "", + sizeof(RpcRespConfigHeartbeat), + 1, + rpc__resp__config_heartbeat__field_descriptors, + rpc__resp__config_heartbeat__field_indices_by_name, + 1, rpc__resp__config_heartbeat__number_ranges, + (ProtobufCMessageInit) rpc__resp__config_heartbeat__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_init__field_descriptors[1] = +{ + { + "cfg", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiInit, cfg), + &wifi_init_config__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_init__field_indices_by_name[] = { + 0, /* field[0] = cfg */ +}; +static const ProtobufCIntRange rpc__req__wifi_init__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_init__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiInit", + "RpcReqWifiInit", + "RpcReqWifiInit", + "", + sizeof(RpcReqWifiInit), + 1, + rpc__req__wifi_init__field_descriptors, + rpc__req__wifi_init__field_indices_by_name, + 1, rpc__req__wifi_init__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_init__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_init__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiInit, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_init__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_init__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_init__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiInit", + "RpcRespWifiInit", + "RpcRespWifiInit", + "", + sizeof(RpcRespWifiInit), + 1, + rpc__resp__wifi_init__field_descriptors, + rpc__resp__wifi_init__field_indices_by_name, + 1, rpc__resp__wifi_init__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_init__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_deinit__field_descriptors NULL +#define rpc__req__wifi_deinit__field_indices_by_name NULL +#define rpc__req__wifi_deinit__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_deinit__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiDeinit", + "RpcReqWifiDeinit", + "RpcReqWifiDeinit", + "", + sizeof(RpcReqWifiDeinit), + 0, + rpc__req__wifi_deinit__field_descriptors, + rpc__req__wifi_deinit__field_indices_by_name, + 0, rpc__req__wifi_deinit__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_deinit__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_deinit__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiDeinit, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_deinit__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_deinit__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_deinit__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiDeinit", + "RpcRespWifiDeinit", + "RpcRespWifiDeinit", + "", + sizeof(RpcRespWifiDeinit), + 1, + rpc__resp__wifi_deinit__field_descriptors, + rpc__resp__wifi_deinit__field_indices_by_name, + 1, rpc__resp__wifi_deinit__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_deinit__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_set_config__field_descriptors[2] = +{ + { + "iface", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetConfig, iface), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "cfg", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetConfig, cfg), + &wifi_config__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_set_config__field_indices_by_name[] = { + 1, /* field[1] = cfg */ + 0, /* field[0] = iface */ +}; +static const ProtobufCIntRange rpc__req__wifi_set_config__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_set_config__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiSetConfig", + "RpcReqWifiSetConfig", + "RpcReqWifiSetConfig", + "", + sizeof(RpcReqWifiSetConfig), + 2, + rpc__req__wifi_set_config__field_descriptors, + rpc__req__wifi_set_config__field_indices_by_name, + 1, rpc__req__wifi_set_config__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_set_config__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_set_config__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiSetConfig, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_set_config__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_set_config__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_set_config__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiSetConfig", + "RpcRespWifiSetConfig", + "RpcRespWifiSetConfig", + "", + sizeof(RpcRespWifiSetConfig), + 1, + rpc__resp__wifi_set_config__field_descriptors, + rpc__resp__wifi_set_config__field_indices_by_name, + 1, rpc__resp__wifi_set_config__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_set_config__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_get_config__field_descriptors[1] = +{ + { + "iface", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiGetConfig, iface), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_get_config__field_indices_by_name[] = { + 0, /* field[0] = iface */ +}; +static const ProtobufCIntRange rpc__req__wifi_get_config__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_get_config__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiGetConfig", + "RpcReqWifiGetConfig", + "RpcReqWifiGetConfig", + "", + sizeof(RpcReqWifiGetConfig), + 1, + rpc__req__wifi_get_config__field_descriptors, + rpc__req__wifi_get_config__field_indices_by_name, + 1, rpc__req__wifi_get_config__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_get_config__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_get_config__field_descriptors[3] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetConfig, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "iface", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetConfig, iface), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "cfg", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetConfig, cfg), + &wifi_config__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_get_config__field_indices_by_name[] = { + 2, /* field[2] = cfg */ + 1, /* field[1] = iface */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_get_config__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 3 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_get_config__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiGetConfig", + "RpcRespWifiGetConfig", + "RpcRespWifiGetConfig", + "", + sizeof(RpcRespWifiGetConfig), + 3, + rpc__resp__wifi_get_config__field_descriptors, + rpc__resp__wifi_get_config__field_indices_by_name, + 1, rpc__resp__wifi_get_config__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_get_config__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_connect__field_descriptors NULL +#define rpc__req__wifi_connect__field_indices_by_name NULL +#define rpc__req__wifi_connect__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_connect__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiConnect", + "RpcReqWifiConnect", + "RpcReqWifiConnect", + "", + sizeof(RpcReqWifiConnect), + 0, + rpc__req__wifi_connect__field_descriptors, + rpc__req__wifi_connect__field_indices_by_name, + 0, rpc__req__wifi_connect__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_connect__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_connect__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiConnect, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_connect__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_connect__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_connect__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiConnect", + "RpcRespWifiConnect", + "RpcRespWifiConnect", + "", + sizeof(RpcRespWifiConnect), + 1, + rpc__resp__wifi_connect__field_descriptors, + rpc__resp__wifi_connect__field_indices_by_name, + 1, rpc__resp__wifi_connect__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_connect__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_disconnect__field_descriptors NULL +#define rpc__req__wifi_disconnect__field_indices_by_name NULL +#define rpc__req__wifi_disconnect__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_disconnect__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiDisconnect", + "RpcReqWifiDisconnect", + "RpcReqWifiDisconnect", + "", + sizeof(RpcReqWifiDisconnect), + 0, + rpc__req__wifi_disconnect__field_descriptors, + rpc__req__wifi_disconnect__field_indices_by_name, + 0, rpc__req__wifi_disconnect__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_disconnect__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_disconnect__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiDisconnect, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_disconnect__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_disconnect__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_disconnect__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiDisconnect", + "RpcRespWifiDisconnect", + "RpcRespWifiDisconnect", + "", + sizeof(RpcRespWifiDisconnect), + 1, + rpc__resp__wifi_disconnect__field_descriptors, + rpc__resp__wifi_disconnect__field_indices_by_name, + 1, rpc__resp__wifi_disconnect__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_disconnect__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_start__field_descriptors NULL +#define rpc__req__wifi_start__field_indices_by_name NULL +#define rpc__req__wifi_start__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_start__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiStart", + "RpcReqWifiStart", + "RpcReqWifiStart", + "", + sizeof(RpcReqWifiStart), + 0, + rpc__req__wifi_start__field_descriptors, + rpc__req__wifi_start__field_indices_by_name, + 0, rpc__req__wifi_start__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_start__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_start__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiStart, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_start__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_start__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_start__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiStart", + "RpcRespWifiStart", + "RpcRespWifiStart", + "", + sizeof(RpcRespWifiStart), + 1, + rpc__resp__wifi_start__field_descriptors, + rpc__resp__wifi_start__field_indices_by_name, + 1, rpc__resp__wifi_start__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_start__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_stop__field_descriptors NULL +#define rpc__req__wifi_stop__field_indices_by_name NULL +#define rpc__req__wifi_stop__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_stop__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiStop", + "RpcReqWifiStop", + "RpcReqWifiStop", + "", + sizeof(RpcReqWifiStop), + 0, + rpc__req__wifi_stop__field_descriptors, + rpc__req__wifi_stop__field_indices_by_name, + 0, rpc__req__wifi_stop__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_stop__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_stop__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiStop, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_stop__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_stop__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_stop__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiStop", + "RpcRespWifiStop", + "RpcRespWifiStop", + "", + sizeof(RpcRespWifiStop), + 1, + rpc__resp__wifi_stop__field_descriptors, + rpc__resp__wifi_stop__field_indices_by_name, + 1, rpc__resp__wifi_stop__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_stop__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_scan_start__field_descriptors[3] = +{ + { + "config", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiScanStart, config), + &wifi_scan_config__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "block", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiScanStart, block), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "config_set", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiScanStart, config_set), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_scan_start__field_indices_by_name[] = { + 1, /* field[1] = block */ + 0, /* field[0] = config */ + 2, /* field[2] = config_set */ +}; +static const ProtobufCIntRange rpc__req__wifi_scan_start__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 3 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_scan_start__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiScanStart", + "RpcReqWifiScanStart", + "RpcReqWifiScanStart", + "", + sizeof(RpcReqWifiScanStart), + 3, + rpc__req__wifi_scan_start__field_descriptors, + rpc__req__wifi_scan_start__field_indices_by_name, + 1, rpc__req__wifi_scan_start__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_scan_start__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_scan_start__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiScanStart, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_scan_start__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_scan_start__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_scan_start__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiScanStart", + "RpcRespWifiScanStart", + "RpcRespWifiScanStart", + "", + sizeof(RpcRespWifiScanStart), + 1, + rpc__resp__wifi_scan_start__field_descriptors, + rpc__resp__wifi_scan_start__field_indices_by_name, + 1, rpc__resp__wifi_scan_start__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_scan_start__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_scan_stop__field_descriptors NULL +#define rpc__req__wifi_scan_stop__field_indices_by_name NULL +#define rpc__req__wifi_scan_stop__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_scan_stop__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiScanStop", + "RpcReqWifiScanStop", + "RpcReqWifiScanStop", + "", + sizeof(RpcReqWifiScanStop), + 0, + rpc__req__wifi_scan_stop__field_descriptors, + rpc__req__wifi_scan_stop__field_indices_by_name, + 0, rpc__req__wifi_scan_stop__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_scan_stop__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_scan_stop__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiScanStop, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_scan_stop__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_scan_stop__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_scan_stop__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiScanStop", + "RpcRespWifiScanStop", + "RpcRespWifiScanStop", + "", + sizeof(RpcRespWifiScanStop), + 1, + rpc__resp__wifi_scan_stop__field_descriptors, + rpc__resp__wifi_scan_stop__field_indices_by_name, + 1, rpc__resp__wifi_scan_stop__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_scan_stop__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_scan_get_ap_num__field_descriptors NULL +#define rpc__req__wifi_scan_get_ap_num__field_indices_by_name NULL +#define rpc__req__wifi_scan_get_ap_num__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_scan_get_ap_num__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiScanGetApNum", + "RpcReqWifiScanGetApNum", + "RpcReqWifiScanGetApNum", + "", + sizeof(RpcReqWifiScanGetApNum), + 0, + rpc__req__wifi_scan_get_ap_num__field_descriptors, + rpc__req__wifi_scan_get_ap_num__field_indices_by_name, + 0, rpc__req__wifi_scan_get_ap_num__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_scan_get_ap_num__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_scan_get_ap_num__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiScanGetApNum, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "number", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiScanGetApNum, number), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_scan_get_ap_num__field_indices_by_name[] = { + 1, /* field[1] = number */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_scan_get_ap_num__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_scan_get_ap_num__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiScanGetApNum", + "RpcRespWifiScanGetApNum", + "RpcRespWifiScanGetApNum", + "", + sizeof(RpcRespWifiScanGetApNum), + 2, + rpc__resp__wifi_scan_get_ap_num__field_descriptors, + rpc__resp__wifi_scan_get_ap_num__field_indices_by_name, + 1, rpc__resp__wifi_scan_get_ap_num__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_scan_get_ap_num__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_scan_get_ap_records__field_descriptors[1] = +{ + { + "number", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiScanGetApRecords, number), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_scan_get_ap_records__field_indices_by_name[] = { + 0, /* field[0] = number */ +}; +static const ProtobufCIntRange rpc__req__wifi_scan_get_ap_records__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_scan_get_ap_records__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiScanGetApRecords", + "RpcReqWifiScanGetApRecords", + "RpcReqWifiScanGetApRecords", + "", + sizeof(RpcReqWifiScanGetApRecords), + 1, + rpc__req__wifi_scan_get_ap_records__field_descriptors, + rpc__req__wifi_scan_get_ap_records__field_indices_by_name, + 1, rpc__req__wifi_scan_get_ap_records__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_scan_get_ap_records__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_scan_get_ap_records__field_descriptors[3] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiScanGetApRecords, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "number", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiScanGetApRecords, number), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ap_records", + 3, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(RpcRespWifiScanGetApRecords, n_ap_records), + offsetof(RpcRespWifiScanGetApRecords, ap_records), + &wifi_ap_record__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_scan_get_ap_records__field_indices_by_name[] = { + 2, /* field[2] = ap_records */ + 1, /* field[1] = number */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_scan_get_ap_records__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 3 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_scan_get_ap_records__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiScanGetApRecords", + "RpcRespWifiScanGetApRecords", + "RpcRespWifiScanGetApRecords", + "", + sizeof(RpcRespWifiScanGetApRecords), + 3, + rpc__resp__wifi_scan_get_ap_records__field_descriptors, + rpc__resp__wifi_scan_get_ap_records__field_indices_by_name, + 1, rpc__resp__wifi_scan_get_ap_records__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_scan_get_ap_records__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_scan_get_ap_record__field_descriptors NULL +#define rpc__req__wifi_scan_get_ap_record__field_indices_by_name NULL +#define rpc__req__wifi_scan_get_ap_record__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_scan_get_ap_record__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiScanGetApRecord", + "RpcReqWifiScanGetApRecord", + "RpcReqWifiScanGetApRecord", + "", + sizeof(RpcReqWifiScanGetApRecord), + 0, + rpc__req__wifi_scan_get_ap_record__field_descriptors, + rpc__req__wifi_scan_get_ap_record__field_indices_by_name, + 0, rpc__req__wifi_scan_get_ap_record__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_scan_get_ap_record__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_scan_get_ap_record__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiScanGetApRecord, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ap_record", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiScanGetApRecord, ap_record), + &wifi_ap_record__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_scan_get_ap_record__field_indices_by_name[] = { + 1, /* field[1] = ap_record */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_scan_get_ap_record__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_scan_get_ap_record__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiScanGetApRecord", + "RpcRespWifiScanGetApRecord", + "RpcRespWifiScanGetApRecord", + "", + sizeof(RpcRespWifiScanGetApRecord), + 2, + rpc__resp__wifi_scan_get_ap_record__field_descriptors, + rpc__resp__wifi_scan_get_ap_record__field_indices_by_name, + 1, rpc__resp__wifi_scan_get_ap_record__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_scan_get_ap_record__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_clear_ap_list__field_descriptors NULL +#define rpc__req__wifi_clear_ap_list__field_indices_by_name NULL +#define rpc__req__wifi_clear_ap_list__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_clear_ap_list__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiClearApList", + "RpcReqWifiClearApList", + "RpcReqWifiClearApList", + "", + sizeof(RpcReqWifiClearApList), + 0, + rpc__req__wifi_clear_ap_list__field_descriptors, + rpc__req__wifi_clear_ap_list__field_indices_by_name, + 0, rpc__req__wifi_clear_ap_list__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_clear_ap_list__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_clear_ap_list__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiClearApList, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_clear_ap_list__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_clear_ap_list__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_clear_ap_list__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiClearApList", + "RpcRespWifiClearApList", + "RpcRespWifiClearApList", + "", + sizeof(RpcRespWifiClearApList), + 1, + rpc__resp__wifi_clear_ap_list__field_descriptors, + rpc__resp__wifi_clear_ap_list__field_indices_by_name, + 1, rpc__resp__wifi_clear_ap_list__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_clear_ap_list__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_restore__field_descriptors NULL +#define rpc__req__wifi_restore__field_indices_by_name NULL +#define rpc__req__wifi_restore__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_restore__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiRestore", + "RpcReqWifiRestore", + "RpcReqWifiRestore", + "", + sizeof(RpcReqWifiRestore), + 0, + rpc__req__wifi_restore__field_descriptors, + rpc__req__wifi_restore__field_indices_by_name, + 0, rpc__req__wifi_restore__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_restore__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_restore__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiRestore, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_restore__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_restore__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_restore__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiRestore", + "RpcRespWifiRestore", + "RpcRespWifiRestore", + "", + sizeof(RpcRespWifiRestore), + 1, + rpc__resp__wifi_restore__field_descriptors, + rpc__resp__wifi_restore__field_indices_by_name, + 1, rpc__resp__wifi_restore__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_restore__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_clear_fast_connect__field_descriptors NULL +#define rpc__req__wifi_clear_fast_connect__field_indices_by_name NULL +#define rpc__req__wifi_clear_fast_connect__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_clear_fast_connect__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiClearFastConnect", + "RpcReqWifiClearFastConnect", + "RpcReqWifiClearFastConnect", + "", + sizeof(RpcReqWifiClearFastConnect), + 0, + rpc__req__wifi_clear_fast_connect__field_descriptors, + rpc__req__wifi_clear_fast_connect__field_indices_by_name, + 0, rpc__req__wifi_clear_fast_connect__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_clear_fast_connect__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_clear_fast_connect__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiClearFastConnect, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_clear_fast_connect__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_clear_fast_connect__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_clear_fast_connect__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiClearFastConnect", + "RpcRespWifiClearFastConnect", + "RpcRespWifiClearFastConnect", + "", + sizeof(RpcRespWifiClearFastConnect), + 1, + rpc__resp__wifi_clear_fast_connect__field_descriptors, + rpc__resp__wifi_clear_fast_connect__field_indices_by_name, + 1, rpc__resp__wifi_clear_fast_connect__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_clear_fast_connect__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_deauth_sta__field_descriptors[1] = +{ + { + "aid", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiDeauthSta, aid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_deauth_sta__field_indices_by_name[] = { + 0, /* field[0] = aid */ +}; +static const ProtobufCIntRange rpc__req__wifi_deauth_sta__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_deauth_sta__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiDeauthSta", + "RpcReqWifiDeauthSta", + "RpcReqWifiDeauthSta", + "", + sizeof(RpcReqWifiDeauthSta), + 1, + rpc__req__wifi_deauth_sta__field_descriptors, + rpc__req__wifi_deauth_sta__field_indices_by_name, + 1, rpc__req__wifi_deauth_sta__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_deauth_sta__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_deauth_sta__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiDeauthSta, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "aid", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiDeauthSta, aid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_deauth_sta__field_indices_by_name[] = { + 1, /* field[1] = aid */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_deauth_sta__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_deauth_sta__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiDeauthSta", + "RpcRespWifiDeauthSta", + "RpcRespWifiDeauthSta", + "", + sizeof(RpcRespWifiDeauthSta), + 2, + rpc__resp__wifi_deauth_sta__field_descriptors, + rpc__resp__wifi_deauth_sta__field_indices_by_name, + 1, rpc__resp__wifi_deauth_sta__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_deauth_sta__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_sta_get_ap_info__field_descriptors NULL +#define rpc__req__wifi_sta_get_ap_info__field_indices_by_name NULL +#define rpc__req__wifi_sta_get_ap_info__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_ap_info__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiStaGetApInfo", + "RpcReqWifiStaGetApInfo", + "RpcReqWifiStaGetApInfo", + "", + sizeof(RpcReqWifiStaGetApInfo), + 0, + rpc__req__wifi_sta_get_ap_info__field_descriptors, + rpc__req__wifi_sta_get_ap_info__field_indices_by_name, + 0, rpc__req__wifi_sta_get_ap_info__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_sta_get_ap_info__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_sta_get_ap_info__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiStaGetApInfo, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ap_record", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiStaGetApInfo, ap_record), + &wifi_ap_record__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_sta_get_ap_info__field_indices_by_name[] = { + 1, /* field[1] = ap_record */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_sta_get_ap_info__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_ap_info__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiStaGetApInfo", + "RpcRespWifiStaGetApInfo", + "RpcRespWifiStaGetApInfo", + "", + sizeof(RpcRespWifiStaGetApInfo), + 2, + rpc__resp__wifi_sta_get_ap_info__field_descriptors, + rpc__resp__wifi_sta_get_ap_info__field_indices_by_name, + 1, rpc__resp__wifi_sta_get_ap_info__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_sta_get_ap_info__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_set_protocol__field_descriptors[2] = +{ + { + "ifx", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetProtocol, ifx), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "protocol_bitmap", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetProtocol, protocol_bitmap), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_set_protocol__field_indices_by_name[] = { + 0, /* field[0] = ifx */ + 1, /* field[1] = protocol_bitmap */ +}; +static const ProtobufCIntRange rpc__req__wifi_set_protocol__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_set_protocol__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiSetProtocol", + "RpcReqWifiSetProtocol", + "RpcReqWifiSetProtocol", + "", + sizeof(RpcReqWifiSetProtocol), + 2, + rpc__req__wifi_set_protocol__field_descriptors, + rpc__req__wifi_set_protocol__field_indices_by_name, + 1, rpc__req__wifi_set_protocol__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_set_protocol__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_set_protocol__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiSetProtocol, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_set_protocol__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_set_protocol__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_set_protocol__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiSetProtocol", + "RpcRespWifiSetProtocol", + "RpcRespWifiSetProtocol", + "", + sizeof(RpcRespWifiSetProtocol), + 1, + rpc__resp__wifi_set_protocol__field_descriptors, + rpc__resp__wifi_set_protocol__field_indices_by_name, + 1, rpc__resp__wifi_set_protocol__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_set_protocol__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_get_protocol__field_descriptors[1] = +{ + { + "ifx", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiGetProtocol, ifx), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_get_protocol__field_indices_by_name[] = { + 0, /* field[0] = ifx */ +}; +static const ProtobufCIntRange rpc__req__wifi_get_protocol__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_get_protocol__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiGetProtocol", + "RpcReqWifiGetProtocol", + "RpcReqWifiGetProtocol", + "", + sizeof(RpcReqWifiGetProtocol), + 1, + rpc__req__wifi_get_protocol__field_descriptors, + rpc__req__wifi_get_protocol__field_indices_by_name, + 1, rpc__req__wifi_get_protocol__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_get_protocol__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_get_protocol__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetProtocol, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "protocol_bitmap", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetProtocol, protocol_bitmap), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_get_protocol__field_indices_by_name[] = { + 1, /* field[1] = protocol_bitmap */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_get_protocol__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_get_protocol__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiGetProtocol", + "RpcRespWifiGetProtocol", + "RpcRespWifiGetProtocol", + "", + sizeof(RpcRespWifiGetProtocol), + 2, + rpc__resp__wifi_get_protocol__field_descriptors, + rpc__resp__wifi_get_protocol__field_indices_by_name, + 1, rpc__resp__wifi_get_protocol__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_get_protocol__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_set_bandwidth__field_descriptors[2] = +{ + { + "ifx", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetBandwidth, ifx), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "bw", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetBandwidth, bw), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_set_bandwidth__field_indices_by_name[] = { + 1, /* field[1] = bw */ + 0, /* field[0] = ifx */ +}; +static const ProtobufCIntRange rpc__req__wifi_set_bandwidth__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_set_bandwidth__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiSetBandwidth", + "RpcReqWifiSetBandwidth", + "RpcReqWifiSetBandwidth", + "", + sizeof(RpcReqWifiSetBandwidth), + 2, + rpc__req__wifi_set_bandwidth__field_descriptors, + rpc__req__wifi_set_bandwidth__field_indices_by_name, + 1, rpc__req__wifi_set_bandwidth__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_set_bandwidth__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_set_bandwidth__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiSetBandwidth, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_set_bandwidth__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_set_bandwidth__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_set_bandwidth__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiSetBandwidth", + "RpcRespWifiSetBandwidth", + "RpcRespWifiSetBandwidth", + "", + sizeof(RpcRespWifiSetBandwidth), + 1, + rpc__resp__wifi_set_bandwidth__field_descriptors, + rpc__resp__wifi_set_bandwidth__field_indices_by_name, + 1, rpc__resp__wifi_set_bandwidth__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_set_bandwidth__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_get_bandwidth__field_descriptors[1] = +{ + { + "ifx", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiGetBandwidth, ifx), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_get_bandwidth__field_indices_by_name[] = { + 0, /* field[0] = ifx */ +}; +static const ProtobufCIntRange rpc__req__wifi_get_bandwidth__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_get_bandwidth__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiGetBandwidth", + "RpcReqWifiGetBandwidth", + "RpcReqWifiGetBandwidth", + "", + sizeof(RpcReqWifiGetBandwidth), + 1, + rpc__req__wifi_get_bandwidth__field_descriptors, + rpc__req__wifi_get_bandwidth__field_indices_by_name, + 1, rpc__req__wifi_get_bandwidth__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_get_bandwidth__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_get_bandwidth__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetBandwidth, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "bw", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetBandwidth, bw), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_get_bandwidth__field_indices_by_name[] = { + 1, /* field[1] = bw */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_get_bandwidth__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_get_bandwidth__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiGetBandwidth", + "RpcRespWifiGetBandwidth", + "RpcRespWifiGetBandwidth", + "", + sizeof(RpcRespWifiGetBandwidth), + 2, + rpc__resp__wifi_get_bandwidth__field_descriptors, + rpc__resp__wifi_get_bandwidth__field_indices_by_name, + 1, rpc__resp__wifi_get_bandwidth__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_get_bandwidth__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_set_channel__field_descriptors[2] = +{ + { + "primary", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetChannel, primary), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "second", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetChannel, second), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_set_channel__field_indices_by_name[] = { + 0, /* field[0] = primary */ + 1, /* field[1] = second */ +}; +static const ProtobufCIntRange rpc__req__wifi_set_channel__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_set_channel__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiSetChannel", + "RpcReqWifiSetChannel", + "RpcReqWifiSetChannel", + "", + sizeof(RpcReqWifiSetChannel), + 2, + rpc__req__wifi_set_channel__field_descriptors, + rpc__req__wifi_set_channel__field_indices_by_name, + 1, rpc__req__wifi_set_channel__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_set_channel__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_set_channel__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiSetChannel, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_set_channel__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_set_channel__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_set_channel__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiSetChannel", + "RpcRespWifiSetChannel", + "RpcRespWifiSetChannel", + "", + sizeof(RpcRespWifiSetChannel), + 1, + rpc__resp__wifi_set_channel__field_descriptors, + rpc__resp__wifi_set_channel__field_indices_by_name, + 1, rpc__resp__wifi_set_channel__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_set_channel__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_get_channel__field_descriptors NULL +#define rpc__req__wifi_get_channel__field_indices_by_name NULL +#define rpc__req__wifi_get_channel__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_get_channel__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiGetChannel", + "RpcReqWifiGetChannel", + "RpcReqWifiGetChannel", + "", + sizeof(RpcReqWifiGetChannel), + 0, + rpc__req__wifi_get_channel__field_descriptors, + rpc__req__wifi_get_channel__field_indices_by_name, + 0, rpc__req__wifi_get_channel__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_get_channel__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_get_channel__field_descriptors[3] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetChannel, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "primary", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetChannel, primary), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "second", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetChannel, second), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_get_channel__field_indices_by_name[] = { + 1, /* field[1] = primary */ + 0, /* field[0] = resp */ + 2, /* field[2] = second */ +}; +static const ProtobufCIntRange rpc__resp__wifi_get_channel__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 3 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_get_channel__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiGetChannel", + "RpcRespWifiGetChannel", + "RpcRespWifiGetChannel", + "", + sizeof(RpcRespWifiGetChannel), + 3, + rpc__resp__wifi_get_channel__field_descriptors, + rpc__resp__wifi_get_channel__field_indices_by_name, + 1, rpc__resp__wifi_get_channel__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_get_channel__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_set_storage__field_descriptors[1] = +{ + { + "storage", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetStorage, storage), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_set_storage__field_indices_by_name[] = { + 0, /* field[0] = storage */ +}; +static const ProtobufCIntRange rpc__req__wifi_set_storage__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_set_storage__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiSetStorage", + "RpcReqWifiSetStorage", + "RpcReqWifiSetStorage", + "", + sizeof(RpcReqWifiSetStorage), + 1, + rpc__req__wifi_set_storage__field_descriptors, + rpc__req__wifi_set_storage__field_indices_by_name, + 1, rpc__req__wifi_set_storage__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_set_storage__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_set_storage__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiSetStorage, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_set_storage__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_set_storage__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_set_storage__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiSetStorage", + "RpcRespWifiSetStorage", + "RpcRespWifiSetStorage", + "", + sizeof(RpcRespWifiSetStorage), + 1, + rpc__resp__wifi_set_storage__field_descriptors, + rpc__resp__wifi_set_storage__field_indices_by_name, + 1, rpc__resp__wifi_set_storage__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_set_storage__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_set_country_code__field_descriptors[2] = +{ + { + "country", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetCountryCode, country), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ieee80211d_enabled", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetCountryCode, ieee80211d_enabled), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_set_country_code__field_indices_by_name[] = { + 0, /* field[0] = country */ + 1, /* field[1] = ieee80211d_enabled */ +}; +static const ProtobufCIntRange rpc__req__wifi_set_country_code__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_set_country_code__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiSetCountryCode", + "RpcReqWifiSetCountryCode", + "RpcReqWifiSetCountryCode", + "", + sizeof(RpcReqWifiSetCountryCode), + 2, + rpc__req__wifi_set_country_code__field_descriptors, + rpc__req__wifi_set_country_code__field_indices_by_name, + 1, rpc__req__wifi_set_country_code__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_set_country_code__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_set_country_code__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiSetCountryCode, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_set_country_code__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_set_country_code__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_set_country_code__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiSetCountryCode", + "RpcRespWifiSetCountryCode", + "RpcRespWifiSetCountryCode", + "", + sizeof(RpcRespWifiSetCountryCode), + 1, + rpc__resp__wifi_set_country_code__field_descriptors, + rpc__resp__wifi_set_country_code__field_indices_by_name, + 1, rpc__resp__wifi_set_country_code__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_set_country_code__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_get_country_code__field_descriptors NULL +#define rpc__req__wifi_get_country_code__field_indices_by_name NULL +#define rpc__req__wifi_get_country_code__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_get_country_code__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiGetCountryCode", + "RpcReqWifiGetCountryCode", + "RpcReqWifiGetCountryCode", + "", + sizeof(RpcReqWifiGetCountryCode), + 0, + rpc__req__wifi_get_country_code__field_descriptors, + rpc__req__wifi_get_country_code__field_indices_by_name, + 0, rpc__req__wifi_get_country_code__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_get_country_code__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_get_country_code__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetCountryCode, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "country", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetCountryCode, country), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_get_country_code__field_indices_by_name[] = { + 1, /* field[1] = country */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_get_country_code__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_get_country_code__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiGetCountryCode", + "RpcRespWifiGetCountryCode", + "RpcRespWifiGetCountryCode", + "", + sizeof(RpcRespWifiGetCountryCode), + 2, + rpc__resp__wifi_get_country_code__field_descriptors, + rpc__resp__wifi_get_country_code__field_indices_by_name, + 1, rpc__resp__wifi_get_country_code__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_get_country_code__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_set_country__field_descriptors[1] = +{ + { + "country", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetCountry, country), + &wifi_country__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_set_country__field_indices_by_name[] = { + 0, /* field[0] = country */ +}; +static const ProtobufCIntRange rpc__req__wifi_set_country__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_set_country__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiSetCountry", + "RpcReqWifiSetCountry", + "RpcReqWifiSetCountry", + "", + sizeof(RpcReqWifiSetCountry), + 1, + rpc__req__wifi_set_country__field_descriptors, + rpc__req__wifi_set_country__field_indices_by_name, + 1, rpc__req__wifi_set_country__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_set_country__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_set_country__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiSetCountry, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_set_country__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_set_country__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_set_country__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiSetCountry", + "RpcRespWifiSetCountry", + "RpcRespWifiSetCountry", + "", + sizeof(RpcRespWifiSetCountry), + 1, + rpc__resp__wifi_set_country__field_descriptors, + rpc__resp__wifi_set_country__field_indices_by_name, + 1, rpc__resp__wifi_set_country__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_set_country__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_get_country__field_descriptors NULL +#define rpc__req__wifi_get_country__field_indices_by_name NULL +#define rpc__req__wifi_get_country__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_get_country__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiGetCountry", + "RpcReqWifiGetCountry", + "RpcReqWifiGetCountry", + "", + sizeof(RpcReqWifiGetCountry), + 0, + rpc__req__wifi_get_country__field_descriptors, + rpc__req__wifi_get_country__field_indices_by_name, + 0, rpc__req__wifi_get_country__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_get_country__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_get_country__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetCountry, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "country", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetCountry, country), + &wifi_country__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_get_country__field_indices_by_name[] = { + 1, /* field[1] = country */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_get_country__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_get_country__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiGetCountry", + "RpcRespWifiGetCountry", + "RpcRespWifiGetCountry", + "", + sizeof(RpcRespWifiGetCountry), + 2, + rpc__resp__wifi_get_country__field_descriptors, + rpc__resp__wifi_get_country__field_indices_by_name, + 1, rpc__resp__wifi_get_country__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_get_country__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_ap_get_sta_list__field_descriptors NULL +#define rpc__req__wifi_ap_get_sta_list__field_indices_by_name NULL +#define rpc__req__wifi_ap_get_sta_list__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_ap_get_sta_list__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiApGetStaList", + "RpcReqWifiApGetStaList", + "RpcReqWifiApGetStaList", + "", + sizeof(RpcReqWifiApGetStaList), + 0, + rpc__req__wifi_ap_get_sta_list__field_descriptors, + rpc__req__wifi_ap_get_sta_list__field_indices_by_name, + 0, rpc__req__wifi_ap_get_sta_list__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_ap_get_sta_list__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_ap_get_sta_list__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiApGetStaList, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "sta_list", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiApGetStaList, sta_list), + &wifi_sta_list__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_ap_get_sta_list__field_indices_by_name[] = { + 0, /* field[0] = resp */ + 1, /* field[1] = sta_list */ +}; +static const ProtobufCIntRange rpc__resp__wifi_ap_get_sta_list__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_ap_get_sta_list__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiApGetStaList", + "RpcRespWifiApGetStaList", + "RpcRespWifiApGetStaList", + "", + sizeof(RpcRespWifiApGetStaList), + 2, + rpc__resp__wifi_ap_get_sta_list__field_descriptors, + rpc__resp__wifi_ap_get_sta_list__field_indices_by_name, + 1, rpc__resp__wifi_ap_get_sta_list__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_ap_get_sta_list__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_ap_get_sta_aid__field_descriptors[1] = +{ + { + "mac", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiApGetStaAid, mac), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_ap_get_sta_aid__field_indices_by_name[] = { + 0, /* field[0] = mac */ +}; +static const ProtobufCIntRange rpc__req__wifi_ap_get_sta_aid__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_ap_get_sta_aid__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiApGetStaAid", + "RpcReqWifiApGetStaAid", + "RpcReqWifiApGetStaAid", + "", + sizeof(RpcReqWifiApGetStaAid), + 1, + rpc__req__wifi_ap_get_sta_aid__field_descriptors, + rpc__req__wifi_ap_get_sta_aid__field_indices_by_name, + 1, rpc__req__wifi_ap_get_sta_aid__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_ap_get_sta_aid__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_sta_get_negotiated_phymode__field_descriptors NULL +#define rpc__req__wifi_sta_get_negotiated_phymode__field_indices_by_name NULL +#define rpc__req__wifi_sta_get_negotiated_phymode__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_negotiated_phymode__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiStaGetNegotiatedPhymode", + "RpcReqWifiStaGetNegotiatedPhymode", + "RpcReqWifiStaGetNegotiatedPhymode", + "", + sizeof(RpcReqWifiStaGetNegotiatedPhymode), + 0, + rpc__req__wifi_sta_get_negotiated_phymode__field_descriptors, + rpc__req__wifi_sta_get_negotiated_phymode__field_indices_by_name, + 0, rpc__req__wifi_sta_get_negotiated_phymode__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_sta_get_negotiated_phymode__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_sta_get_negotiated_phymode__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiStaGetNegotiatedPhymode, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "phymode", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiStaGetNegotiatedPhymode, phymode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_sta_get_negotiated_phymode__field_indices_by_name[] = { + 1, /* field[1] = phymode */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_sta_get_negotiated_phymode__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_negotiated_phymode__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiStaGetNegotiatedPhymode", + "RpcRespWifiStaGetNegotiatedPhymode", + "RpcRespWifiStaGetNegotiatedPhymode", + "", + sizeof(RpcRespWifiStaGetNegotiatedPhymode), + 2, + rpc__resp__wifi_sta_get_negotiated_phymode__field_descriptors, + rpc__resp__wifi_sta_get_negotiated_phymode__field_indices_by_name, + 1, rpc__resp__wifi_sta_get_negotiated_phymode__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_sta_get_negotiated_phymode__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_ap_get_sta_aid__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiApGetStaAid, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "aid", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiApGetStaAid, aid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_ap_get_sta_aid__field_indices_by_name[] = { + 1, /* field[1] = aid */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_ap_get_sta_aid__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_ap_get_sta_aid__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiApGetStaAid", + "RpcRespWifiApGetStaAid", + "RpcRespWifiApGetStaAid", + "", + sizeof(RpcRespWifiApGetStaAid), + 2, + rpc__resp__wifi_ap_get_sta_aid__field_descriptors, + rpc__resp__wifi_ap_get_sta_aid__field_indices_by_name, + 1, rpc__resp__wifi_ap_get_sta_aid__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_ap_get_sta_aid__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_sta_get_rssi__field_descriptors NULL +#define rpc__req__wifi_sta_get_rssi__field_indices_by_name NULL +#define rpc__req__wifi_sta_get_rssi__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_rssi__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiStaGetRssi", + "RpcReqWifiStaGetRssi", + "RpcReqWifiStaGetRssi", + "", + sizeof(RpcReqWifiStaGetRssi), + 0, + rpc__req__wifi_sta_get_rssi__field_descriptors, + rpc__req__wifi_sta_get_rssi__field_indices_by_name, + 0, rpc__req__wifi_sta_get_rssi__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_sta_get_rssi__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_sta_get_rssi__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiStaGetRssi, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "rssi", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiStaGetRssi, rssi), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_sta_get_rssi__field_indices_by_name[] = { + 0, /* field[0] = resp */ + 1, /* field[1] = rssi */ +}; +static const ProtobufCIntRange rpc__resp__wifi_sta_get_rssi__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_rssi__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiStaGetRssi", + "RpcRespWifiStaGetRssi", + "RpcRespWifiStaGetRssi", + "", + sizeof(RpcRespWifiStaGetRssi), + 2, + rpc__resp__wifi_sta_get_rssi__field_descriptors, + rpc__resp__wifi_sta_get_rssi__field_indices_by_name, + 1, rpc__resp__wifi_sta_get_rssi__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_sta_get_rssi__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_sta_get_aid__field_descriptors NULL +#define rpc__req__wifi_sta_get_aid__field_indices_by_name NULL +#define rpc__req__wifi_sta_get_aid__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_aid__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiStaGetAid", + "RpcReqWifiStaGetAid", + "RpcReqWifiStaGetAid", + "", + sizeof(RpcReqWifiStaGetAid), + 0, + rpc__req__wifi_sta_get_aid__field_descriptors, + rpc__req__wifi_sta_get_aid__field_indices_by_name, + 0, rpc__req__wifi_sta_get_aid__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_sta_get_aid__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_sta_get_aid__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiStaGetAid, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "aid", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiStaGetAid, aid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_sta_get_aid__field_indices_by_name[] = { + 1, /* field[1] = aid */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_sta_get_aid__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_aid__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiStaGetAid", + "RpcRespWifiStaGetAid", + "RpcRespWifiStaGetAid", + "", + sizeof(RpcRespWifiStaGetAid), + 2, + rpc__resp__wifi_sta_get_aid__field_descriptors, + rpc__resp__wifi_sta_get_aid__field_indices_by_name, + 1, rpc__resp__wifi_sta_get_aid__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_sta_get_aid__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_set_protocols__field_descriptors[2] = +{ + { + "ifx", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetProtocols, ifx), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "protocols", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetProtocols, protocols), + &wifi_protocols__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_set_protocols__field_indices_by_name[] = { + 0, /* field[0] = ifx */ + 1, /* field[1] = protocols */ +}; +static const ProtobufCIntRange rpc__req__wifi_set_protocols__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_set_protocols__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiSetProtocols", + "RpcReqWifiSetProtocols", + "RpcReqWifiSetProtocols", + "", + sizeof(RpcReqWifiSetProtocols), + 2, + rpc__req__wifi_set_protocols__field_descriptors, + rpc__req__wifi_set_protocols__field_indices_by_name, + 1, rpc__req__wifi_set_protocols__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_set_protocols__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_set_protocols__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiSetProtocols, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ifx", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiSetProtocols, ifx), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_set_protocols__field_indices_by_name[] = { + 1, /* field[1] = ifx */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_set_protocols__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_set_protocols__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiSetProtocols", + "RpcRespWifiSetProtocols", + "RpcRespWifiSetProtocols", + "", + sizeof(RpcRespWifiSetProtocols), + 2, + rpc__resp__wifi_set_protocols__field_descriptors, + rpc__resp__wifi_set_protocols__field_indices_by_name, + 1, rpc__resp__wifi_set_protocols__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_set_protocols__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_get_protocols__field_descriptors[1] = +{ + { + "ifx", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiGetProtocols, ifx), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_get_protocols__field_indices_by_name[] = { + 0, /* field[0] = ifx */ +}; +static const ProtobufCIntRange rpc__req__wifi_get_protocols__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_get_protocols__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiGetProtocols", + "RpcReqWifiGetProtocols", + "RpcReqWifiGetProtocols", + "", + sizeof(RpcReqWifiGetProtocols), + 1, + rpc__req__wifi_get_protocols__field_descriptors, + rpc__req__wifi_get_protocols__field_indices_by_name, + 1, rpc__req__wifi_get_protocols__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_get_protocols__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_get_protocols__field_descriptors[3] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetProtocols, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ifx", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetProtocols, ifx), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "protocols", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetProtocols, protocols), + &wifi_protocols__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_get_protocols__field_indices_by_name[] = { + 1, /* field[1] = ifx */ + 2, /* field[2] = protocols */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_get_protocols__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 3 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_get_protocols__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiGetProtocols", + "RpcRespWifiGetProtocols", + "RpcRespWifiGetProtocols", + "", + sizeof(RpcRespWifiGetProtocols), + 3, + rpc__resp__wifi_get_protocols__field_descriptors, + rpc__resp__wifi_get_protocols__field_indices_by_name, + 1, rpc__resp__wifi_get_protocols__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_get_protocols__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_set_bandwidths__field_descriptors[2] = +{ + { + "ifx", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetBandwidths, ifx), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "bandwidths", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetBandwidths, bandwidths), + &wifi_bandwidths__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_set_bandwidths__field_indices_by_name[] = { + 1, /* field[1] = bandwidths */ + 0, /* field[0] = ifx */ +}; +static const ProtobufCIntRange rpc__req__wifi_set_bandwidths__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_set_bandwidths__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiSetBandwidths", + "RpcReqWifiSetBandwidths", + "RpcReqWifiSetBandwidths", + "", + sizeof(RpcReqWifiSetBandwidths), + 2, + rpc__req__wifi_set_bandwidths__field_descriptors, + rpc__req__wifi_set_bandwidths__field_indices_by_name, + 1, rpc__req__wifi_set_bandwidths__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_set_bandwidths__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_set_bandwidths__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiSetBandwidths, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ifx", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiSetBandwidths, ifx), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_set_bandwidths__field_indices_by_name[] = { + 1, /* field[1] = ifx */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_set_bandwidths__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_set_bandwidths__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiSetBandwidths", + "RpcRespWifiSetBandwidths", + "RpcRespWifiSetBandwidths", + "", + sizeof(RpcRespWifiSetBandwidths), + 2, + rpc__resp__wifi_set_bandwidths__field_descriptors, + rpc__resp__wifi_set_bandwidths__field_indices_by_name, + 1, rpc__resp__wifi_set_bandwidths__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_set_bandwidths__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_get_bandwidths__field_descriptors[1] = +{ + { + "ifx", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiGetBandwidths, ifx), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_get_bandwidths__field_indices_by_name[] = { + 0, /* field[0] = ifx */ +}; +static const ProtobufCIntRange rpc__req__wifi_get_bandwidths__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_get_bandwidths__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiGetBandwidths", + "RpcReqWifiGetBandwidths", + "RpcReqWifiGetBandwidths", + "", + sizeof(RpcReqWifiGetBandwidths), + 1, + rpc__req__wifi_get_bandwidths__field_descriptors, + rpc__req__wifi_get_bandwidths__field_indices_by_name, + 1, rpc__req__wifi_get_bandwidths__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_get_bandwidths__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_get_bandwidths__field_descriptors[3] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetBandwidths, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ifx", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetBandwidths, ifx), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "bandwidths", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetBandwidths, bandwidths), + &wifi_bandwidths__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_get_bandwidths__field_indices_by_name[] = { + 2, /* field[2] = bandwidths */ + 1, /* field[1] = ifx */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_get_bandwidths__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 3 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_get_bandwidths__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiGetBandwidths", + "RpcRespWifiGetBandwidths", + "RpcRespWifiGetBandwidths", + "", + sizeof(RpcRespWifiGetBandwidths), + 3, + rpc__resp__wifi_get_bandwidths__field_descriptors, + rpc__resp__wifi_get_bandwidths__field_indices_by_name, + 1, rpc__resp__wifi_get_bandwidths__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_get_bandwidths__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_set_band__field_descriptors[1] = +{ + { + "band", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetBand, band), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_set_band__field_indices_by_name[] = { + 0, /* field[0] = band */ +}; +static const ProtobufCIntRange rpc__req__wifi_set_band__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_set_band__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiSetBand", + "RpcReqWifiSetBand", + "RpcReqWifiSetBand", + "", + sizeof(RpcReqWifiSetBand), + 1, + rpc__req__wifi_set_band__field_descriptors, + rpc__req__wifi_set_band__field_indices_by_name, + 1, rpc__req__wifi_set_band__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_set_band__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_set_band__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiSetBand, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_set_band__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_set_band__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_set_band__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiSetBand", + "RpcRespWifiSetBand", + "RpcRespWifiSetBand", + "", + sizeof(RpcRespWifiSetBand), + 1, + rpc__resp__wifi_set_band__field_descriptors, + rpc__resp__wifi_set_band__field_indices_by_name, + 1, rpc__resp__wifi_set_band__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_set_band__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_get_band__field_descriptors NULL +#define rpc__req__wifi_get_band__field_indices_by_name NULL +#define rpc__req__wifi_get_band__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_get_band__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiGetBand", + "RpcReqWifiGetBand", + "RpcReqWifiGetBand", + "", + sizeof(RpcReqWifiGetBand), + 0, + rpc__req__wifi_get_band__field_descriptors, + rpc__req__wifi_get_band__field_indices_by_name, + 0, rpc__req__wifi_get_band__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_get_band__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_get_band__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetBand, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "band", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetBand, band), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_get_band__field_indices_by_name[] = { + 1, /* field[1] = band */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_get_band__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_get_band__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiGetBand", + "RpcRespWifiGetBand", + "RpcRespWifiGetBand", + "", + sizeof(RpcRespWifiGetBand), + 2, + rpc__resp__wifi_get_band__field_descriptors, + rpc__resp__wifi_get_band__field_indices_by_name, + 1, rpc__resp__wifi_get_band__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_get_band__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_set_band_mode__field_descriptors[1] = +{ + { + "bandmode", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetBandMode, bandmode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_set_band_mode__field_indices_by_name[] = { + 0, /* field[0] = bandmode */ +}; +static const ProtobufCIntRange rpc__req__wifi_set_band_mode__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_set_band_mode__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiSetBandMode", + "RpcReqWifiSetBandMode", + "RpcReqWifiSetBandMode", + "", + sizeof(RpcReqWifiSetBandMode), + 1, + rpc__req__wifi_set_band_mode__field_descriptors, + rpc__req__wifi_set_band_mode__field_indices_by_name, + 1, rpc__req__wifi_set_band_mode__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_set_band_mode__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_set_band_mode__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiSetBandMode, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_set_band_mode__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_set_band_mode__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_set_band_mode__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiSetBandMode", + "RpcRespWifiSetBandMode", + "RpcRespWifiSetBandMode", + "", + sizeof(RpcRespWifiSetBandMode), + 1, + rpc__resp__wifi_set_band_mode__field_descriptors, + rpc__resp__wifi_set_band_mode__field_indices_by_name, + 1, rpc__resp__wifi_set_band_mode__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_set_band_mode__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_get_band_mode__field_descriptors NULL +#define rpc__req__wifi_get_band_mode__field_indices_by_name NULL +#define rpc__req__wifi_get_band_mode__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_get_band_mode__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiGetBandMode", + "RpcReqWifiGetBandMode", + "RpcReqWifiGetBandMode", + "", + sizeof(RpcReqWifiGetBandMode), + 0, + rpc__req__wifi_get_band_mode__field_descriptors, + rpc__req__wifi_get_band_mode__field_indices_by_name, + 0, rpc__req__wifi_get_band_mode__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_get_band_mode__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_get_band_mode__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetBandMode, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "bandmode", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetBandMode, bandmode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_get_band_mode__field_indices_by_name[] = { + 1, /* field[1] = bandmode */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_get_band_mode__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_get_band_mode__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiGetBandMode", + "RpcRespWifiGetBandMode", + "RpcRespWifiGetBandMode", + "", + sizeof(RpcRespWifiGetBandMode), + 2, + rpc__resp__wifi_get_band_mode__field_descriptors, + rpc__resp__wifi_get_band_mode__field_indices_by_name, + 1, rpc__resp__wifi_get_band_mode__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_get_band_mode__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__get_coprocessor_fw_version__field_descriptors NULL +#define rpc__req__get_coprocessor_fw_version__field_indices_by_name NULL +#define rpc__req__get_coprocessor_fw_version__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__get_coprocessor_fw_version__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_GetCoprocessorFwVersion", + "RpcReqGetCoprocessorFwVersion", + "RpcReqGetCoprocessorFwVersion", + "", + sizeof(RpcReqGetCoprocessorFwVersion), + 0, + rpc__req__get_coprocessor_fw_version__field_descriptors, + rpc__req__get_coprocessor_fw_version__field_indices_by_name, + 0, rpc__req__get_coprocessor_fw_version__number_ranges, + (ProtobufCMessageInit) rpc__req__get_coprocessor_fw_version__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__get_coprocessor_fw_version__field_descriptors[4] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespGetCoprocessorFwVersion, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "major1", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(RpcRespGetCoprocessorFwVersion, major1), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "minor1", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(RpcRespGetCoprocessorFwVersion, minor1), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "patch1", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(RpcRespGetCoprocessorFwVersion, patch1), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__get_coprocessor_fw_version__field_indices_by_name[] = { + 1, /* field[1] = major1 */ + 2, /* field[2] = minor1 */ + 3, /* field[3] = patch1 */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__get_coprocessor_fw_version__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 4 } +}; +const ProtobufCMessageDescriptor rpc__resp__get_coprocessor_fw_version__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_GetCoprocessorFwVersion", + "RpcRespGetCoprocessorFwVersion", + "RpcRespGetCoprocessorFwVersion", + "", + sizeof(RpcRespGetCoprocessorFwVersion), + 4, + rpc__resp__get_coprocessor_fw_version__field_descriptors, + rpc__resp__get_coprocessor_fw_version__field_indices_by_name, + 1, rpc__resp__get_coprocessor_fw_version__number_ranges, + (ProtobufCMessageInit) rpc__resp__get_coprocessor_fw_version__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__event__wifi_event_no_args__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcEventWifiEventNoArgs, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "event_id", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcEventWifiEventNoArgs, event_id), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__event__wifi_event_no_args__field_indices_by_name[] = { + 1, /* field[1] = event_id */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__event__wifi_event_no_args__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__event__wifi_event_no_args__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Event_WifiEventNoArgs", + "RpcEventWifiEventNoArgs", + "RpcEventWifiEventNoArgs", + "", + sizeof(RpcEventWifiEventNoArgs), + 2, + rpc__event__wifi_event_no_args__field_descriptors, + rpc__event__wifi_event_no_args__field_indices_by_name, + 1, rpc__event__wifi_event_no_args__number_ranges, + (ProtobufCMessageInit) rpc__event__wifi_event_no_args__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__event__espinit__field_descriptors[1] = +{ + { + "init_data", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(RpcEventESPInit, init_data), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__event__espinit__field_indices_by_name[] = { + 0, /* field[0] = init_data */ +}; +static const ProtobufCIntRange rpc__event__espinit__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__event__espinit__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Event_ESPInit", + "RpcEventESPInit", + "RpcEventESPInit", + "", + sizeof(RpcEventESPInit), + 1, + rpc__event__espinit__field_descriptors, + rpc__event__espinit__field_indices_by_name, + 1, rpc__event__espinit__number_ranges, + (ProtobufCMessageInit) rpc__event__espinit__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__event__heartbeat__field_descriptors[1] = +{ + { + "hb_num", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcEventHeartbeat, hb_num), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__event__heartbeat__field_indices_by_name[] = { + 0, /* field[0] = hb_num */ +}; +static const ProtobufCIntRange rpc__event__heartbeat__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__event__heartbeat__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Event_Heartbeat", + "RpcEventHeartbeat", + "RpcEventHeartbeat", + "", + sizeof(RpcEventHeartbeat), + 1, + rpc__event__heartbeat__field_descriptors, + rpc__event__heartbeat__field_indices_by_name, + 1, rpc__event__heartbeat__number_ranges, + (ProtobufCMessageInit) rpc__event__heartbeat__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__event__ap__sta_disconnected__field_descriptors[5] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcEventAPStaDisconnected, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "mac", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(RpcEventAPStaDisconnected, mac), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "aid", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(RpcEventAPStaDisconnected, aid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "is_mesh_child", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(RpcEventAPStaDisconnected, is_mesh_child), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "reason", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(RpcEventAPStaDisconnected, reason), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__event__ap__sta_disconnected__field_indices_by_name[] = { + 2, /* field[2] = aid */ + 3, /* field[3] = is_mesh_child */ + 1, /* field[1] = mac */ + 4, /* field[4] = reason */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__event__ap__sta_disconnected__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 5 } +}; +const ProtobufCMessageDescriptor rpc__event__ap__sta_disconnected__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Event_AP_StaDisconnected", + "RpcEventAPStaDisconnected", + "RpcEventAPStaDisconnected", + "", + sizeof(RpcEventAPStaDisconnected), + 5, + rpc__event__ap__sta_disconnected__field_descriptors, + rpc__event__ap__sta_disconnected__field_indices_by_name, + 1, rpc__event__ap__sta_disconnected__number_ranges, + (ProtobufCMessageInit) rpc__event__ap__sta_disconnected__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__event__ap__sta_connected__field_descriptors[4] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcEventAPStaConnected, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "mac", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(RpcEventAPStaConnected, mac), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "aid", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(RpcEventAPStaConnected, aid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "is_mesh_child", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(RpcEventAPStaConnected, is_mesh_child), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__event__ap__sta_connected__field_indices_by_name[] = { + 2, /* field[2] = aid */ + 3, /* field[3] = is_mesh_child */ + 1, /* field[1] = mac */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__event__ap__sta_connected__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 4 } +}; +const ProtobufCMessageDescriptor rpc__event__ap__sta_connected__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Event_AP_StaConnected", + "RpcEventAPStaConnected", + "RpcEventAPStaConnected", + "", + sizeof(RpcEventAPStaConnected), + 4, + rpc__event__ap__sta_connected__field_descriptors, + rpc__event__ap__sta_connected__field_indices_by_name, + 1, rpc__event__ap__sta_connected__number_ranges, + (ProtobufCMessageInit) rpc__event__ap__sta_connected__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__event__sta_scan_done__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcEventStaScanDone, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "scan_done", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcEventStaScanDone, scan_done), + &wifi_event_sta_scan_done__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__event__sta_scan_done__field_indices_by_name[] = { + 0, /* field[0] = resp */ + 1, /* field[1] = scan_done */ +}; +static const ProtobufCIntRange rpc__event__sta_scan_done__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__event__sta_scan_done__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Event_StaScanDone", + "RpcEventStaScanDone", + "RpcEventStaScanDone", + "", + sizeof(RpcEventStaScanDone), + 2, + rpc__event__sta_scan_done__field_descriptors, + rpc__event__sta_scan_done__field_indices_by_name, + 1, rpc__event__sta_scan_done__number_ranges, + (ProtobufCMessageInit) rpc__event__sta_scan_done__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__event__sta_connected__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcEventStaConnected, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "sta_connected", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcEventStaConnected, sta_connected), + &wifi_event_sta_connected__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__event__sta_connected__field_indices_by_name[] = { + 0, /* field[0] = resp */ + 1, /* field[1] = sta_connected */ +}; +static const ProtobufCIntRange rpc__event__sta_connected__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__event__sta_connected__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Event_StaConnected", + "RpcEventStaConnected", + "RpcEventStaConnected", + "", + sizeof(RpcEventStaConnected), + 2, + rpc__event__sta_connected__field_descriptors, + rpc__event__sta_connected__field_indices_by_name, + 1, rpc__event__sta_connected__number_ranges, + (ProtobufCMessageInit) rpc__event__sta_connected__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__event__sta_disconnected__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcEventStaDisconnected, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "sta_disconnected", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcEventStaDisconnected, sta_disconnected), + &wifi_event_sta_disconnected__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__event__sta_disconnected__field_indices_by_name[] = { + 0, /* field[0] = resp */ + 1, /* field[1] = sta_disconnected */ +}; +static const ProtobufCIntRange rpc__event__sta_disconnected__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__event__sta_disconnected__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Event_StaDisconnected", + "RpcEventStaDisconnected", + "RpcEventStaDisconnected", + "", + sizeof(RpcEventStaDisconnected), + 2, + rpc__event__sta_disconnected__field_descriptors, + rpc__event__sta_disconnected__field_indices_by_name, + 1, rpc__event__sta_disconnected__number_ranges, + (ProtobufCMessageInit) rpc__event__sta_disconnected__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__field_descriptors[121] = +{ + { + "msg_type", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_ENUM, + 0, /* quantifier_offset */ + offsetof(Rpc, msg_type), + &rpc_type__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "msg_id", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_ENUM, + 0, /* quantifier_offset */ + offsetof(Rpc, msg_id), + &rpc_id__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "uid", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(Rpc, uid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_get_mac_address", + 257, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_get_mac_address), + &rpc__req__get_mac_address__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_set_mac_address", + 258, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_set_mac_address), + &rpc__req__set_mac_address__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_get_wifi_mode", + 259, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_get_wifi_mode), + &rpc__req__get_mode__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_set_wifi_mode", + 260, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_set_wifi_mode), + &rpc__req__set_mode__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_set_ps", + 270, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_set_ps), + &rpc__req__set_ps__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_get_ps", + 271, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_get_ps), + &rpc__req__get_ps__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_ota_begin", + 272, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_ota_begin), + &rpc__req__otabegin__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_ota_write", + 273, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_ota_write), + &rpc__req__otawrite__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_ota_end", + 274, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_ota_end), + &rpc__req__otaend__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_set_wifi_max_tx_power", + 275, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_set_wifi_max_tx_power), + &rpc__req__wifi_set_max_tx_power__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_get_wifi_max_tx_power", + 276, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_get_wifi_max_tx_power), + &rpc__req__wifi_get_max_tx_power__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_config_heartbeat", + 277, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_config_heartbeat), + &rpc__req__config_heartbeat__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_init", + 278, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_init), + &rpc__req__wifi_init__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_deinit", + 279, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_deinit), + &rpc__req__wifi_deinit__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_start", + 280, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_start), + &rpc__req__wifi_start__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_stop", + 281, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_stop), + &rpc__req__wifi_stop__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_connect", + 282, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_connect), + &rpc__req__wifi_connect__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_disconnect", + 283, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_disconnect), + &rpc__req__wifi_disconnect__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_set_config", + 284, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_set_config), + &rpc__req__wifi_set_config__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_get_config", + 285, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_get_config), + &rpc__req__wifi_get_config__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_scan_start", + 286, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_scan_start), + &rpc__req__wifi_scan_start__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_scan_stop", + 287, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_scan_stop), + &rpc__req__wifi_scan_stop__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_scan_get_ap_num", + 288, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_scan_get_ap_num), + &rpc__req__wifi_scan_get_ap_num__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_scan_get_ap_records", + 289, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_scan_get_ap_records), + &rpc__req__wifi_scan_get_ap_records__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_clear_ap_list", + 290, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_clear_ap_list), + &rpc__req__wifi_clear_ap_list__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_restore", + 291, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_restore), + &rpc__req__wifi_restore__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_clear_fast_connect", + 292, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_clear_fast_connect), + &rpc__req__wifi_clear_fast_connect__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_deauth_sta", + 293, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_deauth_sta), + &rpc__req__wifi_deauth_sta__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_sta_get_ap_info", + 294, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_sta_get_ap_info), + &rpc__req__wifi_sta_get_ap_info__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_set_protocol", + 297, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_set_protocol), + &rpc__req__wifi_set_protocol__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_get_protocol", + 298, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_get_protocol), + &rpc__req__wifi_get_protocol__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_set_bandwidth", + 299, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_set_bandwidth), + &rpc__req__wifi_set_bandwidth__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_get_bandwidth", + 300, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_get_bandwidth), + &rpc__req__wifi_get_bandwidth__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_set_channel", + 301, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_set_channel), + &rpc__req__wifi_set_channel__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_get_channel", + 302, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_get_channel), + &rpc__req__wifi_get_channel__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_set_country", + 303, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_set_country), + &rpc__req__wifi_set_country__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_get_country", + 304, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_get_country), + &rpc__req__wifi_get_country__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_ap_get_sta_list", + 311, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_ap_get_sta_list), + &rpc__req__wifi_ap_get_sta_list__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_ap_get_sta_aid", + 312, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_ap_get_sta_aid), + &rpc__req__wifi_ap_get_sta_aid__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_set_storage", + 313, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_set_storage), + &rpc__req__wifi_set_storage__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_set_country_code", + 334, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_set_country_code), + &rpc__req__wifi_set_country_code__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_get_country_code", + 335, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_get_country_code), + &rpc__req__wifi_get_country_code__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_sta_get_aid", + 338, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_sta_get_aid), + &rpc__req__wifi_sta_get_aid__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_sta_get_negotiated_phymode", + 339, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_sta_get_negotiated_phymode), + &rpc__req__wifi_sta_get_negotiated_phymode__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_sta_get_rssi", + 341, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_sta_get_rssi), + &rpc__req__wifi_sta_get_rssi__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_set_protocols", + 342, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_set_protocols), + &rpc__req__wifi_set_protocols__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_get_protocols", + 343, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_get_protocols), + &rpc__req__wifi_get_protocols__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_set_bandwidths", + 344, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_set_bandwidths), + &rpc__req__wifi_set_bandwidths__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_get_bandwidths", + 345, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_get_bandwidths), + &rpc__req__wifi_get_bandwidths__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_set_band", + 346, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_set_band), + &rpc__req__wifi_set_band__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_get_band", + 347, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_get_band), + &rpc__req__wifi_get_band__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_set_bandmode", + 348, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_set_bandmode), + &rpc__req__wifi_set_band_mode__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_get_bandmode", + 349, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_get_bandmode), + &rpc__req__wifi_get_band_mode__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_get_coprocessor_fwversion", + 350, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_get_coprocessor_fwversion), + &rpc__req__get_coprocessor_fw_version__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_scan_get_ap_record", + 351, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_scan_get_ap_record), + &rpc__req__wifi_scan_get_ap_record__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_get_mac_address", + 513, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_get_mac_address), + &rpc__resp__get_mac_address__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_set_mac_address", + 514, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_set_mac_address), + &rpc__resp__set_mac_address__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_get_wifi_mode", + 515, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_get_wifi_mode), + &rpc__resp__get_mode__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_set_wifi_mode", + 516, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_set_wifi_mode), + &rpc__resp__set_mode__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_set_ps", + 526, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_set_ps), + &rpc__resp__set_ps__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_get_ps", + 527, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_get_ps), + &rpc__resp__get_ps__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_ota_begin", + 528, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_ota_begin), + &rpc__resp__otabegin__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_ota_write", + 529, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_ota_write), + &rpc__resp__otawrite__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_ota_end", + 530, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_ota_end), + &rpc__resp__otaend__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_set_wifi_max_tx_power", + 531, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_set_wifi_max_tx_power), + &rpc__resp__wifi_set_max_tx_power__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_get_wifi_max_tx_power", + 532, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_get_wifi_max_tx_power), + &rpc__resp__wifi_get_max_tx_power__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_config_heartbeat", + 533, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_config_heartbeat), + &rpc__resp__config_heartbeat__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_init", + 534, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_init), + &rpc__resp__wifi_init__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_deinit", + 535, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_deinit), + &rpc__resp__wifi_deinit__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_start", + 536, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_start), + &rpc__resp__wifi_start__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_stop", + 537, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_stop), + &rpc__resp__wifi_stop__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_connect", + 538, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_connect), + &rpc__resp__wifi_connect__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_disconnect", + 539, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_disconnect), + &rpc__resp__wifi_disconnect__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_set_config", + 540, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_set_config), + &rpc__resp__wifi_set_config__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_get_config", + 541, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_get_config), + &rpc__resp__wifi_get_config__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_scan_start", + 542, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_scan_start), + &rpc__resp__wifi_scan_start__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_scan_stop", + 543, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_scan_stop), + &rpc__resp__wifi_scan_stop__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_scan_get_ap_num", + 544, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_scan_get_ap_num), + &rpc__resp__wifi_scan_get_ap_num__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_scan_get_ap_records", + 545, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_scan_get_ap_records), + &rpc__resp__wifi_scan_get_ap_records__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_clear_ap_list", + 546, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_clear_ap_list), + &rpc__resp__wifi_clear_ap_list__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_restore", + 547, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_restore), + &rpc__resp__wifi_restore__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_clear_fast_connect", + 548, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_clear_fast_connect), + &rpc__resp__wifi_clear_fast_connect__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_deauth_sta", + 549, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_deauth_sta), + &rpc__resp__wifi_deauth_sta__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_sta_get_ap_info", + 550, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_sta_get_ap_info), + &rpc__resp__wifi_sta_get_ap_info__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_set_protocol", + 553, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_set_protocol), + &rpc__resp__wifi_set_protocol__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_get_protocol", + 554, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_get_protocol), + &rpc__resp__wifi_get_protocol__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_set_bandwidth", + 555, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_set_bandwidth), + &rpc__resp__wifi_set_bandwidth__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_get_bandwidth", + 556, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_get_bandwidth), + &rpc__resp__wifi_get_bandwidth__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_set_channel", + 557, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_set_channel), + &rpc__resp__wifi_set_channel__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_get_channel", + 558, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_get_channel), + &rpc__resp__wifi_get_channel__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_set_country", + 559, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_set_country), + &rpc__resp__wifi_set_country__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_get_country", + 560, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_get_country), + &rpc__resp__wifi_get_country__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_ap_get_sta_list", + 567, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_ap_get_sta_list), + &rpc__resp__wifi_ap_get_sta_list__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_ap_get_sta_aid", + 568, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_ap_get_sta_aid), + &rpc__resp__wifi_ap_get_sta_aid__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_set_storage", + 569, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_set_storage), + &rpc__resp__wifi_set_storage__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_set_country_code", + 590, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_set_country_code), + &rpc__resp__wifi_set_country_code__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_get_country_code", + 591, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_get_country_code), + &rpc__resp__wifi_get_country_code__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_sta_get_aid", + 594, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_sta_get_aid), + &rpc__resp__wifi_sta_get_aid__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_sta_get_negotiated_phymode", + 595, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_sta_get_negotiated_phymode), + &rpc__resp__wifi_sta_get_negotiated_phymode__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_sta_get_rssi", + 597, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_sta_get_rssi), + &rpc__resp__wifi_sta_get_rssi__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_set_protocols", + 598, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_set_protocols), + &rpc__resp__wifi_set_protocols__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_get_protocols", + 599, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_get_protocols), + &rpc__resp__wifi_get_protocols__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_set_bandwidths", + 600, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_set_bandwidths), + &rpc__resp__wifi_set_bandwidths__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_get_bandwidths", + 601, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_get_bandwidths), + &rpc__resp__wifi_get_bandwidths__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_set_band", + 602, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_set_band), + &rpc__resp__wifi_set_band__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_get_band", + 603, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_get_band), + &rpc__resp__wifi_get_band__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_set_bandmode", + 604, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_set_bandmode), + &rpc__resp__wifi_set_band_mode__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_get_bandmode", + 605, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_get_bandmode), + &rpc__resp__wifi_get_band_mode__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_get_coprocessor_fwversion", + 606, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_get_coprocessor_fwversion), + &rpc__resp__get_coprocessor_fw_version__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_scan_get_ap_record", + 607, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_scan_get_ap_record), + &rpc__resp__wifi_scan_get_ap_record__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "event_esp_init", + 769, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, event_esp_init), + &rpc__event__espinit__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "event_heartbeat", + 770, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, event_heartbeat), + &rpc__event__heartbeat__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "event_ap_sta_connected", + 771, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, event_ap_sta_connected), + &rpc__event__ap__sta_connected__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "event_ap_sta_disconnected", + 772, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, event_ap_sta_disconnected), + &rpc__event__ap__sta_disconnected__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "event_wifi_event_no_args", + 773, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, event_wifi_event_no_args), + &rpc__event__wifi_event_no_args__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "event_sta_scan_done", + 774, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, event_sta_scan_done), + &rpc__event__sta_scan_done__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "event_sta_connected", + 775, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, event_sta_connected), + &rpc__event__sta_connected__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "event_sta_disconnected", + 776, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, event_sta_disconnected), + &rpc__event__sta_disconnected__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__field_indices_by_name[] = { + 115, /* field[115] = event_ap_sta_connected */ + 116, /* field[116] = event_ap_sta_disconnected */ + 113, /* field[113] = event_esp_init */ + 114, /* field[114] = event_heartbeat */ + 119, /* field[119] = event_sta_connected */ + 120, /* field[120] = event_sta_disconnected */ + 118, /* field[118] = event_sta_scan_done */ + 117, /* field[117] = event_wifi_event_no_args */ + 1, /* field[1] = msg_id */ + 0, /* field[0] = msg_type */ + 14, /* field[14] = req_config_heartbeat */ + 56, /* field[56] = req_get_coprocessor_fwversion */ + 3, /* field[3] = req_get_mac_address */ + 13, /* field[13] = req_get_wifi_max_tx_power */ + 5, /* field[5] = req_get_wifi_mode */ + 9, /* field[9] = req_ota_begin */ + 11, /* field[11] = req_ota_end */ + 10, /* field[10] = req_ota_write */ + 4, /* field[4] = req_set_mac_address */ + 12, /* field[12] = req_set_wifi_max_tx_power */ + 6, /* field[6] = req_set_wifi_mode */ + 41, /* field[41] = req_wifi_ap_get_sta_aid */ + 40, /* field[40] = req_wifi_ap_get_sta_list */ + 27, /* field[27] = req_wifi_clear_ap_list */ + 29, /* field[29] = req_wifi_clear_fast_connect */ + 19, /* field[19] = req_wifi_connect */ + 30, /* field[30] = req_wifi_deauth_sta */ + 16, /* field[16] = req_wifi_deinit */ + 20, /* field[20] = req_wifi_disconnect */ + 53, /* field[53] = req_wifi_get_band */ + 55, /* field[55] = req_wifi_get_bandmode */ + 35, /* field[35] = req_wifi_get_bandwidth */ + 51, /* field[51] = req_wifi_get_bandwidths */ + 37, /* field[37] = req_wifi_get_channel */ + 22, /* field[22] = req_wifi_get_config */ + 39, /* field[39] = req_wifi_get_country */ + 44, /* field[44] = req_wifi_get_country_code */ + 33, /* field[33] = req_wifi_get_protocol */ + 49, /* field[49] = req_wifi_get_protocols */ + 8, /* field[8] = req_wifi_get_ps */ + 15, /* field[15] = req_wifi_init */ + 28, /* field[28] = req_wifi_restore */ + 25, /* field[25] = req_wifi_scan_get_ap_num */ + 57, /* field[57] = req_wifi_scan_get_ap_record */ + 26, /* field[26] = req_wifi_scan_get_ap_records */ + 23, /* field[23] = req_wifi_scan_start */ + 24, /* field[24] = req_wifi_scan_stop */ + 52, /* field[52] = req_wifi_set_band */ + 54, /* field[54] = req_wifi_set_bandmode */ + 34, /* field[34] = req_wifi_set_bandwidth */ + 50, /* field[50] = req_wifi_set_bandwidths */ + 36, /* field[36] = req_wifi_set_channel */ + 21, /* field[21] = req_wifi_set_config */ + 38, /* field[38] = req_wifi_set_country */ + 43, /* field[43] = req_wifi_set_country_code */ + 32, /* field[32] = req_wifi_set_protocol */ + 48, /* field[48] = req_wifi_set_protocols */ + 7, /* field[7] = req_wifi_set_ps */ + 42, /* field[42] = req_wifi_set_storage */ + 45, /* field[45] = req_wifi_sta_get_aid */ + 31, /* field[31] = req_wifi_sta_get_ap_info */ + 46, /* field[46] = req_wifi_sta_get_negotiated_phymode */ + 47, /* field[47] = req_wifi_sta_get_rssi */ + 17, /* field[17] = req_wifi_start */ + 18, /* field[18] = req_wifi_stop */ + 69, /* field[69] = resp_config_heartbeat */ + 111, /* field[111] = resp_get_coprocessor_fwversion */ + 58, /* field[58] = resp_get_mac_address */ + 68, /* field[68] = resp_get_wifi_max_tx_power */ + 60, /* field[60] = resp_get_wifi_mode */ + 64, /* field[64] = resp_ota_begin */ + 66, /* field[66] = resp_ota_end */ + 65, /* field[65] = resp_ota_write */ + 59, /* field[59] = resp_set_mac_address */ + 67, /* field[67] = resp_set_wifi_max_tx_power */ + 61, /* field[61] = resp_set_wifi_mode */ + 96, /* field[96] = resp_wifi_ap_get_sta_aid */ + 95, /* field[95] = resp_wifi_ap_get_sta_list */ + 82, /* field[82] = resp_wifi_clear_ap_list */ + 84, /* field[84] = resp_wifi_clear_fast_connect */ + 74, /* field[74] = resp_wifi_connect */ + 85, /* field[85] = resp_wifi_deauth_sta */ + 71, /* field[71] = resp_wifi_deinit */ + 75, /* field[75] = resp_wifi_disconnect */ + 108, /* field[108] = resp_wifi_get_band */ + 110, /* field[110] = resp_wifi_get_bandmode */ + 90, /* field[90] = resp_wifi_get_bandwidth */ + 106, /* field[106] = resp_wifi_get_bandwidths */ + 92, /* field[92] = resp_wifi_get_channel */ + 77, /* field[77] = resp_wifi_get_config */ + 94, /* field[94] = resp_wifi_get_country */ + 99, /* field[99] = resp_wifi_get_country_code */ + 88, /* field[88] = resp_wifi_get_protocol */ + 104, /* field[104] = resp_wifi_get_protocols */ + 63, /* field[63] = resp_wifi_get_ps */ + 70, /* field[70] = resp_wifi_init */ + 83, /* field[83] = resp_wifi_restore */ + 80, /* field[80] = resp_wifi_scan_get_ap_num */ + 112, /* field[112] = resp_wifi_scan_get_ap_record */ + 81, /* field[81] = resp_wifi_scan_get_ap_records */ + 78, /* field[78] = resp_wifi_scan_start */ + 79, /* field[79] = resp_wifi_scan_stop */ + 107, /* field[107] = resp_wifi_set_band */ + 109, /* field[109] = resp_wifi_set_bandmode */ + 89, /* field[89] = resp_wifi_set_bandwidth */ + 105, /* field[105] = resp_wifi_set_bandwidths */ + 91, /* field[91] = resp_wifi_set_channel */ + 76, /* field[76] = resp_wifi_set_config */ + 93, /* field[93] = resp_wifi_set_country */ + 98, /* field[98] = resp_wifi_set_country_code */ + 87, /* field[87] = resp_wifi_set_protocol */ + 103, /* field[103] = resp_wifi_set_protocols */ + 62, /* field[62] = resp_wifi_set_ps */ + 97, /* field[97] = resp_wifi_set_storage */ + 100, /* field[100] = resp_wifi_sta_get_aid */ + 86, /* field[86] = resp_wifi_sta_get_ap_info */ + 101, /* field[101] = resp_wifi_sta_get_negotiated_phymode */ + 102, /* field[102] = resp_wifi_sta_get_rssi */ + 72, /* field[72] = resp_wifi_start */ + 73, /* field[73] = resp_wifi_stop */ + 2, /* field[2] = uid */ +}; +static const ProtobufCIntRange rpc__number_ranges[16 + 1] = +{ + { 1, 0 }, + { 257, 3 }, + { 270, 7 }, + { 297, 32 }, + { 311, 40 }, + { 334, 43 }, + { 338, 45 }, + { 341, 47 }, + { 513, 58 }, + { 526, 62 }, + { 553, 87 }, + { 567, 95 }, + { 590, 98 }, + { 594, 100 }, + { 597, 102 }, + { 769, 113 }, + { 0, 121 } +}; +const ProtobufCMessageDescriptor rpc__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc", + "Rpc", + "Rpc", + "", + sizeof(Rpc), + 121, + rpc__field_descriptors, + rpc__field_indices_by_name, + 16, rpc__number_ranges, + (ProtobufCMessageInit) rpc__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCEnumValue rpc__wifi_bw__enum_values_by_number[3] = +{ + { "BW_Invalid", "RPC__WIFI_BW__BW_Invalid", 0 }, + { "HT20", "RPC__WIFI_BW__HT20", 1 }, + { "HT40", "RPC__WIFI_BW__HT40", 2 }, +}; +static const ProtobufCIntRange rpc__wifi_bw__value_ranges[] = { +{0, 0},{0, 3} +}; +static const ProtobufCEnumValueIndex rpc__wifi_bw__enum_values_by_name[3] = +{ + { "BW_Invalid", 0 }, + { "HT20", 1 }, + { "HT40", 2 }, +}; +const ProtobufCEnumDescriptor rpc__wifi_bw__descriptor = +{ + PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, + "Rpc_WifiBw", + "Rpc_WifiBw", + "RpcWifiBw", + "", + 3, + rpc__wifi_bw__enum_values_by_number, + 3, + rpc__wifi_bw__enum_values_by_name, + 1, + rpc__wifi_bw__value_ranges, + NULL,NULL,NULL,NULL /* reserved[1234] */ +}; +static const ProtobufCEnumValue rpc__wifi_power_save__enum_values_by_number[3] = +{ + { "PS_Invalid", "RPC__WIFI_POWER_SAVE__PS_Invalid", 0 }, + { "MIN_MODEM", "RPC__WIFI_POWER_SAVE__MIN_MODEM", 1 }, + { "MAX_MODEM", "RPC__WIFI_POWER_SAVE__MAX_MODEM", 2 }, +}; +static const ProtobufCIntRange rpc__wifi_power_save__value_ranges[] = { +{0, 0},{0, 3} +}; +static const ProtobufCEnumValueIndex rpc__wifi_power_save__enum_values_by_name[3] = +{ + { "MAX_MODEM", 2 }, + { "MIN_MODEM", 1 }, + { "PS_Invalid", 0 }, +}; +const ProtobufCEnumDescriptor rpc__wifi_power_save__descriptor = +{ + PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, + "Rpc_WifiPowerSave", + "Rpc_WifiPowerSave", + "RpcWifiPowerSave", + "", + 3, + rpc__wifi_power_save__enum_values_by_number, + 3, + rpc__wifi_power_save__enum_values_by_name, + 1, + rpc__wifi_power_save__value_ranges, + NULL,NULL,NULL,NULL /* reserved[1234] */ +}; +static const ProtobufCEnumValue rpc__wifi_sec_prot__enum_values_by_number[8] = +{ + { "Open", "RPC__WIFI_SEC_PROT__Open", 0 }, + { "WEP", "RPC__WIFI_SEC_PROT__WEP", 1 }, + { "WPA_PSK", "RPC__WIFI_SEC_PROT__WPA_PSK", 2 }, + { "WPA2_PSK", "RPC__WIFI_SEC_PROT__WPA2_PSK", 3 }, + { "WPA_WPA2_PSK", "RPC__WIFI_SEC_PROT__WPA_WPA2_PSK", 4 }, + { "WPA2_ENTERPRISE", "RPC__WIFI_SEC_PROT__WPA2_ENTERPRISE", 5 }, + { "WPA3_PSK", "RPC__WIFI_SEC_PROT__WPA3_PSK", 6 }, + { "WPA2_WPA3_PSK", "RPC__WIFI_SEC_PROT__WPA2_WPA3_PSK", 7 }, +}; +static const ProtobufCIntRange rpc__wifi_sec_prot__value_ranges[] = { +{0, 0},{0, 8} +}; +static const ProtobufCEnumValueIndex rpc__wifi_sec_prot__enum_values_by_name[8] = +{ + { "Open", 0 }, + { "WEP", 1 }, + { "WPA2_ENTERPRISE", 5 }, + { "WPA2_PSK", 3 }, + { "WPA2_WPA3_PSK", 7 }, + { "WPA3_PSK", 6 }, + { "WPA_PSK", 2 }, + { "WPA_WPA2_PSK", 4 }, +}; +const ProtobufCEnumDescriptor rpc__wifi_sec_prot__descriptor = +{ + PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, + "Rpc_WifiSecProt", + "Rpc_WifiSecProt", + "RpcWifiSecProt", + "", + 8, + rpc__wifi_sec_prot__enum_values_by_number, + 8, + rpc__wifi_sec_prot__enum_values_by_name, + 1, + rpc__wifi_sec_prot__value_ranges, + NULL,NULL,NULL,NULL /* reserved[1234] */ +}; +static const ProtobufCEnumValue rpc__status__enum_values_by_number[6] = +{ + { "Connected", "RPC__STATUS__Connected", 0 }, + { "Not_Connected", "RPC__STATUS__Not_Connected", 1 }, + { "No_AP_Found", "RPC__STATUS__No_AP_Found", 2 }, + { "Connection_Fail", "RPC__STATUS__Connection_Fail", 3 }, + { "Invalid_Argument", "RPC__STATUS__Invalid_Argument", 4 }, + { "Out_Of_Range", "RPC__STATUS__Out_Of_Range", 5 }, +}; +static const ProtobufCIntRange rpc__status__value_ranges[] = { +{0, 0},{0, 6} +}; +static const ProtobufCEnumValueIndex rpc__status__enum_values_by_name[6] = +{ + { "Connected", 0 }, + { "Connection_Fail", 3 }, + { "Invalid_Argument", 4 }, + { "No_AP_Found", 2 }, + { "Not_Connected", 1 }, + { "Out_Of_Range", 5 }, +}; +const ProtobufCEnumDescriptor rpc__status__descriptor = +{ + PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, + "Rpc_Status", + "Rpc_Status", + "RpcStatus", + "", + 6, + rpc__status__enum_values_by_number, + 6, + rpc__status__enum_values_by_name, + 1, + rpc__status__value_ranges, + NULL,NULL,NULL,NULL /* reserved[1234] */ +}; +static const ProtobufCEnumValue rpc_type__enum_values_by_number[5] = +{ + { "MsgType_Invalid", "RPC_TYPE__MsgType_Invalid", 0 }, + { "Req", "RPC_TYPE__Req", 1 }, + { "Resp", "RPC_TYPE__Resp", 2 }, + { "Event", "RPC_TYPE__Event", 3 }, + { "MsgType_Max", "RPC_TYPE__MsgType_Max", 4 }, +}; +static const ProtobufCIntRange rpc_type__value_ranges[] = { +{0, 0},{0, 5} +}; +static const ProtobufCEnumValueIndex rpc_type__enum_values_by_name[5] = +{ + { "Event", 3 }, + { "MsgType_Invalid", 0 }, + { "MsgType_Max", 4 }, + { "Req", 1 }, + { "Resp", 2 }, +}; +const ProtobufCEnumDescriptor rpc_type__descriptor = +{ + PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, + "RpcType", + "RpcType", + "RpcType", + "", + 5, + rpc_type__enum_values_by_number, + 5, + rpc_type__enum_values_by_name, + 1, + rpc_type__value_ranges, + NULL,NULL,NULL,NULL /* reserved[1234] */ +}; +static const ProtobufCEnumValue rpc_id__enum_values_by_number[183] = +{ + { "MsgId_Invalid", "RPC_ID__MsgId_Invalid", 0 }, + { "Req_Base", "RPC_ID__Req_Base", 256 }, + { "Req_GetMACAddress", "RPC_ID__Req_GetMACAddress", 257 }, + { "Req_SetMacAddress", "RPC_ID__Req_SetMacAddress", 258 }, + { "Req_GetWifiMode", "RPC_ID__Req_GetWifiMode", 259 }, + { "Req_SetWifiMode", "RPC_ID__Req_SetWifiMode", 260 }, + { "Req_WifiSetPs", "RPC_ID__Req_WifiSetPs", 270 }, + { "Req_WifiGetPs", "RPC_ID__Req_WifiGetPs", 271 }, + { "Req_OTABegin", "RPC_ID__Req_OTABegin", 272 }, + { "Req_OTAWrite", "RPC_ID__Req_OTAWrite", 273 }, + { "Req_OTAEnd", "RPC_ID__Req_OTAEnd", 274 }, + { "Req_WifiSetMaxTxPower", "RPC_ID__Req_WifiSetMaxTxPower", 275 }, + { "Req_WifiGetMaxTxPower", "RPC_ID__Req_WifiGetMaxTxPower", 276 }, + { "Req_ConfigHeartbeat", "RPC_ID__Req_ConfigHeartbeat", 277 }, + { "Req_WifiInit", "RPC_ID__Req_WifiInit", 278 }, + { "Req_WifiDeinit", "RPC_ID__Req_WifiDeinit", 279 }, + { "Req_WifiStart", "RPC_ID__Req_WifiStart", 280 }, + { "Req_WifiStop", "RPC_ID__Req_WifiStop", 281 }, + { "Req_WifiConnect", "RPC_ID__Req_WifiConnect", 282 }, + { "Req_WifiDisconnect", "RPC_ID__Req_WifiDisconnect", 283 }, + { "Req_WifiSetConfig", "RPC_ID__Req_WifiSetConfig", 284 }, + { "Req_WifiGetConfig", "RPC_ID__Req_WifiGetConfig", 285 }, + { "Req_WifiScanStart", "RPC_ID__Req_WifiScanStart", 286 }, + { "Req_WifiScanStop", "RPC_ID__Req_WifiScanStop", 287 }, + { "Req_WifiScanGetApNum", "RPC_ID__Req_WifiScanGetApNum", 288 }, + { "Req_WifiScanGetApRecords", "RPC_ID__Req_WifiScanGetApRecords", 289 }, + { "Req_WifiClearApList", "RPC_ID__Req_WifiClearApList", 290 }, + { "Req_WifiRestore", "RPC_ID__Req_WifiRestore", 291 }, + { "Req_WifiClearFastConnect", "RPC_ID__Req_WifiClearFastConnect", 292 }, + { "Req_WifiDeauthSta", "RPC_ID__Req_WifiDeauthSta", 293 }, + { "Req_WifiStaGetApInfo", "RPC_ID__Req_WifiStaGetApInfo", 294 }, + { "Req_WifiSetProtocol", "RPC_ID__Req_WifiSetProtocol", 297 }, + { "Req_WifiGetProtocol", "RPC_ID__Req_WifiGetProtocol", 298 }, + { "Req_WifiSetBandwidth", "RPC_ID__Req_WifiSetBandwidth", 299 }, + { "Req_WifiGetBandwidth", "RPC_ID__Req_WifiGetBandwidth", 300 }, + { "Req_WifiSetChannel", "RPC_ID__Req_WifiSetChannel", 301 }, + { "Req_WifiGetChannel", "RPC_ID__Req_WifiGetChannel", 302 }, + { "Req_WifiSetCountry", "RPC_ID__Req_WifiSetCountry", 303 }, + { "Req_WifiGetCountry", "RPC_ID__Req_WifiGetCountry", 304 }, + { "Req_WifiSetPromiscuous", "RPC_ID__Req_WifiSetPromiscuous", 305 }, + { "Req_WifiGetPromiscuous", "RPC_ID__Req_WifiGetPromiscuous", 306 }, + { "Req_WifiSetPromiscuousFilter", "RPC_ID__Req_WifiSetPromiscuousFilter", 307 }, + { "Req_WifiGetPromiscuousFilter", "RPC_ID__Req_WifiGetPromiscuousFilter", 308 }, + { "Req_WifiSetPromiscuousCtrlFilter", "RPC_ID__Req_WifiSetPromiscuousCtrlFilter", 309 }, + { "Req_WifiGetPromiscuousCtrlFilter", "RPC_ID__Req_WifiGetPromiscuousCtrlFilter", 310 }, + { "Req_WifiApGetStaList", "RPC_ID__Req_WifiApGetStaList", 311 }, + { "Req_WifiApGetStaAid", "RPC_ID__Req_WifiApGetStaAid", 312 }, + { "Req_WifiSetStorage", "RPC_ID__Req_WifiSetStorage", 313 }, + { "Req_WifiSetVendorIe", "RPC_ID__Req_WifiSetVendorIe", 314 }, + { "Req_WifiSetEventMask", "RPC_ID__Req_WifiSetEventMask", 315 }, + { "Req_WifiGetEventMask", "RPC_ID__Req_WifiGetEventMask", 316 }, + { "Req_Wifi80211Tx", "RPC_ID__Req_Wifi80211Tx", 317 }, + { "Req_WifiSetCsiConfig", "RPC_ID__Req_WifiSetCsiConfig", 318 }, + { "Req_WifiSetCsi", "RPC_ID__Req_WifiSetCsi", 319 }, + { "Req_WifiSetAntGpio", "RPC_ID__Req_WifiSetAntGpio", 320 }, + { "Req_WifiGetAntGpio", "RPC_ID__Req_WifiGetAntGpio", 321 }, + { "Req_WifiSetAnt", "RPC_ID__Req_WifiSetAnt", 322 }, + { "Req_WifiGetAnt", "RPC_ID__Req_WifiGetAnt", 323 }, + { "Req_WifiGetTsfTime", "RPC_ID__Req_WifiGetTsfTime", 324 }, + { "Req_WifiSetInactiveTime", "RPC_ID__Req_WifiSetInactiveTime", 325 }, + { "Req_WifiGetInactiveTime", "RPC_ID__Req_WifiGetInactiveTime", 326 }, + { "Req_WifiStatisDump", "RPC_ID__Req_WifiStatisDump", 327 }, + { "Req_WifiSetRssiThreshold", "RPC_ID__Req_WifiSetRssiThreshold", 328 }, + { "Req_WifiFtmInitiateSession", "RPC_ID__Req_WifiFtmInitiateSession", 329 }, + { "Req_WifiFtmEndSession", "RPC_ID__Req_WifiFtmEndSession", 330 }, + { "Req_WifiFtmRespSetOffset", "RPC_ID__Req_WifiFtmRespSetOffset", 331 }, + { "Req_WifiConfig11bRate", "RPC_ID__Req_WifiConfig11bRate", 332 }, + { "Req_WifiConnectionlessModuleSetWakeInterval", "RPC_ID__Req_WifiConnectionlessModuleSetWakeInterval", 333 }, + { "Req_WifiSetCountryCode", "RPC_ID__Req_WifiSetCountryCode", 334 }, + { "Req_WifiGetCountryCode", "RPC_ID__Req_WifiGetCountryCode", 335 }, + { "Req_WifiConfig80211TxRate", "RPC_ID__Req_WifiConfig80211TxRate", 336 }, + { "Req_WifiDisablePmfConfig", "RPC_ID__Req_WifiDisablePmfConfig", 337 }, + { "Req_WifiStaGetAid", "RPC_ID__Req_WifiStaGetAid", 338 }, + { "Req_WifiStaGetNegotiatedPhymode", "RPC_ID__Req_WifiStaGetNegotiatedPhymode", 339 }, + { "Req_WifiSetDynamicCs", "RPC_ID__Req_WifiSetDynamicCs", 340 }, + { "Req_WifiStaGetRssi", "RPC_ID__Req_WifiStaGetRssi", 341 }, + { "Req_WifiSetProtocols", "RPC_ID__Req_WifiSetProtocols", 342 }, + { "Req_WifiGetProtocols", "RPC_ID__Req_WifiGetProtocols", 343 }, + { "Req_WifiSetBandwidths", "RPC_ID__Req_WifiSetBandwidths", 344 }, + { "Req_WifiGetBandwidths", "RPC_ID__Req_WifiGetBandwidths", 345 }, + { "Req_WifiSetBand", "RPC_ID__Req_WifiSetBand", 346 }, + { "Req_WifiGetBand", "RPC_ID__Req_WifiGetBand", 347 }, + { "Req_WifiSetBandMode", "RPC_ID__Req_WifiSetBandMode", 348 }, + { "Req_WifiGetBandMode", "RPC_ID__Req_WifiGetBandMode", 349 }, + { "Req_GetCoprocessorFwVersion", "RPC_ID__Req_GetCoprocessorFwVersion", 350 }, + { "Req_WifiScanGetApRecord", "RPC_ID__Req_WifiScanGetApRecord", 351 }, + { "Req_Max", "RPC_ID__Req_Max", 352 }, + { "Resp_Base", "RPC_ID__Resp_Base", 512 }, + { "Resp_GetMACAddress", "RPC_ID__Resp_GetMACAddress", 513 }, + { "Resp_SetMacAddress", "RPC_ID__Resp_SetMacAddress", 514 }, + { "Resp_GetWifiMode", "RPC_ID__Resp_GetWifiMode", 515 }, + { "Resp_SetWifiMode", "RPC_ID__Resp_SetWifiMode", 516 }, + { "Resp_WifiSetPs", "RPC_ID__Resp_WifiSetPs", 526 }, + { "Resp_WifiGetPs", "RPC_ID__Resp_WifiGetPs", 527 }, + { "Resp_OTABegin", "RPC_ID__Resp_OTABegin", 528 }, + { "Resp_OTAWrite", "RPC_ID__Resp_OTAWrite", 529 }, + { "Resp_OTAEnd", "RPC_ID__Resp_OTAEnd", 530 }, + { "Resp_WifiSetMaxTxPower", "RPC_ID__Resp_WifiSetMaxTxPower", 531 }, + { "Resp_WifiGetMaxTxPower", "RPC_ID__Resp_WifiGetMaxTxPower", 532 }, + { "Resp_ConfigHeartbeat", "RPC_ID__Resp_ConfigHeartbeat", 533 }, + { "Resp_WifiInit", "RPC_ID__Resp_WifiInit", 534 }, + { "Resp_WifiDeinit", "RPC_ID__Resp_WifiDeinit", 535 }, + { "Resp_WifiStart", "RPC_ID__Resp_WifiStart", 536 }, + { "Resp_WifiStop", "RPC_ID__Resp_WifiStop", 537 }, + { "Resp_WifiConnect", "RPC_ID__Resp_WifiConnect", 538 }, + { "Resp_WifiDisconnect", "RPC_ID__Resp_WifiDisconnect", 539 }, + { "Resp_WifiSetConfig", "RPC_ID__Resp_WifiSetConfig", 540 }, + { "Resp_WifiGetConfig", "RPC_ID__Resp_WifiGetConfig", 541 }, + { "Resp_WifiScanStart", "RPC_ID__Resp_WifiScanStart", 542 }, + { "Resp_WifiScanStop", "RPC_ID__Resp_WifiScanStop", 543 }, + { "Resp_WifiScanGetApNum", "RPC_ID__Resp_WifiScanGetApNum", 544 }, + { "Resp_WifiScanGetApRecords", "RPC_ID__Resp_WifiScanGetApRecords", 545 }, + { "Resp_WifiClearApList", "RPC_ID__Resp_WifiClearApList", 546 }, + { "Resp_WifiRestore", "RPC_ID__Resp_WifiRestore", 547 }, + { "Resp_WifiClearFastConnect", "RPC_ID__Resp_WifiClearFastConnect", 548 }, + { "Resp_WifiDeauthSta", "RPC_ID__Resp_WifiDeauthSta", 549 }, + { "Resp_WifiStaGetApInfo", "RPC_ID__Resp_WifiStaGetApInfo", 550 }, + { "Resp_WifiSetProtocol", "RPC_ID__Resp_WifiSetProtocol", 553 }, + { "Resp_WifiGetProtocol", "RPC_ID__Resp_WifiGetProtocol", 554 }, + { "Resp_WifiSetBandwidth", "RPC_ID__Resp_WifiSetBandwidth", 555 }, + { "Resp_WifiGetBandwidth", "RPC_ID__Resp_WifiGetBandwidth", 556 }, + { "Resp_WifiSetChannel", "RPC_ID__Resp_WifiSetChannel", 557 }, + { "Resp_WifiGetChannel", "RPC_ID__Resp_WifiGetChannel", 558 }, + { "Resp_WifiSetCountry", "RPC_ID__Resp_WifiSetCountry", 559 }, + { "Resp_WifiGetCountry", "RPC_ID__Resp_WifiGetCountry", 560 }, + { "Resp_WifiSetPromiscuous", "RPC_ID__Resp_WifiSetPromiscuous", 561 }, + { "Resp_WifiGetPromiscuous", "RPC_ID__Resp_WifiGetPromiscuous", 562 }, + { "Resp_WifiSetPromiscuousFilter", "RPC_ID__Resp_WifiSetPromiscuousFilter", 563 }, + { "Resp_WifiGetPromiscuousFilter", "RPC_ID__Resp_WifiGetPromiscuousFilter", 564 }, + { "Resp_WifiSetPromiscuousCtrlFilter", "RPC_ID__Resp_WifiSetPromiscuousCtrlFilter", 565 }, + { "Resp_WifiGetPromiscuousCtrlFilter", "RPC_ID__Resp_WifiGetPromiscuousCtrlFilter", 566 }, + { "Resp_WifiApGetStaList", "RPC_ID__Resp_WifiApGetStaList", 567 }, + { "Resp_WifiApGetStaAid", "RPC_ID__Resp_WifiApGetStaAid", 568 }, + { "Resp_WifiSetStorage", "RPC_ID__Resp_WifiSetStorage", 569 }, + { "Resp_WifiSetVendorIe", "RPC_ID__Resp_WifiSetVendorIe", 570 }, + { "Resp_WifiSetEventMask", "RPC_ID__Resp_WifiSetEventMask", 571 }, + { "Resp_WifiGetEventMask", "RPC_ID__Resp_WifiGetEventMask", 572 }, + { "Resp_Wifi80211Tx", "RPC_ID__Resp_Wifi80211Tx", 573 }, + { "Resp_WifiSetCsiConfig", "RPC_ID__Resp_WifiSetCsiConfig", 574 }, + { "Resp_WifiSetCsi", "RPC_ID__Resp_WifiSetCsi", 575 }, + { "Resp_WifiSetAntGpio", "RPC_ID__Resp_WifiSetAntGpio", 576 }, + { "Resp_WifiGetAntGpio", "RPC_ID__Resp_WifiGetAntGpio", 577 }, + { "Resp_WifiSetAnt", "RPC_ID__Resp_WifiSetAnt", 578 }, + { "Resp_WifiGetAnt", "RPC_ID__Resp_WifiGetAnt", 579 }, + { "Resp_WifiGetTsfTime", "RPC_ID__Resp_WifiGetTsfTime", 580 }, + { "Resp_WifiSetInactiveTime", "RPC_ID__Resp_WifiSetInactiveTime", 581 }, + { "Resp_WifiGetInactiveTime", "RPC_ID__Resp_WifiGetInactiveTime", 582 }, + { "Resp_WifiStatisDump", "RPC_ID__Resp_WifiStatisDump", 583 }, + { "Resp_WifiSetRssiThreshold", "RPC_ID__Resp_WifiSetRssiThreshold", 584 }, + { "Resp_WifiFtmInitiateSession", "RPC_ID__Resp_WifiFtmInitiateSession", 585 }, + { "Resp_WifiFtmEndSession", "RPC_ID__Resp_WifiFtmEndSession", 586 }, + { "Resp_WifiFtmRespSetOffset", "RPC_ID__Resp_WifiFtmRespSetOffset", 587 }, + { "Resp_WifiConfig11bRate", "RPC_ID__Resp_WifiConfig11bRate", 588 }, + { "Resp_WifiConnectionlessModuleSetWakeInterval", "RPC_ID__Resp_WifiConnectionlessModuleSetWakeInterval", 589 }, + { "Resp_WifiSetCountryCode", "RPC_ID__Resp_WifiSetCountryCode", 590 }, + { "Resp_WifiGetCountryCode", "RPC_ID__Resp_WifiGetCountryCode", 591 }, + { "Resp_WifiConfig80211TxRate", "RPC_ID__Resp_WifiConfig80211TxRate", 592 }, + { "Resp_WifiDisablePmfConfig", "RPC_ID__Resp_WifiDisablePmfConfig", 593 }, + { "Resp_WifiStaGetAid", "RPC_ID__Resp_WifiStaGetAid", 594 }, + { "Resp_WifiStaGetNegotiatedPhymode", "RPC_ID__Resp_WifiStaGetNegotiatedPhymode", 595 }, + { "Resp_WifiSetDynamicCs", "RPC_ID__Resp_WifiSetDynamicCs", 596 }, + { "Resp_WifiStaGetRssi", "RPC_ID__Resp_WifiStaGetRssi", 597 }, + { "Resp_WifiSetProtocols", "RPC_ID__Resp_WifiSetProtocols", 598 }, + { "Resp_WifiGetProtocols", "RPC_ID__Resp_WifiGetProtocols", 599 }, + { "Resp_WifiSetBandwidths", "RPC_ID__Resp_WifiSetBandwidths", 600 }, + { "Resp_WifiGetBandwidths", "RPC_ID__Resp_WifiGetBandwidths", 601 }, + { "Resp_WifiSetBand", "RPC_ID__Resp_WifiSetBand", 602 }, + { "Resp_WifiGetBand", "RPC_ID__Resp_WifiGetBand", 603 }, + { "Resp_WifiSetBandMode", "RPC_ID__Resp_WifiSetBandMode", 604 }, + { "Resp_WifiGetBandMode", "RPC_ID__Resp_WifiGetBandMode", 605 }, + { "Resp_GetCoprocessorFwVersion", "RPC_ID__Resp_GetCoprocessorFwVersion", 606 }, + { "Resp_WifiScanGetApRecord", "RPC_ID__Resp_WifiScanGetApRecord", 607 }, + { "Resp_Max", "RPC_ID__Resp_Max", 608 }, + { "Event_Base", "RPC_ID__Event_Base", 768 }, + { "Event_ESPInit", "RPC_ID__Event_ESPInit", 769 }, + { "Event_Heartbeat", "RPC_ID__Event_Heartbeat", 770 }, + { "Event_AP_StaConnected", "RPC_ID__Event_AP_StaConnected", 771 }, + { "Event_AP_StaDisconnected", "RPC_ID__Event_AP_StaDisconnected", 772 }, + { "Event_WifiEventNoArgs", "RPC_ID__Event_WifiEventNoArgs", 773 }, + { "Event_StaScanDone", "RPC_ID__Event_StaScanDone", 774 }, + { "Event_StaConnected", "RPC_ID__Event_StaConnected", 775 }, + { "Event_StaDisconnected", "RPC_ID__Event_StaDisconnected", 776 }, + { "Event_Max", "RPC_ID__Event_Max", 777 }, +}; +static const ProtobufCIntRange rpc_id__value_ranges[] = { +{0, 0},{256, 1},{270, 6},{297, 31},{512, 87},{526, 92},{553, 117},{768, 173},{0, 183} +}; +static const ProtobufCEnumValueIndex rpc_id__enum_values_by_name[183] = +{ + { "Event_AP_StaConnected", 176 }, + { "Event_AP_StaDisconnected", 177 }, + { "Event_Base", 173 }, + { "Event_ESPInit", 174 }, + { "Event_Heartbeat", 175 }, + { "Event_Max", 182 }, + { "Event_StaConnected", 180 }, + { "Event_StaDisconnected", 181 }, + { "Event_StaScanDone", 179 }, + { "Event_WifiEventNoArgs", 178 }, + { "MsgId_Invalid", 0 }, + { "Req_Base", 1 }, + { "Req_ConfigHeartbeat", 13 }, + { "Req_GetCoprocessorFwVersion", 84 }, + { "Req_GetMACAddress", 2 }, + { "Req_GetWifiMode", 4 }, + { "Req_Max", 86 }, + { "Req_OTABegin", 8 }, + { "Req_OTAEnd", 10 }, + { "Req_OTAWrite", 9 }, + { "Req_SetMacAddress", 3 }, + { "Req_SetWifiMode", 5 }, + { "Req_Wifi80211Tx", 51 }, + { "Req_WifiApGetStaAid", 46 }, + { "Req_WifiApGetStaList", 45 }, + { "Req_WifiClearApList", 26 }, + { "Req_WifiClearFastConnect", 28 }, + { "Req_WifiConfig11bRate", 66 }, + { "Req_WifiConfig80211TxRate", 70 }, + { "Req_WifiConnect", 18 }, + { "Req_WifiConnectionlessModuleSetWakeInterval", 67 }, + { "Req_WifiDeauthSta", 29 }, + { "Req_WifiDeinit", 15 }, + { "Req_WifiDisablePmfConfig", 71 }, + { "Req_WifiDisconnect", 19 }, + { "Req_WifiFtmEndSession", 64 }, + { "Req_WifiFtmInitiateSession", 63 }, + { "Req_WifiFtmRespSetOffset", 65 }, + { "Req_WifiGetAnt", 57 }, + { "Req_WifiGetAntGpio", 55 }, + { "Req_WifiGetBand", 81 }, + { "Req_WifiGetBandMode", 83 }, + { "Req_WifiGetBandwidth", 34 }, + { "Req_WifiGetBandwidths", 79 }, + { "Req_WifiGetChannel", 36 }, + { "Req_WifiGetConfig", 21 }, + { "Req_WifiGetCountry", 38 }, + { "Req_WifiGetCountryCode", 69 }, + { "Req_WifiGetEventMask", 50 }, + { "Req_WifiGetInactiveTime", 60 }, + { "Req_WifiGetMaxTxPower", 12 }, + { "Req_WifiGetPromiscuous", 40 }, + { "Req_WifiGetPromiscuousCtrlFilter", 44 }, + { "Req_WifiGetPromiscuousFilter", 42 }, + { "Req_WifiGetProtocol", 32 }, + { "Req_WifiGetProtocols", 77 }, + { "Req_WifiGetPs", 7 }, + { "Req_WifiGetTsfTime", 58 }, + { "Req_WifiInit", 14 }, + { "Req_WifiRestore", 27 }, + { "Req_WifiScanGetApNum", 24 }, + { "Req_WifiScanGetApRecord", 85 }, + { "Req_WifiScanGetApRecords", 25 }, + { "Req_WifiScanStart", 22 }, + { "Req_WifiScanStop", 23 }, + { "Req_WifiSetAnt", 56 }, + { "Req_WifiSetAntGpio", 54 }, + { "Req_WifiSetBand", 80 }, + { "Req_WifiSetBandMode", 82 }, + { "Req_WifiSetBandwidth", 33 }, + { "Req_WifiSetBandwidths", 78 }, + { "Req_WifiSetChannel", 35 }, + { "Req_WifiSetConfig", 20 }, + { "Req_WifiSetCountry", 37 }, + { "Req_WifiSetCountryCode", 68 }, + { "Req_WifiSetCsi", 53 }, + { "Req_WifiSetCsiConfig", 52 }, + { "Req_WifiSetDynamicCs", 74 }, + { "Req_WifiSetEventMask", 49 }, + { "Req_WifiSetInactiveTime", 59 }, + { "Req_WifiSetMaxTxPower", 11 }, + { "Req_WifiSetPromiscuous", 39 }, + { "Req_WifiSetPromiscuousCtrlFilter", 43 }, + { "Req_WifiSetPromiscuousFilter", 41 }, + { "Req_WifiSetProtocol", 31 }, + { "Req_WifiSetProtocols", 76 }, + { "Req_WifiSetPs", 6 }, + { "Req_WifiSetRssiThreshold", 62 }, + { "Req_WifiSetStorage", 47 }, + { "Req_WifiSetVendorIe", 48 }, + { "Req_WifiStaGetAid", 72 }, + { "Req_WifiStaGetApInfo", 30 }, + { "Req_WifiStaGetNegotiatedPhymode", 73 }, + { "Req_WifiStaGetRssi", 75 }, + { "Req_WifiStart", 16 }, + { "Req_WifiStatisDump", 61 }, + { "Req_WifiStop", 17 }, + { "Resp_Base", 87 }, + { "Resp_ConfigHeartbeat", 99 }, + { "Resp_GetCoprocessorFwVersion", 170 }, + { "Resp_GetMACAddress", 88 }, + { "Resp_GetWifiMode", 90 }, + { "Resp_Max", 172 }, + { "Resp_OTABegin", 94 }, + { "Resp_OTAEnd", 96 }, + { "Resp_OTAWrite", 95 }, + { "Resp_SetMacAddress", 89 }, + { "Resp_SetWifiMode", 91 }, + { "Resp_Wifi80211Tx", 137 }, + { "Resp_WifiApGetStaAid", 132 }, + { "Resp_WifiApGetStaList", 131 }, + { "Resp_WifiClearApList", 112 }, + { "Resp_WifiClearFastConnect", 114 }, + { "Resp_WifiConfig11bRate", 152 }, + { "Resp_WifiConfig80211TxRate", 156 }, + { "Resp_WifiConnect", 104 }, + { "Resp_WifiConnectionlessModuleSetWakeInterval", 153 }, + { "Resp_WifiDeauthSta", 115 }, + { "Resp_WifiDeinit", 101 }, + { "Resp_WifiDisablePmfConfig", 157 }, + { "Resp_WifiDisconnect", 105 }, + { "Resp_WifiFtmEndSession", 150 }, + { "Resp_WifiFtmInitiateSession", 149 }, + { "Resp_WifiFtmRespSetOffset", 151 }, + { "Resp_WifiGetAnt", 143 }, + { "Resp_WifiGetAntGpio", 141 }, + { "Resp_WifiGetBand", 167 }, + { "Resp_WifiGetBandMode", 169 }, + { "Resp_WifiGetBandwidth", 120 }, + { "Resp_WifiGetBandwidths", 165 }, + { "Resp_WifiGetChannel", 122 }, + { "Resp_WifiGetConfig", 107 }, + { "Resp_WifiGetCountry", 124 }, + { "Resp_WifiGetCountryCode", 155 }, + { "Resp_WifiGetEventMask", 136 }, + { "Resp_WifiGetInactiveTime", 146 }, + { "Resp_WifiGetMaxTxPower", 98 }, + { "Resp_WifiGetPromiscuous", 126 }, + { "Resp_WifiGetPromiscuousCtrlFilter", 130 }, + { "Resp_WifiGetPromiscuousFilter", 128 }, + { "Resp_WifiGetProtocol", 118 }, + { "Resp_WifiGetProtocols", 163 }, + { "Resp_WifiGetPs", 93 }, + { "Resp_WifiGetTsfTime", 144 }, + { "Resp_WifiInit", 100 }, + { "Resp_WifiRestore", 113 }, + { "Resp_WifiScanGetApNum", 110 }, + { "Resp_WifiScanGetApRecord", 171 }, + { "Resp_WifiScanGetApRecords", 111 }, + { "Resp_WifiScanStart", 108 }, + { "Resp_WifiScanStop", 109 }, + { "Resp_WifiSetAnt", 142 }, + { "Resp_WifiSetAntGpio", 140 }, + { "Resp_WifiSetBand", 166 }, + { "Resp_WifiSetBandMode", 168 }, + { "Resp_WifiSetBandwidth", 119 }, + { "Resp_WifiSetBandwidths", 164 }, + { "Resp_WifiSetChannel", 121 }, + { "Resp_WifiSetConfig", 106 }, + { "Resp_WifiSetCountry", 123 }, + { "Resp_WifiSetCountryCode", 154 }, + { "Resp_WifiSetCsi", 139 }, + { "Resp_WifiSetCsiConfig", 138 }, + { "Resp_WifiSetDynamicCs", 160 }, + { "Resp_WifiSetEventMask", 135 }, + { "Resp_WifiSetInactiveTime", 145 }, + { "Resp_WifiSetMaxTxPower", 97 }, + { "Resp_WifiSetPromiscuous", 125 }, + { "Resp_WifiSetPromiscuousCtrlFilter", 129 }, + { "Resp_WifiSetPromiscuousFilter", 127 }, + { "Resp_WifiSetProtocol", 117 }, + { "Resp_WifiSetProtocols", 162 }, + { "Resp_WifiSetPs", 92 }, + { "Resp_WifiSetRssiThreshold", 148 }, + { "Resp_WifiSetStorage", 133 }, + { "Resp_WifiSetVendorIe", 134 }, + { "Resp_WifiStaGetAid", 158 }, + { "Resp_WifiStaGetApInfo", 116 }, + { "Resp_WifiStaGetNegotiatedPhymode", 159 }, + { "Resp_WifiStaGetRssi", 161 }, + { "Resp_WifiStart", 102 }, + { "Resp_WifiStatisDump", 147 }, + { "Resp_WifiStop", 103 }, +}; +const ProtobufCEnumDescriptor rpc_id__descriptor = +{ + PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, + "RpcId", + "RpcId", + "RpcId", + "", + 183, + rpc_id__enum_values_by_number, + 183, + rpc_id__enum_values_by_name, + 8, + rpc_id__value_ranges, + NULL,NULL,NULL,NULL /* reserved[1234] */ +}; diff --git a/resources/espressif__esp_hosted/common/proto/esp_hosted_rpc.pb-c.h b/resources/espressif__esp_hosted/common/proto/esp_hosted_rpc.pb-c.h new file mode 100644 index 0000000..03a11fc --- /dev/null +++ b/resources/espressif__esp_hosted/common/proto/esp_hosted_rpc.pb-c.h @@ -0,0 +1,7219 @@ +/* Generated by the protocol buffer compiler. DO NOT EDIT! */ +/* Generated from: esp_hosted_rpc.proto */ + +#ifndef PROTOBUF_C_esp_5fhosted_5frpc_2eproto__INCLUDED +#define PROTOBUF_C_esp_5fhosted_5frpc_2eproto__INCLUDED + +#include + +PROTOBUF_C__BEGIN_DECLS + +#if PROTOBUF_C_VERSION_NUMBER < 1003000 +# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers. +#elif 1004001 < PROTOBUF_C_MIN_COMPILER_VERSION +# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c. +#endif + + +typedef struct WifiInitConfig WifiInitConfig; +typedef struct WifiCountry WifiCountry; +typedef struct WifiActiveScanTime WifiActiveScanTime; +typedef struct WifiScanTime WifiScanTime; +typedef struct WifiScanConfig WifiScanConfig; +typedef struct WifiHeApInfo WifiHeApInfo; +typedef struct WifiApRecord WifiApRecord; +typedef struct WifiScanThreshold WifiScanThreshold; +typedef struct WifiPmfConfig WifiPmfConfig; +typedef struct WifiApConfig WifiApConfig; +typedef struct WifiStaConfig WifiStaConfig; +typedef struct WifiConfig WifiConfig; +typedef struct WifiStaInfo WifiStaInfo; +typedef struct WifiStaList WifiStaList; +typedef struct WifiPktRxCtrl WifiPktRxCtrl; +typedef struct WifiPromiscuousPkt WifiPromiscuousPkt; +typedef struct WifiPromiscuousFilter WifiPromiscuousFilter; +typedef struct WifiCsiConfig WifiCsiConfig; +typedef struct WifiCsiInfo WifiCsiInfo; +typedef struct WifiAntGpio WifiAntGpio; +typedef struct WifiAntGpioConfig WifiAntGpioConfig; +typedef struct WifiAntConfig WifiAntConfig; +typedef struct WifiActionTxReq WifiActionTxReq; +typedef struct WifiFtmInitiatorCfg WifiFtmInitiatorCfg; +typedef struct WifiEventStaScanDone WifiEventStaScanDone; +typedef struct WifiEventStaConnected WifiEventStaConnected; +typedef struct WifiEventStaDisconnected WifiEventStaDisconnected; +typedef struct WifiEventStaAuthmodeChange WifiEventStaAuthmodeChange; +typedef struct WifiEventStaWpsErPin WifiEventStaWpsErPin; +typedef struct ApCred ApCred; +typedef struct WifiEventStaWpsErSuccess WifiEventStaWpsErSuccess; +typedef struct WifiEventApProbeReqRx WifiEventApProbeReqRx; +typedef struct WifiEventBssRssiLow WifiEventBssRssiLow; +typedef struct WifiFtmReportEntry WifiFtmReportEntry; +typedef struct WifiEventFtmReport WifiEventFtmReport; +typedef struct WifiEventActionTxStatus WifiEventActionTxStatus; +typedef struct WifiEventRocDone WifiEventRocDone; +typedef struct WifiEventApWpsRgPin WifiEventApWpsRgPin; +typedef struct WifiEventApWpsRgFailReason WifiEventApWpsRgFailReason; +typedef struct WifiEventApWpsRgSuccess WifiEventApWpsRgSuccess; +typedef struct WifiProtocols WifiProtocols; +typedef struct WifiBandwidths WifiBandwidths; +typedef struct ConnectedSTAList ConnectedSTAList; +typedef struct RpcReqGetMacAddress RpcReqGetMacAddress; +typedef struct RpcRespGetMacAddress RpcRespGetMacAddress; +typedef struct RpcReqGetMode RpcReqGetMode; +typedef struct RpcRespGetMode RpcRespGetMode; +typedef struct RpcReqSetMode RpcReqSetMode; +typedef struct RpcRespSetMode RpcRespSetMode; +typedef struct RpcReqGetPs RpcReqGetPs; +typedef struct RpcRespGetPs RpcRespGetPs; +typedef struct RpcReqSetPs RpcReqSetPs; +typedef struct RpcRespSetPs RpcRespSetPs; +typedef struct RpcReqSetMacAddress RpcReqSetMacAddress; +typedef struct RpcRespSetMacAddress RpcRespSetMacAddress; +typedef struct RpcReqOTABegin RpcReqOTABegin; +typedef struct RpcRespOTABegin RpcRespOTABegin; +typedef struct RpcReqOTAWrite RpcReqOTAWrite; +typedef struct RpcRespOTAWrite RpcRespOTAWrite; +typedef struct RpcReqOTAEnd RpcReqOTAEnd; +typedef struct RpcRespOTAEnd RpcRespOTAEnd; +typedef struct RpcReqWifiSetMaxTxPower RpcReqWifiSetMaxTxPower; +typedef struct RpcRespWifiSetMaxTxPower RpcRespWifiSetMaxTxPower; +typedef struct RpcReqWifiGetMaxTxPower RpcReqWifiGetMaxTxPower; +typedef struct RpcRespWifiGetMaxTxPower RpcRespWifiGetMaxTxPower; +typedef struct RpcReqConfigHeartbeat RpcReqConfigHeartbeat; +typedef struct RpcRespConfigHeartbeat RpcRespConfigHeartbeat; +typedef struct RpcReqWifiInit RpcReqWifiInit; +typedef struct RpcRespWifiInit RpcRespWifiInit; +typedef struct RpcReqWifiDeinit RpcReqWifiDeinit; +typedef struct RpcRespWifiDeinit RpcRespWifiDeinit; +typedef struct RpcReqWifiSetConfig RpcReqWifiSetConfig; +typedef struct RpcRespWifiSetConfig RpcRespWifiSetConfig; +typedef struct RpcReqWifiGetConfig RpcReqWifiGetConfig; +typedef struct RpcRespWifiGetConfig RpcRespWifiGetConfig; +typedef struct RpcReqWifiConnect RpcReqWifiConnect; +typedef struct RpcRespWifiConnect RpcRespWifiConnect; +typedef struct RpcReqWifiDisconnect RpcReqWifiDisconnect; +typedef struct RpcRespWifiDisconnect RpcRespWifiDisconnect; +typedef struct RpcReqWifiStart RpcReqWifiStart; +typedef struct RpcRespWifiStart RpcRespWifiStart; +typedef struct RpcReqWifiStop RpcReqWifiStop; +typedef struct RpcRespWifiStop RpcRespWifiStop; +typedef struct RpcReqWifiScanStart RpcReqWifiScanStart; +typedef struct RpcRespWifiScanStart RpcRespWifiScanStart; +typedef struct RpcReqWifiScanStop RpcReqWifiScanStop; +typedef struct RpcRespWifiScanStop RpcRespWifiScanStop; +typedef struct RpcReqWifiScanGetApNum RpcReqWifiScanGetApNum; +typedef struct RpcRespWifiScanGetApNum RpcRespWifiScanGetApNum; +typedef struct RpcReqWifiScanGetApRecords RpcReqWifiScanGetApRecords; +typedef struct RpcRespWifiScanGetApRecords RpcRespWifiScanGetApRecords; +typedef struct RpcReqWifiScanGetApRecord RpcReqWifiScanGetApRecord; +typedef struct RpcRespWifiScanGetApRecord RpcRespWifiScanGetApRecord; +typedef struct RpcReqWifiClearApList RpcReqWifiClearApList; +typedef struct RpcRespWifiClearApList RpcRespWifiClearApList; +typedef struct RpcReqWifiRestore RpcReqWifiRestore; +typedef struct RpcRespWifiRestore RpcRespWifiRestore; +typedef struct RpcReqWifiClearFastConnect RpcReqWifiClearFastConnect; +typedef struct RpcRespWifiClearFastConnect RpcRespWifiClearFastConnect; +typedef struct RpcReqWifiDeauthSta RpcReqWifiDeauthSta; +typedef struct RpcRespWifiDeauthSta RpcRespWifiDeauthSta; +typedef struct RpcReqWifiStaGetApInfo RpcReqWifiStaGetApInfo; +typedef struct RpcRespWifiStaGetApInfo RpcRespWifiStaGetApInfo; +typedef struct RpcReqWifiSetProtocol RpcReqWifiSetProtocol; +typedef struct RpcRespWifiSetProtocol RpcRespWifiSetProtocol; +typedef struct RpcReqWifiGetProtocol RpcReqWifiGetProtocol; +typedef struct RpcRespWifiGetProtocol RpcRespWifiGetProtocol; +typedef struct RpcReqWifiSetBandwidth RpcReqWifiSetBandwidth; +typedef struct RpcRespWifiSetBandwidth RpcRespWifiSetBandwidth; +typedef struct RpcReqWifiGetBandwidth RpcReqWifiGetBandwidth; +typedef struct RpcRespWifiGetBandwidth RpcRespWifiGetBandwidth; +typedef struct RpcReqWifiSetChannel RpcReqWifiSetChannel; +typedef struct RpcRespWifiSetChannel RpcRespWifiSetChannel; +typedef struct RpcReqWifiGetChannel RpcReqWifiGetChannel; +typedef struct RpcRespWifiGetChannel RpcRespWifiGetChannel; +typedef struct RpcReqWifiSetStorage RpcReqWifiSetStorage; +typedef struct RpcRespWifiSetStorage RpcRespWifiSetStorage; +typedef struct RpcReqWifiSetCountryCode RpcReqWifiSetCountryCode; +typedef struct RpcRespWifiSetCountryCode RpcRespWifiSetCountryCode; +typedef struct RpcReqWifiGetCountryCode RpcReqWifiGetCountryCode; +typedef struct RpcRespWifiGetCountryCode RpcRespWifiGetCountryCode; +typedef struct RpcReqWifiSetCountry RpcReqWifiSetCountry; +typedef struct RpcRespWifiSetCountry RpcRespWifiSetCountry; +typedef struct RpcReqWifiGetCountry RpcReqWifiGetCountry; +typedef struct RpcRespWifiGetCountry RpcRespWifiGetCountry; +typedef struct RpcReqWifiApGetStaList RpcReqWifiApGetStaList; +typedef struct RpcRespWifiApGetStaList RpcRespWifiApGetStaList; +typedef struct RpcReqWifiApGetStaAid RpcReqWifiApGetStaAid; +typedef struct RpcReqWifiStaGetNegotiatedPhymode RpcReqWifiStaGetNegotiatedPhymode; +typedef struct RpcRespWifiStaGetNegotiatedPhymode RpcRespWifiStaGetNegotiatedPhymode; +typedef struct RpcRespWifiApGetStaAid RpcRespWifiApGetStaAid; +typedef struct RpcReqWifiStaGetRssi RpcReqWifiStaGetRssi; +typedef struct RpcRespWifiStaGetRssi RpcRespWifiStaGetRssi; +typedef struct RpcReqWifiStaGetAid RpcReqWifiStaGetAid; +typedef struct RpcRespWifiStaGetAid RpcRespWifiStaGetAid; +typedef struct RpcReqWifiSetProtocols RpcReqWifiSetProtocols; +typedef struct RpcRespWifiSetProtocols RpcRespWifiSetProtocols; +typedef struct RpcReqWifiGetProtocols RpcReqWifiGetProtocols; +typedef struct RpcRespWifiGetProtocols RpcRespWifiGetProtocols; +typedef struct RpcReqWifiSetBandwidths RpcReqWifiSetBandwidths; +typedef struct RpcRespWifiSetBandwidths RpcRespWifiSetBandwidths; +typedef struct RpcReqWifiGetBandwidths RpcReqWifiGetBandwidths; +typedef struct RpcRespWifiGetBandwidths RpcRespWifiGetBandwidths; +typedef struct RpcReqWifiSetBand RpcReqWifiSetBand; +typedef struct RpcRespWifiSetBand RpcRespWifiSetBand; +typedef struct RpcReqWifiGetBand RpcReqWifiGetBand; +typedef struct RpcRespWifiGetBand RpcRespWifiGetBand; +typedef struct RpcReqWifiSetBandMode RpcReqWifiSetBandMode; +typedef struct RpcRespWifiSetBandMode RpcRespWifiSetBandMode; +typedef struct RpcReqWifiGetBandMode RpcReqWifiGetBandMode; +typedef struct RpcRespWifiGetBandMode RpcRespWifiGetBandMode; +typedef struct RpcReqGetCoprocessorFwVersion RpcReqGetCoprocessorFwVersion; +typedef struct RpcRespGetCoprocessorFwVersion RpcRespGetCoprocessorFwVersion; +typedef struct RpcEventWifiEventNoArgs RpcEventWifiEventNoArgs; +typedef struct RpcEventESPInit RpcEventESPInit; +typedef struct RpcEventHeartbeat RpcEventHeartbeat; +typedef struct RpcEventAPStaDisconnected RpcEventAPStaDisconnected; +typedef struct RpcEventAPStaConnected RpcEventAPStaConnected; +typedef struct RpcEventStaScanDone RpcEventStaScanDone; +typedef struct RpcEventStaConnected RpcEventStaConnected; +typedef struct RpcEventStaDisconnected RpcEventStaDisconnected; +typedef struct Rpc Rpc; + + +/* --- enums --- */ + +typedef enum _RpcWifiBw { + RPC__WIFI_BW__BW_Invalid = 0, + RPC__WIFI_BW__HT20 = 1, + RPC__WIFI_BW__HT40 = 2 + PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RPC__WIFI_BW) +} RpcWifiBw; +typedef enum _RpcWifiPowerSave { + RPC__WIFI_POWER_SAVE__PS_Invalid = 0, + RPC__WIFI_POWER_SAVE__MIN_MODEM = 1, + RPC__WIFI_POWER_SAVE__MAX_MODEM = 2 + PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RPC__WIFI_POWER_SAVE) +} RpcWifiPowerSave; +typedef enum _RpcWifiSecProt { + RPC__WIFI_SEC_PROT__Open = 0, + RPC__WIFI_SEC_PROT__WEP = 1, + RPC__WIFI_SEC_PROT__WPA_PSK = 2, + RPC__WIFI_SEC_PROT__WPA2_PSK = 3, + RPC__WIFI_SEC_PROT__WPA_WPA2_PSK = 4, + RPC__WIFI_SEC_PROT__WPA2_ENTERPRISE = 5, + RPC__WIFI_SEC_PROT__WPA3_PSK = 6, + RPC__WIFI_SEC_PROT__WPA2_WPA3_PSK = 7 + PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RPC__WIFI_SEC_PROT) +} RpcWifiSecProt; +/* + * enums for Control path + */ +typedef enum _RpcStatus { + RPC__STATUS__Connected = 0, + RPC__STATUS__Not_Connected = 1, + RPC__STATUS__No_AP_Found = 2, + RPC__STATUS__Connection_Fail = 3, + RPC__STATUS__Invalid_Argument = 4, + RPC__STATUS__Out_Of_Range = 5 + PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RPC__STATUS) +} RpcStatus; +typedef enum _RpcType { + RPC_TYPE__MsgType_Invalid = 0, + RPC_TYPE__Req = 1, + RPC_TYPE__Resp = 2, + RPC_TYPE__Event = 3, + RPC_TYPE__MsgType_Max = 4 + PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RPC_TYPE) +} RpcType; +typedef enum _RpcId { + RPC_ID__MsgId_Invalid = 0, + /* + ** Request Msgs * + */ + /* + *0x100 + */ + RPC_ID__Req_Base = 256, + /* + *0x101 + */ + RPC_ID__Req_GetMACAddress = 257, + /* + *0x102 + */ + RPC_ID__Req_SetMacAddress = 258, + /* + *0x103 + */ + RPC_ID__Req_GetWifiMode = 259, + /* + *0x104 + */ + RPC_ID__Req_SetWifiMode = 260, + /* + *0x10e + */ + RPC_ID__Req_WifiSetPs = 270, + /* + *0x10f + */ + RPC_ID__Req_WifiGetPs = 271, + /* + *0x110 + */ + RPC_ID__Req_OTABegin = 272, + /* + *0x111 + */ + RPC_ID__Req_OTAWrite = 273, + /* + *0x112 + */ + RPC_ID__Req_OTAEnd = 274, + /* + *0x113 + */ + RPC_ID__Req_WifiSetMaxTxPower = 275, + /* + *0x114 + */ + RPC_ID__Req_WifiGetMaxTxPower = 276, + /* + *0x115 + */ + RPC_ID__Req_ConfigHeartbeat = 277, + /* + *0x116 + */ + RPC_ID__Req_WifiInit = 278, + /* + *0x117 + */ + RPC_ID__Req_WifiDeinit = 279, + /* + *0x118 + */ + RPC_ID__Req_WifiStart = 280, + /* + *0x119 + */ + RPC_ID__Req_WifiStop = 281, + /* + *0x11a + */ + RPC_ID__Req_WifiConnect = 282, + /* + *0x11b + */ + RPC_ID__Req_WifiDisconnect = 283, + /* + *0x11c + */ + RPC_ID__Req_WifiSetConfig = 284, + /* + *0x11d + */ + RPC_ID__Req_WifiGetConfig = 285, + /* + *0x11e + */ + RPC_ID__Req_WifiScanStart = 286, + /* + *0x11f + */ + RPC_ID__Req_WifiScanStop = 287, + /* + *0x120 + */ + RPC_ID__Req_WifiScanGetApNum = 288, + /* + *0x121 + */ + RPC_ID__Req_WifiScanGetApRecords = 289, + /* + *0x122 + */ + RPC_ID__Req_WifiClearApList = 290, + /* + *0x123 + */ + RPC_ID__Req_WifiRestore = 291, + /* + *0x124 + */ + RPC_ID__Req_WifiClearFastConnect = 292, + /* + *0x125 + */ + RPC_ID__Req_WifiDeauthSta = 293, + /* + *0x126 + */ + RPC_ID__Req_WifiStaGetApInfo = 294, + /* + *Req_WifiSetPs = 295; //0x127 + *Req_WifiGetPs = 296; //0x128 + */ + /* + *0x129 + */ + RPC_ID__Req_WifiSetProtocol = 297, + /* + *0x12a + */ + RPC_ID__Req_WifiGetProtocol = 298, + /* + *0x12b + */ + RPC_ID__Req_WifiSetBandwidth = 299, + /* + *0x12c + */ + RPC_ID__Req_WifiGetBandwidth = 300, + /* + *0x12d + */ + RPC_ID__Req_WifiSetChannel = 301, + /* + *0x12e + */ + RPC_ID__Req_WifiGetChannel = 302, + /* + *0x12f + */ + RPC_ID__Req_WifiSetCountry = 303, + /* + *0x130 + */ + RPC_ID__Req_WifiGetCountry = 304, + /* + * Req_WifiSetPromiscuousRxCb = 305; //0x131 + */ + /* + *0x131 + */ + RPC_ID__Req_WifiSetPromiscuous = 305, + /* + *0x132 + */ + RPC_ID__Req_WifiGetPromiscuous = 306, + /* + *0x133 + */ + RPC_ID__Req_WifiSetPromiscuousFilter = 307, + /* + *0x134 + */ + RPC_ID__Req_WifiGetPromiscuousFilter = 308, + /* + *0x135 + */ + RPC_ID__Req_WifiSetPromiscuousCtrlFilter = 309, + /* + *0x136 + */ + RPC_ID__Req_WifiGetPromiscuousCtrlFilter = 310, + /* + *0x137 + */ + RPC_ID__Req_WifiApGetStaList = 311, + /* + *0x138 + */ + RPC_ID__Req_WifiApGetStaAid = 312, + /* + *0x139 + */ + RPC_ID__Req_WifiSetStorage = 313, + /* + *0x13a + */ + RPC_ID__Req_WifiSetVendorIe = 314, + /* + * Req_WifiSetVendorIeCb = 315; //0x13b + */ + /* + *0x13b + */ + RPC_ID__Req_WifiSetEventMask = 315, + /* + *0x13c + */ + RPC_ID__Req_WifiGetEventMask = 316, + /* + *0x13d + */ + RPC_ID__Req_Wifi80211Tx = 317, + /* + * Req_WifiSetCsiRxCb = 318; //0x13e + */ + /* + *0x13e + */ + RPC_ID__Req_WifiSetCsiConfig = 318, + /* + *0x13f + */ + RPC_ID__Req_WifiSetCsi = 319, + /* + *0x140 + */ + RPC_ID__Req_WifiSetAntGpio = 320, + /* + *0x141 + */ + RPC_ID__Req_WifiGetAntGpio = 321, + /* + *0x142 + */ + RPC_ID__Req_WifiSetAnt = 322, + /* + *0x143 + */ + RPC_ID__Req_WifiGetAnt = 323, + /* + *0x144 + */ + RPC_ID__Req_WifiGetTsfTime = 324, + /* + *0x145 + */ + RPC_ID__Req_WifiSetInactiveTime = 325, + /* + *0x146 + */ + RPC_ID__Req_WifiGetInactiveTime = 326, + /* + *0x147 + */ + RPC_ID__Req_WifiStatisDump = 327, + /* + *0x148 + */ + RPC_ID__Req_WifiSetRssiThreshold = 328, + /* + *0x149 + */ + RPC_ID__Req_WifiFtmInitiateSession = 329, + /* + *0x14a + */ + RPC_ID__Req_WifiFtmEndSession = 330, + /* + *0x14b + */ + RPC_ID__Req_WifiFtmRespSetOffset = 331, + /* + *0x14c + */ + RPC_ID__Req_WifiConfig11bRate = 332, + /* + *0x14d + */ + RPC_ID__Req_WifiConnectionlessModuleSetWakeInterval = 333, + /* + *0x14e + */ + RPC_ID__Req_WifiSetCountryCode = 334, + /* + *0x14f + */ + RPC_ID__Req_WifiGetCountryCode = 335, + /* + *0x150 + */ + RPC_ID__Req_WifiConfig80211TxRate = 336, + /* + *0x151 + */ + RPC_ID__Req_WifiDisablePmfConfig = 337, + /* + *0x152 + */ + RPC_ID__Req_WifiStaGetAid = 338, + /* + *0x153 + */ + RPC_ID__Req_WifiStaGetNegotiatedPhymode = 339, + /* + *0x154 + */ + RPC_ID__Req_WifiSetDynamicCs = 340, + /* + *0x155 + */ + RPC_ID__Req_WifiStaGetRssi = 341, + /* + *0x156 + */ + RPC_ID__Req_WifiSetProtocols = 342, + /* + *0x157 + */ + RPC_ID__Req_WifiGetProtocols = 343, + /* + *0x158 + */ + RPC_ID__Req_WifiSetBandwidths = 344, + /* + *0x159 + */ + RPC_ID__Req_WifiGetBandwidths = 345, + /* + *0x15a + */ + RPC_ID__Req_WifiSetBand = 346, + /* + *0x15b + */ + RPC_ID__Req_WifiGetBand = 347, + /* + *0x15c + */ + RPC_ID__Req_WifiSetBandMode = 348, + /* + *0x15d + */ + RPC_ID__Req_WifiGetBandMode = 349, + /* + *0x15e + */ + RPC_ID__Req_GetCoprocessorFwVersion = 350, + /* + *0x15f + */ + RPC_ID__Req_WifiScanGetApRecord = 351, + /* + * Add new control path command response before Req_Max + * and update Req_Max + */ + /* + *0x160 + */ + RPC_ID__Req_Max = 352, + /* + ** Response Msgs * + */ + RPC_ID__Resp_Base = 512, + RPC_ID__Resp_GetMACAddress = 513, + RPC_ID__Resp_SetMacAddress = 514, + RPC_ID__Resp_GetWifiMode = 515, + RPC_ID__Resp_SetWifiMode = 516, + RPC_ID__Resp_WifiSetPs = 526, + RPC_ID__Resp_WifiGetPs = 527, + RPC_ID__Resp_OTABegin = 528, + RPC_ID__Resp_OTAWrite = 529, + RPC_ID__Resp_OTAEnd = 530, + RPC_ID__Resp_WifiSetMaxTxPower = 531, + RPC_ID__Resp_WifiGetMaxTxPower = 532, + RPC_ID__Resp_ConfigHeartbeat = 533, + RPC_ID__Resp_WifiInit = 534, + RPC_ID__Resp_WifiDeinit = 535, + RPC_ID__Resp_WifiStart = 536, + RPC_ID__Resp_WifiStop = 537, + RPC_ID__Resp_WifiConnect = 538, + RPC_ID__Resp_WifiDisconnect = 539, + RPC_ID__Resp_WifiSetConfig = 540, + RPC_ID__Resp_WifiGetConfig = 541, + RPC_ID__Resp_WifiScanStart = 542, + RPC_ID__Resp_WifiScanStop = 543, + RPC_ID__Resp_WifiScanGetApNum = 544, + RPC_ID__Resp_WifiScanGetApRecords = 545, + RPC_ID__Resp_WifiClearApList = 546, + RPC_ID__Resp_WifiRestore = 547, + RPC_ID__Resp_WifiClearFastConnect = 548, + RPC_ID__Resp_WifiDeauthSta = 549, + RPC_ID__Resp_WifiStaGetApInfo = 550, + /* + *Resp_WifiSetPs = 551; + *Resp_WifiGetPs = 552; + */ + RPC_ID__Resp_WifiSetProtocol = 553, + RPC_ID__Resp_WifiGetProtocol = 554, + RPC_ID__Resp_WifiSetBandwidth = 555, + RPC_ID__Resp_WifiGetBandwidth = 556, + RPC_ID__Resp_WifiSetChannel = 557, + RPC_ID__Resp_WifiGetChannel = 558, + RPC_ID__Resp_WifiSetCountry = 559, + RPC_ID__Resp_WifiGetCountry = 560, + /* + * Resp_WifiSetPromiscuousRxCb = 561; + */ + RPC_ID__Resp_WifiSetPromiscuous = 561, + RPC_ID__Resp_WifiGetPromiscuous = 562, + RPC_ID__Resp_WifiSetPromiscuousFilter = 563, + RPC_ID__Resp_WifiGetPromiscuousFilter = 564, + RPC_ID__Resp_WifiSetPromiscuousCtrlFilter = 565, + RPC_ID__Resp_WifiGetPromiscuousCtrlFilter = 566, + RPC_ID__Resp_WifiApGetStaList = 567, + RPC_ID__Resp_WifiApGetStaAid = 568, + RPC_ID__Resp_WifiSetStorage = 569, + RPC_ID__Resp_WifiSetVendorIe = 570, + /* + * Resp_WifiSetVendorIeCb = 571; + */ + RPC_ID__Resp_WifiSetEventMask = 571, + RPC_ID__Resp_WifiGetEventMask = 572, + RPC_ID__Resp_Wifi80211Tx = 573, + /* + * Resp_WifiSetCsiRxCb = 573; + */ + RPC_ID__Resp_WifiSetCsiConfig = 574, + RPC_ID__Resp_WifiSetCsi = 575, + RPC_ID__Resp_WifiSetAntGpio = 576, + RPC_ID__Resp_WifiGetAntGpio = 577, + RPC_ID__Resp_WifiSetAnt = 578, + RPC_ID__Resp_WifiGetAnt = 579, + RPC_ID__Resp_WifiGetTsfTime = 580, + RPC_ID__Resp_WifiSetInactiveTime = 581, + RPC_ID__Resp_WifiGetInactiveTime = 582, + RPC_ID__Resp_WifiStatisDump = 583, + RPC_ID__Resp_WifiSetRssiThreshold = 584, + RPC_ID__Resp_WifiFtmInitiateSession = 585, + RPC_ID__Resp_WifiFtmEndSession = 586, + RPC_ID__Resp_WifiFtmRespSetOffset = 587, + RPC_ID__Resp_WifiConfig11bRate = 588, + RPC_ID__Resp_WifiConnectionlessModuleSetWakeInterval = 589, + RPC_ID__Resp_WifiSetCountryCode = 590, + RPC_ID__Resp_WifiGetCountryCode = 591, + RPC_ID__Resp_WifiConfig80211TxRate = 592, + RPC_ID__Resp_WifiDisablePmfConfig = 593, + RPC_ID__Resp_WifiStaGetAid = 594, + RPC_ID__Resp_WifiStaGetNegotiatedPhymode = 595, + RPC_ID__Resp_WifiSetDynamicCs = 596, + RPC_ID__Resp_WifiStaGetRssi = 597, + RPC_ID__Resp_WifiSetProtocols = 598, + RPC_ID__Resp_WifiGetProtocols = 599, + RPC_ID__Resp_WifiSetBandwidths = 600, + RPC_ID__Resp_WifiGetBandwidths = 601, + RPC_ID__Resp_WifiSetBand = 602, + RPC_ID__Resp_WifiGetBand = 603, + RPC_ID__Resp_WifiSetBandMode = 604, + RPC_ID__Resp_WifiGetBandMode = 605, + RPC_ID__Resp_GetCoprocessorFwVersion = 606, + RPC_ID__Resp_WifiScanGetApRecord = 607, + /* + * Add new control path command response before Resp_Max + * and update Resp_Max + */ + RPC_ID__Resp_Max = 608, + /* + ** Event Msgs * + */ + RPC_ID__Event_Base = 768, + RPC_ID__Event_ESPInit = 769, + RPC_ID__Event_Heartbeat = 770, + RPC_ID__Event_AP_StaConnected = 771, + RPC_ID__Event_AP_StaDisconnected = 772, + RPC_ID__Event_WifiEventNoArgs = 773, + RPC_ID__Event_StaScanDone = 774, + RPC_ID__Event_StaConnected = 775, + RPC_ID__Event_StaDisconnected = 776, + /* + * Add new control path command notification before Event_Max + * and update Event_Max + */ + RPC_ID__Event_Max = 777 + PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RPC_ID) +} RpcId; + +/* --- messages --- */ + +struct WifiInitConfig +{ + ProtobufCMessage base; + /* + **< WiFi static RX buffer number + */ + int32_t static_rx_buf_num; + /* + **< WiFi dynamic RX buffer number + */ + int32_t dynamic_rx_buf_num; + /* + **< WiFi TX buffer type + */ + int32_t tx_buf_type; + /* + **< WiFi static TX buffer number + */ + int32_t static_tx_buf_num; + /* + **< WiFi dynamic TX buffer number + */ + int32_t dynamic_tx_buf_num; + /* + **< WiFi TX cache buffer number + */ + int32_t cache_tx_buf_num; + /* + **< WiFi channel state information enable flag + */ + int32_t csi_enable; + /* + **< WiFi AMPDU RX feature enable flag + */ + int32_t ampdu_rx_enable; + /* + **< WiFi AMPDU TX feature enable flag + */ + int32_t ampdu_tx_enable; + /* + **< WiFi AMSDU TX feature enable flag + */ + int32_t amsdu_tx_enable; + /* + **< WiFi NVS flash enable flag + */ + int32_t nvs_enable; + /* + **< Nano option for printf/scan family enable flag + */ + int32_t nano_enable; + /* + **< WiFi Block Ack RX window size + */ + int32_t rx_ba_win; + /* + **< WiFi Task Core ID + */ + int32_t wifi_task_core_id; + /* + **< WiFi softAP maximum length of the beacon + */ + int32_t beacon_max_len; + /* + **< WiFi management short buffer number, the minimum value is 6, the maximum value is 32 + */ + int32_t mgmt_sbuf_num; + /* + **< Enables additional WiFi features and capabilities + */ + uint64_t feature_caps; + /* + **< WiFi Power Management for station at disconnected status + */ + protobuf_c_boolean sta_disconnected_pm; + /* + **< Maximum encrypt number of peers supported by espnow + */ + int32_t espnow_max_encrypt_num; + /* + **< WiFi init magic number, it should be the last field + */ + int32_t magic; +}; +#define WIFI_INIT_CONFIG__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_init_config__descriptor) \ + , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } + + +struct WifiCountry +{ + ProtobufCMessage base; + /* + **< country code string of 3 chars + */ + ProtobufCBinaryData cc; + /* + **< start channel + */ + uint32_t schan; + /* + **< total channel number + */ + uint32_t nchan; + /* + **< This field is used for getting WiFi maximum transmitting power, + *call esp_wifi_set_max_tx_power to set the maximum transmitting power. + */ + int32_t max_tx_power; + /* + **< country policy + */ + int32_t policy; +}; +#define WIFI_COUNTRY__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_country__descriptor) \ + , {0,NULL}, 0, 0, 0, 0 } + + +struct WifiActiveScanTime +{ + ProtobufCMessage base; + /* + **< minimum active scan time per channel, units: millisecond + */ + uint32_t min; + /* + **< maximum active scan time per channel, units: millisecond, values above 1500ms may + *cause station to disconnect from AP and are not recommended. + */ + uint32_t max; +}; +#define WIFI_ACTIVE_SCAN_TIME__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_active_scan_time__descriptor) \ + , 0, 0 } + + +struct WifiScanTime +{ + ProtobufCMessage base; + /* + **< active scan time per channel, units: millisecond. + */ + WifiActiveScanTime *active; + /* + **< passive scan time per channel, units: millisecond, values above 1500ms may + *cause station to disconnect from AP and are not recommended. + */ + uint32_t passive; +}; +#define WIFI_SCAN_TIME__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_scan_time__descriptor) \ + , NULL, 0 } + + +struct WifiScanConfig +{ + ProtobufCMessage base; + /* + **< SSID of AP 33char + */ + ProtobufCBinaryData ssid; + /* + **< MAC address of AP 6char + */ + ProtobufCBinaryData bssid; + /* + **< channel, scan the specific channel + */ + uint32_t channel; + /* + **< enable to scan AP whose SSID is hidden + */ + protobuf_c_boolean show_hidden; + /* + **< scan type, active or passive + */ + int32_t scan_type; + /* + **< scan time per channel + */ + WifiScanTime *scan_time; + /* + **< time spent at home channel between scanning consecutive channels. + */ + uint32_t home_chan_dwell_time; +}; +#define WIFI_SCAN_CONFIG__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_scan_config__descriptor) \ + , {0,NULL}, {0,NULL}, 0, 0, 0, NULL, 0 } + + +struct WifiHeApInfo +{ + ProtobufCMessage base; + /* + *uint8_t bss_color:6; **< an unsigned integer whose value is the BSS Color of the BSS corresponding to the AP * + *uint8_t partial_bss_color:1; **< indicate if an AID assignment rule based on the BSS color * + *uint8_t bss_color_disabled:1; **< indicate if the use of BSS color is disabled * + */ + /* + * Manually have to parse for above bits + */ + uint32_t bitmask; + /* + **< in M-BSSID set, identifies the nontransmitted BSSID + */ + uint32_t bssid_index; +}; +#define WIFI_HE_AP_INFO__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_he_ap_info__descriptor) \ + , 0, 0 } + + +struct WifiApRecord +{ + ProtobufCMessage base; + /* + **< MAC address of AP 6char + */ + ProtobufCBinaryData bssid; + /* + **< SSID of AP 33char + */ + ProtobufCBinaryData ssid; + /* + **< channel of AP + */ + uint32_t primary; + /* + **< secondary channel of AP + */ + int32_t second; + /* + **< signal strength of AP + */ + int32_t rssi; + /* + **< authmode of AP + */ + int32_t authmode; + /* + **< pairwise cipher of AP + */ + int32_t pairwise_cipher; + /* + **< group cipher of AP + */ + int32_t group_cipher; + /* + **< antenna used to receive beacon from AP + */ + int32_t ant; + /* + *uint32_t phy_11b:1; **< bit: 0 flag to identify if 11b mode is enabled or not * + *uint32_t phy_11g:1; **< bit: 1 flag to identify if 11g mode is enabled or not * + *uint32_t phy_11n:1; **< bit: 2 flag to identify if 11n mode is enabled or not * + *uint32_t phy_lr:1; **< bit: 3 flag to identify if low rate is enabled or not * + *uint32_t wps:1; **< bit: 4 flag to identify if WPS is supported or not * + *uint32_t ftm_responder:1; **< bit: 5 flag to identify if FTM is supported in responder mode * + *uint32_t ftm_initiator:1; **< bit: 6 flag to identify if FTM is supported in initiator mode * + *uint32_t reserved:25; **< bit: 7..31 reserved * + */ + /* + * Manually have to parse for above bits + */ + uint32_t bitmask; + /* + **< country information of AP + */ + WifiCountry *country; + WifiHeApInfo *he_ap; + /* + **< For AP 20 MHz this value is set to 1. For AP 40 MHz this value is set to 2. + *For AP 80 MHz this value is set to 3. For AP 160MHz this value is set to 4. + *For AP 80+80MHz this value is set to 5 + */ + uint32_t bandwidth; + /* + **< This fields are used only AP bandwidth is 80 and 160 MHz, to transmit the center channel + *frequency of the BSS. For AP bandwidth is 80 + 80 MHz, it is the center channel frequency + *of the lower frequency segment. + */ + uint32_t vht_ch_freq1; + /* + **< This fields are used only AP bandwidth is 80 + 80 MHz, and is used to transmit the center + *channel frequency of the second segment. + */ + uint32_t vht_ch_freq2; +}; +#define WIFI_AP_RECORD__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_ap_record__descriptor) \ + , {0,NULL}, {0,NULL}, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0 } + + +struct WifiScanThreshold +{ + ProtobufCMessage base; + /* + **< The minimum rssi to accept in the fast scan mode + */ + int32_t rssi; + /* + **< The weakest authmode to accept in the fast scan mode + *Note: Incase this value is not set and password is set as per WPA2 standards(password len >= 8), + *it will be defaulted to WPA2 and device won't connect to deprecated WEP/WPA networks. + *Please set authmode threshold as WIFI_AUTH_WEP/WIFI_AUTH_WPA_PSK to connect to WEP/WPA networks + */ + int32_t authmode; +}; +#define WIFI_SCAN_THRESHOLD__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_scan_threshold__descriptor) \ + , 0, 0 } + + +struct WifiPmfConfig +{ + ProtobufCMessage base; + /* + **< Deprecated variable. Device will always connect in PMF mode if other device also advertizes PMF capability. + */ + protobuf_c_boolean capable; + /* + **< Advertizes that Protected Management Frame is required. Device will not associate to non-PMF capable devices. + */ + protobuf_c_boolean required; +}; +#define WIFI_PMF_CONFIG__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_pmf_config__descriptor) \ + , 0, 0 } + + +struct WifiApConfig +{ + ProtobufCMessage base; + /* + **< SSID of ESP32 soft-AP. If ssid_len field is 0, this must be a Null terminated string. Otherwise, length is set according to ssid_len. 32 char + */ + ProtobufCBinaryData ssid; + /* + **< Password of ESP32 soft-AP. 64 char + */ + ProtobufCBinaryData password; + /* + **< Optional length of SSID field. + */ + uint32_t ssid_len; + /* + **< Channel of ESP32 soft-AP + */ + uint32_t channel; + /* + **< Auth mode of ESP32 soft-AP. Do not support AUTH_WEP in soft-AP mode + */ + int32_t authmode; + /* + **< Broadcast SSID or not, default 0, broadcast the SSID + */ + uint32_t ssid_hidden; + /* + **< Max number of stations allowed to connect in + */ + uint32_t max_connection; + /* + **< Beacon interval which should be multiples of 100. Unit: TU(time unit, 1 TU = 1024 us). Range: 100 ~ 60000. Default value: 100 + */ + uint32_t beacon_interval; + /* + **< pairwise cipher of SoftAP, group cipher will be derived using this. + *cipher values are valid starting from WIFI_CIPHER_TYPE_TKIP, enum values before that will be considered as invalid and default cipher suites(TKIP+CCMP) will be used. + *Valid cipher suites in softAP mode are WIFI_CIPHER_TYPE_TKIP, WIFI_CIPHER_TYPE_CCMP and WIFI_CIPHER_TYPE_TKIP_CCMP. + */ + int32_t pairwise_cipher; + /* + **< Enable FTM Responder mode + */ + protobuf_c_boolean ftm_responder; + /* + **< Configuration for Protected Management Frame + */ + WifiPmfConfig *pmf_cfg; + /* + **< Configuration for SAE PWE derivation method + */ + int32_t sae_pwe_h2e; +}; +#define WIFI_AP_CONFIG__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_ap_config__descriptor) \ + , {0,NULL}, {0,NULL}, 0, 0, 0, 0, 0, 0, 0, 0, NULL, 0 } + + +struct WifiStaConfig +{ + ProtobufCMessage base; + /* + **< SSID of target AP. 32char + */ + ProtobufCBinaryData ssid; + /* + **< Password of target AP. 64char + */ + ProtobufCBinaryData password; + /* + **< do all channel scan or fast scan + */ + int32_t scan_method; + /* + **< whether set MAC address of target AP or not. Generally, station_config.bssid_set needs to be 0, + *and it needs to be 1 only when users need to check the MAC address of the AP. + */ + protobuf_c_boolean bssid_set; + /* + **< MAC address of target AP 6char + */ + ProtobufCBinaryData bssid; + /* + **< channel of target AP. Set to 1~13 to scan starting from the specified channel + *before connecting to AP. If the channel of AP is unknown, set it to 0. + */ + uint32_t channel; + /* + **< Listen interval for ESP32 station to receive beacon when WIFI_PS_MAX_MODEM is set. + *Units: AP beacon intervals. Defaults to 3 if set to 0. + */ + uint32_t listen_interval; + /* + **< sort the connect AP in the list by rssi or security mode + */ + int32_t sort_method; + /* + **< When sort_method is set, only APs which have an auth mode that is more secure + *than the selected auth mode and a signal stronger than the minimum RSSI will be used. + */ + WifiScanThreshold *threshold; + /* + **< Configuration for Protected Management Frame. Will be advertized in RSN Capabilities in RSN IE. + */ + WifiPmfConfig *pmf_cfg; + /* + *uint32_t rm_enabled:1; **< Whether Radio Measurements are enabled for the connection * + *uint32_t btm_enabled:1; **< Whether BSS Transition Management is enabled for the connection * + *uint32_t mbo_enabled:1; **< Whether MBO is enabled for the connection * + *uint32_t ft_enabled:1; **< Whether FT is enabled for the connection * + *uint32_t owe_enabled:1; **< Whether OWE is enabled for the connection * + *uint32_t transition_disable:1; **< Whether to enable transition disable feature * + *uint32_t reserved:26; **< Reserved for future feature set * + */ + uint32_t bitmask; + /* + **< Whether SAE hash to element is enabled + */ + int32_t sae_pwe_h2e; + /* + **< Number of connection retries station will do before moving to next AP. + *scan_method should be set as WIFI_ALL_CHANNEL_SCAN to use this config. + *Note: Enabling this may cause connection time to increase incase best AP doesn't behave properly. + */ + uint32_t failure_retry_cnt; + /* + *uint32_t he_dcm_set:1; **< Whether DCM max.constellation for transmission and reception is set. * + *uint32_t he_dcm_max_constellation_tx:2; **< Indicate the max.constellation for DCM in TB PPDU the STA supported. 0: not supported. 1: BPSK, 2: QPSK, 3: 16-QAM. The default value is 3. * + *uint32_t he_dcm_max_constellation_rx:2; **< Indicate the max.constellation for DCM in both Data field and HE-SIG-B field the STA supported. 0: not supported. 1: BPSK, 2: QPSK, 3: 16-QAM. The default value is 3. * + *uint32_t he_mcs9_enabled:1; **< Whether to support HE-MCS 0 to 9. The default value is 0. * + *uint32_t he_su_beamformee_disabled:1; **< Whether to disable support for operation as an SU beamformee. * + *uint32_t he_trig_su_bmforming_feedback_disabled:1; **< Whether to disable support the transmission of SU feedback in an HE TB sounding sequence. * + *uint32_t he_trig_mu_bmforming_partial_feedback_disabled:1; **< Whether to disable support the transmission of partial-bandwidth MU feedback in an HE TB sounding sequence. * + * uint32_t he_trig_cqi_feedback_disabled:1; **< Whether to disable support the transmission of CQI feedback in an HE TB sounding sequence. * + * uint32_t he_reserved:22; **< Reserved for future feature set * + */ + uint32_t he_bitmask; + /* + **< Password identifier for H2E. this needs to be null terminated string. SAE_H2E_IDENTIFIER_LEN chars + */ + ProtobufCBinaryData sae_h2e_identifier; +}; +#define WIFI_STA_CONFIG__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_sta_config__descriptor) \ + , {0,NULL}, {0,NULL}, 0, 0, {0,NULL}, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, {0,NULL} } + + +typedef enum { + WIFI_CONFIG__U__NOT_SET = 0, + WIFI_CONFIG__U_AP = 1, + WIFI_CONFIG__U_STA = 2 + PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(WIFI_CONFIG__U__CASE) +} WifiConfig__UCase; + +struct WifiConfig +{ + ProtobufCMessage base; + WifiConfig__UCase u_case; + union { + /* + **< configuration of AP + */ + WifiApConfig *ap; + /* + **< configuration of STA + */ + WifiStaConfig *sta; + }; +}; +#define WIFI_CONFIG__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_config__descriptor) \ + , WIFI_CONFIG__U__NOT_SET, {0} } + + +struct WifiStaInfo +{ + ProtobufCMessage base; + /* + **< mac address 6 char + */ + ProtobufCBinaryData mac; + /* + **< current average rssi of sta connected + */ + int32_t rssi; + /* + *uint32_t phy_11b:1; **< bit: 0 flag to identify if 11b mode is enabled or not * + *uint32_t phy_11g:1; **< bit: 1 flag to identify if 11g mode is enabled or not * + *uint32_t phy_11n:1; **< bit: 2 flag to identify if 11n mode is enabled or not * + *uint32_t phy_lr:1; **< bit: 3 flag to identify if low rate is enabled or not * + *uint32_t phy_11x:1; **< bit: 4 flag to identify identify if 11ax mode is enabled or not * + *uint32_t is_mesh_child:1; **< bit: 5 flag to identify mesh child * + *uint32_t reserved:26; **< bit: 6..31 reserved * + */ + uint32_t bitmask; +}; +#define WIFI_STA_INFO__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_sta_info__descriptor) \ + , {0,NULL}, 0, 0 } + + +struct WifiStaList +{ + ProtobufCMessage base; + /* + **< station list + */ + size_t n_sta; + WifiStaInfo **sta; + /* + **< number of stations in the list (other entries are invalid) + */ + int32_t num; +}; +#define WIFI_STA_LIST__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_sta_list__descriptor) \ + , 0,NULL, 0 } + + +struct WifiPktRxCtrl +{ + ProtobufCMessage base; + /* + **< 8bits Received Signal Strength Indicator(RSSI) of packet. unit: dBm + */ + int32_t rssi; + /* + **< 5bits PHY rate encoding of the packet. Only valid for non HT(11bg) packet + */ + uint32_t rate; + /* + *uint32 :1; **< reserved * + */ + /* + **< 2bits 0: non HT(11bg) packet; 1: HT(11n) packet; 3: VHT(11ac) packet + */ + uint32_t sig_mode; + /* + *uint32 :16; **< reserved * + */ + /* + **< 7bits Modulation Coding Scheme. If is HT(11n) packet, shows the modulation, range from 0 to 76(MSC0 ~ MCS76) + */ + uint32_t mcs; + /* + **< 1bit Channel Bandwidth of the packet. 0: 20MHz; 1: 40MHz + */ + uint32_t cwb; + /* + *uint32 :16; **< reserved * + */ + /* + **< 1bit reserved + */ + uint32_t smoothing; + /* + **< 1bit reserved + */ + uint32_t not_sounding; + /* + *uint32 :1; **< reserved * + */ + /* + **< 1bit Aggregation. 0: MPDU packet; 1: AMPDU packet + */ + uint32_t aggregation; + /* + **< 2bits Space Time Block Code(STBC). 0: non STBC packet; 1: STBC packet + */ + uint32_t stbc; + /* + **< 1bit Flag is set for 11n packets which are LDPC + */ + uint32_t fec_coding; + /* + **< 1bit Short Guide Interval(SGI). 0: Long GI; 1: Short GI + */ + uint32_t sgi; + /* + **< 8bits noise floor of Radio Frequency Module(RF). unit: dBm + */ + int32_t noise_floor; + /* + **< 8bits ampdu cnt + */ + uint32_t ampdu_cnt; + /* + **< 4bits primary channel on which this packet is received + */ + uint32_t channel; + /* + **< 4bits secondary channel on which this packet is received. 0: none; 1: above; 2: below + */ + uint32_t secondary_channel; + /* + *uint32 :8; **< reserved * + */ + /* + **< 32bit timestamp. The local time when this packet is received. It is precise only if modem sleep or light sleep is not enabled. unit: microsecond + */ + uint32_t timestamp; + /* + *uint32 :32; **< reserved * + *unsigned :32; **< reserved * + *unsigned :31; **< reserved * + */ + /* + **< 1bit antenna number from which this packet is received. 0: WiFi antenna 0; 1: WiFi antenna 1 + */ + uint32_t ant; + /* + **< 12bits length of packet including Frame Check Sequence(FCS) + */ + uint32_t sig_len; + /* + *unsigned :12; **< reserved * + */ + /* + **< 8bits state of the packet. 0: no error; others: error numbers which are not public + */ + uint32_t rx_state; +}; +#define WIFI_PKT_RX_CTRL__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_pkt_rx_ctrl__descriptor) \ + , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } + + +struct WifiPromiscuousPkt +{ + ProtobufCMessage base; + /* + **< metadata header + */ + WifiPktRxCtrl *rx_ctrl; + /* + **< Note: variable length. Data or management payload. Length of payload is described by rx_ctrl.sig_len. Type of content determined by packet type argument of callback. + */ + ProtobufCBinaryData payload; +}; +#define WIFI_PROMISCUOUS_PKT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_promiscuous_pkt__descriptor) \ + , NULL, {0,NULL} } + + +struct WifiPromiscuousFilter +{ + ProtobufCMessage base; + /* + **< OR of one or more filter values WIFI_PROMIS_FILTER_* + */ + uint32_t filter_mask; +}; +#define WIFI_PROMISCUOUS_FILTER__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_promiscuous_filter__descriptor) \ + , 0 } + + +struct WifiCsiConfig +{ + ProtobufCMessage base; + /* + **< enable to receive legacy long training field(lltf) data. Default enabled + */ + protobuf_c_boolean lltf_en; + /* + **< enable to receive HT long training field(htltf) data. Default enabled + */ + protobuf_c_boolean htltf_en; + /* + **< enable to receive space time block code HT long training field(stbc-htltf2) data. Default enabled + */ + protobuf_c_boolean stbc_htltf2_en; + /* + **< enable to generate htlft data by averaging lltf and ht_ltf data when receiving HT packet. Otherwise, use ht_ltf data directly. Default enabled + */ + protobuf_c_boolean ltf_merge_en; + /* + **< enable to turn on channel filter to smooth adjacent sub-carrier. Disable it to keep independence of adjacent sub-carrier. Default enabled + */ + protobuf_c_boolean channel_filter_en; + /* + **< manually scale the CSI data by left shifting or automatically scale the CSI data. + *If set true, please set the shift bits. false: automatically. true: manually. Default false + */ + protobuf_c_boolean manu_scale; + /* + **< manually left shift bits of the scale of the CSI data. The range of the left shift bits is 0~15 + */ + uint32_t shift; +}; +#define WIFI_CSI_CONFIG__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_csi_config__descriptor) \ + , 0, 0, 0, 0, 0, 0, 0 } + + +struct WifiCsiInfo +{ + ProtobufCMessage base; + /* + **< received packet radio metadata header of the CSI data + */ + WifiPktRxCtrl *rx_ctrl; + /* + **< 6bits source MAC address of the CSI data + */ + ProtobufCBinaryData mac; + /* + **< 6bits destination MAC address of the CSI data + */ + ProtobufCBinaryData dmac; + /* + **< first four bytes of the CSI data is invalid or not + */ + protobuf_c_boolean first_word_invalid; + /* + **< Note: variable length. buffer of CSI data + */ + ProtobufCBinaryData buf; + /* + **< length of CSI data + */ + uint32_t len; +}; +#define WIFI_CSI_INFO__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_csi_info__descriptor) \ + , NULL, {0,NULL}, {0,NULL}, 0, {0,NULL}, 0 } + + +struct WifiAntGpio +{ + ProtobufCMessage base; + /* + **< 1bit Whether this GPIO is connected to external antenna switch + */ + uint32_t gpio_select; + /* + **< 7bits The GPIO number that connects to external antenna switch + */ + uint32_t gpio_num; +}; +#define WIFI_ANT_GPIO__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_ant_gpio__descriptor) \ + , 0, 0 } + + +struct WifiAntGpioConfig +{ + ProtobufCMessage base; + /* + **< The configurations of GPIOs that connect to external antenna switch + */ + size_t n_gpio_cfgs; + WifiAntGpio **gpio_cfgs; +}; +#define WIFI_ANT_GPIO_CONFIG__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_ant_gpio_config__descriptor) \ + , 0,NULL } + + +struct WifiAntConfig +{ + ProtobufCMessage base; + /* + **< WiFi antenna mode for receiving + */ + int32_t rx_ant_mode; + /* + **< Default antenna mode for receiving, it's ignored if rx_ant_mode is not WIFI_ANT_MODE_AUTO + */ + int32_t rx_ant_default; + /* + **< WiFi antenna mode for transmission, it can be set to WIFI_ANT_MODE_AUTO only if rx_ant_mode is set to WIFI_ANT_MODE_AUTO + */ + int32_t tx_ant_mode; + /* + **< 4bits Index (in antenna GPIO configuration) of enabled WIFI_ANT_MODE_ANT0 + */ + uint32_t enabled_ant0; + /* + **< 4bits Index (in antenna GPIO configuration) of enabled WIFI_ANT_MODE_ANT1 + */ + uint32_t enabled_ant1; +}; +#define WIFI_ANT_CONFIG__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_ant_config__descriptor) \ + , 0, 0, 0, 0, 0 } + + +struct WifiActionTxReq +{ + ProtobufCMessage base; + /* + **< WiFi interface to send request to + */ + int32_t ifx; + /* + **< 6bits Destination MAC address + */ + ProtobufCBinaryData dest_mac; + /* + **< Indicates no ack required + */ + protobuf_c_boolean no_ack; + /* + *TODO + *wifi_action_rx_cb_t rx_cb; **< Rx Callback to receive any response * + */ + /* + **< Length of the appended Data + */ + uint32_t data_len; + /* + **< note: variable length. Appended Data payload + */ + ProtobufCBinaryData data; +}; +#define WIFI_ACTION_TX_REQ__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_action_tx_req__descriptor) \ + , 0, {0,NULL}, 0, 0, {0,NULL} } + + +struct WifiFtmInitiatorCfg +{ + ProtobufCMessage base; + /* + **< 6bits MAC address of the FTM Responder + */ + ProtobufCBinaryData resp_mac; + /* + **< Primary channel of the FTM Responder + */ + uint32_t channel; + /* + **< No. of FTM frames requested in terms of 4 or 8 bursts (allowed values - 0(No pref), 16, 24, 32, 64) + */ + uint32_t frm_count; + /* + **< Requested time period between consecutive FTM bursts in 100's of milliseconds (0 - No pref) + */ + uint32_t burst_period; +}; +#define WIFI_FTM_INITIATOR_CFG__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_ftm_initiator_cfg__descriptor) \ + , {0,NULL}, 0, 0, 0 } + + +struct WifiEventStaScanDone +{ + ProtobufCMessage base; + /* + **< status of scanning APs: 0 — success, 1 - failure + */ + uint32_t status; + /* + **< number of scan results + */ + uint32_t number; + /* + **< scan sequence number, used for block scan + */ + uint32_t scan_id; +}; +#define WIFI_EVENT_STA_SCAN_DONE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_event_sta_scan_done__descriptor) \ + , 0, 0, 0 } + + +struct WifiEventStaConnected +{ + ProtobufCMessage base; + /* + **< 32bytes SSID of connected AP + */ + ProtobufCBinaryData ssid; + /* + **< SSID length of connected AP + */ + uint32_t ssid_len; + /* + **< 6bytes BSSID of connected AP + */ + ProtobufCBinaryData bssid; + /* + **< channel of connected AP + */ + uint32_t channel; + /* + **< authentication mode used by AP + */ + int32_t authmode; + /* + **< authentication id assigned by the connected AP + */ + int32_t aid; +}; +#define WIFI_EVENT_STA_CONNECTED__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_event_sta_connected__descriptor) \ + , {0,NULL}, 0, {0,NULL}, 0, 0, 0 } + + +struct WifiEventStaDisconnected +{ + ProtobufCMessage base; + /* + **< SSID of disconnected AP + */ + ProtobufCBinaryData ssid; + /* + **< SSID length of disconnected AP + */ + uint32_t ssid_len; + /* + **< BSSID of disconnected AP + */ + ProtobufCBinaryData bssid; + /* + **< reason of disconnection + */ + uint32_t reason; + /* + **< rssi of disconnection + */ + int32_t rssi; +}; +#define WIFI_EVENT_STA_DISCONNECTED__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_event_sta_disconnected__descriptor) \ + , {0,NULL}, 0, {0,NULL}, 0, 0 } + + +struct WifiEventStaAuthmodeChange +{ + ProtobufCMessage base; + /* + **< the old auth mode of AP + */ + int32_t old_mode; + /* + **< the new auth mode of AP + */ + int32_t new_mode; +}; +#define WIFI_EVENT_STA_AUTHMODE_CHANGE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_event_sta_authmode_change__descriptor) \ + , 0, 0 } + + +struct WifiEventStaWpsErPin +{ + ProtobufCMessage base; + /* + **< 8bytes PIN code of station in enrollee mode + */ + ProtobufCBinaryData pin_code; +}; +#define WIFI_EVENT_STA_WPS_ER_PIN__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_event_sta_wps_er_pin__descriptor) \ + , {0,NULL} } + + +struct ApCred +{ + ProtobufCMessage base; + /* + **< 32bytes SSID of AP + */ + ProtobufCBinaryData ssid; + /* + **< 64bytes Passphrase for the AP + */ + ProtobufCBinaryData passphrase; +}; +#define AP_CRED__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&ap_cred__descriptor) \ + , {0,NULL}, {0,NULL} } + + +struct WifiEventStaWpsErSuccess +{ + ProtobufCMessage base; + /* + **< Number of AP credentials received + */ + uint32_t ap_cred_cnt; + /* + **< All AP credentials received from WPS handshake + */ + size_t n_ap_creds; + ApCred **ap_creds; +}; +#define WIFI_EVENT_STA_WPS_ER_SUCCESS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_event_sta_wps_er_success__descriptor) \ + , 0, 0,NULL } + + +/* + ** Argument structure for WIFI_EVENT_AP_PROBEREQRECVED event + */ +struct WifiEventApProbeReqRx +{ + ProtobufCMessage base; + /* + **< Received probe request signal strength + */ + int32_t rssi; + /* + **< MAC address of the station which send probe request + */ + uint32_t mac; +}; +#define WIFI_EVENT_AP_PROBE_REQ_RX__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_event_ap_probe_req_rx__descriptor) \ + , 0, 0 } + + +/* + ** Argument structure for WIFI_EVENT_STA_BSS_RSSI_LOW event + */ +struct WifiEventBssRssiLow +{ + ProtobufCMessage base; + /* + **< RSSI value of bss + */ + int32_t rssi; +}; +#define WIFI_EVENT_BSS_RSSI_LOW__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_event_bss_rssi_low__descriptor) \ + , 0 } + + +struct WifiFtmReportEntry +{ + ProtobufCMessage base; + /* + * *< Dialog Token of the FTM frame + */ + uint32_t dlog_token; + /* + * *< RSSI of the FTM frame received + */ + int32_t rssi; + /* + * *< Round Trip Time in pSec with a peer + */ + uint32_t rtt; + /* + * TODO: uint32 is supported by proto? + */ + /* + * *< Time of departure of FTM frame from FTM Responder in pSec + */ + uint64_t t1; + /* + * *< Time of arrival of FTM frame at FTM Initiator in pSec + */ + uint64_t t2; + /* + * *< Time of departure of ACK from FTM Initiator in pSec + */ + uint64_t t3; + /* + * *< Time of arrival of ACK at FTM Responder in pSec + */ + uint64_t t4; +}; +#define WIFI_FTM_REPORT_ENTRY__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_ftm_report_entry__descriptor) \ + , 0, 0, 0, 0, 0, 0, 0 } + + +struct WifiEventFtmReport +{ + ProtobufCMessage base; + /* + * *< 6bytes MAC address of the FTM Peer + */ + ProtobufCBinaryData peer_mac; + /* + * *< Status of the FTM operation + */ + int32_t status; + /* + * *< Raw average Round-Trip-Time with peer in Nano-Seconds + */ + uint32_t rtt_raw; + /* + * *< Estimated Round-Trip-Time with peer in Nano-Seconds + */ + uint32_t rtt_est; + /* + * *< Estimated one-way distance in Centi-Meters + */ + uint32_t dist_est; + /* + * *< Note var len Pointer to FTM Report with multiple entries, should be freed after use + */ + size_t n_ftm_report_data; + WifiFtmReportEntry **ftm_report_data; + /* + * *< Number of entries in the FTM Report data + */ + uint32_t ftm_report_num_entries; +}; +#define WIFI_EVENT_FTM_REPORT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_event_ftm_report__descriptor) \ + , {0,NULL}, 0, 0, 0, 0, 0,NULL, 0 } + + +struct WifiEventActionTxStatus +{ + ProtobufCMessage base; + /* + **< WiFi interface to send request to + */ + int32_t ifx; + /* + **< Context to identify the request + */ + uint32_t context; + /* + **< 6bytes Destination MAC address + */ + ProtobufCBinaryData da; + /* + **< Status of the operation + */ + uint32_t status; +}; +#define WIFI_EVENT_ACTION_TX_STATUS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_event_action_tx_status__descriptor) \ + , 0, 0, {0,NULL}, 0 } + + +struct WifiEventRocDone +{ + ProtobufCMessage base; + /* + **< Context to identify the request + */ + uint32_t context; +}; +#define WIFI_EVENT_ROC_DONE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_event_roc_done__descriptor) \ + , 0 } + + +struct WifiEventApWpsRgPin +{ + ProtobufCMessage base; + /* + **< 8bytes PIN code of station in enrollee mode + */ + ProtobufCBinaryData pin_code; +}; +#define WIFI_EVENT_AP_WPS_RG_PIN__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_event_ap_wps_rg_pin__descriptor) \ + , {0,NULL} } + + +struct WifiEventApWpsRgFailReason +{ + ProtobufCMessage base; + /* + **< WPS failure reason wps_fail_reason_t + */ + int32_t reason; + /* + **< 6bytes Enrollee mac address + */ + ProtobufCBinaryData peer_macaddr; +}; +#define WIFI_EVENT_AP_WPS_RG_FAIL_REASON__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_event_ap_wps_rg_fail_reason__descriptor) \ + , 0, {0,NULL} } + + +struct WifiEventApWpsRgSuccess +{ + ProtobufCMessage base; + /* + **< 6bytes Enrollee mac address + */ + ProtobufCBinaryData peer_macaddr; +}; +#define WIFI_EVENT_AP_WPS_RG_SUCCESS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_event_ap_wps_rg_success__descriptor) \ + , {0,NULL} } + + +struct WifiProtocols +{ + ProtobufCMessage base; + /* + **< Represents 2.4 GHz protocol, support 802.11b or 802.11g or 802.11n or 802.11ax or LR mode + */ + uint32_t ghz_2g; + /* + **< Represents 5 GHz protocol, support 802.11a or 802.11n or 802.11ac or 802.11ax + */ + uint32_t ghz_5g; +}; +#define WIFI_PROTOCOLS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_protocols__descriptor) \ + , 0, 0 } + + +struct WifiBandwidths +{ + ProtobufCMessage base; + /* + * Represents 2.4 GHz bandwidth + */ + uint32_t ghz_2g; + /* + * Represents 5 GHz bandwidth + */ + uint32_t ghz_5g; +}; +#define WIFI_BANDWIDTHS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_bandwidths__descriptor) \ + , 0, 0 } + + +struct ConnectedSTAList +{ + ProtobufCMessage base; + ProtobufCBinaryData mac; + int32_t rssi; +}; +#define CONNECTED_STALIST__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&connected_stalist__descriptor) \ + , {0,NULL}, 0 } + + +/* + ** Req/Resp structure * + */ +struct RpcReqGetMacAddress +{ + ProtobufCMessage base; + int32_t mode; +}; +#define RPC__REQ__GET_MAC_ADDRESS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__get_mac_address__descriptor) \ + , 0 } + + +struct RpcRespGetMacAddress +{ + ProtobufCMessage base; + ProtobufCBinaryData mac; + int32_t resp; +}; +#define RPC__RESP__GET_MAC_ADDRESS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__get_mac_address__descriptor) \ + , {0,NULL}, 0 } + + +struct RpcReqGetMode +{ + ProtobufCMessage base; +}; +#define RPC__REQ__GET_MODE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__get_mode__descriptor) \ + } + + +struct RpcRespGetMode +{ + ProtobufCMessage base; + int32_t mode; + int32_t resp; +}; +#define RPC__RESP__GET_MODE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__get_mode__descriptor) \ + , 0, 0 } + + +struct RpcReqSetMode +{ + ProtobufCMessage base; + int32_t mode; +}; +#define RPC__REQ__SET_MODE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__set_mode__descriptor) \ + , 0 } + + +struct RpcRespSetMode +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__SET_MODE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__set_mode__descriptor) \ + , 0 } + + +struct RpcReqGetPs +{ + ProtobufCMessage base; +}; +#define RPC__REQ__GET_PS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__get_ps__descriptor) \ + } + + +struct RpcRespGetPs +{ + ProtobufCMessage base; + int32_t resp; + int32_t type; +}; +#define RPC__RESP__GET_PS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__get_ps__descriptor) \ + , 0, 0 } + + +struct RpcReqSetPs +{ + ProtobufCMessage base; + int32_t type; +}; +#define RPC__REQ__SET_PS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__set_ps__descriptor) \ + , 0 } + + +struct RpcRespSetPs +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__SET_PS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__set_ps__descriptor) \ + , 0 } + + +struct RpcReqSetMacAddress +{ + ProtobufCMessage base; + ProtobufCBinaryData mac; + int32_t mode; +}; +#define RPC__REQ__SET_MAC_ADDRESS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__set_mac_address__descriptor) \ + , {0,NULL}, 0 } + + +struct RpcRespSetMacAddress +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__SET_MAC_ADDRESS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__set_mac_address__descriptor) \ + , 0 } + + +struct RpcReqOTABegin +{ + ProtobufCMessage base; +}; +#define RPC__REQ__OTABEGIN__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__otabegin__descriptor) \ + } + + +struct RpcRespOTABegin +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__OTABEGIN__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__otabegin__descriptor) \ + , 0 } + + +struct RpcReqOTAWrite +{ + ProtobufCMessage base; + ProtobufCBinaryData ota_data; +}; +#define RPC__REQ__OTAWRITE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__otawrite__descriptor) \ + , {0,NULL} } + + +struct RpcRespOTAWrite +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__OTAWRITE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__otawrite__descriptor) \ + , 0 } + + +struct RpcReqOTAEnd +{ + ProtobufCMessage base; +}; +#define RPC__REQ__OTAEND__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__otaend__descriptor) \ + } + + +struct RpcRespOTAEnd +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__OTAEND__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__otaend__descriptor) \ + , 0 } + + +struct RpcReqWifiSetMaxTxPower +{ + ProtobufCMessage base; + int32_t power; +}; +#define RPC__REQ__WIFI_SET_MAX_TX_POWER__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_max_tx_power__descriptor) \ + , 0 } + + +struct RpcRespWifiSetMaxTxPower +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_SET_MAX_TX_POWER__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_max_tx_power__descriptor) \ + , 0 } + + +struct RpcReqWifiGetMaxTxPower +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_GET_MAX_TX_POWER__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_max_tx_power__descriptor) \ + } + + +struct RpcRespWifiGetMaxTxPower +{ + ProtobufCMessage base; + int32_t power; + int32_t resp; +}; +#define RPC__RESP__WIFI_GET_MAX_TX_POWER__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_max_tx_power__descriptor) \ + , 0, 0 } + + +struct RpcReqConfigHeartbeat +{ + ProtobufCMessage base; + protobuf_c_boolean enable; + int32_t duration; +}; +#define RPC__REQ__CONFIG_HEARTBEAT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__config_heartbeat__descriptor) \ + , 0, 0 } + + +struct RpcRespConfigHeartbeat +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__CONFIG_HEARTBEAT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__config_heartbeat__descriptor) \ + , 0 } + + +struct RpcReqWifiInit +{ + ProtobufCMessage base; + WifiInitConfig *cfg; +}; +#define RPC__REQ__WIFI_INIT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_init__descriptor) \ + , NULL } + + +struct RpcRespWifiInit +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_INIT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_init__descriptor) \ + , 0 } + + +struct RpcReqWifiDeinit +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_DEINIT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_deinit__descriptor) \ + } + + +struct RpcRespWifiDeinit +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_DEINIT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_deinit__descriptor) \ + , 0 } + + +struct RpcReqWifiSetConfig +{ + ProtobufCMessage base; + int32_t iface; + WifiConfig *cfg; +}; +#define RPC__REQ__WIFI_SET_CONFIG__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_config__descriptor) \ + , 0, NULL } + + +struct RpcRespWifiSetConfig +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_SET_CONFIG__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_config__descriptor) \ + , 0 } + + +struct RpcReqWifiGetConfig +{ + ProtobufCMessage base; + int32_t iface; +}; +#define RPC__REQ__WIFI_GET_CONFIG__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_config__descriptor) \ + , 0 } + + +struct RpcRespWifiGetConfig +{ + ProtobufCMessage base; + int32_t resp; + int32_t iface; + WifiConfig *cfg; +}; +#define RPC__RESP__WIFI_GET_CONFIG__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_config__descriptor) \ + , 0, 0, NULL } + + +struct RpcReqWifiConnect +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_CONNECT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_connect__descriptor) \ + } + + +struct RpcRespWifiConnect +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_CONNECT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_connect__descriptor) \ + , 0 } + + +struct RpcReqWifiDisconnect +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_DISCONNECT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_disconnect__descriptor) \ + } + + +struct RpcRespWifiDisconnect +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_DISCONNECT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_disconnect__descriptor) \ + , 0 } + + +struct RpcReqWifiStart +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_START__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_start__descriptor) \ + } + + +struct RpcRespWifiStart +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_START__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_start__descriptor) \ + , 0 } + + +struct RpcReqWifiStop +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_STOP__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_stop__descriptor) \ + } + + +struct RpcRespWifiStop +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_STOP__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_stop__descriptor) \ + , 0 } + + +struct RpcReqWifiScanStart +{ + ProtobufCMessage base; + WifiScanConfig *config; + protobuf_c_boolean block; + int32_t config_set; +}; +#define RPC__REQ__WIFI_SCAN_START__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_scan_start__descriptor) \ + , NULL, 0, 0 } + + +struct RpcRespWifiScanStart +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_SCAN_START__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_scan_start__descriptor) \ + , 0 } + + +struct RpcReqWifiScanStop +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_SCAN_STOP__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_scan_stop__descriptor) \ + } + + +struct RpcRespWifiScanStop +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_SCAN_STOP__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_scan_stop__descriptor) \ + , 0 } + + +struct RpcReqWifiScanGetApNum +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_SCAN_GET_AP_NUM__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_scan_get_ap_num__descriptor) \ + } + + +struct RpcRespWifiScanGetApNum +{ + ProtobufCMessage base; + int32_t resp; + int32_t number; +}; +#define RPC__RESP__WIFI_SCAN_GET_AP_NUM__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_scan_get_ap_num__descriptor) \ + , 0, 0 } + + +struct RpcReqWifiScanGetApRecords +{ + ProtobufCMessage base; + int32_t number; +}; +#define RPC__REQ__WIFI_SCAN_GET_AP_RECORDS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_scan_get_ap_records__descriptor) \ + , 0 } + + +struct RpcRespWifiScanGetApRecords +{ + ProtobufCMessage base; + int32_t resp; + int32_t number; + size_t n_ap_records; + WifiApRecord **ap_records; +}; +#define RPC__RESP__WIFI_SCAN_GET_AP_RECORDS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_scan_get_ap_records__descriptor) \ + , 0, 0, 0,NULL } + + +struct RpcReqWifiScanGetApRecord +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_SCAN_GET_AP_RECORD__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_scan_get_ap_record__descriptor) \ + } + + +struct RpcRespWifiScanGetApRecord +{ + ProtobufCMessage base; + int32_t resp; + WifiApRecord *ap_record; +}; +#define RPC__RESP__WIFI_SCAN_GET_AP_RECORD__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_scan_get_ap_record__descriptor) \ + , 0, NULL } + + +struct RpcReqWifiClearApList +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_CLEAR_AP_LIST__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_clear_ap_list__descriptor) \ + } + + +struct RpcRespWifiClearApList +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_CLEAR_AP_LIST__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_clear_ap_list__descriptor) \ + , 0 } + + +struct RpcReqWifiRestore +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_RESTORE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_restore__descriptor) \ + } + + +struct RpcRespWifiRestore +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_RESTORE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_restore__descriptor) \ + , 0 } + + +struct RpcReqWifiClearFastConnect +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_CLEAR_FAST_CONNECT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_clear_fast_connect__descriptor) \ + } + + +struct RpcRespWifiClearFastConnect +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_CLEAR_FAST_CONNECT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_clear_fast_connect__descriptor) \ + , 0 } + + +struct RpcReqWifiDeauthSta +{ + ProtobufCMessage base; + int32_t aid; +}; +#define RPC__REQ__WIFI_DEAUTH_STA__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_deauth_sta__descriptor) \ + , 0 } + + +struct RpcRespWifiDeauthSta +{ + ProtobufCMessage base; + int32_t resp; + int32_t aid; +}; +#define RPC__RESP__WIFI_DEAUTH_STA__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_deauth_sta__descriptor) \ + , 0, 0 } + + +struct RpcReqWifiStaGetApInfo +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_STA_GET_AP_INFO__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_sta_get_ap_info__descriptor) \ + } + + +struct RpcRespWifiStaGetApInfo +{ + ProtobufCMessage base; + int32_t resp; + WifiApRecord *ap_record; +}; +#define RPC__RESP__WIFI_STA_GET_AP_INFO__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_sta_get_ap_info__descriptor) \ + , 0, NULL } + + +struct RpcReqWifiSetProtocol +{ + ProtobufCMessage base; + int32_t ifx; + int32_t protocol_bitmap; +}; +#define RPC__REQ__WIFI_SET_PROTOCOL__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_protocol__descriptor) \ + , 0, 0 } + + +struct RpcRespWifiSetProtocol +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_SET_PROTOCOL__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_protocol__descriptor) \ + , 0 } + + +struct RpcReqWifiGetProtocol +{ + ProtobufCMessage base; + int32_t ifx; +}; +#define RPC__REQ__WIFI_GET_PROTOCOL__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_protocol__descriptor) \ + , 0 } + + +struct RpcRespWifiGetProtocol +{ + ProtobufCMessage base; + int32_t resp; + int32_t protocol_bitmap; +}; +#define RPC__RESP__WIFI_GET_PROTOCOL__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_protocol__descriptor) \ + , 0, 0 } + + +struct RpcReqWifiSetBandwidth +{ + ProtobufCMessage base; + int32_t ifx; + int32_t bw; +}; +#define RPC__REQ__WIFI_SET_BANDWIDTH__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_bandwidth__descriptor) \ + , 0, 0 } + + +struct RpcRespWifiSetBandwidth +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_SET_BANDWIDTH__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_bandwidth__descriptor) \ + , 0 } + + +struct RpcReqWifiGetBandwidth +{ + ProtobufCMessage base; + int32_t ifx; +}; +#define RPC__REQ__WIFI_GET_BANDWIDTH__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_bandwidth__descriptor) \ + , 0 } + + +struct RpcRespWifiGetBandwidth +{ + ProtobufCMessage base; + int32_t resp; + int32_t bw; +}; +#define RPC__RESP__WIFI_GET_BANDWIDTH__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_bandwidth__descriptor) \ + , 0, 0 } + + +struct RpcReqWifiSetChannel +{ + ProtobufCMessage base; + int32_t primary; + int32_t second; +}; +#define RPC__REQ__WIFI_SET_CHANNEL__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_channel__descriptor) \ + , 0, 0 } + + +struct RpcRespWifiSetChannel +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_SET_CHANNEL__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_channel__descriptor) \ + , 0 } + + +struct RpcReqWifiGetChannel +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_GET_CHANNEL__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_channel__descriptor) \ + } + + +struct RpcRespWifiGetChannel +{ + ProtobufCMessage base; + int32_t resp; + int32_t primary; + int32_t second; +}; +#define RPC__RESP__WIFI_GET_CHANNEL__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_channel__descriptor) \ + , 0, 0, 0 } + + +struct RpcReqWifiSetStorage +{ + ProtobufCMessage base; + int32_t storage; +}; +#define RPC__REQ__WIFI_SET_STORAGE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_storage__descriptor) \ + , 0 } + + +struct RpcRespWifiSetStorage +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_SET_STORAGE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_storage__descriptor) \ + , 0 } + + +struct RpcReqWifiSetCountryCode +{ + ProtobufCMessage base; + ProtobufCBinaryData country; + protobuf_c_boolean ieee80211d_enabled; +}; +#define RPC__REQ__WIFI_SET_COUNTRY_CODE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_country_code__descriptor) \ + , {0,NULL}, 0 } + + +struct RpcRespWifiSetCountryCode +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_SET_COUNTRY_CODE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_country_code__descriptor) \ + , 0 } + + +struct RpcReqWifiGetCountryCode +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_GET_COUNTRY_CODE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_country_code__descriptor) \ + } + + +struct RpcRespWifiGetCountryCode +{ + ProtobufCMessage base; + int32_t resp; + ProtobufCBinaryData country; +}; +#define RPC__RESP__WIFI_GET_COUNTRY_CODE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_country_code__descriptor) \ + , 0, {0,NULL} } + + +struct RpcReqWifiSetCountry +{ + ProtobufCMessage base; + WifiCountry *country; +}; +#define RPC__REQ__WIFI_SET_COUNTRY__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_country__descriptor) \ + , NULL } + + +struct RpcRespWifiSetCountry +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_SET_COUNTRY__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_country__descriptor) \ + , 0 } + + +struct RpcReqWifiGetCountry +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_GET_COUNTRY__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_country__descriptor) \ + } + + +struct RpcRespWifiGetCountry +{ + ProtobufCMessage base; + int32_t resp; + WifiCountry *country; +}; +#define RPC__RESP__WIFI_GET_COUNTRY__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_country__descriptor) \ + , 0, NULL } + + +struct RpcReqWifiApGetStaList +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_AP_GET_STA_LIST__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_ap_get_sta_list__descriptor) \ + } + + +struct RpcRespWifiApGetStaList +{ + ProtobufCMessage base; + int32_t resp; + WifiStaList *sta_list; +}; +#define RPC__RESP__WIFI_AP_GET_STA_LIST__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_ap_get_sta_list__descriptor) \ + , 0, NULL } + + +struct RpcReqWifiApGetStaAid +{ + ProtobufCMessage base; + ProtobufCBinaryData mac; +}; +#define RPC__REQ__WIFI_AP_GET_STA_AID__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_ap_get_sta_aid__descriptor) \ + , {0,NULL} } + + +struct RpcReqWifiStaGetNegotiatedPhymode +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_STA_GET_NEGOTIATED_PHYMODE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_sta_get_negotiated_phymode__descriptor) \ + } + + +struct RpcRespWifiStaGetNegotiatedPhymode +{ + ProtobufCMessage base; + int32_t resp; + uint32_t phymode; +}; +#define RPC__RESP__WIFI_STA_GET_NEGOTIATED_PHYMODE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_sta_get_negotiated_phymode__descriptor) \ + , 0, 0 } + + +struct RpcRespWifiApGetStaAid +{ + ProtobufCMessage base; + int32_t resp; + uint32_t aid; +}; +#define RPC__RESP__WIFI_AP_GET_STA_AID__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_ap_get_sta_aid__descriptor) \ + , 0, 0 } + + +struct RpcReqWifiStaGetRssi +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_STA_GET_RSSI__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_sta_get_rssi__descriptor) \ + } + + +struct RpcRespWifiStaGetRssi +{ + ProtobufCMessage base; + int32_t resp; + int32_t rssi; +}; +#define RPC__RESP__WIFI_STA_GET_RSSI__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_sta_get_rssi__descriptor) \ + , 0, 0 } + + +struct RpcReqWifiStaGetAid +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_STA_GET_AID__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_sta_get_aid__descriptor) \ + } + + +struct RpcRespWifiStaGetAid +{ + ProtobufCMessage base; + int32_t resp; + uint32_t aid; +}; +#define RPC__RESP__WIFI_STA_GET_AID__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_sta_get_aid__descriptor) \ + , 0, 0 } + + +struct RpcReqWifiSetProtocols +{ + ProtobufCMessage base; + int32_t ifx; + WifiProtocols *protocols; +}; +#define RPC__REQ__WIFI_SET_PROTOCOLS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_protocols__descriptor) \ + , 0, NULL } + + +struct RpcRespWifiSetProtocols +{ + ProtobufCMessage base; + int32_t resp; + uint32_t ifx; +}; +#define RPC__RESP__WIFI_SET_PROTOCOLS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_protocols__descriptor) \ + , 0, 0 } + + +struct RpcReqWifiGetProtocols +{ + ProtobufCMessage base; + int32_t ifx; +}; +#define RPC__REQ__WIFI_GET_PROTOCOLS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_protocols__descriptor) \ + , 0 } + + +struct RpcRespWifiGetProtocols +{ + ProtobufCMessage base; + int32_t resp; + int32_t ifx; + WifiProtocols *protocols; +}; +#define RPC__RESP__WIFI_GET_PROTOCOLS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_protocols__descriptor) \ + , 0, 0, NULL } + + +struct RpcReqWifiSetBandwidths +{ + ProtobufCMessage base; + int32_t ifx; + WifiBandwidths *bandwidths; +}; +#define RPC__REQ__WIFI_SET_BANDWIDTHS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_bandwidths__descriptor) \ + , 0, NULL } + + +struct RpcRespWifiSetBandwidths +{ + ProtobufCMessage base; + int32_t resp; + int32_t ifx; +}; +#define RPC__RESP__WIFI_SET_BANDWIDTHS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_bandwidths__descriptor) \ + , 0, 0 } + + +struct RpcReqWifiGetBandwidths +{ + ProtobufCMessage base; + int32_t ifx; +}; +#define RPC__REQ__WIFI_GET_BANDWIDTHS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_bandwidths__descriptor) \ + , 0 } + + +struct RpcRespWifiGetBandwidths +{ + ProtobufCMessage base; + int32_t resp; + int32_t ifx; + WifiBandwidths *bandwidths; +}; +#define RPC__RESP__WIFI_GET_BANDWIDTHS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_bandwidths__descriptor) \ + , 0, 0, NULL } + + +struct RpcReqWifiSetBand +{ + ProtobufCMessage base; + uint32_t band; +}; +#define RPC__REQ__WIFI_SET_BAND__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_band__descriptor) \ + , 0 } + + +struct RpcRespWifiSetBand +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_SET_BAND__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_band__descriptor) \ + , 0 } + + +struct RpcReqWifiGetBand +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_GET_BAND__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_band__descriptor) \ + } + + +struct RpcRespWifiGetBand +{ + ProtobufCMessage base; + int32_t resp; + uint32_t band; +}; +#define RPC__RESP__WIFI_GET_BAND__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_band__descriptor) \ + , 0, 0 } + + +struct RpcReqWifiSetBandMode +{ + ProtobufCMessage base; + uint32_t bandmode; +}; +#define RPC__REQ__WIFI_SET_BAND_MODE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_band_mode__descriptor) \ + , 0 } + + +struct RpcRespWifiSetBandMode +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_SET_BAND_MODE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_band_mode__descriptor) \ + , 0 } + + +struct RpcReqWifiGetBandMode +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_GET_BAND_MODE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_band_mode__descriptor) \ + } + + +struct RpcRespWifiGetBandMode +{ + ProtobufCMessage base; + int32_t resp; + uint32_t bandmode; +}; +#define RPC__RESP__WIFI_GET_BAND_MODE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_band_mode__descriptor) \ + , 0, 0 } + + +struct RpcReqGetCoprocessorFwVersion +{ + ProtobufCMessage base; +}; +#define RPC__REQ__GET_COPROCESSOR_FW_VERSION__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__get_coprocessor_fw_version__descriptor) \ + } + + +struct RpcRespGetCoprocessorFwVersion +{ + ProtobufCMessage base; + int32_t resp; + uint32_t major1; + uint32_t minor1; + uint32_t patch1; +}; +#define RPC__RESP__GET_COPROCESSOR_FW_VERSION__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__get_coprocessor_fw_version__descriptor) \ + , 0, 0, 0, 0 } + + +struct RpcEventWifiEventNoArgs +{ + ProtobufCMessage base; + int32_t resp; + int32_t event_id; +}; +#define RPC__EVENT__WIFI_EVENT_NO_ARGS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__event__wifi_event_no_args__descriptor) \ + , 0, 0 } + + +struct RpcEventESPInit +{ + ProtobufCMessage base; + ProtobufCBinaryData init_data; +}; +#define RPC__EVENT__ESPINIT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__event__espinit__descriptor) \ + , {0,NULL} } + + +struct RpcEventHeartbeat +{ + ProtobufCMessage base; + int32_t hb_num; +}; +#define RPC__EVENT__HEARTBEAT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__event__heartbeat__descriptor) \ + , 0 } + + +struct RpcEventAPStaDisconnected +{ + ProtobufCMessage base; + int32_t resp; + ProtobufCBinaryData mac; + uint32_t aid; + protobuf_c_boolean is_mesh_child; + uint32_t reason; +}; +#define RPC__EVENT__AP__STA_DISCONNECTED__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__event__ap__sta_disconnected__descriptor) \ + , 0, {0,NULL}, 0, 0, 0 } + + +struct RpcEventAPStaConnected +{ + ProtobufCMessage base; + int32_t resp; + ProtobufCBinaryData mac; + uint32_t aid; + protobuf_c_boolean is_mesh_child; +}; +#define RPC__EVENT__AP__STA_CONNECTED__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__event__ap__sta_connected__descriptor) \ + , 0, {0,NULL}, 0, 0 } + + +struct RpcEventStaScanDone +{ + ProtobufCMessage base; + int32_t resp; + WifiEventStaScanDone *scan_done; +}; +#define RPC__EVENT__STA_SCAN_DONE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__event__sta_scan_done__descriptor) \ + , 0, NULL } + + +struct RpcEventStaConnected +{ + ProtobufCMessage base; + int32_t resp; + WifiEventStaConnected *sta_connected; +}; +#define RPC__EVENT__STA_CONNECTED__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__event__sta_connected__descriptor) \ + , 0, NULL } + + +struct RpcEventStaDisconnected +{ + ProtobufCMessage base; + int32_t resp; + WifiEventStaDisconnected *sta_disconnected; +}; +#define RPC__EVENT__STA_DISCONNECTED__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__event__sta_disconnected__descriptor) \ + , 0, NULL } + + +typedef enum { + RPC__PAYLOAD__NOT_SET = 0, + RPC__PAYLOAD_REQ_GET_MAC_ADDRESS = 257, + RPC__PAYLOAD_REQ_SET_MAC_ADDRESS = 258, + RPC__PAYLOAD_REQ_GET_WIFI_MODE = 259, + RPC__PAYLOAD_REQ_SET_WIFI_MODE = 260, + RPC__PAYLOAD_REQ_WIFI_SET_PS = 270, + RPC__PAYLOAD_REQ_WIFI_GET_PS = 271, + RPC__PAYLOAD_REQ_OTA_BEGIN = 272, + RPC__PAYLOAD_REQ_OTA_WRITE = 273, + RPC__PAYLOAD_REQ_OTA_END = 274, + RPC__PAYLOAD_REQ_SET_WIFI_MAX_TX_POWER = 275, + RPC__PAYLOAD_REQ_GET_WIFI_MAX_TX_POWER = 276, + RPC__PAYLOAD_REQ_CONFIG_HEARTBEAT = 277, + RPC__PAYLOAD_REQ_WIFI_INIT = 278, + RPC__PAYLOAD_REQ_WIFI_DEINIT = 279, + RPC__PAYLOAD_REQ_WIFI_START = 280, + RPC__PAYLOAD_REQ_WIFI_STOP = 281, + RPC__PAYLOAD_REQ_WIFI_CONNECT = 282, + RPC__PAYLOAD_REQ_WIFI_DISCONNECT = 283, + RPC__PAYLOAD_REQ_WIFI_SET_CONFIG = 284, + RPC__PAYLOAD_REQ_WIFI_GET_CONFIG = 285, + RPC__PAYLOAD_REQ_WIFI_SCAN_START = 286, + RPC__PAYLOAD_REQ_WIFI_SCAN_STOP = 287, + RPC__PAYLOAD_REQ_WIFI_SCAN_GET_AP_NUM = 288, + RPC__PAYLOAD_REQ_WIFI_SCAN_GET_AP_RECORDS = 289, + RPC__PAYLOAD_REQ_WIFI_CLEAR_AP_LIST = 290, + RPC__PAYLOAD_REQ_WIFI_RESTORE = 291, + RPC__PAYLOAD_REQ_WIFI_CLEAR_FAST_CONNECT = 292, + RPC__PAYLOAD_REQ_WIFI_DEAUTH_STA = 293, + RPC__PAYLOAD_REQ_WIFI_STA_GET_AP_INFO = 294, + RPC__PAYLOAD_REQ_WIFI_SET_PROTOCOL = 297, + RPC__PAYLOAD_REQ_WIFI_GET_PROTOCOL = 298, + RPC__PAYLOAD_REQ_WIFI_SET_BANDWIDTH = 299, + RPC__PAYLOAD_REQ_WIFI_GET_BANDWIDTH = 300, + RPC__PAYLOAD_REQ_WIFI_SET_CHANNEL = 301, + RPC__PAYLOAD_REQ_WIFI_GET_CHANNEL = 302, + RPC__PAYLOAD_REQ_WIFI_SET_COUNTRY = 303, + RPC__PAYLOAD_REQ_WIFI_GET_COUNTRY = 304, + RPC__PAYLOAD_REQ_WIFI_AP_GET_STA_LIST = 311, + RPC__PAYLOAD_REQ_WIFI_AP_GET_STA_AID = 312, + RPC__PAYLOAD_REQ_WIFI_SET_STORAGE = 313, + RPC__PAYLOAD_REQ_WIFI_SET_COUNTRY_CODE = 334, + RPC__PAYLOAD_REQ_WIFI_GET_COUNTRY_CODE = 335, + RPC__PAYLOAD_REQ_WIFI_STA_GET_AID = 338, + RPC__PAYLOAD_REQ_WIFI_STA_GET_NEGOTIATED_PHYMODE = 339, + RPC__PAYLOAD_REQ_WIFI_STA_GET_RSSI = 341, + RPC__PAYLOAD_REQ_WIFI_SET_PROTOCOLS = 342, + RPC__PAYLOAD_REQ_WIFI_GET_PROTOCOLS = 343, + RPC__PAYLOAD_REQ_WIFI_SET_BANDWIDTHS = 344, + RPC__PAYLOAD_REQ_WIFI_GET_BANDWIDTHS = 345, + RPC__PAYLOAD_REQ_WIFI_SET_BAND = 346, + RPC__PAYLOAD_REQ_WIFI_GET_BAND = 347, + RPC__PAYLOAD_REQ_WIFI_SET_BANDMODE = 348, + RPC__PAYLOAD_REQ_WIFI_GET_BANDMODE = 349, + RPC__PAYLOAD_REQ_GET_COPROCESSOR_FWVERSION = 350, + RPC__PAYLOAD_REQ_WIFI_SCAN_GET_AP_RECORD = 351, + RPC__PAYLOAD_RESP_GET_MAC_ADDRESS = 513, + RPC__PAYLOAD_RESP_SET_MAC_ADDRESS = 514, + RPC__PAYLOAD_RESP_GET_WIFI_MODE = 515, + RPC__PAYLOAD_RESP_SET_WIFI_MODE = 516, + RPC__PAYLOAD_RESP_WIFI_SET_PS = 526, + RPC__PAYLOAD_RESP_WIFI_GET_PS = 527, + RPC__PAYLOAD_RESP_OTA_BEGIN = 528, + RPC__PAYLOAD_RESP_OTA_WRITE = 529, + RPC__PAYLOAD_RESP_OTA_END = 530, + RPC__PAYLOAD_RESP_SET_WIFI_MAX_TX_POWER = 531, + RPC__PAYLOAD_RESP_GET_WIFI_MAX_TX_POWER = 532, + RPC__PAYLOAD_RESP_CONFIG_HEARTBEAT = 533, + RPC__PAYLOAD_RESP_WIFI_INIT = 534, + RPC__PAYLOAD_RESP_WIFI_DEINIT = 535, + RPC__PAYLOAD_RESP_WIFI_START = 536, + RPC__PAYLOAD_RESP_WIFI_STOP = 537, + RPC__PAYLOAD_RESP_WIFI_CONNECT = 538, + RPC__PAYLOAD_RESP_WIFI_DISCONNECT = 539, + RPC__PAYLOAD_RESP_WIFI_SET_CONFIG = 540, + RPC__PAYLOAD_RESP_WIFI_GET_CONFIG = 541, + RPC__PAYLOAD_RESP_WIFI_SCAN_START = 542, + RPC__PAYLOAD_RESP_WIFI_SCAN_STOP = 543, + RPC__PAYLOAD_RESP_WIFI_SCAN_GET_AP_NUM = 544, + RPC__PAYLOAD_RESP_WIFI_SCAN_GET_AP_RECORDS = 545, + RPC__PAYLOAD_RESP_WIFI_CLEAR_AP_LIST = 546, + RPC__PAYLOAD_RESP_WIFI_RESTORE = 547, + RPC__PAYLOAD_RESP_WIFI_CLEAR_FAST_CONNECT = 548, + RPC__PAYLOAD_RESP_WIFI_DEAUTH_STA = 549, + RPC__PAYLOAD_RESP_WIFI_STA_GET_AP_INFO = 550, + RPC__PAYLOAD_RESP_WIFI_SET_PROTOCOL = 553, + RPC__PAYLOAD_RESP_WIFI_GET_PROTOCOL = 554, + RPC__PAYLOAD_RESP_WIFI_SET_BANDWIDTH = 555, + RPC__PAYLOAD_RESP_WIFI_GET_BANDWIDTH = 556, + RPC__PAYLOAD_RESP_WIFI_SET_CHANNEL = 557, + RPC__PAYLOAD_RESP_WIFI_GET_CHANNEL = 558, + RPC__PAYLOAD_RESP_WIFI_SET_COUNTRY = 559, + RPC__PAYLOAD_RESP_WIFI_GET_COUNTRY = 560, + RPC__PAYLOAD_RESP_WIFI_AP_GET_STA_LIST = 567, + RPC__PAYLOAD_RESP_WIFI_AP_GET_STA_AID = 568, + RPC__PAYLOAD_RESP_WIFI_SET_STORAGE = 569, + RPC__PAYLOAD_RESP_WIFI_SET_COUNTRY_CODE = 590, + RPC__PAYLOAD_RESP_WIFI_GET_COUNTRY_CODE = 591, + RPC__PAYLOAD_RESP_WIFI_STA_GET_AID = 594, + RPC__PAYLOAD_RESP_WIFI_STA_GET_NEGOTIATED_PHYMODE = 595, + RPC__PAYLOAD_RESP_WIFI_STA_GET_RSSI = 597, + RPC__PAYLOAD_RESP_WIFI_SET_PROTOCOLS = 598, + RPC__PAYLOAD_RESP_WIFI_GET_PROTOCOLS = 599, + RPC__PAYLOAD_RESP_WIFI_SET_BANDWIDTHS = 600, + RPC__PAYLOAD_RESP_WIFI_GET_BANDWIDTHS = 601, + RPC__PAYLOAD_RESP_WIFI_SET_BAND = 602, + RPC__PAYLOAD_RESP_WIFI_GET_BAND = 603, + RPC__PAYLOAD_RESP_WIFI_SET_BANDMODE = 604, + RPC__PAYLOAD_RESP_WIFI_GET_BANDMODE = 605, + RPC__PAYLOAD_RESP_GET_COPROCESSOR_FWVERSION = 606, + RPC__PAYLOAD_RESP_WIFI_SCAN_GET_AP_RECORD = 607, + RPC__PAYLOAD_EVENT_ESP_INIT = 769, + RPC__PAYLOAD_EVENT_HEARTBEAT = 770, + RPC__PAYLOAD_EVENT_AP_STA_CONNECTED = 771, + RPC__PAYLOAD_EVENT_AP_STA_DISCONNECTED = 772, + RPC__PAYLOAD_EVENT_WIFI_EVENT_NO_ARGS = 773, + RPC__PAYLOAD_EVENT_STA_SCAN_DONE = 774, + RPC__PAYLOAD_EVENT_STA_CONNECTED = 775, + RPC__PAYLOAD_EVENT_STA_DISCONNECTED = 776 + PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RPC__PAYLOAD__CASE) +} Rpc__PayloadCase; + +struct Rpc +{ + ProtobufCMessage base; + /* + * msg_type could be req, resp or Event + */ + RpcType msg_type; + /* + * msg id + */ + RpcId msg_id; + /* + * UID of message + */ + uint32_t uid; + Rpc__PayloadCase payload_case; + union { + /* + ** Requests * + */ + RpcReqGetMacAddress *req_get_mac_address; + RpcReqSetMacAddress *req_set_mac_address; + RpcReqGetMode *req_get_wifi_mode; + RpcReqSetMode *req_set_wifi_mode; + RpcReqSetPs *req_wifi_set_ps; + RpcReqGetPs *req_wifi_get_ps; + RpcReqOTABegin *req_ota_begin; + RpcReqOTAWrite *req_ota_write; + RpcReqOTAEnd *req_ota_end; + RpcReqWifiSetMaxTxPower *req_set_wifi_max_tx_power; + RpcReqWifiGetMaxTxPower *req_get_wifi_max_tx_power; + RpcReqConfigHeartbeat *req_config_heartbeat; + RpcReqWifiInit *req_wifi_init; + RpcReqWifiDeinit *req_wifi_deinit; + RpcReqWifiStart *req_wifi_start; + RpcReqWifiStop *req_wifi_stop; + RpcReqWifiConnect *req_wifi_connect; + RpcReqWifiDisconnect *req_wifi_disconnect; + RpcReqWifiSetConfig *req_wifi_set_config; + RpcReqWifiGetConfig *req_wifi_get_config; + RpcReqWifiScanStart *req_wifi_scan_start; + RpcReqWifiScanStop *req_wifi_scan_stop; + RpcReqWifiScanGetApNum *req_wifi_scan_get_ap_num; + RpcReqWifiScanGetApRecords *req_wifi_scan_get_ap_records; + RpcReqWifiClearApList *req_wifi_clear_ap_list; + RpcReqWifiRestore *req_wifi_restore; + RpcReqWifiClearFastConnect *req_wifi_clear_fast_connect; + RpcReqWifiDeauthSta *req_wifi_deauth_sta; + RpcReqWifiStaGetApInfo *req_wifi_sta_get_ap_info; + RpcReqWifiSetProtocol *req_wifi_set_protocol; + RpcReqWifiGetProtocol *req_wifi_get_protocol; + RpcReqWifiSetBandwidth *req_wifi_set_bandwidth; + RpcReqWifiGetBandwidth *req_wifi_get_bandwidth; + RpcReqWifiSetChannel *req_wifi_set_channel; + RpcReqWifiGetChannel *req_wifi_get_channel; + RpcReqWifiSetCountry *req_wifi_set_country; + RpcReqWifiGetCountry *req_wifi_get_country; + RpcReqWifiApGetStaList *req_wifi_ap_get_sta_list; + RpcReqWifiApGetStaAid *req_wifi_ap_get_sta_aid; + RpcReqWifiSetStorage *req_wifi_set_storage; + RpcReqWifiSetCountryCode *req_wifi_set_country_code; + RpcReqWifiGetCountryCode *req_wifi_get_country_code; + RpcReqWifiStaGetAid *req_wifi_sta_get_aid; + RpcReqWifiStaGetNegotiatedPhymode *req_wifi_sta_get_negotiated_phymode; + RpcReqWifiStaGetRssi *req_wifi_sta_get_rssi; + RpcReqWifiSetProtocols *req_wifi_set_protocols; + RpcReqWifiGetProtocols *req_wifi_get_protocols; + RpcReqWifiSetBandwidths *req_wifi_set_bandwidths; + RpcReqWifiGetBandwidths *req_wifi_get_bandwidths; + RpcReqWifiSetBand *req_wifi_set_band; + RpcReqWifiGetBand *req_wifi_get_band; + RpcReqWifiSetBandMode *req_wifi_set_bandmode; + RpcReqWifiGetBandMode *req_wifi_get_bandmode; + RpcReqGetCoprocessorFwVersion *req_get_coprocessor_fwversion; + RpcReqWifiScanGetApRecord *req_wifi_scan_get_ap_record; + /* + ** Responses * + */ + RpcRespGetMacAddress *resp_get_mac_address; + RpcRespSetMacAddress *resp_set_mac_address; + RpcRespGetMode *resp_get_wifi_mode; + RpcRespSetMode *resp_set_wifi_mode; + RpcRespSetPs *resp_wifi_set_ps; + RpcRespGetPs *resp_wifi_get_ps; + RpcRespOTABegin *resp_ota_begin; + RpcRespOTAWrite *resp_ota_write; + RpcRespOTAEnd *resp_ota_end; + RpcRespWifiSetMaxTxPower *resp_set_wifi_max_tx_power; + RpcRespWifiGetMaxTxPower *resp_get_wifi_max_tx_power; + RpcRespConfigHeartbeat *resp_config_heartbeat; + RpcRespWifiInit *resp_wifi_init; + RpcRespWifiDeinit *resp_wifi_deinit; + RpcRespWifiStart *resp_wifi_start; + RpcRespWifiStop *resp_wifi_stop; + RpcRespWifiConnect *resp_wifi_connect; + RpcRespWifiDisconnect *resp_wifi_disconnect; + RpcRespWifiSetConfig *resp_wifi_set_config; + RpcRespWifiGetConfig *resp_wifi_get_config; + RpcRespWifiScanStart *resp_wifi_scan_start; + RpcRespWifiScanStop *resp_wifi_scan_stop; + RpcRespWifiScanGetApNum *resp_wifi_scan_get_ap_num; + RpcRespWifiScanGetApRecords *resp_wifi_scan_get_ap_records; + RpcRespWifiClearApList *resp_wifi_clear_ap_list; + RpcRespWifiRestore *resp_wifi_restore; + RpcRespWifiClearFastConnect *resp_wifi_clear_fast_connect; + RpcRespWifiDeauthSta *resp_wifi_deauth_sta; + RpcRespWifiStaGetApInfo *resp_wifi_sta_get_ap_info; + RpcRespWifiSetProtocol *resp_wifi_set_protocol; + RpcRespWifiGetProtocol *resp_wifi_get_protocol; + RpcRespWifiSetBandwidth *resp_wifi_set_bandwidth; + RpcRespWifiGetBandwidth *resp_wifi_get_bandwidth; + RpcRespWifiSetChannel *resp_wifi_set_channel; + RpcRespWifiGetChannel *resp_wifi_get_channel; + RpcRespWifiSetCountry *resp_wifi_set_country; + RpcRespWifiGetCountry *resp_wifi_get_country; + RpcRespWifiApGetStaList *resp_wifi_ap_get_sta_list; + RpcRespWifiApGetStaAid *resp_wifi_ap_get_sta_aid; + RpcRespWifiSetStorage *resp_wifi_set_storage; + RpcRespWifiSetCountryCode *resp_wifi_set_country_code; + RpcRespWifiGetCountryCode *resp_wifi_get_country_code; + RpcRespWifiStaGetAid *resp_wifi_sta_get_aid; + RpcRespWifiStaGetNegotiatedPhymode *resp_wifi_sta_get_negotiated_phymode; + RpcRespWifiStaGetRssi *resp_wifi_sta_get_rssi; + RpcRespWifiSetProtocols *resp_wifi_set_protocols; + RpcRespWifiGetProtocols *resp_wifi_get_protocols; + RpcRespWifiSetBandwidths *resp_wifi_set_bandwidths; + RpcRespWifiGetBandwidths *resp_wifi_get_bandwidths; + RpcRespWifiSetBand *resp_wifi_set_band; + RpcRespWifiGetBand *resp_wifi_get_band; + RpcRespWifiSetBandMode *resp_wifi_set_bandmode; + RpcRespWifiGetBandMode *resp_wifi_get_bandmode; + RpcRespGetCoprocessorFwVersion *resp_get_coprocessor_fwversion; + RpcRespWifiScanGetApRecord *resp_wifi_scan_get_ap_record; + /* + ** Notifications * + */ + RpcEventESPInit *event_esp_init; + RpcEventHeartbeat *event_heartbeat; + RpcEventAPStaConnected *event_ap_sta_connected; + RpcEventAPStaDisconnected *event_ap_sta_disconnected; + RpcEventWifiEventNoArgs *event_wifi_event_no_args; + RpcEventStaScanDone *event_sta_scan_done; + RpcEventStaConnected *event_sta_connected; + RpcEventStaDisconnected *event_sta_disconnected; + }; +}; +#define RPC__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__descriptor) \ + , RPC_TYPE__MsgType_Invalid, RPC_ID__MsgId_Invalid, 0, RPC__PAYLOAD__NOT_SET, {0} } + + +/* WifiInitConfig methods */ +void wifi_init_config__init + (WifiInitConfig *message); +size_t wifi_init_config__get_packed_size + (const WifiInitConfig *message); +size_t wifi_init_config__pack + (const WifiInitConfig *message, + uint8_t *out); +size_t wifi_init_config__pack_to_buffer + (const WifiInitConfig *message, + ProtobufCBuffer *buffer); +WifiInitConfig * + wifi_init_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_init_config__free_unpacked + (WifiInitConfig *message, + ProtobufCAllocator *allocator); +/* WifiCountry methods */ +void wifi_country__init + (WifiCountry *message); +size_t wifi_country__get_packed_size + (const WifiCountry *message); +size_t wifi_country__pack + (const WifiCountry *message, + uint8_t *out); +size_t wifi_country__pack_to_buffer + (const WifiCountry *message, + ProtobufCBuffer *buffer); +WifiCountry * + wifi_country__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_country__free_unpacked + (WifiCountry *message, + ProtobufCAllocator *allocator); +/* WifiActiveScanTime methods */ +void wifi_active_scan_time__init + (WifiActiveScanTime *message); +size_t wifi_active_scan_time__get_packed_size + (const WifiActiveScanTime *message); +size_t wifi_active_scan_time__pack + (const WifiActiveScanTime *message, + uint8_t *out); +size_t wifi_active_scan_time__pack_to_buffer + (const WifiActiveScanTime *message, + ProtobufCBuffer *buffer); +WifiActiveScanTime * + wifi_active_scan_time__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_active_scan_time__free_unpacked + (WifiActiveScanTime *message, + ProtobufCAllocator *allocator); +/* WifiScanTime methods */ +void wifi_scan_time__init + (WifiScanTime *message); +size_t wifi_scan_time__get_packed_size + (const WifiScanTime *message); +size_t wifi_scan_time__pack + (const WifiScanTime *message, + uint8_t *out); +size_t wifi_scan_time__pack_to_buffer + (const WifiScanTime *message, + ProtobufCBuffer *buffer); +WifiScanTime * + wifi_scan_time__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_scan_time__free_unpacked + (WifiScanTime *message, + ProtobufCAllocator *allocator); +/* WifiScanConfig methods */ +void wifi_scan_config__init + (WifiScanConfig *message); +size_t wifi_scan_config__get_packed_size + (const WifiScanConfig *message); +size_t wifi_scan_config__pack + (const WifiScanConfig *message, + uint8_t *out); +size_t wifi_scan_config__pack_to_buffer + (const WifiScanConfig *message, + ProtobufCBuffer *buffer); +WifiScanConfig * + wifi_scan_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_scan_config__free_unpacked + (WifiScanConfig *message, + ProtobufCAllocator *allocator); +/* WifiHeApInfo methods */ +void wifi_he_ap_info__init + (WifiHeApInfo *message); +size_t wifi_he_ap_info__get_packed_size + (const WifiHeApInfo *message); +size_t wifi_he_ap_info__pack + (const WifiHeApInfo *message, + uint8_t *out); +size_t wifi_he_ap_info__pack_to_buffer + (const WifiHeApInfo *message, + ProtobufCBuffer *buffer); +WifiHeApInfo * + wifi_he_ap_info__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_he_ap_info__free_unpacked + (WifiHeApInfo *message, + ProtobufCAllocator *allocator); +/* WifiApRecord methods */ +void wifi_ap_record__init + (WifiApRecord *message); +size_t wifi_ap_record__get_packed_size + (const WifiApRecord *message); +size_t wifi_ap_record__pack + (const WifiApRecord *message, + uint8_t *out); +size_t wifi_ap_record__pack_to_buffer + (const WifiApRecord *message, + ProtobufCBuffer *buffer); +WifiApRecord * + wifi_ap_record__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_ap_record__free_unpacked + (WifiApRecord *message, + ProtobufCAllocator *allocator); +/* WifiScanThreshold methods */ +void wifi_scan_threshold__init + (WifiScanThreshold *message); +size_t wifi_scan_threshold__get_packed_size + (const WifiScanThreshold *message); +size_t wifi_scan_threshold__pack + (const WifiScanThreshold *message, + uint8_t *out); +size_t wifi_scan_threshold__pack_to_buffer + (const WifiScanThreshold *message, + ProtobufCBuffer *buffer); +WifiScanThreshold * + wifi_scan_threshold__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_scan_threshold__free_unpacked + (WifiScanThreshold *message, + ProtobufCAllocator *allocator); +/* WifiPmfConfig methods */ +void wifi_pmf_config__init + (WifiPmfConfig *message); +size_t wifi_pmf_config__get_packed_size + (const WifiPmfConfig *message); +size_t wifi_pmf_config__pack + (const WifiPmfConfig *message, + uint8_t *out); +size_t wifi_pmf_config__pack_to_buffer + (const WifiPmfConfig *message, + ProtobufCBuffer *buffer); +WifiPmfConfig * + wifi_pmf_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_pmf_config__free_unpacked + (WifiPmfConfig *message, + ProtobufCAllocator *allocator); +/* WifiApConfig methods */ +void wifi_ap_config__init + (WifiApConfig *message); +size_t wifi_ap_config__get_packed_size + (const WifiApConfig *message); +size_t wifi_ap_config__pack + (const WifiApConfig *message, + uint8_t *out); +size_t wifi_ap_config__pack_to_buffer + (const WifiApConfig *message, + ProtobufCBuffer *buffer); +WifiApConfig * + wifi_ap_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_ap_config__free_unpacked + (WifiApConfig *message, + ProtobufCAllocator *allocator); +/* WifiStaConfig methods */ +void wifi_sta_config__init + (WifiStaConfig *message); +size_t wifi_sta_config__get_packed_size + (const WifiStaConfig *message); +size_t wifi_sta_config__pack + (const WifiStaConfig *message, + uint8_t *out); +size_t wifi_sta_config__pack_to_buffer + (const WifiStaConfig *message, + ProtobufCBuffer *buffer); +WifiStaConfig * + wifi_sta_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_sta_config__free_unpacked + (WifiStaConfig *message, + ProtobufCAllocator *allocator); +/* WifiConfig methods */ +void wifi_config__init + (WifiConfig *message); +size_t wifi_config__get_packed_size + (const WifiConfig *message); +size_t wifi_config__pack + (const WifiConfig *message, + uint8_t *out); +size_t wifi_config__pack_to_buffer + (const WifiConfig *message, + ProtobufCBuffer *buffer); +WifiConfig * + wifi_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_config__free_unpacked + (WifiConfig *message, + ProtobufCAllocator *allocator); +/* WifiStaInfo methods */ +void wifi_sta_info__init + (WifiStaInfo *message); +size_t wifi_sta_info__get_packed_size + (const WifiStaInfo *message); +size_t wifi_sta_info__pack + (const WifiStaInfo *message, + uint8_t *out); +size_t wifi_sta_info__pack_to_buffer + (const WifiStaInfo *message, + ProtobufCBuffer *buffer); +WifiStaInfo * + wifi_sta_info__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_sta_info__free_unpacked + (WifiStaInfo *message, + ProtobufCAllocator *allocator); +/* WifiStaList methods */ +void wifi_sta_list__init + (WifiStaList *message); +size_t wifi_sta_list__get_packed_size + (const WifiStaList *message); +size_t wifi_sta_list__pack + (const WifiStaList *message, + uint8_t *out); +size_t wifi_sta_list__pack_to_buffer + (const WifiStaList *message, + ProtobufCBuffer *buffer); +WifiStaList * + wifi_sta_list__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_sta_list__free_unpacked + (WifiStaList *message, + ProtobufCAllocator *allocator); +/* WifiPktRxCtrl methods */ +void wifi_pkt_rx_ctrl__init + (WifiPktRxCtrl *message); +size_t wifi_pkt_rx_ctrl__get_packed_size + (const WifiPktRxCtrl *message); +size_t wifi_pkt_rx_ctrl__pack + (const WifiPktRxCtrl *message, + uint8_t *out); +size_t wifi_pkt_rx_ctrl__pack_to_buffer + (const WifiPktRxCtrl *message, + ProtobufCBuffer *buffer); +WifiPktRxCtrl * + wifi_pkt_rx_ctrl__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_pkt_rx_ctrl__free_unpacked + (WifiPktRxCtrl *message, + ProtobufCAllocator *allocator); +/* WifiPromiscuousPkt methods */ +void wifi_promiscuous_pkt__init + (WifiPromiscuousPkt *message); +size_t wifi_promiscuous_pkt__get_packed_size + (const WifiPromiscuousPkt *message); +size_t wifi_promiscuous_pkt__pack + (const WifiPromiscuousPkt *message, + uint8_t *out); +size_t wifi_promiscuous_pkt__pack_to_buffer + (const WifiPromiscuousPkt *message, + ProtobufCBuffer *buffer); +WifiPromiscuousPkt * + wifi_promiscuous_pkt__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_promiscuous_pkt__free_unpacked + (WifiPromiscuousPkt *message, + ProtobufCAllocator *allocator); +/* WifiPromiscuousFilter methods */ +void wifi_promiscuous_filter__init + (WifiPromiscuousFilter *message); +size_t wifi_promiscuous_filter__get_packed_size + (const WifiPromiscuousFilter *message); +size_t wifi_promiscuous_filter__pack + (const WifiPromiscuousFilter *message, + uint8_t *out); +size_t wifi_promiscuous_filter__pack_to_buffer + (const WifiPromiscuousFilter *message, + ProtobufCBuffer *buffer); +WifiPromiscuousFilter * + wifi_promiscuous_filter__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_promiscuous_filter__free_unpacked + (WifiPromiscuousFilter *message, + ProtobufCAllocator *allocator); +/* WifiCsiConfig methods */ +void wifi_csi_config__init + (WifiCsiConfig *message); +size_t wifi_csi_config__get_packed_size + (const WifiCsiConfig *message); +size_t wifi_csi_config__pack + (const WifiCsiConfig *message, + uint8_t *out); +size_t wifi_csi_config__pack_to_buffer + (const WifiCsiConfig *message, + ProtobufCBuffer *buffer); +WifiCsiConfig * + wifi_csi_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_csi_config__free_unpacked + (WifiCsiConfig *message, + ProtobufCAllocator *allocator); +/* WifiCsiInfo methods */ +void wifi_csi_info__init + (WifiCsiInfo *message); +size_t wifi_csi_info__get_packed_size + (const WifiCsiInfo *message); +size_t wifi_csi_info__pack + (const WifiCsiInfo *message, + uint8_t *out); +size_t wifi_csi_info__pack_to_buffer + (const WifiCsiInfo *message, + ProtobufCBuffer *buffer); +WifiCsiInfo * + wifi_csi_info__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_csi_info__free_unpacked + (WifiCsiInfo *message, + ProtobufCAllocator *allocator); +/* WifiAntGpio methods */ +void wifi_ant_gpio__init + (WifiAntGpio *message); +size_t wifi_ant_gpio__get_packed_size + (const WifiAntGpio *message); +size_t wifi_ant_gpio__pack + (const WifiAntGpio *message, + uint8_t *out); +size_t wifi_ant_gpio__pack_to_buffer + (const WifiAntGpio *message, + ProtobufCBuffer *buffer); +WifiAntGpio * + wifi_ant_gpio__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_ant_gpio__free_unpacked + (WifiAntGpio *message, + ProtobufCAllocator *allocator); +/* WifiAntGpioConfig methods */ +void wifi_ant_gpio_config__init + (WifiAntGpioConfig *message); +size_t wifi_ant_gpio_config__get_packed_size + (const WifiAntGpioConfig *message); +size_t wifi_ant_gpio_config__pack + (const WifiAntGpioConfig *message, + uint8_t *out); +size_t wifi_ant_gpio_config__pack_to_buffer + (const WifiAntGpioConfig *message, + ProtobufCBuffer *buffer); +WifiAntGpioConfig * + wifi_ant_gpio_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_ant_gpio_config__free_unpacked + (WifiAntGpioConfig *message, + ProtobufCAllocator *allocator); +/* WifiAntConfig methods */ +void wifi_ant_config__init + (WifiAntConfig *message); +size_t wifi_ant_config__get_packed_size + (const WifiAntConfig *message); +size_t wifi_ant_config__pack + (const WifiAntConfig *message, + uint8_t *out); +size_t wifi_ant_config__pack_to_buffer + (const WifiAntConfig *message, + ProtobufCBuffer *buffer); +WifiAntConfig * + wifi_ant_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_ant_config__free_unpacked + (WifiAntConfig *message, + ProtobufCAllocator *allocator); +/* WifiActionTxReq methods */ +void wifi_action_tx_req__init + (WifiActionTxReq *message); +size_t wifi_action_tx_req__get_packed_size + (const WifiActionTxReq *message); +size_t wifi_action_tx_req__pack + (const WifiActionTxReq *message, + uint8_t *out); +size_t wifi_action_tx_req__pack_to_buffer + (const WifiActionTxReq *message, + ProtobufCBuffer *buffer); +WifiActionTxReq * + wifi_action_tx_req__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_action_tx_req__free_unpacked + (WifiActionTxReq *message, + ProtobufCAllocator *allocator); +/* WifiFtmInitiatorCfg methods */ +void wifi_ftm_initiator_cfg__init + (WifiFtmInitiatorCfg *message); +size_t wifi_ftm_initiator_cfg__get_packed_size + (const WifiFtmInitiatorCfg *message); +size_t wifi_ftm_initiator_cfg__pack + (const WifiFtmInitiatorCfg *message, + uint8_t *out); +size_t wifi_ftm_initiator_cfg__pack_to_buffer + (const WifiFtmInitiatorCfg *message, + ProtobufCBuffer *buffer); +WifiFtmInitiatorCfg * + wifi_ftm_initiator_cfg__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_ftm_initiator_cfg__free_unpacked + (WifiFtmInitiatorCfg *message, + ProtobufCAllocator *allocator); +/* WifiEventStaScanDone methods */ +void wifi_event_sta_scan_done__init + (WifiEventStaScanDone *message); +size_t wifi_event_sta_scan_done__get_packed_size + (const WifiEventStaScanDone *message); +size_t wifi_event_sta_scan_done__pack + (const WifiEventStaScanDone *message, + uint8_t *out); +size_t wifi_event_sta_scan_done__pack_to_buffer + (const WifiEventStaScanDone *message, + ProtobufCBuffer *buffer); +WifiEventStaScanDone * + wifi_event_sta_scan_done__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_event_sta_scan_done__free_unpacked + (WifiEventStaScanDone *message, + ProtobufCAllocator *allocator); +/* WifiEventStaConnected methods */ +void wifi_event_sta_connected__init + (WifiEventStaConnected *message); +size_t wifi_event_sta_connected__get_packed_size + (const WifiEventStaConnected *message); +size_t wifi_event_sta_connected__pack + (const WifiEventStaConnected *message, + uint8_t *out); +size_t wifi_event_sta_connected__pack_to_buffer + (const WifiEventStaConnected *message, + ProtobufCBuffer *buffer); +WifiEventStaConnected * + wifi_event_sta_connected__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_event_sta_connected__free_unpacked + (WifiEventStaConnected *message, + ProtobufCAllocator *allocator); +/* WifiEventStaDisconnected methods */ +void wifi_event_sta_disconnected__init + (WifiEventStaDisconnected *message); +size_t wifi_event_sta_disconnected__get_packed_size + (const WifiEventStaDisconnected *message); +size_t wifi_event_sta_disconnected__pack + (const WifiEventStaDisconnected *message, + uint8_t *out); +size_t wifi_event_sta_disconnected__pack_to_buffer + (const WifiEventStaDisconnected *message, + ProtobufCBuffer *buffer); +WifiEventStaDisconnected * + wifi_event_sta_disconnected__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_event_sta_disconnected__free_unpacked + (WifiEventStaDisconnected *message, + ProtobufCAllocator *allocator); +/* WifiEventStaAuthmodeChange methods */ +void wifi_event_sta_authmode_change__init + (WifiEventStaAuthmodeChange *message); +size_t wifi_event_sta_authmode_change__get_packed_size + (const WifiEventStaAuthmodeChange *message); +size_t wifi_event_sta_authmode_change__pack + (const WifiEventStaAuthmodeChange *message, + uint8_t *out); +size_t wifi_event_sta_authmode_change__pack_to_buffer + (const WifiEventStaAuthmodeChange *message, + ProtobufCBuffer *buffer); +WifiEventStaAuthmodeChange * + wifi_event_sta_authmode_change__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_event_sta_authmode_change__free_unpacked + (WifiEventStaAuthmodeChange *message, + ProtobufCAllocator *allocator); +/* WifiEventStaWpsErPin methods */ +void wifi_event_sta_wps_er_pin__init + (WifiEventStaWpsErPin *message); +size_t wifi_event_sta_wps_er_pin__get_packed_size + (const WifiEventStaWpsErPin *message); +size_t wifi_event_sta_wps_er_pin__pack + (const WifiEventStaWpsErPin *message, + uint8_t *out); +size_t wifi_event_sta_wps_er_pin__pack_to_buffer + (const WifiEventStaWpsErPin *message, + ProtobufCBuffer *buffer); +WifiEventStaWpsErPin * + wifi_event_sta_wps_er_pin__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_event_sta_wps_er_pin__free_unpacked + (WifiEventStaWpsErPin *message, + ProtobufCAllocator *allocator); +/* ApCred methods */ +void ap_cred__init + (ApCred *message); +size_t ap_cred__get_packed_size + (const ApCred *message); +size_t ap_cred__pack + (const ApCred *message, + uint8_t *out); +size_t ap_cred__pack_to_buffer + (const ApCred *message, + ProtobufCBuffer *buffer); +ApCred * + ap_cred__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void ap_cred__free_unpacked + (ApCred *message, + ProtobufCAllocator *allocator); +/* WifiEventStaWpsErSuccess methods */ +void wifi_event_sta_wps_er_success__init + (WifiEventStaWpsErSuccess *message); +size_t wifi_event_sta_wps_er_success__get_packed_size + (const WifiEventStaWpsErSuccess *message); +size_t wifi_event_sta_wps_er_success__pack + (const WifiEventStaWpsErSuccess *message, + uint8_t *out); +size_t wifi_event_sta_wps_er_success__pack_to_buffer + (const WifiEventStaWpsErSuccess *message, + ProtobufCBuffer *buffer); +WifiEventStaWpsErSuccess * + wifi_event_sta_wps_er_success__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_event_sta_wps_er_success__free_unpacked + (WifiEventStaWpsErSuccess *message, + ProtobufCAllocator *allocator); +/* WifiEventApProbeReqRx methods */ +void wifi_event_ap_probe_req_rx__init + (WifiEventApProbeReqRx *message); +size_t wifi_event_ap_probe_req_rx__get_packed_size + (const WifiEventApProbeReqRx *message); +size_t wifi_event_ap_probe_req_rx__pack + (const WifiEventApProbeReqRx *message, + uint8_t *out); +size_t wifi_event_ap_probe_req_rx__pack_to_buffer + (const WifiEventApProbeReqRx *message, + ProtobufCBuffer *buffer); +WifiEventApProbeReqRx * + wifi_event_ap_probe_req_rx__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_event_ap_probe_req_rx__free_unpacked + (WifiEventApProbeReqRx *message, + ProtobufCAllocator *allocator); +/* WifiEventBssRssiLow methods */ +void wifi_event_bss_rssi_low__init + (WifiEventBssRssiLow *message); +size_t wifi_event_bss_rssi_low__get_packed_size + (const WifiEventBssRssiLow *message); +size_t wifi_event_bss_rssi_low__pack + (const WifiEventBssRssiLow *message, + uint8_t *out); +size_t wifi_event_bss_rssi_low__pack_to_buffer + (const WifiEventBssRssiLow *message, + ProtobufCBuffer *buffer); +WifiEventBssRssiLow * + wifi_event_bss_rssi_low__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_event_bss_rssi_low__free_unpacked + (WifiEventBssRssiLow *message, + ProtobufCAllocator *allocator); +/* WifiFtmReportEntry methods */ +void wifi_ftm_report_entry__init + (WifiFtmReportEntry *message); +size_t wifi_ftm_report_entry__get_packed_size + (const WifiFtmReportEntry *message); +size_t wifi_ftm_report_entry__pack + (const WifiFtmReportEntry *message, + uint8_t *out); +size_t wifi_ftm_report_entry__pack_to_buffer + (const WifiFtmReportEntry *message, + ProtobufCBuffer *buffer); +WifiFtmReportEntry * + wifi_ftm_report_entry__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_ftm_report_entry__free_unpacked + (WifiFtmReportEntry *message, + ProtobufCAllocator *allocator); +/* WifiEventFtmReport methods */ +void wifi_event_ftm_report__init + (WifiEventFtmReport *message); +size_t wifi_event_ftm_report__get_packed_size + (const WifiEventFtmReport *message); +size_t wifi_event_ftm_report__pack + (const WifiEventFtmReport *message, + uint8_t *out); +size_t wifi_event_ftm_report__pack_to_buffer + (const WifiEventFtmReport *message, + ProtobufCBuffer *buffer); +WifiEventFtmReport * + wifi_event_ftm_report__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_event_ftm_report__free_unpacked + (WifiEventFtmReport *message, + ProtobufCAllocator *allocator); +/* WifiEventActionTxStatus methods */ +void wifi_event_action_tx_status__init + (WifiEventActionTxStatus *message); +size_t wifi_event_action_tx_status__get_packed_size + (const WifiEventActionTxStatus *message); +size_t wifi_event_action_tx_status__pack + (const WifiEventActionTxStatus *message, + uint8_t *out); +size_t wifi_event_action_tx_status__pack_to_buffer + (const WifiEventActionTxStatus *message, + ProtobufCBuffer *buffer); +WifiEventActionTxStatus * + wifi_event_action_tx_status__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_event_action_tx_status__free_unpacked + (WifiEventActionTxStatus *message, + ProtobufCAllocator *allocator); +/* WifiEventRocDone methods */ +void wifi_event_roc_done__init + (WifiEventRocDone *message); +size_t wifi_event_roc_done__get_packed_size + (const WifiEventRocDone *message); +size_t wifi_event_roc_done__pack + (const WifiEventRocDone *message, + uint8_t *out); +size_t wifi_event_roc_done__pack_to_buffer + (const WifiEventRocDone *message, + ProtobufCBuffer *buffer); +WifiEventRocDone * + wifi_event_roc_done__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_event_roc_done__free_unpacked + (WifiEventRocDone *message, + ProtobufCAllocator *allocator); +/* WifiEventApWpsRgPin methods */ +void wifi_event_ap_wps_rg_pin__init + (WifiEventApWpsRgPin *message); +size_t wifi_event_ap_wps_rg_pin__get_packed_size + (const WifiEventApWpsRgPin *message); +size_t wifi_event_ap_wps_rg_pin__pack + (const WifiEventApWpsRgPin *message, + uint8_t *out); +size_t wifi_event_ap_wps_rg_pin__pack_to_buffer + (const WifiEventApWpsRgPin *message, + ProtobufCBuffer *buffer); +WifiEventApWpsRgPin * + wifi_event_ap_wps_rg_pin__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_event_ap_wps_rg_pin__free_unpacked + (WifiEventApWpsRgPin *message, + ProtobufCAllocator *allocator); +/* WifiEventApWpsRgFailReason methods */ +void wifi_event_ap_wps_rg_fail_reason__init + (WifiEventApWpsRgFailReason *message); +size_t wifi_event_ap_wps_rg_fail_reason__get_packed_size + (const WifiEventApWpsRgFailReason *message); +size_t wifi_event_ap_wps_rg_fail_reason__pack + (const WifiEventApWpsRgFailReason *message, + uint8_t *out); +size_t wifi_event_ap_wps_rg_fail_reason__pack_to_buffer + (const WifiEventApWpsRgFailReason *message, + ProtobufCBuffer *buffer); +WifiEventApWpsRgFailReason * + wifi_event_ap_wps_rg_fail_reason__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_event_ap_wps_rg_fail_reason__free_unpacked + (WifiEventApWpsRgFailReason *message, + ProtobufCAllocator *allocator); +/* WifiEventApWpsRgSuccess methods */ +void wifi_event_ap_wps_rg_success__init + (WifiEventApWpsRgSuccess *message); +size_t wifi_event_ap_wps_rg_success__get_packed_size + (const WifiEventApWpsRgSuccess *message); +size_t wifi_event_ap_wps_rg_success__pack + (const WifiEventApWpsRgSuccess *message, + uint8_t *out); +size_t wifi_event_ap_wps_rg_success__pack_to_buffer + (const WifiEventApWpsRgSuccess *message, + ProtobufCBuffer *buffer); +WifiEventApWpsRgSuccess * + wifi_event_ap_wps_rg_success__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_event_ap_wps_rg_success__free_unpacked + (WifiEventApWpsRgSuccess *message, + ProtobufCAllocator *allocator); +/* WifiProtocols methods */ +void wifi_protocols__init + (WifiProtocols *message); +size_t wifi_protocols__get_packed_size + (const WifiProtocols *message); +size_t wifi_protocols__pack + (const WifiProtocols *message, + uint8_t *out); +size_t wifi_protocols__pack_to_buffer + (const WifiProtocols *message, + ProtobufCBuffer *buffer); +WifiProtocols * + wifi_protocols__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_protocols__free_unpacked + (WifiProtocols *message, + ProtobufCAllocator *allocator); +/* WifiBandwidths methods */ +void wifi_bandwidths__init + (WifiBandwidths *message); +size_t wifi_bandwidths__get_packed_size + (const WifiBandwidths *message); +size_t wifi_bandwidths__pack + (const WifiBandwidths *message, + uint8_t *out); +size_t wifi_bandwidths__pack_to_buffer + (const WifiBandwidths *message, + ProtobufCBuffer *buffer); +WifiBandwidths * + wifi_bandwidths__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_bandwidths__free_unpacked + (WifiBandwidths *message, + ProtobufCAllocator *allocator); +/* ConnectedSTAList methods */ +void connected_stalist__init + (ConnectedSTAList *message); +size_t connected_stalist__get_packed_size + (const ConnectedSTAList *message); +size_t connected_stalist__pack + (const ConnectedSTAList *message, + uint8_t *out); +size_t connected_stalist__pack_to_buffer + (const ConnectedSTAList *message, + ProtobufCBuffer *buffer); +ConnectedSTAList * + connected_stalist__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void connected_stalist__free_unpacked + (ConnectedSTAList *message, + ProtobufCAllocator *allocator); +/* RpcReqGetMacAddress methods */ +void rpc__req__get_mac_address__init + (RpcReqGetMacAddress *message); +size_t rpc__req__get_mac_address__get_packed_size + (const RpcReqGetMacAddress *message); +size_t rpc__req__get_mac_address__pack + (const RpcReqGetMacAddress *message, + uint8_t *out); +size_t rpc__req__get_mac_address__pack_to_buffer + (const RpcReqGetMacAddress *message, + ProtobufCBuffer *buffer); +RpcReqGetMacAddress * + rpc__req__get_mac_address__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__get_mac_address__free_unpacked + (RpcReqGetMacAddress *message, + ProtobufCAllocator *allocator); +/* RpcRespGetMacAddress methods */ +void rpc__resp__get_mac_address__init + (RpcRespGetMacAddress *message); +size_t rpc__resp__get_mac_address__get_packed_size + (const RpcRespGetMacAddress *message); +size_t rpc__resp__get_mac_address__pack + (const RpcRespGetMacAddress *message, + uint8_t *out); +size_t rpc__resp__get_mac_address__pack_to_buffer + (const RpcRespGetMacAddress *message, + ProtobufCBuffer *buffer); +RpcRespGetMacAddress * + rpc__resp__get_mac_address__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__get_mac_address__free_unpacked + (RpcRespGetMacAddress *message, + ProtobufCAllocator *allocator); +/* RpcReqGetMode methods */ +void rpc__req__get_mode__init + (RpcReqGetMode *message); +size_t rpc__req__get_mode__get_packed_size + (const RpcReqGetMode *message); +size_t rpc__req__get_mode__pack + (const RpcReqGetMode *message, + uint8_t *out); +size_t rpc__req__get_mode__pack_to_buffer + (const RpcReqGetMode *message, + ProtobufCBuffer *buffer); +RpcReqGetMode * + rpc__req__get_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__get_mode__free_unpacked + (RpcReqGetMode *message, + ProtobufCAllocator *allocator); +/* RpcRespGetMode methods */ +void rpc__resp__get_mode__init + (RpcRespGetMode *message); +size_t rpc__resp__get_mode__get_packed_size + (const RpcRespGetMode *message); +size_t rpc__resp__get_mode__pack + (const RpcRespGetMode *message, + uint8_t *out); +size_t rpc__resp__get_mode__pack_to_buffer + (const RpcRespGetMode *message, + ProtobufCBuffer *buffer); +RpcRespGetMode * + rpc__resp__get_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__get_mode__free_unpacked + (RpcRespGetMode *message, + ProtobufCAllocator *allocator); +/* RpcReqSetMode methods */ +void rpc__req__set_mode__init + (RpcReqSetMode *message); +size_t rpc__req__set_mode__get_packed_size + (const RpcReqSetMode *message); +size_t rpc__req__set_mode__pack + (const RpcReqSetMode *message, + uint8_t *out); +size_t rpc__req__set_mode__pack_to_buffer + (const RpcReqSetMode *message, + ProtobufCBuffer *buffer); +RpcReqSetMode * + rpc__req__set_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__set_mode__free_unpacked + (RpcReqSetMode *message, + ProtobufCAllocator *allocator); +/* RpcRespSetMode methods */ +void rpc__resp__set_mode__init + (RpcRespSetMode *message); +size_t rpc__resp__set_mode__get_packed_size + (const RpcRespSetMode *message); +size_t rpc__resp__set_mode__pack + (const RpcRespSetMode *message, + uint8_t *out); +size_t rpc__resp__set_mode__pack_to_buffer + (const RpcRespSetMode *message, + ProtobufCBuffer *buffer); +RpcRespSetMode * + rpc__resp__set_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__set_mode__free_unpacked + (RpcRespSetMode *message, + ProtobufCAllocator *allocator); +/* RpcReqGetPs methods */ +void rpc__req__get_ps__init + (RpcReqGetPs *message); +size_t rpc__req__get_ps__get_packed_size + (const RpcReqGetPs *message); +size_t rpc__req__get_ps__pack + (const RpcReqGetPs *message, + uint8_t *out); +size_t rpc__req__get_ps__pack_to_buffer + (const RpcReqGetPs *message, + ProtobufCBuffer *buffer); +RpcReqGetPs * + rpc__req__get_ps__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__get_ps__free_unpacked + (RpcReqGetPs *message, + ProtobufCAllocator *allocator); +/* RpcRespGetPs methods */ +void rpc__resp__get_ps__init + (RpcRespGetPs *message); +size_t rpc__resp__get_ps__get_packed_size + (const RpcRespGetPs *message); +size_t rpc__resp__get_ps__pack + (const RpcRespGetPs *message, + uint8_t *out); +size_t rpc__resp__get_ps__pack_to_buffer + (const RpcRespGetPs *message, + ProtobufCBuffer *buffer); +RpcRespGetPs * + rpc__resp__get_ps__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__get_ps__free_unpacked + (RpcRespGetPs *message, + ProtobufCAllocator *allocator); +/* RpcReqSetPs methods */ +void rpc__req__set_ps__init + (RpcReqSetPs *message); +size_t rpc__req__set_ps__get_packed_size + (const RpcReqSetPs *message); +size_t rpc__req__set_ps__pack + (const RpcReqSetPs *message, + uint8_t *out); +size_t rpc__req__set_ps__pack_to_buffer + (const RpcReqSetPs *message, + ProtobufCBuffer *buffer); +RpcReqSetPs * + rpc__req__set_ps__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__set_ps__free_unpacked + (RpcReqSetPs *message, + ProtobufCAllocator *allocator); +/* RpcRespSetPs methods */ +void rpc__resp__set_ps__init + (RpcRespSetPs *message); +size_t rpc__resp__set_ps__get_packed_size + (const RpcRespSetPs *message); +size_t rpc__resp__set_ps__pack + (const RpcRespSetPs *message, + uint8_t *out); +size_t rpc__resp__set_ps__pack_to_buffer + (const RpcRespSetPs *message, + ProtobufCBuffer *buffer); +RpcRespSetPs * + rpc__resp__set_ps__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__set_ps__free_unpacked + (RpcRespSetPs *message, + ProtobufCAllocator *allocator); +/* RpcReqSetMacAddress methods */ +void rpc__req__set_mac_address__init + (RpcReqSetMacAddress *message); +size_t rpc__req__set_mac_address__get_packed_size + (const RpcReqSetMacAddress *message); +size_t rpc__req__set_mac_address__pack + (const RpcReqSetMacAddress *message, + uint8_t *out); +size_t rpc__req__set_mac_address__pack_to_buffer + (const RpcReqSetMacAddress *message, + ProtobufCBuffer *buffer); +RpcReqSetMacAddress * + rpc__req__set_mac_address__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__set_mac_address__free_unpacked + (RpcReqSetMacAddress *message, + ProtobufCAllocator *allocator); +/* RpcRespSetMacAddress methods */ +void rpc__resp__set_mac_address__init + (RpcRespSetMacAddress *message); +size_t rpc__resp__set_mac_address__get_packed_size + (const RpcRespSetMacAddress *message); +size_t rpc__resp__set_mac_address__pack + (const RpcRespSetMacAddress *message, + uint8_t *out); +size_t rpc__resp__set_mac_address__pack_to_buffer + (const RpcRespSetMacAddress *message, + ProtobufCBuffer *buffer); +RpcRespSetMacAddress * + rpc__resp__set_mac_address__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__set_mac_address__free_unpacked + (RpcRespSetMacAddress *message, + ProtobufCAllocator *allocator); +/* RpcReqOTABegin methods */ +void rpc__req__otabegin__init + (RpcReqOTABegin *message); +size_t rpc__req__otabegin__get_packed_size + (const RpcReqOTABegin *message); +size_t rpc__req__otabegin__pack + (const RpcReqOTABegin *message, + uint8_t *out); +size_t rpc__req__otabegin__pack_to_buffer + (const RpcReqOTABegin *message, + ProtobufCBuffer *buffer); +RpcReqOTABegin * + rpc__req__otabegin__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__otabegin__free_unpacked + (RpcReqOTABegin *message, + ProtobufCAllocator *allocator); +/* RpcRespOTABegin methods */ +void rpc__resp__otabegin__init + (RpcRespOTABegin *message); +size_t rpc__resp__otabegin__get_packed_size + (const RpcRespOTABegin *message); +size_t rpc__resp__otabegin__pack + (const RpcRespOTABegin *message, + uint8_t *out); +size_t rpc__resp__otabegin__pack_to_buffer + (const RpcRespOTABegin *message, + ProtobufCBuffer *buffer); +RpcRespOTABegin * + rpc__resp__otabegin__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__otabegin__free_unpacked + (RpcRespOTABegin *message, + ProtobufCAllocator *allocator); +/* RpcReqOTAWrite methods */ +void rpc__req__otawrite__init + (RpcReqOTAWrite *message); +size_t rpc__req__otawrite__get_packed_size + (const RpcReqOTAWrite *message); +size_t rpc__req__otawrite__pack + (const RpcReqOTAWrite *message, + uint8_t *out); +size_t rpc__req__otawrite__pack_to_buffer + (const RpcReqOTAWrite *message, + ProtobufCBuffer *buffer); +RpcReqOTAWrite * + rpc__req__otawrite__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__otawrite__free_unpacked + (RpcReqOTAWrite *message, + ProtobufCAllocator *allocator); +/* RpcRespOTAWrite methods */ +void rpc__resp__otawrite__init + (RpcRespOTAWrite *message); +size_t rpc__resp__otawrite__get_packed_size + (const RpcRespOTAWrite *message); +size_t rpc__resp__otawrite__pack + (const RpcRespOTAWrite *message, + uint8_t *out); +size_t rpc__resp__otawrite__pack_to_buffer + (const RpcRespOTAWrite *message, + ProtobufCBuffer *buffer); +RpcRespOTAWrite * + rpc__resp__otawrite__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__otawrite__free_unpacked + (RpcRespOTAWrite *message, + ProtobufCAllocator *allocator); +/* RpcReqOTAEnd methods */ +void rpc__req__otaend__init + (RpcReqOTAEnd *message); +size_t rpc__req__otaend__get_packed_size + (const RpcReqOTAEnd *message); +size_t rpc__req__otaend__pack + (const RpcReqOTAEnd *message, + uint8_t *out); +size_t rpc__req__otaend__pack_to_buffer + (const RpcReqOTAEnd *message, + ProtobufCBuffer *buffer); +RpcReqOTAEnd * + rpc__req__otaend__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__otaend__free_unpacked + (RpcReqOTAEnd *message, + ProtobufCAllocator *allocator); +/* RpcRespOTAEnd methods */ +void rpc__resp__otaend__init + (RpcRespOTAEnd *message); +size_t rpc__resp__otaend__get_packed_size + (const RpcRespOTAEnd *message); +size_t rpc__resp__otaend__pack + (const RpcRespOTAEnd *message, + uint8_t *out); +size_t rpc__resp__otaend__pack_to_buffer + (const RpcRespOTAEnd *message, + ProtobufCBuffer *buffer); +RpcRespOTAEnd * + rpc__resp__otaend__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__otaend__free_unpacked + (RpcRespOTAEnd *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiSetMaxTxPower methods */ +void rpc__req__wifi_set_max_tx_power__init + (RpcReqWifiSetMaxTxPower *message); +size_t rpc__req__wifi_set_max_tx_power__get_packed_size + (const RpcReqWifiSetMaxTxPower *message); +size_t rpc__req__wifi_set_max_tx_power__pack + (const RpcReqWifiSetMaxTxPower *message, + uint8_t *out); +size_t rpc__req__wifi_set_max_tx_power__pack_to_buffer + (const RpcReqWifiSetMaxTxPower *message, + ProtobufCBuffer *buffer); +RpcReqWifiSetMaxTxPower * + rpc__req__wifi_set_max_tx_power__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_set_max_tx_power__free_unpacked + (RpcReqWifiSetMaxTxPower *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiSetMaxTxPower methods */ +void rpc__resp__wifi_set_max_tx_power__init + (RpcRespWifiSetMaxTxPower *message); +size_t rpc__resp__wifi_set_max_tx_power__get_packed_size + (const RpcRespWifiSetMaxTxPower *message); +size_t rpc__resp__wifi_set_max_tx_power__pack + (const RpcRespWifiSetMaxTxPower *message, + uint8_t *out); +size_t rpc__resp__wifi_set_max_tx_power__pack_to_buffer + (const RpcRespWifiSetMaxTxPower *message, + ProtobufCBuffer *buffer); +RpcRespWifiSetMaxTxPower * + rpc__resp__wifi_set_max_tx_power__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_set_max_tx_power__free_unpacked + (RpcRespWifiSetMaxTxPower *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiGetMaxTxPower methods */ +void rpc__req__wifi_get_max_tx_power__init + (RpcReqWifiGetMaxTxPower *message); +size_t rpc__req__wifi_get_max_tx_power__get_packed_size + (const RpcReqWifiGetMaxTxPower *message); +size_t rpc__req__wifi_get_max_tx_power__pack + (const RpcReqWifiGetMaxTxPower *message, + uint8_t *out); +size_t rpc__req__wifi_get_max_tx_power__pack_to_buffer + (const RpcReqWifiGetMaxTxPower *message, + ProtobufCBuffer *buffer); +RpcReqWifiGetMaxTxPower * + rpc__req__wifi_get_max_tx_power__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_get_max_tx_power__free_unpacked + (RpcReqWifiGetMaxTxPower *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiGetMaxTxPower methods */ +void rpc__resp__wifi_get_max_tx_power__init + (RpcRespWifiGetMaxTxPower *message); +size_t rpc__resp__wifi_get_max_tx_power__get_packed_size + (const RpcRespWifiGetMaxTxPower *message); +size_t rpc__resp__wifi_get_max_tx_power__pack + (const RpcRespWifiGetMaxTxPower *message, + uint8_t *out); +size_t rpc__resp__wifi_get_max_tx_power__pack_to_buffer + (const RpcRespWifiGetMaxTxPower *message, + ProtobufCBuffer *buffer); +RpcRespWifiGetMaxTxPower * + rpc__resp__wifi_get_max_tx_power__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_get_max_tx_power__free_unpacked + (RpcRespWifiGetMaxTxPower *message, + ProtobufCAllocator *allocator); +/* RpcReqConfigHeartbeat methods */ +void rpc__req__config_heartbeat__init + (RpcReqConfigHeartbeat *message); +size_t rpc__req__config_heartbeat__get_packed_size + (const RpcReqConfigHeartbeat *message); +size_t rpc__req__config_heartbeat__pack + (const RpcReqConfigHeartbeat *message, + uint8_t *out); +size_t rpc__req__config_heartbeat__pack_to_buffer + (const RpcReqConfigHeartbeat *message, + ProtobufCBuffer *buffer); +RpcReqConfigHeartbeat * + rpc__req__config_heartbeat__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__config_heartbeat__free_unpacked + (RpcReqConfigHeartbeat *message, + ProtobufCAllocator *allocator); +/* RpcRespConfigHeartbeat methods */ +void rpc__resp__config_heartbeat__init + (RpcRespConfigHeartbeat *message); +size_t rpc__resp__config_heartbeat__get_packed_size + (const RpcRespConfigHeartbeat *message); +size_t rpc__resp__config_heartbeat__pack + (const RpcRespConfigHeartbeat *message, + uint8_t *out); +size_t rpc__resp__config_heartbeat__pack_to_buffer + (const RpcRespConfigHeartbeat *message, + ProtobufCBuffer *buffer); +RpcRespConfigHeartbeat * + rpc__resp__config_heartbeat__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__config_heartbeat__free_unpacked + (RpcRespConfigHeartbeat *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiInit methods */ +void rpc__req__wifi_init__init + (RpcReqWifiInit *message); +size_t rpc__req__wifi_init__get_packed_size + (const RpcReqWifiInit *message); +size_t rpc__req__wifi_init__pack + (const RpcReqWifiInit *message, + uint8_t *out); +size_t rpc__req__wifi_init__pack_to_buffer + (const RpcReqWifiInit *message, + ProtobufCBuffer *buffer); +RpcReqWifiInit * + rpc__req__wifi_init__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_init__free_unpacked + (RpcReqWifiInit *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiInit methods */ +void rpc__resp__wifi_init__init + (RpcRespWifiInit *message); +size_t rpc__resp__wifi_init__get_packed_size + (const RpcRespWifiInit *message); +size_t rpc__resp__wifi_init__pack + (const RpcRespWifiInit *message, + uint8_t *out); +size_t rpc__resp__wifi_init__pack_to_buffer + (const RpcRespWifiInit *message, + ProtobufCBuffer *buffer); +RpcRespWifiInit * + rpc__resp__wifi_init__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_init__free_unpacked + (RpcRespWifiInit *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiDeinit methods */ +void rpc__req__wifi_deinit__init + (RpcReqWifiDeinit *message); +size_t rpc__req__wifi_deinit__get_packed_size + (const RpcReqWifiDeinit *message); +size_t rpc__req__wifi_deinit__pack + (const RpcReqWifiDeinit *message, + uint8_t *out); +size_t rpc__req__wifi_deinit__pack_to_buffer + (const RpcReqWifiDeinit *message, + ProtobufCBuffer *buffer); +RpcReqWifiDeinit * + rpc__req__wifi_deinit__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_deinit__free_unpacked + (RpcReqWifiDeinit *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiDeinit methods */ +void rpc__resp__wifi_deinit__init + (RpcRespWifiDeinit *message); +size_t rpc__resp__wifi_deinit__get_packed_size + (const RpcRespWifiDeinit *message); +size_t rpc__resp__wifi_deinit__pack + (const RpcRespWifiDeinit *message, + uint8_t *out); +size_t rpc__resp__wifi_deinit__pack_to_buffer + (const RpcRespWifiDeinit *message, + ProtobufCBuffer *buffer); +RpcRespWifiDeinit * + rpc__resp__wifi_deinit__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_deinit__free_unpacked + (RpcRespWifiDeinit *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiSetConfig methods */ +void rpc__req__wifi_set_config__init + (RpcReqWifiSetConfig *message); +size_t rpc__req__wifi_set_config__get_packed_size + (const RpcReqWifiSetConfig *message); +size_t rpc__req__wifi_set_config__pack + (const RpcReqWifiSetConfig *message, + uint8_t *out); +size_t rpc__req__wifi_set_config__pack_to_buffer + (const RpcReqWifiSetConfig *message, + ProtobufCBuffer *buffer); +RpcReqWifiSetConfig * + rpc__req__wifi_set_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_set_config__free_unpacked + (RpcReqWifiSetConfig *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiSetConfig methods */ +void rpc__resp__wifi_set_config__init + (RpcRespWifiSetConfig *message); +size_t rpc__resp__wifi_set_config__get_packed_size + (const RpcRespWifiSetConfig *message); +size_t rpc__resp__wifi_set_config__pack + (const RpcRespWifiSetConfig *message, + uint8_t *out); +size_t rpc__resp__wifi_set_config__pack_to_buffer + (const RpcRespWifiSetConfig *message, + ProtobufCBuffer *buffer); +RpcRespWifiSetConfig * + rpc__resp__wifi_set_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_set_config__free_unpacked + (RpcRespWifiSetConfig *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiGetConfig methods */ +void rpc__req__wifi_get_config__init + (RpcReqWifiGetConfig *message); +size_t rpc__req__wifi_get_config__get_packed_size + (const RpcReqWifiGetConfig *message); +size_t rpc__req__wifi_get_config__pack + (const RpcReqWifiGetConfig *message, + uint8_t *out); +size_t rpc__req__wifi_get_config__pack_to_buffer + (const RpcReqWifiGetConfig *message, + ProtobufCBuffer *buffer); +RpcReqWifiGetConfig * + rpc__req__wifi_get_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_get_config__free_unpacked + (RpcReqWifiGetConfig *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiGetConfig methods */ +void rpc__resp__wifi_get_config__init + (RpcRespWifiGetConfig *message); +size_t rpc__resp__wifi_get_config__get_packed_size + (const RpcRespWifiGetConfig *message); +size_t rpc__resp__wifi_get_config__pack + (const RpcRespWifiGetConfig *message, + uint8_t *out); +size_t rpc__resp__wifi_get_config__pack_to_buffer + (const RpcRespWifiGetConfig *message, + ProtobufCBuffer *buffer); +RpcRespWifiGetConfig * + rpc__resp__wifi_get_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_get_config__free_unpacked + (RpcRespWifiGetConfig *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiConnect methods */ +void rpc__req__wifi_connect__init + (RpcReqWifiConnect *message); +size_t rpc__req__wifi_connect__get_packed_size + (const RpcReqWifiConnect *message); +size_t rpc__req__wifi_connect__pack + (const RpcReqWifiConnect *message, + uint8_t *out); +size_t rpc__req__wifi_connect__pack_to_buffer + (const RpcReqWifiConnect *message, + ProtobufCBuffer *buffer); +RpcReqWifiConnect * + rpc__req__wifi_connect__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_connect__free_unpacked + (RpcReqWifiConnect *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiConnect methods */ +void rpc__resp__wifi_connect__init + (RpcRespWifiConnect *message); +size_t rpc__resp__wifi_connect__get_packed_size + (const RpcRespWifiConnect *message); +size_t rpc__resp__wifi_connect__pack + (const RpcRespWifiConnect *message, + uint8_t *out); +size_t rpc__resp__wifi_connect__pack_to_buffer + (const RpcRespWifiConnect *message, + ProtobufCBuffer *buffer); +RpcRespWifiConnect * + rpc__resp__wifi_connect__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_connect__free_unpacked + (RpcRespWifiConnect *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiDisconnect methods */ +void rpc__req__wifi_disconnect__init + (RpcReqWifiDisconnect *message); +size_t rpc__req__wifi_disconnect__get_packed_size + (const RpcReqWifiDisconnect *message); +size_t rpc__req__wifi_disconnect__pack + (const RpcReqWifiDisconnect *message, + uint8_t *out); +size_t rpc__req__wifi_disconnect__pack_to_buffer + (const RpcReqWifiDisconnect *message, + ProtobufCBuffer *buffer); +RpcReqWifiDisconnect * + rpc__req__wifi_disconnect__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_disconnect__free_unpacked + (RpcReqWifiDisconnect *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiDisconnect methods */ +void rpc__resp__wifi_disconnect__init + (RpcRespWifiDisconnect *message); +size_t rpc__resp__wifi_disconnect__get_packed_size + (const RpcRespWifiDisconnect *message); +size_t rpc__resp__wifi_disconnect__pack + (const RpcRespWifiDisconnect *message, + uint8_t *out); +size_t rpc__resp__wifi_disconnect__pack_to_buffer + (const RpcRespWifiDisconnect *message, + ProtobufCBuffer *buffer); +RpcRespWifiDisconnect * + rpc__resp__wifi_disconnect__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_disconnect__free_unpacked + (RpcRespWifiDisconnect *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiStart methods */ +void rpc__req__wifi_start__init + (RpcReqWifiStart *message); +size_t rpc__req__wifi_start__get_packed_size + (const RpcReqWifiStart *message); +size_t rpc__req__wifi_start__pack + (const RpcReqWifiStart *message, + uint8_t *out); +size_t rpc__req__wifi_start__pack_to_buffer + (const RpcReqWifiStart *message, + ProtobufCBuffer *buffer); +RpcReqWifiStart * + rpc__req__wifi_start__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_start__free_unpacked + (RpcReqWifiStart *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiStart methods */ +void rpc__resp__wifi_start__init + (RpcRespWifiStart *message); +size_t rpc__resp__wifi_start__get_packed_size + (const RpcRespWifiStart *message); +size_t rpc__resp__wifi_start__pack + (const RpcRespWifiStart *message, + uint8_t *out); +size_t rpc__resp__wifi_start__pack_to_buffer + (const RpcRespWifiStart *message, + ProtobufCBuffer *buffer); +RpcRespWifiStart * + rpc__resp__wifi_start__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_start__free_unpacked + (RpcRespWifiStart *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiStop methods */ +void rpc__req__wifi_stop__init + (RpcReqWifiStop *message); +size_t rpc__req__wifi_stop__get_packed_size + (const RpcReqWifiStop *message); +size_t rpc__req__wifi_stop__pack + (const RpcReqWifiStop *message, + uint8_t *out); +size_t rpc__req__wifi_stop__pack_to_buffer + (const RpcReqWifiStop *message, + ProtobufCBuffer *buffer); +RpcReqWifiStop * + rpc__req__wifi_stop__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_stop__free_unpacked + (RpcReqWifiStop *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiStop methods */ +void rpc__resp__wifi_stop__init + (RpcRespWifiStop *message); +size_t rpc__resp__wifi_stop__get_packed_size + (const RpcRespWifiStop *message); +size_t rpc__resp__wifi_stop__pack + (const RpcRespWifiStop *message, + uint8_t *out); +size_t rpc__resp__wifi_stop__pack_to_buffer + (const RpcRespWifiStop *message, + ProtobufCBuffer *buffer); +RpcRespWifiStop * + rpc__resp__wifi_stop__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_stop__free_unpacked + (RpcRespWifiStop *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiScanStart methods */ +void rpc__req__wifi_scan_start__init + (RpcReqWifiScanStart *message); +size_t rpc__req__wifi_scan_start__get_packed_size + (const RpcReqWifiScanStart *message); +size_t rpc__req__wifi_scan_start__pack + (const RpcReqWifiScanStart *message, + uint8_t *out); +size_t rpc__req__wifi_scan_start__pack_to_buffer + (const RpcReqWifiScanStart *message, + ProtobufCBuffer *buffer); +RpcReqWifiScanStart * + rpc__req__wifi_scan_start__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_scan_start__free_unpacked + (RpcReqWifiScanStart *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiScanStart methods */ +void rpc__resp__wifi_scan_start__init + (RpcRespWifiScanStart *message); +size_t rpc__resp__wifi_scan_start__get_packed_size + (const RpcRespWifiScanStart *message); +size_t rpc__resp__wifi_scan_start__pack + (const RpcRespWifiScanStart *message, + uint8_t *out); +size_t rpc__resp__wifi_scan_start__pack_to_buffer + (const RpcRespWifiScanStart *message, + ProtobufCBuffer *buffer); +RpcRespWifiScanStart * + rpc__resp__wifi_scan_start__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_scan_start__free_unpacked + (RpcRespWifiScanStart *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiScanStop methods */ +void rpc__req__wifi_scan_stop__init + (RpcReqWifiScanStop *message); +size_t rpc__req__wifi_scan_stop__get_packed_size + (const RpcReqWifiScanStop *message); +size_t rpc__req__wifi_scan_stop__pack + (const RpcReqWifiScanStop *message, + uint8_t *out); +size_t rpc__req__wifi_scan_stop__pack_to_buffer + (const RpcReqWifiScanStop *message, + ProtobufCBuffer *buffer); +RpcReqWifiScanStop * + rpc__req__wifi_scan_stop__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_scan_stop__free_unpacked + (RpcReqWifiScanStop *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiScanStop methods */ +void rpc__resp__wifi_scan_stop__init + (RpcRespWifiScanStop *message); +size_t rpc__resp__wifi_scan_stop__get_packed_size + (const RpcRespWifiScanStop *message); +size_t rpc__resp__wifi_scan_stop__pack + (const RpcRespWifiScanStop *message, + uint8_t *out); +size_t rpc__resp__wifi_scan_stop__pack_to_buffer + (const RpcRespWifiScanStop *message, + ProtobufCBuffer *buffer); +RpcRespWifiScanStop * + rpc__resp__wifi_scan_stop__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_scan_stop__free_unpacked + (RpcRespWifiScanStop *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiScanGetApNum methods */ +void rpc__req__wifi_scan_get_ap_num__init + (RpcReqWifiScanGetApNum *message); +size_t rpc__req__wifi_scan_get_ap_num__get_packed_size + (const RpcReqWifiScanGetApNum *message); +size_t rpc__req__wifi_scan_get_ap_num__pack + (const RpcReqWifiScanGetApNum *message, + uint8_t *out); +size_t rpc__req__wifi_scan_get_ap_num__pack_to_buffer + (const RpcReqWifiScanGetApNum *message, + ProtobufCBuffer *buffer); +RpcReqWifiScanGetApNum * + rpc__req__wifi_scan_get_ap_num__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_scan_get_ap_num__free_unpacked + (RpcReqWifiScanGetApNum *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiScanGetApNum methods */ +void rpc__resp__wifi_scan_get_ap_num__init + (RpcRespWifiScanGetApNum *message); +size_t rpc__resp__wifi_scan_get_ap_num__get_packed_size + (const RpcRespWifiScanGetApNum *message); +size_t rpc__resp__wifi_scan_get_ap_num__pack + (const RpcRespWifiScanGetApNum *message, + uint8_t *out); +size_t rpc__resp__wifi_scan_get_ap_num__pack_to_buffer + (const RpcRespWifiScanGetApNum *message, + ProtobufCBuffer *buffer); +RpcRespWifiScanGetApNum * + rpc__resp__wifi_scan_get_ap_num__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_scan_get_ap_num__free_unpacked + (RpcRespWifiScanGetApNum *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiScanGetApRecords methods */ +void rpc__req__wifi_scan_get_ap_records__init + (RpcReqWifiScanGetApRecords *message); +size_t rpc__req__wifi_scan_get_ap_records__get_packed_size + (const RpcReqWifiScanGetApRecords *message); +size_t rpc__req__wifi_scan_get_ap_records__pack + (const RpcReqWifiScanGetApRecords *message, + uint8_t *out); +size_t rpc__req__wifi_scan_get_ap_records__pack_to_buffer + (const RpcReqWifiScanGetApRecords *message, + ProtobufCBuffer *buffer); +RpcReqWifiScanGetApRecords * + rpc__req__wifi_scan_get_ap_records__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_scan_get_ap_records__free_unpacked + (RpcReqWifiScanGetApRecords *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiScanGetApRecords methods */ +void rpc__resp__wifi_scan_get_ap_records__init + (RpcRespWifiScanGetApRecords *message); +size_t rpc__resp__wifi_scan_get_ap_records__get_packed_size + (const RpcRespWifiScanGetApRecords *message); +size_t rpc__resp__wifi_scan_get_ap_records__pack + (const RpcRespWifiScanGetApRecords *message, + uint8_t *out); +size_t rpc__resp__wifi_scan_get_ap_records__pack_to_buffer + (const RpcRespWifiScanGetApRecords *message, + ProtobufCBuffer *buffer); +RpcRespWifiScanGetApRecords * + rpc__resp__wifi_scan_get_ap_records__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_scan_get_ap_records__free_unpacked + (RpcRespWifiScanGetApRecords *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiScanGetApRecord methods */ +void rpc__req__wifi_scan_get_ap_record__init + (RpcReqWifiScanGetApRecord *message); +size_t rpc__req__wifi_scan_get_ap_record__get_packed_size + (const RpcReqWifiScanGetApRecord *message); +size_t rpc__req__wifi_scan_get_ap_record__pack + (const RpcReqWifiScanGetApRecord *message, + uint8_t *out); +size_t rpc__req__wifi_scan_get_ap_record__pack_to_buffer + (const RpcReqWifiScanGetApRecord *message, + ProtobufCBuffer *buffer); +RpcReqWifiScanGetApRecord * + rpc__req__wifi_scan_get_ap_record__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_scan_get_ap_record__free_unpacked + (RpcReqWifiScanGetApRecord *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiScanGetApRecord methods */ +void rpc__resp__wifi_scan_get_ap_record__init + (RpcRespWifiScanGetApRecord *message); +size_t rpc__resp__wifi_scan_get_ap_record__get_packed_size + (const RpcRespWifiScanGetApRecord *message); +size_t rpc__resp__wifi_scan_get_ap_record__pack + (const RpcRespWifiScanGetApRecord *message, + uint8_t *out); +size_t rpc__resp__wifi_scan_get_ap_record__pack_to_buffer + (const RpcRespWifiScanGetApRecord *message, + ProtobufCBuffer *buffer); +RpcRespWifiScanGetApRecord * + rpc__resp__wifi_scan_get_ap_record__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_scan_get_ap_record__free_unpacked + (RpcRespWifiScanGetApRecord *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiClearApList methods */ +void rpc__req__wifi_clear_ap_list__init + (RpcReqWifiClearApList *message); +size_t rpc__req__wifi_clear_ap_list__get_packed_size + (const RpcReqWifiClearApList *message); +size_t rpc__req__wifi_clear_ap_list__pack + (const RpcReqWifiClearApList *message, + uint8_t *out); +size_t rpc__req__wifi_clear_ap_list__pack_to_buffer + (const RpcReqWifiClearApList *message, + ProtobufCBuffer *buffer); +RpcReqWifiClearApList * + rpc__req__wifi_clear_ap_list__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_clear_ap_list__free_unpacked + (RpcReqWifiClearApList *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiClearApList methods */ +void rpc__resp__wifi_clear_ap_list__init + (RpcRespWifiClearApList *message); +size_t rpc__resp__wifi_clear_ap_list__get_packed_size + (const RpcRespWifiClearApList *message); +size_t rpc__resp__wifi_clear_ap_list__pack + (const RpcRespWifiClearApList *message, + uint8_t *out); +size_t rpc__resp__wifi_clear_ap_list__pack_to_buffer + (const RpcRespWifiClearApList *message, + ProtobufCBuffer *buffer); +RpcRespWifiClearApList * + rpc__resp__wifi_clear_ap_list__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_clear_ap_list__free_unpacked + (RpcRespWifiClearApList *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiRestore methods */ +void rpc__req__wifi_restore__init + (RpcReqWifiRestore *message); +size_t rpc__req__wifi_restore__get_packed_size + (const RpcReqWifiRestore *message); +size_t rpc__req__wifi_restore__pack + (const RpcReqWifiRestore *message, + uint8_t *out); +size_t rpc__req__wifi_restore__pack_to_buffer + (const RpcReqWifiRestore *message, + ProtobufCBuffer *buffer); +RpcReqWifiRestore * + rpc__req__wifi_restore__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_restore__free_unpacked + (RpcReqWifiRestore *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiRestore methods */ +void rpc__resp__wifi_restore__init + (RpcRespWifiRestore *message); +size_t rpc__resp__wifi_restore__get_packed_size + (const RpcRespWifiRestore *message); +size_t rpc__resp__wifi_restore__pack + (const RpcRespWifiRestore *message, + uint8_t *out); +size_t rpc__resp__wifi_restore__pack_to_buffer + (const RpcRespWifiRestore *message, + ProtobufCBuffer *buffer); +RpcRespWifiRestore * + rpc__resp__wifi_restore__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_restore__free_unpacked + (RpcRespWifiRestore *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiClearFastConnect methods */ +void rpc__req__wifi_clear_fast_connect__init + (RpcReqWifiClearFastConnect *message); +size_t rpc__req__wifi_clear_fast_connect__get_packed_size + (const RpcReqWifiClearFastConnect *message); +size_t rpc__req__wifi_clear_fast_connect__pack + (const RpcReqWifiClearFastConnect *message, + uint8_t *out); +size_t rpc__req__wifi_clear_fast_connect__pack_to_buffer + (const RpcReqWifiClearFastConnect *message, + ProtobufCBuffer *buffer); +RpcReqWifiClearFastConnect * + rpc__req__wifi_clear_fast_connect__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_clear_fast_connect__free_unpacked + (RpcReqWifiClearFastConnect *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiClearFastConnect methods */ +void rpc__resp__wifi_clear_fast_connect__init + (RpcRespWifiClearFastConnect *message); +size_t rpc__resp__wifi_clear_fast_connect__get_packed_size + (const RpcRespWifiClearFastConnect *message); +size_t rpc__resp__wifi_clear_fast_connect__pack + (const RpcRespWifiClearFastConnect *message, + uint8_t *out); +size_t rpc__resp__wifi_clear_fast_connect__pack_to_buffer + (const RpcRespWifiClearFastConnect *message, + ProtobufCBuffer *buffer); +RpcRespWifiClearFastConnect * + rpc__resp__wifi_clear_fast_connect__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_clear_fast_connect__free_unpacked + (RpcRespWifiClearFastConnect *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiDeauthSta methods */ +void rpc__req__wifi_deauth_sta__init + (RpcReqWifiDeauthSta *message); +size_t rpc__req__wifi_deauth_sta__get_packed_size + (const RpcReqWifiDeauthSta *message); +size_t rpc__req__wifi_deauth_sta__pack + (const RpcReqWifiDeauthSta *message, + uint8_t *out); +size_t rpc__req__wifi_deauth_sta__pack_to_buffer + (const RpcReqWifiDeauthSta *message, + ProtobufCBuffer *buffer); +RpcReqWifiDeauthSta * + rpc__req__wifi_deauth_sta__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_deauth_sta__free_unpacked + (RpcReqWifiDeauthSta *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiDeauthSta methods */ +void rpc__resp__wifi_deauth_sta__init + (RpcRespWifiDeauthSta *message); +size_t rpc__resp__wifi_deauth_sta__get_packed_size + (const RpcRespWifiDeauthSta *message); +size_t rpc__resp__wifi_deauth_sta__pack + (const RpcRespWifiDeauthSta *message, + uint8_t *out); +size_t rpc__resp__wifi_deauth_sta__pack_to_buffer + (const RpcRespWifiDeauthSta *message, + ProtobufCBuffer *buffer); +RpcRespWifiDeauthSta * + rpc__resp__wifi_deauth_sta__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_deauth_sta__free_unpacked + (RpcRespWifiDeauthSta *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiStaGetApInfo methods */ +void rpc__req__wifi_sta_get_ap_info__init + (RpcReqWifiStaGetApInfo *message); +size_t rpc__req__wifi_sta_get_ap_info__get_packed_size + (const RpcReqWifiStaGetApInfo *message); +size_t rpc__req__wifi_sta_get_ap_info__pack + (const RpcReqWifiStaGetApInfo *message, + uint8_t *out); +size_t rpc__req__wifi_sta_get_ap_info__pack_to_buffer + (const RpcReqWifiStaGetApInfo *message, + ProtobufCBuffer *buffer); +RpcReqWifiStaGetApInfo * + rpc__req__wifi_sta_get_ap_info__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_sta_get_ap_info__free_unpacked + (RpcReqWifiStaGetApInfo *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiStaGetApInfo methods */ +void rpc__resp__wifi_sta_get_ap_info__init + (RpcRespWifiStaGetApInfo *message); +size_t rpc__resp__wifi_sta_get_ap_info__get_packed_size + (const RpcRespWifiStaGetApInfo *message); +size_t rpc__resp__wifi_sta_get_ap_info__pack + (const RpcRespWifiStaGetApInfo *message, + uint8_t *out); +size_t rpc__resp__wifi_sta_get_ap_info__pack_to_buffer + (const RpcRespWifiStaGetApInfo *message, + ProtobufCBuffer *buffer); +RpcRespWifiStaGetApInfo * + rpc__resp__wifi_sta_get_ap_info__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_sta_get_ap_info__free_unpacked + (RpcRespWifiStaGetApInfo *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiSetProtocol methods */ +void rpc__req__wifi_set_protocol__init + (RpcReqWifiSetProtocol *message); +size_t rpc__req__wifi_set_protocol__get_packed_size + (const RpcReqWifiSetProtocol *message); +size_t rpc__req__wifi_set_protocol__pack + (const RpcReqWifiSetProtocol *message, + uint8_t *out); +size_t rpc__req__wifi_set_protocol__pack_to_buffer + (const RpcReqWifiSetProtocol *message, + ProtobufCBuffer *buffer); +RpcReqWifiSetProtocol * + rpc__req__wifi_set_protocol__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_set_protocol__free_unpacked + (RpcReqWifiSetProtocol *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiSetProtocol methods */ +void rpc__resp__wifi_set_protocol__init + (RpcRespWifiSetProtocol *message); +size_t rpc__resp__wifi_set_protocol__get_packed_size + (const RpcRespWifiSetProtocol *message); +size_t rpc__resp__wifi_set_protocol__pack + (const RpcRespWifiSetProtocol *message, + uint8_t *out); +size_t rpc__resp__wifi_set_protocol__pack_to_buffer + (const RpcRespWifiSetProtocol *message, + ProtobufCBuffer *buffer); +RpcRespWifiSetProtocol * + rpc__resp__wifi_set_protocol__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_set_protocol__free_unpacked + (RpcRespWifiSetProtocol *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiGetProtocol methods */ +void rpc__req__wifi_get_protocol__init + (RpcReqWifiGetProtocol *message); +size_t rpc__req__wifi_get_protocol__get_packed_size + (const RpcReqWifiGetProtocol *message); +size_t rpc__req__wifi_get_protocol__pack + (const RpcReqWifiGetProtocol *message, + uint8_t *out); +size_t rpc__req__wifi_get_protocol__pack_to_buffer + (const RpcReqWifiGetProtocol *message, + ProtobufCBuffer *buffer); +RpcReqWifiGetProtocol * + rpc__req__wifi_get_protocol__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_get_protocol__free_unpacked + (RpcReqWifiGetProtocol *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiGetProtocol methods */ +void rpc__resp__wifi_get_protocol__init + (RpcRespWifiGetProtocol *message); +size_t rpc__resp__wifi_get_protocol__get_packed_size + (const RpcRespWifiGetProtocol *message); +size_t rpc__resp__wifi_get_protocol__pack + (const RpcRespWifiGetProtocol *message, + uint8_t *out); +size_t rpc__resp__wifi_get_protocol__pack_to_buffer + (const RpcRespWifiGetProtocol *message, + ProtobufCBuffer *buffer); +RpcRespWifiGetProtocol * + rpc__resp__wifi_get_protocol__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_get_protocol__free_unpacked + (RpcRespWifiGetProtocol *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiSetBandwidth methods */ +void rpc__req__wifi_set_bandwidth__init + (RpcReqWifiSetBandwidth *message); +size_t rpc__req__wifi_set_bandwidth__get_packed_size + (const RpcReqWifiSetBandwidth *message); +size_t rpc__req__wifi_set_bandwidth__pack + (const RpcReqWifiSetBandwidth *message, + uint8_t *out); +size_t rpc__req__wifi_set_bandwidth__pack_to_buffer + (const RpcReqWifiSetBandwidth *message, + ProtobufCBuffer *buffer); +RpcReqWifiSetBandwidth * + rpc__req__wifi_set_bandwidth__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_set_bandwidth__free_unpacked + (RpcReqWifiSetBandwidth *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiSetBandwidth methods */ +void rpc__resp__wifi_set_bandwidth__init + (RpcRespWifiSetBandwidth *message); +size_t rpc__resp__wifi_set_bandwidth__get_packed_size + (const RpcRespWifiSetBandwidth *message); +size_t rpc__resp__wifi_set_bandwidth__pack + (const RpcRespWifiSetBandwidth *message, + uint8_t *out); +size_t rpc__resp__wifi_set_bandwidth__pack_to_buffer + (const RpcRespWifiSetBandwidth *message, + ProtobufCBuffer *buffer); +RpcRespWifiSetBandwidth * + rpc__resp__wifi_set_bandwidth__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_set_bandwidth__free_unpacked + (RpcRespWifiSetBandwidth *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiGetBandwidth methods */ +void rpc__req__wifi_get_bandwidth__init + (RpcReqWifiGetBandwidth *message); +size_t rpc__req__wifi_get_bandwidth__get_packed_size + (const RpcReqWifiGetBandwidth *message); +size_t rpc__req__wifi_get_bandwidth__pack + (const RpcReqWifiGetBandwidth *message, + uint8_t *out); +size_t rpc__req__wifi_get_bandwidth__pack_to_buffer + (const RpcReqWifiGetBandwidth *message, + ProtobufCBuffer *buffer); +RpcReqWifiGetBandwidth * + rpc__req__wifi_get_bandwidth__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_get_bandwidth__free_unpacked + (RpcReqWifiGetBandwidth *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiGetBandwidth methods */ +void rpc__resp__wifi_get_bandwidth__init + (RpcRespWifiGetBandwidth *message); +size_t rpc__resp__wifi_get_bandwidth__get_packed_size + (const RpcRespWifiGetBandwidth *message); +size_t rpc__resp__wifi_get_bandwidth__pack + (const RpcRespWifiGetBandwidth *message, + uint8_t *out); +size_t rpc__resp__wifi_get_bandwidth__pack_to_buffer + (const RpcRespWifiGetBandwidth *message, + ProtobufCBuffer *buffer); +RpcRespWifiGetBandwidth * + rpc__resp__wifi_get_bandwidth__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_get_bandwidth__free_unpacked + (RpcRespWifiGetBandwidth *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiSetChannel methods */ +void rpc__req__wifi_set_channel__init + (RpcReqWifiSetChannel *message); +size_t rpc__req__wifi_set_channel__get_packed_size + (const RpcReqWifiSetChannel *message); +size_t rpc__req__wifi_set_channel__pack + (const RpcReqWifiSetChannel *message, + uint8_t *out); +size_t rpc__req__wifi_set_channel__pack_to_buffer + (const RpcReqWifiSetChannel *message, + ProtobufCBuffer *buffer); +RpcReqWifiSetChannel * + rpc__req__wifi_set_channel__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_set_channel__free_unpacked + (RpcReqWifiSetChannel *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiSetChannel methods */ +void rpc__resp__wifi_set_channel__init + (RpcRespWifiSetChannel *message); +size_t rpc__resp__wifi_set_channel__get_packed_size + (const RpcRespWifiSetChannel *message); +size_t rpc__resp__wifi_set_channel__pack + (const RpcRespWifiSetChannel *message, + uint8_t *out); +size_t rpc__resp__wifi_set_channel__pack_to_buffer + (const RpcRespWifiSetChannel *message, + ProtobufCBuffer *buffer); +RpcRespWifiSetChannel * + rpc__resp__wifi_set_channel__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_set_channel__free_unpacked + (RpcRespWifiSetChannel *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiGetChannel methods */ +void rpc__req__wifi_get_channel__init + (RpcReqWifiGetChannel *message); +size_t rpc__req__wifi_get_channel__get_packed_size + (const RpcReqWifiGetChannel *message); +size_t rpc__req__wifi_get_channel__pack + (const RpcReqWifiGetChannel *message, + uint8_t *out); +size_t rpc__req__wifi_get_channel__pack_to_buffer + (const RpcReqWifiGetChannel *message, + ProtobufCBuffer *buffer); +RpcReqWifiGetChannel * + rpc__req__wifi_get_channel__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_get_channel__free_unpacked + (RpcReqWifiGetChannel *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiGetChannel methods */ +void rpc__resp__wifi_get_channel__init + (RpcRespWifiGetChannel *message); +size_t rpc__resp__wifi_get_channel__get_packed_size + (const RpcRespWifiGetChannel *message); +size_t rpc__resp__wifi_get_channel__pack + (const RpcRespWifiGetChannel *message, + uint8_t *out); +size_t rpc__resp__wifi_get_channel__pack_to_buffer + (const RpcRespWifiGetChannel *message, + ProtobufCBuffer *buffer); +RpcRespWifiGetChannel * + rpc__resp__wifi_get_channel__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_get_channel__free_unpacked + (RpcRespWifiGetChannel *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiSetStorage methods */ +void rpc__req__wifi_set_storage__init + (RpcReqWifiSetStorage *message); +size_t rpc__req__wifi_set_storage__get_packed_size + (const RpcReqWifiSetStorage *message); +size_t rpc__req__wifi_set_storage__pack + (const RpcReqWifiSetStorage *message, + uint8_t *out); +size_t rpc__req__wifi_set_storage__pack_to_buffer + (const RpcReqWifiSetStorage *message, + ProtobufCBuffer *buffer); +RpcReqWifiSetStorage * + rpc__req__wifi_set_storage__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_set_storage__free_unpacked + (RpcReqWifiSetStorage *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiSetStorage methods */ +void rpc__resp__wifi_set_storage__init + (RpcRespWifiSetStorage *message); +size_t rpc__resp__wifi_set_storage__get_packed_size + (const RpcRespWifiSetStorage *message); +size_t rpc__resp__wifi_set_storage__pack + (const RpcRespWifiSetStorage *message, + uint8_t *out); +size_t rpc__resp__wifi_set_storage__pack_to_buffer + (const RpcRespWifiSetStorage *message, + ProtobufCBuffer *buffer); +RpcRespWifiSetStorage * + rpc__resp__wifi_set_storage__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_set_storage__free_unpacked + (RpcRespWifiSetStorage *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiSetCountryCode methods */ +void rpc__req__wifi_set_country_code__init + (RpcReqWifiSetCountryCode *message); +size_t rpc__req__wifi_set_country_code__get_packed_size + (const RpcReqWifiSetCountryCode *message); +size_t rpc__req__wifi_set_country_code__pack + (const RpcReqWifiSetCountryCode *message, + uint8_t *out); +size_t rpc__req__wifi_set_country_code__pack_to_buffer + (const RpcReqWifiSetCountryCode *message, + ProtobufCBuffer *buffer); +RpcReqWifiSetCountryCode * + rpc__req__wifi_set_country_code__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_set_country_code__free_unpacked + (RpcReqWifiSetCountryCode *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiSetCountryCode methods */ +void rpc__resp__wifi_set_country_code__init + (RpcRespWifiSetCountryCode *message); +size_t rpc__resp__wifi_set_country_code__get_packed_size + (const RpcRespWifiSetCountryCode *message); +size_t rpc__resp__wifi_set_country_code__pack + (const RpcRespWifiSetCountryCode *message, + uint8_t *out); +size_t rpc__resp__wifi_set_country_code__pack_to_buffer + (const RpcRespWifiSetCountryCode *message, + ProtobufCBuffer *buffer); +RpcRespWifiSetCountryCode * + rpc__resp__wifi_set_country_code__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_set_country_code__free_unpacked + (RpcRespWifiSetCountryCode *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiGetCountryCode methods */ +void rpc__req__wifi_get_country_code__init + (RpcReqWifiGetCountryCode *message); +size_t rpc__req__wifi_get_country_code__get_packed_size + (const RpcReqWifiGetCountryCode *message); +size_t rpc__req__wifi_get_country_code__pack + (const RpcReqWifiGetCountryCode *message, + uint8_t *out); +size_t rpc__req__wifi_get_country_code__pack_to_buffer + (const RpcReqWifiGetCountryCode *message, + ProtobufCBuffer *buffer); +RpcReqWifiGetCountryCode * + rpc__req__wifi_get_country_code__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_get_country_code__free_unpacked + (RpcReqWifiGetCountryCode *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiGetCountryCode methods */ +void rpc__resp__wifi_get_country_code__init + (RpcRespWifiGetCountryCode *message); +size_t rpc__resp__wifi_get_country_code__get_packed_size + (const RpcRespWifiGetCountryCode *message); +size_t rpc__resp__wifi_get_country_code__pack + (const RpcRespWifiGetCountryCode *message, + uint8_t *out); +size_t rpc__resp__wifi_get_country_code__pack_to_buffer + (const RpcRespWifiGetCountryCode *message, + ProtobufCBuffer *buffer); +RpcRespWifiGetCountryCode * + rpc__resp__wifi_get_country_code__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_get_country_code__free_unpacked + (RpcRespWifiGetCountryCode *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiSetCountry methods */ +void rpc__req__wifi_set_country__init + (RpcReqWifiSetCountry *message); +size_t rpc__req__wifi_set_country__get_packed_size + (const RpcReqWifiSetCountry *message); +size_t rpc__req__wifi_set_country__pack + (const RpcReqWifiSetCountry *message, + uint8_t *out); +size_t rpc__req__wifi_set_country__pack_to_buffer + (const RpcReqWifiSetCountry *message, + ProtobufCBuffer *buffer); +RpcReqWifiSetCountry * + rpc__req__wifi_set_country__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_set_country__free_unpacked + (RpcReqWifiSetCountry *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiSetCountry methods */ +void rpc__resp__wifi_set_country__init + (RpcRespWifiSetCountry *message); +size_t rpc__resp__wifi_set_country__get_packed_size + (const RpcRespWifiSetCountry *message); +size_t rpc__resp__wifi_set_country__pack + (const RpcRespWifiSetCountry *message, + uint8_t *out); +size_t rpc__resp__wifi_set_country__pack_to_buffer + (const RpcRespWifiSetCountry *message, + ProtobufCBuffer *buffer); +RpcRespWifiSetCountry * + rpc__resp__wifi_set_country__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_set_country__free_unpacked + (RpcRespWifiSetCountry *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiGetCountry methods */ +void rpc__req__wifi_get_country__init + (RpcReqWifiGetCountry *message); +size_t rpc__req__wifi_get_country__get_packed_size + (const RpcReqWifiGetCountry *message); +size_t rpc__req__wifi_get_country__pack + (const RpcReqWifiGetCountry *message, + uint8_t *out); +size_t rpc__req__wifi_get_country__pack_to_buffer + (const RpcReqWifiGetCountry *message, + ProtobufCBuffer *buffer); +RpcReqWifiGetCountry * + rpc__req__wifi_get_country__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_get_country__free_unpacked + (RpcReqWifiGetCountry *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiGetCountry methods */ +void rpc__resp__wifi_get_country__init + (RpcRespWifiGetCountry *message); +size_t rpc__resp__wifi_get_country__get_packed_size + (const RpcRespWifiGetCountry *message); +size_t rpc__resp__wifi_get_country__pack + (const RpcRespWifiGetCountry *message, + uint8_t *out); +size_t rpc__resp__wifi_get_country__pack_to_buffer + (const RpcRespWifiGetCountry *message, + ProtobufCBuffer *buffer); +RpcRespWifiGetCountry * + rpc__resp__wifi_get_country__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_get_country__free_unpacked + (RpcRespWifiGetCountry *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiApGetStaList methods */ +void rpc__req__wifi_ap_get_sta_list__init + (RpcReqWifiApGetStaList *message); +size_t rpc__req__wifi_ap_get_sta_list__get_packed_size + (const RpcReqWifiApGetStaList *message); +size_t rpc__req__wifi_ap_get_sta_list__pack + (const RpcReqWifiApGetStaList *message, + uint8_t *out); +size_t rpc__req__wifi_ap_get_sta_list__pack_to_buffer + (const RpcReqWifiApGetStaList *message, + ProtobufCBuffer *buffer); +RpcReqWifiApGetStaList * + rpc__req__wifi_ap_get_sta_list__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_ap_get_sta_list__free_unpacked + (RpcReqWifiApGetStaList *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiApGetStaList methods */ +void rpc__resp__wifi_ap_get_sta_list__init + (RpcRespWifiApGetStaList *message); +size_t rpc__resp__wifi_ap_get_sta_list__get_packed_size + (const RpcRespWifiApGetStaList *message); +size_t rpc__resp__wifi_ap_get_sta_list__pack + (const RpcRespWifiApGetStaList *message, + uint8_t *out); +size_t rpc__resp__wifi_ap_get_sta_list__pack_to_buffer + (const RpcRespWifiApGetStaList *message, + ProtobufCBuffer *buffer); +RpcRespWifiApGetStaList * + rpc__resp__wifi_ap_get_sta_list__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_ap_get_sta_list__free_unpacked + (RpcRespWifiApGetStaList *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiApGetStaAid methods */ +void rpc__req__wifi_ap_get_sta_aid__init + (RpcReqWifiApGetStaAid *message); +size_t rpc__req__wifi_ap_get_sta_aid__get_packed_size + (const RpcReqWifiApGetStaAid *message); +size_t rpc__req__wifi_ap_get_sta_aid__pack + (const RpcReqWifiApGetStaAid *message, + uint8_t *out); +size_t rpc__req__wifi_ap_get_sta_aid__pack_to_buffer + (const RpcReqWifiApGetStaAid *message, + ProtobufCBuffer *buffer); +RpcReqWifiApGetStaAid * + rpc__req__wifi_ap_get_sta_aid__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_ap_get_sta_aid__free_unpacked + (RpcReqWifiApGetStaAid *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiStaGetNegotiatedPhymode methods */ +void rpc__req__wifi_sta_get_negotiated_phymode__init + (RpcReqWifiStaGetNegotiatedPhymode *message); +size_t rpc__req__wifi_sta_get_negotiated_phymode__get_packed_size + (const RpcReqWifiStaGetNegotiatedPhymode *message); +size_t rpc__req__wifi_sta_get_negotiated_phymode__pack + (const RpcReqWifiStaGetNegotiatedPhymode *message, + uint8_t *out); +size_t rpc__req__wifi_sta_get_negotiated_phymode__pack_to_buffer + (const RpcReqWifiStaGetNegotiatedPhymode *message, + ProtobufCBuffer *buffer); +RpcReqWifiStaGetNegotiatedPhymode * + rpc__req__wifi_sta_get_negotiated_phymode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_sta_get_negotiated_phymode__free_unpacked + (RpcReqWifiStaGetNegotiatedPhymode *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiStaGetNegotiatedPhymode methods */ +void rpc__resp__wifi_sta_get_negotiated_phymode__init + (RpcRespWifiStaGetNegotiatedPhymode *message); +size_t rpc__resp__wifi_sta_get_negotiated_phymode__get_packed_size + (const RpcRespWifiStaGetNegotiatedPhymode *message); +size_t rpc__resp__wifi_sta_get_negotiated_phymode__pack + (const RpcRespWifiStaGetNegotiatedPhymode *message, + uint8_t *out); +size_t rpc__resp__wifi_sta_get_negotiated_phymode__pack_to_buffer + (const RpcRespWifiStaGetNegotiatedPhymode *message, + ProtobufCBuffer *buffer); +RpcRespWifiStaGetNegotiatedPhymode * + rpc__resp__wifi_sta_get_negotiated_phymode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_sta_get_negotiated_phymode__free_unpacked + (RpcRespWifiStaGetNegotiatedPhymode *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiApGetStaAid methods */ +void rpc__resp__wifi_ap_get_sta_aid__init + (RpcRespWifiApGetStaAid *message); +size_t rpc__resp__wifi_ap_get_sta_aid__get_packed_size + (const RpcRespWifiApGetStaAid *message); +size_t rpc__resp__wifi_ap_get_sta_aid__pack + (const RpcRespWifiApGetStaAid *message, + uint8_t *out); +size_t rpc__resp__wifi_ap_get_sta_aid__pack_to_buffer + (const RpcRespWifiApGetStaAid *message, + ProtobufCBuffer *buffer); +RpcRespWifiApGetStaAid * + rpc__resp__wifi_ap_get_sta_aid__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_ap_get_sta_aid__free_unpacked + (RpcRespWifiApGetStaAid *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiStaGetRssi methods */ +void rpc__req__wifi_sta_get_rssi__init + (RpcReqWifiStaGetRssi *message); +size_t rpc__req__wifi_sta_get_rssi__get_packed_size + (const RpcReqWifiStaGetRssi *message); +size_t rpc__req__wifi_sta_get_rssi__pack + (const RpcReqWifiStaGetRssi *message, + uint8_t *out); +size_t rpc__req__wifi_sta_get_rssi__pack_to_buffer + (const RpcReqWifiStaGetRssi *message, + ProtobufCBuffer *buffer); +RpcReqWifiStaGetRssi * + rpc__req__wifi_sta_get_rssi__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_sta_get_rssi__free_unpacked + (RpcReqWifiStaGetRssi *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiStaGetRssi methods */ +void rpc__resp__wifi_sta_get_rssi__init + (RpcRespWifiStaGetRssi *message); +size_t rpc__resp__wifi_sta_get_rssi__get_packed_size + (const RpcRespWifiStaGetRssi *message); +size_t rpc__resp__wifi_sta_get_rssi__pack + (const RpcRespWifiStaGetRssi *message, + uint8_t *out); +size_t rpc__resp__wifi_sta_get_rssi__pack_to_buffer + (const RpcRespWifiStaGetRssi *message, + ProtobufCBuffer *buffer); +RpcRespWifiStaGetRssi * + rpc__resp__wifi_sta_get_rssi__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_sta_get_rssi__free_unpacked + (RpcRespWifiStaGetRssi *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiStaGetAid methods */ +void rpc__req__wifi_sta_get_aid__init + (RpcReqWifiStaGetAid *message); +size_t rpc__req__wifi_sta_get_aid__get_packed_size + (const RpcReqWifiStaGetAid *message); +size_t rpc__req__wifi_sta_get_aid__pack + (const RpcReqWifiStaGetAid *message, + uint8_t *out); +size_t rpc__req__wifi_sta_get_aid__pack_to_buffer + (const RpcReqWifiStaGetAid *message, + ProtobufCBuffer *buffer); +RpcReqWifiStaGetAid * + rpc__req__wifi_sta_get_aid__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_sta_get_aid__free_unpacked + (RpcReqWifiStaGetAid *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiStaGetAid methods */ +void rpc__resp__wifi_sta_get_aid__init + (RpcRespWifiStaGetAid *message); +size_t rpc__resp__wifi_sta_get_aid__get_packed_size + (const RpcRespWifiStaGetAid *message); +size_t rpc__resp__wifi_sta_get_aid__pack + (const RpcRespWifiStaGetAid *message, + uint8_t *out); +size_t rpc__resp__wifi_sta_get_aid__pack_to_buffer + (const RpcRespWifiStaGetAid *message, + ProtobufCBuffer *buffer); +RpcRespWifiStaGetAid * + rpc__resp__wifi_sta_get_aid__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_sta_get_aid__free_unpacked + (RpcRespWifiStaGetAid *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiSetProtocols methods */ +void rpc__req__wifi_set_protocols__init + (RpcReqWifiSetProtocols *message); +size_t rpc__req__wifi_set_protocols__get_packed_size + (const RpcReqWifiSetProtocols *message); +size_t rpc__req__wifi_set_protocols__pack + (const RpcReqWifiSetProtocols *message, + uint8_t *out); +size_t rpc__req__wifi_set_protocols__pack_to_buffer + (const RpcReqWifiSetProtocols *message, + ProtobufCBuffer *buffer); +RpcReqWifiSetProtocols * + rpc__req__wifi_set_protocols__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_set_protocols__free_unpacked + (RpcReqWifiSetProtocols *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiSetProtocols methods */ +void rpc__resp__wifi_set_protocols__init + (RpcRespWifiSetProtocols *message); +size_t rpc__resp__wifi_set_protocols__get_packed_size + (const RpcRespWifiSetProtocols *message); +size_t rpc__resp__wifi_set_protocols__pack + (const RpcRespWifiSetProtocols *message, + uint8_t *out); +size_t rpc__resp__wifi_set_protocols__pack_to_buffer + (const RpcRespWifiSetProtocols *message, + ProtobufCBuffer *buffer); +RpcRespWifiSetProtocols * + rpc__resp__wifi_set_protocols__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_set_protocols__free_unpacked + (RpcRespWifiSetProtocols *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiGetProtocols methods */ +void rpc__req__wifi_get_protocols__init + (RpcReqWifiGetProtocols *message); +size_t rpc__req__wifi_get_protocols__get_packed_size + (const RpcReqWifiGetProtocols *message); +size_t rpc__req__wifi_get_protocols__pack + (const RpcReqWifiGetProtocols *message, + uint8_t *out); +size_t rpc__req__wifi_get_protocols__pack_to_buffer + (const RpcReqWifiGetProtocols *message, + ProtobufCBuffer *buffer); +RpcReqWifiGetProtocols * + rpc__req__wifi_get_protocols__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_get_protocols__free_unpacked + (RpcReqWifiGetProtocols *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiGetProtocols methods */ +void rpc__resp__wifi_get_protocols__init + (RpcRespWifiGetProtocols *message); +size_t rpc__resp__wifi_get_protocols__get_packed_size + (const RpcRespWifiGetProtocols *message); +size_t rpc__resp__wifi_get_protocols__pack + (const RpcRespWifiGetProtocols *message, + uint8_t *out); +size_t rpc__resp__wifi_get_protocols__pack_to_buffer + (const RpcRespWifiGetProtocols *message, + ProtobufCBuffer *buffer); +RpcRespWifiGetProtocols * + rpc__resp__wifi_get_protocols__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_get_protocols__free_unpacked + (RpcRespWifiGetProtocols *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiSetBandwidths methods */ +void rpc__req__wifi_set_bandwidths__init + (RpcReqWifiSetBandwidths *message); +size_t rpc__req__wifi_set_bandwidths__get_packed_size + (const RpcReqWifiSetBandwidths *message); +size_t rpc__req__wifi_set_bandwidths__pack + (const RpcReqWifiSetBandwidths *message, + uint8_t *out); +size_t rpc__req__wifi_set_bandwidths__pack_to_buffer + (const RpcReqWifiSetBandwidths *message, + ProtobufCBuffer *buffer); +RpcReqWifiSetBandwidths * + rpc__req__wifi_set_bandwidths__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_set_bandwidths__free_unpacked + (RpcReqWifiSetBandwidths *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiSetBandwidths methods */ +void rpc__resp__wifi_set_bandwidths__init + (RpcRespWifiSetBandwidths *message); +size_t rpc__resp__wifi_set_bandwidths__get_packed_size + (const RpcRespWifiSetBandwidths *message); +size_t rpc__resp__wifi_set_bandwidths__pack + (const RpcRespWifiSetBandwidths *message, + uint8_t *out); +size_t rpc__resp__wifi_set_bandwidths__pack_to_buffer + (const RpcRespWifiSetBandwidths *message, + ProtobufCBuffer *buffer); +RpcRespWifiSetBandwidths * + rpc__resp__wifi_set_bandwidths__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_set_bandwidths__free_unpacked + (RpcRespWifiSetBandwidths *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiGetBandwidths methods */ +void rpc__req__wifi_get_bandwidths__init + (RpcReqWifiGetBandwidths *message); +size_t rpc__req__wifi_get_bandwidths__get_packed_size + (const RpcReqWifiGetBandwidths *message); +size_t rpc__req__wifi_get_bandwidths__pack + (const RpcReqWifiGetBandwidths *message, + uint8_t *out); +size_t rpc__req__wifi_get_bandwidths__pack_to_buffer + (const RpcReqWifiGetBandwidths *message, + ProtobufCBuffer *buffer); +RpcReqWifiGetBandwidths * + rpc__req__wifi_get_bandwidths__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_get_bandwidths__free_unpacked + (RpcReqWifiGetBandwidths *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiGetBandwidths methods */ +void rpc__resp__wifi_get_bandwidths__init + (RpcRespWifiGetBandwidths *message); +size_t rpc__resp__wifi_get_bandwidths__get_packed_size + (const RpcRespWifiGetBandwidths *message); +size_t rpc__resp__wifi_get_bandwidths__pack + (const RpcRespWifiGetBandwidths *message, + uint8_t *out); +size_t rpc__resp__wifi_get_bandwidths__pack_to_buffer + (const RpcRespWifiGetBandwidths *message, + ProtobufCBuffer *buffer); +RpcRespWifiGetBandwidths * + rpc__resp__wifi_get_bandwidths__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_get_bandwidths__free_unpacked + (RpcRespWifiGetBandwidths *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiSetBand methods */ +void rpc__req__wifi_set_band__init + (RpcReqWifiSetBand *message); +size_t rpc__req__wifi_set_band__get_packed_size + (const RpcReqWifiSetBand *message); +size_t rpc__req__wifi_set_band__pack + (const RpcReqWifiSetBand *message, + uint8_t *out); +size_t rpc__req__wifi_set_band__pack_to_buffer + (const RpcReqWifiSetBand *message, + ProtobufCBuffer *buffer); +RpcReqWifiSetBand * + rpc__req__wifi_set_band__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_set_band__free_unpacked + (RpcReqWifiSetBand *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiSetBand methods */ +void rpc__resp__wifi_set_band__init + (RpcRespWifiSetBand *message); +size_t rpc__resp__wifi_set_band__get_packed_size + (const RpcRespWifiSetBand *message); +size_t rpc__resp__wifi_set_band__pack + (const RpcRespWifiSetBand *message, + uint8_t *out); +size_t rpc__resp__wifi_set_band__pack_to_buffer + (const RpcRespWifiSetBand *message, + ProtobufCBuffer *buffer); +RpcRespWifiSetBand * + rpc__resp__wifi_set_band__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_set_band__free_unpacked + (RpcRespWifiSetBand *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiGetBand methods */ +void rpc__req__wifi_get_band__init + (RpcReqWifiGetBand *message); +size_t rpc__req__wifi_get_band__get_packed_size + (const RpcReqWifiGetBand *message); +size_t rpc__req__wifi_get_band__pack + (const RpcReqWifiGetBand *message, + uint8_t *out); +size_t rpc__req__wifi_get_band__pack_to_buffer + (const RpcReqWifiGetBand *message, + ProtobufCBuffer *buffer); +RpcReqWifiGetBand * + rpc__req__wifi_get_band__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_get_band__free_unpacked + (RpcReqWifiGetBand *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiGetBand methods */ +void rpc__resp__wifi_get_band__init + (RpcRespWifiGetBand *message); +size_t rpc__resp__wifi_get_band__get_packed_size + (const RpcRespWifiGetBand *message); +size_t rpc__resp__wifi_get_band__pack + (const RpcRespWifiGetBand *message, + uint8_t *out); +size_t rpc__resp__wifi_get_band__pack_to_buffer + (const RpcRespWifiGetBand *message, + ProtobufCBuffer *buffer); +RpcRespWifiGetBand * + rpc__resp__wifi_get_band__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_get_band__free_unpacked + (RpcRespWifiGetBand *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiSetBandMode methods */ +void rpc__req__wifi_set_band_mode__init + (RpcReqWifiSetBandMode *message); +size_t rpc__req__wifi_set_band_mode__get_packed_size + (const RpcReqWifiSetBandMode *message); +size_t rpc__req__wifi_set_band_mode__pack + (const RpcReqWifiSetBandMode *message, + uint8_t *out); +size_t rpc__req__wifi_set_band_mode__pack_to_buffer + (const RpcReqWifiSetBandMode *message, + ProtobufCBuffer *buffer); +RpcReqWifiSetBandMode * + rpc__req__wifi_set_band_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_set_band_mode__free_unpacked + (RpcReqWifiSetBandMode *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiSetBandMode methods */ +void rpc__resp__wifi_set_band_mode__init + (RpcRespWifiSetBandMode *message); +size_t rpc__resp__wifi_set_band_mode__get_packed_size + (const RpcRespWifiSetBandMode *message); +size_t rpc__resp__wifi_set_band_mode__pack + (const RpcRespWifiSetBandMode *message, + uint8_t *out); +size_t rpc__resp__wifi_set_band_mode__pack_to_buffer + (const RpcRespWifiSetBandMode *message, + ProtobufCBuffer *buffer); +RpcRespWifiSetBandMode * + rpc__resp__wifi_set_band_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_set_band_mode__free_unpacked + (RpcRespWifiSetBandMode *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiGetBandMode methods */ +void rpc__req__wifi_get_band_mode__init + (RpcReqWifiGetBandMode *message); +size_t rpc__req__wifi_get_band_mode__get_packed_size + (const RpcReqWifiGetBandMode *message); +size_t rpc__req__wifi_get_band_mode__pack + (const RpcReqWifiGetBandMode *message, + uint8_t *out); +size_t rpc__req__wifi_get_band_mode__pack_to_buffer + (const RpcReqWifiGetBandMode *message, + ProtobufCBuffer *buffer); +RpcReqWifiGetBandMode * + rpc__req__wifi_get_band_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_get_band_mode__free_unpacked + (RpcReqWifiGetBandMode *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiGetBandMode methods */ +void rpc__resp__wifi_get_band_mode__init + (RpcRespWifiGetBandMode *message); +size_t rpc__resp__wifi_get_band_mode__get_packed_size + (const RpcRespWifiGetBandMode *message); +size_t rpc__resp__wifi_get_band_mode__pack + (const RpcRespWifiGetBandMode *message, + uint8_t *out); +size_t rpc__resp__wifi_get_band_mode__pack_to_buffer + (const RpcRespWifiGetBandMode *message, + ProtobufCBuffer *buffer); +RpcRespWifiGetBandMode * + rpc__resp__wifi_get_band_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_get_band_mode__free_unpacked + (RpcRespWifiGetBandMode *message, + ProtobufCAllocator *allocator); +/* RpcReqGetCoprocessorFwVersion methods */ +void rpc__req__get_coprocessor_fw_version__init + (RpcReqGetCoprocessorFwVersion *message); +size_t rpc__req__get_coprocessor_fw_version__get_packed_size + (const RpcReqGetCoprocessorFwVersion *message); +size_t rpc__req__get_coprocessor_fw_version__pack + (const RpcReqGetCoprocessorFwVersion *message, + uint8_t *out); +size_t rpc__req__get_coprocessor_fw_version__pack_to_buffer + (const RpcReqGetCoprocessorFwVersion *message, + ProtobufCBuffer *buffer); +RpcReqGetCoprocessorFwVersion * + rpc__req__get_coprocessor_fw_version__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__get_coprocessor_fw_version__free_unpacked + (RpcReqGetCoprocessorFwVersion *message, + ProtobufCAllocator *allocator); +/* RpcRespGetCoprocessorFwVersion methods */ +void rpc__resp__get_coprocessor_fw_version__init + (RpcRespGetCoprocessorFwVersion *message); +size_t rpc__resp__get_coprocessor_fw_version__get_packed_size + (const RpcRespGetCoprocessorFwVersion *message); +size_t rpc__resp__get_coprocessor_fw_version__pack + (const RpcRespGetCoprocessorFwVersion *message, + uint8_t *out); +size_t rpc__resp__get_coprocessor_fw_version__pack_to_buffer + (const RpcRespGetCoprocessorFwVersion *message, + ProtobufCBuffer *buffer); +RpcRespGetCoprocessorFwVersion * + rpc__resp__get_coprocessor_fw_version__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__get_coprocessor_fw_version__free_unpacked + (RpcRespGetCoprocessorFwVersion *message, + ProtobufCAllocator *allocator); +/* RpcEventWifiEventNoArgs methods */ +void rpc__event__wifi_event_no_args__init + (RpcEventWifiEventNoArgs *message); +size_t rpc__event__wifi_event_no_args__get_packed_size + (const RpcEventWifiEventNoArgs *message); +size_t rpc__event__wifi_event_no_args__pack + (const RpcEventWifiEventNoArgs *message, + uint8_t *out); +size_t rpc__event__wifi_event_no_args__pack_to_buffer + (const RpcEventWifiEventNoArgs *message, + ProtobufCBuffer *buffer); +RpcEventWifiEventNoArgs * + rpc__event__wifi_event_no_args__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__event__wifi_event_no_args__free_unpacked + (RpcEventWifiEventNoArgs *message, + ProtobufCAllocator *allocator); +/* RpcEventESPInit methods */ +void rpc__event__espinit__init + (RpcEventESPInit *message); +size_t rpc__event__espinit__get_packed_size + (const RpcEventESPInit *message); +size_t rpc__event__espinit__pack + (const RpcEventESPInit *message, + uint8_t *out); +size_t rpc__event__espinit__pack_to_buffer + (const RpcEventESPInit *message, + ProtobufCBuffer *buffer); +RpcEventESPInit * + rpc__event__espinit__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__event__espinit__free_unpacked + (RpcEventESPInit *message, + ProtobufCAllocator *allocator); +/* RpcEventHeartbeat methods */ +void rpc__event__heartbeat__init + (RpcEventHeartbeat *message); +size_t rpc__event__heartbeat__get_packed_size + (const RpcEventHeartbeat *message); +size_t rpc__event__heartbeat__pack + (const RpcEventHeartbeat *message, + uint8_t *out); +size_t rpc__event__heartbeat__pack_to_buffer + (const RpcEventHeartbeat *message, + ProtobufCBuffer *buffer); +RpcEventHeartbeat * + rpc__event__heartbeat__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__event__heartbeat__free_unpacked + (RpcEventHeartbeat *message, + ProtobufCAllocator *allocator); +/* RpcEventAPStaDisconnected methods */ +void rpc__event__ap__sta_disconnected__init + (RpcEventAPStaDisconnected *message); +size_t rpc__event__ap__sta_disconnected__get_packed_size + (const RpcEventAPStaDisconnected *message); +size_t rpc__event__ap__sta_disconnected__pack + (const RpcEventAPStaDisconnected *message, + uint8_t *out); +size_t rpc__event__ap__sta_disconnected__pack_to_buffer + (const RpcEventAPStaDisconnected *message, + ProtobufCBuffer *buffer); +RpcEventAPStaDisconnected * + rpc__event__ap__sta_disconnected__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__event__ap__sta_disconnected__free_unpacked + (RpcEventAPStaDisconnected *message, + ProtobufCAllocator *allocator); +/* RpcEventAPStaConnected methods */ +void rpc__event__ap__sta_connected__init + (RpcEventAPStaConnected *message); +size_t rpc__event__ap__sta_connected__get_packed_size + (const RpcEventAPStaConnected *message); +size_t rpc__event__ap__sta_connected__pack + (const RpcEventAPStaConnected *message, + uint8_t *out); +size_t rpc__event__ap__sta_connected__pack_to_buffer + (const RpcEventAPStaConnected *message, + ProtobufCBuffer *buffer); +RpcEventAPStaConnected * + rpc__event__ap__sta_connected__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__event__ap__sta_connected__free_unpacked + (RpcEventAPStaConnected *message, + ProtobufCAllocator *allocator); +/* RpcEventStaScanDone methods */ +void rpc__event__sta_scan_done__init + (RpcEventStaScanDone *message); +size_t rpc__event__sta_scan_done__get_packed_size + (const RpcEventStaScanDone *message); +size_t rpc__event__sta_scan_done__pack + (const RpcEventStaScanDone *message, + uint8_t *out); +size_t rpc__event__sta_scan_done__pack_to_buffer + (const RpcEventStaScanDone *message, + ProtobufCBuffer *buffer); +RpcEventStaScanDone * + rpc__event__sta_scan_done__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__event__sta_scan_done__free_unpacked + (RpcEventStaScanDone *message, + ProtobufCAllocator *allocator); +/* RpcEventStaConnected methods */ +void rpc__event__sta_connected__init + (RpcEventStaConnected *message); +size_t rpc__event__sta_connected__get_packed_size + (const RpcEventStaConnected *message); +size_t rpc__event__sta_connected__pack + (const RpcEventStaConnected *message, + uint8_t *out); +size_t rpc__event__sta_connected__pack_to_buffer + (const RpcEventStaConnected *message, + ProtobufCBuffer *buffer); +RpcEventStaConnected * + rpc__event__sta_connected__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__event__sta_connected__free_unpacked + (RpcEventStaConnected *message, + ProtobufCAllocator *allocator); +/* RpcEventStaDisconnected methods */ +void rpc__event__sta_disconnected__init + (RpcEventStaDisconnected *message); +size_t rpc__event__sta_disconnected__get_packed_size + (const RpcEventStaDisconnected *message); +size_t rpc__event__sta_disconnected__pack + (const RpcEventStaDisconnected *message, + uint8_t *out); +size_t rpc__event__sta_disconnected__pack_to_buffer + (const RpcEventStaDisconnected *message, + ProtobufCBuffer *buffer); +RpcEventStaDisconnected * + rpc__event__sta_disconnected__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__event__sta_disconnected__free_unpacked + (RpcEventStaDisconnected *message, + ProtobufCAllocator *allocator); +/* Rpc methods */ +void rpc__init + (Rpc *message); +size_t rpc__get_packed_size + (const Rpc *message); +size_t rpc__pack + (const Rpc *message, + uint8_t *out); +size_t rpc__pack_to_buffer + (const Rpc *message, + ProtobufCBuffer *buffer); +Rpc * + rpc__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__free_unpacked + (Rpc *message, + ProtobufCAllocator *allocator); +/* --- per-message closures --- */ + +typedef void (*WifiInitConfig_Closure) + (const WifiInitConfig *message, + void *closure_data); +typedef void (*WifiCountry_Closure) + (const WifiCountry *message, + void *closure_data); +typedef void (*WifiActiveScanTime_Closure) + (const WifiActiveScanTime *message, + void *closure_data); +typedef void (*WifiScanTime_Closure) + (const WifiScanTime *message, + void *closure_data); +typedef void (*WifiScanConfig_Closure) + (const WifiScanConfig *message, + void *closure_data); +typedef void (*WifiHeApInfo_Closure) + (const WifiHeApInfo *message, + void *closure_data); +typedef void (*WifiApRecord_Closure) + (const WifiApRecord *message, + void *closure_data); +typedef void (*WifiScanThreshold_Closure) + (const WifiScanThreshold *message, + void *closure_data); +typedef void (*WifiPmfConfig_Closure) + (const WifiPmfConfig *message, + void *closure_data); +typedef void (*WifiApConfig_Closure) + (const WifiApConfig *message, + void *closure_data); +typedef void (*WifiStaConfig_Closure) + (const WifiStaConfig *message, + void *closure_data); +typedef void (*WifiConfig_Closure) + (const WifiConfig *message, + void *closure_data); +typedef void (*WifiStaInfo_Closure) + (const WifiStaInfo *message, + void *closure_data); +typedef void (*WifiStaList_Closure) + (const WifiStaList *message, + void *closure_data); +typedef void (*WifiPktRxCtrl_Closure) + (const WifiPktRxCtrl *message, + void *closure_data); +typedef void (*WifiPromiscuousPkt_Closure) + (const WifiPromiscuousPkt *message, + void *closure_data); +typedef void (*WifiPromiscuousFilter_Closure) + (const WifiPromiscuousFilter *message, + void *closure_data); +typedef void (*WifiCsiConfig_Closure) + (const WifiCsiConfig *message, + void *closure_data); +typedef void (*WifiCsiInfo_Closure) + (const WifiCsiInfo *message, + void *closure_data); +typedef void (*WifiAntGpio_Closure) + (const WifiAntGpio *message, + void *closure_data); +typedef void (*WifiAntGpioConfig_Closure) + (const WifiAntGpioConfig *message, + void *closure_data); +typedef void (*WifiAntConfig_Closure) + (const WifiAntConfig *message, + void *closure_data); +typedef void (*WifiActionTxReq_Closure) + (const WifiActionTxReq *message, + void *closure_data); +typedef void (*WifiFtmInitiatorCfg_Closure) + (const WifiFtmInitiatorCfg *message, + void *closure_data); +typedef void (*WifiEventStaScanDone_Closure) + (const WifiEventStaScanDone *message, + void *closure_data); +typedef void (*WifiEventStaConnected_Closure) + (const WifiEventStaConnected *message, + void *closure_data); +typedef void (*WifiEventStaDisconnected_Closure) + (const WifiEventStaDisconnected *message, + void *closure_data); +typedef void (*WifiEventStaAuthmodeChange_Closure) + (const WifiEventStaAuthmodeChange *message, + void *closure_data); +typedef void (*WifiEventStaWpsErPin_Closure) + (const WifiEventStaWpsErPin *message, + void *closure_data); +typedef void (*ApCred_Closure) + (const ApCred *message, + void *closure_data); +typedef void (*WifiEventStaWpsErSuccess_Closure) + (const WifiEventStaWpsErSuccess *message, + void *closure_data); +typedef void (*WifiEventApProbeReqRx_Closure) + (const WifiEventApProbeReqRx *message, + void *closure_data); +typedef void (*WifiEventBssRssiLow_Closure) + (const WifiEventBssRssiLow *message, + void *closure_data); +typedef void (*WifiFtmReportEntry_Closure) + (const WifiFtmReportEntry *message, + void *closure_data); +typedef void (*WifiEventFtmReport_Closure) + (const WifiEventFtmReport *message, + void *closure_data); +typedef void (*WifiEventActionTxStatus_Closure) + (const WifiEventActionTxStatus *message, + void *closure_data); +typedef void (*WifiEventRocDone_Closure) + (const WifiEventRocDone *message, + void *closure_data); +typedef void (*WifiEventApWpsRgPin_Closure) + (const WifiEventApWpsRgPin *message, + void *closure_data); +typedef void (*WifiEventApWpsRgFailReason_Closure) + (const WifiEventApWpsRgFailReason *message, + void *closure_data); +typedef void (*WifiEventApWpsRgSuccess_Closure) + (const WifiEventApWpsRgSuccess *message, + void *closure_data); +typedef void (*WifiProtocols_Closure) + (const WifiProtocols *message, + void *closure_data); +typedef void (*WifiBandwidths_Closure) + (const WifiBandwidths *message, + void *closure_data); +typedef void (*ConnectedSTAList_Closure) + (const ConnectedSTAList *message, + void *closure_data); +typedef void (*RpcReqGetMacAddress_Closure) + (const RpcReqGetMacAddress *message, + void *closure_data); +typedef void (*RpcRespGetMacAddress_Closure) + (const RpcRespGetMacAddress *message, + void *closure_data); +typedef void (*RpcReqGetMode_Closure) + (const RpcReqGetMode *message, + void *closure_data); +typedef void (*RpcRespGetMode_Closure) + (const RpcRespGetMode *message, + void *closure_data); +typedef void (*RpcReqSetMode_Closure) + (const RpcReqSetMode *message, + void *closure_data); +typedef void (*RpcRespSetMode_Closure) + (const RpcRespSetMode *message, + void *closure_data); +typedef void (*RpcReqGetPs_Closure) + (const RpcReqGetPs *message, + void *closure_data); +typedef void (*RpcRespGetPs_Closure) + (const RpcRespGetPs *message, + void *closure_data); +typedef void (*RpcReqSetPs_Closure) + (const RpcReqSetPs *message, + void *closure_data); +typedef void (*RpcRespSetPs_Closure) + (const RpcRespSetPs *message, + void *closure_data); +typedef void (*RpcReqSetMacAddress_Closure) + (const RpcReqSetMacAddress *message, + void *closure_data); +typedef void (*RpcRespSetMacAddress_Closure) + (const RpcRespSetMacAddress *message, + void *closure_data); +typedef void (*RpcReqOTABegin_Closure) + (const RpcReqOTABegin *message, + void *closure_data); +typedef void (*RpcRespOTABegin_Closure) + (const RpcRespOTABegin *message, + void *closure_data); +typedef void (*RpcReqOTAWrite_Closure) + (const RpcReqOTAWrite *message, + void *closure_data); +typedef void (*RpcRespOTAWrite_Closure) + (const RpcRespOTAWrite *message, + void *closure_data); +typedef void (*RpcReqOTAEnd_Closure) + (const RpcReqOTAEnd *message, + void *closure_data); +typedef void (*RpcRespOTAEnd_Closure) + (const RpcRespOTAEnd *message, + void *closure_data); +typedef void (*RpcReqWifiSetMaxTxPower_Closure) + (const RpcReqWifiSetMaxTxPower *message, + void *closure_data); +typedef void (*RpcRespWifiSetMaxTxPower_Closure) + (const RpcRespWifiSetMaxTxPower *message, + void *closure_data); +typedef void (*RpcReqWifiGetMaxTxPower_Closure) + (const RpcReqWifiGetMaxTxPower *message, + void *closure_data); +typedef void (*RpcRespWifiGetMaxTxPower_Closure) + (const RpcRespWifiGetMaxTxPower *message, + void *closure_data); +typedef void (*RpcReqConfigHeartbeat_Closure) + (const RpcReqConfigHeartbeat *message, + void *closure_data); +typedef void (*RpcRespConfigHeartbeat_Closure) + (const RpcRespConfigHeartbeat *message, + void *closure_data); +typedef void (*RpcReqWifiInit_Closure) + (const RpcReqWifiInit *message, + void *closure_data); +typedef void (*RpcRespWifiInit_Closure) + (const RpcRespWifiInit *message, + void *closure_data); +typedef void (*RpcReqWifiDeinit_Closure) + (const RpcReqWifiDeinit *message, + void *closure_data); +typedef void (*RpcRespWifiDeinit_Closure) + (const RpcRespWifiDeinit *message, + void *closure_data); +typedef void (*RpcReqWifiSetConfig_Closure) + (const RpcReqWifiSetConfig *message, + void *closure_data); +typedef void (*RpcRespWifiSetConfig_Closure) + (const RpcRespWifiSetConfig *message, + void *closure_data); +typedef void (*RpcReqWifiGetConfig_Closure) + (const RpcReqWifiGetConfig *message, + void *closure_data); +typedef void (*RpcRespWifiGetConfig_Closure) + (const RpcRespWifiGetConfig *message, + void *closure_data); +typedef void (*RpcReqWifiConnect_Closure) + (const RpcReqWifiConnect *message, + void *closure_data); +typedef void (*RpcRespWifiConnect_Closure) + (const RpcRespWifiConnect *message, + void *closure_data); +typedef void (*RpcReqWifiDisconnect_Closure) + (const RpcReqWifiDisconnect *message, + void *closure_data); +typedef void (*RpcRespWifiDisconnect_Closure) + (const RpcRespWifiDisconnect *message, + void *closure_data); +typedef void (*RpcReqWifiStart_Closure) + (const RpcReqWifiStart *message, + void *closure_data); +typedef void (*RpcRespWifiStart_Closure) + (const RpcRespWifiStart *message, + void *closure_data); +typedef void (*RpcReqWifiStop_Closure) + (const RpcReqWifiStop *message, + void *closure_data); +typedef void (*RpcRespWifiStop_Closure) + (const RpcRespWifiStop *message, + void *closure_data); +typedef void (*RpcReqWifiScanStart_Closure) + (const RpcReqWifiScanStart *message, + void *closure_data); +typedef void (*RpcRespWifiScanStart_Closure) + (const RpcRespWifiScanStart *message, + void *closure_data); +typedef void (*RpcReqWifiScanStop_Closure) + (const RpcReqWifiScanStop *message, + void *closure_data); +typedef void (*RpcRespWifiScanStop_Closure) + (const RpcRespWifiScanStop *message, + void *closure_data); +typedef void (*RpcReqWifiScanGetApNum_Closure) + (const RpcReqWifiScanGetApNum *message, + void *closure_data); +typedef void (*RpcRespWifiScanGetApNum_Closure) + (const RpcRespWifiScanGetApNum *message, + void *closure_data); +typedef void (*RpcReqWifiScanGetApRecords_Closure) + (const RpcReqWifiScanGetApRecords *message, + void *closure_data); +typedef void (*RpcRespWifiScanGetApRecords_Closure) + (const RpcRespWifiScanGetApRecords *message, + void *closure_data); +typedef void (*RpcReqWifiScanGetApRecord_Closure) + (const RpcReqWifiScanGetApRecord *message, + void *closure_data); +typedef void (*RpcRespWifiScanGetApRecord_Closure) + (const RpcRespWifiScanGetApRecord *message, + void *closure_data); +typedef void (*RpcReqWifiClearApList_Closure) + (const RpcReqWifiClearApList *message, + void *closure_data); +typedef void (*RpcRespWifiClearApList_Closure) + (const RpcRespWifiClearApList *message, + void *closure_data); +typedef void (*RpcReqWifiRestore_Closure) + (const RpcReqWifiRestore *message, + void *closure_data); +typedef void (*RpcRespWifiRestore_Closure) + (const RpcRespWifiRestore *message, + void *closure_data); +typedef void (*RpcReqWifiClearFastConnect_Closure) + (const RpcReqWifiClearFastConnect *message, + void *closure_data); +typedef void (*RpcRespWifiClearFastConnect_Closure) + (const RpcRespWifiClearFastConnect *message, + void *closure_data); +typedef void (*RpcReqWifiDeauthSta_Closure) + (const RpcReqWifiDeauthSta *message, + void *closure_data); +typedef void (*RpcRespWifiDeauthSta_Closure) + (const RpcRespWifiDeauthSta *message, + void *closure_data); +typedef void (*RpcReqWifiStaGetApInfo_Closure) + (const RpcReqWifiStaGetApInfo *message, + void *closure_data); +typedef void (*RpcRespWifiStaGetApInfo_Closure) + (const RpcRespWifiStaGetApInfo *message, + void *closure_data); +typedef void (*RpcReqWifiSetProtocol_Closure) + (const RpcReqWifiSetProtocol *message, + void *closure_data); +typedef void (*RpcRespWifiSetProtocol_Closure) + (const RpcRespWifiSetProtocol *message, + void *closure_data); +typedef void (*RpcReqWifiGetProtocol_Closure) + (const RpcReqWifiGetProtocol *message, + void *closure_data); +typedef void (*RpcRespWifiGetProtocol_Closure) + (const RpcRespWifiGetProtocol *message, + void *closure_data); +typedef void (*RpcReqWifiSetBandwidth_Closure) + (const RpcReqWifiSetBandwidth *message, + void *closure_data); +typedef void (*RpcRespWifiSetBandwidth_Closure) + (const RpcRespWifiSetBandwidth *message, + void *closure_data); +typedef void (*RpcReqWifiGetBandwidth_Closure) + (const RpcReqWifiGetBandwidth *message, + void *closure_data); +typedef void (*RpcRespWifiGetBandwidth_Closure) + (const RpcRespWifiGetBandwidth *message, + void *closure_data); +typedef void (*RpcReqWifiSetChannel_Closure) + (const RpcReqWifiSetChannel *message, + void *closure_data); +typedef void (*RpcRespWifiSetChannel_Closure) + (const RpcRespWifiSetChannel *message, + void *closure_data); +typedef void (*RpcReqWifiGetChannel_Closure) + (const RpcReqWifiGetChannel *message, + void *closure_data); +typedef void (*RpcRespWifiGetChannel_Closure) + (const RpcRespWifiGetChannel *message, + void *closure_data); +typedef void (*RpcReqWifiSetStorage_Closure) + (const RpcReqWifiSetStorage *message, + void *closure_data); +typedef void (*RpcRespWifiSetStorage_Closure) + (const RpcRespWifiSetStorage *message, + void *closure_data); +typedef void (*RpcReqWifiSetCountryCode_Closure) + (const RpcReqWifiSetCountryCode *message, + void *closure_data); +typedef void (*RpcRespWifiSetCountryCode_Closure) + (const RpcRespWifiSetCountryCode *message, + void *closure_data); +typedef void (*RpcReqWifiGetCountryCode_Closure) + (const RpcReqWifiGetCountryCode *message, + void *closure_data); +typedef void (*RpcRespWifiGetCountryCode_Closure) + (const RpcRespWifiGetCountryCode *message, + void *closure_data); +typedef void (*RpcReqWifiSetCountry_Closure) + (const RpcReqWifiSetCountry *message, + void *closure_data); +typedef void (*RpcRespWifiSetCountry_Closure) + (const RpcRespWifiSetCountry *message, + void *closure_data); +typedef void (*RpcReqWifiGetCountry_Closure) + (const RpcReqWifiGetCountry *message, + void *closure_data); +typedef void (*RpcRespWifiGetCountry_Closure) + (const RpcRespWifiGetCountry *message, + void *closure_data); +typedef void (*RpcReqWifiApGetStaList_Closure) + (const RpcReqWifiApGetStaList *message, + void *closure_data); +typedef void (*RpcRespWifiApGetStaList_Closure) + (const RpcRespWifiApGetStaList *message, + void *closure_data); +typedef void (*RpcReqWifiApGetStaAid_Closure) + (const RpcReqWifiApGetStaAid *message, + void *closure_data); +typedef void (*RpcReqWifiStaGetNegotiatedPhymode_Closure) + (const RpcReqWifiStaGetNegotiatedPhymode *message, + void *closure_data); +typedef void (*RpcRespWifiStaGetNegotiatedPhymode_Closure) + (const RpcRespWifiStaGetNegotiatedPhymode *message, + void *closure_data); +typedef void (*RpcRespWifiApGetStaAid_Closure) + (const RpcRespWifiApGetStaAid *message, + void *closure_data); +typedef void (*RpcReqWifiStaGetRssi_Closure) + (const RpcReqWifiStaGetRssi *message, + void *closure_data); +typedef void (*RpcRespWifiStaGetRssi_Closure) + (const RpcRespWifiStaGetRssi *message, + void *closure_data); +typedef void (*RpcReqWifiStaGetAid_Closure) + (const RpcReqWifiStaGetAid *message, + void *closure_data); +typedef void (*RpcRespWifiStaGetAid_Closure) + (const RpcRespWifiStaGetAid *message, + void *closure_data); +typedef void (*RpcReqWifiSetProtocols_Closure) + (const RpcReqWifiSetProtocols *message, + void *closure_data); +typedef void (*RpcRespWifiSetProtocols_Closure) + (const RpcRespWifiSetProtocols *message, + void *closure_data); +typedef void (*RpcReqWifiGetProtocols_Closure) + (const RpcReqWifiGetProtocols *message, + void *closure_data); +typedef void (*RpcRespWifiGetProtocols_Closure) + (const RpcRespWifiGetProtocols *message, + void *closure_data); +typedef void (*RpcReqWifiSetBandwidths_Closure) + (const RpcReqWifiSetBandwidths *message, + void *closure_data); +typedef void (*RpcRespWifiSetBandwidths_Closure) + (const RpcRespWifiSetBandwidths *message, + void *closure_data); +typedef void (*RpcReqWifiGetBandwidths_Closure) + (const RpcReqWifiGetBandwidths *message, + void *closure_data); +typedef void (*RpcRespWifiGetBandwidths_Closure) + (const RpcRespWifiGetBandwidths *message, + void *closure_data); +typedef void (*RpcReqWifiSetBand_Closure) + (const RpcReqWifiSetBand *message, + void *closure_data); +typedef void (*RpcRespWifiSetBand_Closure) + (const RpcRespWifiSetBand *message, + void *closure_data); +typedef void (*RpcReqWifiGetBand_Closure) + (const RpcReqWifiGetBand *message, + void *closure_data); +typedef void (*RpcRespWifiGetBand_Closure) + (const RpcRespWifiGetBand *message, + void *closure_data); +typedef void (*RpcReqWifiSetBandMode_Closure) + (const RpcReqWifiSetBandMode *message, + void *closure_data); +typedef void (*RpcRespWifiSetBandMode_Closure) + (const RpcRespWifiSetBandMode *message, + void *closure_data); +typedef void (*RpcReqWifiGetBandMode_Closure) + (const RpcReqWifiGetBandMode *message, + void *closure_data); +typedef void (*RpcRespWifiGetBandMode_Closure) + (const RpcRespWifiGetBandMode *message, + void *closure_data); +typedef void (*RpcReqGetCoprocessorFwVersion_Closure) + (const RpcReqGetCoprocessorFwVersion *message, + void *closure_data); +typedef void (*RpcRespGetCoprocessorFwVersion_Closure) + (const RpcRespGetCoprocessorFwVersion *message, + void *closure_data); +typedef void (*RpcEventWifiEventNoArgs_Closure) + (const RpcEventWifiEventNoArgs *message, + void *closure_data); +typedef void (*RpcEventESPInit_Closure) + (const RpcEventESPInit *message, + void *closure_data); +typedef void (*RpcEventHeartbeat_Closure) + (const RpcEventHeartbeat *message, + void *closure_data); +typedef void (*RpcEventAPStaDisconnected_Closure) + (const RpcEventAPStaDisconnected *message, + void *closure_data); +typedef void (*RpcEventAPStaConnected_Closure) + (const RpcEventAPStaConnected *message, + void *closure_data); +typedef void (*RpcEventStaScanDone_Closure) + (const RpcEventStaScanDone *message, + void *closure_data); +typedef void (*RpcEventStaConnected_Closure) + (const RpcEventStaConnected *message, + void *closure_data); +typedef void (*RpcEventStaDisconnected_Closure) + (const RpcEventStaDisconnected *message, + void *closure_data); +typedef void (*Rpc_Closure) + (const Rpc *message, + void *closure_data); + +/* --- services --- */ + + +/* --- descriptors --- */ + +extern const ProtobufCEnumDescriptor rpc__wifi_bw__descriptor; +extern const ProtobufCEnumDescriptor rpc__wifi_power_save__descriptor; +extern const ProtobufCEnumDescriptor rpc__wifi_sec_prot__descriptor; +extern const ProtobufCEnumDescriptor rpc__status__descriptor; +extern const ProtobufCEnumDescriptor rpc_type__descriptor; +extern const ProtobufCEnumDescriptor rpc_id__descriptor; +extern const ProtobufCMessageDescriptor wifi_init_config__descriptor; +extern const ProtobufCMessageDescriptor wifi_country__descriptor; +extern const ProtobufCMessageDescriptor wifi_active_scan_time__descriptor; +extern const ProtobufCMessageDescriptor wifi_scan_time__descriptor; +extern const ProtobufCMessageDescriptor wifi_scan_config__descriptor; +extern const ProtobufCMessageDescriptor wifi_he_ap_info__descriptor; +extern const ProtobufCMessageDescriptor wifi_ap_record__descriptor; +extern const ProtobufCMessageDescriptor wifi_scan_threshold__descriptor; +extern const ProtobufCMessageDescriptor wifi_pmf_config__descriptor; +extern const ProtobufCMessageDescriptor wifi_ap_config__descriptor; +extern const ProtobufCMessageDescriptor wifi_sta_config__descriptor; +extern const ProtobufCMessageDescriptor wifi_config__descriptor; +extern const ProtobufCMessageDescriptor wifi_sta_info__descriptor; +extern const ProtobufCMessageDescriptor wifi_sta_list__descriptor; +extern const ProtobufCMessageDescriptor wifi_pkt_rx_ctrl__descriptor; +extern const ProtobufCMessageDescriptor wifi_promiscuous_pkt__descriptor; +extern const ProtobufCMessageDescriptor wifi_promiscuous_filter__descriptor; +extern const ProtobufCMessageDescriptor wifi_csi_config__descriptor; +extern const ProtobufCMessageDescriptor wifi_csi_info__descriptor; +extern const ProtobufCMessageDescriptor wifi_ant_gpio__descriptor; +extern const ProtobufCMessageDescriptor wifi_ant_gpio_config__descriptor; +extern const ProtobufCMessageDescriptor wifi_ant_config__descriptor; +extern const ProtobufCMessageDescriptor wifi_action_tx_req__descriptor; +extern const ProtobufCMessageDescriptor wifi_ftm_initiator_cfg__descriptor; +extern const ProtobufCMessageDescriptor wifi_event_sta_scan_done__descriptor; +extern const ProtobufCMessageDescriptor wifi_event_sta_connected__descriptor; +extern const ProtobufCMessageDescriptor wifi_event_sta_disconnected__descriptor; +extern const ProtobufCMessageDescriptor wifi_event_sta_authmode_change__descriptor; +extern const ProtobufCMessageDescriptor wifi_event_sta_wps_er_pin__descriptor; +extern const ProtobufCMessageDescriptor ap_cred__descriptor; +extern const ProtobufCMessageDescriptor wifi_event_sta_wps_er_success__descriptor; +extern const ProtobufCMessageDescriptor wifi_event_ap_probe_req_rx__descriptor; +extern const ProtobufCMessageDescriptor wifi_event_bss_rssi_low__descriptor; +extern const ProtobufCMessageDescriptor wifi_ftm_report_entry__descriptor; +extern const ProtobufCMessageDescriptor wifi_event_ftm_report__descriptor; +extern const ProtobufCMessageDescriptor wifi_event_action_tx_status__descriptor; +extern const ProtobufCMessageDescriptor wifi_event_roc_done__descriptor; +extern const ProtobufCMessageDescriptor wifi_event_ap_wps_rg_pin__descriptor; +extern const ProtobufCMessageDescriptor wifi_event_ap_wps_rg_fail_reason__descriptor; +extern const ProtobufCMessageDescriptor wifi_event_ap_wps_rg_success__descriptor; +extern const ProtobufCMessageDescriptor wifi_protocols__descriptor; +extern const ProtobufCMessageDescriptor wifi_bandwidths__descriptor; +extern const ProtobufCMessageDescriptor connected_stalist__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__get_mac_address__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__get_mac_address__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__get_mode__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__get_mode__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__set_mode__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__set_mode__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__get_ps__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__get_ps__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__set_ps__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__set_ps__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__set_mac_address__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__set_mac_address__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__otabegin__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__otabegin__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__otawrite__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__otawrite__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__otaend__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__otaend__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_set_max_tx_power__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_max_tx_power__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_get_max_tx_power__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_max_tx_power__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__config_heartbeat__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__config_heartbeat__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_init__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_init__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_deinit__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_deinit__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_set_config__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_config__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_get_config__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_config__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_connect__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_connect__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_disconnect__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_disconnect__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_start__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_start__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_stop__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_stop__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_scan_start__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_scan_start__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_scan_stop__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_scan_stop__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_scan_get_ap_num__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_scan_get_ap_num__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_scan_get_ap_records__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_scan_get_ap_records__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_scan_get_ap_record__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_scan_get_ap_record__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_clear_ap_list__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_clear_ap_list__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_restore__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_restore__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_clear_fast_connect__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_clear_fast_connect__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_deauth_sta__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_deauth_sta__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_ap_info__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_ap_info__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_set_protocol__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_protocol__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_get_protocol__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_protocol__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_set_bandwidth__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_bandwidth__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_get_bandwidth__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_bandwidth__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_set_channel__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_channel__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_get_channel__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_channel__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_set_storage__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_storage__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_set_country_code__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_country_code__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_get_country_code__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_country_code__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_set_country__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_country__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_get_country__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_country__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_ap_get_sta_list__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_ap_get_sta_list__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_ap_get_sta_aid__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_negotiated_phymode__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_negotiated_phymode__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_ap_get_sta_aid__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_rssi__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_rssi__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_aid__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_aid__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_set_protocols__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_protocols__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_get_protocols__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_protocols__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_set_bandwidths__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_bandwidths__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_get_bandwidths__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_bandwidths__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_set_band__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_band__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_get_band__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_band__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_set_band_mode__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_band_mode__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_get_band_mode__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_band_mode__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__get_coprocessor_fw_version__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__get_coprocessor_fw_version__descriptor; +extern const ProtobufCMessageDescriptor rpc__event__wifi_event_no_args__descriptor; +extern const ProtobufCMessageDescriptor rpc__event__espinit__descriptor; +extern const ProtobufCMessageDescriptor rpc__event__heartbeat__descriptor; +extern const ProtobufCMessageDescriptor rpc__event__ap__sta_disconnected__descriptor; +extern const ProtobufCMessageDescriptor rpc__event__ap__sta_connected__descriptor; +extern const ProtobufCMessageDescriptor rpc__event__sta_scan_done__descriptor; +extern const ProtobufCMessageDescriptor rpc__event__sta_connected__descriptor; +extern const ProtobufCMessageDescriptor rpc__event__sta_disconnected__descriptor; +extern const ProtobufCMessageDescriptor rpc__descriptor; + +PROTOBUF_C__END_DECLS + + +#endif /* PROTOBUF_C_esp_5fhosted_5frpc_2eproto__INCLUDED */ diff --git a/resources/espressif__esp_hosted/common/proto/esp_hosted_rpc.proto b/resources/espressif__esp_hosted/common/proto/esp_hosted_rpc.proto new file mode 100644 index 0000000..db37ac4 --- /dev/null +++ b/resources/espressif__esp_hosted/common/proto/esp_hosted_rpc.proto @@ -0,0 +1,1830 @@ +/* Copyright (C) 2015-2023 Espressif Systems (Shanghai) PTE LTD */ +/* SPDX-License-Identifier: GPL-2.0-only OR Apache-2.0 */ + +syntax = "proto3"; + +/* Enums similar to ESP IDF */ +//enum Rpc_VendorIEType { +// Beacon = 0; +// Probe_req = 1; +// Probe_resp = 2; +// Assoc_req = 3; +// Assoc_resp = 4; +//} +// +//enum Rpc_VendorIEID { +// ID_0 = 0; +// ID_1 = 1; +//} + + +enum Rpc_WifiBw { + BW_Invalid = 0; + HT20 = 1; + HT40 = 2; +} + +enum Rpc_WifiPowerSave { + PS_Invalid = 0; + MIN_MODEM = 1; + MAX_MODEM = 2; +} + +enum Rpc_WifiSecProt { + Open = 0; + WEP = 1; + WPA_PSK = 2; + WPA2_PSK = 3; + WPA_WPA2_PSK = 4; + WPA2_ENTERPRISE = 5; + WPA3_PSK = 6; + WPA2_WPA3_PSK = 7; +} + +/* enums for Control path */ +enum Rpc_Status { + Connected = 0; + Not_Connected = 1; + No_AP_Found = 2; + Connection_Fail = 3; + Invalid_Argument = 4; + Out_Of_Range = 5; +} + + +enum RpcType { +MsgType_Invalid = 0; + Req = 1; + Resp = 2; + Event = 3; + MsgType_Max = 4; +} +// +//enum Rpc { +// ESP_ERR_WIFI_BASE = 0x3000; +// ESP_ERR_WIFI_NOT_INIT = 0x3001; +// ESP_ERR_WIFI_NOT_STARTED = 0x3002; +// ESP_ERR_WIFI_NOT_STOPPED = 0x3003; +// ESP_ERR_WIFI_IF = 0x3004; +// ESP_ERR_WIFI_MODE = 0x3005; +// ESP_ERR_WIFI_STATE = 0x3006; +// ESP_ERR_WIFI_CONN = 0x3007; +// ESP_ERR_WIFI_NVS = 0x3008; +// ESP_ERR_WIFI_MAC = 0x3009; +// ESP_ERR_WIFI_SSID = 0x300a; +// ESP_ERR_WIFI_PASSWORD = 0x300b; +// ESP_ERR_WIFI_TIMEOUT = 0x300c; +// ESP_ERR_WIFI_WAKE_FAIL = 0x300d; +// ESP_ERR_WIFI_WOULD_BLOCK = 0x300e; +// ESP_ERR_WIFI_NOT_CONNECT = 0x300f; +// /* 0x3010 0x3011 not present intentionally */ +// ESP_ERR_WIFI_POST = 0x3012; +// ESP_ERR_WIFI_INIT_STATE = 0x3013; +// ESP_ERR_WIFI_STOP_STATE = 0x3014; +// ESP_ERR_WIFI_NOT_ASSOC = 0x3015; +// ESP_ERR_WIFI_TX_DISALLOW = 0x3016; +//} + + +//enum ctrl_msg_type { +// invalid = 0; +// req = 1; +// resp = 2; +// event = 3; +// max = 4; +//} +// +//enum ctrl_msg_id { +// invalid = 0; +// req_base = 400; +// req_w_init = 401; +// req_w_deinit = 402; +// req_w_set_mode = 403; +// req_w_get_mode = 404; +// req_w_start = 405; +// req_w_stop = 406; +// req_w_restore = 407; +// req_w_connect = 408; +// req_w_disconnect = 409; +// req_w_clear_fast_connect = 410; +// req_w_deauth_sta = 411; +// req_w_scan_start = 412; +// req_w_scan_stop = 413; +// req_w_scan_get_ap_name = 414; +// req_w_scan_get_ap_records = 415; +// req_w_clear_ap_list = 416; +// req_w_sta_get_ap_info = 417; +// req_w_set_ps = 418; +// req_w_get_ps = 419; +// req_w_set_protocol = 420; +// req_w_get_protocol = 421; +// req_w_set_bandwidth = 422; +// req_w_get_bandwidth = 423; +// req_w_set_channel = 424; +// req_w_get_channel = 425; +// req_w_set_country = 426; +// req_w_get_country = 427; +// req_w_set_mac = 428; +// req_w_get_mac = 429; +// req_w_set_promiscuous_cb = 430; +// req_w_set_promiscuous = 431; +// req_w_get_promiscuous = 432; +// req_w_set_promiscuous_filter = 433; +// req_w_get_promiscuous_filter = 434; +// req_w_set_promiscuous_ctrl_filter = 435; +// req_w_get_promiscuous_ctrl_filter = 436; +// req_w_set_config = 437; +// req_w_get_config = 438; +// req_w_ap_get_sta_list = 439; +// req_w_ap_get_sta_aid = 440; +// req_w_set_storage = 441; +// req_w_set_vendor_ie = 442; +// req_w_set_vendor_ie_cb = 443; +// req_w_set_max_tx_power = 444; +// req_w_get_max_tx_power = 445; +// req_w_set_event_mask = 446; +// req_w_get_event_mask = 447; +// req_w_80211_tx = 448; +// req_w_set_csi_rx_cb = 449; +// req_w_set_csi_config = 450; +// req_w_set_csi = 451; +// req_w_set_ant_gpio = 452; +// req_w_get_ant_gpio = 453; +// req_w_set_ant = 454; +// req_w_get_ant = 455; +// req_w_get_tsf_time = 456; +// req_w_set_inactive_time = 457; +// req_w_get_inactive_time = 458; +// req_w_statis_dump = 459; +// req_w_set_rssi_threshold = 460; +// req_w_ftm_initiate_session = 461; +// req_w_ftm_end_session = 462; +// req_w_ftm_resp_set_offset = 463; +// req_w_config_11b_rate = 464; +// req_w_connectionless_module_set_wake_interval = 465; +// req_w_set_country_code = 466; +// req_w_get_country_code = 467; +// req_w_config_80211_tx_rate = 468; +// req_w_disable_pmf_config = 469; +// +// req_max = 470; +// +// +// rsp_base = 600; +// rsp_w_init = 601; +// rsp_w_deinit = 602; +// rsp_w_set_mode = 603; +// rsp_w_get_mode = 604; +// rsp_w_start = 605; +// rsp_w_stop = 606; +// rsp_w_restore = 607; +// rsp_w_connect = 608; +// rsp_w_disconnect = 609; +// rsp_w_clear_fast_connect = 610; +// rsp_w_deauth_sta = 611; +// rsp_w_scan_start = 612; +// rsp_w_scan_stop = 613; +// rsp_w_scan_get_ap_name = 614; +// rsp_w_scan_get_ap_records = 615; +// rsp_w_clear_ap_list = 616; +// rsp_w_sta_get_ap_info = 617; +// rsp_w_set_ps = 618; +// rsp_w_get_ps = 619; +// rsp_w_set_protocol = 620; +// rsp_w_get_protocol = 621; +// rsp_w_set_bandwidth = 622; +// rsp_w_get_bandwidth = 623; +// rsp_w_set_channel = 624; +// rsp_w_get_channel = 625; +// rsp_w_set_country = 626; +// rsp_w_get_country = 627; +// rsp_w_set_mac = 628; +// rsp_w_get_mac = 629; +// rsp_w_set_promiscuous_cb = 630; +// rsp_w_set_promiscuous = 631; +// rsp_w_get_promiscuous = 632; +// rsp_w_set_promiscuous_filter = 633; +// rsp_w_get_promiscuous_filter = 634; +// rsp_w_set_promiscuous_ctrl_filter = 635; +// rsp_w_get_promiscuous_ctrl_filter = 636; +// rsp_w_set_config = 637; +// rsp_w_get_config = 638; +// rsp_w_ap_get_sta_list = 639; +// rsp_w_ap_get_sta_aid = 640; +// rsp_w_set_storage = 641; +// rsp_w_set_vendor_ie = 642; +// rsp_w_set_vendor_ie_cb = 643; +// rsp_w_set_max_tx_power = 644; +// rsp_w_get_max_tx_power = 645; +// rsp_w_set_event_mask = 646; +// rsp_w_get_event_mask = 647; +// rsp_w_80211_tx = 648; +// rsp_w_set_csi_rx_cb = 649; +// rsp_w_set_csi_config = 650; +// rsp_w_set_csi = 651; +// rsp_w_set_ant_gpio = 652; +// rsp_w_get_ant_gpio = 653; +// rsp_w_set_ant = 654; +// rsp_w_get_ant = 655; +// rsp_w_get_tsf_time = 656; +// rsp_w_set_inactive_time = 657; +// rsp_w_get_inactive_time = 658; +// rsp_w_statis_dump = 659; +// rsp_w_set_rssi_threshold = 660; +// rsp_w_ftm_initiate_session = 661; +// rsp_w_ftm_end_session = 662; +// rsp_w_ftm_resp_set_offset = 663; +// rsp_w_config_11b_rate = 664; +// rsp_w_connectionless_module_set_wake_interval = 665; +// rsp_w_set_country_code = 666; +// rsp_w_get_country_code = 667; +// rsp_w_config_80211_tx_rate = 668; +// rsp_w_disable_pmf_config = 669; +// +// rsp_max = 670; +// +// +// evt_base = 800; +// evt_esp_started = 801; +// evt_heartbeat = 802; +// evt_w_ready = 803; /**< ESP32 WiFi ready */ +// evt_w_scan_done = 804; /**< ESP32 finish scanning AP */ +// evt_w_sta_start = 805; /**< ESP32 station start */ +// evt_w_sta_stop = 806; /**< ESP32 station stop */ +// evt_w_sta_connected = 807; /**< ESP32 station connected to AP */ +// evt_w_sta_disconnected = 808; /**< ESP32 station disconnected from AP */ +// evt_w_sta_authmode_change = 809; /**< the auth mode of AP connected by ESP32 station changed */ +// +// evt_w_sta_wps_er_success = 810; /**< ESP32 station wps succeeds in enrollee mode */ +// evt_w_sta_wps_er_failed = 811; /**< ESP32 station wps fails in enrollee mode */ +// evt_w_sta_wps_er_timeout = 812; /**< ESP32 station wps timeout in enrollee mode */ +// evt_w_sta_wps_er_pin = 813; /**< ESP32 station wps pin code in enrollee mode */ +// evt_w_sta_wps_er_pbc_overlap = 814; /**< ESP32 station wps overlap in enrollee mode */ +// +// evt_w_ap_start = 815; /**< ESP32 soft-AP start */ +// evt_w_ap_stop = 816; /**< ESP32 soft-AP stop */ +// evt_w_ap_staconnected = 817; /**< a station connected to ESP32 soft-AP */ +// evt_w_ap_stadisconnected = 818; /**< a station disconnected from ESP32 soft-AP */ +// evt_w_ap_probereqrecved = 819; /**< Receive probe request packet in soft-AP interface */ +// +// evt_w_ftm_report = 820; /**< Receive report of FTM procedure */ +// +// /* Add next events after this only */ +// evt_w_sta_bss_rssi_low = 821; /**< AP's RSSI crossed configured threshold */ +// evt_w_action_tx_status = 822; /**< Status indication of Action Tx operation */ +// evt_w_roc_done = 823; /**< Remain-on-Channel operation complete */ +// +// evt_w_sta_beacon_timeout = 824; /**< ESP32 station beacon timeout */ +// +// evt_w_connectionless_module_wake_interval_start = 825; /**< ESP32 connectionless module wake interval start */ +// +// evt_w_ap_wps_rg_success = 826; /**< Soft-AP wps succeeds in registrar mode */ +// evt_w_ap_wps_rg_failed = 827; /**< Soft-AP wps fails in registrar mode */ +// evt_w_ap_wps_rg_timeout = 828; /**< Soft-AP wps timeout in registrar mode */ +// evt_w_ap_wps_rg_pin = 829; /**< Soft-AP wps pin code in registrar mode */ +// evt_w_ap_wps_rg_pbc_overlap = 830; /**< Soft-AP wps overlap in registrar mode */ +// +// evt_max = 831; /**< Invalid WiFi event ID */ +// +//} + + +enum RpcId { + MsgId_Invalid = 0; + + /** Request Msgs **/ + Req_Base = 256; //0x100 + + Req_GetMACAddress = 257; //0x101 + Req_SetMacAddress = 258; //0x102 + Req_GetWifiMode = 259; //0x103 + Req_SetWifiMode = 260; //0x104 + + //Req_GetAPScanList = 261; //0x105 + //Req_GetAPConfig = 262; //0x106 + //Req_ConnectAP = 263; //0x107 + //Req_DisconnectAP = 264; //0x108 + + //Req_GetSoftAPConfig = 265; //0x109 + //Req_SetSoftAPVendorSpecificIE = 266; //0x10a + //Req_StartSoftAP = 267; //0x10b + //Req_GetSoftAPConnectedSTAList = 268; //0x10c + //Req_StopSoftAP = 269; //0x10d + + Req_WifiSetPs = 270; //0x10e + Req_WifiGetPs = 271; //0x10f + + Req_OTABegin = 272; //0x110 + Req_OTAWrite = 273; //0x111 + Req_OTAEnd = 274; //0x112 + + Req_WifiSetMaxTxPower = 275; //0x113 + Req_WifiGetMaxTxPower = 276; //0x114 + + Req_ConfigHeartbeat = 277; //0x115 + + Req_WifiInit = 278; //0x116 + Req_WifiDeinit = 279; //0x117 + Req_WifiStart = 280; //0x118 + Req_WifiStop = 281; //0x119 + Req_WifiConnect = 282; //0x11a + Req_WifiDisconnect = 283; //0x11b + Req_WifiSetConfig = 284; //0x11c + Req_WifiGetConfig = 285; //0x11d + + Req_WifiScanStart = 286; //0x11e + Req_WifiScanStop = 287; //0x11f + Req_WifiScanGetApNum = 288; //0x120 + Req_WifiScanGetApRecords = 289; //0x121 + Req_WifiClearApList = 290; //0x122 + + Req_WifiRestore = 291; //0x123 + Req_WifiClearFastConnect = 292; //0x124 + Req_WifiDeauthSta = 293; //0x125 + Req_WifiStaGetApInfo = 294; //0x126 + //Req_WifiSetPs = 295; //0x127 + //Req_WifiGetPs = 296; //0x128 + Req_WifiSetProtocol = 297; //0x129 + Req_WifiGetProtocol = 298; //0x12a + Req_WifiSetBandwidth = 299; //0x12b + Req_WifiGetBandwidth = 300; //0x12c + Req_WifiSetChannel = 301; //0x12d + Req_WifiGetChannel = 302; //0x12e + Req_WifiSetCountry = 303; //0x12f + Req_WifiGetCountry = 304; //0x130 + +// Req_WifiSetPromiscuousRxCb = 305; //0x131 + Req_WifiSetPromiscuous = 305; //0x131 + Req_WifiGetPromiscuous = 306; //0x132 + Req_WifiSetPromiscuousFilter = 307; //0x133 + Req_WifiGetPromiscuousFilter = 308; //0x134 + Req_WifiSetPromiscuousCtrlFilter = 309; //0x135 + Req_WifiGetPromiscuousCtrlFilter = 310; //0x136 + + Req_WifiApGetStaList = 311; //0x137 + Req_WifiApGetStaAid = 312; //0x138 + Req_WifiSetStorage = 313; //0x139 + Req_WifiSetVendorIe = 314; //0x13a +// Req_WifiSetVendorIeCb = 315; //0x13b + Req_WifiSetEventMask = 315; //0x13b + Req_WifiGetEventMask = 316; //0x13c + Req_Wifi80211Tx = 317; //0x13d + +// Req_WifiSetCsiRxCb = 318; //0x13e + Req_WifiSetCsiConfig = 318; //0x13e + Req_WifiSetCsi = 319; //0x13f + + Req_WifiSetAntGpio = 320; //0x140 + Req_WifiGetAntGpio = 321; //0x141 + Req_WifiSetAnt = 322; //0x142 + Req_WifiGetAnt = 323; //0x143 + + Req_WifiGetTsfTime = 324; //0x144 + Req_WifiSetInactiveTime = 325; //0x145 + Req_WifiGetInactiveTime = 326; //0x146 + Req_WifiStatisDump = 327; //0x147 + Req_WifiSetRssiThreshold = 328; //0x148 + + Req_WifiFtmInitiateSession = 329; //0x149 + Req_WifiFtmEndSession = 330; //0x14a + Req_WifiFtmRespSetOffset = 331; //0x14b + + Req_WifiConfig11bRate = 332; //0x14c + Req_WifiConnectionlessModuleSetWakeInterval = 333; //0x14d + Req_WifiSetCountryCode = 334; //0x14e + Req_WifiGetCountryCode = 335; //0x14f + Req_WifiConfig80211TxRate = 336; //0x150 + Req_WifiDisablePmfConfig = 337; //0x151 + Req_WifiStaGetAid = 338; //0x152 + Req_WifiStaGetNegotiatedPhymode = 339; //0x153 + Req_WifiSetDynamicCs = 340; //0x154 + Req_WifiStaGetRssi = 341; //0x155 + + Req_WifiSetProtocols = 342; //0x156 + Req_WifiGetProtocols = 343; //0x157 + Req_WifiSetBandwidths = 344; //0x158 + Req_WifiGetBandwidths = 345; //0x159 + + Req_WifiSetBand = 346; //0x15a + Req_WifiGetBand = 347; //0x15b + Req_WifiSetBandMode = 348; //0x15c + Req_WifiGetBandMode = 349; //0x15d + + Req_GetCoprocessorFwVersion = 350; //0x15e + + Req_WifiScanGetApRecord = 351; //0x15f + +/* Add new control path command response before Req_Max + * and update Req_Max */ + Req_Max = 352; //0x160 + + /** Response Msgs **/ + Resp_Base = 512; + + Resp_GetMACAddress = 513; + Resp_SetMacAddress = 514; + Resp_GetWifiMode = 515; + Resp_SetWifiMode = 516; + + //Resp_GetAPScanList = 517; + //Resp_GetAPConfig = 518; + //Resp_ConnectAP = 519; + //Resp_DisconnectAP = 520; + + //Resp_GetSoftAPConfig = 521; + //Resp_SetSoftAPVendorSpecificIE = 522; + //Resp_StartSoftAP = 523; + //Resp_GetSoftAPConnectedSTAList = 524; + //Resp_StopSoftAP = 525; + + Resp_WifiSetPs = 526; + Resp_WifiGetPs = 527; + + Resp_OTABegin = 528; + Resp_OTAWrite = 529; + Resp_OTAEnd = 530; + + Resp_WifiSetMaxTxPower = 531; + Resp_WifiGetMaxTxPower = 532; + + Resp_ConfigHeartbeat = 533; + + Resp_WifiInit = 534; + Resp_WifiDeinit = 535; + Resp_WifiStart = 536; + Resp_WifiStop = 537; + Resp_WifiConnect = 538; + Resp_WifiDisconnect = 539; + Resp_WifiSetConfig = 540; + Resp_WifiGetConfig = 541; + + Resp_WifiScanStart = 542; + Resp_WifiScanStop = 543; + Resp_WifiScanGetApNum = 544; + Resp_WifiScanGetApRecords = 545; + Resp_WifiClearApList = 546; + + Resp_WifiRestore = 547; + Resp_WifiClearFastConnect = 548; + Resp_WifiDeauthSta = 549; + Resp_WifiStaGetApInfo = 550; + //Resp_WifiSetPs = 551; + //Resp_WifiGetPs = 552; + Resp_WifiSetProtocol = 553; + Resp_WifiGetProtocol = 554; + Resp_WifiSetBandwidth = 555; + Resp_WifiGetBandwidth = 556; + Resp_WifiSetChannel = 557; + Resp_WifiGetChannel = 558; + Resp_WifiSetCountry = 559; + Resp_WifiGetCountry = 560; + +// Resp_WifiSetPromiscuousRxCb = 561; + Resp_WifiSetPromiscuous = 561; + Resp_WifiGetPromiscuous = 562; + Resp_WifiSetPromiscuousFilter = 563; + Resp_WifiGetPromiscuousFilter = 564; + Resp_WifiSetPromiscuousCtrlFilter = 565; + Resp_WifiGetPromiscuousCtrlFilter = 566; + + Resp_WifiApGetStaList = 567; + Resp_WifiApGetStaAid = 568; + Resp_WifiSetStorage = 569; + Resp_WifiSetVendorIe = 570; +// Resp_WifiSetVendorIeCb = 571; + Resp_WifiSetEventMask = 571; + Resp_WifiGetEventMask = 572; + Resp_Wifi80211Tx = 573; + +// Resp_WifiSetCsiRxCb = 573; + Resp_WifiSetCsiConfig = 574; + Resp_WifiSetCsi = 575; + + Resp_WifiSetAntGpio = 576; + Resp_WifiGetAntGpio = 577; + Resp_WifiSetAnt = 578; + Resp_WifiGetAnt = 579; + + Resp_WifiGetTsfTime = 580; + Resp_WifiSetInactiveTime = 581; + Resp_WifiGetInactiveTime = 582; + Resp_WifiStatisDump = 583; + Resp_WifiSetRssiThreshold = 584; + + Resp_WifiFtmInitiateSession = 585; + Resp_WifiFtmEndSession = 586; + Resp_WifiFtmRespSetOffset = 587; + + Resp_WifiConfig11bRate = 588; + Resp_WifiConnectionlessModuleSetWakeInterval = 589; + Resp_WifiSetCountryCode = 590; + Resp_WifiGetCountryCode = 591; + Resp_WifiConfig80211TxRate = 592; + Resp_WifiDisablePmfConfig = 593; + Resp_WifiStaGetAid = 594; + Resp_WifiStaGetNegotiatedPhymode = 595; + Resp_WifiSetDynamicCs = 596; + Resp_WifiStaGetRssi = 597; + + Resp_WifiSetProtocols = 598; + Resp_WifiGetProtocols = 599; + Resp_WifiSetBandwidths = 600; + Resp_WifiGetBandwidths = 601; + + Resp_WifiSetBand = 602; + Resp_WifiGetBand = 603; + Resp_WifiSetBandMode = 604; + Resp_WifiGetBandMode = 605; + + Resp_GetCoprocessorFwVersion = 606; + + Resp_WifiScanGetApRecord = 607; + + /* Add new control path command response before Resp_Max + * and update Resp_Max */ + Resp_Max = 608; + + /** Event Msgs **/ + Event_Base = 768; + Event_ESPInit = 769; + Event_Heartbeat = 770; + Event_AP_StaConnected = 771; + Event_AP_StaDisconnected = 772; + Event_WifiEventNoArgs = 773; + Event_StaScanDone = 774; + Event_StaConnected = 775; + Event_StaDisconnected = 776; + + /* Add new control path command notification before Event_Max + * and update Event_Max */ + Event_Max = 777; +} + +message wifi_init_config { + int32 static_rx_buf_num = 1; /**< WiFi static RX buffer number */ + int32 dynamic_rx_buf_num = 2; /**< WiFi dynamic RX buffer number */ + int32 tx_buf_type = 3; /**< WiFi TX buffer type */ + int32 static_tx_buf_num = 4; /**< WiFi static TX buffer number */ + int32 dynamic_tx_buf_num = 5; /**< WiFi dynamic TX buffer number */ + int32 cache_tx_buf_num = 6; /**< WiFi TX cache buffer number */ + int32 csi_enable = 7; /**< WiFi channel state information enable flag */ + int32 ampdu_rx_enable = 8; /**< WiFi AMPDU RX feature enable flag */ + int32 ampdu_tx_enable = 9; /**< WiFi AMPDU TX feature enable flag */ + int32 amsdu_tx_enable = 10; /**< WiFi AMSDU TX feature enable flag */ + int32 nvs_enable = 11; /**< WiFi NVS flash enable flag */ + int32 nano_enable = 12; /**< Nano option for printf/scan family enable flag */ + int32 rx_ba_win = 13; /**< WiFi Block Ack RX window size */ + int32 wifi_task_core_id = 14; /**< WiFi Task Core ID */ + int32 beacon_max_len = 15; /**< WiFi softAP maximum length of the beacon */ + int32 mgmt_sbuf_num = 16; /**< WiFi management short buffer number, the minimum value is 6, the maximum value is 32 */ + uint64 feature_caps = 17; /**< Enables additional WiFi features and capabilities */ + bool sta_disconnected_pm = 18; /**< WiFi Power Management for station at disconnected status */ + int32 espnow_max_encrypt_num = 19; /**< Maximum encrypt number of peers supported by espnow */ + int32 magic = 20; /**< WiFi init magic number, it should be the last field */ +} + +message wifi_country { + bytes cc = 1; /**< country code string of 3 chars*/ + uint32 schan = 2; /**< start channel */ + uint32 nchan = 3; /**< total channel number */ + int32 max_tx_power = 4; /**< This field is used for getting WiFi maximum transmitting power, + call esp_wifi_set_max_tx_power to set the maximum transmitting power. */ + int32 policy = 5; /**< country policy */ +} + + +message wifi_active_scan_time { + uint32 min = 1; /**< minimum active scan time per channel, units: millisecond */ + uint32 max = 2; /**< maximum active scan time per channel, units: millisecond, values above 1500ms may + cause station to disconnect from AP and are not recommended. */ +} ; + +message wifi_scan_time { + wifi_active_scan_time active = 1; /**< active scan time per channel, units: millisecond. */ + uint32 passive = 2; /**< passive scan time per channel, units: millisecond, values above 1500ms may + cause station to disconnect from AP and are not recommended. */ +} + +message wifi_scan_config { + bytes ssid = 1; /**< SSID of AP 33char*/ + bytes bssid = 2; /**< MAC address of AP 6char */ + uint32 channel = 3; /**< channel, scan the specific channel */ + bool show_hidden = 4; /**< enable to scan AP whose SSID is hidden */ + int32 scan_type = 5; /**< scan type, active or passive */ + wifi_scan_time scan_time = 6; /**< scan time per channel */ + uint32 home_chan_dwell_time = 7; /**< time spent at home channel between scanning consecutive channels.*/ +} + +message wifi_he_ap_info { + //uint8_t bss_color:6; /**< an unsigned integer whose value is the BSS Color of the BSS corresponding to the AP */ + //uint8_t partial_bss_color:1; /**< indicate if an AID assignment rule based on the BSS color */ + //uint8_t bss_color_disabled:1; /**< indicate if the use of BSS color is disabled */ + uint32 bitmask = 1; /* Manually have to parse for above bits */ + uint32 bssid_index = 2; /**< in M-BSSID set, identifies the nontransmitted BSSID */ +} + +message wifi_ap_record { + bytes bssid = 1; /**< MAC address of AP 6char */ + bytes ssid = 2; /**< SSID of AP 33char */ + uint32 primary = 3; /**< channel of AP */ + int32 second = 4; /**< secondary channel of AP */ + int32 rssi = 5; /**< signal strength of AP */ + int32 authmode = 6; /**< authmode of AP */ + int32 pairwise_cipher = 7; /**< pairwise cipher of AP */ + int32 group_cipher = 8; /**< group cipher of AP */ + int32 ant = 9; /**< antenna used to receive beacon from AP */ + //uint32_t phy_11b:1; /**< bit: 0 flag to identify if 11b mode is enabled or not */ + //uint32_t phy_11g:1; /**< bit: 1 flag to identify if 11g mode is enabled or not */ + //uint32_t phy_11n:1; /**< bit: 2 flag to identify if 11n mode is enabled or not */ + //uint32_t phy_lr:1; /**< bit: 3 flag to identify if low rate is enabled or not */ + //uint32_t wps:1; /**< bit: 4 flag to identify if WPS is supported or not */ + //uint32_t ftm_responder:1; /**< bit: 5 flag to identify if FTM is supported in responder mode */ + //uint32_t ftm_initiator:1; /**< bit: 6 flag to identify if FTM is supported in initiator mode */ + //uint32_t reserved:25; /**< bit: 7..31 reserved */ + uint32 bitmask = 10; /* Manually have to parse for above bits */ + + wifi_country country = 11; /**< country information of AP */ + wifi_he_ap_info he_ap = 12; + uint32 bandwidth = 13; /**< For AP 20 MHz this value is set to 1. For AP 40 MHz this value is set to 2. + For AP 80 MHz this value is set to 3. For AP 160MHz this value is set to 4. + For AP 80+80MHz this value is set to 5*/ + uint32 vht_ch_freq1 = 14; /**< This fields are used only AP bandwidth is 80 and 160 MHz, to transmit the center channel + frequency of the BSS. For AP bandwidth is 80 + 80 MHz, it is the center channel frequency + of the lower frequency segment.*/ + uint32 vht_ch_freq2 = 15; /**< This fields are used only AP bandwidth is 80 + 80 MHz, and is used to transmit the center + channel frequency of the second segment. */ +} + +message wifi_scan_threshold { + int32 rssi = 1; /**< The minimum rssi to accept in the fast scan mode */ + int32 authmode = 2; /**< The weakest authmode to accept in the fast scan mode +Note: Incase this value is not set and password is set as per WPA2 standards(password len >= 8), +it will be defaulted to WPA2 and device won't connect to deprecated WEP/WPA networks. +Please set authmode threshold as WIFI_AUTH_WEP/WIFI_AUTH_WPA_PSK to connect to WEP/WPA networks */ +} + +message wifi_pmf_config { + bool capable = 1; /**< Deprecated variable. Device will always connect in PMF mode if other device also advertizes PMF capability. */ + bool required = 2; /**< Advertizes that Protected Management Frame is required. Device will not associate to non-PMF capable devices. */ +} + +message wifi_ap_config { + bytes ssid = 1; /**< SSID of ESP32 soft-AP. If ssid_len field is 0, this must be a Null terminated string. Otherwise, length is set according to ssid_len. 32 char*/ + bytes password = 2; /**< Password of ESP32 soft-AP. 64 char*/ + uint32 ssid_len = 3; /**< Optional length of SSID field. */ + uint32 channel = 4; /**< Channel of ESP32 soft-AP */ + int32 authmode = 5; /**< Auth mode of ESP32 soft-AP. Do not support AUTH_WEP in soft-AP mode */ + uint32 ssid_hidden = 6; /**< Broadcast SSID or not, default 0, broadcast the SSID */ + uint32 max_connection = 7; /**< Max number of stations allowed to connect in */ + uint32 beacon_interval = 8; /**< Beacon interval which should be multiples of 100. Unit: TU(time unit, 1 TU = 1024 us). Range: 100 ~ 60000. Default value: 100 */ + int32 pairwise_cipher = 9; /**< pairwise cipher of SoftAP, group cipher will be derived using this. + cipher values are valid starting from WIFI_CIPHER_TYPE_TKIP, enum values before that will be considered as invalid and default cipher suites(TKIP+CCMP) will be used. + Valid cipher suites in softAP mode are WIFI_CIPHER_TYPE_TKIP, WIFI_CIPHER_TYPE_CCMP and WIFI_CIPHER_TYPE_TKIP_CCMP. */ + bool ftm_responder = 10; /**< Enable FTM Responder mode */ + wifi_pmf_config pmf_cfg = 11; /**< Configuration for Protected Management Frame */ + int32 sae_pwe_h2e = 12; /**< Configuration for SAE PWE derivation method */ +} + +message wifi_sta_config { + bytes ssid = 1; /**< SSID of target AP. 32char */ + bytes password = 2; /**< Password of target AP. 64char */ + int32 scan_method = 3; /**< do all channel scan or fast scan */ + bool bssid_set = 4; /**< whether set MAC address of target AP or not. Generally, station_config.bssid_set needs to be 0, + and it needs to be 1 only when users need to check the MAC address of the AP.*/ + bytes bssid = 5; /**< MAC address of target AP 6char */ + uint32 channel = 6; /**< channel of target AP. Set to 1~13 to scan starting from the specified channel + before connecting to AP. If the channel of AP is unknown, set it to 0.*/ + uint32 listen_interval = 7; /**< Listen interval for ESP32 station to receive beacon when WIFI_PS_MAX_MODEM is set. +Units: AP beacon intervals. Defaults to 3 if set to 0. */ + int32 sort_method = 8; /**< sort the connect AP in the list by rssi or security mode */ + wifi_scan_threshold threshold = 9; /**< When sort_method is set, only APs which have an auth mode that is more secure + than the selected auth mode and a signal stronger than the minimum RSSI will be used. */ + wifi_pmf_config pmf_cfg = 10; /**< Configuration for Protected Management Frame. Will be advertized in RSN Capabilities in RSN IE. */ + //uint32_t rm_enabled:1; /**< Whether Radio Measurements are enabled for the connection */ + //uint32_t btm_enabled:1; /**< Whether BSS Transition Management is enabled for the connection */ + //uint32_t mbo_enabled:1; /**< Whether MBO is enabled for the connection */ + //uint32_t ft_enabled:1; /**< Whether FT is enabled for the connection */ + //uint32_t owe_enabled:1; /**< Whether OWE is enabled for the connection */ + //uint32_t transition_disable:1; /**< Whether to enable transition disable feature */ + //uint32_t reserved:26; /**< Reserved for future feature set */ + uint32 bitmask = 11; + int32 sae_pwe_h2e = 12; /**< Whether SAE hash to element is enabled */ + uint32 failure_retry_cnt = 13; /**< Number of connection retries station will do before moving to next AP. + scan_method should be set as WIFI_ALL_CHANNEL_SCAN to use this config. + Note: Enabling this may cause connection time to increase incase best AP doesn't behave properly. */ + //uint32_t he_dcm_set:1; /**< Whether DCM max.constellation for transmission and reception is set. */ + //uint32_t he_dcm_max_constellation_tx:2; /**< Indicate the max.constellation for DCM in TB PPDU the STA supported. 0: not supported. 1: BPSK, 2: QPSK, 3: 16-QAM. The default value is 3. */ + //uint32_t he_dcm_max_constellation_rx:2; /**< Indicate the max.constellation for DCM in both Data field and HE-SIG-B field the STA supported. 0: not supported. 1: BPSK, 2: QPSK, 3: 16-QAM. The default value is 3. */ + //uint32_t he_mcs9_enabled:1; /**< Whether to support HE-MCS 0 to 9. The default value is 0. */ + //uint32_t he_su_beamformee_disabled:1; /**< Whether to disable support for operation as an SU beamformee. */ + //uint32_t he_trig_su_bmforming_feedback_disabled:1; /**< Whether to disable support the transmission of SU feedback in an HE TB sounding sequence. */ + //uint32_t he_trig_mu_bmforming_partial_feedback_disabled:1; /**< Whether to disable support the transmission of partial-bandwidth MU feedback in an HE TB sounding sequence. */ + // uint32_t he_trig_cqi_feedback_disabled:1; /**< Whether to disable support the transmission of CQI feedback in an HE TB sounding sequence. */ + // uint32_t he_reserved:22; /**< Reserved for future feature set */ + uint32 he_bitmask = 14; + bytes sae_h2e_identifier = 15; /**< Password identifier for H2E. this needs to be null terminated string. SAE_H2E_IDENTIFIER_LEN chars */ +} + +message wifi_config { + oneof u { + wifi_ap_config ap = 1; /**< configuration of AP */ + wifi_sta_config sta = 2; /**< configuration of STA */ + } +} + +message wifi_sta_info { + bytes mac = 1; /**< mac address 6 char */ + int32 rssi = 2; /**< current average rssi of sta connected */ + //uint32_t phy_11b:1; /**< bit: 0 flag to identify if 11b mode is enabled or not */ + //uint32_t phy_11g:1; /**< bit: 1 flag to identify if 11g mode is enabled or not */ + //uint32_t phy_11n:1; /**< bit: 2 flag to identify if 11n mode is enabled or not */ + //uint32_t phy_lr:1; /**< bit: 3 flag to identify if low rate is enabled or not */ + //uint32_t phy_11x:1; /**< bit: 4 flag to identify identify if 11ax mode is enabled or not */ + //uint32_t is_mesh_child:1; /**< bit: 5 flag to identify mesh child */ + //uint32_t reserved:26; /**< bit: 6..31 reserved */ + uint32 bitmask = 3; +} + +message wifi_sta_list { + repeated wifi_sta_info sta = 1; /**< station list */ + int32 num = 2; /**< number of stations in the list (other entries are invalid) */ +} + +//message vendor_ie_data { +// uint32 element_id = 1; /**< Should be set to WIFI_VENDOR_IE_ELEMENT_ID (0xDD) */ +// uint32 length = 2; /**< Length of all bytes in the element data following this field. Minimum 4. */ +// bytes vendor_oui = 3; /**< Vendor identifier (OUI). 3 chars */ +// uint32 vendor_oui_type = 4; /**< Vendor-specific OUI type. */ +// bytes payload = 5; /**< Payload. Length is equal to value in 'length' field, minus 4. Note: Variable size */ +//} + +message wifi_pkt_rx_ctrl { + int32 rssi = 1; /**< 8bits Received Signal Strength Indicator(RSSI) of packet. unit: dBm */ + uint32 rate = 2; /**< 5bits PHY rate encoding of the packet. Only valid for non HT(11bg) packet */ + //uint32 :1; /**< reserved */ + uint32 sig_mode = 3; /**< 2bits 0: non HT(11bg) packet; 1: HT(11n) packet; 3: VHT(11ac) packet */ + //uint32 :16; /**< reserved */ + uint32 mcs = 4; /**< 7bits Modulation Coding Scheme. If is HT(11n) packet, shows the modulation, range from 0 to 76(MSC0 ~ MCS76) */ + uint32 cwb = 5; /**< 1bit Channel Bandwidth of the packet. 0: 20MHz; 1: 40MHz */ + //uint32 :16; /**< reserved */ + uint32 smoothing = 6; /**< 1bit reserved */ + uint32 not_sounding = 7; /**< 1bit reserved */ + //uint32 :1; /**< reserved */ + uint32 aggregation = 8; /**< 1bit Aggregation. 0: MPDU packet; 1: AMPDU packet */ + uint32 stbc = 9; /**< 2bits Space Time Block Code(STBC). 0: non STBC packet; 1: STBC packet */ + uint32 fec_coding = 10; /**< 1bit Flag is set for 11n packets which are LDPC */ + uint32 sgi = 11; /**< 1bit Short Guide Interval(SGI). 0: Long GI; 1: Short GI */ + int32 noise_floor = 12; /**< 8bits noise floor of Radio Frequency Module(RF). unit: dBm*/ + uint32 ampdu_cnt = 13; /**< 8bits ampdu cnt */ + uint32 channel = 14; /**< 4bits primary channel on which this packet is received */ + uint32 secondary_channel = 15; /**< 4bits secondary channel on which this packet is received. 0: none; 1: above; 2: below */ + //uint32 :8; /**< reserved */ + uint32 timestamp = 16; /**< 32bit timestamp. The local time when this packet is received. It is precise only if modem sleep or light sleep is not enabled. unit: microsecond */ + //uint32 :32; /**< reserved */ + //unsigned :32; /**< reserved */ + //unsigned :31; /**< reserved */ + uint32 ant = 17; /**< 1bit antenna number from which this packet is received. 0: WiFi antenna 0; 1: WiFi antenna 1 */ + uint32 sig_len = 18; /**< 12bits length of packet including Frame Check Sequence(FCS) */ + //unsigned :12; /**< reserved */ + uint32 rx_state = 19; /**< 8bits state of the packet. 0: no error; others: error numbers which are not public */ +} + +message wifi_promiscuous_pkt { + wifi_pkt_rx_ctrl rx_ctrl = 1; /**< metadata header */ + bytes payload = 2; /**< Note: variable length. Data or management payload. Length of payload is described by rx_ctrl.sig_len. Type of content determined by packet type argument of callback. */ +} + +message wifi_promiscuous_filter { + uint32 filter_mask = 1; /**< OR of one or more filter values WIFI_PROMIS_FILTER_* */ +} + +message wifi_csi_config { + bool lltf_en = 1; /**< enable to receive legacy long training field(lltf) data. Default enabled */ + bool htltf_en = 2; /**< enable to receive HT long training field(htltf) data. Default enabled */ + bool stbc_htltf2_en = 3; /**< enable to receive space time block code HT long training field(stbc-htltf2) data. Default enabled */ + bool ltf_merge_en = 4; /**< enable to generate htlft data by averaging lltf and ht_ltf data when receiving HT packet. Otherwise, use ht_ltf data directly. Default enabled */ + bool channel_filter_en = 5; /**< enable to turn on channel filter to smooth adjacent sub-carrier. Disable it to keep independence of adjacent sub-carrier. Default enabled */ + bool manu_scale = 6; /**< manually scale the CSI data by left shifting or automatically scale the CSI data. + If set true, please set the shift bits. false: automatically. true: manually. Default false */ + uint32 shift = 7; /**< manually left shift bits of the scale of the CSI data. The range of the left shift bits is 0~15 */ +} + +message wifi_csi_info { + wifi_pkt_rx_ctrl rx_ctrl = 1; /**< received packet radio metadata header of the CSI data */ + bytes mac = 2; /**< 6bits source MAC address of the CSI data */ + bytes dmac = 3; /**< 6bits destination MAC address of the CSI data */ + bool first_word_invalid = 4; /**< first four bytes of the CSI data is invalid or not */ + bytes buf = 5; /**< Note: variable length. buffer of CSI data */ + uint32 len = 6; /**< length of CSI data */ +} + +message wifi_ant_gpio { + uint32 gpio_select = 1; /**< 1bit Whether this GPIO is connected to external antenna switch */ + uint32 gpio_num = 2; /**< 7bits The GPIO number that connects to external antenna switch */ +} + +message wifi_ant_gpio_config { + repeated wifi_ant_gpio gpio_cfgs = 1; /**< The configurations of GPIOs that connect to external antenna switch */ +} + +message wifi_ant_config { + int32 rx_ant_mode = 1; /**< WiFi antenna mode for receiving */ + int32 rx_ant_default = 2; /**< Default antenna mode for receiving, it's ignored if rx_ant_mode is not WIFI_ANT_MODE_AUTO */ + int32 tx_ant_mode = 3; /**< WiFi antenna mode for transmission, it can be set to WIFI_ANT_MODE_AUTO only if rx_ant_mode is set to WIFI_ANT_MODE_AUTO */ + uint32 enabled_ant0 = 4; /**< 4bits Index (in antenna GPIO configuration) of enabled WIFI_ANT_MODE_ANT0 */ + uint32 enabled_ant1 = 5; /**< 4bits Index (in antenna GPIO configuration) of enabled WIFI_ANT_MODE_ANT1 */ +} + +message wifi_action_tx_req { + int32 ifx = 1; /**< WiFi interface to send request to */ + bytes dest_mac = 2; /**< 6bits Destination MAC address */ + bool no_ack = 3; /**< Indicates no ack required */ + //TODO + //wifi_action_rx_cb_t rx_cb; /**< Rx Callback to receive any response */ + uint32 data_len = 4; /**< Length of the appended Data */ + bytes data = 5; /**< note: variable length. Appended Data payload */ +} + +message wifi_ftm_initiator_cfg { + bytes resp_mac = 1; /**< 6bits MAC address of the FTM Responder */ + uint32 channel = 2; /**< Primary channel of the FTM Responder */ + uint32 frm_count = 3; /**< No. of FTM frames requested in terms of 4 or 8 bursts (allowed values - 0(No pref), 16, 24, 32, 64) */ + uint32 burst_period = 4; /**< Requested time period between consecutive FTM bursts in 100's of milliseconds (0 - No pref) */ +} + +message wifi_event_sta_scan_done { + uint32 status = 1; /**< status of scanning APs: 0 — success, 1 - failure */ + uint32 number = 2; /**< number of scan results */ + uint32 scan_id = 3; /**< scan sequence number, used for block scan */ +} + +message wifi_event_sta_connected { + bytes ssid = 1; /**< 32bytes SSID of connected AP */ + uint32 ssid_len = 2; /**< SSID length of connected AP */ + bytes bssid = 3; /**< 6bytes BSSID of connected AP*/ + uint32 channel = 4; /**< channel of connected AP*/ + int32 authmode = 5; /**< authentication mode used by AP*/ + int32 aid = 6; /**< authentication id assigned by the connected AP*/ +} + +message wifi_event_sta_disconnected { + bytes ssid = 1; /**< SSID of disconnected AP */ + uint32 ssid_len = 2; /**< SSID length of disconnected AP */ + bytes bssid = 3; /**< BSSID of disconnected AP */ + uint32 reason = 4; /**< reason of disconnection */ + int32 rssi = 5; /**< rssi of disconnection */ +} + +message wifi_event_sta_authmode_change { + int32 old_mode = 1; /**< the old auth mode of AP */ + int32 new_mode = 2; /**< the new auth mode of AP */ +} + +message wifi_event_sta_wps_er_pin { + bytes pin_code = 1; /**< 8bytes PIN code of station in enrollee mode */ +} + +message ap_cred { + bytes ssid = 1; /**< 32bytes SSID of AP */ + bytes passphrase = 2; /**< 64bytes Passphrase for the AP */ +} + +message wifi_event_sta_wps_er_success { + uint32 ap_cred_cnt = 1; /**< Number of AP credentials received */ + repeated ap_cred ap_creds = 2; /**< All AP credentials received from WPS handshake */ +} + +/** Argument structure for WIFI_EVENT_AP_PROBEREQRECVED event */ +message wifi_event_ap_probe_req_rx { + int32 rssi = 1; /**< Received probe request signal strength */ + uint32 mac = 2; /**< MAC address of the station which send probe request */ +} + +/** Argument structure for WIFI_EVENT_STA_BSS_RSSI_LOW event */ +message wifi_event_bss_rssi_low { + int32 rssi = 1; /**< RSSI value of bss */ +} + +message wifi_ftm_report_entry { + uint32 dlog_token = 1; /* *< Dialog Token of the FTM frame */ + int32 rssi = 2; /* *< RSSI of the FTM frame received */ + uint32 rtt = 3; /* *< Round Trip Time in pSec with a peer */ + /* TODO: uint32 is supported by proto? */ + uint64 t1 = 4; /* *< Time of departure of FTM frame from FTM Responder in pSec */ + uint64 t2 = 5; /* *< Time of arrival of FTM frame at FTM Initiator in pSec */ + uint64 t3 = 6; /* *< Time of departure of ACK from FTM Initiator in pSec */ + uint64 t4 = 7; /* *< Time of arrival of ACK at FTM Responder in pSec */ +} + +message wifi_event_ftm_report { + bytes peer_mac = 1; /* *< 6bytes MAC address of the FTM Peer */ + int32 status = 2; /* *< Status of the FTM operation */ + uint32 rtt_raw = 3; /* *< Raw average Round-Trip-Time with peer in Nano-Seconds */ + uint32 rtt_est = 4; /* *< Estimated Round-Trip-Time with peer in Nano-Seconds */ + uint32 dist_est = 5; /* *< Estimated one-way distance in Centi-Meters */ + repeated wifi_ftm_report_entry ftm_report_data = 6; /* *< Note var len Pointer to FTM Report with multiple entries, should be freed after use */ + uint32 ftm_report_num_entries = 7; /* *< Number of entries in the FTM Report data */ +} + +message wifi_event_action_tx_status { + int32 ifx = 1; /**< WiFi interface to send request to */ + uint32 context = 2; /**< Context to identify the request */ + bytes da = 3; /**< 6bytes Destination MAC address */ + uint32 status = 4; /**< Status of the operation */ +} + +message wifi_event_roc_done { + uint32 context = 1; /**< Context to identify the request */ +} + +message wifi_event_ap_wps_rg_pin { + bytes pin_code = 1; /**< 8bytes PIN code of station in enrollee mode */ +} + +message wifi_event_ap_wps_rg_fail_reason { + int32 reason = 1; /**< WPS failure reason wps_fail_reason_t */ + bytes peer_macaddr = 2; /**< 6bytes Enrollee mac address */ +} + +message wifi_event_ap_wps_rg_success { + bytes peer_macaddr = 1; /**< 6bytes Enrollee mac address */ +} + +message wifi_protocols { + uint32 ghz_2g = 1; /**< Represents 2.4 GHz protocol, support 802.11b or 802.11g or 802.11n or 802.11ax or LR mode */ + uint32 ghz_5g = 2; /**< Represents 5 GHz protocol, support 802.11a or 802.11n or 802.11ac or 802.11ax */ +} + +message wifi_bandwidths { + uint32 ghz_2g = 1; /* Represents 2.4 GHz bandwidth */ + uint32 ghz_5g = 2; /* Represents 5 GHz bandwidth */ +} + +/* internal supporting structures for Rpc */ +//message ScanResult { +// bytes bssid = 1; +// bytes ssid = 2; +// uint32 chnl = 3; +// int32 rssi = 4; +// int32 sec_prot = 5; +//} + +message ConnectedSTAList { + bytes mac = 1; + int32 rssi = 2; +} + + +/* Control path structures */ +/** Req/Resp structure **/ +message Rpc_Req_GetMacAddress { + int32 mode = 1; +} + +message Rpc_Resp_GetMacAddress { + bytes mac = 1; + int32 resp = 2; +} + +message Rpc_Req_GetMode { +} + +message Rpc_Resp_GetMode { + int32 mode = 1; + int32 resp = 2; +} + +message Rpc_Req_SetMode { + int32 mode = 1; +} + +message Rpc_Resp_SetMode { + int32 resp = 1; +} + +message Rpc_Req_GetPs { +} + +message Rpc_Resp_GetPs { + int32 resp = 1; + int32 type = 2; +} + +message Rpc_Req_SetPs { + int32 type = 1; +} + +message Rpc_Resp_SetPs { + int32 resp = 1; +} + +message Rpc_Req_SetMacAddress { + bytes mac = 1; + int32 mode = 2; +} + +message Rpc_Resp_SetMacAddress { + int32 resp = 1; +} + + +//message Rpc_Req_GetAPConfig { +//} +// +///* To be deprecated */ +//message Rpc_Resp_GetAPConfig { +// bytes ssid = 1; +// bytes bssid = 2; +// int32 rssi = 3; +// int32 chnl = 4; +// int32 sec_prot = 5; +// int32 resp = 6; +//} + +/* To be deprecated */ +//message Rpc_Req_ConnectAP { +// string ssid = 1; +// string pwd = 2; +// string bssid = 3; +// bool is_wpa3_supported = 4; +// int32 listen_interval = 5; +//} +// +//message Rpc_Resp_ConnectAP { +// int32 resp = 1; +// bytes mac = 2; +//} + +//message Rpc_Req_GetSoftAPConfig { +//} +// +//message Rpc_Resp_GetSoftAPConfig { +// bytes ssid = 1; +// bytes pwd = 2; +// int32 chnl = 3; +// int32 sec_prot = 4; +// int32 max_conn = 5; +// bool ssid_hidden = 6; +// int32 bw = 7; +// int32 resp = 8; +//} + +//message Rpc_Req_StartSoftAP { +// string ssid = 1; +// string pwd = 2; +// int32 chnl = 3; +// int32 sec_prot = 4; +// int32 max_conn = 5; +// bool ssid_hidden = 6; +// int32 bw = 7; +//} +// +//message Rpc_Resp_StartSoftAP { +// int32 resp = 1; +// bytes mac = 2; +//} + +//message Rpc_Req_ScanResult { +//} +// +//message Rpc_Resp_ScanResult { +// uint32 count = 1; +// repeated ScanResult entries = 2; +// int32 resp = 3; +//} + +//message Rpc_Req_SoftAPConnectedSTA { +//} +// +//message Rpc_Resp_SoftAPConnectedSTA { +// uint32 num = 1; +// repeated ConnectedSTAList stations = 2; +// int32 resp = 3; +//} + +message Rpc_Req_OTABegin { +} + +message Rpc_Resp_OTABegin { + int32 resp = 1; +} + +message Rpc_Req_OTAWrite { + bytes ota_data = 1; +} + +message Rpc_Resp_OTAWrite { + int32 resp = 1; +} + +message Rpc_Req_OTAEnd { +} + +message Rpc_Resp_OTAEnd { + int32 resp = 1; +} + +//message Rpc_Req_VendorIEData { +// int32 element_id = 1; +// int32 length = 2; +// bytes vendor_oui = 3; +// int32 vendor_oui_type = 4; +// bytes payload = 5; +//} +// +//message Rpc_Req_SetSoftAPVendorSpecificIE { +// bool enable = 1; +// int32 type = 2; +// int32 idx = 3; +// Rpc_Req_VendorIEData vendor_ie_data = 4; +//} +// +//message Rpc_Resp_SetSoftAPVendorSpecificIE { +// int32 resp = 1; +//} + +message Rpc_Req_WifiSetMaxTxPower { + int32 power = 1; +} + +message Rpc_Resp_WifiSetMaxTxPower { + int32 resp = 1; +} + +message Rpc_Req_WifiGetMaxTxPower { +} + +message Rpc_Resp_WifiGetMaxTxPower { + int32 power = 1; + int32 resp = 2; +} + +message Rpc_Req_ConfigHeartbeat { + bool enable = 1; + int32 duration = 2; +} + +message Rpc_Resp_ConfigHeartbeat { + int32 resp = 1; +} + +message Rpc_Req_WifiInit { + wifi_init_config cfg = 1; +} + +message Rpc_Resp_WifiInit { + int32 resp = 1; +} + +message Rpc_Req_WifiDeinit { +} + +message Rpc_Resp_WifiDeinit { + int32 resp = 1; +} + +message Rpc_Req_WifiSetConfig { + int32 iface = 1; + wifi_config cfg = 2; +} + +message Rpc_Resp_WifiSetConfig { + int32 resp = 1; +} + +message Rpc_Req_WifiGetConfig { + int32 iface = 1; +} + +message Rpc_Resp_WifiGetConfig { + int32 resp = 1; + int32 iface = 2; + wifi_config cfg = 3; +} + +message Rpc_Req_WifiConnect { +} + +message Rpc_Resp_WifiConnect { + int32 resp = 1; +} + +message Rpc_Req_WifiDisconnect { +} + +message Rpc_Resp_WifiDisconnect { + int32 resp = 1; +} + +message Rpc_Req_WifiStart { +} + +message Rpc_Resp_WifiStart { + int32 resp = 1; +} + +message Rpc_Req_WifiStop { +} + +message Rpc_Resp_WifiStop { + int32 resp = 1; +} + +message Rpc_Req_WifiScanStart { + wifi_scan_config config = 1; + bool block = 2; + int32 config_set = 3; +} + +message Rpc_Resp_WifiScanStart { + int32 resp = 1; +} + +message Rpc_Req_WifiScanStop { +} + +message Rpc_Resp_WifiScanStop { + int32 resp = 1; +} + +message Rpc_Req_WifiScanGetApNum { +} + +message Rpc_Resp_WifiScanGetApNum { + int32 resp = 1; + int32 number = 2; +} + +message Rpc_Req_WifiScanGetApRecords { + int32 number = 1; +} + +message Rpc_Resp_WifiScanGetApRecords { + int32 resp = 1; + int32 number = 2; + repeated wifi_ap_record ap_records = 3; +} + +message Rpc_Req_WifiScanGetApRecord { +} + +message Rpc_Resp_WifiScanGetApRecord { + int32 resp = 1; + wifi_ap_record ap_record = 2; +} + +message Rpc_Req_WifiClearApList { +} + +message Rpc_Resp_WifiClearApList { + int32 resp = 1; +} + +message Rpc_Req_WifiRestore { +} + +message Rpc_Resp_WifiRestore { + int32 resp = 1; +} + +message Rpc_Req_WifiClearFastConnect{ +} + +message Rpc_Resp_WifiClearFastConnect { + int32 resp = 1; +} + +message Rpc_Req_WifiDeauthSta { + int32 aid = 1; +} + +message Rpc_Resp_WifiDeauthSta { + int32 resp = 1; + int32 aid = 2; +} + +message Rpc_Req_WifiStaGetApInfo { +} + +message Rpc_Resp_WifiStaGetApInfo { + int32 resp = 1; + wifi_ap_record ap_record = 2; +} + +message Rpc_Req_WifiSetProtocol { + int32 ifx = 1; + int32 protocol_bitmap = 2; +} + +message Rpc_Resp_WifiSetProtocol { + int32 resp = 1; +} + +message Rpc_Req_WifiGetProtocol { + int32 ifx = 1; +} + +message Rpc_Resp_WifiGetProtocol { + int32 resp = 1; + int32 protocol_bitmap = 2; +} + +message Rpc_Req_WifiSetBandwidth { + int32 ifx = 1; + int32 bw = 2; +} + +message Rpc_Resp_WifiSetBandwidth { + int32 resp = 1; +} + +message Rpc_Req_WifiGetBandwidth { + int32 ifx = 1; +} + +message Rpc_Resp_WifiGetBandwidth { + int32 resp = 1; + int32 bw = 2; +} + +message Rpc_Req_WifiSetChannel { + int32 primary = 1; + int32 second = 2; +} + +message Rpc_Resp_WifiSetChannel { + int32 resp = 1; +} + +message Rpc_Req_WifiGetChannel { +} + +message Rpc_Resp_WifiGetChannel { + int32 resp = 1; + int32 primary = 2; + int32 second = 3; +} + +message Rpc_Req_WifiSetStorage { + int32 storage = 1; +} + +message Rpc_Resp_WifiSetStorage { + int32 resp = 1; +} + +message Rpc_Req_WifiSetCountryCode { + bytes country = 1; + bool ieee80211d_enabled = 2; +} + +message Rpc_Resp_WifiSetCountryCode { + int32 resp = 1; +} + +message Rpc_Req_WifiGetCountryCode { +} + +message Rpc_Resp_WifiGetCountryCode { + int32 resp = 1; + bytes country = 2; +} + +message Rpc_Req_WifiSetCountry { + wifi_country country = 1; +} + +message Rpc_Resp_WifiSetCountry { + int32 resp = 1; +} + +message Rpc_Req_WifiGetCountry { +} + +message Rpc_Resp_WifiGetCountry { + int32 resp = 1; + wifi_country country = 2; +} + +message Rpc_Req_WifiApGetStaList { +} + +message Rpc_Resp_WifiApGetStaList { + int32 resp = 1; + wifi_sta_list sta_list = 2; +} + +message Rpc_Req_WifiApGetStaAid { + bytes mac = 1; +} + +message Rpc_Req_WifiStaGetNegotiatedPhymode { +} + +message Rpc_Resp_WifiStaGetNegotiatedPhymode { + int32 resp = 1; + uint32 phymode = 2; +} + +message Rpc_Resp_WifiApGetStaAid { + int32 resp = 1; + uint32 aid = 2; +} + +message Rpc_Req_WifiStaGetRssi { +} + +message Rpc_Resp_WifiStaGetRssi { + int32 resp = 1; + int32 rssi = 2; +} + +message Rpc_Req_WifiStaGetAid { +} + +message Rpc_Resp_WifiStaGetAid { + int32 resp = 1; + uint32 aid = 2; +} + +message Rpc_Req_WifiSetProtocols { + int32 ifx = 1; + wifi_protocols protocols = 2; +} + +message Rpc_Resp_WifiSetProtocols { + int32 resp = 1; + uint32 ifx = 2; +} + +message Rpc_Req_WifiGetProtocols { + int32 ifx = 1; +} + +message Rpc_Resp_WifiGetProtocols { + int32 resp = 1; + int32 ifx = 2; + wifi_protocols protocols = 3; +} + +message Rpc_Req_WifiSetBandwidths { + int32 ifx = 1; + wifi_bandwidths bandwidths = 2; +} + +message Rpc_Resp_WifiSetBandwidths { + int32 resp = 1; + int32 ifx = 2; +} + +message Rpc_Req_WifiGetBandwidths { + int32 ifx = 1; +} + +message Rpc_Resp_WifiGetBandwidths { + int32 resp = 1; + int32 ifx = 2; + wifi_bandwidths bandwidths = 3; +} + +message Rpc_Req_WifiSetBand { + uint32 band = 1; +} + +message Rpc_Resp_WifiSetBand { + int32 resp = 1; +} + +message Rpc_Req_WifiGetBand { +} + +message Rpc_Resp_WifiGetBand { + int32 resp = 1; + uint32 band = 2; +} + +message Rpc_Req_WifiSetBandMode { + uint32 bandmode = 1; +} + +message Rpc_Resp_WifiSetBandMode { + int32 resp = 1; +} + +message Rpc_Req_WifiGetBandMode { +} + +message Rpc_Resp_WifiGetBandMode { + int32 resp = 1; + uint32 bandmode = 2; +} + +message Rpc_Req_GetCoprocessorFwVersion { +} + +message Rpc_Resp_GetCoprocessorFwVersion { + int32 resp = 1; + uint32 major1 = 2; + uint32 minor1 = 3; + uint32 patch1 = 4; +} + +/** Event structure **/ + +message Rpc_Event_WifiEventNoArgs { + int32 resp = 1; + int32 event_id = 2; +} + +message Rpc_Event_ESPInit { + bytes init_data = 1; +} + +message Rpc_Event_Heartbeat { + int32 hb_num = 1; +} + +message Rpc_Event_AP_StaDisconnected { + int32 resp = 1; + bytes mac = 2; + uint32 aid = 3; + bool is_mesh_child = 4; + uint32 reason = 5; +} + +message Rpc_Event_AP_StaConnected { + int32 resp = 1; + bytes mac = 2; + uint32 aid = 3; + bool is_mesh_child = 4; +} + +message Rpc_Event_StaScanDone { + int32 resp = 1; + wifi_event_sta_scan_done scan_done = 2; +} + +message Rpc_Event_StaConnected { + int32 resp = 1; + wifi_event_sta_connected sta_connected = 2; +} + +message Rpc_Event_StaDisconnected { + int32 resp = 1; + wifi_event_sta_disconnected sta_disconnected = 2; +} + +message Rpc { + /* msg_type could be req, resp or Event */ + RpcType msg_type = 1; + + /* msg id */ + RpcId msg_id = 2; + + /* UID of message */ + uint32 uid = 3; + + /* union of all msg ids */ + oneof payload { + /** Requests **/ + Rpc_Req_GetMacAddress req_get_mac_address = 257; + Rpc_Req_SetMacAddress req_set_mac_address = 258; + Rpc_Req_GetMode req_get_wifi_mode = 259; + Rpc_Req_SetMode req_set_wifi_mode = 260; + + //Rpc_Req_ScanResult req_scan_ap_list = 261; + //Rpc_Req_GetAPConfig req_get_ap_config = 262; + //Rpc_Req_ConnectAP req_connect_ap = 263; + //Rpc_Req_GetStatus req_disconnect_ap = 264; + + //Rpc_Req_GetSoftAPConfig req_get_softap_config = 265; + //Rpc_Req_SetSoftAPVendorSpecificIE req_set_softap_vendor_specific_ie = 266; + //Rpc_Req_StartSoftAP req_start_softap = 267; + //Rpc_Req_SoftAPConnectedSTA req_softap_connected_stas_list = 268; + //Rpc_Req_GetStatus req_stop_softap = 269; + + Rpc_Req_SetPs req_wifi_set_ps = 270; + Rpc_Req_GetPs req_wifi_get_ps = 271; + + Rpc_Req_OTABegin req_ota_begin = 272; + Rpc_Req_OTAWrite req_ota_write = 273; + Rpc_Req_OTAEnd req_ota_end = 274; + + Rpc_Req_WifiSetMaxTxPower req_set_wifi_max_tx_power = 275; + Rpc_Req_WifiGetMaxTxPower req_get_wifi_max_tx_power = 276; + Rpc_Req_ConfigHeartbeat req_config_heartbeat = 277; + + Rpc_Req_WifiInit req_wifi_init = 278; + Rpc_Req_WifiDeinit req_wifi_deinit = 279; + Rpc_Req_WifiStart req_wifi_start = 280; + Rpc_Req_WifiStop req_wifi_stop = 281; + Rpc_Req_WifiConnect req_wifi_connect = 282; + Rpc_Req_WifiDisconnect req_wifi_disconnect = 283; + Rpc_Req_WifiSetConfig req_wifi_set_config = 284; + Rpc_Req_WifiGetConfig req_wifi_get_config = 285; + + Rpc_Req_WifiScanStart req_wifi_scan_start = 286; + Rpc_Req_WifiScanStop req_wifi_scan_stop = 287; + Rpc_Req_WifiScanGetApNum req_wifi_scan_get_ap_num = 288; + Rpc_Req_WifiScanGetApRecords req_wifi_scan_get_ap_records = 289; + Rpc_Req_WifiClearApList req_wifi_clear_ap_list = 290; + + Rpc_Req_WifiRestore req_wifi_restore = 291; + Rpc_Req_WifiClearFastConnect req_wifi_clear_fast_connect = 292; + Rpc_Req_WifiDeauthSta req_wifi_deauth_sta = 293; + Rpc_Req_WifiStaGetApInfo req_wifi_sta_get_ap_info = 294; + + Rpc_Req_WifiSetProtocol req_wifi_set_protocol = 297; + Rpc_Req_WifiGetProtocol req_wifi_get_protocol = 298; + Rpc_Req_WifiSetBandwidth req_wifi_set_bandwidth = 299; + Rpc_Req_WifiGetBandwidth req_wifi_get_bandwidth = 300; + Rpc_Req_WifiSetChannel req_wifi_set_channel = 301; + Rpc_Req_WifiGetChannel req_wifi_get_channel = 302; + Rpc_Req_WifiSetCountry req_wifi_set_country = 303; + Rpc_Req_WifiGetCountry req_wifi_get_country = 304; + + Rpc_Req_WifiApGetStaList req_wifi_ap_get_sta_list = 311; + Rpc_Req_WifiApGetStaAid req_wifi_ap_get_sta_aid = 312; + Rpc_Req_WifiSetStorage req_wifi_set_storage = 313; + + Rpc_Req_WifiSetCountryCode req_wifi_set_country_code = 334; + Rpc_Req_WifiGetCountryCode req_wifi_get_country_code = 335; + Rpc_Req_WifiStaGetAid req_wifi_sta_get_aid = 338; + Rpc_Req_WifiStaGetNegotiatedPhymode req_wifi_sta_get_negotiated_phymode = 339; + + Rpc_Req_WifiStaGetRssi req_wifi_sta_get_rssi = 341; + + Rpc_Req_WifiSetProtocols req_wifi_set_protocols = 342; + Rpc_Req_WifiGetProtocols req_wifi_get_protocols = 343; + Rpc_Req_WifiSetBandwidths req_wifi_set_bandwidths = 344; + Rpc_Req_WifiGetBandwidths req_wifi_get_bandwidths = 345; + + Rpc_Req_WifiSetBand req_wifi_set_band = 346; + Rpc_Req_WifiGetBand req_wifi_get_band = 347; + Rpc_Req_WifiSetBandMode req_wifi_set_bandmode = 348; + Rpc_Req_WifiGetBandMode req_wifi_get_bandmode = 349; + + Rpc_Req_GetCoprocessorFwVersion req_get_coprocessor_fwversion = 350; + + Rpc_Req_WifiScanGetApRecord req_wifi_scan_get_ap_record = 351; + + /** Responses **/ + Rpc_Resp_GetMacAddress resp_get_mac_address = 513; + Rpc_Resp_SetMacAddress resp_set_mac_address = 514; + Rpc_Resp_GetMode resp_get_wifi_mode = 515; + Rpc_Resp_SetMode resp_set_wifi_mode = 516; + + //Rpc_Resp_ScanResult resp_scan_ap_list = 517; + //Rpc_Resp_GetAPConfig resp_get_ap_config = 518; + //Rpc_Resp_ConnectAP resp_connect_ap = 519; + //Rpc_Resp_GetStatus resp_disconnect_ap = 520; + + //Rpc_Resp_GetSoftAPConfig resp_get_softap_config = 521; + //Rpc_Resp_SetSoftAPVendorSpecificIE resp_set_softap_vendor_specific_ie = 522; + //Rpc_Resp_StartSoftAP resp_start_softap = 523; + //Rpc_Resp_SoftAPConnectedSTA resp_softap_connected_stas_list = 524; + //Rpc_Resp_GetStatus resp_stop_softap = 525; + + Rpc_Resp_SetPs resp_wifi_set_ps = 526; + Rpc_Resp_GetPs resp_wifi_get_ps = 527; + + Rpc_Resp_OTABegin resp_ota_begin = 528; + Rpc_Resp_OTAWrite resp_ota_write = 529; + Rpc_Resp_OTAEnd resp_ota_end = 530; + Rpc_Resp_WifiSetMaxTxPower resp_set_wifi_max_tx_power = 531; + Rpc_Resp_WifiGetMaxTxPower resp_get_wifi_max_tx_power = 532; + Rpc_Resp_ConfigHeartbeat resp_config_heartbeat = 533; + + Rpc_Resp_WifiInit resp_wifi_init = 534; + Rpc_Resp_WifiDeinit resp_wifi_deinit = 535; + Rpc_Resp_WifiStart resp_wifi_start = 536; + Rpc_Resp_WifiStop resp_wifi_stop = 537; + Rpc_Resp_WifiConnect resp_wifi_connect = 538; + Rpc_Resp_WifiDisconnect resp_wifi_disconnect = 539; + Rpc_Resp_WifiSetConfig resp_wifi_set_config = 540; + Rpc_Resp_WifiGetConfig resp_wifi_get_config = 541; + + Rpc_Resp_WifiScanStart resp_wifi_scan_start = 542; + Rpc_Resp_WifiScanStop resp_wifi_scan_stop = 543; + Rpc_Resp_WifiScanGetApNum resp_wifi_scan_get_ap_num = 544; + Rpc_Resp_WifiScanGetApRecords resp_wifi_scan_get_ap_records = 545; + Rpc_Resp_WifiClearApList resp_wifi_clear_ap_list = 546; + + Rpc_Resp_WifiRestore resp_wifi_restore = 547; + Rpc_Resp_WifiClearFastConnect resp_wifi_clear_fast_connect = 548; + Rpc_Resp_WifiDeauthSta resp_wifi_deauth_sta = 549; + Rpc_Resp_WifiStaGetApInfo resp_wifi_sta_get_ap_info = 550; + + Rpc_Resp_WifiSetProtocol resp_wifi_set_protocol = 553; + Rpc_Resp_WifiGetProtocol resp_wifi_get_protocol = 554; + Rpc_Resp_WifiSetBandwidth resp_wifi_set_bandwidth = 555; + Rpc_Resp_WifiGetBandwidth resp_wifi_get_bandwidth = 556; + Rpc_Resp_WifiSetChannel resp_wifi_set_channel = 557; + Rpc_Resp_WifiGetChannel resp_wifi_get_channel = 558; + Rpc_Resp_WifiSetCountry resp_wifi_set_country = 559; + Rpc_Resp_WifiGetCountry resp_wifi_get_country = 560; + + Rpc_Resp_WifiApGetStaList resp_wifi_ap_get_sta_list = 567; + Rpc_Resp_WifiApGetStaAid resp_wifi_ap_get_sta_aid = 568; + Rpc_Resp_WifiSetStorage resp_wifi_set_storage = 569; + + Rpc_Resp_WifiSetCountryCode resp_wifi_set_country_code = 590; + Rpc_Resp_WifiGetCountryCode resp_wifi_get_country_code = 591; + Rpc_Resp_WifiStaGetAid resp_wifi_sta_get_aid = 594; + Rpc_Resp_WifiStaGetNegotiatedPhymode resp_wifi_sta_get_negotiated_phymode = 595; + + Rpc_Resp_WifiStaGetRssi resp_wifi_sta_get_rssi = 597; + + Rpc_Resp_WifiSetProtocols resp_wifi_set_protocols = 598; + Rpc_Resp_WifiGetProtocols resp_wifi_get_protocols = 599; + Rpc_Resp_WifiSetBandwidths resp_wifi_set_bandwidths = 600; + Rpc_Resp_WifiGetBandwidths resp_wifi_get_bandwidths = 601; + + Rpc_Resp_WifiSetBand resp_wifi_set_band = 602; + Rpc_Resp_WifiGetBand resp_wifi_get_band = 603; + Rpc_Resp_WifiSetBandMode resp_wifi_set_bandmode = 604; + Rpc_Resp_WifiGetBandMode resp_wifi_get_bandmode = 605; + + Rpc_Resp_GetCoprocessorFwVersion resp_get_coprocessor_fwversion = 606; + + Rpc_Resp_WifiScanGetApRecord resp_wifi_scan_get_ap_record = 607; + + /** Notifications **/ + Rpc_Event_ESPInit event_esp_init = 769; + Rpc_Event_Heartbeat event_heartbeat = 770; + Rpc_Event_AP_StaConnected event_ap_sta_connected = 771; + Rpc_Event_AP_StaDisconnected event_ap_sta_disconnected = 772; + Rpc_Event_WifiEventNoArgs event_wifi_event_no_args = 773; + Rpc_Event_StaScanDone event_sta_scan_done = 774; + Rpc_Event_StaConnected event_sta_connected = 775; + Rpc_Event_StaDisconnected event_sta_disconnected = 776; + } +} + + +//message req_w_set_config { +// int32 iface = 1; +// wifi_config cfg = 2; +//} +// +//message rsp_w_set_config { +// int32 resp = 1; +//} +// +//message req_w_get_config { +// int32 iface = 1; +//} +// +//message rsp_w_get_config { +// int32 resp = 1; +// wifi_config cfg = 2; +//} +// +//message req_w_start { +//} +// +//message rsp_w_start { +// int32 resp = 1; +//} +// +//message evt_w_sta_connected { +// int32 resp = 1; +//} +// +//message evt_w_sta_disconnected { +// int32 resp = 1; +//} +// +//message evt_w_sta_start { +// int32 resp = 1; +//} +// +//message evt_w_sta_stop { +// int32 resp = 1; +//} +// +//message evt_w_ready { +// int32 resp = 1; +//} + +//message { +// int32 resp = 1; +//} + + + + + + + +//message Rpc_Resp_GetMode { +// int32 mode = 1; +// int32 resp = 2; +//} +// +//message Rpc_Req_SetMode { +//} +// +//message Rpc_Resp_SetMode { +// int32 resp = 1; +//} diff --git a/resources/espressif__esp_hosted/common/protobuf-c/.commit_docs.sh b/resources/espressif__esp_hosted/common/protobuf-c/.commit_docs.sh new file mode 100644 index 0000000..048a81b --- /dev/null +++ b/resources/espressif__esp_hosted/common/protobuf-c/.commit_docs.sh @@ -0,0 +1,75 @@ +#!/bin/bash -e + +# from git-sh-setup.sh +require_clean_work_tree () { + git rev-parse --verify HEAD >/dev/null || exit 1 + git update-index -q --ignore-submodules --refresh + err=0 + + if ! git diff-files --quiet --ignore-submodules + then + echo >&2 "Cannot $0: You have unstaged changes." + err=1 + fi + + if ! git diff-index --cached --quiet --ignore-submodules HEAD -- + then + if [ $err = 0 ] + then + echo >&2 "Cannot $0: Your index contains uncommitted changes." + else + echo >&2 "Additionally, your index contains uncommitted changes." + fi + err=1 + fi + + if [ $err = 1 ] + then + test -n "$2" && echo >&2 "$2" + exit 1 + fi +} + +require_clean_work_tree + +if ! which doxygen >/dev/null; then + echo "Error: doxygen is required" + exit 1 +fi + +DOXYGEN_VERSION="$(doxygen --version)" + +DOC_BRANCH="gh-pages" +ORIG_BRANCH="$(git rev-parse --abbrev-ref HEAD)" +ORIG_COMMIT="$(git describe --match=NeVeRmAtCh --always --abbrev=40 --dirty)" + +TOP="$(pwd)" +export GIT_DIR="$TOP/.git" + +TMPDIR="$(mktemp --tmpdir=$TOP -d)" +HTMLDIR="$TMPDIR/_build/html" +INDEX_FILE="$GIT_DIR/index.${DOC_BRANCH}" + +rm -f "$INDEX_FILE" + +trap "{ cd $TOP; git checkout --force ${ORIG_BRANCH}; rm -f $INDEX_FILE; rm -rf $TMPDIR; }" EXIT + +cd "$TMPDIR" +git reset --hard HEAD + +./autogen.sh +mkdir _build +cd _build +../configure +make html + +if ! git checkout "${DOC_BRANCH}"; then + git checkout --orphan "${DOC_BRANCH}" +fi + +touch "$HTMLDIR/.nojekyll" + +GIT_INDEX_FILE="$INDEX_FILE" GIT_WORK_TREE="$HTMLDIR" \ + git add --no-ignore-removal . +GIT_INDEX_FILE="$INDEX_FILE" GIT_WORK_TREE="$HTMLDIR" \ + git commit -m "Rebuild html documentation from commit ${ORIG_COMMIT} using Doxygen ${DOXYGEN_VERSION}" diff --git a/resources/espressif__esp_hosted/common/protobuf-c/.gitignore b/resources/espressif__esp_hosted/common/protobuf-c/.gitignore new file mode 100644 index 0000000..9733625 --- /dev/null +++ b/resources/espressif__esp_hosted/common/protobuf-c/.gitignore @@ -0,0 +1,43 @@ +*~ +.*swp +*.la +*.gcda +*.gcno +*.lo +*.log +*.o +*.tar.gz +*.trs +.deps/ +.dirstamp +.libs/ +/Doxyfile +/Makefile +/Makefile.in +/aclocal.m4 +/autom4te.cache +/build-aux +/config.* +/configure +/doxygen-doc +/html +/libtool +/protobuf-c-*-coverage.info +/protobuf-c-*-coverage/ +/stamp-h1 +/stamp-html +/test-suite.log +TAGS +protobuf-c/libprotobuf-c.pc +protoc-c/protoc-c +protoc-c/protoc-gen-c +t/generated-code/test-generated-code +t/generated-code2/cxx-generate-packed-data +t/generated-code2/test-full-cxx-output.inc +t/generated-code2/test-generated-code2 +t/generated-code3/test-generated-code3 +t/version/version +*.pb-c.c +*.pb-c.h +*.pb.cc +*.pb.h diff --git a/resources/espressif__esp_hosted/common/protobuf-c/CONTRIBUTING.md b/resources/espressif__esp_hosted/common/protobuf-c/CONTRIBUTING.md new file mode 100644 index 0000000..ceaba8f --- /dev/null +++ b/resources/espressif__esp_hosted/common/protobuf-c/CONTRIBUTING.md @@ -0,0 +1,5 @@ +## Contributing + +The most recently released `protobuf-c` version is kept on the `master` branch, while the `next` branch is used for commits targeted at the next release. Please base patches and pull requests against the `next` branch. __Do not open pull requests against master!__ + +Copyright to all contributions are retained by the original author, but must be licensed under the terms of the [BSD-2-Clause](http://opensource.org/licenses/BSD-2-Clause) license. diff --git a/resources/espressif__esp_hosted/common/protobuf-c/ChangeLog b/resources/espressif__esp_hosted/common/protobuf-c/ChangeLog new file mode 100644 index 0000000..91164dd --- /dev/null +++ b/resources/espressif__esp_hosted/common/protobuf-c/ChangeLog @@ -0,0 +1,564 @@ +protobuf-c (1.4.1) + + [ Robert Edmonds ] + * Release 1.4.1 + + [ Todd C. Miller ] + * Only shift unsigned values to avoid implementation-specific behavior + (#506, #508). + * Fix regression with zero-length messages introduced in protobuf-c PR 500. + * Fix a clang analyzer 14 warning about a possible NULL deref (#512, #514). + + [ steed717 ] + * Fix unsigned integer overflow (#499, #513). + +protobuf-c (1.4.0) + + [ Robert Edmonds ] + * Release 1.4.0. + + [ Ilya Lipnitsky ] + * c_message.cc: Resolve name conflict between certain enums and oneofs + (#427). + * protobuf-c.h: Fix Windows DLL export issue with the + protobuf_c_empty_string symbol (#428). + * Standardize pkg-config for use by autotools and cmake, fix cmake tests + (#425). + * protobuf-c.c: Cast %lu args to unsigned long int (#429). + * protoc-c: Remove leading underscores from structs (#430). + * protoc-c: Fix shared lib build on windows, migrate from Travis CI to + GitHub Actions (#459). + * protobuf-c: Don't use ProtobufCWireType internally (#463). + * protoc-c: Add custom options support (#466). + * protobuf-c.c: Fix packed repeated bool parsing (#467). + + [ Markus Engel ] + * Pack nested messages inline (#431). + + [ Daniel Axtens ] + * Travis CI: Test on other platforms (#438). + + [ Adam Cozzette ] + * Update the generator to fully qualify std::string (#443). + + [ Piotr Pietraszkiewicz ] + * Install MSVC debug symbols alongside the protobuf-c.lib file (#456). + + [ ihsinme ] + * Fix invalid unsigned arithmetic (#455). + + [ Wolfram Rösler ] + * Avoid "unused function parameter" compiler warning (#453). + +protobuf-c (1.3.3) + + [ Robert Edmonds ] + * Release 1.3.3. + + * Fix build failure on protobuf 2.x (#398). + + [ msshapira ] + * CMake: Fix support for MSVC static build (#350). + + [ Adam Cozzette ] + * Fix some test assertions in test-generated-code2.c (#392). + + [ Ilya Lipnitskiy ] + * protobuf-c.c: Make zigzag encoding more compact (#400). + + [ Markus Engel ] + * CMake: Fix endianness check. + +protobuf-c (1.3.2) + + [ Robert Edmonds ] + * Release 1.3.2. + + * Use protobuf 3.7.1 in the Travis-CI environment (#368). + + * Fix test suite build failure on newer versions of protobuf (#369). + + [ Ilya Lipnitskiy ] + * Fix proto3 repeated scalar field default packing behavior (#330, #377). + + [ Adam Cozzette ] + * Fix out-of-bounds read in scan_length_prefixed_data() (#375, #376). + + [ Jurriaan Bremer ] + * Fix -Wdeclaration-after-statement warning in parse_oneof_member() (#360). + + [ Hayri Ugur Koltuk ] + * Fix SIGSEGV in protobuf_c_message_check() on messages with unpopulated + oneof members (#358). + + [ Italo Guerrieri ] + * Do not allow tag values of 0 in protobuf messages, as these are not + allowed by proto2 or proto3 (#299). + +protobuf-c (1.3.1) + + [ Robert Edmonds ] + * Release 1.3.1. + + * Restore protobuf-2.x compatibility (#284, #285). + + * Use xenial and protobuf 3.6.1 in the Travis-CI environment (#332). + + * Convert uses of protobuf's scoped_ptr.h to C++11 std::unique_ptr, needed + to compile against protobuf 3.6.1 (#320, #333). + + * Use AX_CXX_COMPILE_STDCXX macro to enable C++11 support in old compilers + (#312, #317, #327, #334). + + [ Fredrik Gustafsson ] + * Add std:: to some types (#294, #305, #309). + + [ Sam Collinson ] + * Check the return value of int_range_lookup before using as an array index; + it can return -1 (#315). + + [ Matthias Dittrich ] + * Fix compilation on mingw by using explicit protoc --plugin=NAME=PATH syntax + in Makefile.am (#289, #290). + +protobuf-c (1.3.0) + + [ Robert Edmonds ] + * Release 1.3.0. + + * Add test case for the issue in #220 (#254). + + * Fix issue #251, "Bad enums with multiple oneofs" (#256). + + * Add warning flags to my_CFLAGS (#257). + + * Fix namespace errors when compiled with latest protobuf (#280). + + * Bump minimum required header version for proto3 syntax (#282). + + [ Paolo Borelli ] + * Turn the compiler into a protoc plugin (#206). This allows the protobuf-c + compiler to be invoked as "protoc --c_out=...". For backwards + compatibility, we still ship a protoc-c command, but it's a symlink to the + protoc-gen-c binary. + + * proto3 support (#228). + + * Remove leftover FIXME comment (#258). + + * Fix proto3 "is zeroish" evaluation (#264). + + * Small cleanup in oneof handling (#265). + + * Rework is_zeroish one more time (#267). + + * proto3: make strings default to "" instead of NULL (#274). + + [ Tomek Wasilczyk ] + * Fix -Wsign-compare warnings (#213). + + * Fix ISO C90 -Wdeclaration-after-statement warnings (#214). + + * Fix bigendian -Wunused-label warning (#215). + + [ Ilya Lipnitsky ] + * protoc-c/c_message.cc: Force int size on oneof enums (#221). Fixes wrong + enum generation and handling for onceof cases (#220). + + [ Adnan ] + * Fix cmake build if built as part of an external project (#231). + + [ Gregory Detal ] + * Remove .pb.{cc,h} in distdir instead of top_distdir in order to prevent + removing files from other projects when protobuf-c is included as an + autotools subproject (#232). + + [ Ben Farnham ] + * Relax autoconf constraint from v2.64 to v2.63 so that it works on older + Linux distros (#233). + + [ Thomas Köckerbauer ] + * rm argument fix for Solaris (#234). + + * Add 'const' qualifier to 'init_value' variable in generated files (#236). + + [ Richard Kettlewell ] + * Document and extend the effect of passing NULL to ..._free_unpacked + functions (#255). + + [ Alex Milich ] + * CMake: Workaround for static builds that use MSVC (#243). + + [ Josh Junon ] + * CMake: Allow protobuf-c to be included via include_subdirectory (#245). + + [ Alexei Kasatkin ] + * CMake: Windows fixes (#266). + +protobuf-c (1.2.1) + + [ Robert Edmonds ] + * Release 1.2.1. + + [ Paolo Borelli ] + * protoc-c: Generate code that uses the universal zero initializer {0} when + initializing a oneof union (#187, #205). + +protobuf-c (1.2.0) + + [ Robert Edmonds ] + * Release 1.2.0. + + [ Ilya Lipnitsky ] + * Implement the "optimize_for = CODE_SIZE" option (#183). + + * Eliminate undefined behavior in zigzag functions (#198). + + * Pack negative enum values correctly (#199). + + [ Peter Leschev ] + * Fix protobuf_c_message_get_packed_size() on 16-bit systems (#196, #197). + + [ Diego Elio Pettenò ] + * Update link to Autotools Mythbuster to canonical site (#201). + + [ Zex Li ] + * Skip test suite when cross-compiling (#184). + +protobuf-c (1.1.1) + + [ Robert Edmonds ] + * Release 1.1.1. + + * Use protobuf 2.6.1 in the Travis-CI environment. + + [ Ilya Lipnitskiy ] + * Munge C block comment delimiters in protobuf comments, preventing syntax + errors in generated header files (Issue #180, #185). + + * Add static qualifier to ProtobufCEnumValue and ProtobufCEnumValueIndex + variables in generated output. + + [ Oleg Efimov ] + * Fix -Wpointer-sign compiler diagnostics in the test suite. + + * Check for NULL pointers in protobuf_c_message_free_unpacked() + (Issue #177). + + * Exclude protoc-c and downloaded protobuf sources from Coveralls report. + + [ Andrey Myznikov ] + * Fix incorrect 'short_name' field values in ProtobufCServiceDescriptor + variables in generated output. + +protobuf-c (1.1.0) + + [ Robert Edmonds ] + * Release 1.1.0. + + [ Ilya Lipnitskiy ] + * Fix a bug when merging optional byte fields. + + * Documentation updates. + + * Implement oneof support (Issue #174). Protobuf 2.6.0 or newer is now + required to build protobuf-c. + + * Print leading comments for enum, message, and field definitions into + generated header files (Issue #175). + +protobuf-c (1.0.2) + + [ Robert Edmonds ] + * Release 1.0.2. + + [ Ilya Lipnitskiy ] + * Fix a build failure with Protobuf 2.6.0 related to aliased enum constants + (Issue #163). + + * Protobuf 2.5.0 or newer is now required to build protobuf-c (Issue #166). + This is due to the fix for #163. + + [ Alexei Kasatkin ] + * Eliminate void pointer arithmetic (Issue #167). + + * Always define PROTOBUF_C__DEPRECATED, even on compilers that are not GCC + (Issue #167). + + * Work around the lack of the 'inline' keyword in Microsoft compilers + (Issue #167). + + * Add a CMakeLists.txt file as a fallback build system for Windows + (Issue #168). + + [ Natanael Copa ] + * Fix a build failure in the test suite that occurred with a parallel make + running on a system with a large number of CPUs (Issue #156, #169). + +protobuf-c (1.0.1) + + [ Robert Edmonds ] + * Explicitly set the .data field of ProtobufCBinaryData's to NULL when + unpacking a zero length byte string (Issue #157). + +protobuf-c (1.0.0) + + [ Andrei Nigmatulin ] + * Append "u", "ull", and "ll" integer literal suffixes for uint32, uint64, + and int64 default values in generated code, in order to avoid "integer + constant is so large that it is unsigned" compiler warnings. + (Issue #136.) + + * Revert the problematic hash-based required field detection. + (Related to Issue #60, #79, #137.) + + * Replace the 'packed' member of ProtobufCFieldDescriptor with a 'flags' + word. Define flags for packed and deprecated fields. (Issue #138.) + + [ Dave Benson ] + * Treat a "length-prefixed" wire-type message for a repeated field as + packed-repeated whenever it makes sense (for all types other than + messages, strings, and bytes). + + * Switch to New BSD license. + + * Add protobuf_c_message_check(). + + * Compile error in packing 64-bit versions on some platforms + (srobbins99: Issue #68 Comment 1). + + * Fix for memory error if the required-field check fails. See Issue #63 + for demo (w/ nice test case by dror.harari). + + * Add PROTOBUF_C_{MAJOR,MINOR} for compile-time checks and + protobuf_c_{major,minor} for checks about the running library + (Issue #53). + + * Use a small constant-size hash-table instead of alloca() for detecting + required fields, and it also prevents us from using too much stack, etc. + (Related to Issue #60, #79). + + * Add a macro to ensure enums are the size of ints (Issue #69). + + [ Ilya Lipnitskiy ] + * Travis-CI integration. + + * Add source .proto filename to generated files. + + * Add protobuf-c version to protoc-c --version output (Issue #52). + + * For embedded submessage fields, merge multiple instances of the same + field, per the protobuf documentation (Issue #91). + + * Don't print unpack errors by default. + + * Optionally allow running the test suite under valgrind with ./configure + --enable-valgrind-tests. (Based on valgrind-tests.m4 from gnulib.) + + [ Kevin Lyda ] + * Autoconf portability fixes. + + * Add doxygen detection and make targets to the build system. + + * Doxygen documentation for the libprotobuf-c public API (Issue #132). + + [ Nick Galbreath ] + * Prevent possible overflow on 64-bit systems (Issue #106). + + [ Robert Edmonds ] + * Remove CMake (Issue #87). + + * Modernize the build system. + - Don't generate any diagnostics when building the build system with + modern autotools (Issue #89). + + - Use the PKG_CHECK_MODULES macro to locate protobuf. + + - Use the AC_C_BIGENDIAN macro to detect endianness, rather than custom + code. + + - Use the automake silent-rules option so the build output is actually + readable. + + - Generate our own pkg-config .pc files. + + * Reorganize the source tree. This affects the public protobuf-c header + path, which is now . A compatibility symlink from + to has been installed so that existing + code will continue to compile. New code should at some point begin using + the new include path, i.e., "#include " rather + than "#include ". + + * The RPC code has been split out into a separate project, protobuf-c-rpc. + + * Fix a potential use of an unitialized value in protobuf_c_message_unpack() + and several memory leaks in protoc-c, discovered by a commercial static code + analysis tool. + + * Bump the libprotobuf-c SONAME. + + * Begin versioning the library's symbols. (Based on ld-version-script.m4 + from gnulib.) + + * Preserve case in enum value names generated by protoc-c (Issue #129). + Reported by Oleg Efimov. + + * Add library functions protobuf_c_version() and protobuf_c_version_string() + for retrieving the version of the compiled library, and header macros + PROTOBUF_C_VERSION and PROTOBUF_C_VERSION_STRING for retrieving the + version of the header file. This replaces the interfaces for retrieving + the protobuf-c version numbers in Issue #53. + + * Add a version guard that ensures that the output of protoc-c is only + compiled against a protobuf-c header file from the exact same protobuf-c + release. + + * Add a --enable-code-coverage option to configure, which enables a + "make check-code-coverage" build target. This generates a code coverage + report and requires the lcov tool to be installed. + + * Remove the old DocBook documentation in doc/c-code-generator.{html,xml}. + Relevant material has been updated and incorporated into the Doxygen + documentation in the protobuf-c header file. + + * Remove the protobuf_c_default_allocator and protobuf_c_system_allocator + global variables from the exported library interface. All exported library + functions that need to perform dynamic memory allocation receive a + user-provided ProtobufCAllocator* parameter. If this parameter is NULL, + the system's default memory allocator will be used. + + Client code that previously passed "&protobuf_c_system_allocator" to + protobuf-c library functions taking a ProtobufCAllocator* argument should + be updated to pass "NULL" instead. + + Client code that previously overrode protobuf_c_default_allocator with + custom allocation functions and passed NULL as the ProtobufCAllocator* + argument to protobuf-c library functions should be updated to instead + enclose the custom allocation functions in a ProtobufCAllocator struct and + pass this object to protobuf-c library functions taking a + ProtobufCAllocator* parameter. + + * Update copyright and license statements throughout. The original + protobuf code released by Google was relicensed from Apache-2.0 to + BSD-3-Clause. Dave Benson also converted his license from BSD-3-Clause + to BSD-2-Clause. + + [ Tomasz Wasilczyk ] + * Don't export protobuf_c_message_init_generic() as an external symbol. + + * Don't use C++ style comments in C code. + + * Fix -Wcast-align warnings when compiled with clang. + +protobuf-c (0.15) + - make protobuf_c_message_init() into a function (Issue #49, daveb) + - Fix for freeing memory after unpacking bytes w/o a default-value. + (Andrei Nigmatulin) + - minor windows portability issues (use ProtobufC_FD) (Pop Stelian) + - --with-endianness={little,big} (Pop Stelian) + - bug setting up values of has_idle in public dispatch, + make protobuf_c_dispatch_run() use only public members (daveb) + - provide cmake support and some Windows compatibility (Nikita Manovich) + +protobuf-c (0.14) + - build fix (missing dependency in test directory) + - add generation / installation of pkg-config files. (Bobby Powers) + - support for packed repeated fields (Dave Benson) + - bug in protobuf_c_dispatch_close_fd(), which usually only + showed up in later function calls. + - support for deprecated fields -- enable a GCC warning + if a field has the "deprecated" option enabled. (Andrei Nigmatulin) + - hackery to try to avoid touching inttypes.h on windows (Issue #41) + - fix for protobuf_c_message_unpack() to issue error if any + "required" field is missing in input stream. (Andrei Nigmatulin) + +protobuf-c (0.13) + - Fix for when the number of connections gets too great in RPC. + (Leszek Swirski) (issue #32) + - Add --disable-protoc to only build libprotobuf-c (daveb) + - Bug fixes for protobuf_c_enum_descriptor_get_value_by_name() + and protobuf_c_service_descriptor_get_method_by_name() + - if descriptor->message_init != NULL, use it from unpack() + as an optimization (daveb) + - implement protobuf_c_{client,server}_set_error_handler() + +protobuf-c (0.12) + - for field names which are reserved words, use the real name + given in the protobuf-c file, not the mangled name which + is the name of the member in the C structure. (Andrei Nigmatulin) + - add protobuf_c_message_init() function; add virtual function + that implements it efficiently. (Andrei Nigmatulin) + - bug fix for sfixed32, fixed32, float wire-types on + big-endian platforms (Robert Edmonds) + - compile with the latest protobuf (the header file wire_format_inl.h + is now wire_format.h) (Robert Edmonds) + +protobuf-c (0.11) + - allow CFLAGS=-DPRINT_UNPACK_ERRORS=0 to suppress + unpack warnings from being printed at compile time (Andrei Nigmatulin) + - give error if an unknown wire-type is encountered (Andrei Nigmatulin) + - fix technically possible overflows during unpack of very + large messages (Andrei Nigmatulin) + - [UNFINISHED] windows RPC work + - use automake's "foreign" mode from within configure.ac + and add version information to the library (Robert Edmonds) + - ProtobufCServiceDescriptor::method_indices_by_name: missing + const. (Issue 21) + - Update to support new UnknownFields API. (fix by dcreager) (Issue 20) + +protobuf-c (0.10) + - build issue on platforms which don't compute library dependencies + automatically. + - fix for certain types of corrupt messages (Landon Fuller) (issue 16) + +protobuf-c (0.9) + - build issue: needed $(EXEEXT) in dependency lists for cygwin + - bug fix: protobuf_c_service_get_method_by_name() was not correct b/c + the service's methods were not sorted by name (the header file + used to incorrectly state that they were). + Now we correctly implement protobuf_c_service_get_method_by_name() + (using a bsearch indexed by separate array). + - generated source incompatibility: we added a new + member to ProtobufCServiceDescriptor (method_indices_by_name). + You will have to run the latest protobuf + to generate those structures. + - rename rpc-client's "autoretry" mechanism to "autoreconnect". + - bug fixes using TCP clients with the RPC system. + - handle allocation failures more gracefully (Jason Lunz) (issue 15) + +protobuf-c (0.8) + - Destroy function typedef for Services was omitting a "*" + - service_machgen_invoke was broken. (issue 12) + - add RPC system (BETA) + - don't segfault when packing NULL strings and messages. (issue 13) + +protobuf-c (0.7) + - memory leak: unknown fields were not being freed by free_unpacked() + - lowercase field names consistently when composing + default_value names. (issue 11) + - remove spurious semicolon (issue 10) + +protobuf-c (0.6) + - Warning suppression for -Wcast-qual and -Wshadow. + - Support for default values of all types allowed by core protobuf. + - Generate message__init functions, for when the static initializer + isn't convenient. + - add some reserved fields at the end of the various descriptors + +protobuf-c (0.5) + - License now included in major files. + - Use little-endian optimizations; fix a bug therein. + - Include 'make deb' target. + +protobuf-c (0.4) + - Update to work with protobuf 2.0.1. + +protobuf-c (0.2) +protobuf-c (0.3) + - Minor pedantic concerns about generated code. + +protobuf-c (0.1) + - Lots of test code (and bug fixes). + +protobuf-c (0.0) + - Initial release. diff --git a/resources/espressif__esp_hosted/common/protobuf-c/Doxyfile.in b/resources/espressif__esp_hosted/common/protobuf-c/Doxyfile.in new file mode 100644 index 0000000..7d556ec --- /dev/null +++ b/resources/espressif__esp_hosted/common/protobuf-c/Doxyfile.in @@ -0,0 +1,2312 @@ +# Doxyfile 1.8.7 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project. +# +# All text after a double hash (##) is considered a comment and is placed in +# front of the TAG it is preceding. +# +# All text after a single hash (#) is considered a comment and will be ignored. +# The format is: +# TAG = value [value, ...] +# For lists, items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (\" \"). + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file +# that follow. The default is UTF-8 which is also the encoding used for all text +# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv +# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv +# for the list of possible encodings. +# The default value is: UTF-8. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by +# double-quotes, unless you are using Doxywizard) that should identify the +# project for which the documentation is generated. This name is used in the +# title of most generated pages and in a few other places. +# The default value is: My Project. + +PROJECT_NAME = "@PACKAGE@" + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. This +# could be handy for archiving the generated documentation or if some version +# control system is used. + +PROJECT_NUMBER = @PACKAGE_VERSION@ + +# Using the PROJECT_BRIEF tag one can provide an optional one line description +# for a project that appears at the top of each page and should give viewer a +# quick idea about the purpose of the project. Keep the description short. + +PROJECT_BRIEF = "@PACKAGE_DESCRIPTION@" + +# With the PROJECT_LOGO tag one can specify an logo or icon that is included in +# the documentation. The maximum height of the logo should not exceed 55 pixels +# and the maximum width should not exceed 200 pixels. Doxygen will copy the logo +# to the output directory. + +PROJECT_LOGO = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path +# into which the generated documentation will be written. If a relative path is +# entered, it will be relative to the location where doxygen was started. If +# left blank the current directory will be used. + +OUTPUT_DIRECTORY = + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub- +# directories (in 2 levels) under the output directory of each output format and +# will distribute the generated files over these directories. Enabling this +# option can be useful when feeding doxygen a huge amount of source files, where +# putting all generated files in the same directory would otherwise causes +# performance problems for the file system. +# The default value is: NO. + +CREATE_SUBDIRS = NO + +# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII +# characters to appear in the names of generated files. If set to NO, non-ASCII +# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode +# U+3044. +# The default value is: NO. + +ALLOW_UNICODE_NAMES = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, +# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), +# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, +# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), +# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, +# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, +# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, +# Ukrainian and Vietnamese. +# The default value is: English. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member +# descriptions after the members that are listed in the file and class +# documentation (similar to Javadoc). Set to NO to disable this. +# The default value is: YES. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief +# description of a member or function before the detailed description +# +# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. +# The default value is: YES. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator that is +# used to form the text in various listings. Each string in this list, if found +# as the leading text of the brief description, will be stripped from the text +# and the result, after processing the whole list, is used as the annotated +# text. Otherwise, the brief description is used as-is. If left blank, the +# following values are used ($name is automatically replaced with the name of +# the entity):The $name class, The $name widget, The $name file, is, provides, +# specifies, contains, represents, a, an and the. + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# doxygen will generate a detailed section even if there is only a brief +# description. +# The default value is: NO. + +ALWAYS_DETAILED_SEC = YES + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. +# The default value is: NO. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path +# before files name in the file list and in the header files. If set to NO the +# shortest path that makes the file name unique will be used +# The default value is: YES. + +FULL_PATH_NAMES = NO + +# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. +# Stripping is only done if one of the specified strings matches the left-hand +# part of the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the path to +# strip. +# +# Note that you can specify absolute paths here, but also relative paths, which +# will be relative from the directory where doxygen is started. +# This tag requires that the tag FULL_PATH_NAMES is set to YES. + +STRIP_FROM_PATH = @top_srcdir@ + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the +# path mentioned in the documentation of a class, which tells the reader which +# header file to include in order to use a class. If left blank only the name of +# the header file containing the class definition is used. Otherwise one should +# specify the list of include paths that are normally passed to the compiler +# using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but +# less readable) file names. This can be useful is your file systems doesn't +# support long names like on DOS, Mac, or CD-ROM. +# The default value is: NO. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the +# first line (until the first dot) of a Javadoc-style comment as the brief +# description. If set to NO, the Javadoc-style will behave just like regular Qt- +# style comments (thus requiring an explicit @brief command for a brief +# description.) +# The default value is: NO. + +JAVADOC_AUTOBRIEF = YES + +# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first +# line (until the first dot) of a Qt-style comment as the brief description. If +# set to NO, the Qt-style will behave just like regular Qt-style comments (thus +# requiring an explicit \brief command for a brief description.) +# The default value is: NO. + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a +# multi-line C++ special comment block (i.e. a block of //! or /// comments) as +# a brief description. This used to be the default behavior. The new default is +# to treat a multi-line C++ comment block as a detailed description. Set this +# tag to YES if you prefer the old behavior instead. +# +# Note that setting this tag to YES also means that rational rose comments are +# not recognized any more. +# The default value is: NO. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the +# documentation from any documented member that it re-implements. +# The default value is: YES. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a +# new page for each member. If set to NO, the documentation of a member will be +# part of the file/class/namespace that contains it. +# The default value is: NO. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen +# uses this value to replace tabs by spaces in code fragments. +# Minimum value: 1, maximum value: 16, default value: 4. + +TAB_SIZE = 8 + +# This tag can be used to specify a number of aliases that act as commands in +# the documentation. An alias has the form: +# name=value +# For example adding +# "sideeffect=@par Side Effects:\n" +# will allow you to put the command \sideeffect (or @sideeffect) in the +# documentation, which will result in a user-defined paragraph with heading +# "Side Effects:". You can put \n's in the value part of an alias to insert +# newlines. + +ALIASES = + +# This tag can be used to specify a number of word-keyword mappings (TCL only). +# A mapping has the form "name=value". For example adding "class=itcl::class" +# will allow you to use the command class in the itcl::class meaning. + +TCL_SUBST = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. For +# instance, some of the names that are used will be different. The list of all +# members will be omitted, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_FOR_C = YES + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or +# Python sources only. Doxygen will then generate output that is more tailored +# for that language. For instance, namespaces will be presented as packages, +# qualified scopes will look different, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources. Doxygen will then generate output that is tailored for Fortran. +# The default value is: NO. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for VHDL. +# The default value is: NO. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given +# extension. Doxygen has a built-in mapping, but you can override or extend it +# using this tag. The format is ext=language, where ext is a file extension, and +# language is one of the parsers supported by doxygen: IDL, Java, Javascript, +# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: +# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: +# Fortran. In the later case the parser tries to guess whether the code is fixed +# or free formatted code, this is the default for Fortran type files), VHDL. For +# instance to make doxygen treat .inc files as Fortran files (default is PHP), +# and .f files as C (default is Fortran), use: inc=Fortran f=C. +# +# Note For files without extension you can use no_extension as a placeholder. +# +# Note that for custom extensions you also need to set FILE_PATTERNS otherwise +# the files are not read by doxygen. + +EXTENSION_MAPPING = + +# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments +# according to the Markdown format, which allows for more readable +# documentation. See http://daringfireball.net/projects/markdown/ for details. +# The output of markdown processing is further processed by doxygen, so you can +# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in +# case of backward compatibilities issues. +# The default value is: YES. + +MARKDOWN_SUPPORT = YES + +# When enabled doxygen tries to link words that correspond to documented +# classes, or namespaces to their corresponding documentation. Such a link can +# be prevented in individual cases by by putting a % sign in front of the word +# or globally by setting AUTOLINK_SUPPORT to NO. +# The default value is: YES. + +AUTOLINK_SUPPORT = YES + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should set this +# tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); +# versus func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. +# The default value is: NO. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. +# The default value is: NO. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: +# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen +# will parse them like normal C++ but will assume all classes use public instead +# of private inheritance when no explicit protection keyword is present. +# The default value is: NO. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate +# getter and setter methods for a property. Setting this option to YES will make +# doxygen to replace the get and set methods by a property in the documentation. +# This will only work if the methods are indeed getting or setting a simple +# type. If this is not the case, or you want to show the methods anyway, you +# should set this option to NO. +# The default value is: YES. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. +# The default value is: NO. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES to allow class member groups of the same type +# (for instance a group of public functions) to be put as a subgroup of that +# type (e.g. under the Public Functions section). Set it to NO to prevent +# subgrouping. Alternatively, this can be done per class using the +# \nosubgrouping command. +# The default value is: YES. + +SUBGROUPING = YES + +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions +# are shown inside the group in which they are included (e.g. using \ingroup) +# instead of on a separate page (for HTML and Man pages) or section (for LaTeX +# and RTF). +# +# Note that this feature does not work in combination with +# SEPARATE_MEMBER_PAGES. +# The default value is: NO. + +INLINE_GROUPED_CLASSES = NO + +# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions +# with only public data fields or simple typedef fields will be shown inline in +# the documentation of the scope in which they are defined (i.e. file, +# namespace, or group documentation), provided this scope is documented. If set +# to NO, structs, classes, and unions are shown on a separate page (for HTML and +# Man pages) or section (for LaTeX and RTF). +# The default value is: NO. + +INLINE_SIMPLE_STRUCTS = NO + +# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or +# enum is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically be +# useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. +# The default value is: NO. + +TYPEDEF_HIDES_STRUCT = YES + +# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This +# cache is used to resolve symbols given their name and scope. Since this can be +# an expensive process and often the same symbol appears multiple times in the +# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small +# doxygen will become slower. If the cache is too large, memory is wasted. The +# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range +# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 +# symbols. At the end of a run doxygen will report the cache usage and suggest +# the optimal cache size from a speed point of view. +# Minimum value: 0, maximum value: 9, default value: 0. + +LOOKUP_CACHE_SIZE = 0 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. Private +# class members and static file members will be hidden unless the +# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. +# Note: This will also disable the warnings about undocumented members that are +# normally produced when WARNINGS is set to YES. +# The default value is: NO. + +EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class will +# be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal +# scope will be included in the documentation. +# The default value is: NO. + +EXTRACT_PACKAGE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file will be +# included in the documentation. +# The default value is: NO. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined +# locally in source files will be included in the documentation. If set to NO +# only classes defined in header files are included. Does not have any effect +# for Java sources. +# The default value is: YES. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local methods, +# which are defined in the implementation section but not in the interface are +# included in the documentation. If set to NO only methods in the interface are +# included. +# The default value is: NO. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base name of +# the file that contains the anonymous namespace. By default anonymous namespace +# are hidden. +# The default value is: NO. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all +# undocumented members inside documented classes or files. If set to NO these +# members will be included in the various overviews, but no documentation +# section is generated. This option has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. If set +# to NO these classes will be included in the various overviews. This option has +# no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend +# (class|struct|union) declarations. If set to NO these declarations will be +# included in the documentation. +# The default value is: NO. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any +# documentation blocks found inside the body of a function. If set to NO these +# blocks will be appended to the function's detailed documentation block. +# The default value is: NO. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation that is typed after a +# \internal command is included. If the tag is set to NO then the documentation +# will be excluded. Set it to YES to include the internal documentation. +# The default value is: NO. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file +# names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. +# The default value is: system dependent. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with +# their full class and namespace scopes in the documentation. If set to YES the +# scope will be hidden. +# The default value is: NO. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of +# the files that are included by a file in the documentation of that file. +# The default value is: YES. + +SHOW_INCLUDE_FILES = NO + +# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each +# grouped member an include statement to the documentation, telling the reader +# which file to include in order to use the member. +# The default value is: NO. + +SHOW_GROUPED_MEMB_INC = NO + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include +# files with double quotes in the documentation rather than with sharp brackets. +# The default value is: NO. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the +# documentation for inline members. +# The default value is: YES. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the +# (detailed) documentation of file and class members alphabetically by member +# name. If set to NO the members will appear in declaration order. +# The default value is: YES. + +SORT_MEMBER_DOCS = NO + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief +# descriptions of file, namespace and class members alphabetically by member +# name. If set to NO the members will appear in declaration order. Note that +# this will also influence the order of the classes in the class list. +# The default value is: NO. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the +# (brief and detailed) documentation of class members so that constructors and +# destructors are listed first. If set to NO the constructors will appear in the +# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. +# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief +# member documentation. +# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting +# detailed member documentation. +# The default value is: NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy +# of group names into alphabetical order. If set to NO the group names will +# appear in their defined order. +# The default value is: NO. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by +# fully-qualified names, including namespaces. If set to NO, the class list will +# be sorted only by class name, not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the alphabetical +# list. +# The default value is: NO. + +SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper +# type resolution of all parameters of a function it will reject a match between +# the prototype and the implementation of a member function even if there is +# only one candidate or it is obvious which candidate to choose by doing a +# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still +# accept a match between prototype and implementation in such cases. +# The default value is: NO. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the +# todo list. This list is created by putting \todo commands in the +# documentation. +# The default value is: YES. + +GENERATE_TODOLIST = NO + +# The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the +# test list. This list is created by putting \test commands in the +# documentation. +# The default value is: YES. + +GENERATE_TESTLIST = NO + +# The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug +# list. This list is created by putting \bug commands in the documentation. +# The default value is: YES. + +GENERATE_BUGLIST = NO + +# The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO) +# the deprecated list. This list is created by putting \deprecated commands in +# the documentation. +# The default value is: YES. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional documentation +# sections, marked by \if ... \endif and \cond +# ... \endcond blocks. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the +# initial value of a variable or macro / define can have for it to appear in the +# documentation. If the initializer consists of more lines than specified here +# it will be hidden. Use a value of 0 to hide initializers completely. The +# appearance of the value of individual variables and macros / defines can be +# controlled using \showinitializer or \hideinitializer command in the +# documentation regardless of this setting. +# Minimum value: 0, maximum value: 10000, default value: 30. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at +# the bottom of the documentation of classes and structs. If set to YES the list +# will mention the files that were used to generate the documentation. +# The default value is: YES. + +SHOW_USED_FILES = NO + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This +# will remove the Files entry from the Quick Index and from the Folder Tree View +# (if specified). +# The default value is: YES. + +SHOW_FILES = NO + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces +# page. This will remove the Namespaces entry from the Quick Index and from the +# Folder Tree View (if specified). +# The default value is: YES. + +SHOW_NAMESPACES = NO + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command command input-file, where command is the value of the +# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided +# by doxygen. Whatever the program writes to standard output is used as the file +# version. For an example see the documentation. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. To create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. You can +# optionally specify a file name after the option, if omitted DoxygenLayout.xml +# will be used as the name of the layout file. +# +# Note that if you run doxygen from a directory containing a file called +# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# tag is left empty. + +LAYOUT_FILE = @top_srcdir@/DoxygenLayout.xml + +# The CITE_BIB_FILES tag can be used to specify one or more bib files containing +# the reference definitions. This must be a list of .bib files. The .bib +# extension is automatically appended if omitted. This requires the bibtex tool +# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. +# For LaTeX the style of the bibliography can be controlled using +# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the +# search path. Do not use file names with spaces, bibtex cannot handle them. See +# also \cite for info how to create references. + +CITE_BIB_FILES = + +#--------------------------------------------------------------------------- +# Configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated to +# standard output by doxygen. If QUIET is set to YES this implies that the +# messages are off. +# The default value is: NO. + +QUIET = YES + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES +# this implies that the warnings are on. +# +# Tip: Turn warnings on while writing the documentation. +# The default value is: YES. + +WARNINGS = YES + +# If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate +# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: YES. + +WARN_IF_UNDOCUMENTED = YES + +# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some parameters +# in a documented function, or documenting parameters that don't exist or using +# markup commands wrongly. +# The default value is: YES. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that +# are documented, but have no documentation for their parameters or return +# value. If set to NO doxygen will only warn about wrong or incomplete parameter +# documentation, but not about the absence of documentation. +# The default value is: NO. + +WARN_NO_PARAMDOC = YES + +# The WARN_FORMAT tag determines the format of the warning messages that doxygen +# can produce. The string should contain the $file, $line, and $text tags, which +# will be replaced by the file and line number from which the warning originated +# and the warning text. Optionally the format may contain $version, which will +# be replaced by the version of the file (if it could be obtained via +# FILE_VERSION_FILTER) +# The default value is: $file:$line: $text. + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning and error +# messages should be written. If left blank the output is written to standard +# error (stderr). + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# Configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag is used to specify the files and/or directories that contain +# documented source files. You may enter file names like myfile.cpp or +# directories like /usr/src/myproject. Separate the files or directories with +# spaces. +# Note: If this tag is empty the current directory is searched. + +INPUT = @DOXYGEN_INPUT@ + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses +# libiconv (or the iconv built into libc) for the transcoding. See the libiconv +# documentation (see: http://www.gnu.org/software/libiconv) for the list of +# possible encodings. +# The default value is: UTF-8. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and +# *.h) to filter out the source-files in the directories. If left blank the +# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii, +# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, +# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, +# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, +# *.qsf, *.as and *.js. + +FILE_PATTERNS = *.h + +# The RECURSIVE tag can be used to specify whether or not subdirectories should +# be searched for input files as well. +# The default value is: NO. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should be +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. +# +# Note that relative paths are relative to the directory from which doxygen is +# run. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or +# directories that are symbolic links (a Unix file system feature) are excluded +# from the input. +# The default value is: NO. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories for example use the pattern */test/* + +EXCLUDE_PATTERNS = *private* + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories use the pattern */test/* + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or directories +# that contain example code fragments that are included (see the \include +# command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and +# *.h) to filter out the source-files in the directories. If left blank all +# files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude commands +# irrespective of the value of the RECURSIVE tag. +# The default value is: NO. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or directories +# that contain images that are to be included in the documentation (see the +# \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command: +# +# +# +# where is the value of the INPUT_FILTER tag, and is the +# name of an input file. Doxygen will then use the output that the filter +# program writes to standard output. If FILTER_PATTERNS is specified, this tag +# will be ignored. +# +# Note that the filter must not add or remove lines; it is applied before the +# code is scanned, but not when the output code is generated. If lines are added +# or removed, the anchors will not be placed correctly. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: pattern=filter +# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how +# filters are used. If the FILTER_PATTERNS tag is empty or if none of the +# patterns match the file name, INPUT_FILTER is applied. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER ) will also be used to filter the input files that are used for +# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). +# The default value is: NO. + +FILTER_SOURCE_FILES = NO + +# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and +# it is also possible to disable source filtering for a specific pattern using +# *.ext= (so without naming a filter). +# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. + +FILTER_SOURCE_PATTERNS = + +# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that +# is part of the input, its contents will be placed on the main page +# (index.html). This can be useful if you have a project on for instance GitHub +# and want to reuse the introduction page also for the doxygen output. + +USE_MDFILE_AS_MAINPAGE = + +#--------------------------------------------------------------------------- +# Configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will be +# generated. Documented entities will be cross-referenced with these sources. +# +# Note: To get rid of all source code in the generated output, make sure that +# also VERBATIM_HEADERS is set to NO. +# The default value is: NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body of functions, +# classes and enums directly into the documentation. +# The default value is: NO. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any +# special comment blocks from generated source code fragments. Normal C, C++ and +# Fortran comments will always remain visible. +# The default value is: YES. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES then for each documented +# function all documented functions referencing it will be listed. +# The default value is: NO. + +REFERENCED_BY_RELATION = NO + +# If the REFERENCES_RELATION tag is set to YES then for each documented function +# all documented entities called/used by that function will be listed. +# The default value is: NO. + +REFERENCES_RELATION = NO + +# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set +# to YES, then the hyperlinks from functions in REFERENCES_RELATION and +# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will +# link to the documentation. +# The default value is: YES. + +REFERENCES_LINK_SOURCE = YES + +# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the +# source code will show a tooltip with additional information such as prototype, +# brief description and links to the definition and documentation. Since this +# will make the HTML file larger and loading of large files a bit slower, you +# can opt to disable this feature. +# The default value is: YES. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +SOURCE_TOOLTIPS = NO + +# If the USE_HTAGS tag is set to YES then the references to source code will +# point to the HTML generated by the htags(1) tool instead of doxygen built-in +# source browser. The htags tool is part of GNU's global source tagging system +# (see http://www.gnu.org/software/global/global.html). You will need version +# 4.8.6 or higher. +# +# To use it do the following: +# - Install the latest version of global +# - Enable SOURCE_BROWSER and USE_HTAGS in the config file +# - Make sure the INPUT points to the root of the source tree +# - Run doxygen as normal +# +# Doxygen will invoke htags (and that will in turn invoke gtags), so these +# tools must be available from the command line (i.e. in the search path). +# +# The result: instead of the source browser generated by doxygen, the links to +# source code will now point to the output of htags. +# The default value is: NO. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a +# verbatim copy of the header file for each class for which an include is +# specified. Set to NO to disable this. +# See also: Section \class. +# The default value is: YES. + +VERBATIM_HEADERS = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all +# compounds will be generated. Enable this if the project contains a lot of +# classes, structs, unions or interfaces. +# The default value is: YES. + +ALPHABETICAL_INDEX = NO + +# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in +# which the alphabetical index list will be split. +# Minimum value: 1, maximum value: 20, default value: 5. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all classes will +# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag +# can be used to specify a prefix (or a list of prefixes) that should be ignored +# while generating the index headers. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES doxygen will generate HTML output +# The default value is: YES. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each +# generated HTML page (for example: .htm, .php, .asp). +# The default value is: .html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a user-defined HTML header file for +# each generated HTML page. If the tag is left blank doxygen will generate a +# standard header. +# +# To get valid HTML the header file that includes any scripts and style sheets +# that doxygen needs, which is dependent on the configuration options used (e.g. +# the setting GENERATE_TREEVIEW). It is highly recommended to start with a +# default header using +# doxygen -w html new_header.html new_footer.html new_stylesheet.css +# YourConfigFile +# and then modify the file new_header.html. See also section "Doxygen usage" +# for information on how to generate the default header that doxygen normally +# uses. +# Note: The header is subject to change so you typically have to regenerate the +# default header when upgrading to a newer version of doxygen. For a description +# of the possible markers and block names see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each +# generated HTML page. If the tag is left blank doxygen will generate a standard +# footer. See HTML_HEADER for more information on how to generate a default +# footer and what special commands can be used inside the footer. See also +# section "Doxygen usage" for information on how to generate the default footer +# that doxygen normally uses. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style +# sheet that is used by each HTML page. It can be used to fine-tune the look of +# the HTML output. If left blank doxygen will generate a default style sheet. +# See also section "Doxygen usage" for information on how to generate the style +# sheet that doxygen normally uses. +# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as +# it is more robust and this tag (HTML_STYLESHEET) will in the future become +# obsolete. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_STYLESHEET = + +# The HTML_EXTRA_STYLESHEET tag can be used to specify an additional user- +# defined cascading style sheet that is included after the standard style sheets +# created by doxygen. Using this option one can overrule certain style aspects. +# This is preferred over using HTML_STYLESHEET since it does not replace the +# standard style sheet and is therefor more robust against future updates. +# Doxygen will copy the style sheet file to the output directory. For an example +# see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_STYLESHEET = + +# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the HTML output directory. Note +# that these files will be copied to the base HTML output directory. Use the +# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that the +# files will be copied as-is; there are no commands or markers available. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_FILES = + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen +# will adjust the colors in the stylesheet and background images according to +# this color. Hue is specified as an angle on a colorwheel, see +# http://en.wikipedia.org/wiki/Hue for more information. For instance the value +# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 +# purple, and 360 is red again. +# Minimum value: 0, maximum value: 359, default value: 220. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_HUE = 220 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors +# in the HTML output. For a value of 0 the output will use grayscales only. A +# value of 255 will produce the most vivid colors. +# Minimum value: 0, maximum value: 255, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_SAT = 100 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the +# luminance component of the colors in the HTML output. Values below 100 +# gradually make the output lighter, whereas values above 100 make the output +# darker. The value divided by 100 is the actual gamma applied, so 80 represents +# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not +# change the gamma. +# Minimum value: 40, maximum value: 240, default value: 80. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_GAMMA = 80 + +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML +# page will contain the date and time when the page was generated. Setting this +# to NO can help when comparing the output of multiple runs. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_TIMESTAMP = NO + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_SECTIONS = NO + +# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries +# shown in the various tree structured indices initially; the user can expand +# and collapse entries dynamically later on. Doxygen will expand the tree to +# such a level that at most the specified number of entries are visible (unless +# a fully collapsed tree already exceeds this amount). So setting the number of +# entries 1 will produce a full collapsed tree by default. 0 is a special value +# representing an infinite number of entries and will result in a full expanded +# tree by default. +# Minimum value: 0, maximum value: 9999, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_INDEX_NUM_ENTRIES = 100 + +# If the GENERATE_DOCSET tag is set to YES, additional index files will be +# generated that can be used as input for Apple's Xcode 3 integrated development +# environment (see: http://developer.apple.com/tools/xcode/), introduced with +# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a +# Makefile in the HTML output directory. Running make will produce the docset in +# that directory and running make install will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at +# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html +# for more information. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_DOCSET = NO + +# This tag determines the name of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# The default value is: Doxygen generated docs. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# This tag specifies a string that should uniquely identify the documentation +# set bundle. This should be a reverse domain-name style string, e.g. +# com.mycompany.MyDocSet. Doxygen will append .docset to the name. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify +# the documentation publisher. This should be a reverse domain-name style +# string, e.g. com.mycompany.MyDocSet.documentation. +# The default value is: org.doxygen.Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_ID = org.doxygen.Publisher + +# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. +# The default value is: Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_NAME = Publisher + +# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three +# additional HTML index files: index.hhp, index.hhc, and index.hhk. The +# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop +# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on +# Windows. +# +# The HTML Help Workshop contains a compiler that can convert all HTML output +# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML +# files are now used as the Windows 98 help format, and will replace the old +# Windows help format (.hlp) on all Windows platforms in the future. Compressed +# HTML files also contain an index, a table of contents, and you can search for +# words in the documentation. The HTML workshop also contains a viewer for +# compressed HTML files. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_HTMLHELP = NO + +# The CHM_FILE tag can be used to specify the file name of the resulting .chm +# file. You can add a path in front of the file if the result should not be +# written to the html output directory. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_FILE = + +# The HHC_LOCATION tag can be used to specify the location (absolute path +# including file name) of the HTML help compiler ( hhc.exe). If non-empty +# doxygen will try to run the HTML help compiler on the generated index.hhp. +# The file has to be specified with full path. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +HHC_LOCATION = + +# The GENERATE_CHI flag controls if a separate .chi index file is generated ( +# YES) or that it should be included in the master .chm file ( NO). +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +GENERATE_CHI = NO + +# The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc) +# and project file content. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_INDEX_ENCODING = + +# The BINARY_TOC flag controls whether a binary table of contents is generated ( +# YES) or a normal table of contents ( NO) in the .chm file. Furthermore it +# enables the Previous and Next buttons. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members to +# the table of contents of the HTML help documentation and to the tree view. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that +# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help +# (.qch) of the generated HTML documentation. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify +# the file name of the resulting .qch file. The path specified is relative to +# the HTML output folder. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help +# Project output. For more information please see Qt Help Project / Namespace +# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt +# Help Project output. For more information please see Qt Help Project / Virtual +# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- +# folders). +# The default value is: doc. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_VIRTUAL_FOLDER = doc + +# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom +# filter to add. For more information please see Qt Help Project / Custom +# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- +# filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see Qt Help Project / Custom +# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- +# filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's filter section matches. Qt Help Project / Filter Attributes (see: +# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_SECT_FILTER_ATTRS = + +# The QHG_LOCATION tag can be used to specify the location of Qt's +# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the +# generated .qhp file. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be +# generated, together with the HTML files, they form an Eclipse help plugin. To +# install this plugin and make it available under the help contents menu in +# Eclipse, the contents of the directory containing the HTML and XML files needs +# to be copied into the plugins directory of eclipse. The name of the directory +# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. +# After copying Eclipse needs to be restarted before the help appears. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the Eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have this +# name. Each documentation set should have its own identifier. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# If you want full control over the layout of the generated HTML pages it might +# be necessary to disable the index and replace it with your own. The +# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top +# of each HTML page. A value of NO enables the index and the value YES disables +# it. Since the tabs in the index contain the same information as the navigation +# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +DISABLE_INDEX = YES + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. If the tag +# value is set to YES, a side panel will be generated containing a tree-like +# index structure (just like the one that is generated for HTML Help). For this +# to work a browser that supports JavaScript, DHTML, CSS and frames is required +# (i.e. any modern browser). Windows users are probably better off using the +# HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can +# further fine-tune the look of the index. As an example, the default style +# sheet generated by doxygen has an example that shows how to put an image at +# the root of the tree instead of the PROJECT_NAME. Since the tree basically has +# the same information as the tab index, you could consider setting +# DISABLE_INDEX to YES when enabling this option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_TREEVIEW = YES + +# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that +# doxygen will group on one line in the generated HTML documentation. +# +# Note that a value of 0 will completely suppress the enum values from appearing +# in the overview section. +# Minimum value: 0, maximum value: 20, default value: 4. +# This tag requires that the tag GENERATE_HTML is set to YES. + +ENUM_VALUES_PER_LINE = 0 + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used +# to set the initial width (in pixels) of the frame in which the tree is shown. +# Minimum value: 0, maximum value: 1500, default value: 250. +# This tag requires that the tag GENERATE_HTML is set to YES. + +TREEVIEW_WIDTH = 250 + +# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to +# external symbols imported via tag files in a separate window. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +EXT_LINKS_IN_WINDOW = NO + +# Use this tag to change the font size of LaTeX formulas included as images in +# the HTML documentation. When you change the font size after a successful +# doxygen run you need to manually remove any form_*.png images from the HTML +# output directory to force them to be regenerated. +# Minimum value: 8, maximum value: 50, default value: 10. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_FONTSIZE = 10 + +# Use the FORMULA_TRANPARENT tag to determine whether or not the images +# generated for formulas are transparent PNGs. Transparent PNGs are not +# supported properly for IE 6.0, but are supported on all modern browsers. +# +# Note that when changing this option you need to delete any form_*.png files in +# the HTML output directory before the changes have effect. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_TRANSPARENT = YES + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see +# http://www.mathjax.org) which uses client side Javascript for the rendering +# instead of using prerendered bitmaps. Use this if you do not have LaTeX +# installed or if you want to formulas look prettier in the HTML output. When +# enabled you may also need to install MathJax separately and configure the path +# to it using the MATHJAX_RELPATH option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +USE_MATHJAX = NO + +# When MathJax is enabled you can set the default output format to be used for +# the MathJax output. See the MathJax site (see: +# http://docs.mathjax.org/en/latest/output.html) for more details. +# Possible values are: HTML-CSS (which is slower, but has the best +# compatibility), NativeMML (i.e. MathML) and SVG. +# The default value is: HTML-CSS. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_FORMAT = HTML-CSS + +# When MathJax is enabled you need to specify the location relative to the HTML +# output directory using the MATHJAX_RELPATH option. The destination directory +# should contain the MathJax.js script. For instance, if the mathjax directory +# is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax +# Content Delivery Network so you can quickly see the result without installing +# MathJax. However, it is strongly recommended to install a local copy of +# MathJax from http://www.mathjax.org before deployment. +# The default value is: http://cdn.mathjax.org/mathjax/latest. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest + +# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax +# extension names that should be enabled during MathJax rendering. For example +# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_EXTENSIONS = + +# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces +# of code that will be used on startup of the MathJax code. See the MathJax site +# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an +# example see the documentation. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_CODEFILE = + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box for +# the HTML output. The underlying search engine uses javascript and DHTML and +# should work on any modern browser. Note that when using HTML help +# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) +# there is already a search function so this one should typically be disabled. +# For large projects the javascript based search engine can be slow, then +# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to +# search using the keyboard; to jump to the search box use + S +# (what the is depends on the OS and browser, but it is typically +# , /
"); printCheckBox(&response, "DISNTWNOCON", "Disable Network if not connected within 60s", _preferences->getBool(preference_disable_network_not_connected, false), ""); - //printCheckBox(&response, "WEBLOG", "Enable WebSerial logging", _preferences->getBool(preference_webserial_enabled), ""); + printCheckBox(&response, "WEBLOG", "Enable WebSerial logging", _preferences->getBool(preference_webserial_enabled), ""); printCheckBox(&response, "BTLPRST", "Enable Bootloop prevention (Try to reset these settings to default on bootloop)", true, ""); printInputField(&response, "BUFFSIZE", "Char buffer size (min 4096, max 65536)", _preferences->getInt(preference_buffer_size, CHAR_BUFFER_SIZE), 6, ""); response.print(""); diff --git a/src/WebCfgServer.h b/src/WebCfgServer.h index 47fb40f..08b724e 100644 --- a/src/WebCfgServer.h +++ b/src/WebCfgServer.h @@ -44,6 +44,7 @@ class WebCfgServer public: #ifndef NUKI_HUB_UPDATER WebCfgServer(NukiWrapper* nuki, NukiOpenerWrapper* nukiOpener, NukiNetwork* network, Gpio* gpio, Preferences* preferences, bool allowRestartToPortal, uint8_t partitionType, PsychicHttpServer* psychicServer, ImportExport* importExport); + void updateWebSerial(); #else WebCfgServer(NukiNetwork* network, Preferences* preferences, bool allowRestartToPortal, uint8_t partitionType, PsychicHttpServer* psychicServer, ImportExport* importExport); #endif @@ -127,6 +128,7 @@ private: esp_err_t buildConfirmHtml(PsychicRequest *request, PsychicResponse* resp, const String &message, uint32_t redirectDelay = 5, bool redirect = false, String redirectTo = "/"); esp_err_t buildOtaHtml(PsychicRequest *request, PsychicResponse* resp, bool debug = false); esp_err_t sendCss(PsychicRequest *request, PsychicResponse* resp); + esp_err_t sendWebSerial(PsychicRequest *request, PsychicResponse* resp); esp_err_t sendFavicon(PsychicRequest *request, PsychicResponse* resp); void createSsidList(); void buildHtmlHeader(PsychicStreamResponse *response, String additionalHeader = ""); @@ -145,7 +147,7 @@ private: NukiNetwork* _network = nullptr; Preferences* _preferences = nullptr; ImportExport* _importExport; - + char _credUser[31] = {0}; char _credPassword[31] = {0}; bool _allowRestartToPortal = false; diff --git a/src/WebCfgServerConstants.h b/src/WebCfgServerConstants.h index 96f5389..bc6410b 100644 --- a/src/WebCfgServerConstants.h +++ b/src/WebCfgServerConstants.h @@ -60,3 +60,9 @@ const uint8_t favicon_32x32[] = { 0xed, 0x06, 0xb0, 0xce, 0xb5, 0xc4, 0xb4, 0x59, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; + +#ifndef NUKI_HUB_UPDATER +const uint8_t WEBSERIAL_HTML[] = { +0x3c, 0x21, 0x64, 0x6f, 0x63, 0x74, 0x79, 0x70, 0x65, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x3c, 0x6d, 0x65, 0x74, 0x61, 0x20, 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x3d, 0x75, 0x74, 0x66, 0x2d, 0x38, 0x3e, 0x3c, 0x6d, 0x65, 0x74, 0x61, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x49, 0x45, 0x3d, 0x65, 0x64, 0x67, 0x65, 0x22, 0x68, 0x74, 0x74, 0x70, 0x2d, 0x65, 0x71, 0x75, 0x69, 0x76, 0x3d, 0x58, 0x2d, 0x55, 0x41, 0x2d, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x3e, 0x3c, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0x57, 0x65, 0x62, 0x20, 0x43, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0x3c, 0x6d, 0x65, 0x74, 0x61, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2c, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x2d, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x3d, 0x31, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x76, 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x3e, 0x3c, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3e, 0x64, 0x69, 0x76, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x7d, 0x61, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x2e, 0x34, 0x72, 0x65, 0x6d, 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x64, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x7d, 0x2a, 0x2c, 0x3a, 0x3a, 0x61, 0x66, 0x74, 0x65, 0x72, 0x2c, 0x3a, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x3a, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x3b, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x3a, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x7d, 0x70, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x30, 0x20, 0x30, 0x20, 0x31, 0x72, 0x65, 0x6d, 0x7d, 0x62, 0x6f, 0x64, 0x79, 0x7b, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x2d, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x31, 0x30, 0x30, 0x25, 0x3b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, 0x30, 0x30, 0x25, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x30, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x30, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x3a, 0x2d, 0x61, 0x70, 0x70, 0x6c, 0x65, 0x2d, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2d, 0x75, 0x69, 0x2c, 0x42, 0x6c, 0x69, 0x6e, 0x6b, 0x4d, 0x61, 0x63, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x46, 0x6f, 0x6e, 0x74, 0x2c, 0x22, 0x53, 0x65, 0x67, 0x6f, 0x65, 0x20, 0x55, 0x49, 0x22, 0x2c, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x6f, 0x2c, 0x22, 0x48, 0x65, 0x6c, 0x76, 0x65, 0x74, 0x69, 0x63, 0x61, 0x20, 0x4e, 0x65, 0x75, 0x65, 0x22, 0x2c, 0x73, 0x61, 0x6e, 0x73, 0x2d, 0x73, 0x65, 0x72, 0x69, 0x66, 0x7d, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x7b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x7d, 0x2e, 0x67, 0x72, 0x61, 0x79, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x36, 0x36, 0x37, 0x31, 0x38, 0x39, 0x7d, 0x2e, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x7b, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x3a, 0x64, 0x72, 0x6f, 0x70, 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x28, 0x30, 0x20, 0x34, 0x70, 0x78, 0x20, 0x33, 0x70, 0x78, 0x20, 0x72, 0x67, 0x62, 0x28, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x2f, 0x20, 0x2e, 0x30, 0x37, 0x29, 0x29, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x28, 0x30, 0x20, 0x32, 0x70, 0x78, 0x20, 0x32, 0x70, 0x78, 0x20, 0x72, 0x67, 0x62, 0x28, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x2f, 0x20, 0x2e, 0x30, 0x36, 0x29, 0x29, 0x7d, 0x2e, 0x77, 0x2d, 0x66, 0x75, 0x6c, 0x6c, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, 0x30, 0x30, 0x25, 0x7d, 0x2e, 0x67, 0x72, 0x69, 0x64, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x67, 0x72, 0x69, 0x64, 0x7d, 0x2e, 0x67, 0x61, 0x70, 0x2d, 0x32, 0x7b, 0x67, 0x61, 0x70, 0x3a, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x7d, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x66, 0x6c, 0x65, 0x78, 0x7d, 0x2e, 0x67, 0x72, 0x6f, 0x77, 0x7b, 0x66, 0x6c, 0x65, 0x78, 0x2d, 0x67, 0x72, 0x6f, 0x77, 0x3a, 0x31, 0x7d, 0x2e, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x79, 0x2d, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x2d, 0x65, 0x6e, 0x64, 0x7b, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x79, 0x2d, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x3a, 0x65, 0x6e, 0x64, 0x7d, 0x2e, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x7d, 0x2e, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x7b, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x3a, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x78, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x38, 0x66, 0x39, 0x66, 0x61, 0x7d, 0x2e, 0x6d, 0x61, 0x69, 0x6e, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x66, 0x6c, 0x65, 0x78, 0x3b, 0x66, 0x6c, 0x65, 0x78, 0x2d, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x3b, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x79, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x66, 0x6c, 0x65, 0x78, 0x2d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x3b, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x2d, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x3a, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x31, 0x30, 0x30, 0x64, 0x76, 0x68, 0x7d, 0x2e, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x2e, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x7b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3a, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x31, 0x72, 0x65, 0x6d, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x63, 0x61, 0x6c, 0x63, 0x28, 0x31, 0x30, 0x30, 0x25, 0x20, 0x2d, 0x20, 0x31, 0x72, 0x65, 0x6d, 0x29, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x32, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x7d, 0x2e, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x7b, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x3a, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x38, 0x70, 0x78, 0x20, 0x31, 0x30, 0x70, 0x78, 0x20, 0x38, 0x70, 0x78, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x3b, 0x6f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x30, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x30, 0x30, 0x36, 0x37, 0x66, 0x34, 0x7d, 0x2e, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x35, 0x61, 0x36, 0x31, 0x36, 0x39, 0x7d, 0x2e, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x23, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x7b, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x33, 0x2e, 0x32, 0x35, 0x72, 0x65, 0x6d, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x3b, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x3b, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x2d, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x7d, 0x23, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x7b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x3b, 0x74, 0x6f, 0x70, 0x3a, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x3b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x7d, 0x23, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x35, 0x61, 0x36, 0x31, 0x36, 0x39, 0x7d, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x20, 0x73, 0x70, 0x61, 0x6e, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x23, 0x66, 0x66, 0x65, 0x31, 0x34, 0x64, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x32, 0x70, 0x78, 0x20, 0x31, 0x30, 0x70, 0x78, 0x3b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x30, 0x30, 0x30, 0x7d, 0x2e, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x7b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x31, 0x72, 0x65, 0x6d, 0x20, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x7d, 0x2e, 0x63, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x7b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x31, 0x72, 0x65, 0x6d, 0x7d, 0x2e, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x7b, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x7d, 0x2e, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x7b, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x72, 0x69, 0x67, 0x68, 0x74, 0x7d, 0x3c, 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x3e, 0x3c, 0x68, 0x31, 0x20, 0x69, 0x64, 0x3d, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3e, 0x57, 0x65, 0x62, 0x20, 0x43, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x3c, 0x2f, 0x68, 0x31, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x2f, 0x20, 0x3e, 0x3c, 0x69, 0x6d, 0x67, 0x20, 0x69, 0x64, 0x3d, 0x6c, 0x6f, 0x67, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x3d, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x6f, 0x67, 0x6f, 0x28, 0x29, 0x20, 0x73, 0x72, 0x63, 0x3d, 0x2f, 0x6c, 0x6f, 0x67, 0x6f, 0x3e, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x20, 0x67, 0x72, 0x69, 0x64, 0x20, 0x67, 0x61, 0x70, 0x2d, 0x32, 0x20, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3e, 0x3c, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x22, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x3d, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x28, 0x29, 0x3e, 0x3c, 0x73, 0x76, 0x67, 0x20, 0x61, 0x72, 0x69, 0x61, 0x2d, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3d, 0x74, 0x72, 0x75, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x69, 0x63, 0x6f, 0x6e, 0x3d, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3d, 0x31, 0x65, 0x6d, 0x20, 0x76, 0x69, 0x65, 0x77, 0x42, 0x6f, 0x78, 0x3d, 0x22, 0x36, 0x34, 0x20, 0x36, 0x34, 0x20, 0x38, 0x39, 0x36, 0x20, 0x38, 0x39, 0x36, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x31, 0x65, 0x6d, 0x3e, 0x3c, 0x70, 0x61, 0x74, 0x68, 0x20, 0x64, 0x3d, 0x22, 0x4d, 0x38, 0x36, 0x34, 0x20, 0x32, 0x35, 0x36, 0x48, 0x37, 0x33, 0x36, 0x76, 0x2d, 0x38, 0x30, 0x63, 0x30, 0x2d, 0x33, 0x35, 0x2e, 0x33, 0x2d, 0x32, 0x38, 0x2e, 0x37, 0x2d, 0x36, 0x34, 0x2d, 0x36, 0x34, 0x2d, 0x36, 0x34, 0x48, 0x33, 0x35, 0x32, 0x63, 0x2d, 0x33, 0x35, 0x2e, 0x33, 0x20, 0x30, 0x2d, 0x36, 0x34, 0x20, 0x32, 0x38, 0x2e, 0x37, 0x2d, 0x36, 0x34, 0x20, 0x36, 0x34, 0x76, 0x38, 0x30, 0x48, 0x31, 0x36, 0x30, 0x63, 0x2d, 0x31, 0x37, 0x2e, 0x37, 0x20, 0x30, 0x2d, 0x33, 0x32, 0x20, 0x31, 0x34, 0x2e, 0x33, 0x2d, 0x33, 0x32, 0x20, 0x33, 0x32, 0x76, 0x33, 0x32, 0x63, 0x30, 0x20, 0x34, 0x2e, 0x34, 0x20, 0x33, 0x2e, 0x36, 0x20, 0x38, 0x20, 0x38, 0x20, 0x38, 0x68, 0x36, 0x30, 0x2e, 0x34, 0x6c, 0x32, 0x34, 0x2e, 0x37, 0x20, 0x35, 0x32, 0x33, 0x63, 0x31, 0x2e, 0x36, 0x20, 0x33, 0x34, 0x2e, 0x31, 0x20, 0x32, 0x39, 0x2e, 0x38, 0x20, 0x36, 0x31, 0x20, 0x36, 0x33, 0x2e, 0x39, 0x20, 0x36, 0x31, 0x68, 0x34, 0x35, 0x34, 0x63, 0x33, 0x34, 0x2e, 0x32, 0x20, 0x30, 0x20, 0x36, 0x32, 0x2e, 0x33, 0x2d, 0x32, 0x36, 0x2e, 0x38, 0x20, 0x36, 0x33, 0x2e, 0x39, 0x2d, 0x36, 0x31, 0x6c, 0x32, 0x34, 0x2e, 0x37, 0x2d, 0x35, 0x32, 0x33, 0x48, 0x38, 0x38, 0x38, 0x63, 0x34, 0x2e, 0x34, 0x20, 0x30, 0x20, 0x38, 0x2d, 0x33, 0x2e, 0x36, 0x20, 0x38, 0x2d, 0x38, 0x76, 0x2d, 0x33, 0x32, 0x63, 0x30, 0x2d, 0x31, 0x37, 0x2e, 0x37, 0x2d, 0x31, 0x34, 0x2e, 0x33, 0x2d, 0x33, 0x32, 0x2d, 0x33, 0x32, 0x2d, 0x33, 0x32, 0x7a, 0x6d, 0x2d, 0x32, 0x30, 0x30, 0x20, 0x30, 0x48, 0x33, 0x36, 0x30, 0x76, 0x2d, 0x37, 0x32, 0x68, 0x33, 0x30, 0x34, 0x76, 0x37, 0x32, 0x7a, 0x22, 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x74, 0x68, 0x3e, 0x3c, 0x2f, 0x73, 0x76, 0x67, 0x3e, 0x3c, 0x2f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3e, 0x20, 0x3c, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x22, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x3d, 0x22, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x3d, 0x21, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x22, 0x3e, 0x3c, 0x73, 0x76, 0x67, 0x20, 0x61, 0x72, 0x69, 0x61, 0x2d, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3d, 0x74, 0x72, 0x75, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x69, 0x63, 0x6f, 0x6e, 0x3d, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3d, 0x31, 0x65, 0x6d, 0x20, 0x76, 0x69, 0x65, 0x77, 0x42, 0x6f, 0x78, 0x3d, 0x22, 0x36, 0x34, 0x20, 0x36, 0x34, 0x20, 0x38, 0x39, 0x36, 0x20, 0x38, 0x39, 0x36, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x31, 0x65, 0x6d, 0x3e, 0x3c, 0x70, 0x61, 0x74, 0x68, 0x20, 0x64, 0x3d, 0x22, 0x4d, 0x38, 0x33, 0x32, 0x20, 0x34, 0x36, 0x34, 0x68, 0x2d, 0x36, 0x38, 0x56, 0x32, 0x34, 0x30, 0x63, 0x30, 0x2d, 0x37, 0x30, 0x2e, 0x37, 0x2d, 0x35, 0x37, 0x2e, 0x33, 0x2d, 0x31, 0x32, 0x38, 0x2d, 0x31, 0x32, 0x38, 0x2d, 0x31, 0x32, 0x38, 0x48, 0x33, 0x38, 0x38, 0x63, 0x2d, 0x37, 0x30, 0x2e, 0x37, 0x20, 0x30, 0x2d, 0x31, 0x32, 0x38, 0x20, 0x35, 0x37, 0x2e, 0x33, 0x2d, 0x31, 0x32, 0x38, 0x20, 0x31, 0x32, 0x38, 0x76, 0x32, 0x32, 0x34, 0x68, 0x2d, 0x36, 0x38, 0x63, 0x2d, 0x31, 0x37, 0x2e, 0x37, 0x20, 0x30, 0x2d, 0x33, 0x32, 0x20, 0x31, 0x34, 0x2e, 0x33, 0x2d, 0x33, 0x32, 0x20, 0x33, 0x32, 0x76, 0x33, 0x38, 0x34, 0x63, 0x30, 0x20, 0x31, 0x37, 0x2e, 0x37, 0x20, 0x31, 0x34, 0x2e, 0x33, 0x20, 0x33, 0x32, 0x20, 0x33, 0x32, 0x20, 0x33, 0x32, 0x68, 0x36, 0x34, 0x30, 0x63, 0x31, 0x37, 0x2e, 0x37, 0x20, 0x30, 0x20, 0x33, 0x32, 0x2d, 0x31, 0x34, 0x2e, 0x33, 0x20, 0x33, 0x32, 0x2d, 0x33, 0x32, 0x56, 0x34, 0x39, 0x36, 0x63, 0x30, 0x2d, 0x31, 0x37, 0x2e, 0x37, 0x2d, 0x31, 0x34, 0x2e, 0x33, 0x2d, 0x33, 0x32, 0x2d, 0x33, 0x32, 0x2d, 0x33, 0x32, 0x7a, 0x4d, 0x33, 0x33, 0x32, 0x20, 0x32, 0x34, 0x30, 0x63, 0x30, 0x2d, 0x33, 0x30, 0x2e, 0x39, 0x20, 0x32, 0x35, 0x2e, 0x31, 0x2d, 0x35, 0x36, 0x20, 0x35, 0x36, 0x2d, 0x35, 0x36, 0x68, 0x32, 0x34, 0x38, 0x63, 0x33, 0x30, 0x2e, 0x39, 0x20, 0x30, 0x20, 0x35, 0x36, 0x20, 0x32, 0x35, 0x2e, 0x31, 0x20, 0x35, 0x36, 0x20, 0x35, 0x36, 0x76, 0x32, 0x32, 0x34, 0x48, 0x33, 0x33, 0x32, 0x56, 0x32, 0x34, 0x30, 0x7a, 0x6d, 0x34, 0x36, 0x30, 0x20, 0x36, 0x30, 0x30, 0x48, 0x32, 0x33, 0x32, 0x56, 0x35, 0x33, 0x36, 0x68, 0x35, 0x36, 0x30, 0x76, 0x33, 0x30, 0x34, 0x7a, 0x4d, 0x34, 0x38, 0x34, 0x20, 0x37, 0x30, 0x31, 0x76, 0x35, 0x33, 0x63, 0x30, 0x20, 0x34, 0x2e, 0x34, 0x20, 0x33, 0x2e, 0x36, 0x20, 0x38, 0x20, 0x38, 0x20, 0x38, 0x68, 0x34, 0x30, 0x63, 0x34, 0x2e, 0x34, 0x20, 0x30, 0x20, 0x38, 0x2d, 0x33, 0x2e, 0x36, 0x20, 0x38, 0x2d, 0x38, 0x76, 0x2d, 0x35, 0x33, 0x61, 0x34, 0x38, 0x2e, 0x30, 0x31, 0x20, 0x34, 0x38, 0x2e, 0x30, 0x31, 0x20, 0x30, 0x20, 0x31, 0x30, 0x2d, 0x35, 0x36, 0x20, 0x30, 0x7a, 0x22, 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x74, 0x68, 0x3e, 0x3c, 0x2f, 0x73, 0x76, 0x67, 0x3e, 0x3c, 0x2f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3e, 0x20, 0x3c, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x22, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x3d, 0x22, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x3d, 0x21, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x3e, 0x3c, 0x73, 0x76, 0x67, 0x20, 0x61, 0x72, 0x69, 0x61, 0x2d, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3d, 0x74, 0x72, 0x75, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x69, 0x63, 0x6f, 0x6e, 0x3d, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x2d, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3d, 0x31, 0x65, 0x6d, 0x20, 0x76, 0x69, 0x65, 0x77, 0x42, 0x6f, 0x78, 0x3d, 0x22, 0x36, 0x34, 0x20, 0x36, 0x34, 0x20, 0x38, 0x39, 0x36, 0x20, 0x38, 0x39, 0x36, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x31, 0x65, 0x6d, 0x3e, 0x3c, 0x70, 0x61, 0x74, 0x68, 0x20, 0x64, 0x3d, 0x22, 0x4d, 0x35, 0x31, 0x32, 0x20, 0x36, 0x34, 0x43, 0x32, 0x36, 0x34, 0x2e, 0x36, 0x20, 0x36, 0x34, 0x20, 0x36, 0x34, 0x20, 0x32, 0x36, 0x34, 0x2e, 0x36, 0x20, 0x36, 0x34, 0x20, 0x35, 0x31, 0x32, 0x73, 0x32, 0x30, 0x30, 0x2e, 0x36, 0x20, 0x34, 0x34, 0x38, 0x20, 0x34, 0x34, 0x38, 0x20, 0x34, 0x34, 0x38, 0x20, 0x34, 0x34, 0x38, 0x2d, 0x32, 0x30, 0x30, 0x2e, 0x36, 0x20, 0x34, 0x34, 0x38, 0x2d, 0x34, 0x34, 0x38, 0x53, 0x37, 0x35, 0x39, 0x2e, 0x34, 0x20, 0x36, 0x34, 0x20, 0x35, 0x31, 0x32, 0x20, 0x36, 0x34, 0x7a, 0x6d, 0x30, 0x20, 0x38, 0x32, 0x30, 0x63, 0x2d, 0x32, 0x30, 0x35, 0x2e, 0x34, 0x20, 0x30, 0x2d, 0x33, 0x37, 0x32, 0x2d, 0x31, 0x36, 0x36, 0x2e, 0x36, 0x2d, 0x33, 0x37, 0x32, 0x2d, 0x33, 0x37, 0x32, 0x73, 0x31, 0x36, 0x36, 0x2e, 0x36, 0x2d, 0x33, 0x37, 0x32, 0x20, 0x33, 0x37, 0x32, 0x2d, 0x33, 0x37, 0x32, 0x20, 0x33, 0x37, 0x32, 0x20, 0x31, 0x36, 0x36, 0x2e, 0x36, 0x20, 0x33, 0x37, 0x32, 0x20, 0x33, 0x37, 0x32, 0x2d, 0x31, 0x36, 0x36, 0x2e, 0x36, 0x20, 0x33, 0x37, 0x32, 0x2d, 0x33, 0x37, 0x32, 0x20, 0x33, 0x37, 0x32, 0x7a, 0x22, 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x74, 0x68, 0x3e, 0x3c, 0x70, 0x61, 0x74, 0x68, 0x20, 0x64, 0x3d, 0x22, 0x4d, 0x36, 0x38, 0x36, 0x2e, 0x37, 0x20, 0x36, 0x33, 0x38, 0x2e, 0x36, 0x4c, 0x35, 0x34, 0x34, 0x2e, 0x31, 0x20, 0x35, 0x33, 0x35, 0x2e, 0x35, 0x56, 0x32, 0x38, 0x38, 0x63, 0x30, 0x2d, 0x34, 0x2e, 0x34, 0x2d, 0x33, 0x2e, 0x36, 0x2d, 0x38, 0x2d, 0x38, 0x2d, 0x38, 0x48, 0x34, 0x38, 0x38, 0x63, 0x2d, 0x34, 0x2e, 0x34, 0x20, 0x30, 0x2d, 0x38, 0x20, 0x33, 0x2e, 0x36, 0x2d, 0x38, 0x20, 0x38, 0x76, 0x32, 0x37, 0x35, 0x2e, 0x34, 0x63, 0x30, 0x20, 0x32, 0x2e, 0x36, 0x20, 0x31, 0x2e, 0x32, 0x20, 0x35, 0x20, 0x33, 0x2e, 0x33, 0x20, 0x36, 0x2e, 0x35, 0x6c, 0x31, 0x36, 0x35, 0x2e, 0x34, 0x20, 0x31, 0x32, 0x30, 0x2e, 0x36, 0x63, 0x33, 0x2e, 0x36, 0x20, 0x32, 0x2e, 0x36, 0x20, 0x38, 0x2e, 0x36, 0x20, 0x31, 0x2e, 0x38, 0x20, 0x31, 0x31, 0x2e, 0x32, 0x2d, 0x31, 0x2e, 0x37, 0x6c, 0x32, 0x38, 0x2e, 0x36, 0x2d, 0x33, 0x39, 0x63, 0x32, 0x2e, 0x36, 0x2d, 0x33, 0x2e, 0x37, 0x20, 0x31, 0x2e, 0x38, 0x2d, 0x38, 0x2e, 0x37, 0x2d, 0x31, 0x2e, 0x38, 0x2d, 0x31, 0x31, 0x2e, 0x32, 0x7a, 0x22, 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x74, 0x68, 0x3e, 0x3c, 0x2f, 0x73, 0x76, 0x67, 0x3e, 0x3c, 0x2f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x74, 0x65, 0x78, 0x74, 0x61, 0x72, 0x65, 0x61, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x77, 0x2d, 0x66, 0x75, 0x6c, 0x6c, 0x22, 0x63, 0x6f, 0x6c, 0x73, 0x3d, 0x33, 0x30, 0x20, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, 0x69, 0x64, 0x3d, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x3d, 0x34, 0x30, 0x20, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3d, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x65, 0x78, 0x74, 0x61, 0x72, 0x65, 0x61, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x67, 0x61, 0x70, 0x2d, 0x32, 0x20, 0x67, 0x72, 0x69, 0x64, 0x20, 0x66, 0x6c, 0x65, 0x78, 0x20, 0x77, 0x2d, 0x66, 0x75, 0x6c, 0x6c, 0x22, 0x69, 0x64, 0x3d, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x3e, 0x3c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x77, 0x22, 0x69, 0x64, 0x3d, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x63, 0x6d, 0x64, 0x3e, 0x3c, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x20, 0x67, 0x72, 0x69, 0x64, 0x20, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x79, 0x2d, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x2d, 0x65, 0x6e, 0x64, 0x22, 0x69, 0x64, 0x3d, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3e, 0x53, 0x45, 0x4e, 0x44, 0x3c, 0x2f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x68, 0x31, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x6c, 0x65, 0x74, 0x20, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x60, 0x77, 0x73, 0x3a, 0x2f, 0x2f, 0x24, 0x7b, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x68, 0x6f, 0x73, 0x74, 0x7d, 0x2f, 0x77, 0x73, 0x60, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x74, 0x65, 0x78, 0x74, 0x41, 0x72, 0x65, 0x61, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x3d, 0x20, 0x5b, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x6f, 0x67, 0x6f, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x6c, 0x6f, 0x67, 0x6f, 0x22, 0x29, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, 0x29, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x22, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x57, 0x65, 0x62, 0x50, 0x61, 0x67, 0x65, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x29, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x22, 0x29, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x57, 0x65, 0x62, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x72, 0x61, 0x70, 0x4b, 0x65, 0x79, 0x50, 0x72, 0x65, 0x73, 0x73, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x3d, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x20, 0x3f, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x2e, 0x70, 0x61, 0x72, 0x73, 0x65, 0x28, 0x6a, 0x73, 0x6f, 0x6e, 0x29, 0x20, 0x3a, 0x20, 0x5b, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x57, 0x65, 0x62, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x28, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x28, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x73, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x28, 0x28, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x22, 0x5b, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5d, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x2e, 0x22, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x57, 0x65, 0x62, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x20, 0x33, 0x30, 0x30, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x22, 0x5b, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5d, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x2e, 0x2e, 0x22, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x20, 0x3d, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x57, 0x65, 0x62, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x28, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x6f, 0x6e, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x3d, 0x20, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x6f, 0x6e, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x20, 0x3d, 0x20, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x6f, 0x6e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x20, 0x3d, 0x20, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x6f, 0x6e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x29, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x22, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x22, 0x2c, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x72, 0x61, 0x70, 0x4b, 0x65, 0x79, 0x50, 0x72, 0x65, 0x73, 0x73, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x22, 0x29, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x22, 0x6b, 0x65, 0x79, 0x70, 0x72, 0x65, 0x73, 0x73, 0x22, 0x2c, 0x20, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x3d, 0x3d, 0x3d, 0x20, 0x22, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x29, 0x2e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x22, 0x6b, 0x65, 0x79, 0x64, 0x6f, 0x77, 0x6e, 0x22, 0x2c, 0x20, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x26, 0x26, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x69, 0x64, 0x20, 0x3d, 0x3d, 0x3d, 0x20, 0x27, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x27, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x3d, 0x3d, 0x3d, 0x20, 0x22, 0x41, 0x72, 0x72, 0x6f, 0x77, 0x55, 0x70, 0x22, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x2d, 0x2d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3c, 0x20, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x3e, 0x20, 0x30, 0x20, 0x3f, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x2d, 0x20, 0x31, 0x20, 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3e, 0x3d, 0x20, 0x30, 0x20, 0x26, 0x26, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3c, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x22, 0x29, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5b, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x5d, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x20, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x3d, 0x3d, 0x3d, 0x20, 0x22, 0x41, 0x72, 0x72, 0x6f, 0x77, 0x44, 0x6f, 0x77, 0x6e, 0x22, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x2b, 0x2b, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3e, 0x3d, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3e, 0x3d, 0x20, 0x30, 0x20, 0x26, 0x26, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3c, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x22, 0x29, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5b, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x6e, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x28, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x22, 0x5b, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5d, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x2e, 0x2e, 0x2e, 0x22, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x29, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x22, 0x29, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x28, 0x65, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x22, 0x5b, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5d, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x21, 0x22, 0x2c, 0x20, 0x65, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x28, 0x65, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x22, 0x5b, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5d, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x2e, 0x22, 0x2c, 0x20, 0x65, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3d, 0x3d, 0x20, 0x27, 0x70, 0x6f, 0x6e, 0x67, 0x27, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x28, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x72, 0x61, 0x77, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x44, 0x61, 0x74, 0x65, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x61, 0x77, 0x20, 0x3d, 0x20, 0x22, 0x5b, 0x22, 0x20, 0x2b, 0x20, 0x6e, 0x6f, 0x77, 0x2e, 0x74, 0x6f, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x29, 0x20, 0x2b, 0x20, 0x22, 0x5d, 0x20, 0x22, 0x20, 0x2b, 0x20, 0x72, 0x61, 0x77, 0x20, 0x2b, 0x20, 0x22, 0x5c, 0x6e, 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, 0x41, 0x72, 0x65, 0x61, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x2b, 0x3d, 0x20, 0x72, 0x61, 0x77, 0x20, 0x2b, 0x20, 0x22, 0x5c, 0x6e, 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x21, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, 0x41, 0x72, 0x65, 0x61, 0x2e, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x54, 0x6f, 0x70, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x74, 0x41, 0x72, 0x65, 0x61, 0x2e, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, 0x41, 0x72, 0x65, 0x61, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, 0x41, 0x72, 0x65, 0x61, 0x2e, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x54, 0x6f, 0x70, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x74, 0x41, 0x72, 0x65, 0x61, 0x2e, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x63, 0x6d, 0x64, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x22, 0x29, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x27, 0x73, 0x65, 0x6e, 0x64, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x3a, 0x20, 0x27, 0x2c, 0x20, 0x63, 0x6d, 0x64, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x73, 0x65, 0x6e, 0x64, 0x28, 0x63, 0x6d, 0x64, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x63, 0x6d, 0x64, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x27, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x27, 0x2c, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x3e, 0x20, 0x32, 0x30, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x27, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x27, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x30, 0x2c, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x2d, 0x20, 0x32, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x27, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x27, 0x2c, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x22, 0x29, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x3d, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x2e, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x69, 0x66, 0x79, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x28, 0x28, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x21, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x20, 0x26, 0x26, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x3d, 0x20, 0x57, 0x65, 0x62, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x4f, 0x50, 0x45, 0x4e, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x73, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x28, 0x28, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x22, 0x5b, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5d, 0x20, 0x50, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x2e, 0x22, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x57, 0x65, 0x62, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x20, 0x33, 0x30, 0x30, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x73, 0x65, 0x6e, 0x64, 0x28, 0x22, 0x70, 0x69, 0x6e, 0x67, 0x22, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x20, 0x32, 0x30, 0x30, 0x30, 0x29, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x22, 0x44, 0x4f, 0x4d, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x22, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x57, 0x65, 0x62, 0x50, 0x61, 0x67, 0x65, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e +}; +#endif \ No newline at end of file diff --git a/src/main.cpp b/src/main.cpp index 46dc1b1..24505f5 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -45,13 +45,6 @@ bool nuki_hub_https_server_enabled = false; #include "NimBLEDevice.h" #include "ImportExport.h" -/* -#ifdef DEBUG_NUKIHUB -#include -#include -#endif -*/ - NukiNetworkLock* networkLock = nullptr; NukiNetworkOpener* networkOpener = nullptr; BleScanner::Scanner* bleScanner = nullptr; @@ -94,6 +87,8 @@ char log_print_buffer[1024]; PsychicHttpServer* psychicServer = nullptr; PsychicHttpServer* psychicServerRedirect = nullptr; PsychicHttpsServer* psychicSSLServer = nullptr; +PsychicWebSocketHandler* websocketHandler = nullptr; + NukiNetwork* network = nullptr; WebCfgServer* webCfgServer = nullptr; WebCfgServer* webCfgServerSSL = nullptr; @@ -118,6 +113,7 @@ bool webSSLStarted = false; bool lockStarted = false; bool openerStarted = false; bool bleScannerStarted = false; +bool webSerialEnabled = false; uint8_t partitionType = -1; int lastHTTPeventId = -1; @@ -260,13 +256,17 @@ void cbSyncTime(struct timeval *tv) { void startWebServer() { bool failed = true; - - if (!nuki_hub_https_server_enabled) { + + webSerialEnabled = preferences->getBool(preference_webserial_enabled, false); + + if (!nuki_hub_https_server_enabled) + { Log->println("Not running on PSRAM enabled device"); } else { - if (!SPIFFS.begin(true)) { + if (!SPIFFS.begin(true)) + { Log->println("SPIFFS Mount Failed"); } else @@ -286,7 +286,8 @@ void startWebServer() cert[filesize] = '\0'; File file2 = SPIFFS.open("/http_ssl.key"); - if (!file2 || file2.isDirectory()) { + if (!file2 || file2.isDirectory()) + { Log->println("http_ssl.key not found"); } else @@ -602,6 +603,15 @@ void networkTask(void *pvParameters) } else { + if(connected && webSerialEnabled && (webSSLStarted || webStarted)) + { + webCfgServerSSL->updateWebSerial(); + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(50 / portTICK_PERIOD_MS); + } + if(connected && lockStarted) { rebootLock = networkLock->update(); @@ -1304,9 +1314,6 @@ void setup() Log->print("Nuki Hub build "); Log->println(NUKI_HUB_BUILD); - Log->println(preferences->getString(preference_cred_user)); - Log->println(preferences->getString(preference_cred_password)); - uint32_t devIdOpener = preferences->getUInt(preference_device_id_opener); deviceIdLock = new NukiDeviceId(preferences, preference_device_id_lock); @@ -1380,18 +1387,6 @@ void setup() { startWebServer(); } - /* -#ifdef DEBUG_NUKIHUB - else psychicServer->onNotFound([](PsychicRequest* request) { return request->redirect("/webserial"); }); - - if(preferences->getBool(preference_webserial_enabled, false)) - { - WebSerial.setAuthentication(preferences->getString(preference_cred_user), preferences->getString(preference_cred_password)); - WebSerial.begin(psychicServer); - WebSerial.setBuffer(1024); - } -#endif - */ } #endif diff --git a/src/networkDevices/WifiDevice.cpp b/src/networkDevices/WifiDevice.cpp index e96ce11..4f1ff93 100644 --- a/src/networkDevices/WifiDevice.cpp +++ b/src/networkDevices/WifiDevice.cpp @@ -37,14 +37,22 @@ void WifiDevice::initialize() { Log->println(String("Attempting to connect to saved SSID ") + String(ssid)); _openAP = false; + if(_preferences->getBool(preference_find_best_rssi, false)) + { + scan(false, true); + } + else + { + WiFi.mode(WIFI_STA); + connect(); + } } else { Log->println("No SSID or Wifi password saved, opening AP"); _openAP = true; + scan(false, true); } - - scan(false, true); } else { @@ -133,6 +141,15 @@ void WifiDevice::openAP() bool WifiDevice::connect() { + int loop = 0; + while (!_wifiClientStarted && loop < 50) { + if (esp_task_wdt_status(NULL) == ESP_OK) { + esp_task_wdt_reset(); + } + vTaskDelay(100 / portTICK_PERIOD_MS); + loop++; + } + int bestConnection = -1; if(_preferences->getBool(preference_find_best_rssi, false)) @@ -180,10 +197,17 @@ bool WifiDevice::connect() WiFi.config(_ipConfiguration->ipAddress(), _ipConfiguration->dnsServer(), _ipConfiguration->defaultGateway(), _ipConfiguration->subnet()); } - WiFi.begin(ssid, pass); + if (bestConnection == -1) + { + WiFi.begin(ssid, pass); + } + else + { + WiFi.begin(ssid, pass, WiFi.channel(bestConnection), WiFi.BSSID(bestConnection), 1); + } Log->print("WiFi connecting"); - int loop = 0; + loop = 0; while(!isConnected() && loop < 600) { Log->print("."); From 3480e1a94f1cd8cd0f0d360c50271870798d4dcc Mon Sep 17 00:00:00 2001 From: iranl Date: Wed, 2 Jul 2025 21:24:17 +0200 Subject: [PATCH 21/30] BLE improvements --- lib/nuki_ble | 2 +- src/Config.h | 2 +- src/WebCfgServer.cpp | 9 +++++++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/nuki_ble b/lib/nuki_ble index c54698d..98872d9 160000 --- a/lib/nuki_ble +++ b/lib/nuki_ble @@ -1 +1 @@ -Subproject commit c54698d31d6747df166fc522145862e9560eb0d5 +Subproject commit 98872d9004118f1ba2cb3685a30863eb19930cda diff --git a/src/Config.h b/src/Config.h index d0b4819..1efa486 100644 --- a/src/Config.h +++ b/src/Config.h @@ -5,7 +5,7 @@ #define NUKI_HUB_VERSION "9.12" #define NUKI_HUB_VERSION_INT (uint32_t)912 #define NUKI_HUB_BUILD "unknownbuildnr" -#define NUKI_HUB_DATE "2025-06-30" +#define NUKI_HUB_DATE "2025-07-02" #define GITHUB_LATEST_RELEASE_URL (char*)"https://github.com/technyon/nuki_hub/releases/latest" #define GITHUB_OTA_MANIFEST_URL (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/manifest.json" diff --git a/src/WebCfgServer.cpp b/src/WebCfgServer.cpp index 1cd5ddc..993ebb4 100644 --- a/src/WebCfgServer.cpp +++ b/src/WebCfgServer.cpp @@ -128,8 +128,13 @@ bool WebCfgServer::isAuthenticated(PsychicRequest *request, int type) { struct timeval time; gettimeofday(&time, NULL); - int64_t time_us = (int64_t)time.tv_sec * 1000000L + (int64_t)time.tv_usec; - + int64_t time_us = 0; + + if (timeSynced) + { + time_us = (int64_t)time.tv_sec * 1000000L + (int64_t)time.tv_usec; + } + if ((type == 0 && _httpSessions[cookie].as() > time_us) || (type == 1 && _importExport->_duoSessions[cookie].as() > time_us) || (type == 2 && _importExport->_totpSessions[cookie].as() > time_us) || (type == 3 && _importExport->_bypassSessions[cookie].as() > time_us)) { return true; From 5c3a683a75d999546a748134a561dc29a4786d90 Mon Sep 17 00:00:00 2001 From: iranl Date: Thu, 3 Jul 2025 21:29:31 +0200 Subject: [PATCH 22/30] Webserver improvements --- resources/style.css | 226 ++++++------ src/Config.h | 2 +- src/WebCfgServer.cpp | 25 +- src/WebCfgServerConstants.h | 668 +++++++++++++++++++++++++++++++++--- 4 files changed, 758 insertions(+), 163 deletions(-) diff --git a/resources/style.css b/resources/style.css index 0c296d2..dd419d5 100644 --- a/resources/style.css +++ b/resources/style.css @@ -11,32 +11,32 @@ source: https://cdn.jsdelivr.net/npm/@exampledev/new.css@1.1.2/new.min.css */ :root { - --nc-font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; - --nc-font-mono: Consolas, monaco, 'Ubuntu Mono', 'Liberation Mono', 'Courier New', Courier, monospace; - --nc-tx-1: #000000; - --nc-tx-2: #1A1A1A; - --nc-bg-1: #FFFFFF; - --nc-bg-2: #F6F8FA; - --nc-bg-3: #E5E7EB; - --nc-lk-1: #0070F3; - --nc-lk-2: #0366D6; - --nc-lk-tx: #FFFFFF; - --nc-ac-1: #79FFE1; - --nc-ac-tx: #0C4047 + --nc-font-sans: 'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol'; + --nc-font-mono: Consolas,monaco,'Ubuntu Mono','Liberation Mono','Courier New',Courier,monospace; + --nc-tx-1: #000; + --nc-tx-2: #1a1a1a; + --nc-bg-1: #fff; + --nc-bg-2: #f6f8fa; + --nc-bg-3: #e5e7eb; + --nc-lk-1: #0070f3; + --nc-lk-2: #0366d6; + --nc-lk-tx: #fff; + --nc-ac-1: #79ffe1; + --nc-ac-tx: #0c4047 } -@media (prefers-color-scheme:dark) { +@media(prefers-color-scheme: dark) { :root { - --nc-tx-1: #ffffff; - --nc-tx-2: #eeeeee; - --nc-bg-1: #000000; - --nc-bg-2: #111111; - --nc-bg-3: #222222; - --nc-lk-1: #3291FF; - --nc-lk-2: #0070F3; - --nc-lk-tx: #FFFFFF; - --nc-ac-1: #7928CA; - --nc-ac-tx: #FFFFFF + --nc-tx-1:#fff; + --nc-tx-2: #eee; + --nc-bg-1: #000; + --nc-bg-2: #111; + --nc-bg-3: #222; + --nc-lk-1: #3291ff; + --nc-lk-2: #0070f3; + --nc-lk-tx: #fff; + --nc-ac-1: #7928ca; + --nc-ac-tx: #fff } } @@ -45,20 +45,11 @@ source: https://cdn.jsdelivr.net/npm/@exampledev/new.css@1.1.2/new.min.css padding: 0 } -img, -input, -option, -p, -table, -textarea, -ul { +img,input,option,p,table,textarea,ul { margin-bottom: 1rem } -button, -html, -input, -select { +button,html,input,select { font-family: var(--nc-font-sans) } @@ -81,39 +72,64 @@ body { color: var(--nc-ac-tx) } -h1, h2, h3, h4, h5, h6 { +h1,h2,h3,h4,h5,h6 { line-height: 1; color: var(--nc-tx-1); padding-top: .875rem } -h1, h2, h3 { +h1,h2,h3 { color: var(--nc-tx-1); padding-bottom: 2px; margin-bottom: 8px; border-bottom: 1px solid var(--nc-bg-2) } -h4, h5, h6 { +h4,h5,h6 { margin-bottom: .3rem } -h1 { font-size: 2.25rem } -h2 { font-size: 1.85rem } -h3 { font-size: 1.55rem } -h4 { font-size: 1.25rem } -h5 { font-size: 1rem } -h6 { font-size: .875rem } -a { color: var(--nc-lk-1) } -a:hover { color: var(--nc-lk-2) !important; } -abbr { cursor: help } -abbr:hover { cursor: help } +h1 { + font-size: 2.25rem +} -a button, -button, -input[type=button], -input[type=reset], -input[type=submit] { +h2 { + font-size: 1.85rem +} + +h3 { + font-size: 1.55rem +} + +h4 { + font-size: 1.25rem +} + +h5 { + font-size: 1rem +} + +h6 { + font-size: .875rem +} + +a { + color: var(--nc-lk-1) +} + +a:hover { + color: var(--nc-lk-2) !important; +} + +abbr { + cursor: help +} + +abbr:hover { + cursor: help +} + +a button,button,input[type=button],input[type=reset],input[type=submit] { font-size: 1rem; display: inline-block; padding: 6px 12px; @@ -129,26 +145,13 @@ input[type=submit] { color: var(--nc-lk-tx) } -a button[disabled], -button[disabled], -input[type=button][disabled], -input[type=reset][disabled], -input[type=submit][disabled] { +a button[disabled],button[disabled],input[type=button][disabled],input[type=reset][disabled],input[type=submit][disabled] { cursor: default; opacity: .5; cursor: not-allowed } -.button:focus, -.button:hover, -button:focus, -button:hover, -input[type=button]:focus, -input[type=button]:hover, -input[type=reset]:focus, -input[type=reset]:hover, -input[type=submit]:focus, -input[type=submit]:hover { +.button:focus,.button:hover,button:focus,button:hover,input[type=button]:focus,input[type=button]:hover,input[type=reset]:focus,input[type=reset]:hover,input[type=submit]:focus,input[type=submit]:hover { background: var(--nc-lk-2) } @@ -157,18 +160,25 @@ table { width: 100% } -td, th { +td,th { border: 1px solid var(--nc-bg-3); text-align: left; padding: .5rem } -th { background: var(--nc-bg-2) } -tr:nth-child(even) { background: var(--nc-bg-2) } +th { + background: var(--nc-bg-2) +} -textarea { max-width: 100% } +tr:nth-child(even) { + background: var(--nc-bg-2) +} -input, select, textarea { +textarea { + max-width: 100% +} + +input,select,textarea { padding: 6px 12px; margin-bottom: .5rem; background: var(--nc-bg-2); @@ -179,50 +189,57 @@ input, select, textarea { box-sizing: border-box } -img { max-width: 100% } +img { + max-width: 100% +} td>input { - margin-top: 0px; - margin-bottom: 0px + margin-top: 0; + margin-bottom: 0 } td>textarea { - margin-top: 0px; - margin-bottom: 0px + margin-top: 0; + margin-bottom: 0 } td>select { - margin-top: 0px; - margin-bottom: 0px + margin-top: 0; + margin-bottom: 0 } .warning { - color: #f00; + color: red } @media only screen and (max-width: 600px) { - .adapt td { display: block; } + .adapt td { + display:block + } - .adapt input[type=text], - .adapt input[type=password], - .adapt input[type=submit], - .adapt textarea, - .adapt select { width: 100%; } + .adapt input[type=text],.adapt input[type=password],.adapt input[type=submit],.adapt textarea,.adapt select { + width: 100% + } .adapt td:has(input[type=checkbox]) { - text-align: center; + text-align: center } .adapt input[type=checkbox] { width: 1.5em; - height: 1.5em; + height: 1.5em } - .adapt table td:first-child { border-bottom: 0; } - .adapt table td:last-child { border-top: 0; } + .adapt table td:first-child { + border-bottom: 0 + } + + .adapt table td:last-child { + border-top: 0 + } #tblnav a li>span { - max-width: 140px; + max-width: 140px } } @@ -236,32 +253,31 @@ td>select { line-height: 1; color: var(--nc-tx-1); text-decoration: none; - - background: linear-gradient(to left, transparent 50%, rgba(255,255,255,0.4) 50%) right; + background: linear-gradient(to left,transparent 50%,rgba(255,255,255,0.4) 50%) right; background-size: 200% 100%; - transition:all .2s ease; + transition: all .2s ease } -#tblnav a:nth-child(even) { - background: linear-gradient(to left, var(--nc-bg-2) 50%, rgba(255,255,255,0.4) 50%) right; - background-size: 200% 100%; +#tblnav a { + background: linear-gradient(to left,var(--nc-bg-2) 50%,rgba(255,255,255,0.4) 50%) right; + background-size: 200% 100% } #tblnav a:hover { background-position: left; - transition:all .45s ease; + transition: all .45s ease } #tblnav a:active { background: var(--nc-lk-1); - transition:all .15s ease; + transition: all .15s ease } #tblnav a li { list-style: none; padding: .5rem; display: inline-block; - width: 100%; + width: 100% } #tblnav a li>span { @@ -271,10 +287,16 @@ td>select { color: #f70; font-weight: 100; font-style: italic; - display: block; + display: block } .tdbtn { text-align: center; - vertical-align: middle; + vertical-align: middle } + +.naventry { + float: left; + max-width: 375px; + width: 100% +} \ No newline at end of file diff --git a/src/Config.h b/src/Config.h index 1efa486..13adbae 100644 --- a/src/Config.h +++ b/src/Config.h @@ -5,7 +5,7 @@ #define NUKI_HUB_VERSION "9.12" #define NUKI_HUB_VERSION_INT (uint32_t)912 #define NUKI_HUB_BUILD "unknownbuildnr" -#define NUKI_HUB_DATE "2025-07-02" +#define NUKI_HUB_DATE "2025-07-03" #define GITHUB_LATEST_RELEASE_URL (char*)"https://github.com/technyon/nuki_hub/releases/latest" #define GITHUB_OTA_MANIFEST_URL (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/manifest.json" diff --git a/src/WebCfgServer.cpp b/src/WebCfgServer.cpp index 993ebb4..607542d 100644 --- a/src/WebCfgServer.cpp +++ b/src/WebCfgServer.cpp @@ -1730,23 +1730,32 @@ bool WebCfgServer::processWiFi(PsychicRequest *request, PsychicResponse* resp, S if (!_network->isConnected()) { - message = "Failed to connect to the given SSID with the given secret key, credentials not saved
"; + message = "Failed to connect to the given SSID, settings not saved
"; return res; } else { - if(_network->isConnected()) + message = "Connection successful. Rebooting Nuki Hub.
Please connect this device to the wireless network with the SSID " + + ssid + " or a wired/wireless connection that has access to the network of the selected SSID now
and navigate to Nuki Hub at "; + + if (_isSSL) { - message = "Connection successful. Rebooting Nuki Hub.
"; - _preferences->putString(preference_wifi_ssid, ssid); - _preferences->putString(preference_wifi_pass, pass); - res = true; + if (_preferences->getString(preference_https_fqdn, "") != "") + { + message += "
getString(preference_https_fqdn, "") + "\">https://" + _preferences->getString(preference_https_fqdn, "") + ""; + } + else + { + message += "localIP() + "\">https://" + _network->localIP() + ""; + } } else { - message = "Failed to connect to the given SSID, no IP received, credentials not saved
"; - return res; + message += "localIP() + "\">http://" + _network->localIP() + ""; } + _preferences->putString(preference_wifi_ssid, ssid); + _preferences->putString(preference_wifi_pass, pass); + res = true; } } else diff --git a/src/WebCfgServerConstants.h b/src/WebCfgServerConstants.h index bc6410b..1538f0e 100644 --- a/src/WebCfgServerConstants.h +++ b/src/WebCfgServerConstants.h @@ -7,62 +7,626 @@ const char stylecss[] = ":root{--nc-font-sans:'Inter',-apple-system,BlinkMacSyst // converted to char array by https://notisrac.github.io/FileToCArray/ const uint8_t favicon_32x32[] = { - 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, - 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x08, 0x06, 0x00, 0x00, 0x00, 0x73, 0x7a, 0x7a, - 0xf4, 0x00, 0x00, 0x02, 0xfb, 0x49, 0x44, 0x41, 0x54, 0x58, 0x47, 0xcd, 0x97, 0x4b, 0x4c, 0x53, - 0x41, 0x14, 0x86, 0xff, 0x69, 0xa5, 0x3c, 0x8a, 0x12, 0x14, 0x84, 0xa6, 0x96, 0x60, 0x6d, 0xd0, - 0x50, 0x14, 0x51, 0xd1, 0x6a, 0x4c, 0x51, 0x63, 0x88, 0x8a, 0x06, 0x63, 0x42, 0xc0, 0x85, 0x01, - 0xc3, 0xae, 0xe8, 0x0a, 0x0d, 0x4a, 0x30, 0x31, 0x18, 0xd1, 0x84, 0x18, 0x83, 0x46, 0x5d, 0xa9, - 0x09, 0xb8, 0x01, 0xa2, 0x31, 0x82, 0x31, 0x82, 0x6e, 0x48, 0x78, 0xb6, 0x74, 0xe1, 0x8b, 0x47, - 0xb0, 0x3e, 0x0a, 0xb4, 0x05, 0xa1, 0xe1, 0x25, 0x14, 0x68, 0xeb, 0x9d, 0x22, 0xb7, 0x40, 0x1f, - 0x1b, 0xef, 0xa5, 0xce, 0xea, 0xde, 0x99, 0xce, 0x39, 0xdf, 0xfc, 0x7f, 0x67, 0xee, 0x1c, 0xe2, - 0xbc, 0x0e, 0x81, 0xe3, 0x84, 0xba, 0x58, 0x40, 0x88, 0xc6, 0x09, 0x48, 0xb0, 0x0a, 0x8d, 0x00, - 0x26, 0x07, 0x71, 0x3e, 0x14, 0xd4, 0x37, 0x95, 0x11, 0x7b, 0x87, 0xba, 0x84, 0x10, 0x72, 0x63, - 0x15, 0xf2, 0x7a, 0xa4, 0x70, 0x12, 0xe7, 0x35, 0xe2, 0xe8, 0x48, 0x33, 0x81, 0x20, 0x36, 0x10, - 0x00, 0x4c, 0x4e, 0x33, 0x71, 0x68, 0xd3, 0x18, 0xe5, 0x03, 0xd7, 0xfe, 0x6f, 0x80, 0x86, 0xb6, - 0x51, 0xd4, 0xbe, 0x1b, 0x66, 0xe5, 0xd1, 0x64, 0x49, 0x91, 0xb2, 0x35, 0xdc, 0xaf, 0x5c, 0x25, - 0x8f, 0xbe, 0xc1, 0x36, 0xeb, 0x60, 0x7f, 0x93, 0x79, 0x28, 0x0a, 0x07, 0x93, 0x23, 0x7c, 0xce, - 0xf1, 0xab, 0xc0, 0x9d, 0x67, 0x46, 0x5c, 0xae, 0x30, 0xb0, 0x93, 0x93, 0xb6, 0x88, 0xa1, 0xad, - 0xdc, 0x85, 0x60, 0x91, 0xc0, 0x67, 0xc0, 0xc8, 0xc3, 0xcd, 0x18, 0x9b, 0x9c, 0x67, 0xc7, 0x2b, - 0x2e, 0x29, 0x70, 0x31, 0x5b, 0xca, 0x0d, 0x00, 0x8d, 0x72, 0xf5, 0x7c, 0x1c, 0x6e, 0x6a, 0x36, - 0xfb, 0x0c, 0xb8, 0xe1, 0x48, 0x33, 0xac, 0x13, 0x3c, 0x02, 0xac, 0x11, 0x12, 0xb4, 0x3c, 0x49, - 0xc1, 0x9e, 0xc4, 0xb5, 0x5e, 0x21, 0xa2, 0x8f, 0xb6, 0x60, 0x64, 0x6c, 0x8e, 0x3f, 0x05, 0x68, - 0x64, 0xa5, 0x5c, 0x0c, 0x5d, 0x95, 0x77, 0x2b, 0x62, 0xd2, 0x5b, 0x30, 0x6c, 0xe5, 0x19, 0xc0, - 0x9f, 0x15, 0x92, 0x63, 0xad, 0xb0, 0x8c, 0xcc, 0xf2, 0xab, 0x00, 0x8d, 0x4e, 0xad, 0x68, 0x66, - 0xac, 0x48, 0x5d, 0x61, 0xc5, 0xa6, 0xe3, 0xad, 0x18, 0xfc, 0xc5, 0x13, 0xc0, 0x3a, 0xb1, 0x10, - 0xe3, 0x53, 0x76, 0x76, 0x75, 0x4a, 0x79, 0x18, 0x63, 0xc5, 0xee, 0x65, 0xbb, 0x22, 0x2e, 0xa3, - 0x0d, 0xfd, 0x43, 0x36, 0x7e, 0x14, 0x50, 0xa7, 0x44, 0xb8, 0x92, 0x35, 0xb6, 0x5b, 0xd9, 0x04, - 0x57, 0xf2, 0x64, 0x28, 0x2b, 0x90, 0xb3, 0xef, 0xf1, 0xa7, 0xda, 0xf0, 0xd3, 0xcc, 0x13, 0x00, - 0x3d, 0x84, 0x6a, 0x6e, 0x27, 0x62, 0x47, 0x8e, 0x0e, 0xd3, 0xb6, 0x85, 0xc3, 0xc6, 0x65, 0xc5, - 0x63, 0xc6, 0x0a, 0xe5, 0xc2, 0xae, 0x90, 0x67, 0xb6, 0xe3, 0xfb, 0xe0, 0x0c, 0x3f, 0x0a, 0x50, - 0xc9, 0x3f, 0x56, 0xa7, 0xa2, 0xbc, 0xd2, 0x88, 0xa2, 0xfb, 0xee, 0x03, 0x2a, 0xf1, 0xaf, 0x15, - 0x21, 0x8c, 0x3a, 0x8a, 0xd3, 0xed, 0x30, 0x0c, 0xf0, 0x04, 0xb0, 0x2d, 0x3e, 0x0c, 0x5f, 0x6a, - 0x53, 0x31, 0x6f, 0x77, 0x42, 0x95, 0xab, 0x87, 0xbe, 0x67, 0x92, 0x5d, 0x69, 0x51, 0xae, 0x0c, - 0xb7, 0x2e, 0xc8, 0x91, 0x70, 0xa6, 0x03, 0x7d, 0xc6, 0x69, 0x7e, 0x14, 0x48, 0x88, 0x0b, 0x45, - 0xf7, 0xf3, 0xbd, 0xae, 0xe0, 0xfa, 0xee, 0x49, 0xa8, 0xf2, 0xf4, 0x2e, 0x18, 0xda, 0x84, 0x02, - 0xba, 0x2b, 0x76, 0x22, 0xbf, 0xb4, 0x17, 0x9f, 0x0d, 0x53, 0xfc, 0x00, 0x28, 0x64, 0xa1, 0xe8, - 0x7d, 0xb1, 0x00, 0x40, 0x5b, 0xd1, 0x3d, 0x03, 0xca, 0xab, 0x8c, 0xec, 0xfb, 0x76, 0x85, 0x18, - 0xa2, 0x20, 0x01, 0x3a, 0xbb, 0x26, 0xf8, 0x01, 0x90, 0x4b, 0x43, 0xd0, 0xf7, 0x72, 0x1f, 0x1b, - 0xfc, 0xf7, 0x8c, 0x1d, 0xc9, 0x67, 0x3b, 0xf1, 0xb5, 0xdf, 0x2d, 0x39, 0x23, 0x04, 0x1c, 0x4b, - 0x6e, 0x18, 0x9c, 0x7e, 0x8c, 0xe2, 0x25, 0x21, 0x30, 0xbc, 0x72, 0x03, 0x50, 0x92, 0xf7, 0x5a, - 0x2b, 0xd2, 0x35, 0x1f, 0xe0, 0xeb, 0x56, 0xc3, 0x29, 0x80, 0x2c, 0x36, 0x18, 0x3f, 0xea, 0x54, - 0xac, 0x02, 0x8b, 0x0f, 0xf9, 0xa5, 0x3d, 0x78, 0x5a, 0x67, 0xf6, 0xe8, 0xa7, 0x1d, 0x9c, 0x02, - 0x48, 0x37, 0x06, 0xc3, 0xf8, 0xda, 0x13, 0x60, 0x74, 0x7c, 0x0e, 0xca, 0x2c, 0x1d, 0x2c, 0xa3, - 0xee, 0x23, 0x78, 0x91, 0x86, 0x53, 0x00, 0x49, 0x94, 0x08, 0x03, 0x6f, 0xf6, 0x7b, 0x5d, 0x69, - 0x4d, 0xe3, 0x10, 0x72, 0x8a, 0xbb, 0x3c, 0xc6, 0x38, 0x05, 0x88, 0x59, 0x2f, 0x82, 0xe9, 0xad, - 0x77, 0x00, 0x9a, 0x39, 0xb3, 0xf0, 0x13, 0xea, 0x9a, 0x46, 0x96, 0x41, 0x70, 0x0a, 0x10, 0x1d, - 0x19, 0x04, 0x4b, 0xc3, 0x01, 0xaf, 0x0a, 0xd0, 0xce, 0x7e, 0x8b, 0x0d, 0x49, 0xd9, 0xda, 0x65, - 0x1f, 0xac, 0x7f, 0x02, 0x58, 0x79, 0x29, 0x0d, 0x0f, 0x15, 0xe2, 0x6e, 0xa1, 0xc2, 0x27, 0x00, - 0x1d, 0xa8, 0x66, 0xac, 0xa8, 0x5f, 0xa2, 0xc2, 0xb9, 0x8c, 0x58, 0xa4, 0xab, 0x22, 0x7d, 0xce, - 0xf9, 0xbf, 0xaf, 0xe5, 0x7e, 0x97, 0xca, 0xd1, 0x20, 0x55, 0xc0, 0xc4, 0xc4, 0x0a, 0x5c, 0x69, - 0x66, 0xd7, 0x31, 0xc5, 0xa9, 0x33, 0x30, 0xc5, 0x29, 0xa1, 0xc5, 0xa9, 0xab, 0x3c, 0x3f, 0xa9, - 0x2e, 0x66, 0x20, 0x0a, 0x56, 0x51, 0x09, 0x33, 0x93, 0xfc, 0x01, 0xf3, 0x6f, 0x2d, 0xfb, 0x03, - 0xed, 0x06, 0xb0, 0xce, 0xb5, 0xc4, 0xb4, 0x59, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, + 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x08, 0x06, 0x00, 0x00, 0x00, 0x73, 0x7a, 0x7a, + 0xf4, 0x00, 0x00, 0x02, 0xfb, 0x49, 0x44, 0x41, 0x54, 0x58, 0x47, 0xcd, 0x97, 0x4b, 0x4c, 0x53, + 0x41, 0x14, 0x86, 0xff, 0x69, 0xa5, 0x3c, 0x8a, 0x12, 0x14, 0x84, 0xa6, 0x96, 0x60, 0x6d, 0xd0, + 0x50, 0x14, 0x51, 0xd1, 0x6a, 0x4c, 0x51, 0x63, 0x88, 0x8a, 0x06, 0x63, 0x42, 0xc0, 0x85, 0x01, + 0xc3, 0xae, 0xe8, 0x0a, 0x0d, 0x4a, 0x30, 0x31, 0x18, 0xd1, 0x84, 0x18, 0x83, 0x46, 0x5d, 0xa9, + 0x09, 0xb8, 0x01, 0xa2, 0x31, 0x82, 0x31, 0x82, 0x6e, 0x48, 0x78, 0xb6, 0x74, 0xe1, 0x8b, 0x47, + 0xb0, 0x3e, 0x0a, 0xb4, 0x05, 0xa1, 0xe1, 0x25, 0x14, 0x68, 0xeb, 0x9d, 0x22, 0xb7, 0x40, 0x1f, + 0x1b, 0xef, 0xa5, 0xce, 0xea, 0xde, 0x99, 0xce, 0x39, 0xdf, 0xfc, 0x7f, 0x67, 0xee, 0x1c, 0xe2, + 0xbc, 0x0e, 0x81, 0xe3, 0x84, 0xba, 0x58, 0x40, 0x88, 0xc6, 0x09, 0x48, 0xb0, 0x0a, 0x8d, 0x00, + 0x26, 0x07, 0x71, 0x3e, 0x14, 0xd4, 0x37, 0x95, 0x11, 0x7b, 0x87, 0xba, 0x84, 0x10, 0x72, 0x63, + 0x15, 0xf2, 0x7a, 0xa4, 0x70, 0x12, 0xe7, 0x35, 0xe2, 0xe8, 0x48, 0x33, 0x81, 0x20, 0x36, 0x10, + 0x00, 0x4c, 0x4e, 0x33, 0x71, 0x68, 0xd3, 0x18, 0xe5, 0x03, 0xd7, 0xfe, 0x6f, 0x80, 0x86, 0xb6, + 0x51, 0xd4, 0xbe, 0x1b, 0x66, 0xe5, 0xd1, 0x64, 0x49, 0x91, 0xb2, 0x35, 0xdc, 0xaf, 0x5c, 0x25, + 0x8f, 0xbe, 0xc1, 0x36, 0xeb, 0x60, 0x7f, 0x93, 0x79, 0x28, 0x0a, 0x07, 0x93, 0x23, 0x7c, 0xce, + 0xf1, 0xab, 0xc0, 0x9d, 0x67, 0x46, 0x5c, 0xae, 0x30, 0xb0, 0x93, 0x93, 0xb6, 0x88, 0xa1, 0xad, + 0xdc, 0x85, 0x60, 0x91, 0xc0, 0x67, 0xc0, 0xc8, 0xc3, 0xcd, 0x18, 0x9b, 0x9c, 0x67, 0xc7, 0x2b, + 0x2e, 0x29, 0x70, 0x31, 0x5b, 0xca, 0x0d, 0x00, 0x8d, 0x72, 0xf5, 0x7c, 0x1c, 0x6e, 0x6a, 0x36, + 0xfb, 0x0c, 0xb8, 0xe1, 0x48, 0x33, 0xac, 0x13, 0x3c, 0x02, 0xac, 0x11, 0x12, 0xb4, 0x3c, 0x49, + 0xc1, 0x9e, 0xc4, 0xb5, 0x5e, 0x21, 0xa2, 0x8f, 0xb6, 0x60, 0x64, 0x6c, 0x8e, 0x3f, 0x05, 0x68, + 0x64, 0xa5, 0x5c, 0x0c, 0x5d, 0x95, 0x77, 0x2b, 0x62, 0xd2, 0x5b, 0x30, 0x6c, 0xe5, 0x19, 0xc0, + 0x9f, 0x15, 0x92, 0x63, 0xad, 0xb0, 0x8c, 0xcc, 0xf2, 0xab, 0x00, 0x8d, 0x4e, 0xad, 0x68, 0x66, + 0xac, 0x48, 0x5d, 0x61, 0xc5, 0xa6, 0xe3, 0xad, 0x18, 0xfc, 0xc5, 0x13, 0xc0, 0x3a, 0xb1, 0x10, + 0xe3, 0x53, 0x76, 0x76, 0x75, 0x4a, 0x79, 0x18, 0x63, 0xc5, 0xee, 0x65, 0xbb, 0x22, 0x2e, 0xa3, + 0x0d, 0xfd, 0x43, 0x36, 0x7e, 0x14, 0x50, 0xa7, 0x44, 0xb8, 0x92, 0x35, 0xb6, 0x5b, 0xd9, 0x04, + 0x57, 0xf2, 0x64, 0x28, 0x2b, 0x90, 0xb3, 0xef, 0xf1, 0xa7, 0xda, 0xf0, 0xd3, 0xcc, 0x13, 0x00, + 0x3d, 0x84, 0x6a, 0x6e, 0x27, 0x62, 0x47, 0x8e, 0x0e, 0xd3, 0xb6, 0x85, 0xc3, 0xc6, 0x65, 0xc5, + 0x63, 0xc6, 0x0a, 0xe5, 0xc2, 0xae, 0x90, 0x67, 0xb6, 0xe3, 0xfb, 0xe0, 0x0c, 0x3f, 0x0a, 0x50, + 0xc9, 0x3f, 0x56, 0xa7, 0xa2, 0xbc, 0xd2, 0x88, 0xa2, 0xfb, 0xee, 0x03, 0x2a, 0xf1, 0xaf, 0x15, + 0x21, 0x8c, 0x3a, 0x8a, 0xd3, 0xed, 0x30, 0x0c, 0xf0, 0x04, 0xb0, 0x2d, 0x3e, 0x0c, 0x5f, 0x6a, + 0x53, 0x31, 0x6f, 0x77, 0x42, 0x95, 0xab, 0x87, 0xbe, 0x67, 0x92, 0x5d, 0x69, 0x51, 0xae, 0x0c, + 0xb7, 0x2e, 0xc8, 0x91, 0x70, 0xa6, 0x03, 0x7d, 0xc6, 0x69, 0x7e, 0x14, 0x48, 0x88, 0x0b, 0x45, + 0xf7, 0xf3, 0xbd, 0xae, 0xe0, 0xfa, 0xee, 0x49, 0xa8, 0xf2, 0xf4, 0x2e, 0x18, 0xda, 0x84, 0x02, + 0xba, 0x2b, 0x76, 0x22, 0xbf, 0xb4, 0x17, 0x9f, 0x0d, 0x53, 0xfc, 0x00, 0x28, 0x64, 0xa1, 0xe8, + 0x7d, 0xb1, 0x00, 0x40, 0x5b, 0xd1, 0x3d, 0x03, 0xca, 0xab, 0x8c, 0xec, 0xfb, 0x76, 0x85, 0x18, + 0xa2, 0x20, 0x01, 0x3a, 0xbb, 0x26, 0xf8, 0x01, 0x90, 0x4b, 0x43, 0xd0, 0xf7, 0x72, 0x1f, 0x1b, + 0xfc, 0xf7, 0x8c, 0x1d, 0xc9, 0x67, 0x3b, 0xf1, 0xb5, 0xdf, 0x2d, 0x39, 0x23, 0x04, 0x1c, 0x4b, + 0x6e, 0x18, 0x9c, 0x7e, 0x8c, 0xe2, 0x25, 0x21, 0x30, 0xbc, 0x72, 0x03, 0x50, 0x92, 0xf7, 0x5a, + 0x2b, 0xd2, 0x35, 0x1f, 0xe0, 0xeb, 0x56, 0xc3, 0x29, 0x80, 0x2c, 0x36, 0x18, 0x3f, 0xea, 0x54, + 0xac, 0x02, 0x8b, 0x0f, 0xf9, 0xa5, 0x3d, 0x78, 0x5a, 0x67, 0xf6, 0xe8, 0xa7, 0x1d, 0x9c, 0x02, + 0x48, 0x37, 0x06, 0xc3, 0xf8, 0xda, 0x13, 0x60, 0x74, 0x7c, 0x0e, 0xca, 0x2c, 0x1d, 0x2c, 0xa3, + 0xee, 0x23, 0x78, 0x91, 0x86, 0x53, 0x00, 0x49, 0x94, 0x08, 0x03, 0x6f, 0xf6, 0x7b, 0x5d, 0x69, + 0x4d, 0xe3, 0x10, 0x72, 0x8a, 0xbb, 0x3c, 0xc6, 0x38, 0x05, 0x88, 0x59, 0x2f, 0x82, 0xe9, 0xad, + 0x77, 0x00, 0x9a, 0x39, 0xb3, 0xf0, 0x13, 0xea, 0x9a, 0x46, 0x96, 0x41, 0x70, 0x0a, 0x10, 0x1d, + 0x19, 0x04, 0x4b, 0xc3, 0x01, 0xaf, 0x0a, 0xd0, 0xce, 0x7e, 0x8b, 0x0d, 0x49, 0xd9, 0xda, 0x65, + 0x1f, 0xac, 0x7f, 0x02, 0x58, 0x79, 0x29, 0x0d, 0x0f, 0x15, 0xe2, 0x6e, 0xa1, 0xc2, 0x27, 0x00, + 0x1d, 0xa8, 0x66, 0xac, 0xa8, 0x5f, 0xa2, 0xc2, 0xb9, 0x8c, 0x58, 0xa4, 0xab, 0x22, 0x7d, 0xce, + 0xf9, 0xbf, 0xaf, 0xe5, 0x7e, 0x97, 0xca, 0xd1, 0x20, 0x55, 0xc0, 0xc4, 0xc4, 0x0a, 0x5c, 0x69, + 0x66, 0xd7, 0x31, 0xc5, 0xa9, 0x33, 0x30, 0xc5, 0x29, 0xa1, 0xc5, 0xa9, 0xab, 0x3c, 0x3f, 0xa9, + 0x2e, 0x66, 0x20, 0x0a, 0x56, 0x51, 0x09, 0x33, 0x93, 0xfc, 0x01, 0xf3, 0x6f, 0x2d, 0xfb, 0x03, + 0xed, 0x06, 0xb0, 0xce, 0xb5, 0xc4, 0xb4, 0x59, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 }; #ifndef NUKI_HUB_UPDATER const uint8_t WEBSERIAL_HTML[] = { -0x3c, 0x21, 0x64, 0x6f, 0x63, 0x74, 0x79, 0x70, 0x65, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x3c, 0x6d, 0x65, 0x74, 0x61, 0x20, 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x3d, 0x75, 0x74, 0x66, 0x2d, 0x38, 0x3e, 0x3c, 0x6d, 0x65, 0x74, 0x61, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x49, 0x45, 0x3d, 0x65, 0x64, 0x67, 0x65, 0x22, 0x68, 0x74, 0x74, 0x70, 0x2d, 0x65, 0x71, 0x75, 0x69, 0x76, 0x3d, 0x58, 0x2d, 0x55, 0x41, 0x2d, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x3e, 0x3c, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0x57, 0x65, 0x62, 0x20, 0x43, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0x3c, 0x6d, 0x65, 0x74, 0x61, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2c, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x2d, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x3d, 0x31, 0x22, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x76, 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x3e, 0x3c, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3e, 0x64, 0x69, 0x76, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x7d, 0x61, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x2e, 0x34, 0x72, 0x65, 0x6d, 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x64, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x7d, 0x2a, 0x2c, 0x3a, 0x3a, 0x61, 0x66, 0x74, 0x65, 0x72, 0x2c, 0x3a, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x2d, 0x77, 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x3a, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x3b, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x3a, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x7d, 0x70, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x30, 0x20, 0x30, 0x20, 0x31, 0x72, 0x65, 0x6d, 0x7d, 0x62, 0x6f, 0x64, 0x79, 0x7b, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x2d, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x31, 0x30, 0x30, 0x25, 0x3b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, 0x30, 0x30, 0x25, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x30, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x30, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x3a, 0x2d, 0x61, 0x70, 0x70, 0x6c, 0x65, 0x2d, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2c, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2d, 0x75, 0x69, 0x2c, 0x42, 0x6c, 0x69, 0x6e, 0x6b, 0x4d, 0x61, 0x63, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x46, 0x6f, 0x6e, 0x74, 0x2c, 0x22, 0x53, 0x65, 0x67, 0x6f, 0x65, 0x20, 0x55, 0x49, 0x22, 0x2c, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x6f, 0x2c, 0x22, 0x48, 0x65, 0x6c, 0x76, 0x65, 0x74, 0x69, 0x63, 0x61, 0x20, 0x4e, 0x65, 0x75, 0x65, 0x22, 0x2c, 0x73, 0x61, 0x6e, 0x73, 0x2d, 0x73, 0x65, 0x72, 0x69, 0x66, 0x7d, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x7b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x7d, 0x2e, 0x67, 0x72, 0x61, 0x79, 0x7b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x36, 0x36, 0x37, 0x31, 0x38, 0x39, 0x7d, 0x2e, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x7b, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x3a, 0x64, 0x72, 0x6f, 0x70, 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x28, 0x30, 0x20, 0x34, 0x70, 0x78, 0x20, 0x33, 0x70, 0x78, 0x20, 0x72, 0x67, 0x62, 0x28, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x2f, 0x20, 0x2e, 0x30, 0x37, 0x29, 0x29, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x28, 0x30, 0x20, 0x32, 0x70, 0x78, 0x20, 0x32, 0x70, 0x78, 0x20, 0x72, 0x67, 0x62, 0x28, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x2f, 0x20, 0x2e, 0x30, 0x36, 0x29, 0x29, 0x7d, 0x2e, 0x77, 0x2d, 0x66, 0x75, 0x6c, 0x6c, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, 0x30, 0x30, 0x25, 0x7d, 0x2e, 0x67, 0x72, 0x69, 0x64, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x67, 0x72, 0x69, 0x64, 0x7d, 0x2e, 0x67, 0x61, 0x70, 0x2d, 0x32, 0x7b, 0x67, 0x61, 0x70, 0x3a, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x7d, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x66, 0x6c, 0x65, 0x78, 0x7d, 0x2e, 0x67, 0x72, 0x6f, 0x77, 0x7b, 0x66, 0x6c, 0x65, 0x78, 0x2d, 0x67, 0x72, 0x6f, 0x77, 0x3a, 0x31, 0x7d, 0x2e, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x79, 0x2d, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x2d, 0x65, 0x6e, 0x64, 0x7b, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x79, 0x2d, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x3a, 0x65, 0x6e, 0x64, 0x7d, 0x2e, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x7d, 0x2e, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x7b, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x3a, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x78, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x38, 0x66, 0x39, 0x66, 0x61, 0x7d, 0x2e, 0x6d, 0x61, 0x69, 0x6e, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x66, 0x6c, 0x65, 0x78, 0x3b, 0x66, 0x6c, 0x65, 0x78, 0x2d, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x3b, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x79, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x66, 0x6c, 0x65, 0x78, 0x2d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x3b, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x2d, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x3a, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x31, 0x30, 0x30, 0x64, 0x76, 0x68, 0x7d, 0x2e, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x2e, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x7b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3a, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x31, 0x72, 0x65, 0x6d, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x63, 0x61, 0x6c, 0x63, 0x28, 0x31, 0x30, 0x30, 0x25, 0x20, 0x2d, 0x20, 0x31, 0x72, 0x65, 0x6d, 0x29, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x32, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x7d, 0x2e, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x7b, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x3a, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x38, 0x70, 0x78, 0x20, 0x31, 0x30, 0x70, 0x78, 0x20, 0x38, 0x70, 0x78, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x3b, 0x6f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x30, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x30, 0x30, 0x36, 0x37, 0x66, 0x34, 0x7d, 0x2e, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x35, 0x61, 0x36, 0x31, 0x36, 0x39, 0x7d, 0x2e, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x23, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x7b, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x33, 0x2e, 0x32, 0x35, 0x72, 0x65, 0x6d, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x3b, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x3b, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x2d, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x7d, 0x23, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x7b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x3b, 0x74, 0x6f, 0x70, 0x3a, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x3b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x7d, 0x23, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x35, 0x61, 0x36, 0x31, 0x36, 0x39, 0x7d, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x20, 0x73, 0x70, 0x61, 0x6e, 0x7b, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x23, 0x66, 0x66, 0x65, 0x31, 0x34, 0x64, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x32, 0x70, 0x78, 0x20, 0x31, 0x30, 0x70, 0x78, 0x3b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x30, 0x30, 0x30, 0x7d, 0x2e, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x7b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x31, 0x72, 0x65, 0x6d, 0x20, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x7d, 0x2e, 0x63, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x7b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x31, 0x72, 0x65, 0x6d, 0x7d, 0x2e, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x7b, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x7d, 0x2e, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x7b, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x72, 0x69, 0x67, 0x68, 0x74, 0x7d, 0x3c, 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x3e, 0x3c, 0x68, 0x31, 0x20, 0x69, 0x64, 0x3d, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3e, 0x57, 0x65, 0x62, 0x20, 0x43, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x3c, 0x2f, 0x68, 0x31, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x2f, 0x20, 0x3e, 0x3c, 0x69, 0x6d, 0x67, 0x20, 0x69, 0x64, 0x3d, 0x6c, 0x6f, 0x67, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x3d, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x6f, 0x67, 0x6f, 0x28, 0x29, 0x20, 0x73, 0x72, 0x63, 0x3d, 0x2f, 0x6c, 0x6f, 0x67, 0x6f, 0x3e, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x20, 0x67, 0x72, 0x69, 0x64, 0x20, 0x67, 0x61, 0x70, 0x2d, 0x32, 0x20, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3e, 0x3c, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x22, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x3d, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x28, 0x29, 0x3e, 0x3c, 0x73, 0x76, 0x67, 0x20, 0x61, 0x72, 0x69, 0x61, 0x2d, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3d, 0x74, 0x72, 0x75, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x69, 0x63, 0x6f, 0x6e, 0x3d, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3d, 0x31, 0x65, 0x6d, 0x20, 0x76, 0x69, 0x65, 0x77, 0x42, 0x6f, 0x78, 0x3d, 0x22, 0x36, 0x34, 0x20, 0x36, 0x34, 0x20, 0x38, 0x39, 0x36, 0x20, 0x38, 0x39, 0x36, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x31, 0x65, 0x6d, 0x3e, 0x3c, 0x70, 0x61, 0x74, 0x68, 0x20, 0x64, 0x3d, 0x22, 0x4d, 0x38, 0x36, 0x34, 0x20, 0x32, 0x35, 0x36, 0x48, 0x37, 0x33, 0x36, 0x76, 0x2d, 0x38, 0x30, 0x63, 0x30, 0x2d, 0x33, 0x35, 0x2e, 0x33, 0x2d, 0x32, 0x38, 0x2e, 0x37, 0x2d, 0x36, 0x34, 0x2d, 0x36, 0x34, 0x2d, 0x36, 0x34, 0x48, 0x33, 0x35, 0x32, 0x63, 0x2d, 0x33, 0x35, 0x2e, 0x33, 0x20, 0x30, 0x2d, 0x36, 0x34, 0x20, 0x32, 0x38, 0x2e, 0x37, 0x2d, 0x36, 0x34, 0x20, 0x36, 0x34, 0x76, 0x38, 0x30, 0x48, 0x31, 0x36, 0x30, 0x63, 0x2d, 0x31, 0x37, 0x2e, 0x37, 0x20, 0x30, 0x2d, 0x33, 0x32, 0x20, 0x31, 0x34, 0x2e, 0x33, 0x2d, 0x33, 0x32, 0x20, 0x33, 0x32, 0x76, 0x33, 0x32, 0x63, 0x30, 0x20, 0x34, 0x2e, 0x34, 0x20, 0x33, 0x2e, 0x36, 0x20, 0x38, 0x20, 0x38, 0x20, 0x38, 0x68, 0x36, 0x30, 0x2e, 0x34, 0x6c, 0x32, 0x34, 0x2e, 0x37, 0x20, 0x35, 0x32, 0x33, 0x63, 0x31, 0x2e, 0x36, 0x20, 0x33, 0x34, 0x2e, 0x31, 0x20, 0x32, 0x39, 0x2e, 0x38, 0x20, 0x36, 0x31, 0x20, 0x36, 0x33, 0x2e, 0x39, 0x20, 0x36, 0x31, 0x68, 0x34, 0x35, 0x34, 0x63, 0x33, 0x34, 0x2e, 0x32, 0x20, 0x30, 0x20, 0x36, 0x32, 0x2e, 0x33, 0x2d, 0x32, 0x36, 0x2e, 0x38, 0x20, 0x36, 0x33, 0x2e, 0x39, 0x2d, 0x36, 0x31, 0x6c, 0x32, 0x34, 0x2e, 0x37, 0x2d, 0x35, 0x32, 0x33, 0x48, 0x38, 0x38, 0x38, 0x63, 0x34, 0x2e, 0x34, 0x20, 0x30, 0x20, 0x38, 0x2d, 0x33, 0x2e, 0x36, 0x20, 0x38, 0x2d, 0x38, 0x76, 0x2d, 0x33, 0x32, 0x63, 0x30, 0x2d, 0x31, 0x37, 0x2e, 0x37, 0x2d, 0x31, 0x34, 0x2e, 0x33, 0x2d, 0x33, 0x32, 0x2d, 0x33, 0x32, 0x2d, 0x33, 0x32, 0x7a, 0x6d, 0x2d, 0x32, 0x30, 0x30, 0x20, 0x30, 0x48, 0x33, 0x36, 0x30, 0x76, 0x2d, 0x37, 0x32, 0x68, 0x33, 0x30, 0x34, 0x76, 0x37, 0x32, 0x7a, 0x22, 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x74, 0x68, 0x3e, 0x3c, 0x2f, 0x73, 0x76, 0x67, 0x3e, 0x3c, 0x2f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3e, 0x20, 0x3c, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x22, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x3d, 0x22, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x3d, 0x21, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x22, 0x3e, 0x3c, 0x73, 0x76, 0x67, 0x20, 0x61, 0x72, 0x69, 0x61, 0x2d, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3d, 0x74, 0x72, 0x75, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x69, 0x63, 0x6f, 0x6e, 0x3d, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3d, 0x31, 0x65, 0x6d, 0x20, 0x76, 0x69, 0x65, 0x77, 0x42, 0x6f, 0x78, 0x3d, 0x22, 0x36, 0x34, 0x20, 0x36, 0x34, 0x20, 0x38, 0x39, 0x36, 0x20, 0x38, 0x39, 0x36, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x31, 0x65, 0x6d, 0x3e, 0x3c, 0x70, 0x61, 0x74, 0x68, 0x20, 0x64, 0x3d, 0x22, 0x4d, 0x38, 0x33, 0x32, 0x20, 0x34, 0x36, 0x34, 0x68, 0x2d, 0x36, 0x38, 0x56, 0x32, 0x34, 0x30, 0x63, 0x30, 0x2d, 0x37, 0x30, 0x2e, 0x37, 0x2d, 0x35, 0x37, 0x2e, 0x33, 0x2d, 0x31, 0x32, 0x38, 0x2d, 0x31, 0x32, 0x38, 0x2d, 0x31, 0x32, 0x38, 0x48, 0x33, 0x38, 0x38, 0x63, 0x2d, 0x37, 0x30, 0x2e, 0x37, 0x20, 0x30, 0x2d, 0x31, 0x32, 0x38, 0x20, 0x35, 0x37, 0x2e, 0x33, 0x2d, 0x31, 0x32, 0x38, 0x20, 0x31, 0x32, 0x38, 0x76, 0x32, 0x32, 0x34, 0x68, 0x2d, 0x36, 0x38, 0x63, 0x2d, 0x31, 0x37, 0x2e, 0x37, 0x20, 0x30, 0x2d, 0x33, 0x32, 0x20, 0x31, 0x34, 0x2e, 0x33, 0x2d, 0x33, 0x32, 0x20, 0x33, 0x32, 0x76, 0x33, 0x38, 0x34, 0x63, 0x30, 0x20, 0x31, 0x37, 0x2e, 0x37, 0x20, 0x31, 0x34, 0x2e, 0x33, 0x20, 0x33, 0x32, 0x20, 0x33, 0x32, 0x20, 0x33, 0x32, 0x68, 0x36, 0x34, 0x30, 0x63, 0x31, 0x37, 0x2e, 0x37, 0x20, 0x30, 0x20, 0x33, 0x32, 0x2d, 0x31, 0x34, 0x2e, 0x33, 0x20, 0x33, 0x32, 0x2d, 0x33, 0x32, 0x56, 0x34, 0x39, 0x36, 0x63, 0x30, 0x2d, 0x31, 0x37, 0x2e, 0x37, 0x2d, 0x31, 0x34, 0x2e, 0x33, 0x2d, 0x33, 0x32, 0x2d, 0x33, 0x32, 0x2d, 0x33, 0x32, 0x7a, 0x4d, 0x33, 0x33, 0x32, 0x20, 0x32, 0x34, 0x30, 0x63, 0x30, 0x2d, 0x33, 0x30, 0x2e, 0x39, 0x20, 0x32, 0x35, 0x2e, 0x31, 0x2d, 0x35, 0x36, 0x20, 0x35, 0x36, 0x2d, 0x35, 0x36, 0x68, 0x32, 0x34, 0x38, 0x63, 0x33, 0x30, 0x2e, 0x39, 0x20, 0x30, 0x20, 0x35, 0x36, 0x20, 0x32, 0x35, 0x2e, 0x31, 0x20, 0x35, 0x36, 0x20, 0x35, 0x36, 0x76, 0x32, 0x32, 0x34, 0x48, 0x33, 0x33, 0x32, 0x56, 0x32, 0x34, 0x30, 0x7a, 0x6d, 0x34, 0x36, 0x30, 0x20, 0x36, 0x30, 0x30, 0x48, 0x32, 0x33, 0x32, 0x56, 0x35, 0x33, 0x36, 0x68, 0x35, 0x36, 0x30, 0x76, 0x33, 0x30, 0x34, 0x7a, 0x4d, 0x34, 0x38, 0x34, 0x20, 0x37, 0x30, 0x31, 0x76, 0x35, 0x33, 0x63, 0x30, 0x20, 0x34, 0x2e, 0x34, 0x20, 0x33, 0x2e, 0x36, 0x20, 0x38, 0x20, 0x38, 0x20, 0x38, 0x68, 0x34, 0x30, 0x63, 0x34, 0x2e, 0x34, 0x20, 0x30, 0x20, 0x38, 0x2d, 0x33, 0x2e, 0x36, 0x20, 0x38, 0x2d, 0x38, 0x76, 0x2d, 0x35, 0x33, 0x61, 0x34, 0x38, 0x2e, 0x30, 0x31, 0x20, 0x34, 0x38, 0x2e, 0x30, 0x31, 0x20, 0x30, 0x20, 0x31, 0x30, 0x2d, 0x35, 0x36, 0x20, 0x30, 0x7a, 0x22, 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x74, 0x68, 0x3e, 0x3c, 0x2f, 0x73, 0x76, 0x67, 0x3e, 0x3c, 0x2f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3e, 0x20, 0x3c, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x22, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x3d, 0x22, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x3d, 0x21, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x3e, 0x3c, 0x73, 0x76, 0x67, 0x20, 0x61, 0x72, 0x69, 0x61, 0x2d, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3d, 0x74, 0x72, 0x75, 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x69, 0x63, 0x6f, 0x6e, 0x3d, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x2d, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3d, 0x31, 0x65, 0x6d, 0x20, 0x76, 0x69, 0x65, 0x77, 0x42, 0x6f, 0x78, 0x3d, 0x22, 0x36, 0x34, 0x20, 0x36, 0x34, 0x20, 0x38, 0x39, 0x36, 0x20, 0x38, 0x39, 0x36, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x31, 0x65, 0x6d, 0x3e, 0x3c, 0x70, 0x61, 0x74, 0x68, 0x20, 0x64, 0x3d, 0x22, 0x4d, 0x35, 0x31, 0x32, 0x20, 0x36, 0x34, 0x43, 0x32, 0x36, 0x34, 0x2e, 0x36, 0x20, 0x36, 0x34, 0x20, 0x36, 0x34, 0x20, 0x32, 0x36, 0x34, 0x2e, 0x36, 0x20, 0x36, 0x34, 0x20, 0x35, 0x31, 0x32, 0x73, 0x32, 0x30, 0x30, 0x2e, 0x36, 0x20, 0x34, 0x34, 0x38, 0x20, 0x34, 0x34, 0x38, 0x20, 0x34, 0x34, 0x38, 0x20, 0x34, 0x34, 0x38, 0x2d, 0x32, 0x30, 0x30, 0x2e, 0x36, 0x20, 0x34, 0x34, 0x38, 0x2d, 0x34, 0x34, 0x38, 0x53, 0x37, 0x35, 0x39, 0x2e, 0x34, 0x20, 0x36, 0x34, 0x20, 0x35, 0x31, 0x32, 0x20, 0x36, 0x34, 0x7a, 0x6d, 0x30, 0x20, 0x38, 0x32, 0x30, 0x63, 0x2d, 0x32, 0x30, 0x35, 0x2e, 0x34, 0x20, 0x30, 0x2d, 0x33, 0x37, 0x32, 0x2d, 0x31, 0x36, 0x36, 0x2e, 0x36, 0x2d, 0x33, 0x37, 0x32, 0x2d, 0x33, 0x37, 0x32, 0x73, 0x31, 0x36, 0x36, 0x2e, 0x36, 0x2d, 0x33, 0x37, 0x32, 0x20, 0x33, 0x37, 0x32, 0x2d, 0x33, 0x37, 0x32, 0x20, 0x33, 0x37, 0x32, 0x20, 0x31, 0x36, 0x36, 0x2e, 0x36, 0x20, 0x33, 0x37, 0x32, 0x20, 0x33, 0x37, 0x32, 0x2d, 0x31, 0x36, 0x36, 0x2e, 0x36, 0x20, 0x33, 0x37, 0x32, 0x2d, 0x33, 0x37, 0x32, 0x20, 0x33, 0x37, 0x32, 0x7a, 0x22, 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x74, 0x68, 0x3e, 0x3c, 0x70, 0x61, 0x74, 0x68, 0x20, 0x64, 0x3d, 0x22, 0x4d, 0x36, 0x38, 0x36, 0x2e, 0x37, 0x20, 0x36, 0x33, 0x38, 0x2e, 0x36, 0x4c, 0x35, 0x34, 0x34, 0x2e, 0x31, 0x20, 0x35, 0x33, 0x35, 0x2e, 0x35, 0x56, 0x32, 0x38, 0x38, 0x63, 0x30, 0x2d, 0x34, 0x2e, 0x34, 0x2d, 0x33, 0x2e, 0x36, 0x2d, 0x38, 0x2d, 0x38, 0x2d, 0x38, 0x48, 0x34, 0x38, 0x38, 0x63, 0x2d, 0x34, 0x2e, 0x34, 0x20, 0x30, 0x2d, 0x38, 0x20, 0x33, 0x2e, 0x36, 0x2d, 0x38, 0x20, 0x38, 0x76, 0x32, 0x37, 0x35, 0x2e, 0x34, 0x63, 0x30, 0x20, 0x32, 0x2e, 0x36, 0x20, 0x31, 0x2e, 0x32, 0x20, 0x35, 0x20, 0x33, 0x2e, 0x33, 0x20, 0x36, 0x2e, 0x35, 0x6c, 0x31, 0x36, 0x35, 0x2e, 0x34, 0x20, 0x31, 0x32, 0x30, 0x2e, 0x36, 0x63, 0x33, 0x2e, 0x36, 0x20, 0x32, 0x2e, 0x36, 0x20, 0x38, 0x2e, 0x36, 0x20, 0x31, 0x2e, 0x38, 0x20, 0x31, 0x31, 0x2e, 0x32, 0x2d, 0x31, 0x2e, 0x37, 0x6c, 0x32, 0x38, 0x2e, 0x36, 0x2d, 0x33, 0x39, 0x63, 0x32, 0x2e, 0x36, 0x2d, 0x33, 0x2e, 0x37, 0x20, 0x31, 0x2e, 0x38, 0x2d, 0x38, 0x2e, 0x37, 0x2d, 0x31, 0x2e, 0x38, 0x2d, 0x31, 0x31, 0x2e, 0x32, 0x7a, 0x22, 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x74, 0x68, 0x3e, 0x3c, 0x2f, 0x73, 0x76, 0x67, 0x3e, 0x3c, 0x2f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x74, 0x65, 0x78, 0x74, 0x61, 0x72, 0x65, 0x61, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x77, 0x2d, 0x66, 0x75, 0x6c, 0x6c, 0x22, 0x63, 0x6f, 0x6c, 0x73, 0x3d, 0x33, 0x30, 0x20, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, 0x69, 0x64, 0x3d, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x3d, 0x34, 0x30, 0x20, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3d, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x65, 0x78, 0x74, 0x61, 0x72, 0x65, 0x61, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x67, 0x61, 0x70, 0x2d, 0x32, 0x20, 0x67, 0x72, 0x69, 0x64, 0x20, 0x66, 0x6c, 0x65, 0x78, 0x20, 0x77, 0x2d, 0x66, 0x75, 0x6c, 0x6c, 0x22, 0x69, 0x64, 0x3d, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x3e, 0x3c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x67, 0x72, 0x6f, 0x77, 0x22, 0x69, 0x64, 0x3d, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x63, 0x6d, 0x64, 0x3e, 0x3c, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x20, 0x67, 0x72, 0x69, 0x64, 0x20, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x79, 0x2d, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x2d, 0x65, 0x6e, 0x64, 0x22, 0x69, 0x64, 0x3d, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3e, 0x53, 0x45, 0x4e, 0x44, 0x3c, 0x2f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x68, 0x31, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x6c, 0x65, 0x74, 0x20, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x60, 0x77, 0x73, 0x3a, 0x2f, 0x2f, 0x24, 0x7b, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x68, 0x6f, 0x73, 0x74, 0x7d, 0x2f, 0x77, 0x73, 0x60, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x74, 0x65, 0x78, 0x74, 0x41, 0x72, 0x65, 0x61, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x3d, 0x20, 0x5b, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x6f, 0x67, 0x6f, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x6c, 0x6f, 0x67, 0x6f, 0x22, 0x29, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, 0x29, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x2e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x22, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x57, 0x65, 0x62, 0x50, 0x61, 0x67, 0x65, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x29, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x22, 0x29, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x57, 0x65, 0x62, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x72, 0x61, 0x70, 0x4b, 0x65, 0x79, 0x50, 0x72, 0x65, 0x73, 0x73, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x20, 0x3d, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x3d, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x20, 0x3f, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x2e, 0x70, 0x61, 0x72, 0x73, 0x65, 0x28, 0x6a, 0x73, 0x6f, 0x6e, 0x29, 0x20, 0x3a, 0x20, 0x5b, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x57, 0x65, 0x62, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x28, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x28, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x73, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x28, 0x28, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x22, 0x5b, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5d, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x2e, 0x22, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x57, 0x65, 0x62, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x20, 0x33, 0x30, 0x30, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x22, 0x5b, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5d, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x2e, 0x2e, 0x22, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x20, 0x3d, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x57, 0x65, 0x62, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x28, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x6f, 0x6e, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x3d, 0x20, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x6f, 0x6e, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x20, 0x3d, 0x20, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x6f, 0x6e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x20, 0x3d, 0x20, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x6f, 0x6e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x29, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x22, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x22, 0x2c, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x72, 0x61, 0x70, 0x4b, 0x65, 0x79, 0x50, 0x72, 0x65, 0x73, 0x73, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x22, 0x29, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x22, 0x6b, 0x65, 0x79, 0x70, 0x72, 0x65, 0x73, 0x73, 0x22, 0x2c, 0x20, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x3d, 0x3d, 0x3d, 0x20, 0x22, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x29, 0x2e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x22, 0x6b, 0x65, 0x79, 0x64, 0x6f, 0x77, 0x6e, 0x22, 0x2c, 0x20, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x26, 0x26, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x69, 0x64, 0x20, 0x3d, 0x3d, 0x3d, 0x20, 0x27, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x27, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x3d, 0x3d, 0x3d, 0x20, 0x22, 0x41, 0x72, 0x72, 0x6f, 0x77, 0x55, 0x70, 0x22, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x2d, 0x2d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3c, 0x20, 0x30, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x3e, 0x20, 0x30, 0x20, 0x3f, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x2d, 0x20, 0x31, 0x20, 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3e, 0x3d, 0x20, 0x30, 0x20, 0x26, 0x26, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3c, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x22, 0x29, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5b, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x5d, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x20, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x3d, 0x3d, 0x3d, 0x20, 0x22, 0x41, 0x72, 0x72, 0x6f, 0x77, 0x44, 0x6f, 0x77, 0x6e, 0x22, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x2b, 0x2b, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3e, 0x3d, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3e, 0x3d, 0x20, 0x30, 0x20, 0x26, 0x26, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3c, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x22, 0x29, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5b, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x6e, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x28, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x22, 0x5b, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5d, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x2e, 0x2e, 0x2e, 0x22, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x29, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x22, 0x29, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x28, 0x65, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x22, 0x5b, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5d, 0x20, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x21, 0x22, 0x2c, 0x20, 0x65, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x28, 0x65, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x22, 0x5b, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5d, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x2e, 0x22, 0x2c, 0x20, 0x65, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3d, 0x3d, 0x20, 0x27, 0x70, 0x6f, 0x6e, 0x67, 0x27, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x28, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x72, 0x61, 0x77, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x44, 0x61, 0x74, 0x65, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x61, 0x77, 0x20, 0x3d, 0x20, 0x22, 0x5b, 0x22, 0x20, 0x2b, 0x20, 0x6e, 0x6f, 0x77, 0x2e, 0x74, 0x6f, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x29, 0x20, 0x2b, 0x20, 0x22, 0x5d, 0x20, 0x22, 0x20, 0x2b, 0x20, 0x72, 0x61, 0x77, 0x20, 0x2b, 0x20, 0x22, 0x5c, 0x6e, 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, 0x41, 0x72, 0x65, 0x61, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x2b, 0x3d, 0x20, 0x72, 0x61, 0x77, 0x20, 0x2b, 0x20, 0x22, 0x5c, 0x6e, 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x21, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, 0x41, 0x72, 0x65, 0x61, 0x2e, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x54, 0x6f, 0x70, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x74, 0x41, 0x72, 0x65, 0x61, 0x2e, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, 0x41, 0x72, 0x65, 0x61, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, 0x41, 0x72, 0x65, 0x61, 0x2e, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x54, 0x6f, 0x70, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x74, 0x41, 0x72, 0x65, 0x61, 0x2e, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x63, 0x6d, 0x64, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x22, 0x29, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x27, 0x73, 0x65, 0x6e, 0x64, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x3a, 0x20, 0x27, 0x2c, 0x20, 0x63, 0x6d, 0x64, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x73, 0x65, 0x6e, 0x64, 0x28, 0x63, 0x6d, 0x64, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x63, 0x6d, 0x64, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x27, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x27, 0x2c, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x3e, 0x20, 0x32, 0x30, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x27, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x27, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x73, 0x70, 0x6c, 0x69, 0x63, 0x65, 0x28, 0x30, 0x2c, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x2d, 0x20, 0x32, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x27, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x27, 0x2c, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x22, 0x29, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x3d, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x2e, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x69, 0x66, 0x79, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x28, 0x28, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x21, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x20, 0x26, 0x26, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x3d, 0x20, 0x57, 0x65, 0x62, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x4f, 0x50, 0x45, 0x4e, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x73, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x28, 0x28, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x22, 0x5b, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5d, 0x20, 0x50, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x2e, 0x22, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x57, 0x65, 0x62, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x20, 0x33, 0x30, 0x30, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x73, 0x65, 0x6e, 0x64, 0x28, 0x22, 0x70, 0x69, 0x6e, 0x67, 0x22, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x20, 0x32, 0x30, 0x30, 0x30, 0x29, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x22, 0x44, 0x4f, 0x4d, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x22, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x57, 0x65, 0x62, 0x50, 0x61, 0x67, 0x65, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e + 0x3c, 0x21, 0x64, 0x6f, 0x63, 0x74, 0x79, 0x70, 0x65, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x3c, 0x6d, + 0x65, 0x74, 0x61, 0x20, 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x3d, 0x75, 0x74, 0x66, 0x2d, + 0x38, 0x3e, 0x3c, 0x6d, 0x65, 0x74, 0x61, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, + 0x22, 0x49, 0x45, 0x3d, 0x65, 0x64, 0x67, 0x65, 0x22, 0x68, 0x74, 0x74, 0x70, 0x2d, 0x65, 0x71, + 0x75, 0x69, 0x76, 0x3d, 0x58, 0x2d, 0x55, 0x41, 0x2d, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, + 0x62, 0x6c, 0x65, 0x3e, 0x3c, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0x57, 0x65, 0x62, 0x20, 0x43, + 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0x3c, 0x6d, + 0x65, 0x74, 0x61, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3d, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2c, + 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x2d, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x3d, 0x31, 0x22, + 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x76, 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x3e, 0x3c, 0x73, + 0x74, 0x79, 0x6c, 0x65, 0x3e, 0x64, 0x69, 0x76, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x3a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x7d, 0x61, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, + 0x2e, 0x34, 0x72, 0x65, 0x6d, 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x64, 0x65, 0x63, 0x6f, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x7d, 0x2a, 0x2c, 0x3a, 0x3a, 0x61, + 0x66, 0x74, 0x65, 0x72, 0x2c, 0x3a, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x2d, 0x77, + 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, + 0x3a, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x3b, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x69, 0x7a, + 0x69, 0x6e, 0x67, 0x3a, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x7d, 0x70, 0x7b, 0x6d, 0x61, + 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x30, 0x20, 0x30, 0x20, 0x31, 0x72, 0x65, 0x6d, 0x7d, 0x62, 0x6f, + 0x64, 0x79, 0x7b, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x2d, 0x62, 0x65, + 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x31, 0x30, 0x30, 0x25, 0x3b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, 0x30, + 0x30, 0x25, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x30, 0x3b, 0x70, 0x61, 0x64, 0x64, + 0x69, 0x6e, 0x67, 0x3a, 0x30, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x3a, 0x2d, 0x61, 0x70, 0x70, 0x6c, 0x65, 0x2d, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2c, + 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2d, 0x75, 0x69, 0x2c, 0x42, 0x6c, 0x69, 0x6e, 0x6b, 0x4d, + 0x61, 0x63, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x46, 0x6f, 0x6e, 0x74, 0x2c, 0x22, 0x53, 0x65, + 0x67, 0x6f, 0x65, 0x20, 0x55, 0x49, 0x22, 0x2c, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x6f, 0x2c, 0x22, + 0x48, 0x65, 0x6c, 0x76, 0x65, 0x74, 0x69, 0x63, 0x61, 0x20, 0x4e, 0x65, 0x75, 0x65, 0x22, 0x2c, + 0x73, 0x61, 0x6e, 0x73, 0x2d, 0x73, 0x65, 0x72, 0x69, 0x66, 0x7d, 0x2e, 0x74, 0x65, 0x78, 0x74, + 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x7b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, 0x69, + 0x67, 0x6e, 0x3a, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x7d, 0x2e, 0x67, 0x72, 0x61, 0x79, 0x7b, + 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x36, 0x36, 0x37, 0x31, 0x38, 0x39, 0x7d, 0x2e, 0x73, + 0x68, 0x61, 0x64, 0x6f, 0x77, 0x7b, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x3a, 0x64, 0x72, 0x6f, + 0x70, 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x28, 0x30, 0x20, 0x34, 0x70, 0x78, 0x20, 0x33, + 0x70, 0x78, 0x20, 0x72, 0x67, 0x62, 0x28, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x2f, 0x20, 0x2e, + 0x30, 0x37, 0x29, 0x29, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, + 0x28, 0x30, 0x20, 0x32, 0x70, 0x78, 0x20, 0x32, 0x70, 0x78, 0x20, 0x72, 0x67, 0x62, 0x28, 0x30, + 0x20, 0x30, 0x20, 0x30, 0x20, 0x2f, 0x20, 0x2e, 0x30, 0x36, 0x29, 0x29, 0x7d, 0x2e, 0x77, 0x2d, + 0x66, 0x75, 0x6c, 0x6c, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, 0x30, 0x30, 0x25, 0x7d, + 0x2e, 0x67, 0x72, 0x69, 0x64, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x67, 0x72, + 0x69, 0x64, 0x7d, 0x2e, 0x67, 0x61, 0x70, 0x2d, 0x32, 0x7b, 0x67, 0x61, 0x70, 0x3a, 0x2e, 0x35, + 0x72, 0x65, 0x6d, 0x7d, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x3a, 0x66, 0x6c, 0x65, 0x78, 0x7d, 0x2e, 0x67, 0x72, 0x6f, 0x77, 0x7b, 0x66, 0x6c, 0x65, + 0x78, 0x2d, 0x67, 0x72, 0x6f, 0x77, 0x3a, 0x31, 0x7d, 0x2e, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, + 0x79, 0x2d, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x2d, 0x65, 0x6e, 0x64, 0x7b, 0x6a, 0x75, 0x73, 0x74, + 0x69, 0x66, 0x79, 0x2d, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x3a, 0x65, 0x6e, 0x64, 0x7d, 0x2e, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, + 0x64, 0x69, 0x75, 0x73, 0x3a, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x7d, 0x2e, 0x73, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x7b, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x3a, 0x62, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x78, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x38, 0x66, 0x39, + 0x66, 0x61, 0x7d, 0x2e, 0x6d, 0x61, 0x69, 0x6e, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x3a, 0x66, 0x6c, 0x65, 0x78, 0x3b, 0x66, 0x6c, 0x65, 0x78, 0x2d, 0x64, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x3b, 0x6a, 0x75, 0x73, 0x74, + 0x69, 0x66, 0x79, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x66, 0x6c, 0x65, 0x78, + 0x2d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x3b, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x2d, 0x69, 0x74, 0x65, + 0x6d, 0x73, 0x3a, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x3a, 0x31, 0x30, 0x30, 0x64, 0x76, 0x68, 0x7d, 0x2e, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x2e, 0x70, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x7b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x72, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x23, + 0x66, 0x66, 0x66, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x73, 0x74, 0x79, 0x6c, 0x65, + 0x3a, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x3a, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x31, 0x72, 0x65, 0x6d, 0x3b, 0x62, 0x61, 0x63, + 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, + 0x66, 0x66, 0x3b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x63, 0x61, 0x6c, 0x63, 0x28, 0x31, 0x30, + 0x30, 0x25, 0x20, 0x2d, 0x20, 0x31, 0x72, 0x65, 0x6d, 0x29, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, + 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x3b, 0x6d, 0x61, 0x72, 0x67, + 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x32, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x7d, 0x2e, 0x70, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x7b, 0x63, 0x75, 0x72, + 0x73, 0x6f, 0x72, 0x3a, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x70, 0x61, 0x64, 0x64, + 0x69, 0x6e, 0x67, 0x3a, 0x38, 0x70, 0x78, 0x20, 0x31, 0x30, 0x70, 0x78, 0x20, 0x38, 0x70, 0x78, + 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x6d, 0x65, 0x64, 0x69, 0x75, + 0x6d, 0x3b, 0x6f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3a, + 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x30, 0x3b, 0x63, 0x6f, + 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x30, 0x30, 0x36, 0x37, 0x66, + 0x34, 0x7d, 0x2e, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, + 0x3a, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x35, 0x61, 0x36, 0x31, + 0x36, 0x39, 0x7d, 0x2e, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x23, 0x72, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x7b, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x33, 0x2e, + 0x32, 0x35, 0x72, 0x65, 0x6d, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x2e, 0x35, + 0x72, 0x65, 0x6d, 0x3b, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x76, 0x65, 0x72, 0x74, 0x69, + 0x63, 0x61, 0x6c, 0x3b, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x2d, 0x62, + 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x7d, 0x23, 0x63, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x7b, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x3b, 0x74, + 0x6f, 0x70, 0x3a, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x3b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x2e, + 0x35, 0x72, 0x65, 0x6d, 0x7d, 0x23, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2d, 0x62, 0x75, + 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x7b, 0x62, 0x61, 0x63, 0x6b, + 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x35, 0x61, + 0x36, 0x31, 0x36, 0x39, 0x7d, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x20, 0x73, 0x70, 0x61, 0x6e, + 0x7b, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x3a, 0x6e, 0x6f, 0x6e, + 0x65, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x23, 0x66, 0x66, + 0x65, 0x31, 0x34, 0x64, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x32, 0x70, 0x78, + 0x20, 0x31, 0x30, 0x70, 0x78, 0x3b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x30, 0x30, 0x30, 0x7d, 0x2e, + 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x7b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x31, + 0x72, 0x65, 0x6d, 0x20, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x7d, + 0x2e, 0x63, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x7b, 0x70, 0x61, 0x64, 0x64, 0x69, + 0x6e, 0x67, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x31, 0x72, 0x65, 0x6d, 0x7d, 0x2e, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x7b, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x7d, 0x2e, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x2d, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x7b, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x72, 0x69, 0x67, 0x68, 0x74, 0x7d, 0x3c, + 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x3d, 0x22, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x74, 0x65, 0x78, 0x74, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x3e, 0x3c, 0x68, 0x31, + 0x20, 0x69, 0x64, 0x3d, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3e, 0x57, 0x65, 0x62, + 0x20, 0x43, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x3c, 0x2f, 0x68, 0x31, 0x3e, 0x3c, 0x61, 0x20, + 0x68, 0x72, 0x65, 0x66, 0x3d, 0x2f, 0x20, 0x3e, 0x3c, 0x69, 0x6d, 0x67, 0x20, 0x69, 0x64, 0x3d, + 0x6c, 0x6f, 0x67, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x3d, 0x72, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x4c, 0x6f, 0x67, 0x6f, 0x28, 0x29, 0x20, 0x73, 0x72, 0x63, 0x3d, 0x2f, 0x6c, + 0x6f, 0x67, 0x6f, 0x3e, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x3d, 0x22, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x20, 0x67, 0x72, 0x69, 0x64, 0x20, + 0x67, 0x61, 0x70, 0x2d, 0x32, 0x20, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0x3e, 0x3c, 0x64, + 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2d, 0x62, 0x75, + 0x74, 0x74, 0x6f, 0x6e, 0x3e, 0x3c, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x3d, 0x22, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x73, 0x68, 0x61, 0x64, + 0x6f, 0x77, 0x22, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x3d, 0x74, 0x65, 0x72, 0x6d, 0x69, + 0x6e, 0x61, 0x6c, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x28, 0x29, 0x3e, 0x3c, 0x73, 0x76, 0x67, 0x20, + 0x61, 0x72, 0x69, 0x61, 0x2d, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3d, 0x74, 0x72, 0x75, 0x65, + 0x20, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x69, 0x63, 0x6f, 0x6e, 0x3d, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x6f, + 0x6c, 0x6f, 0x72, 0x20, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x66, 0x61, + 0x6c, 0x73, 0x65, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3d, 0x31, 0x65, 0x6d, 0x20, 0x76, + 0x69, 0x65, 0x77, 0x42, 0x6f, 0x78, 0x3d, 0x22, 0x36, 0x34, 0x20, 0x36, 0x34, 0x20, 0x38, 0x39, + 0x36, 0x20, 0x38, 0x39, 0x36, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x31, 0x65, 0x6d, 0x3e, + 0x3c, 0x70, 0x61, 0x74, 0x68, 0x20, 0x64, 0x3d, 0x22, 0x4d, 0x38, 0x36, 0x34, 0x20, 0x32, 0x35, + 0x36, 0x48, 0x37, 0x33, 0x36, 0x76, 0x2d, 0x38, 0x30, 0x63, 0x30, 0x2d, 0x33, 0x35, 0x2e, 0x33, + 0x2d, 0x32, 0x38, 0x2e, 0x37, 0x2d, 0x36, 0x34, 0x2d, 0x36, 0x34, 0x2d, 0x36, 0x34, 0x48, 0x33, + 0x35, 0x32, 0x63, 0x2d, 0x33, 0x35, 0x2e, 0x33, 0x20, 0x30, 0x2d, 0x36, 0x34, 0x20, 0x32, 0x38, + 0x2e, 0x37, 0x2d, 0x36, 0x34, 0x20, 0x36, 0x34, 0x76, 0x38, 0x30, 0x48, 0x31, 0x36, 0x30, 0x63, + 0x2d, 0x31, 0x37, 0x2e, 0x37, 0x20, 0x30, 0x2d, 0x33, 0x32, 0x20, 0x31, 0x34, 0x2e, 0x33, 0x2d, + 0x33, 0x32, 0x20, 0x33, 0x32, 0x76, 0x33, 0x32, 0x63, 0x30, 0x20, 0x34, 0x2e, 0x34, 0x20, 0x33, + 0x2e, 0x36, 0x20, 0x38, 0x20, 0x38, 0x20, 0x38, 0x68, 0x36, 0x30, 0x2e, 0x34, 0x6c, 0x32, 0x34, + 0x2e, 0x37, 0x20, 0x35, 0x32, 0x33, 0x63, 0x31, 0x2e, 0x36, 0x20, 0x33, 0x34, 0x2e, 0x31, 0x20, + 0x32, 0x39, 0x2e, 0x38, 0x20, 0x36, 0x31, 0x20, 0x36, 0x33, 0x2e, 0x39, 0x20, 0x36, 0x31, 0x68, + 0x34, 0x35, 0x34, 0x63, 0x33, 0x34, 0x2e, 0x32, 0x20, 0x30, 0x20, 0x36, 0x32, 0x2e, 0x33, 0x2d, + 0x32, 0x36, 0x2e, 0x38, 0x20, 0x36, 0x33, 0x2e, 0x39, 0x2d, 0x36, 0x31, 0x6c, 0x32, 0x34, 0x2e, + 0x37, 0x2d, 0x35, 0x32, 0x33, 0x48, 0x38, 0x38, 0x38, 0x63, 0x34, 0x2e, 0x34, 0x20, 0x30, 0x20, + 0x38, 0x2d, 0x33, 0x2e, 0x36, 0x20, 0x38, 0x2d, 0x38, 0x76, 0x2d, 0x33, 0x32, 0x63, 0x30, 0x2d, + 0x31, 0x37, 0x2e, 0x37, 0x2d, 0x31, 0x34, 0x2e, 0x33, 0x2d, 0x33, 0x32, 0x2d, 0x33, 0x32, 0x2d, + 0x33, 0x32, 0x7a, 0x6d, 0x2d, 0x32, 0x30, 0x30, 0x20, 0x30, 0x48, 0x33, 0x36, 0x30, 0x76, 0x2d, + 0x37, 0x32, 0x68, 0x33, 0x30, 0x34, 0x76, 0x37, 0x32, 0x7a, 0x22, 0x3e, 0x3c, 0x2f, 0x70, 0x61, + 0x74, 0x68, 0x3e, 0x3c, 0x2f, 0x73, 0x76, 0x67, 0x3e, 0x3c, 0x2f, 0x62, 0x75, 0x74, 0x74, 0x6f, + 0x6e, 0x3e, 0x20, 0x3c, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x3d, 0x22, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, + 0x22, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x3d, 0x22, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x3d, 0x21, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x22, 0x3e, 0x3c, 0x73, 0x76, 0x67, 0x20, 0x61, + 0x72, 0x69, 0x61, 0x2d, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3d, 0x74, 0x72, 0x75, 0x65, 0x20, + 0x64, 0x61, 0x74, 0x61, 0x2d, 0x69, 0x63, 0x6f, 0x6e, 0x3d, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x66, + 0x69, 0x6c, 0x6c, 0x3d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, + 0x20, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x66, 0x61, 0x6c, 0x73, 0x65, + 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3d, 0x31, 0x65, 0x6d, 0x20, 0x76, 0x69, 0x65, 0x77, + 0x42, 0x6f, 0x78, 0x3d, 0x22, 0x36, 0x34, 0x20, 0x36, 0x34, 0x20, 0x38, 0x39, 0x36, 0x20, 0x38, + 0x39, 0x36, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x31, 0x65, 0x6d, 0x3e, 0x3c, 0x70, 0x61, + 0x74, 0x68, 0x20, 0x64, 0x3d, 0x22, 0x4d, 0x38, 0x33, 0x32, 0x20, 0x34, 0x36, 0x34, 0x68, 0x2d, + 0x36, 0x38, 0x56, 0x32, 0x34, 0x30, 0x63, 0x30, 0x2d, 0x37, 0x30, 0x2e, 0x37, 0x2d, 0x35, 0x37, + 0x2e, 0x33, 0x2d, 0x31, 0x32, 0x38, 0x2d, 0x31, 0x32, 0x38, 0x2d, 0x31, 0x32, 0x38, 0x48, 0x33, + 0x38, 0x38, 0x63, 0x2d, 0x37, 0x30, 0x2e, 0x37, 0x20, 0x30, 0x2d, 0x31, 0x32, 0x38, 0x20, 0x35, + 0x37, 0x2e, 0x33, 0x2d, 0x31, 0x32, 0x38, 0x20, 0x31, 0x32, 0x38, 0x76, 0x32, 0x32, 0x34, 0x68, + 0x2d, 0x36, 0x38, 0x63, 0x2d, 0x31, 0x37, 0x2e, 0x37, 0x20, 0x30, 0x2d, 0x33, 0x32, 0x20, 0x31, + 0x34, 0x2e, 0x33, 0x2d, 0x33, 0x32, 0x20, 0x33, 0x32, 0x76, 0x33, 0x38, 0x34, 0x63, 0x30, 0x20, + 0x31, 0x37, 0x2e, 0x37, 0x20, 0x31, 0x34, 0x2e, 0x33, 0x20, 0x33, 0x32, 0x20, 0x33, 0x32, 0x20, + 0x33, 0x32, 0x68, 0x36, 0x34, 0x30, 0x63, 0x31, 0x37, 0x2e, 0x37, 0x20, 0x30, 0x20, 0x33, 0x32, + 0x2d, 0x31, 0x34, 0x2e, 0x33, 0x20, 0x33, 0x32, 0x2d, 0x33, 0x32, 0x56, 0x34, 0x39, 0x36, 0x63, + 0x30, 0x2d, 0x31, 0x37, 0x2e, 0x37, 0x2d, 0x31, 0x34, 0x2e, 0x33, 0x2d, 0x33, 0x32, 0x2d, 0x33, + 0x32, 0x2d, 0x33, 0x32, 0x7a, 0x4d, 0x33, 0x33, 0x32, 0x20, 0x32, 0x34, 0x30, 0x63, 0x30, 0x2d, + 0x33, 0x30, 0x2e, 0x39, 0x20, 0x32, 0x35, 0x2e, 0x31, 0x2d, 0x35, 0x36, 0x20, 0x35, 0x36, 0x2d, + 0x35, 0x36, 0x68, 0x32, 0x34, 0x38, 0x63, 0x33, 0x30, 0x2e, 0x39, 0x20, 0x30, 0x20, 0x35, 0x36, + 0x20, 0x32, 0x35, 0x2e, 0x31, 0x20, 0x35, 0x36, 0x20, 0x35, 0x36, 0x76, 0x32, 0x32, 0x34, 0x48, + 0x33, 0x33, 0x32, 0x56, 0x32, 0x34, 0x30, 0x7a, 0x6d, 0x34, 0x36, 0x30, 0x20, 0x36, 0x30, 0x30, + 0x48, 0x32, 0x33, 0x32, 0x56, 0x35, 0x33, 0x36, 0x68, 0x35, 0x36, 0x30, 0x76, 0x33, 0x30, 0x34, + 0x7a, 0x4d, 0x34, 0x38, 0x34, 0x20, 0x37, 0x30, 0x31, 0x76, 0x35, 0x33, 0x63, 0x30, 0x20, 0x34, + 0x2e, 0x34, 0x20, 0x33, 0x2e, 0x36, 0x20, 0x38, 0x20, 0x38, 0x20, 0x38, 0x68, 0x34, 0x30, 0x63, + 0x34, 0x2e, 0x34, 0x20, 0x30, 0x20, 0x38, 0x2d, 0x33, 0x2e, 0x36, 0x20, 0x38, 0x2d, 0x38, 0x76, + 0x2d, 0x35, 0x33, 0x61, 0x34, 0x38, 0x2e, 0x30, 0x31, 0x20, 0x34, 0x38, 0x2e, 0x30, 0x31, 0x20, + 0x30, 0x20, 0x31, 0x30, 0x2d, 0x35, 0x36, 0x20, 0x30, 0x7a, 0x22, 0x3e, 0x3c, 0x2f, 0x70, 0x61, + 0x74, 0x68, 0x3e, 0x3c, 0x2f, 0x73, 0x76, 0x67, 0x3e, 0x3c, 0x2f, 0x62, 0x75, 0x74, 0x74, 0x6f, + 0x6e, 0x3e, 0x20, 0x3c, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x3d, 0x22, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, + 0x22, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x3d, 0x22, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x3d, 0x21, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x3e, 0x3c, 0x73, 0x76, 0x67, + 0x20, 0x61, 0x72, 0x69, 0x61, 0x2d, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3d, 0x74, 0x72, 0x75, + 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x69, 0x63, 0x6f, 0x6e, 0x3d, 0x63, 0x6c, 0x6f, 0x63, + 0x6b, 0x2d, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3d, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x66, 0x6f, 0x63, 0x75, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x3d, 0x31, 0x65, 0x6d, 0x20, 0x76, 0x69, 0x65, 0x77, 0x42, 0x6f, 0x78, 0x3d, 0x22, 0x36, + 0x34, 0x20, 0x36, 0x34, 0x20, 0x38, 0x39, 0x36, 0x20, 0x38, 0x39, 0x36, 0x22, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x3d, 0x31, 0x65, 0x6d, 0x3e, 0x3c, 0x70, 0x61, 0x74, 0x68, 0x20, 0x64, 0x3d, 0x22, + 0x4d, 0x35, 0x31, 0x32, 0x20, 0x36, 0x34, 0x43, 0x32, 0x36, 0x34, 0x2e, 0x36, 0x20, 0x36, 0x34, + 0x20, 0x36, 0x34, 0x20, 0x32, 0x36, 0x34, 0x2e, 0x36, 0x20, 0x36, 0x34, 0x20, 0x35, 0x31, 0x32, + 0x73, 0x32, 0x30, 0x30, 0x2e, 0x36, 0x20, 0x34, 0x34, 0x38, 0x20, 0x34, 0x34, 0x38, 0x20, 0x34, + 0x34, 0x38, 0x20, 0x34, 0x34, 0x38, 0x2d, 0x32, 0x30, 0x30, 0x2e, 0x36, 0x20, 0x34, 0x34, 0x38, + 0x2d, 0x34, 0x34, 0x38, 0x53, 0x37, 0x35, 0x39, 0x2e, 0x34, 0x20, 0x36, 0x34, 0x20, 0x35, 0x31, + 0x32, 0x20, 0x36, 0x34, 0x7a, 0x6d, 0x30, 0x20, 0x38, 0x32, 0x30, 0x63, 0x2d, 0x32, 0x30, 0x35, + 0x2e, 0x34, 0x20, 0x30, 0x2d, 0x33, 0x37, 0x32, 0x2d, 0x31, 0x36, 0x36, 0x2e, 0x36, 0x2d, 0x33, + 0x37, 0x32, 0x2d, 0x33, 0x37, 0x32, 0x73, 0x31, 0x36, 0x36, 0x2e, 0x36, 0x2d, 0x33, 0x37, 0x32, + 0x20, 0x33, 0x37, 0x32, 0x2d, 0x33, 0x37, 0x32, 0x20, 0x33, 0x37, 0x32, 0x20, 0x31, 0x36, 0x36, + 0x2e, 0x36, 0x20, 0x33, 0x37, 0x32, 0x20, 0x33, 0x37, 0x32, 0x2d, 0x31, 0x36, 0x36, 0x2e, 0x36, + 0x20, 0x33, 0x37, 0x32, 0x2d, 0x33, 0x37, 0x32, 0x20, 0x33, 0x37, 0x32, 0x7a, 0x22, 0x3e, 0x3c, + 0x2f, 0x70, 0x61, 0x74, 0x68, 0x3e, 0x3c, 0x70, 0x61, 0x74, 0x68, 0x20, 0x64, 0x3d, 0x22, 0x4d, + 0x36, 0x38, 0x36, 0x2e, 0x37, 0x20, 0x36, 0x33, 0x38, 0x2e, 0x36, 0x4c, 0x35, 0x34, 0x34, 0x2e, + 0x31, 0x20, 0x35, 0x33, 0x35, 0x2e, 0x35, 0x56, 0x32, 0x38, 0x38, 0x63, 0x30, 0x2d, 0x34, 0x2e, + 0x34, 0x2d, 0x33, 0x2e, 0x36, 0x2d, 0x38, 0x2d, 0x38, 0x2d, 0x38, 0x48, 0x34, 0x38, 0x38, 0x63, + 0x2d, 0x34, 0x2e, 0x34, 0x20, 0x30, 0x2d, 0x38, 0x20, 0x33, 0x2e, 0x36, 0x2d, 0x38, 0x20, 0x38, + 0x76, 0x32, 0x37, 0x35, 0x2e, 0x34, 0x63, 0x30, 0x20, 0x32, 0x2e, 0x36, 0x20, 0x31, 0x2e, 0x32, + 0x20, 0x35, 0x20, 0x33, 0x2e, 0x33, 0x20, 0x36, 0x2e, 0x35, 0x6c, 0x31, 0x36, 0x35, 0x2e, 0x34, + 0x20, 0x31, 0x32, 0x30, 0x2e, 0x36, 0x63, 0x33, 0x2e, 0x36, 0x20, 0x32, 0x2e, 0x36, 0x20, 0x38, + 0x2e, 0x36, 0x20, 0x31, 0x2e, 0x38, 0x20, 0x31, 0x31, 0x2e, 0x32, 0x2d, 0x31, 0x2e, 0x37, 0x6c, + 0x32, 0x38, 0x2e, 0x36, 0x2d, 0x33, 0x39, 0x63, 0x32, 0x2e, 0x36, 0x2d, 0x33, 0x2e, 0x37, 0x20, + 0x31, 0x2e, 0x38, 0x2d, 0x38, 0x2e, 0x37, 0x2d, 0x31, 0x2e, 0x38, 0x2d, 0x31, 0x31, 0x2e, 0x32, + 0x7a, 0x22, 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x74, 0x68, 0x3e, 0x3c, 0x2f, 0x73, 0x76, 0x67, 0x3e, + 0x3c, 0x2f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, + 0x74, 0x65, 0x78, 0x74, 0x61, 0x72, 0x65, 0x61, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, + 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x77, 0x2d, 0x66, 0x75, 0x6c, 0x6c, 0x22, 0x63, + 0x6f, 0x6c, 0x73, 0x3d, 0x33, 0x30, 0x20, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, + 0x69, 0x64, 0x3d, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x3d, 0x34, + 0x30, 0x20, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3d, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x3e, 0x3c, + 0x2f, 0x74, 0x65, 0x78, 0x74, 0x61, 0x72, 0x65, 0x61, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x67, 0x61, 0x70, 0x2d, 0x32, 0x20, 0x67, 0x72, 0x69, 0x64, + 0x20, 0x66, 0x6c, 0x65, 0x78, 0x20, 0x77, 0x2d, 0x66, 0x75, 0x6c, 0x6c, 0x22, 0x69, 0x64, 0x3d, + 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x3e, 0x3c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x67, + 0x72, 0x6f, 0x77, 0x22, 0x69, 0x64, 0x3d, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x74, + 0x65, 0x78, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x63, 0x6d, 0x64, 0x3e, 0x3c, 0x62, 0x75, + 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x72, 0x6f, 0x75, 0x6e, + 0x64, 0x65, 0x64, 0x20, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x20, 0x67, 0x72, 0x69, 0x64, 0x20, + 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x79, 0x2d, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x2d, 0x65, 0x6e, + 0x64, 0x22, 0x69, 0x64, 0x3d, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x62, 0x75, 0x74, + 0x74, 0x6f, 0x6e, 0x3e, 0x53, 0x45, 0x4e, 0x44, 0x3c, 0x2f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, + 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x68, 0x31, + 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x6c, + 0x65, 0x74, 0x20, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x60, 0x77, 0x73, + 0x3a, 0x2f, 0x2f, 0x24, 0x7b, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x68, 0x6f, 0x73, 0x74, 0x7d, 0x2f, 0x77, 0x73, 0x60, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, + 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x74, 0x65, 0x78, 0x74, 0x41, + 0x72, 0x65, 0x61, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, + 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x72, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, + 0x20, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x20, + 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, + 0x20, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, + 0x74, 0x20, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x63, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x3d, 0x20, + 0x5b, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3d, 0x20, + 0x30, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x6f, 0x67, 0x6f, 0x28, 0x29, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, + 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, + 0x22, 0x6c, 0x6f, 0x67, 0x6f, 0x22, 0x29, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x28, 0x29, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, + 0x64, 0x28, 0x22, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, 0x29, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, + 0x2e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x22, 0x62, 0x6c, 0x6f, 0x63, + 0x6b, 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x57, 0x65, 0x62, 0x50, + 0x61, 0x67, 0x65, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x29, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x22, 0x29, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x57, 0x65, 0x62, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x28, + 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x42, + 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x74, 0x72, 0x61, 0x70, 0x4b, 0x65, 0x79, 0x50, 0x72, 0x65, 0x73, 0x73, 0x28, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x20, 0x3d, + 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x68, 0x69, + 0x73, 0x74, 0x6f, 0x72, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x3d, 0x20, + 0x6a, 0x73, 0x6f, 0x6e, 0x20, 0x3f, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x2e, 0x70, 0x61, 0x72, 0x73, + 0x65, 0x28, 0x6a, 0x73, 0x6f, 0x6e, 0x29, 0x20, 0x3a, 0x20, 0x5b, 0x5d, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x57, 0x65, 0x62, 0x53, 0x6f, 0x63, 0x6b, + 0x65, 0x74, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, + 0x6c, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x28, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, + 0x74, 0x28, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x73, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, + 0x28, 0x28, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x57, 0x72, 0x69, + 0x74, 0x65, 0x28, 0x22, 0x5b, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5d, 0x20, + 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x2e, + 0x22, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x28, + 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x6e, 0x69, 0x74, 0x57, 0x65, 0x62, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x28, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x20, 0x33, 0x30, 0x30, 0x30, 0x29, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x61, 0x6c, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x22, 0x5b, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, + 0x69, 0x61, 0x6c, 0x5d, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x2e, + 0x2e, 0x2e, 0x22, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, + 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x20, 0x3d, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x57, 0x65, + 0x62, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x28, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x29, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, + 0x6b, 0x65, 0x74, 0x2e, 0x6f, 0x6e, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x3d, 0x20, 0x6f, 0x6e, 0x4f, + 0x70, 0x65, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, + 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x6f, 0x6e, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x20, 0x3d, + 0x20, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x6f, 0x6e, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x20, 0x3d, 0x20, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, + 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x6f, 0x6e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x6f, + 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x69, 0x74, + 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x29, 0x2e, 0x61, 0x64, 0x64, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x22, 0x63, + 0x6c, 0x69, 0x63, 0x6b, 0x22, 0x2c, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x72, 0x61, 0x70, 0x4b, 0x65, 0x79, + 0x50, 0x72, 0x65, 0x73, 0x73, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x22, 0x29, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x22, 0x6b, 0x65, 0x79, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x22, 0x2c, 0x20, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x3d, + 0x3e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x69, 0x66, 0x20, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x3d, + 0x3d, 0x3d, 0x20, 0x22, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, + 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x29, 0x2e, + 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, + 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, + 0x65, 0x6e, 0x65, 0x72, 0x28, 0x22, 0x6b, 0x65, 0x79, 0x64, 0x6f, 0x77, 0x6e, 0x22, 0x2c, 0x20, + 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x64, 0x6f, 0x63, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x6c, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x26, 0x26, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, + 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x69, 0x64, + 0x20, 0x3d, 0x3d, 0x3d, 0x20, 0x27, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x65, + 0x78, 0x74, 0x27, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x2e, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x3d, 0x3d, 0x3d, 0x20, 0x22, 0x41, 0x72, 0x72, 0x6f, 0x77, + 0x55, 0x70, 0x22, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x2d, 0x2d, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3c, 0x20, 0x30, 0x29, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, + 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x20, 0x3e, 0x20, 0x30, 0x20, 0x3f, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, + 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x2d, 0x20, 0x31, + 0x20, 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x63, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, + 0x3e, 0x3d, 0x20, 0x30, 0x20, 0x26, 0x26, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3c, 0x20, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, + 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, + 0x22, 0x29, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5b, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x5d, 0x3b, 0x0a, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, + 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x20, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, + 0x63, 0x6f, 0x64, 0x65, 0x20, 0x3d, 0x3d, 0x3d, 0x20, 0x22, 0x41, 0x72, 0x72, 0x6f, 0x77, 0x44, + 0x6f, 0x77, 0x6e, 0x22, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x2b, 0x2b, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3e, 0x3d, 0x20, 0x63, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3d, + 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3e, 0x3d, + 0x20, 0x30, 0x20, 0x26, 0x26, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3c, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, + 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x22, 0x29, + 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5b, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7d, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x6e, 0x4f, 0x70, + 0x65, 0x6e, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, + 0x28, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x29, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x61, 0x6c, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x22, 0x5b, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, + 0x69, 0x61, 0x6c, 0x5d, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x2e, 0x2e, + 0x2e, 0x22, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x62, 0x75, + 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x29, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, + 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x22, 0x29, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, + 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, + 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x28, 0x65, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x67, 0x28, + 0x22, 0x5b, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5d, 0x20, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x21, 0x22, 0x2c, 0x20, 0x65, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x73, + 0x65, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, + 0x28, 0x65, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, + 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x22, 0x5b, 0x57, 0x65, 0x62, 0x53, + 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5d, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x20, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x2e, 0x22, 0x2c, 0x20, 0x65, 0x29, 0x3b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x28, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, + 0x66, 0x20, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3d, 0x3d, + 0x20, 0x27, 0x70, 0x6f, 0x6e, 0x67, 0x27, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x28, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x29, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x69, + 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, + 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, 0x73, + 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, + 0x6c, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x72, 0x61, 0x77, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x6e, 0x6f, 0x77, + 0x20, 0x3d, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x44, 0x61, 0x74, 0x65, 0x28, 0x29, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x61, 0x77, 0x20, 0x3d, + 0x20, 0x22, 0x5b, 0x22, 0x20, 0x2b, 0x20, 0x6e, 0x6f, 0x77, 0x2e, 0x74, 0x6f, 0x4c, 0x6f, 0x63, + 0x61, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x29, 0x20, + 0x2b, 0x20, 0x22, 0x5d, 0x20, 0x22, 0x20, 0x2b, 0x20, 0x72, 0x61, 0x77, 0x20, 0x2b, 0x20, 0x22, + 0x5c, 0x6e, 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, 0x41, 0x72, 0x65, 0x61, 0x2e, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x2b, 0x3d, 0x20, 0x72, 0x61, 0x77, 0x20, 0x2b, 0x20, 0x22, + 0x5c, 0x6e, 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, + 0x28, 0x21, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x6b, + 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x74, 0x65, 0x78, 0x74, 0x41, 0x72, 0x65, 0x61, 0x2e, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x54, + 0x6f, 0x70, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x74, 0x41, 0x72, 0x65, 0x61, 0x2e, 0x73, 0x63, + 0x72, 0x6f, 0x6c, 0x6c, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x61, 0x6c, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, 0x41, 0x72, 0x65, 0x61, 0x2e, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x74, 0x65, 0x78, 0x74, 0x41, 0x72, 0x65, 0x61, 0x2e, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, + 0x54, 0x6f, 0x70, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x74, 0x41, 0x72, 0x65, 0x61, 0x2e, 0x73, + 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x20, 0x73, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x28, 0x29, 0x20, 0x7b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x63, 0x6d, 0x64, + 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, + 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x22, 0x29, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, + 0x65, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x27, 0x73, 0x65, 0x6e, 0x64, 0x20, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x3a, 0x20, 0x27, 0x2c, 0x20, 0x63, 0x6d, 0x64, 0x29, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, + 0x73, 0x65, 0x6e, 0x64, 0x28, 0x63, 0x6d, 0x64, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x63, 0x6d, 0x64, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x67, + 0x28, 0x27, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, + 0x27, 0x2c, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, + 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x3e, 0x20, 0x32, + 0x30, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x27, 0x68, 0x69, + 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x27, 0x29, 0x3b, + 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x73, 0x70, 0x6c, 0x69, + 0x63, 0x65, 0x28, 0x30, 0x2c, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x2d, 0x20, 0x32, 0x30, + 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, + 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x27, 0x68, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x27, 0x2c, 0x20, 0x63, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, + 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, + 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, + 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x22, + 0x29, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x2e, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x3d, 0x20, 0x4a, 0x53, 0x4f, + 0x4e, 0x2e, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x69, 0x66, 0x79, 0x28, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, + 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x76, 0x61, 0x6c, 0x28, 0x28, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x21, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x20, 0x26, 0x26, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, + 0x74, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x3d, 0x20, + 0x57, 0x65, 0x62, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x4f, 0x50, 0x45, 0x4e, 0x29, 0x20, + 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x69, + 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x73, 0x65, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x28, 0x28, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x7b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, + 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x22, 0x5b, 0x57, + 0x65, 0x62, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5d, 0x20, 0x50, 0x69, 0x6e, 0x67, 0x20, 0x74, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x2e, 0x22, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, + 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, + 0x69, 0x74, 0x57, 0x65, 0x62, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x28, 0x29, 0x3b, 0x0a, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x20, 0x33, 0x30, + 0x30, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x73, 0x65, 0x6e, 0x64, 0x28, + 0x22, 0x70, 0x69, 0x6e, 0x67, 0x22, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x20, 0x32, 0x30, 0x30, 0x30, 0x29, 0x3b, + 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x61, 0x64, 0x64, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x22, 0x44, + 0x4f, 0x4d, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x22, + 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, 0x7b, 0x0a, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x57, 0x65, 0x62, 0x50, + 0x61, 0x67, 0x65, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x20, 0x66, 0x61, + 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e }; #endif \ No newline at end of file From aaa22640ccd5b5b7cc2f4a10c12379637f3be320 Mon Sep 17 00:00:00 2001 From: iranl Date: Thu, 3 Jul 2025 21:29:54 +0200 Subject: [PATCH 23/30] esp-nimble-cpp update --- src/NukiNetwork.cpp | 10 +++++----- src/NukiNetwork.h | 2 +- src/idf_component.yml | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/NukiNetwork.cpp b/src/NukiNetwork.cpp index 79e8dad..17cadec 100644 --- a/src/NukiNetwork.cpp +++ b/src/NukiNetwork.cpp @@ -175,6 +175,11 @@ bool NukiNetwork::wifiConnected() } } +String NukiNetwork::localIP() +{ + return _device->localIP(); +} + #ifdef NUKI_HUB_UPDATER void NukiNetwork::initialize() { @@ -1731,9 +1736,4 @@ void NukiNetwork::disableMqtt() _device->mqttDisable(); _mqttEnabled = false; } - -String NukiNetwork::localIP() -{ - return _device->localIP(); -} #endif diff --git a/src/NukiNetwork.h b/src/NukiNetwork.h index a985d1a..df7d707 100644 --- a/src/NukiNetwork.h +++ b/src/NukiNetwork.h @@ -39,6 +39,7 @@ public: const String networkBSSID() const; const NetworkDeviceType networkDeviceType(); void setKeepAliveCallback(std::function reconnectTick); + String localIP(); NetworkDevice* device(); @@ -50,7 +51,6 @@ public: void registerMqttReceiver(MqttReceiver* receiver); void disableAutoRestarts(); // disable on OTA start void disableMqtt(); - String localIP(); bool reconnect(bool force = false); void subscribe(const char* prefix, const char* path); diff --git a/src/idf_component.yml b/src/idf_component.yml index f934d30..96f9aab 100644 --- a/src/idf_component.yml +++ b/src/idf_component.yml @@ -4,7 +4,7 @@ dependencies: esp-nimble-cpp: git: https://github.com/h2zero/esp-nimble-cpp.git - version: 2.3.1 + version: 8af38e7eb9ae779bf54708c029f33a875d5e8d62 espressif/libsodium: "^1.0.20~2" From 1bde4cca4b1c30c4d7eec19a1887f66e2999d04c Mon Sep 17 00:00:00 2001 From: iranl Date: Sun, 6 Jul 2025 21:02:43 +0200 Subject: [PATCH 24/30] bin2array to dynamically create C array on build --- pio_package_pre.py | 4 + resources/AsyncWebSerial/.clang-format | 39 + .../AsyncWebSerial/.github/dependabot.yml | 7 + .../AsyncWebSerial/.github/workflows/ci.yml | 38 + .../.github/workflows/dependabot.yml | 19 + resources/AsyncWebSerial/.gitignore | 3 + resources/AsyncWebSerial/LICENSE | 21 + resources/AsyncWebSerial/README.md | 95 +++ .../AsyncWebSerial/examples/demo/demo.ino | 18 + resources/AsyncWebSerial/frontend/build.js | 74 ++ resources/AsyncWebSerial/frontend/index.html | 365 ++++++++++ .../AsyncWebSerial/frontend/package.json | 12 + resources/AsyncWebSerial/frontend/yarn.lock | 168 +++++ resources/AsyncWebSerial/library.json | 33 + resources/AsyncWebSerial/library.properties | 10 + resources/AsyncWebSerial/platformio.ini | 13 + .../AsyncWebSerial/src/AsyncWebSerial.cpp | 119 +++ resources/AsyncWebSerial/src/AsyncWebSerial.h | 48 ++ .../AsyncWebSerial/src/AsyncWebSerialHTML.h | 46 ++ resources/bin2array/.gitignore | 163 +++++ resources/bin2array/LICENSE | 21 + resources/bin2array/README.md | 95 +++ resources/bin2array/bin2array.py | 48 ++ src/Config.h | 2 +- src/WebCfgServer.cpp | 12 +- src/WebCfgServerConstants.h | 629 +--------------- src/webServerConstants/favicon-32x32.h | 52 ++ src/webServerConstants/style.h | 363 ++++++++++ src/webServerConstants/webSerial.h | 683 ++++++++++++++++++ stacktrace/esp_exception_decoder_rs.js | 302 -------- stacktrace/esp_exception_decoder_rs_bg.wasm | Bin 960397 -> 0 bytes stacktrace/esp_stacktrace_decoder_rs.js | 314 ++++++++ stacktrace/esp_stacktrace_decoder_rs_bg.wasm | Bin 0 -> 1280340 bytes stacktrace/index.html | 2 +- updater/pio_package_pre.py | 4 + 35 files changed, 2890 insertions(+), 932 deletions(-) create mode 100644 resources/AsyncWebSerial/.clang-format create mode 100644 resources/AsyncWebSerial/.github/dependabot.yml create mode 100644 resources/AsyncWebSerial/.github/workflows/ci.yml create mode 100644 resources/AsyncWebSerial/.github/workflows/dependabot.yml create mode 100644 resources/AsyncWebSerial/.gitignore create mode 100644 resources/AsyncWebSerial/LICENSE create mode 100644 resources/AsyncWebSerial/README.md create mode 100644 resources/AsyncWebSerial/examples/demo/demo.ino create mode 100644 resources/AsyncWebSerial/frontend/build.js create mode 100644 resources/AsyncWebSerial/frontend/index.html create mode 100644 resources/AsyncWebSerial/frontend/package.json create mode 100644 resources/AsyncWebSerial/frontend/yarn.lock create mode 100644 resources/AsyncWebSerial/library.json create mode 100644 resources/AsyncWebSerial/library.properties create mode 100644 resources/AsyncWebSerial/platformio.ini create mode 100644 resources/AsyncWebSerial/src/AsyncWebSerial.cpp create mode 100644 resources/AsyncWebSerial/src/AsyncWebSerial.h create mode 100644 resources/AsyncWebSerial/src/AsyncWebSerialHTML.h create mode 100644 resources/bin2array/.gitignore create mode 100644 resources/bin2array/LICENSE create mode 100644 resources/bin2array/README.md create mode 100644 resources/bin2array/bin2array.py create mode 100644 src/webServerConstants/favicon-32x32.h create mode 100644 src/webServerConstants/style.h create mode 100644 src/webServerConstants/webSerial.h delete mode 100644 stacktrace/esp_exception_decoder_rs.js delete mode 100644 stacktrace/esp_exception_decoder_rs_bg.wasm create mode 100644 stacktrace/esp_stacktrace_decoder_rs.js create mode 100644 stacktrace/esp_stacktrace_decoder_rs_bg.wasm diff --git a/pio_package_pre.py b/pio_package_pre.py index 1cddbd0..8d609fd 100644 --- a/pio_package_pre.py +++ b/pio_package_pre.py @@ -10,6 +10,10 @@ def recursive_purge(dir, pattern): elif re.search(pattern, os.path.join(dir, f)): os.remove(os.path.join(dir, f)) +os.system("python resources/bin2array/bin2array.py icon/favicon-32x32.png -O src/webServerConstants/favicon-32x32.h -l 16") +os.system("python resources/bin2array/bin2array.py resources/style.css -O src/webServerConstants/style.h -l 16") +os.system("python resources/bin2array/bin2array.py resources/AsyncWebSerial/frontend/index.html -O src/webServerConstants/webSerial.h -l 16") + regex = r"\#define NUKI_HUB_DATE \"(.*)\"" content_new = "" file_content = "" diff --git a/resources/AsyncWebSerial/.clang-format b/resources/AsyncWebSerial/.clang-format new file mode 100644 index 0000000..e34a665 --- /dev/null +++ b/resources/AsyncWebSerial/.clang-format @@ -0,0 +1,39 @@ +# Base style +BasedOnStyle: LLVM + +# Custom configurations +IndentWidth: 4 # Number of spaces per indentation level +TabWidth: 4 # Width of a tab (useful if 'UseTab' is set) +UseTab: Never # Use spaces instead of tabs + +# Function formatting +BreakBeforeBraces: Linux +AllowShortFunctionsOnASingleLine: Inline # Allow short functions to stay on a single line +AlwaysBreakBeforeMultilineStrings: false # Keep multiline strings together + +# Alignment +AlignConsecutiveAssignments: true # Align consecutive assignments +AlignTrailingComments: true # Align trailing comments + +# Parameter formatting +AllowAllParametersOfDeclarationOnNextLine: false # Parameters declared on the same line if possible + +# Array and list formatting +BinPackArguments: true # Place multiple arguments on the same line if possible +BinPackParameters: true # Same logic for parameters +ColumnLimit: 120 # Line length limit + +# Pointer and reference formatting +PointerAlignment: Right # Align pointer near the variable name or type (values: Left, Right, Middle) +ReferenceAlignment: Right # Same logic for references + +# Namespace +IndentNamespace: None # No indentation for namespaces +NamespaceIndentation: None # Alternative namespace indentation option + +# Comments +ReflowComments: true # Reformat comments to fit within the line length limit + +# Optional advanced configurations +IncludeBlocks: Preserve # Preserve blank lines between includes +SortIncludes: true # Sort includes alphabetically EmptyLineBeforeAccessModifier: Always # Blank line before "public:", "private:", etc. diff --git a/resources/AsyncWebSerial/.github/dependabot.yml b/resources/AsyncWebSerial/.github/dependabot.yml new file mode 100644 index 0000000..c833124 --- /dev/null +++ b/resources/AsyncWebSerial/.github/dependabot.yml @@ -0,0 +1,7 @@ +--- +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" \ No newline at end of file diff --git a/resources/AsyncWebSerial/.github/workflows/ci.yml b/resources/AsyncWebSerial/.github/workflows/ci.yml new file mode 100644 index 0000000..f22ffc6 --- /dev/null +++ b/resources/AsyncWebSerial/.github/workflows/ci.yml @@ -0,0 +1,38 @@ +name: Build + +on: + push: + pull_request: + branches: + - master + +jobs: + platformio: + name: PlatformIO + runs-on: ubuntu-latest + strategy: + matrix: + board: [esp32dev] + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Cache PlatformIO + uses: actions/cache@v4 + with: + key: ${{ runner.os }}-pio + path: | + ~/.cache/pip + ~/.platformio + + - name: Python + uses: actions/setup-python@v5 + with: + python-version: '3.x' + + - name: Install PlatformIO + run: | + python -m pip install -U pip + pip install -U platformio + + - run: PLATFORMIO_SRC_DIR=examples/demo PIO_BOARD=${{ matrix.board }} pio run \ No newline at end of file diff --git a/resources/AsyncWebSerial/.github/workflows/dependabot.yml b/resources/AsyncWebSerial/.github/workflows/dependabot.yml new file mode 100644 index 0000000..dffa49e --- /dev/null +++ b/resources/AsyncWebSerial/.github/workflows/dependabot.yml @@ -0,0 +1,19 @@ +name: PlatformIO Dependabot + +on: + workflow_dispatch: # option to manually trigger the workflow + schedule: + # Runs every day at 00:00 + - cron: '0 0 * * *' + +jobs: + dependabot: + runs-on: ubuntu-latest + name: run PlatformIO Dependabot + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: run PlatformIO Dependabot + uses: peterus/platformio_dependabot@v1 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/resources/AsyncWebSerial/.gitignore b/resources/AsyncWebSerial/.gitignore new file mode 100644 index 0000000..20d4fc3 --- /dev/null +++ b/resources/AsyncWebSerial/.gitignore @@ -0,0 +1,3 @@ +/.pio +/.vscode +node_modules diff --git a/resources/AsyncWebSerial/LICENSE b/resources/AsyncWebSerial/LICENSE new file mode 100644 index 0000000..77ddc7c --- /dev/null +++ b/resources/AsyncWebSerial/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Andrea Sessa + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/resources/AsyncWebSerial/README.md b/resources/AsyncWebSerial/README.md new file mode 100644 index 0000000..d0a7499 --- /dev/null +++ b/resources/AsyncWebSerial/README.md @@ -0,0 +1,95 @@ +# AsyncWebSerial + +AsyncWebSerial: Simplify ESP32 debugging and logging with seamless browser-based serial communication. + +## Features + +- **Browser-Based Serial Access**: Log and debug ESP32 microcontrollers directly from a web browser using the Web Serial API. +- **Real-Time Communication**: Stream logs and data in real time, eliminating the need for traditional serial monitors. +- **Asynchronous Operation**: Leverages asynchronous processing for smooth and efficient communication. +- **Cross-Platform Compatibility**: Works on any browser that supports the Web Serial API, no additional software required. +- **Customizable Integration**: Easily integrates into ESP32 projects, enabling tailored debugging and logging workflows. +- **User-Friendly Interface**: Provides an intuitive way to monitor and interact with the ESP32 during development. + +## Dependencies + +- [AsyncTCP (mathieucarbou fork)](https://github.com/mathieucarbou/AsyncTCP) +- [ESPAsyncWebServer (mathieucarbou fork)](https://github.com/mathieucarbou/ESPAsyncWebServer) + +## Build web interface + +Install frontend dependencies: + +```bash +yarn && yarn build +``` + +## Implementation + +### Add AsyncWebSerial to your platformIO project platformio.ini + +```ini +[env:esp32] +platform = espressif32 +board = esp32dev +framework = arduino +monitor_speed = 115200 +lib_deps = + circuitcode/AsyncWebSerial +``` + +### Include the library in your code + +```cpp +#include +``` + +### Initialize the library + +```cpp +AsyncWebServer server(80); +AsyncWebSerial webSerial; +``` + +### Use the library + +```cpp +void setup() { + webSerial.begin(&server); + server.begin(); +} + +void loop() { + webSerial.loop(); +} +``` + +### Send data to the AsyncWebSerial + +```cpp +webSerial.println("Hello, World!"); +webSerial.printf("Hello, %s!", "World"); +``` + +### Receive data from the AsyncWebSerial + +You can use the `onMessage` method to receive data from the AsyncWebSerial. The method accepts a callback function that will be called when data is received. The callback function can accept both `const char *` and `String` data types. + +```cpp +webSerial.onMessage([](const char *data, size_t len) { + Serial.write(data, len); +}); + +webSerial.onMessage([](const String &msg) { + Serial.println(msg); +}); +``` + +### Connect to the device serial page + +Navigate to `http:///webserial` to access the serial page. + +## License + +This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. + diff --git a/resources/AsyncWebSerial/examples/demo/demo.ino b/resources/AsyncWebSerial/examples/demo/demo.ino new file mode 100644 index 0000000..cc5b8f8 --- /dev/null +++ b/resources/AsyncWebSerial/examples/demo/demo.ino @@ -0,0 +1,18 @@ +#include +#include +#include + +AsyncWebSerial webSerial; +AsyncWebServer server(80); + +void setup() +{ + webSerial.begin(&server); + server.begin(); +} + +void loop() +{ + webSerial.loop(); + delay(10); +} \ No newline at end of file diff --git a/resources/AsyncWebSerial/frontend/build.js b/resources/AsyncWebSerial/frontend/build.js new file mode 100644 index 0000000..e5fb7aa --- /dev/null +++ b/resources/AsyncWebSerial/frontend/build.js @@ -0,0 +1,74 @@ +const fs = require("fs"); +const path = require("path"); +const zlib = require("zlib"); +const htmlMinifier = require("html-minifier-terser").minify; + +// Define paths +const inputPath = path.join(__dirname, "index.html"); +const outputPath = path.join(__dirname, "../src/AsyncWebSerialHTML.h"); + +// Function to split buffer into 64-byte chunks +function splitIntoChunks(buffer, chunkSize) { + let chunks = []; + for (let i = 0; i < buffer.length; i += chunkSize) { + chunks.push(buffer.slice(i, i + chunkSize)); + } + return chunks; +} + +(async function () { + // read the index.html file + const indexHtml = fs.readFileSync(inputPath, "utf8").toString(); + + // Minify the HTML content + const minifiedHtml = await htmlMinifier(indexHtml, { + collapseWhitespace: true, + removeComments: true, + removeAttributeQuotes: true, + removeRedundantAttributes: true, + removeScriptTypeAttributes: true, + removeStyleLinkTypeAttributes: true, + useShortDoctype: true, + minifyCSS: true, + minifyJS: true, + shortAttributes: true, + shortClassName: true, + }); + + let oldSize = (indexHtml.length / 1024).toFixed(2); + let newSize = (minifiedHtml.length / 1024).toFixed(2); + + console.log(`[Minifier] Original: ${oldSize}KB | Minified: ${newSize}KB`); + + // Gzip the minified HTML content + let gzippedHtml = zlib.gzipSync(minifiedHtml); + + // Recreate the AsyncWebSerialHTML.h file with the new gzipped content + // the content is stored as a byte array split into 64 byte chunks to avoid issues with the IDE + let content = `#ifndef AsyncWebSerial_HTML_H +#define AsyncWebSerial_HTML_H + +#include + +const uint8_t ASYNCWEBSERIAL_HTML[] PROGMEM = {\n`; + + // Split gzipped HTML into 64-byte chunks + let chunks = splitIntoChunks(gzippedHtml, 64); + chunks.forEach((chunk, index) => { + content += ` ${Array.from(chunk) + .map((byte) => `0x${byte.toString(16).padStart(2, "0")}`) + .join(", ")}`; + if (index < chunks.length - 1) { + content += ",\n"; + } + }); + + content += `\n}; + +#endif // AsyncWebSerial_HTML_H`; + + // Write the content to the output file + fs.writeFileSync(outputPath, content); + + console.log("AsyncWebSerialHTML.h file created successfully!"); +})(); diff --git a/resources/AsyncWebSerial/frontend/index.html b/resources/AsyncWebSerial/frontend/index.html new file mode 100644 index 0000000..737a8aa --- /dev/null +++ b/resources/AsyncWebSerial/frontend/index.html @@ -0,0 +1,365 @@ + + + + + + + NukiHub WebSerial + + + + + +
+
+
+
+ Buffer size: + +
+ + + +
+
+ +
+ +
+
+
+ +
+ +
+ +
+
+
+
+ + + + + \ No newline at end of file diff --git a/resources/AsyncWebSerial/frontend/package.json b/resources/AsyncWebSerial/frontend/package.json new file mode 100644 index 0000000..c6a889b --- /dev/null +++ b/resources/AsyncWebSerial/frontend/package.json @@ -0,0 +1,12 @@ +{ + "scripts": { + "build": "node build.js" + }, + "dependencies": { + "html-minifier-terser": "^7.1.0" + }, + "license": "MIT", + "files": [ + "LICENSE" + ] +} \ No newline at end of file diff --git a/resources/AsyncWebSerial/frontend/yarn.lock b/resources/AsyncWebSerial/frontend/yarn.lock new file mode 100644 index 0000000..29fb547 --- /dev/null +++ b/resources/AsyncWebSerial/frontend/yarn.lock @@ -0,0 +1,168 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + +"@jridgewell/source-map@^0.3.3": + version "0.3.6" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" + integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" + integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== + +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + +acorn@^8.8.2: + version "8.14.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" + integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +camel-case@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + +clean-css@~5.3.2: + version "5.3.3" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.3.tgz#b330653cd3bd6b75009cc25c714cae7b93351ccd" + integrity sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg== + dependencies: + source-map "~0.6.0" + +commander@^10.0.0: + version "10.0.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" + integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +entities@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== + +html-minifier-terser@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-7.2.0.tgz#18752e23a2f0ed4b0f550f217bb41693e975b942" + integrity sha512-tXgn3QfqPIpGl9o+K5tpcj3/MN4SfLtsx2GWwBC3SSd0tXQGyF3gsSqad8loJgKZGM3ZxbYDd5yhiBIdWpmvLA== + dependencies: + camel-case "^4.1.2" + clean-css "~5.3.2" + commander "^10.0.0" + entities "^4.4.0" + param-case "^3.0.4" + relateurl "^0.2.7" + terser "^5.15.1" + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +param-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +relateurl@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== + +source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +terser@^5.15.1: + version "5.36.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.36.0.tgz#8b0dbed459ac40ff7b4c9fd5a3a2029de105180e" + integrity sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w== + dependencies: + "@jridgewell/source-map" "^0.3.3" + acorn "^8.8.2" + commander "^2.20.0" + source-map-support "~0.5.20" + +tslib@^2.0.3: + version "2.8.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== diff --git a/resources/AsyncWebSerial/library.json b/resources/AsyncWebSerial/library.json new file mode 100644 index 0000000..22c3c52 --- /dev/null +++ b/resources/AsyncWebSerial/library.json @@ -0,0 +1,33 @@ +{ + "name": "AsyncWebSerial", + "version": "1.0.1", + "keywords": "web serial, ESP32", + "description": "AsyncWebSerial: Simplify ESP32 debugging and logging with seamless browser-based serial communication.", + "homepage": "https://github.com/circuitcode/AsyncWebSerial", + "repository": { + "type": "git", + "url": "https://github.com/circuitcode/AsyncWebSerial.git" + }, + "authors": [ + { + "name": "Andrea Sessa", + "maintanier": true + } + ], + "license": "MIT", + "framworks": "arduino", + "platforms": "espressif32", + "headers": [ + "AsyncWebSerial.h" + ], + "export": { + "include": [ + "examples", + "src", + "library.json", + "library.properties", + "LICENSE", + "README.md" + ] + } +} \ No newline at end of file diff --git a/resources/AsyncWebSerial/library.properties b/resources/AsyncWebSerial/library.properties new file mode 100644 index 0000000..586227e --- /dev/null +++ b/resources/AsyncWebSerial/library.properties @@ -0,0 +1,10 @@ +name=AsyncWebSerial +version=1.0.1 +author=Andrea Sessa +maintainer=Andrea Sessa +category=Device Control +sentence=Browser-based logging and debugging for ESP32 using the Web Serial API. +paragraph=AsyncWebSerial is a lightweight library designed for ESP32 microcontrollers, enabling developers to log and debug their projects directly from a web browser. Its asynchronous design ensures smooth communication, making it an ideal tool for modern ESP32 development workflows. +url=https://github.com/circuitcode/AsyncWebSerial +architectures=esp32 +license=MIT diff --git a/resources/AsyncWebSerial/platformio.ini b/resources/AsyncWebSerial/platformio.ini new file mode 100644 index 0000000..258543a --- /dev/null +++ b/resources/AsyncWebSerial/platformio.ini @@ -0,0 +1,13 @@ +[platformio] +lib_dir = . + +[env:esp32dev] +platform = espressif32 +board = esp32dev +framework = arduino +lib_deps = + mathieucarbou/AsyncTCP@^3.2.14 + mathieucarbou/ESPAsyncWebServer@^3.3.23 +build_flags = + -D CONFIG_ASYNC_TCP_QUEUE_SIZE=512 + -D CONFIG_ASYNC_TCP_RUNNING_CORE=1 \ No newline at end of file diff --git a/resources/AsyncWebSerial/src/AsyncWebSerial.cpp b/resources/AsyncWebSerial/src/AsyncWebSerial.cpp new file mode 100644 index 0000000..b68f3a1 --- /dev/null +++ b/resources/AsyncWebSerial/src/AsyncWebSerial.cpp @@ -0,0 +1,119 @@ +/* + * AsyncWebSerial.cpp + * + * This file implements the AsyncWebSerial class, which provides a web-based serial interface + * using an asynchronous web server and WebSocket communication. It allows for sending + * and receiving serial data over a web interface, with optional authentication. + * + * Usage: + * - Call begin() to initialize the AsyncWebSerial with a server and URL. + * - Use onMessage() to set a callback for received messages. + * - Use setAuthentication() to enable authentication for the web interface. + * - Use the Print interface to send data to the web interface. + * - Call loop() periodically to clean up inactive clients. + */ + +#include "AsyncWebSerial.h" +#include "AsyncWebSerialHTML.h" + +void AsyncWebSerial::begin(AsyncWebServer *server, const char *url) +{ + _server = server; + _socket = new AsyncWebSocket("/ws_serial"); + + if (_isAuthenticationRequired) + _socket->setAuthentication(_username.c_str(), _password.c_str()); + + // handle web page request + _server->on(url, HTTP_GET, [&](AsyncWebServerRequest *request) { + if (_isAuthenticationRequired && !request->authenticate(_username.c_str(), _password.c_str())) + return request->requestAuthentication(); + + AsyncWebServerResponse *response = + request->beginResponse(200, "text/html", ASYNCWEBSERIAL_HTML, sizeof(ASYNCWEBSERIAL_HTML)); + response->addHeader("Content-Encoding", "gzip"); + request->send(response); + }); + + // handle websocket connection + _socket->onEvent([&](AsyncWebSocket *server, AsyncWebSocketClient *client, AwsEventType type, void *arg, + uint8_t *data, size_t len) { + switch (type) { + case WS_EVT_CONNECT: + // set the client to not close when the queue is full + client->setCloseClientOnQueueFull(false); + break; + case WS_EVT_DATA: + if (len > 0) { + // invoke the message received callback + if (_onMessageReceived != nullptr) + _onMessageReceived(data, len); + } + break; + } + }); + + _server->addHandler(_socket); +} + +// onMessage callback setter +void AsyncWebSerial::onMessage(WSMessageCallback callback) +{ + _onMessageReceived = callback; +} + +// onMessage callback setter +void AsyncWebSerial::onMessage(WSStringMessageCallback callback) +{ + // keep a reference to the callback function + _stringMessageCallback = callback; + + // set the internal callback to convert the uint8_t data to a string and + // call the string callback + _onMessageReceived = [&](uint8_t *data, size_t len) { + if (data && len) { + String msg; + msg.reserve(len); + msg = String((char *)data, len); + _stringMessageCallback(msg); + } + }; +} + +void AsyncWebSerial::setAuthentication(const String &username, const String &password) +{ + _username = username; + _password = password; + _isAuthenticationRequired = !_username.isEmpty() && !_password.isEmpty(); + + // if the socket is already created, set the authentication immediately + if (_socket != nullptr) + _socket->setAuthentication(_username.c_str(), _password.c_str()); +} + +void AsyncWebSerial::loop() +{ + if (_socket) + _socket->cleanupClients(); +} + +// Print interface implementation +size_t AsyncWebSerial::write(uint8_t m) +{ + if (!_socket) + return 0; + + return write(&m, 1); + return 1; +} + +// Print interface implementation +size_t AsyncWebSerial::write(const uint8_t *buffer, size_t size) +{ + if (!_socket || size == 0) + return 0; + + String message((const char *)buffer, size); + _socket->textAll(message); + return size; +} \ No newline at end of file diff --git a/resources/AsyncWebSerial/src/AsyncWebSerial.h b/resources/AsyncWebSerial/src/AsyncWebSerial.h new file mode 100644 index 0000000..be1edb9 --- /dev/null +++ b/resources/AsyncWebSerial/src/AsyncWebSerial.h @@ -0,0 +1,48 @@ +/** + * @file AsyncWebSerial.h + * @brief A web serial interface for the ESP32 microcontroller. + * @license MIT License (https://opensource.org/licenses/MIT) + */ + +#ifndef AsyncWebSerial_h +#define AsyncWebSerial_h + +#include +#include +#include +#include +#include + +#include + +// define the callable object type for the message received callback +typedef std::function WSMessageCallback; +typedef std::function WSStringMessageCallback; + +class AsyncWebSerial : public Print +{ + public: + void begin(AsyncWebServer *server, const char *url = "/webserial"); + + void setAuthentication(const String &username, const String &password); + void onMessage(WSMessageCallback callback); + void onMessage(WSStringMessageCallback callback); + + void loop(); + + // Print interface implementation + virtual size_t write(uint8_t) override; + virtual size_t write(const uint8_t *buffer, size_t size) override; + + private: + AsyncWebServer *_server; + AsyncWebSocket *_socket; + bool _isAuthenticationRequired = false; + String _username; + String _password; + + WSMessageCallback _onMessageReceived = nullptr; + WSStringMessageCallback _stringMessageCallback = nullptr; +}; + +#endif // AsyncWebSerial_h \ No newline at end of file diff --git a/resources/AsyncWebSerial/src/AsyncWebSerialHTML.h b/resources/AsyncWebSerial/src/AsyncWebSerialHTML.h new file mode 100644 index 0000000..3d09129 --- /dev/null +++ b/resources/AsyncWebSerial/src/AsyncWebSerialHTML.h @@ -0,0 +1,46 @@ +#ifndef AsyncWebSerial_HTML_H +#define AsyncWebSerial_HTML_H + +#include + +const uint8_t ASYNCWEBSERIAL_HTML[] PROGMEM = { + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xdd, 0x59, 0x61, 0x8f, 0xdb, 0x36, 0x12, 0xfd, 0x2b, 0xac, 0xf6, 0x9a, 0x48, 0xb7, 0xa6, 0x2c, 0xc9, 0xf6, 0xae, 0x57, 0xb2, 0x0c, 0x24, 0x9b, 0x1c, 0x12, 0x20, 0xc9, 0x01, 0xb7, 0x29, 0x7a, 0x40, 0x51, 0xb4, 0x94, 0x34, 0xb2, 0xd9, 0xa5, 0x48, 0x95, 0xa2, 0x6c, 0x6f, 0x04, 0xff, 0xf7, 0x03, 0x29, 0xd9, 0x96, 0xec, 0x4d, + 0xdb, 0xe0, 0xbe, 0x35, 0x89, 0x2d, 0x71, 0x38, 0xe4, 0x90, 0x6f, 0xde, 0x0c, 0xc7, 0xcc, 0xe2, 0xbb, 0x4c, 0xa4, 0xea, 0xa9, 0x04, 0xb4, 0x56, 0x05, 0x5b, 0x2e, 0xba, 0x6f, 0x20, 0xd9, 0x72, 0x51, 0x80, 0x22, 0x28, 0x5d, 0x13, 0x59, 0x81, 0x8a, 0x6b, 0x95, 0xe3, 0x79, 0x27, 0x5b, 0x2b, 0x55, 0x62, 0xf8, 0xbd, 0xa6, 0x9b, 0xf8, 0xbf, 0xf8, 0x87, 0x57, 0xf8, 0x5e, 0x14, 0x25, 0x51, + 0x34, 0x61, 0x80, 0x52, 0xc1, 0x15, 0x70, 0x15, 0x5b, 0xef, 0xdf, 0xc6, 0x90, 0xad, 0xc0, 0x5a, 0x2e, 0x14, 0x55, 0x0c, 0x96, 0xaf, 0xaa, 0x27, 0x9e, 0xfe, 0x08, 0xc9, 0x03, 0x48, 0x4a, 0xd8, 0x62, 0xdc, 0x4a, 0xdb, 0xf9, 0x38, 0x29, 0x20, 0xde, 0x50, 0xd8, 0x96, 0x42, 0xaa, 0xd3, 0x14, 0x5b, 0x9a, 0xa9, 0x75, 0x9c, 0xc1, 0x86, 0xa6, 0x80, 0x4d, 0x63, 0x44, 0x39, 0x55, 0x94, 0x30, + 0x5c, 0xa5, 0x84, 0x41, 0xec, 0x5b, 0xcb, 0x45, 0xa5, 0x9e, 0x18, 0x2c, 0x33, 0xba, 0x69, 0x32, 0x5a, 0x95, 0x8c, 0x3c, 0x85, 0x09, 0x13, 0xe9, 0xe3, 0x9e, 0x34, 0x05, 0x91, 0x2b, 0xca, 0x43, 0x77, 0x2a, 0xa1, 0x88, 0x14, 0xec, 0x14, 0xce, 0x20, 0x15, 0x92, 0x28, 0x2a, 0x78, 0xc8, 0x05, 0x87, 0xfd, 0x3f, 0x47, 0x61, 0x48, 0x72, 0x05, 0x72, 0x14, 0x86, 0x09, 0xe4, 0x42, 0x42, 0x93, + 0x88, 0x1d, 0xae, 0xe8, 0x17, 0xca, 0x57, 0x61, 0x22, 0x64, 0x06, 0x12, 0x27, 0x62, 0x17, 0x75, 0xaf, 0x66, 0x0d, 0xa1, 0xb7, 0xd7, 0x20, 0x35, 0x6b, 0xa0, 0xab, 0xb5, 0x0a, 0x7d, 0xcf, 0xfb, 0x7e, 0x9f, 0x88, 0xec, 0xa9, 0x11, 0x1b, 0x90, 0x55, 0x2a, 0x05, 0x63, 0x38, 0x81, 0x35, 0xd9, 0x50, 0x21, 0x8d, 0x99, 0xa8, 0xa7, 0x19, 0xb5, 0x53, 0x98, 0xd7, 0x6e, 0x7d, 0x5e, 0x54, 0x92, + 0x2c, 0xd3, 0x06, 0xbd, 0x28, 0x17, 0x5c, 0xe1, 0x9c, 0x14, 0x94, 0x3d, 0x85, 0x98, 0x94, 0x25, 0x03, 0x5c, 0x3d, 0x55, 0x0a, 0x8a, 0x51, 0xfb, 0xc0, 0x35, 0x1d, 0xbd, 0x66, 0x94, 0x3f, 0x7e, 0x24, 0xe9, 0x83, 0x91, 0xfc, 0x4b, 0x70, 0x35, 0xb2, 0x1e, 0x60, 0x25, 0x00, 0xfd, 0xf0, 0xde, 0x1a, 0xfd, 0x47, 0x24, 0x42, 0x89, 0x91, 0xf5, 0x0e, 0xd8, 0x06, 0x14, 0x4d, 0x09, 0xfa, 0x04, + 0x35, 0x58, 0xa3, 0x8a, 0xf0, 0x0a, 0x57, 0x20, 0x69, 0x1e, 0x25, 0x24, 0x7d, 0x5c, 0x49, 0x51, 0xf3, 0x2c, 0xbc, 0xf2, 0x3c, 0xaf, 0xbf, 0xbc, 0xbd, 0x4b, 0xca, 0xb2, 0xbf, 0xb3, 0xe8, 0x00, 0x6a, 0xce, 0x60, 0x17, 0xe9, 0x2f, 0x9c, 0x51, 0x09, 0xa9, 0xc1, 0x30, 0x15, 0xac, 0x2e, 0xf8, 0xde, 0x5d, 0x49, 0x9a, 0x1d, 0xd1, 0xd7, 0x8d, 0xbd, 0xbb, 0x22, 0x25, 0x0e, 0x9a, 0x15, 0x29, + 0x43, 0x77, 0x26, 0xa1, 0xd8, 0xbb, 0x9d, 0x53, 0x1b, 0x3d, 0x45, 0xe8, 0x23, 0x1f, 0x79, 0xdf, 0x47, 0x84, 0xd1, 0x15, 0xc7, 0x5d, 0x8f, 0xb1, 0x80, 0x81, 0x67, 0x03, 0xb8, 0x52, 0xc1, 0x84, 0x0c, 0xaf, 0xb2, 0x69, 0x36, 0xcd, 0xe6, 0x03, 0x78, 0x0a, 0xc1, 0x45, 0x55, 0x92, 0x14, 0x22, 0x8d, 0x7b, 0xce, 0xc4, 0x16, 0xef, 0xc2, 0x35, 0xcd, 0x32, 0xe0, 0x27, 0xc9, 0x53, 0x48, 0x6a, + 0x25, 0xda, 0x71, 0x15, 0xfd, 0x02, 0xa1, 0x3f, 0x2d, 0x77, 0xc7, 0xc5, 0xa0, 0xb2, 0x39, 0xfa, 0xe0, 0x38, 0x64, 0x2b, 0x49, 0x19, 0x26, 0x12, 0xc8, 0x23, 0xde, 0x0a, 0x99, 0xb5, 0xc4, 0x31, 0x42, 0xfd, 0x15, 0x6d, 0xd7, 0x54, 0x01, 0x36, 0x86, 0xc3, 0x52, 0x02, 0x66, 0x94, 0xc3, 0xde, 0x2d, 0x09, 0x07, 0xd6, 0x94, 0xa2, 0xa2, 0x06, 0x18, 0x09, 0x8c, 0x28, 0xba, 0x81, 0x8e, 0x37, + 0xe1, 0x55, 0x9e, 0xe7, 0xc8, 0x00, 0x81, 0x2a, 0xc1, 0x68, 0x76, 0xe0, 0x93, 0x24, 0x19, 0xad, 0xab, 0xd0, 0xd7, 0x04, 0x2d, 0xc8, 0xae, 0xe3, 0xd7, 0x54, 0x2b, 0x76, 0x44, 0x49, 0x09, 0x4b, 0x6d, 0x8d, 0x04, 0xc2, 0x48, 0xab, 0x39, 0xbd, 0xbd, 0x14, 0x90, 0xd1, 0xba, 0xd8, 0xbb, 0x49, 0xad, 0x94, 0xe0, 0x55, 0x33, 0x70, 0x55, 0x8b, 0x2d, 0x55, 0x50, 0x54, 0x61, 0x0a, 0x5c, 0x81, + 0x8c, 0x7e, 0xab, 0x2b, 0x45, 0xf3, 0xa7, 0x4b, 0xc0, 0x5b, 0x10, 0x30, 0x83, 0x5c, 0xb5, 0x78, 0x75, 0x02, 0x69, 0xfc, 0x60, 0x24, 0xc7, 0x58, 0x50, 0x4a, 0x14, 0xdd, 0x3a, 0xfd, 0xf2, 0x82, 0x11, 0x52, 0x6c, 0xa3, 0x96, 0x15, 0x58, 0xfb, 0xde, 0x37, 0x7b, 0x3e, 0xf0, 0x1b, 0x2b, 0xd1, 0xd1, 0xe1, 0x28, 0x69, 0xe7, 0x3b, 0x13, 0xb6, 0x66, 0x5b, 0x59, 0xe7, 0x7f, 0xe2, 0x13, 0x9f, + 0x90, 0xe3, 0x56, 0x51, 0xfb, 0x6c, 0xd2, 0x5a, 0x56, 0x42, 0x86, 0xa5, 0xa0, 0x66, 0x83, 0x87, 0x38, 0x9a, 0x97, 0x3b, 0xe4, 0x7b, 0xe5, 0x0e, 0xcd, 0xf5, 0x0a, 0xcf, 0xf0, 0x8a, 0x44, 0xad, 0xb4, 0xd3, 0xb0, 0x49, 0x1c, 0x6d, 0x80, 0x76, 0x6e, 0xf2, 0x86, 0xe6, 0x7a, 0x81, 0x82, 0xdb, 0x0e, 0x25, 0x09, 0xaf, 0x4a, 0x22, 0x81, 0xab, 0xf3, 0xb5, 0xa0, 0x6a, 0xb3, 0x6a, 0x3a, 0x5c, + 0xda, 0x8c, 0x73, 0xa0, 0xb1, 0x69, 0x9d, 0xab, 0x87, 0x6b, 0x4d, 0xb8, 0xe6, 0xc2, 0xc2, 0x95, 0x3f, 0xf7, 0xe7, 0x7e, 0xb2, 0x77, 0xb7, 0x38, 0xaf, 0x19, 0x6b, 0x4e, 0xe9, 0x62, 0xef, 0x1a, 0x3d, 0xc8, 0x9a, 0x21, 0x79, 0xba, 0xf8, 0xd2, 0x8e, 0x18, 0x30, 0x40, 0x87, 0xa5, 0xd8, 0x9a, 0x78, 0xc3, 0xfa, 0x2d, 0xf4, 0xf7, 0x6e, 0xb5, 0x26, 0x99, 0x96, 0x51, 0xa6, 0x40, 0x86, 0x99, + 0x14, 0x25, 0x6e, 0x45, 0xb6, 0x87, 0xa6, 0xe5, 0x0e, 0x4d, 0xca, 0x1d, 0x92, 0xab, 0xc4, 0xf6, 0x90, 0xfe, 0x3b, 0x46, 0xae, 0x77, 0xeb, 0x38, 0x68, 0xa8, 0x17, 0x94, 0x3b, 0xf3, 0x19, 0xea, 0xdd, 0x38, 0xce, 0xde, 0x35, 0x6c, 0xc3, 0x2d, 0xdb, 0x9a, 0x4b, 0x02, 0xea, 0xb8, 0x2b, 0x0a, 0xc2, 0xb3, 0x5f, 0x34, 0x03, 0x09, 0xe5, 0x1a, 0x80, 0x76, 0x2f, 0x4a, 0x94, 0x3d, 0x52, 0x0d, + 0xc8, 0xd6, 0x97, 0x0c, 0x30, 0x8a, 0xbe, 0x95, 0xef, 0x26, 0x68, 0x71, 0x02, 0x6a, 0x0b, 0xc0, 0x8f, 0x64, 0xd1, 0x51, 0xb5, 0xa7, 0xbc, 0xac, 0x55, 0x73, 0x91, 0x90, 0xdd, 0xc9, 0xad, 0x09, 0x5a, 0xd7, 0x3c, 0x8e, 0x34, 0x69, 0x83, 0x18, 0x5d, 0xdd, 0x24, 0xb7, 0xc1, 0xdc, 0x3b, 0x0b, 0x66, 0x37, 0x30, 0xba, 0xcf, 0xa7, 0xaa, 0x13, 0x19, 0xdd, 0x79, 0x3b, 0xa7, 0xa1, 0xe2, 0x91, + 0x2a, 0xad, 0x99, 0x0b, 0x52, 0xe4, 0xe6, 0x8f, 0x97, 0x45, 0xa7, 0xf6, 0x11, 0xcc, 0x3e, 0x45, 0xae, 0xaa, 0x3a, 0x29, 0xa8, 0xc2, 0x5d, 0x78, 0x9c, 0xaf, 0x17, 0x66, 0x70, 0x0b, 0xc9, 0xe9, 0xdc, 0x31, 0xa9, 0xcd, 0x70, 0x3a, 0x17, 0xb2, 0xe8, 0x42, 0xe1, 0x64, 0x9c, 0x16, 0x64, 0xd5, 0x05, 0xc8, 0x59, 0xa0, 0x0d, 0x90, 0xef, 0x9d, 0x68, 0x7f, 0xc1, 0x09, 0x9d, 0xf8, 0x59, 0xcc, + 0x8e, 0xb0, 0x1b, 0xd0, 0x3b, 0x34, 0xfe, 0x0c, 0xb2, 0xa0, 0x9f, 0x27, 0xf2, 0x3c, 0xbf, 0x84, 0x4f, 0x33, 0x35, 0xb8, 0x43, 0xb7, 0x73, 0x14, 0xf8, 0x37, 0xce, 0x19, 0x48, 0xfd, 0xb8, 0xed, 0x47, 0xad, 0x09, 0xaa, 0x82, 0xe1, 0x69, 0xd3, 0xcf, 0x8e, 0xfe, 0xe1, 0x2c, 0xe3, 0x6d, 0xc2, 0xc3, 0x95, 0x22, 0xaa, 0x3e, 0x4b, 0xbd, 0x5f, 0xcd, 0xb3, 0x5f, 0x4b, 0xa2, 0x67, 0xfb, 0x3e, + 0xdb, 0xf5, 0x33, 0x9b, 0x3e, 0xed, 0x58, 0xef, 0xcd, 0xf7, 0x27, 0xc8, 0x7c, 0x82, 0xc0, 0x79, 0xce, 0x05, 0x83, 0xe0, 0x31, 0x60, 0x4c, 0x91, 0xfe, 0x77, 0xeb, 0x44, 0xbd, 0x03, 0x3a, 0x21, 0xd9, 0x0a, 0x3a, 0x24, 0x3a, 0xde, 0x1f, 0xc0, 0x38, 0x34, 0x87, 0x4e, 0xbb, 0xbb, 0xbb, 0xbb, 0xd3, 0x87, 0xa9, 0x19, 0xe8, 0xae, 0x24, 0x00, 0x7f, 0x26, 0x9f, 0x05, 0x41, 0x3a, 0x9b, 0xc1, + 0x41, 0x4b, 0x48, 0xc2, 0x57, 0xf0, 0x8c, 0x5a, 0x3e, 0xbb, 0x03, 0x2f, 0x39, 0xa8, 0x49, 0x9d, 0xe5, 0x2e, 0x74, 0x20, 0x9f, 0x4e, 0xa7, 0xd3, 0xfd, 0x62, 0xdc, 0x96, 0x7c, 0x8b, 0x71, 0x5b, 0xa5, 0xea, 0xda, 0x6b, 0xb9, 0xc8, 0xe8, 0x06, 0xa5, 0x8c, 0x54, 0x55, 0x4c, 0xca, 0xb2, 0x2d, 0x60, 0x41, 0xf6, 0xc5, 0x5d, 0xfe, 0x35, 0xa2, 0xe5, 0xeb, 0x3a, 0xcf, 0x41, 0x22, 0x03, 0x30, + 0x5a, 0x98, 0xe8, 0x47, 0x34, 0x8b, 0x93, 0x56, 0xdc, 0x0e, 0xb0, 0xba, 0x7c, 0x8b, 0xda, 0xd4, 0x67, 0xa1, 0x92, 0x91, 0x14, 0xd6, 0x82, 0x65, 0x20, 0x63, 0xab, 0x37, 0x83, 0x85, 0x36, 0x84, 0xd5, 0x10, 0xfb, 0x9e, 0xe7, 0x2d, 0x17, 0x63, 0x3d, 0xff, 0xa2, 0x23, 0xd7, 0x57, 0x66, 0x12, 0x3c, 0x65, 0x34, 0x7d, 0x8c, 0x15, 0xc8, 0x82, 0x72, 0xc2, 0xee, 0x19, 0x10, 0x6e, 0x3b, 0xcb, + 0x45, 0xb5, 0x59, 0xa1, 0x5d, 0xc1, 0x78, 0x15, 0xeb, 0x12, 0x3b, 0x1c, 0x8f, 0xb7, 0xdb, 0xad, 0xbb, 0x9d, 0xb8, 0x42, 0xae, 0xc6, 0x81, 0xe7, 0x79, 0x63, 0xad, 0xd0, 0x96, 0xc5, 0xc1, 0x14, 0xb5, 0xee, 0xd1, 0x6f, 0xba, 0x76, 0x7e, 0x2d, 0x76, 0xb1, 0xa5, 0xf3, 0xb1, 0x71, 0xaf, 0x85, 0x72, 0xca, 0x58, 0xac, 0xa3, 0x17, 0x55, 0x4a, 0x8a, 0x47, 0x88, 0xd3, 0x5a, 0xea, 0x93, 0xeb, + 0x5e, 0xa3, 0xd9, 0xc9, 0x70, 0x37, 0xd7, 0xa1, 0xa9, 0x59, 0x96, 0x92, 0x32, 0x36, 0x0b, 0xee, 0x0b, 0x7f, 0x13, 0x94, 0xb7, 0xd2, 0xe5, 0xa2, 0x24, 0x6a, 0x7d, 0x98, 0xd3, 0xcc, 0x9f, 0xc5, 0xd6, 0x47, 0x0f, 0x79, 0xeb, 0x60, 0xba, 0x09, 0xa6, 0xef, 0xbc, 0x2f, 0x7d, 0xdb, 0xe3, 0x4e, 0x5f, 0xeb, 0x4c, 0xd1, 0x2d, 0xf3, 0x6f, 0x90, 0x67, 0xf5, 0x85, 0xbe, 0x87, 0x7c, 0x9f, 0x79, + 0xe8, 0x66, 0x28, 0x9d, 0x3e, 0x27, 0x9d, 0xe9, 0x09, 0x90, 0x1f, 0x90, 0x00, 0x05, 0xa8, 0x3d, 0x7c, 0x02, 0x14, 0xac, 0xe7, 0x83, 0x36, 0x0e, 0x98, 0x8f, 0xb0, 0x1f, 0x0c, 0x46, 0xde, 0xa1, 0xdb, 0x0d, 0x9e, 0x10, 0x53, 0x78, 0x22, 0x0f, 0xe9, 0x27, 0xf6, 0xd7, 0xd3, 0x81, 0xc0, 0xdf, 0x4c, 0xf4, 0x18, 0x8d, 0xf1, 0x72, 0x31, 0x6e, 0x3d, 0xb8, 0x44, 0x7f, 0xd1, 0x95, 0x16, 0x70, + 0x92, 0x30, 0x78, 0x30, 0xf5, 0x7f, 0xfc, 0x5d, 0xbf, 0x65, 0xfd, 0xdd, 0xfd, 0x3a, 0x43, 0xfe, 0xe4, 0xe8, 0x02, 0xdf, 0xb8, 0x60, 0xed, 0x7b, 0x03, 0x49, 0xb0, 0xb9, 0xe9, 0xb5, 0xb1, 0xf6, 0x1a, 0x1e, 0xa8, 0x60, 0x3d, 0x6a, 0x83, 0x6f, 0xbe, 0x0c, 0x69, 0xe0, 0x23, 0xff, 0xa6, 0x73, 0x92, 0x6f, 0xbc, 0xeb, 0x1d, 0x5d, 0xe6, 0xe9, 0x31, 0x43, 0x2e, 0xcd, 0x91, 0xef, 0x6f, 0xf0, + 0x94, 0x4c, 0xd1, 0xb4, 0xf3, 0xe9, 0x1c, 0x79, 0x9b, 0xe9, 0xff, 0xed, 0xd5, 0xcf, 0xb4, 0x80, 0x4a, 0x91, 0xa2, 0x3c, 0x38, 0xf6, 0x28, 0xf8, 0xdb, 0xfb, 0x56, 0x1f, 0x2b, 0xe4, 0x0e, 0xdd, 0x75, 0x0e, 0xf0, 0xe7, 0xc8, 0xeb, 0x9a, 0xc6, 0x03, 0xba, 0x3d, 0xf4, 0x58, 0x80, 0x6e, 0x37, 0x33, 0x36, 0x41, 0xcf, 0xc4, 0x52, 0x97, 0x1b, 0xc7, 0x97, 0xc9, 0xb9, 0x3b, 0x2a, 0x0f, 0x1a, + 0xb9, 0x10, 0xea, 0x5c, 0xe1, 0xac, 0x72, 0xd4, 0x4a, 0xb2, 0x38, 0xf8, 0x4f, 0x1f, 0xb1, 0xa8, 0x2d, 0x99, 0x51, 0xbf, 0x0a, 0xb5, 0x96, 0xa7, 0xe4, 0xde, 0x4d, 0x81, 0xf4, 0xef, 0x99, 0x54, 0x14, 0x25, 0x03, 0x05, 0xb1, 0xc8, 0x73, 0x24, 0xf5, 0x4d, 0x86, 0x84, 0x2c, 0xb6, 0xac, 0xa1, 0xb5, 0x61, 0xc6, 0x7f, 0xab, 0x27, 0x44, 0x87, 0xae, 0x35, 0x48, 0x7d, 0xb7, 0x71, 0x5a, 0xa1, + 0xae, 0x15, 0x8e, 0x79, 0x9f, 0x66, 0xf1, 0xb0, 0xca, 0xd0, 0x37, 0x2c, 0x9d, 0xe8, 0xef, 0xce, 0x18, 0x9d, 0xd0, 0xa7, 0xcc, 0xd7, 0x09, 0xd6, 0x1f, 0x50, 0x23, 0xf0, 0xd1, 0x84, 0xe1, 0x1b, 0x77, 0x86, 0xfc, 0x39, 0x71, 0x67, 0x33, 0xa4, 0x3f, 0x5d, 0xf4, 0xfb, 0xc8, 0x63, 0x78, 0xe2, 0xce, 0x10, 0xbe, 0x65, 0xf8, 0x16, 0xe9, 0xd7, 0x33, 0x15, 0x4d, 0x36, 0xe6, 0xcf, 0x91, 0x9e, + 0xe0, 0xeb, 0xd4, 0xd2, 0xa4, 0x38, 0x34, 0x06, 0xf4, 0x1a, 0x16, 0x6c, 0x3d, 0xfd, 0x96, 0x69, 0x5d, 0xb3, 0xad, 0x25, 0xaa, 0x54, 0xd2, 0x52, 0x2d, 0x19, 0x28, 0xb4, 0x85, 0xa4, 0x12, 0xe9, 0x23, 0xa8, 0xd1, 0x30, 0xbf, 0x7b, 0xa3, 0x8b, 0xcc, 0xe0, 0x8d, 0x6a, 0xc9, 0xe2, 0x5f, 0xb7, 0x55, 0x38, 0x1e, 0xff, 0xa3, 0xd9, 0x52, 0x9e, 0x89, 0xad, 0xcb, 0x44, 0x6a, 0xee, 0x9b, 0xdc, + 0xb5, 0xa8, 0x94, 0xbe, 0xe6, 0xda, 0x87, 0x97, 0x7d, 0xfa, 0xd6, 0x6b, 0x3f, 0xde, 0x56, 0xbf, 0x54, 0xe6, 0x6e, 0xec, 0xd7, 0x51, 0x17, 0x0e, 0xaf, 0x24, 0x90, 0x38, 0x13, 0x69, 0x5d, 0x00, 0x57, 0xee, 0xef, 0x35, 0xc8, 0xa7, 0x07, 0x60, 0x90, 0x2a, 0x21, 0x6d, 0xeb, 0x70, 0x89, 0x61, 0x39, 0xa3, 0xd3, 0xf6, 0x1e, 0xcc, 0xee, 0xfe, 0x70, 0xcc, 0x10, 0x08, 0xcb, 0x89, 0xf2, 0x9a, + 0x1b, 0x09, 0xd2, 0x77, 0x6b, 0xaf, 0xca, 0xd2, 0x76, 0x9a, 0xf3, 0x09, 0x5d, 0xca, 0x39, 0xc8, 0x77, 0x9f, 0x3f, 0x7e, 0x88, 0x2d, 0xcb, 0xdc, 0xc1, 0xe9, 0x8b, 0x3c, 0x83, 0x8b, 0xed, 0x8c, 0xbe, 0x66, 0x4d, 0xfb, 0xc2, 0x72, 0x5c, 0x92, 0x65, 0x6f, 0x37, 0xc0, 0xd5, 0x07, 0x5a, 0x29, 0xe0, 0x20, 0x6d, 0xab, 0x8d, 0x03, 0x6b, 0x64, 0x1f, 0x4c, 0xdb, 0xe0, 0x34, 0xe0, 0x96, 0x12, + 0xb4, 0xde, 0x1b, 0xc8, 0x49, 0xcd, 0x94, 0xed, 0x44, 0xda, 0x01, 0xfc, 0xb4, 0x99, 0x15, 0xa8, 0xb7, 0x0c, 0xf4, 0xeb, 0xeb, 0xa7, 0xf7, 0x99, 0x6d, 0x75, 0xa1, 0x68, 0x39, 0xae, 0xa9, 0xbf, 0xa2, 0xa3, 0xaf, 0xdc, 0x0a, 0x78, 0x66, 0xf3, 0xde, 0xca, 0xfe, 0x64, 0x68, 0x6c, 0x59, 0x7b, 0xc7, 0xd9, 0x0f, 0x90, 0xe8, 0xed, 0xf0, 0x8f, 0xf0, 0x78, 0xd9, 0xa3, 0x99, 0x65, 0xaa, 0x57, + 0xd4, 0x16, 0xb9, 0x56, 0x47, 0x2a, 0x74, 0xdf, 0x0d, 0xe6, 0x2b, 0xd7, 0x75, 0x5f, 0x8e, 0x8e, 0xab, 0x8c, 0x39, 0x6c, 0xd1, 0xc9, 0x4a, 0x2d, 0x99, 0x73, 0xea, 0x74, 0x05, 0x17, 0x25, 0xf0, 0x58, 0xf0, 0x7f, 0x97, 0xc0, 0x07, 0xf2, 0x94, 0x89, 0x0a, 0x62, 0xc1, 0xef, 0xf5, 0x73, 0xd0, 0x53, 0x40, 0x55, 0x91, 0x95, 0xee, 0xfb, 0xd8, 0xbe, 0x9d, 0x76, 0xd4, 0xce, 0xa3, 0x71, 0xfe, + 0xb6, 0xbd, 0x98, 0xb2, 0xfe, 0x7c, 0x2b, 0x90, 0xbd, 0x1c, 0x1d, 0x4a, 0xd7, 0x1f, 0x25, 0x55, 0x60, 0x5b, 0xc7, 0x1e, 0xa4, 0x04, 0xb2, 0xae, 0xf5, 0x66, 0xfa, 0xc6, 0xcd, 0x5a, 0xbf, 0xdd, 0xba, 0x84, 0xec, 0x68, 0xfb, 0x0d, 0xad, 0xd2, 0x93, 0xf9, 0x0a, 0x94, 0x0e, 0x3d, 0x51, 0x2b, 0x7b, 0xe0, 0xac, 0x51, 0x00, 0x93, 0x81, 0xe5, 0x0e, 0x09, 0x6d, 0x7b, 0xb8, 0x64, 0x70, 0x33, + 0xa2, 0x48, 0x4f, 0xf7, 0xac, 0xdb, 0x69, 0x68, 0x6e, 0x9f, 0x05, 0xb9, 0xd3, 0x40, 0x6c, 0xfd, 0x64, 0x5d, 0xdb, 0xda, 0x75, 0x6f, 0x88, 0x02, 0xc7, 0x55, 0xe2, 0x83, 0xd0, 0x77, 0xd1, 0x5a, 0xe7, 0x41, 0x49, 0xca, 0x57, 0xb6, 0x73, 0x6d, 0xfd, 0x8c, 0xac, 0x6b, 0xd8, 0xf7, 0xc2, 0xf8, 0xb4, 0xcf, 0xeb, 0xd8, 0x5a, 0x94, 0x4b, 0xeb, 0x1a, 0xae, 0xad, 0xc5, 0xb8, 0x5c, 0x5a, 0x83, + 0xc4, 0xf2, 0xe2, 0x85, 0xdd, 0x1f, 0xd4, 0xde, 0x26, 0x7f, 0x16, 0x65, 0x7c, 0x29, 0x7d, 0x67, 0x8e, 0x85, 0x43, 0x90, 0x94, 0xfa, 0x92, 0xfe, 0x3d, 0x57, 0xf6, 0x57, 0x29, 0xdf, 0xfe, 0xb6, 0x39, 0x30, 0xde, 0x89, 0x68, 0xf5, 0x89, 0x7c, 0xb2, 0xb9, 0xf3, 0xe2, 0x85, 0xcd, 0x63, 0x1f, 0x26, 0xed, 0x4c, 0x6a, 0x60, 0x69, 0x10, 0xd0, 0xaf, 0x18, 0xb3, 0xad, 0xd2, 0x72, 0x22, 0x9a, + 0xdb, 0xca, 0x65, 0xc0, 0x57, 0x6a, 0xbd, 0xe4, 0x4e, 0x2e, 0xa4, 0xad, 0x47, 0x42, 0xec, 0x45, 0xb0, 0x38, 0x74, 0x60, 0x1e, 0xc1, 0xf5, 0xb5, 0xd3, 0x9f, 0x4c, 0x42, 0x21, 0x36, 0x70, 0xbf, 0xa6, 0x2c, 0xb3, 0xd5, 0x4f, 0xf0, 0xf3, 0x33, 0xd0, 0x77, 0xbf, 0x83, 0x9a, 0x67, 0x81, 0xd3, 0x41, 0x7a, 0x4c, 0x51, 0x8b, 0x71, 0x97, 0xa4, 0x17, 0x63, 0xf3, 0x3f, 0x16, 0xff, 0x03, 0xd8, + 0x33, 0xf7, 0x07, 0xc7, 0x18, 0x00, 0x00 +}; + +#endif // AsyncWebSerial_HTML_H \ No newline at end of file diff --git a/resources/bin2array/.gitignore b/resources/bin2array/.gitignore new file mode 100644 index 0000000..3d45606 --- /dev/null +++ b/resources/bin2array/.gitignore @@ -0,0 +1,163 @@ + +# Created by https://www.gitignore.io/api/macos,python,windows,visualstudiocode + +### macOS ### +*.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### Python ### +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# pyenv +.python-version + +# celery beat schedule file +celerybeat-schedule + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ + +### VisualStudioCode ### +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +.history + +### Windows ### +# Windows thumbnail cache files +Thumbs.db +ehthumbs.db +ehthumbs_vista.db + +# Folder config file +Desktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msm +*.msp + +# Windows shortcuts +*.lnk + +# End of https://www.gitignore.io/api/macos,python,windows,visualstudiocode \ No newline at end of file diff --git a/resources/bin2array/LICENSE b/resources/bin2array/LICENSE new file mode 100644 index 0000000..4489d76 --- /dev/null +++ b/resources/bin2array/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 James Swineson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/resources/bin2array/README.md b/resources/bin2array/README.md new file mode 100644 index 0000000..0a989d5 --- /dev/null +++ b/resources/bin2array/README.md @@ -0,0 +1,95 @@ +# bin2array + +Converts binary file to C-style array initializer. + +Ever wanted to embed a binary file in your program? Trying to serve images and executables from a tiny web server on Arduino or ESP8266? This utility is here to help. + +## Requirements + + * Python 3 + +## Usage + +I guess it is self-explanatory. + +``` +usage: bin2array.py [-h] [-O OUTPUT] [-l LINEBREAK] [-L LINEBREAK_STRING] + [-S SEPARATOR_STRING] [-H ELEMENT_PREFIX] + [-T ELEMENT_SUFFIX] [-U] [-n] + filename + +Convert binary file to C-style array initializer. + +positional arguments: + filename the file to be converted + +optional arguments: + -h, --help show this help message and exit + -O OUTPUT, --output OUTPUT + write output to a file + -l LINEBREAK, --linebreak LINEBREAK + add linebreak after every N element + -L LINEBREAK_STRING, --linebreak-string LINEBREAK_STRING + use what to break link, defaults to "\n" + -S SEPARATOR_STRING, --separator-string SEPARATOR_STRING + use what to separate elements, defaults to ", " + -H ELEMENT_PREFIX, --element-prefix ELEMENT_PREFIX + string to be added to the head of element, defaults to + "0x" + -T ELEMENT_SUFFIX, --element-suffix ELEMENT_SUFFIX + string to be added to the tail of element, defaults to + none + -U, --force-uppercase + force uppercase HEX representation + -n, --newline add a newline on file end +``` + +## Caveats + +### Arduino IDE + +**Do not put large source code files in the root folder of your project.** Otherwise some of the following events will happen: + + * One of your CPU cores been eaten up by java + * The splash screen shows up but never loads + * 3rd World War + +Make a new folder inside project root, put the converted file (use `.h` as extension, otherwise may not be recognized) in, then use the following grammer to use it: + +```C++ +const char great_image[] PROGMEM = { +#include "data/great_image.png.h" +} +``` + +If you are using ESP8266WebServer to serve static binary files, you can use the following code: + +```C++ +#include + +// create server +ESP8266WebServer server(80); + +// include the image data +const char image[] PROGMEM = { +#include "data/image.png.h" +}; + +// statis binary file handler +void handleImage() { + server.sendHeader("Cache-Control", "max-age=31536000", false); + server.send_P(200, "image/png", image, sizeof(image)); +} + +void setup() { + // do other things... + // register image handler before server.begin() + server.on("/image.png", handleImage); + // do other things... + server.begin(); +} +``` + +### Windows + +Do not use command line redirection (`python bin2array.py test.png > test.png.h`) since CMD will save the file using UTF-16 which is not recognized by some compiler. Use `-O` option to save output to file, or manually convert UTF-16 to UTF-8 for maximum compatibility. \ No newline at end of file diff --git a/resources/bin2array/bin2array.py b/resources/bin2array/bin2array.py new file mode 100644 index 0000000..8bbac05 --- /dev/null +++ b/resources/bin2array/bin2array.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python3 +import binascii +import sys +import argparse + +parser = argparse.ArgumentParser(description='Convert binary file to C-style array initializer.') +parser.add_argument("filename", help="the file to be converted") +parser.add_argument("-O", "--output", help="write output to a file") +parser.add_argument("-l", "--linebreak", type=int, help="add linebreak after every N element") +parser.add_argument("-L", "--linebreak-string", default="\n", help="use what to break link, defaults to \"\\n\"") +parser.add_argument("-S", "--separator-string", default=", ", help="use what to separate elements, defaults to \", \"") +parser.add_argument("-H", "--element-prefix", default="0x", help="string to be added to the head of element, defaults to \"0x\"") +parser.add_argument("-T", "--element-suffix", default="", help="string to be added to the tail of element, defaults to none") +parser.add_argument("-U", "--force-uppercase", action='store_true', help="force uppercase HEX representation") +parser.add_argument("-n", "--newline", action='store_true', help="add a newline on file end") +args = parser.parse_args() + +def make_sublist_group(lst: list, grp: int) -> list: + """ + Group list elements into sublists. + + make_sublist_group([1, 2, 3, 4, 5, 6, 7], 3) = [[1, 2, 3], [4, 5, 6], 7] + """ + return [lst[i:i+grp] for i in range(0, len(lst), grp)] + +def do_convension(content: bytes, to_uppercase: bool=False) -> str: + hexstr = binascii.hexlify(content).decode("UTF-8") + if to_uppercase: + hexstr = hexstr.upper() + array = [args.element_prefix + hexstr[i:i + 2] + args.element_suffix for i in range(0, len(hexstr), 2)] + if args.linebreak: + array = make_sublist_group(array, args.linebreak) + else: + array = [array,] + + return args.linebreak_string.join([args.separator_string.join(e) + args.separator_string for e in array]) + +if __name__ == "__main__": + with open(args.filename, 'rb') as f: + file_content = f.read() + ret = do_convension(file_content, to_uppercase=args.force_uppercase) + if args.newline: + ret = ret + args.linebreak_string + if args.output: + with open(args.output, 'w') as f: + f.write(ret) + else: + print(ret) \ No newline at end of file diff --git a/src/Config.h b/src/Config.h index 13adbae..23b6110 100644 --- a/src/Config.h +++ b/src/Config.h @@ -5,7 +5,7 @@ #define NUKI_HUB_VERSION "9.12" #define NUKI_HUB_VERSION_INT (uint32_t)912 #define NUKI_HUB_BUILD "unknownbuildnr" -#define NUKI_HUB_DATE "2025-07-03" +#define NUKI_HUB_DATE "2025-07-06" #define GITHUB_LATEST_RELEASE_URL (char*)"https://github.com/technyon/nuki_hub/releases/latest" #define GITHUB_OTA_MANIFEST_URL (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/manifest.json" diff --git a/src/WebCfgServer.cpp b/src/WebCfgServer.cpp index 607542d..ab9ab76 100644 --- a/src/WebCfgServer.cpp +++ b/src/WebCfgServer.cpp @@ -6537,6 +6537,12 @@ esp_err_t WebCfgServer::buildInfoHtml(PsychicRequest *request, PsychicResponse* response.print(_preferences->getInt(preference_lock_max_auth_entry_count, 0)); response.print("\nRegister as: "); response.print(_preferences->getBool(preference_register_as_app, false) ? "App" : "Bridge"); + response.print("\nForce Lock ID: "); + response.print(_preferences->getBool(preference_lock_force_id, false) ? "Yes" : "No"); + response.print("\nForce Lock Keypad: "); + response.print(_preferences->getBool(preference_lock_force_keypad, false) ? "Yes" : "No"); + response.print("\nForce Lock Doorsensor: "); + response.print(_preferences->getBool(preference_lock_force_doorsensor, false) ? "Yes" : "No"); response.print("\n\n------------ HYBRID MODE ------------"); if(!_preferences->getBool(preference_official_hybrid_enabled, false)) { @@ -6559,12 +6565,6 @@ esp_err_t WebCfgServer::buildInfoHtml(PsychicRequest *request, PsychicResponse* response.print("\nTime between status updates when official MQTT is offline (s): "); response.print(_preferences->getInt(preference_query_interval_hybrid_lockstate, 600)); } - response.print("\nForce Lock ID: "); - response.print(_preferences->getBool(preference_lock_force_id, false) ? "Yes" : "No"); - response.print("\nForce Lock Keypad: "); - response.print(_preferences->getBool(preference_lock_force_keypad, false) ? "Yes" : "No"); - response.print("\nForce Lock Doorsensor: "); - response.print(_preferences->getBool(preference_lock_force_doorsensor, false) ? "Yes" : "No"); uint32_t basicLockConfigAclPrefs[16]; _preferences->getBytes(preference_conf_lock_basic_acl, &basicLockConfigAclPrefs, sizeof(basicLockConfigAclPrefs)); uint32_t advancedLockConfigAclPrefs[25]; diff --git a/src/WebCfgServerConstants.h b/src/WebCfgServerConstants.h index 1538f0e..f1d19aa 100644 --- a/src/WebCfgServerConstants.h +++ b/src/WebCfgServerConstants.h @@ -1,632 +1,17 @@ #pragma once -// escaped by https://www.cescaper.com/ -// source: https://cdn.jsdelivr.net/npm/@exampledev/new.css@1.1.2/new.min.css +// converted to char array by bin2array +const char stylecss[] = { + #include "webServerConstants/style.h" +}; -const char stylecss[] = ":root{--nc-font-sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,'Open Sans','Helvetica Neue',sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol';--nc-font-mono:Consolas,monaco,'Ubuntu Mono','Liberation Mono','Courier New',Courier,monospace;--nc-tx-1:#000;--nc-tx-2:#1a1a1a;--nc-bg-1:#fff;--nc-bg-2:#f6f8fa;--nc-bg-3:#e5e7eb;--nc-lk-1:#0070f3;--nc-lk-2:#0366d6;--nc-lk-tx:#fff;--nc-ac-1:#79ffe1;--nc-ac-tx:#0c4047}@media(prefers-color-scheme:dark){:root{--nc-tx-1:#fff;--nc-tx-2:#eee;--nc-bg-1:#000;--nc-bg-2:#111;--nc-bg-3:#222;--nc-lk-1:#3291ff;--nc-lk-2:#0070f3;--nc-lk-tx:#fff;--nc-ac-1:#7928ca;--nc-ac-tx:#fff}}*{margin:0;padding:0}img,input,option,p,table,textarea,ul{margin-bottom:1rem}button,html,input,select{font-family:var(--nc-font-sans)}body{margin:0 auto;max-width:750px;padding:2rem;border-radius:6px;overflow-x:hidden;word-break:normal;overflow-wrap:anywhere;background:var(--nc-bg-1);color:var(--nc-tx-2);font-size:1.03rem;line-height:1.5}::selection{background:var(--nc-ac-1);color:var(--nc-ac-tx)}h1,h2,h3,h4,h5,h6{line-height:1;color:var(--nc-tx-1);padding-top:.875rem}h1,h2,h3{color:var(--nc-tx-1);padding-bottom:2px;margin-bottom:8px;border-bottom:1px solid var(--nc-bg-2)}h4,h5,h6{margin-bottom:.3rem}h1{font-size:2.25rem}h2{font-size:1.85rem}h3{font-size:1.55rem}h4{font-size:1.25rem}h5{font-size:1rem}h6{font-size:.875rem}a{color:var(--nc-lk-1)}a:hover{color:var(--nc-lk-2) !important;}abbr{cursor:help}abbr:hover{cursor:help}a button,button,input[type=button],input[type=reset],input[type=submit]{font-size:1rem;display:inline-block;padding:6px 12px;text-align:center;text-decoration:none;white-space:nowrap;background:var(--nc-lk-1);color:var(--nc-lk-tx);border:0;border-radius:4px;box-sizing:border-box;cursor:pointer;color:var(--nc-lk-tx)}a button[disabled],button[disabled],input[type=button][disabled],input[type=reset][disabled],input[type=submit][disabled]{cursor:default;opacity:.5;cursor:not-allowed}.button:focus,.button:hover,button:focus,button:hover,input[type=button]:focus,input[type=button]:hover,input[type=reset]:focus,input[type=reset]:hover,input[type=submit]:focus,input[type=submit]:hover{background:var(--nc-lk-2)}table{border-collapse:collapse;width:100%}td,th{border:1px solid var(--nc-bg-3);text-align:left;padding:.5rem}th{background:var(--nc-bg-2)}tr:nth-child(even){background:var(--nc-bg-2)}textarea{max-width:100%}input,select,textarea{padding:6px 12px;margin-bottom:.5rem;background:var(--nc-bg-2);color:var(--nc-tx-2);border:1px solid var(--nc-bg-3);border-radius:4px;box-shadow:none;box-sizing:border-box}img{max-width:100%}td>input{margin-top:0;margin-bottom:0}td>textarea{margin-top:0;margin-bottom:0}td>select{margin-top:0;margin-bottom:0}.warning{color:red}@media only screen and (max-width:600px){.adapt td{display:block}.adapt input[type=text],.adapt input[type=password],.adapt input[type=submit],.adapt textarea,.adapt select{width:100%}.adapt td:has(input[type=checkbox]){text-align:center}.adapt input[type=checkbox]{width:1.5em;height:1.5em}.adapt table td:first-child{border-bottom:0}.adapt table td:last-child{border-top:0}#tblnav a li>span{max-width:140px}}#tblnav a{border:0;border-bottom:1px solid;display:block;font-size:1rem;font-weight:bold;padding:.6rem 0;line-height:1;color:var(--nc-tx-1);text-decoration:none;background:linear-gradient(to left,transparent 50%,rgba(255,255,255,0.4) 50%) right;background-size:200% 100%;transition:all .2s ease}#tblnav a{background:linear-gradient(to left,var(--nc-bg-2) 50%,rgba(255,255,255,0.4) 50%) right;background-size:200% 100%}#tblnav a:hover{background-position:left;transition:all .45s ease}#tblnav a:active{background:var(--nc-lk-1);transition:all .15s ease}#tblnav a li{list-style:none;padding:.5rem;display:inline-block;width:100%}#tblnav a li>span{float:right;text-align:right;margin-right:10px;color:#f70;font-weight:100;font-style:italic;display:block}.tdbtn{text-align:center;vertical-align:middle}.naventry{float:left;max-width:375px;width:100%}"; - -// converted to char array by https://notisrac.github.io/FileToCArray/ +// converted to char array by bin2array const uint8_t favicon_32x32[] = { - 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, - 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x08, 0x06, 0x00, 0x00, 0x00, 0x73, 0x7a, 0x7a, - 0xf4, 0x00, 0x00, 0x02, 0xfb, 0x49, 0x44, 0x41, 0x54, 0x58, 0x47, 0xcd, 0x97, 0x4b, 0x4c, 0x53, - 0x41, 0x14, 0x86, 0xff, 0x69, 0xa5, 0x3c, 0x8a, 0x12, 0x14, 0x84, 0xa6, 0x96, 0x60, 0x6d, 0xd0, - 0x50, 0x14, 0x51, 0xd1, 0x6a, 0x4c, 0x51, 0x63, 0x88, 0x8a, 0x06, 0x63, 0x42, 0xc0, 0x85, 0x01, - 0xc3, 0xae, 0xe8, 0x0a, 0x0d, 0x4a, 0x30, 0x31, 0x18, 0xd1, 0x84, 0x18, 0x83, 0x46, 0x5d, 0xa9, - 0x09, 0xb8, 0x01, 0xa2, 0x31, 0x82, 0x31, 0x82, 0x6e, 0x48, 0x78, 0xb6, 0x74, 0xe1, 0x8b, 0x47, - 0xb0, 0x3e, 0x0a, 0xb4, 0x05, 0xa1, 0xe1, 0x25, 0x14, 0x68, 0xeb, 0x9d, 0x22, 0xb7, 0x40, 0x1f, - 0x1b, 0xef, 0xa5, 0xce, 0xea, 0xde, 0x99, 0xce, 0x39, 0xdf, 0xfc, 0x7f, 0x67, 0xee, 0x1c, 0xe2, - 0xbc, 0x0e, 0x81, 0xe3, 0x84, 0xba, 0x58, 0x40, 0x88, 0xc6, 0x09, 0x48, 0xb0, 0x0a, 0x8d, 0x00, - 0x26, 0x07, 0x71, 0x3e, 0x14, 0xd4, 0x37, 0x95, 0x11, 0x7b, 0x87, 0xba, 0x84, 0x10, 0x72, 0x63, - 0x15, 0xf2, 0x7a, 0xa4, 0x70, 0x12, 0xe7, 0x35, 0xe2, 0xe8, 0x48, 0x33, 0x81, 0x20, 0x36, 0x10, - 0x00, 0x4c, 0x4e, 0x33, 0x71, 0x68, 0xd3, 0x18, 0xe5, 0x03, 0xd7, 0xfe, 0x6f, 0x80, 0x86, 0xb6, - 0x51, 0xd4, 0xbe, 0x1b, 0x66, 0xe5, 0xd1, 0x64, 0x49, 0x91, 0xb2, 0x35, 0xdc, 0xaf, 0x5c, 0x25, - 0x8f, 0xbe, 0xc1, 0x36, 0xeb, 0x60, 0x7f, 0x93, 0x79, 0x28, 0x0a, 0x07, 0x93, 0x23, 0x7c, 0xce, - 0xf1, 0xab, 0xc0, 0x9d, 0x67, 0x46, 0x5c, 0xae, 0x30, 0xb0, 0x93, 0x93, 0xb6, 0x88, 0xa1, 0xad, - 0xdc, 0x85, 0x60, 0x91, 0xc0, 0x67, 0xc0, 0xc8, 0xc3, 0xcd, 0x18, 0x9b, 0x9c, 0x67, 0xc7, 0x2b, - 0x2e, 0x29, 0x70, 0x31, 0x5b, 0xca, 0x0d, 0x00, 0x8d, 0x72, 0xf5, 0x7c, 0x1c, 0x6e, 0x6a, 0x36, - 0xfb, 0x0c, 0xb8, 0xe1, 0x48, 0x33, 0xac, 0x13, 0x3c, 0x02, 0xac, 0x11, 0x12, 0xb4, 0x3c, 0x49, - 0xc1, 0x9e, 0xc4, 0xb5, 0x5e, 0x21, 0xa2, 0x8f, 0xb6, 0x60, 0x64, 0x6c, 0x8e, 0x3f, 0x05, 0x68, - 0x64, 0xa5, 0x5c, 0x0c, 0x5d, 0x95, 0x77, 0x2b, 0x62, 0xd2, 0x5b, 0x30, 0x6c, 0xe5, 0x19, 0xc0, - 0x9f, 0x15, 0x92, 0x63, 0xad, 0xb0, 0x8c, 0xcc, 0xf2, 0xab, 0x00, 0x8d, 0x4e, 0xad, 0x68, 0x66, - 0xac, 0x48, 0x5d, 0x61, 0xc5, 0xa6, 0xe3, 0xad, 0x18, 0xfc, 0xc5, 0x13, 0xc0, 0x3a, 0xb1, 0x10, - 0xe3, 0x53, 0x76, 0x76, 0x75, 0x4a, 0x79, 0x18, 0x63, 0xc5, 0xee, 0x65, 0xbb, 0x22, 0x2e, 0xa3, - 0x0d, 0xfd, 0x43, 0x36, 0x7e, 0x14, 0x50, 0xa7, 0x44, 0xb8, 0x92, 0x35, 0xb6, 0x5b, 0xd9, 0x04, - 0x57, 0xf2, 0x64, 0x28, 0x2b, 0x90, 0xb3, 0xef, 0xf1, 0xa7, 0xda, 0xf0, 0xd3, 0xcc, 0x13, 0x00, - 0x3d, 0x84, 0x6a, 0x6e, 0x27, 0x62, 0x47, 0x8e, 0x0e, 0xd3, 0xb6, 0x85, 0xc3, 0xc6, 0x65, 0xc5, - 0x63, 0xc6, 0x0a, 0xe5, 0xc2, 0xae, 0x90, 0x67, 0xb6, 0xe3, 0xfb, 0xe0, 0x0c, 0x3f, 0x0a, 0x50, - 0xc9, 0x3f, 0x56, 0xa7, 0xa2, 0xbc, 0xd2, 0x88, 0xa2, 0xfb, 0xee, 0x03, 0x2a, 0xf1, 0xaf, 0x15, - 0x21, 0x8c, 0x3a, 0x8a, 0xd3, 0xed, 0x30, 0x0c, 0xf0, 0x04, 0xb0, 0x2d, 0x3e, 0x0c, 0x5f, 0x6a, - 0x53, 0x31, 0x6f, 0x77, 0x42, 0x95, 0xab, 0x87, 0xbe, 0x67, 0x92, 0x5d, 0x69, 0x51, 0xae, 0x0c, - 0xb7, 0x2e, 0xc8, 0x91, 0x70, 0xa6, 0x03, 0x7d, 0xc6, 0x69, 0x7e, 0x14, 0x48, 0x88, 0x0b, 0x45, - 0xf7, 0xf3, 0xbd, 0xae, 0xe0, 0xfa, 0xee, 0x49, 0xa8, 0xf2, 0xf4, 0x2e, 0x18, 0xda, 0x84, 0x02, - 0xba, 0x2b, 0x76, 0x22, 0xbf, 0xb4, 0x17, 0x9f, 0x0d, 0x53, 0xfc, 0x00, 0x28, 0x64, 0xa1, 0xe8, - 0x7d, 0xb1, 0x00, 0x40, 0x5b, 0xd1, 0x3d, 0x03, 0xca, 0xab, 0x8c, 0xec, 0xfb, 0x76, 0x85, 0x18, - 0xa2, 0x20, 0x01, 0x3a, 0xbb, 0x26, 0xf8, 0x01, 0x90, 0x4b, 0x43, 0xd0, 0xf7, 0x72, 0x1f, 0x1b, - 0xfc, 0xf7, 0x8c, 0x1d, 0xc9, 0x67, 0x3b, 0xf1, 0xb5, 0xdf, 0x2d, 0x39, 0x23, 0x04, 0x1c, 0x4b, - 0x6e, 0x18, 0x9c, 0x7e, 0x8c, 0xe2, 0x25, 0x21, 0x30, 0xbc, 0x72, 0x03, 0x50, 0x92, 0xf7, 0x5a, - 0x2b, 0xd2, 0x35, 0x1f, 0xe0, 0xeb, 0x56, 0xc3, 0x29, 0x80, 0x2c, 0x36, 0x18, 0x3f, 0xea, 0x54, - 0xac, 0x02, 0x8b, 0x0f, 0xf9, 0xa5, 0x3d, 0x78, 0x5a, 0x67, 0xf6, 0xe8, 0xa7, 0x1d, 0x9c, 0x02, - 0x48, 0x37, 0x06, 0xc3, 0xf8, 0xda, 0x13, 0x60, 0x74, 0x7c, 0x0e, 0xca, 0x2c, 0x1d, 0x2c, 0xa3, - 0xee, 0x23, 0x78, 0x91, 0x86, 0x53, 0x00, 0x49, 0x94, 0x08, 0x03, 0x6f, 0xf6, 0x7b, 0x5d, 0x69, - 0x4d, 0xe3, 0x10, 0x72, 0x8a, 0xbb, 0x3c, 0xc6, 0x38, 0x05, 0x88, 0x59, 0x2f, 0x82, 0xe9, 0xad, - 0x77, 0x00, 0x9a, 0x39, 0xb3, 0xf0, 0x13, 0xea, 0x9a, 0x46, 0x96, 0x41, 0x70, 0x0a, 0x10, 0x1d, - 0x19, 0x04, 0x4b, 0xc3, 0x01, 0xaf, 0x0a, 0xd0, 0xce, 0x7e, 0x8b, 0x0d, 0x49, 0xd9, 0xda, 0x65, - 0x1f, 0xac, 0x7f, 0x02, 0x58, 0x79, 0x29, 0x0d, 0x0f, 0x15, 0xe2, 0x6e, 0xa1, 0xc2, 0x27, 0x00, - 0x1d, 0xa8, 0x66, 0xac, 0xa8, 0x5f, 0xa2, 0xc2, 0xb9, 0x8c, 0x58, 0xa4, 0xab, 0x22, 0x7d, 0xce, - 0xf9, 0xbf, 0xaf, 0xe5, 0x7e, 0x97, 0xca, 0xd1, 0x20, 0x55, 0xc0, 0xc4, 0xc4, 0x0a, 0x5c, 0x69, - 0x66, 0xd7, 0x31, 0xc5, 0xa9, 0x33, 0x30, 0xc5, 0x29, 0xa1, 0xc5, 0xa9, 0xab, 0x3c, 0x3f, 0xa9, - 0x2e, 0x66, 0x20, 0x0a, 0x56, 0x51, 0x09, 0x33, 0x93, 0xfc, 0x01, 0xf3, 0x6f, 0x2d, 0xfb, 0x03, - 0xed, 0x06, 0xb0, 0xce, 0xb5, 0xc4, 0xb4, 0x59, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, - 0xae, 0x42, 0x60, 0x82 + #include "webServerConstants/favicon-32x32.h" }; #ifndef NUKI_HUB_UPDATER const uint8_t WEBSERIAL_HTML[] = { - 0x3c, 0x21, 0x64, 0x6f, 0x63, 0x74, 0x79, 0x70, 0x65, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x3c, 0x6d, - 0x65, 0x74, 0x61, 0x20, 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, 0x3d, 0x75, 0x74, 0x66, 0x2d, - 0x38, 0x3e, 0x3c, 0x6d, 0x65, 0x74, 0x61, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, - 0x22, 0x49, 0x45, 0x3d, 0x65, 0x64, 0x67, 0x65, 0x22, 0x68, 0x74, 0x74, 0x70, 0x2d, 0x65, 0x71, - 0x75, 0x69, 0x76, 0x3d, 0x58, 0x2d, 0x55, 0x41, 0x2d, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, - 0x62, 0x6c, 0x65, 0x3e, 0x3c, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0x57, 0x65, 0x62, 0x20, 0x43, - 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0x3c, 0x6d, - 0x65, 0x74, 0x61, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x3d, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2c, - 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x2d, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x3d, 0x31, 0x22, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x76, 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, 0x74, 0x3e, 0x3c, 0x73, - 0x74, 0x79, 0x6c, 0x65, 0x3e, 0x64, 0x69, 0x76, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, - 0x3a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x7d, 0x61, 0x7b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, - 0x2e, 0x34, 0x72, 0x65, 0x6d, 0x3b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x64, 0x65, 0x63, 0x6f, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x7d, 0x2a, 0x2c, 0x3a, 0x3a, 0x61, - 0x66, 0x74, 0x65, 0x72, 0x2c, 0x3a, 0x3a, 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x7b, 0x2d, 0x77, - 0x65, 0x62, 0x6b, 0x69, 0x74, 0x2d, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, - 0x3a, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x3b, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x69, 0x7a, - 0x69, 0x6e, 0x67, 0x3a, 0x69, 0x6e, 0x68, 0x65, 0x72, 0x69, 0x74, 0x7d, 0x70, 0x7b, 0x6d, 0x61, - 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x30, 0x20, 0x30, 0x20, 0x31, 0x72, 0x65, 0x6d, 0x7d, 0x62, 0x6f, - 0x64, 0x79, 0x7b, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x2d, 0x62, 0x65, - 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x3a, 0x31, 0x30, 0x30, 0x25, 0x3b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, 0x30, - 0x30, 0x25, 0x3b, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x30, 0x3b, 0x70, 0x61, 0x64, 0x64, - 0x69, 0x6e, 0x67, 0x3a, 0x30, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x66, 0x61, 0x6d, 0x69, 0x6c, - 0x79, 0x3a, 0x2d, 0x61, 0x70, 0x70, 0x6c, 0x65, 0x2d, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2c, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2d, 0x75, 0x69, 0x2c, 0x42, 0x6c, 0x69, 0x6e, 0x6b, 0x4d, - 0x61, 0x63, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x46, 0x6f, 0x6e, 0x74, 0x2c, 0x22, 0x53, 0x65, - 0x67, 0x6f, 0x65, 0x20, 0x55, 0x49, 0x22, 0x2c, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x6f, 0x2c, 0x22, - 0x48, 0x65, 0x6c, 0x76, 0x65, 0x74, 0x69, 0x63, 0x61, 0x20, 0x4e, 0x65, 0x75, 0x65, 0x22, 0x2c, - 0x73, 0x61, 0x6e, 0x73, 0x2d, 0x73, 0x65, 0x72, 0x69, 0x66, 0x7d, 0x2e, 0x74, 0x65, 0x78, 0x74, - 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x7b, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, 0x69, - 0x67, 0x6e, 0x3a, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x7d, 0x2e, 0x67, 0x72, 0x61, 0x79, 0x7b, - 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x36, 0x36, 0x37, 0x31, 0x38, 0x39, 0x7d, 0x2e, 0x73, - 0x68, 0x61, 0x64, 0x6f, 0x77, 0x7b, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x3a, 0x64, 0x72, 0x6f, - 0x70, 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x28, 0x30, 0x20, 0x34, 0x70, 0x78, 0x20, 0x33, - 0x70, 0x78, 0x20, 0x72, 0x67, 0x62, 0x28, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x2f, 0x20, 0x2e, - 0x30, 0x37, 0x29, 0x29, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, - 0x28, 0x30, 0x20, 0x32, 0x70, 0x78, 0x20, 0x32, 0x70, 0x78, 0x20, 0x72, 0x67, 0x62, 0x28, 0x30, - 0x20, 0x30, 0x20, 0x30, 0x20, 0x2f, 0x20, 0x2e, 0x30, 0x36, 0x29, 0x29, 0x7d, 0x2e, 0x77, 0x2d, - 0x66, 0x75, 0x6c, 0x6c, 0x7b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x31, 0x30, 0x30, 0x25, 0x7d, - 0x2e, 0x67, 0x72, 0x69, 0x64, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x67, 0x72, - 0x69, 0x64, 0x7d, 0x2e, 0x67, 0x61, 0x70, 0x2d, 0x32, 0x7b, 0x67, 0x61, 0x70, 0x3a, 0x2e, 0x35, - 0x72, 0x65, 0x6d, 0x7d, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, - 0x79, 0x3a, 0x66, 0x6c, 0x65, 0x78, 0x7d, 0x2e, 0x67, 0x72, 0x6f, 0x77, 0x7b, 0x66, 0x6c, 0x65, - 0x78, 0x2d, 0x67, 0x72, 0x6f, 0x77, 0x3a, 0x31, 0x7d, 0x2e, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, - 0x79, 0x2d, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x2d, 0x65, 0x6e, 0x64, 0x7b, 0x6a, 0x75, 0x73, 0x74, - 0x69, 0x66, 0x79, 0x2d, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x3a, 0x65, 0x6e, 0x64, 0x7d, 0x2e, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x7b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, - 0x64, 0x69, 0x75, 0x73, 0x3a, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x7d, 0x2e, 0x73, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x7b, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x3a, 0x62, - 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x78, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x38, 0x66, 0x39, - 0x66, 0x61, 0x7d, 0x2e, 0x6d, 0x61, 0x69, 0x6e, 0x7b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, - 0x3a, 0x66, 0x6c, 0x65, 0x78, 0x3b, 0x66, 0x6c, 0x65, 0x78, 0x2d, 0x64, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x3b, 0x6a, 0x75, 0x73, 0x74, - 0x69, 0x66, 0x79, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x66, 0x6c, 0x65, 0x78, - 0x2d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x3b, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x2d, 0x69, 0x74, 0x65, - 0x6d, 0x73, 0x3a, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x3a, 0x31, 0x30, 0x30, 0x64, 0x76, 0x68, 0x7d, 0x2e, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x2e, 0x70, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x7b, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x72, - 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x23, - 0x66, 0x66, 0x66, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x73, 0x74, 0x79, 0x6c, 0x65, - 0x3a, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x3a, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, - 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x31, 0x72, 0x65, 0x6d, 0x3b, 0x62, 0x61, 0x63, - 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, - 0x66, 0x66, 0x3b, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x63, 0x61, 0x6c, 0x63, 0x28, 0x31, 0x30, - 0x30, 0x25, 0x20, 0x2d, 0x20, 0x31, 0x72, 0x65, 0x6d, 0x29, 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, - 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x3b, 0x6d, 0x61, 0x72, 0x67, - 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x32, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x7d, 0x2e, 0x70, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x7b, 0x63, 0x75, 0x72, - 0x73, 0x6f, 0x72, 0x3a, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x70, 0x61, 0x64, 0x64, - 0x69, 0x6e, 0x67, 0x3a, 0x38, 0x70, 0x78, 0x20, 0x31, 0x30, 0x70, 0x78, 0x20, 0x38, 0x70, 0x78, - 0x3b, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x6d, 0x65, 0x64, 0x69, 0x75, - 0x6d, 0x3b, 0x6f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3a, - 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x30, 0x3b, 0x63, 0x6f, - 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, - 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x30, 0x30, 0x36, 0x37, 0x66, - 0x34, 0x7d, 0x2e, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, - 0x3a, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x35, 0x61, 0x36, 0x31, - 0x36, 0x39, 0x7d, 0x2e, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x20, 0x23, 0x72, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x7b, 0x6d, 0x69, 0x6e, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x33, 0x2e, - 0x32, 0x35, 0x72, 0x65, 0x6d, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x2e, 0x35, - 0x72, 0x65, 0x6d, 0x3b, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x76, 0x65, 0x72, 0x74, 0x69, - 0x63, 0x61, 0x6c, 0x3b, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x2d, 0x62, - 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x7d, 0x23, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x7b, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x62, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x65, 0x3b, 0x74, - 0x6f, 0x70, 0x3a, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x3b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x2e, - 0x35, 0x72, 0x65, 0x6d, 0x7d, 0x23, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2d, 0x62, 0x75, - 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x7b, 0x62, 0x61, 0x63, 0x6b, - 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x35, 0x61, - 0x36, 0x31, 0x36, 0x39, 0x7d, 0x2e, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x20, 0x73, 0x70, 0x61, 0x6e, - 0x7b, 0x75, 0x73, 0x65, 0x72, 0x2d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x3a, 0x6e, 0x6f, 0x6e, - 0x65, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x23, 0x66, 0x66, - 0x65, 0x31, 0x34, 0x64, 0x3b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x32, 0x70, 0x78, - 0x20, 0x31, 0x30, 0x70, 0x78, 0x3b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x62, 0x6c, - 0x6f, 0x63, 0x6b, 0x3b, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x30, 0x30, 0x30, 0x7d, 0x2e, - 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x7b, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x31, - 0x72, 0x65, 0x6d, 0x20, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x3b, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, - 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x7d, - 0x2e, 0x63, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x7b, 0x70, 0x61, 0x64, 0x64, 0x69, - 0x6e, 0x67, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x31, 0x72, 0x65, 0x6d, 0x7d, 0x2e, - 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x7b, 0x66, 0x6c, 0x6f, 0x61, 0x74, - 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x7d, 0x2e, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x2d, 0x72, 0x69, 0x67, - 0x68, 0x74, 0x7b, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x72, 0x69, 0x67, 0x68, 0x74, 0x7d, 0x3c, - 0x2f, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x3d, 0x22, 0x6d, 0x61, 0x69, 0x6e, 0x20, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, - 0x74, 0x65, 0x78, 0x74, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x3e, 0x3c, 0x68, 0x31, - 0x20, 0x69, 0x64, 0x3d, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3d, - 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x6e, 0x6f, 0x6e, 0x65, 0x3e, 0x57, 0x65, 0x62, - 0x20, 0x43, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x3c, 0x2f, 0x68, 0x31, 0x3e, 0x3c, 0x61, 0x20, - 0x68, 0x72, 0x65, 0x66, 0x3d, 0x2f, 0x20, 0x3e, 0x3c, 0x69, 0x6d, 0x67, 0x20, 0x69, 0x64, 0x3d, - 0x6c, 0x6f, 0x67, 0x6f, 0x20, 0x6f, 0x6e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x3d, 0x72, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x4c, 0x6f, 0x67, 0x6f, 0x28, 0x29, 0x20, 0x73, 0x72, 0x63, 0x3d, 0x2f, 0x6c, - 0x6f, 0x67, 0x6f, 0x3e, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x3d, 0x22, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x20, 0x67, 0x72, 0x69, 0x64, 0x20, - 0x67, 0x61, 0x70, 0x2d, 0x32, 0x20, 0x70, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x22, 0x3e, 0x3c, 0x64, - 0x69, 0x76, 0x20, 0x69, 0x64, 0x3d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2d, 0x62, 0x75, - 0x74, 0x74, 0x6f, 0x6e, 0x3e, 0x3c, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x3d, 0x22, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x73, 0x68, 0x61, 0x64, - 0x6f, 0x77, 0x22, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x3d, 0x74, 0x65, 0x72, 0x6d, 0x69, - 0x6e, 0x61, 0x6c, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x28, 0x29, 0x3e, 0x3c, 0x73, 0x76, 0x67, 0x20, - 0x61, 0x72, 0x69, 0x61, 0x2d, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3d, 0x74, 0x72, 0x75, 0x65, - 0x20, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x69, 0x63, 0x6f, 0x6e, 0x3d, 0x64, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x6f, - 0x6c, 0x6f, 0x72, 0x20, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x66, 0x61, - 0x6c, 0x73, 0x65, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3d, 0x31, 0x65, 0x6d, 0x20, 0x76, - 0x69, 0x65, 0x77, 0x42, 0x6f, 0x78, 0x3d, 0x22, 0x36, 0x34, 0x20, 0x36, 0x34, 0x20, 0x38, 0x39, - 0x36, 0x20, 0x38, 0x39, 0x36, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x31, 0x65, 0x6d, 0x3e, - 0x3c, 0x70, 0x61, 0x74, 0x68, 0x20, 0x64, 0x3d, 0x22, 0x4d, 0x38, 0x36, 0x34, 0x20, 0x32, 0x35, - 0x36, 0x48, 0x37, 0x33, 0x36, 0x76, 0x2d, 0x38, 0x30, 0x63, 0x30, 0x2d, 0x33, 0x35, 0x2e, 0x33, - 0x2d, 0x32, 0x38, 0x2e, 0x37, 0x2d, 0x36, 0x34, 0x2d, 0x36, 0x34, 0x2d, 0x36, 0x34, 0x48, 0x33, - 0x35, 0x32, 0x63, 0x2d, 0x33, 0x35, 0x2e, 0x33, 0x20, 0x30, 0x2d, 0x36, 0x34, 0x20, 0x32, 0x38, - 0x2e, 0x37, 0x2d, 0x36, 0x34, 0x20, 0x36, 0x34, 0x76, 0x38, 0x30, 0x48, 0x31, 0x36, 0x30, 0x63, - 0x2d, 0x31, 0x37, 0x2e, 0x37, 0x20, 0x30, 0x2d, 0x33, 0x32, 0x20, 0x31, 0x34, 0x2e, 0x33, 0x2d, - 0x33, 0x32, 0x20, 0x33, 0x32, 0x76, 0x33, 0x32, 0x63, 0x30, 0x20, 0x34, 0x2e, 0x34, 0x20, 0x33, - 0x2e, 0x36, 0x20, 0x38, 0x20, 0x38, 0x20, 0x38, 0x68, 0x36, 0x30, 0x2e, 0x34, 0x6c, 0x32, 0x34, - 0x2e, 0x37, 0x20, 0x35, 0x32, 0x33, 0x63, 0x31, 0x2e, 0x36, 0x20, 0x33, 0x34, 0x2e, 0x31, 0x20, - 0x32, 0x39, 0x2e, 0x38, 0x20, 0x36, 0x31, 0x20, 0x36, 0x33, 0x2e, 0x39, 0x20, 0x36, 0x31, 0x68, - 0x34, 0x35, 0x34, 0x63, 0x33, 0x34, 0x2e, 0x32, 0x20, 0x30, 0x20, 0x36, 0x32, 0x2e, 0x33, 0x2d, - 0x32, 0x36, 0x2e, 0x38, 0x20, 0x36, 0x33, 0x2e, 0x39, 0x2d, 0x36, 0x31, 0x6c, 0x32, 0x34, 0x2e, - 0x37, 0x2d, 0x35, 0x32, 0x33, 0x48, 0x38, 0x38, 0x38, 0x63, 0x34, 0x2e, 0x34, 0x20, 0x30, 0x20, - 0x38, 0x2d, 0x33, 0x2e, 0x36, 0x20, 0x38, 0x2d, 0x38, 0x76, 0x2d, 0x33, 0x32, 0x63, 0x30, 0x2d, - 0x31, 0x37, 0x2e, 0x37, 0x2d, 0x31, 0x34, 0x2e, 0x33, 0x2d, 0x33, 0x32, 0x2d, 0x33, 0x32, 0x2d, - 0x33, 0x32, 0x7a, 0x6d, 0x2d, 0x32, 0x30, 0x30, 0x20, 0x30, 0x48, 0x33, 0x36, 0x30, 0x76, 0x2d, - 0x37, 0x32, 0x68, 0x33, 0x30, 0x34, 0x76, 0x37, 0x32, 0x7a, 0x22, 0x3e, 0x3c, 0x2f, 0x70, 0x61, - 0x74, 0x68, 0x3e, 0x3c, 0x2f, 0x73, 0x76, 0x67, 0x3e, 0x3c, 0x2f, 0x62, 0x75, 0x74, 0x74, 0x6f, - 0x6e, 0x3e, 0x20, 0x3c, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x3d, 0x22, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, - 0x22, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x3d, 0x22, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x3d, 0x21, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x22, 0x3e, 0x3c, 0x73, 0x76, 0x67, 0x20, 0x61, - 0x72, 0x69, 0x61, 0x2d, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3d, 0x74, 0x72, 0x75, 0x65, 0x20, - 0x64, 0x61, 0x74, 0x61, 0x2d, 0x69, 0x63, 0x6f, 0x6e, 0x3d, 0x6c, 0x6f, 0x63, 0x6b, 0x20, 0x66, - 0x69, 0x6c, 0x6c, 0x3d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, - 0x20, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x66, 0x61, 0x6c, 0x73, 0x65, - 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3d, 0x31, 0x65, 0x6d, 0x20, 0x76, 0x69, 0x65, 0x77, - 0x42, 0x6f, 0x78, 0x3d, 0x22, 0x36, 0x34, 0x20, 0x36, 0x34, 0x20, 0x38, 0x39, 0x36, 0x20, 0x38, - 0x39, 0x36, 0x22, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x31, 0x65, 0x6d, 0x3e, 0x3c, 0x70, 0x61, - 0x74, 0x68, 0x20, 0x64, 0x3d, 0x22, 0x4d, 0x38, 0x33, 0x32, 0x20, 0x34, 0x36, 0x34, 0x68, 0x2d, - 0x36, 0x38, 0x56, 0x32, 0x34, 0x30, 0x63, 0x30, 0x2d, 0x37, 0x30, 0x2e, 0x37, 0x2d, 0x35, 0x37, - 0x2e, 0x33, 0x2d, 0x31, 0x32, 0x38, 0x2d, 0x31, 0x32, 0x38, 0x2d, 0x31, 0x32, 0x38, 0x48, 0x33, - 0x38, 0x38, 0x63, 0x2d, 0x37, 0x30, 0x2e, 0x37, 0x20, 0x30, 0x2d, 0x31, 0x32, 0x38, 0x20, 0x35, - 0x37, 0x2e, 0x33, 0x2d, 0x31, 0x32, 0x38, 0x20, 0x31, 0x32, 0x38, 0x76, 0x32, 0x32, 0x34, 0x68, - 0x2d, 0x36, 0x38, 0x63, 0x2d, 0x31, 0x37, 0x2e, 0x37, 0x20, 0x30, 0x2d, 0x33, 0x32, 0x20, 0x31, - 0x34, 0x2e, 0x33, 0x2d, 0x33, 0x32, 0x20, 0x33, 0x32, 0x76, 0x33, 0x38, 0x34, 0x63, 0x30, 0x20, - 0x31, 0x37, 0x2e, 0x37, 0x20, 0x31, 0x34, 0x2e, 0x33, 0x20, 0x33, 0x32, 0x20, 0x33, 0x32, 0x20, - 0x33, 0x32, 0x68, 0x36, 0x34, 0x30, 0x63, 0x31, 0x37, 0x2e, 0x37, 0x20, 0x30, 0x20, 0x33, 0x32, - 0x2d, 0x31, 0x34, 0x2e, 0x33, 0x20, 0x33, 0x32, 0x2d, 0x33, 0x32, 0x56, 0x34, 0x39, 0x36, 0x63, - 0x30, 0x2d, 0x31, 0x37, 0x2e, 0x37, 0x2d, 0x31, 0x34, 0x2e, 0x33, 0x2d, 0x33, 0x32, 0x2d, 0x33, - 0x32, 0x2d, 0x33, 0x32, 0x7a, 0x4d, 0x33, 0x33, 0x32, 0x20, 0x32, 0x34, 0x30, 0x63, 0x30, 0x2d, - 0x33, 0x30, 0x2e, 0x39, 0x20, 0x32, 0x35, 0x2e, 0x31, 0x2d, 0x35, 0x36, 0x20, 0x35, 0x36, 0x2d, - 0x35, 0x36, 0x68, 0x32, 0x34, 0x38, 0x63, 0x33, 0x30, 0x2e, 0x39, 0x20, 0x30, 0x20, 0x35, 0x36, - 0x20, 0x32, 0x35, 0x2e, 0x31, 0x20, 0x35, 0x36, 0x20, 0x35, 0x36, 0x76, 0x32, 0x32, 0x34, 0x48, - 0x33, 0x33, 0x32, 0x56, 0x32, 0x34, 0x30, 0x7a, 0x6d, 0x34, 0x36, 0x30, 0x20, 0x36, 0x30, 0x30, - 0x48, 0x32, 0x33, 0x32, 0x56, 0x35, 0x33, 0x36, 0x68, 0x35, 0x36, 0x30, 0x76, 0x33, 0x30, 0x34, - 0x7a, 0x4d, 0x34, 0x38, 0x34, 0x20, 0x37, 0x30, 0x31, 0x76, 0x35, 0x33, 0x63, 0x30, 0x20, 0x34, - 0x2e, 0x34, 0x20, 0x33, 0x2e, 0x36, 0x20, 0x38, 0x20, 0x38, 0x20, 0x38, 0x68, 0x34, 0x30, 0x63, - 0x34, 0x2e, 0x34, 0x20, 0x30, 0x20, 0x38, 0x2d, 0x33, 0x2e, 0x36, 0x20, 0x38, 0x2d, 0x38, 0x76, - 0x2d, 0x35, 0x33, 0x61, 0x34, 0x38, 0x2e, 0x30, 0x31, 0x20, 0x34, 0x38, 0x2e, 0x30, 0x31, 0x20, - 0x30, 0x20, 0x31, 0x30, 0x2d, 0x35, 0x36, 0x20, 0x30, 0x7a, 0x22, 0x3e, 0x3c, 0x2f, 0x70, 0x61, - 0x74, 0x68, 0x3e, 0x3c, 0x2f, 0x73, 0x76, 0x67, 0x3e, 0x3c, 0x2f, 0x62, 0x75, 0x74, 0x74, 0x6f, - 0x6e, 0x3e, 0x20, 0x3c, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x3d, 0x22, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, - 0x22, 0x6f, 0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x3d, 0x22, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x3d, 0x21, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x3e, 0x3c, 0x73, 0x76, 0x67, - 0x20, 0x61, 0x72, 0x69, 0x61, 0x2d, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3d, 0x74, 0x72, 0x75, - 0x65, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x69, 0x63, 0x6f, 0x6e, 0x3d, 0x63, 0x6c, 0x6f, 0x63, - 0x6b, 0x2d, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3d, 0x63, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x66, 0x6f, 0x63, 0x75, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x3d, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x3d, 0x31, 0x65, 0x6d, 0x20, 0x76, 0x69, 0x65, 0x77, 0x42, 0x6f, 0x78, 0x3d, 0x22, 0x36, - 0x34, 0x20, 0x36, 0x34, 0x20, 0x38, 0x39, 0x36, 0x20, 0x38, 0x39, 0x36, 0x22, 0x77, 0x69, 0x64, - 0x74, 0x68, 0x3d, 0x31, 0x65, 0x6d, 0x3e, 0x3c, 0x70, 0x61, 0x74, 0x68, 0x20, 0x64, 0x3d, 0x22, - 0x4d, 0x35, 0x31, 0x32, 0x20, 0x36, 0x34, 0x43, 0x32, 0x36, 0x34, 0x2e, 0x36, 0x20, 0x36, 0x34, - 0x20, 0x36, 0x34, 0x20, 0x32, 0x36, 0x34, 0x2e, 0x36, 0x20, 0x36, 0x34, 0x20, 0x35, 0x31, 0x32, - 0x73, 0x32, 0x30, 0x30, 0x2e, 0x36, 0x20, 0x34, 0x34, 0x38, 0x20, 0x34, 0x34, 0x38, 0x20, 0x34, - 0x34, 0x38, 0x20, 0x34, 0x34, 0x38, 0x2d, 0x32, 0x30, 0x30, 0x2e, 0x36, 0x20, 0x34, 0x34, 0x38, - 0x2d, 0x34, 0x34, 0x38, 0x53, 0x37, 0x35, 0x39, 0x2e, 0x34, 0x20, 0x36, 0x34, 0x20, 0x35, 0x31, - 0x32, 0x20, 0x36, 0x34, 0x7a, 0x6d, 0x30, 0x20, 0x38, 0x32, 0x30, 0x63, 0x2d, 0x32, 0x30, 0x35, - 0x2e, 0x34, 0x20, 0x30, 0x2d, 0x33, 0x37, 0x32, 0x2d, 0x31, 0x36, 0x36, 0x2e, 0x36, 0x2d, 0x33, - 0x37, 0x32, 0x2d, 0x33, 0x37, 0x32, 0x73, 0x31, 0x36, 0x36, 0x2e, 0x36, 0x2d, 0x33, 0x37, 0x32, - 0x20, 0x33, 0x37, 0x32, 0x2d, 0x33, 0x37, 0x32, 0x20, 0x33, 0x37, 0x32, 0x20, 0x31, 0x36, 0x36, - 0x2e, 0x36, 0x20, 0x33, 0x37, 0x32, 0x20, 0x33, 0x37, 0x32, 0x2d, 0x31, 0x36, 0x36, 0x2e, 0x36, - 0x20, 0x33, 0x37, 0x32, 0x2d, 0x33, 0x37, 0x32, 0x20, 0x33, 0x37, 0x32, 0x7a, 0x22, 0x3e, 0x3c, - 0x2f, 0x70, 0x61, 0x74, 0x68, 0x3e, 0x3c, 0x70, 0x61, 0x74, 0x68, 0x20, 0x64, 0x3d, 0x22, 0x4d, - 0x36, 0x38, 0x36, 0x2e, 0x37, 0x20, 0x36, 0x33, 0x38, 0x2e, 0x36, 0x4c, 0x35, 0x34, 0x34, 0x2e, - 0x31, 0x20, 0x35, 0x33, 0x35, 0x2e, 0x35, 0x56, 0x32, 0x38, 0x38, 0x63, 0x30, 0x2d, 0x34, 0x2e, - 0x34, 0x2d, 0x33, 0x2e, 0x36, 0x2d, 0x38, 0x2d, 0x38, 0x2d, 0x38, 0x48, 0x34, 0x38, 0x38, 0x63, - 0x2d, 0x34, 0x2e, 0x34, 0x20, 0x30, 0x2d, 0x38, 0x20, 0x33, 0x2e, 0x36, 0x2d, 0x38, 0x20, 0x38, - 0x76, 0x32, 0x37, 0x35, 0x2e, 0x34, 0x63, 0x30, 0x20, 0x32, 0x2e, 0x36, 0x20, 0x31, 0x2e, 0x32, - 0x20, 0x35, 0x20, 0x33, 0x2e, 0x33, 0x20, 0x36, 0x2e, 0x35, 0x6c, 0x31, 0x36, 0x35, 0x2e, 0x34, - 0x20, 0x31, 0x32, 0x30, 0x2e, 0x36, 0x63, 0x33, 0x2e, 0x36, 0x20, 0x32, 0x2e, 0x36, 0x20, 0x38, - 0x2e, 0x36, 0x20, 0x31, 0x2e, 0x38, 0x20, 0x31, 0x31, 0x2e, 0x32, 0x2d, 0x31, 0x2e, 0x37, 0x6c, - 0x32, 0x38, 0x2e, 0x36, 0x2d, 0x33, 0x39, 0x63, 0x32, 0x2e, 0x36, 0x2d, 0x33, 0x2e, 0x37, 0x20, - 0x31, 0x2e, 0x38, 0x2d, 0x38, 0x2e, 0x37, 0x2d, 0x31, 0x2e, 0x38, 0x2d, 0x31, 0x31, 0x2e, 0x32, - 0x7a, 0x22, 0x3e, 0x3c, 0x2f, 0x70, 0x61, 0x74, 0x68, 0x3e, 0x3c, 0x2f, 0x73, 0x76, 0x67, 0x3e, - 0x3c, 0x2f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, - 0x74, 0x65, 0x78, 0x74, 0x61, 0x72, 0x65, 0x61, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, - 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x77, 0x2d, 0x66, 0x75, 0x6c, 0x6c, 0x22, 0x63, - 0x6f, 0x6c, 0x73, 0x3d, 0x33, 0x30, 0x20, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, - 0x69, 0x64, 0x3d, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x3d, 0x34, - 0x30, 0x20, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3d, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x3e, 0x3c, - 0x2f, 0x74, 0x65, 0x78, 0x74, 0x61, 0x72, 0x65, 0x61, 0x3e, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x67, 0x61, 0x70, 0x2d, 0x32, 0x20, 0x67, 0x72, 0x69, 0x64, - 0x20, 0x66, 0x6c, 0x65, 0x78, 0x20, 0x77, 0x2d, 0x66, 0x75, 0x6c, 0x6c, 0x22, 0x69, 0x64, 0x3d, - 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x3e, 0x3c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x67, - 0x72, 0x6f, 0x77, 0x22, 0x69, 0x64, 0x3d, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x74, - 0x65, 0x78, 0x74, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x63, 0x6d, 0x64, 0x3e, 0x3c, 0x62, 0x75, - 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x72, 0x6f, 0x75, 0x6e, - 0x64, 0x65, 0x64, 0x20, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x20, 0x67, 0x72, 0x69, 0x64, 0x20, - 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x79, 0x2d, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x2d, 0x65, 0x6e, - 0x64, 0x22, 0x69, 0x64, 0x3d, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x62, 0x75, 0x74, - 0x74, 0x6f, 0x6e, 0x3e, 0x53, 0x45, 0x4e, 0x44, 0x3c, 0x2f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, - 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x68, 0x31, - 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x3c, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x6c, - 0x65, 0x74, 0x20, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x60, 0x77, 0x73, - 0x3a, 0x2f, 0x2f, 0x24, 0x7b, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x6c, 0x6f, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x68, 0x6f, 0x73, 0x74, 0x7d, 0x2f, 0x77, 0x73, 0x60, 0x3b, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, - 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x74, 0x65, 0x78, 0x74, 0x41, - 0x72, 0x65, 0x61, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, - 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x72, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, - 0x20, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x6b, 0x20, - 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, - 0x20, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, - 0x74, 0x20, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x3b, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, - 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x63, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x3d, 0x20, - 0x5b, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3d, 0x20, - 0x30, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4c, 0x6f, 0x67, 0x6f, 0x28, 0x29, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, - 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, - 0x22, 0x6c, 0x6f, 0x67, 0x6f, 0x22, 0x29, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x28, 0x29, - 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, - 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, - 0x64, 0x28, 0x22, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, 0x29, 0x2e, 0x73, 0x74, 0x79, 0x6c, 0x65, - 0x2e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x22, 0x62, 0x6c, 0x6f, 0x63, - 0x6b, 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, - 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x57, 0x65, 0x62, 0x50, - 0x61, 0x67, 0x65, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, - 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x29, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x22, 0x29, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x57, 0x65, 0x62, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x28, - 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x42, - 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x74, 0x72, 0x61, 0x70, 0x4b, 0x65, 0x79, 0x50, 0x72, 0x65, 0x73, 0x73, 0x28, 0x29, 0x3b, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x6a, 0x73, 0x6f, 0x6e, 0x20, 0x3d, - 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x2e, 0x68, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x79, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x3d, 0x20, - 0x6a, 0x73, 0x6f, 0x6e, 0x20, 0x3f, 0x20, 0x4a, 0x53, 0x4f, 0x4e, 0x2e, 0x70, 0x61, 0x72, 0x73, - 0x65, 0x28, 0x6a, 0x73, 0x6f, 0x6e, 0x29, 0x20, 0x3a, 0x20, 0x5b, 0x5d, 0x3b, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, - 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3b, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x57, 0x65, 0x62, 0x53, 0x6f, 0x63, 0x6b, - 0x65, 0x74, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, - 0x6c, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x28, 0x63, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, - 0x74, 0x28, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x29, 0x3b, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, - 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, - 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x73, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, - 0x28, 0x28, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x57, 0x72, 0x69, - 0x74, 0x65, 0x28, 0x22, 0x5b, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5d, 0x20, - 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x20, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x2e, - 0x22, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x28, - 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x6e, 0x69, 0x74, 0x57, 0x65, 0x62, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x28, 0x29, 0x3b, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x20, 0x33, 0x30, 0x30, 0x30, 0x29, - 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, - 0x61, 0x6c, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x22, 0x5b, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, - 0x69, 0x61, 0x6c, 0x5d, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x2e, - 0x2e, 0x2e, 0x22, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, - 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x20, 0x3d, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x57, 0x65, - 0x62, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x28, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x29, - 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, - 0x6b, 0x65, 0x74, 0x2e, 0x6f, 0x6e, 0x6f, 0x70, 0x65, 0x6e, 0x20, 0x3d, 0x20, 0x6f, 0x6e, 0x4f, - 0x70, 0x65, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, - 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x6f, 0x6e, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x20, 0x3d, - 0x20, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x6f, 0x6e, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x20, 0x3d, 0x20, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, - 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x6f, 0x6e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x20, 0x3d, 0x20, 0x6f, - 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x69, 0x74, - 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x29, 0x2e, 0x61, 0x64, 0x64, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x22, 0x63, - 0x6c, 0x69, 0x63, 0x6b, 0x22, 0x2c, 0x20, 0x73, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x61, - 0x6e, 0x64, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x72, 0x61, 0x70, 0x4b, 0x65, 0x79, - 0x50, 0x72, 0x65, 0x73, 0x73, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, - 0x6e, 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x22, 0x29, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x22, 0x6b, 0x65, 0x79, 0x70, - 0x72, 0x65, 0x73, 0x73, 0x22, 0x2c, 0x20, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x3d, - 0x3e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x69, 0x66, 0x20, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x3d, - 0x3d, 0x3d, 0x20, 0x22, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, - 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x29, 0x2e, - 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, - 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, - 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, - 0x65, 0x6e, 0x65, 0x72, 0x28, 0x22, 0x6b, 0x65, 0x79, 0x64, 0x6f, 0x77, 0x6e, 0x22, 0x2c, 0x20, - 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x64, 0x6f, 0x63, - 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x6c, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x26, 0x26, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, - 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x69, 0x64, - 0x20, 0x3d, 0x3d, 0x3d, 0x20, 0x27, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x65, - 0x78, 0x74, 0x27, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x2e, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x3d, 0x3d, 0x3d, 0x20, 0x22, 0x41, 0x72, 0x72, 0x6f, 0x77, - 0x55, 0x70, 0x22, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, - 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x2d, 0x2d, 0x3b, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3c, 0x20, 0x30, 0x29, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, - 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x20, 0x3e, 0x20, 0x30, 0x20, 0x3f, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x2d, 0x20, 0x31, - 0x20, 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x63, 0x6f, - 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, - 0x3e, 0x3d, 0x20, 0x30, 0x20, 0x26, 0x26, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3c, 0x20, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, - 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, - 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, - 0x22, 0x29, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, - 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5b, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, - 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x5d, 0x3b, 0x0a, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, - 0x20, 0x65, 0x6c, 0x73, 0x65, 0x20, 0x69, 0x66, 0x20, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, - 0x63, 0x6f, 0x64, 0x65, 0x20, 0x3d, 0x3d, 0x3d, 0x20, 0x22, 0x41, 0x72, 0x72, 0x6f, 0x77, 0x44, - 0x6f, 0x77, 0x6e, 0x22, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x2b, 0x2b, 0x3b, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3e, 0x3d, 0x20, 0x63, 0x6f, - 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x29, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, - 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3d, - 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3e, 0x3d, - 0x20, 0x30, 0x20, 0x26, 0x26, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3c, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, - 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, - 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, - 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x22, 0x29, - 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5b, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x5d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x7d, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x6e, 0x4f, 0x70, - 0x65, 0x6e, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, - 0x28, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x29, - 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, - 0x61, 0x6c, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x22, 0x5b, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, - 0x69, 0x61, 0x6c, 0x5d, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x2e, 0x2e, - 0x2e, 0x22, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, - 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x62, 0x75, - 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x29, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x20, - 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, - 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x22, 0x29, 0x2e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, - 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, - 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x28, 0x65, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x67, 0x28, - 0x22, 0x5b, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5d, 0x20, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x21, 0x22, 0x2c, 0x20, 0x65, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x73, - 0x65, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, - 0x28, 0x65, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, - 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x22, 0x5b, 0x57, 0x65, 0x62, 0x53, - 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5d, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x2e, 0x22, 0x2c, 0x20, 0x65, 0x29, 0x3b, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x28, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, - 0x66, 0x20, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3d, 0x3d, - 0x20, 0x27, 0x70, 0x6f, 0x6e, 0x67, 0x27, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x54, 0x69, 0x6d, 0x65, - 0x6f, 0x75, 0x74, 0x28, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x29, - 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x69, - 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x66, 0x61, 0x6c, 0x73, - 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x20, 0x65, 0x6c, 0x73, - 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, - 0x6c, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x72, 0x61, 0x77, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x6e, 0x6f, 0x77, - 0x20, 0x3d, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x44, 0x61, 0x74, 0x65, 0x28, 0x29, 0x3b, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x72, 0x61, 0x77, 0x20, 0x3d, - 0x20, 0x22, 0x5b, 0x22, 0x20, 0x2b, 0x20, 0x6e, 0x6f, 0x77, 0x2e, 0x74, 0x6f, 0x4c, 0x6f, 0x63, - 0x61, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x28, 0x29, 0x20, - 0x2b, 0x20, 0x22, 0x5d, 0x20, 0x22, 0x20, 0x2b, 0x20, 0x72, 0x61, 0x77, 0x20, 0x2b, 0x20, 0x22, - 0x5c, 0x6e, 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, 0x41, 0x72, 0x65, 0x61, 0x2e, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x2b, 0x3d, 0x20, 0x72, 0x61, 0x77, 0x20, 0x2b, 0x20, 0x22, - 0x5c, 0x6e, 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, - 0x28, 0x21, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x6b, - 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x74, 0x65, 0x78, 0x74, 0x41, 0x72, 0x65, 0x61, 0x2e, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x54, - 0x6f, 0x70, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x74, 0x41, 0x72, 0x65, 0x61, 0x2e, 0x73, 0x63, - 0x72, 0x6f, 0x6c, 0x6c, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, - 0x61, 0x6c, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, 0x41, 0x72, 0x65, 0x61, 0x2e, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x74, 0x65, 0x78, 0x74, 0x41, 0x72, 0x65, 0x61, 0x2e, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, - 0x54, 0x6f, 0x70, 0x20, 0x3d, 0x20, 0x74, 0x65, 0x78, 0x74, 0x41, 0x72, 0x65, 0x61, 0x2e, 0x73, - 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x20, 0x73, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x28, 0x29, 0x20, 0x7b, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x63, 0x6d, 0x64, - 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, - 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x22, 0x29, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, - 0x65, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x27, 0x73, 0x65, 0x6e, 0x64, 0x20, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x3a, 0x20, 0x27, 0x2c, 0x20, 0x63, 0x6d, 0x64, 0x29, 0x3b, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, - 0x73, 0x65, 0x6e, 0x64, 0x28, 0x63, 0x6d, 0x64, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x28, 0x63, 0x6d, 0x64, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x67, - 0x28, 0x27, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, - 0x27, 0x2c, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, - 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x3e, 0x20, 0x32, - 0x30, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x27, 0x68, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x63, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x27, 0x29, 0x3b, - 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, - 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x73, 0x70, 0x6c, 0x69, - 0x63, 0x65, 0x28, 0x30, 0x2c, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x2d, 0x20, 0x32, 0x30, - 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, - 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x67, 0x28, 0x27, 0x68, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x27, 0x2c, 0x20, 0x63, 0x6f, 0x6d, - 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x78, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, - 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x2e, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, - 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, - 0x64, 0x28, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2d, 0x74, 0x65, 0x78, 0x74, 0x22, - 0x29, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x20, 0x3d, 0x20, 0x22, 0x22, 0x3b, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x53, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x2e, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x20, 0x3d, 0x20, 0x4a, 0x53, 0x4f, - 0x4e, 0x2e, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x69, 0x66, 0x79, 0x28, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, - 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x73, 0x65, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, - 0x76, 0x61, 0x6c, 0x28, 0x28, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x21, 0x70, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x20, 0x26, 0x26, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, - 0x74, 0x2e, 0x72, 0x65, 0x61, 0x64, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x3d, 0x20, - 0x57, 0x65, 0x62, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x4f, 0x50, 0x45, 0x4e, 0x29, 0x20, - 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x69, - 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x20, 0x3d, 0x20, 0x73, 0x65, 0x74, 0x54, - 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x28, 0x28, 0x29, 0x20, 0x3d, 0x3e, 0x20, 0x7b, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, - 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x22, 0x5b, 0x57, - 0x65, 0x62, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5d, 0x20, 0x50, 0x69, 0x6e, 0x67, 0x20, 0x74, - 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x2e, 0x22, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, - 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, - 0x69, 0x74, 0x57, 0x65, 0x62, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x28, 0x29, 0x3b, 0x0a, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x20, 0x33, 0x30, - 0x30, 0x30, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x73, 0x65, 0x6e, 0x64, 0x28, - 0x22, 0x70, 0x69, 0x6e, 0x67, 0x22, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x20, 0x32, 0x30, 0x30, 0x30, 0x29, 0x3b, - 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x61, 0x64, 0x64, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x22, 0x44, - 0x4f, 0x4d, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x61, 0x64, 0x65, 0x64, 0x22, - 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x29, 0x20, 0x7b, 0x0a, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x57, 0x65, 0x62, 0x50, - 0x61, 0x67, 0x65, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x2c, 0x20, 0x66, 0x61, - 0x6c, 0x73, 0x65, 0x29, 0x3b, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e + #include "webServerConstants/webSerial.h" }; #endif \ No newline at end of file diff --git a/src/webServerConstants/favicon-32x32.h b/src/webServerConstants/favicon-32x32.h new file mode 100644 index 0000000..08358ab --- /dev/null +++ b/src/webServerConstants/favicon-32x32.h @@ -0,0 +1,52 @@ +0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, +0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x08, 0x06, 0x00, 0x00, 0x00, 0x73, 0x7a, 0x7a, +0xf4, 0x00, 0x00, 0x02, 0xfb, 0x49, 0x44, 0x41, 0x54, 0x58, 0x47, 0xcd, 0x97, 0x4b, 0x4c, 0x53, +0x41, 0x14, 0x86, 0xff, 0x69, 0xa5, 0x3c, 0x8a, 0x12, 0x14, 0x84, 0xa6, 0x96, 0x60, 0x6d, 0xd0, +0x50, 0x14, 0x51, 0xd1, 0x6a, 0x4c, 0x51, 0x63, 0x88, 0x8a, 0x06, 0x63, 0x42, 0xc0, 0x85, 0x01, +0xc3, 0xae, 0xe8, 0x0a, 0x0d, 0x4a, 0x30, 0x31, 0x18, 0xd1, 0x84, 0x18, 0x83, 0x46, 0x5d, 0xa9, +0x09, 0xb8, 0x01, 0xa2, 0x31, 0x82, 0x31, 0x82, 0x6e, 0x48, 0x78, 0xb6, 0x74, 0xe1, 0x8b, 0x47, +0xb0, 0x3e, 0x0a, 0xb4, 0x05, 0xa1, 0xe1, 0x25, 0x14, 0x68, 0xeb, 0x9d, 0x22, 0xb7, 0x40, 0x1f, +0x1b, 0xef, 0xa5, 0xce, 0xea, 0xde, 0x99, 0xce, 0x39, 0xdf, 0xfc, 0x7f, 0x67, 0xee, 0x1c, 0xe2, +0xbc, 0x0e, 0x81, 0xe3, 0x84, 0xba, 0x58, 0x40, 0x88, 0xc6, 0x09, 0x48, 0xb0, 0x0a, 0x8d, 0x00, +0x26, 0x07, 0x71, 0x3e, 0x14, 0xd4, 0x37, 0x95, 0x11, 0x7b, 0x87, 0xba, 0x84, 0x10, 0x72, 0x63, +0x15, 0xf2, 0x7a, 0xa4, 0x70, 0x12, 0xe7, 0x35, 0xe2, 0xe8, 0x48, 0x33, 0x81, 0x20, 0x36, 0x10, +0x00, 0x4c, 0x4e, 0x33, 0x71, 0x68, 0xd3, 0x18, 0xe5, 0x03, 0xd7, 0xfe, 0x6f, 0x80, 0x86, 0xb6, +0x51, 0xd4, 0xbe, 0x1b, 0x66, 0xe5, 0xd1, 0x64, 0x49, 0x91, 0xb2, 0x35, 0xdc, 0xaf, 0x5c, 0x25, +0x8f, 0xbe, 0xc1, 0x36, 0xeb, 0x60, 0x7f, 0x93, 0x79, 0x28, 0x0a, 0x07, 0x93, 0x23, 0x7c, 0xce, +0xf1, 0xab, 0xc0, 0x9d, 0x67, 0x46, 0x5c, 0xae, 0x30, 0xb0, 0x93, 0x93, 0xb6, 0x88, 0xa1, 0xad, +0xdc, 0x85, 0x60, 0x91, 0xc0, 0x67, 0xc0, 0xc8, 0xc3, 0xcd, 0x18, 0x9b, 0x9c, 0x67, 0xc7, 0x2b, +0x2e, 0x29, 0x70, 0x31, 0x5b, 0xca, 0x0d, 0x00, 0x8d, 0x72, 0xf5, 0x7c, 0x1c, 0x6e, 0x6a, 0x36, +0xfb, 0x0c, 0xb8, 0xe1, 0x48, 0x33, 0xac, 0x13, 0x3c, 0x02, 0xac, 0x11, 0x12, 0xb4, 0x3c, 0x49, +0xc1, 0x9e, 0xc4, 0xb5, 0x5e, 0x21, 0xa2, 0x8f, 0xb6, 0x60, 0x64, 0x6c, 0x8e, 0x3f, 0x05, 0x68, +0x64, 0xa5, 0x5c, 0x0c, 0x5d, 0x95, 0x77, 0x2b, 0x62, 0xd2, 0x5b, 0x30, 0x6c, 0xe5, 0x19, 0xc0, +0x9f, 0x15, 0x92, 0x63, 0xad, 0xb0, 0x8c, 0xcc, 0xf2, 0xab, 0x00, 0x8d, 0x4e, 0xad, 0x68, 0x66, +0xac, 0x48, 0x5d, 0x61, 0xc5, 0xa6, 0xe3, 0xad, 0x18, 0xfc, 0xc5, 0x13, 0xc0, 0x3a, 0xb1, 0x10, +0xe3, 0x53, 0x76, 0x76, 0x75, 0x4a, 0x79, 0x18, 0x63, 0xc5, 0xee, 0x65, 0xbb, 0x22, 0x2e, 0xa3, +0x0d, 0xfd, 0x43, 0x36, 0x7e, 0x14, 0x50, 0xa7, 0x44, 0xb8, 0x92, 0x35, 0xb6, 0x5b, 0xd9, 0x04, +0x57, 0xf2, 0x64, 0x28, 0x2b, 0x90, 0xb3, 0xef, 0xf1, 0xa7, 0xda, 0xf0, 0xd3, 0xcc, 0x13, 0x00, +0x3d, 0x84, 0x6a, 0x6e, 0x27, 0x62, 0x47, 0x8e, 0x0e, 0xd3, 0xb6, 0x85, 0xc3, 0xc6, 0x65, 0xc5, +0x63, 0xc6, 0x0a, 0xe5, 0xc2, 0xae, 0x90, 0x67, 0xb6, 0xe3, 0xfb, 0xe0, 0x0c, 0x3f, 0x0a, 0x50, +0xc9, 0x3f, 0x56, 0xa7, 0xa2, 0xbc, 0xd2, 0x88, 0xa2, 0xfb, 0xee, 0x03, 0x2a, 0xf1, 0xaf, 0x15, +0x21, 0x8c, 0x3a, 0x8a, 0xd3, 0xed, 0x30, 0x0c, 0xf0, 0x04, 0xb0, 0x2d, 0x3e, 0x0c, 0x5f, 0x6a, +0x53, 0x31, 0x6f, 0x77, 0x42, 0x95, 0xab, 0x87, 0xbe, 0x67, 0x92, 0x5d, 0x69, 0x51, 0xae, 0x0c, +0xb7, 0x2e, 0xc8, 0x91, 0x70, 0xa6, 0x03, 0x7d, 0xc6, 0x69, 0x7e, 0x14, 0x48, 0x88, 0x0b, 0x45, +0xf7, 0xf3, 0xbd, 0xae, 0xe0, 0xfa, 0xee, 0x49, 0xa8, 0xf2, 0xf4, 0x2e, 0x18, 0xda, 0x84, 0x02, +0xba, 0x2b, 0x76, 0x22, 0xbf, 0xb4, 0x17, 0x9f, 0x0d, 0x53, 0xfc, 0x00, 0x28, 0x64, 0xa1, 0xe8, +0x7d, 0xb1, 0x00, 0x40, 0x5b, 0xd1, 0x3d, 0x03, 0xca, 0xab, 0x8c, 0xec, 0xfb, 0x76, 0x85, 0x18, +0xa2, 0x20, 0x01, 0x3a, 0xbb, 0x26, 0xf8, 0x01, 0x90, 0x4b, 0x43, 0xd0, 0xf7, 0x72, 0x1f, 0x1b, +0xfc, 0xf7, 0x8c, 0x1d, 0xc9, 0x67, 0x3b, 0xf1, 0xb5, 0xdf, 0x2d, 0x39, 0x23, 0x04, 0x1c, 0x4b, +0x6e, 0x18, 0x9c, 0x7e, 0x8c, 0xe2, 0x25, 0x21, 0x30, 0xbc, 0x72, 0x03, 0x50, 0x92, 0xf7, 0x5a, +0x2b, 0xd2, 0x35, 0x1f, 0xe0, 0xeb, 0x56, 0xc3, 0x29, 0x80, 0x2c, 0x36, 0x18, 0x3f, 0xea, 0x54, +0xac, 0x02, 0x8b, 0x0f, 0xf9, 0xa5, 0x3d, 0x78, 0x5a, 0x67, 0xf6, 0xe8, 0xa7, 0x1d, 0x9c, 0x02, +0x48, 0x37, 0x06, 0xc3, 0xf8, 0xda, 0x13, 0x60, 0x74, 0x7c, 0x0e, 0xca, 0x2c, 0x1d, 0x2c, 0xa3, +0xee, 0x23, 0x78, 0x91, 0x86, 0x53, 0x00, 0x49, 0x94, 0x08, 0x03, 0x6f, 0xf6, 0x7b, 0x5d, 0x69, +0x4d, 0xe3, 0x10, 0x72, 0x8a, 0xbb, 0x3c, 0xc6, 0x38, 0x05, 0x88, 0x59, 0x2f, 0x82, 0xe9, 0xad, +0x77, 0x00, 0x9a, 0x39, 0xb3, 0xf0, 0x13, 0xea, 0x9a, 0x46, 0x96, 0x41, 0x70, 0x0a, 0x10, 0x1d, +0x19, 0x04, 0x4b, 0xc3, 0x01, 0xaf, 0x0a, 0xd0, 0xce, 0x7e, 0x8b, 0x0d, 0x49, 0xd9, 0xda, 0x65, +0x1f, 0xac, 0x7f, 0x02, 0x58, 0x79, 0x29, 0x0d, 0x0f, 0x15, 0xe2, 0x6e, 0xa1, 0xc2, 0x27, 0x00, +0x1d, 0xa8, 0x66, 0xac, 0xa8, 0x5f, 0xa2, 0xc2, 0xb9, 0x8c, 0x58, 0xa4, 0xab, 0x22, 0x7d, 0xce, +0xf9, 0xbf, 0xaf, 0xe5, 0x7e, 0x97, 0xca, 0xd1, 0x20, 0x55, 0xc0, 0xc4, 0xc4, 0x0a, 0x5c, 0x69, +0x66, 0xd7, 0x31, 0xc5, 0xa9, 0x33, 0x30, 0xc5, 0x29, 0xa1, 0xc5, 0xa9, 0xab, 0x3c, 0x3f, 0xa9, +0x2e, 0x66, 0x20, 0x0a, 0x56, 0x51, 0x09, 0x33, 0x93, 0xfc, 0x01, 0xf3, 0x6f, 0x2d, 0xfb, 0x03, +0xed, 0x06, 0xb0, 0xce, 0xb5, 0xc4, 0xb4, 0x59, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, +0xae, 0x42, 0x60, 0x82, \ No newline at end of file diff --git a/src/webServerConstants/style.h b/src/webServerConstants/style.h new file mode 100644 index 0000000..f5b039f --- /dev/null +++ b/src/webServerConstants/style.h @@ -0,0 +1,363 @@ +0x2f, 0x2a, 0x0d, 0x0a, 0x65, 0x73, 0x63, 0x61, 0x70, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x68, +0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x63, 0x65, 0x73, 0x63, 0x61, +0x70, 0x65, 0x72, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x0d, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, +0x3a, 0x20, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x63, 0x64, 0x6e, 0x2e, 0x6a, 0x73, +0x64, 0x65, 0x6c, 0x69, 0x76, 0x72, 0x2e, 0x6e, 0x65, 0x74, 0x2f, 0x6e, 0x70, 0x6d, 0x2f, 0x40, +0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x64, 0x65, 0x76, 0x2f, 0x6e, 0x65, 0x77, 0x2e, 0x63, +0x73, 0x73, 0x40, 0x31, 0x2e, 0x31, 0x2e, 0x32, 0x2f, 0x6e, 0x65, 0x77, 0x2e, 0x6d, 0x69, 0x6e, +0x2e, 0x63, 0x73, 0x73, 0x0d, 0x0a, 0x2a, 0x2f, 0x0d, 0x0a, 0x0d, 0x0a, 0x2f, 0x2a, 0x0d, 0x0a, +0x20, 0x2a, 0x20, 0x55, 0x73, 0x61, 0x67, 0x65, 0x3a, 0x0d, 0x0a, 0x20, 0x2a, 0x20, 0x43, 0x6f, +0x6d, 0x70, 0x61, 0x63, 0x74, 0x20, 0x2f, 0x20, 0x6d, 0x69, 0x6e, 0x69, 0x66, 0x79, 0x20, 0x74, +0x68, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x64, 0x65, 0x20, 0x77, 0x69, 0x74, 0x68, 0x20, 0x61, 0x6e, +0x79, 0x20, 0x74, 0x6f, 0x6f, 0x6c, 0x0d, 0x0a, 0x20, 0x2a, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x20, +0x6f, 0x6e, 0x65, 0x2d, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x20, +0x74, 0x6f, 0x20, 0x73, 0x72, 0x63, 0x2f, 0x57, 0x65, 0x62, 0x43, 0x66, 0x67, 0x53, 0x65, 0x72, +0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x73, 0x2e, 0x68, 0x20, 0x61, +0x73, 0x20, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x63, 0x73, 0x73, 0x0d, 0x0a, 0x20, 0x2a, 0x20, 0x54, +0x4f, 0x44, 0x4f, 0x3a, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x20, 0x74, 0x68, +0x69, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x20, 0x75, 0x70, 0x6f, 0x6e, 0x20, +0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x3a, 0x29, 0x0d, 0x0a, 0x2a, 0x2f, 0x0d, +0x0a, 0x0d, 0x0a, 0x3a, 0x72, 0x6f, 0x6f, 0x74, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, +0x2d, 0x2d, 0x6e, 0x63, 0x2d, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x61, 0x6e, 0x73, 0x3a, 0x20, +0x27, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x27, 0x2c, 0x2d, 0x61, 0x70, 0x70, 0x6c, 0x65, 0x2d, 0x73, +0x79, 0x73, 0x74, 0x65, 0x6d, 0x2c, 0x42, 0x6c, 0x69, 0x6e, 0x6b, 0x4d, 0x61, 0x63, 0x53, 0x79, +0x73, 0x74, 0x65, 0x6d, 0x46, 0x6f, 0x6e, 0x74, 0x2c, 0x27, 0x53, 0x65, 0x67, 0x6f, 0x65, 0x20, +0x55, 0x49, 0x27, 0x2c, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x6f, 0x2c, 0x4f, 0x78, 0x79, 0x67, 0x65, +0x6e, 0x2c, 0x55, 0x62, 0x75, 0x6e, 0x74, 0x75, 0x2c, 0x43, 0x61, 0x6e, 0x74, 0x61, 0x72, 0x65, +0x6c, 0x6c, 0x2c, 0x27, 0x4f, 0x70, 0x65, 0x6e, 0x20, 0x53, 0x61, 0x6e, 0x73, 0x27, 0x2c, 0x27, +0x48, 0x65, 0x6c, 0x76, 0x65, 0x74, 0x69, 0x63, 0x61, 0x20, 0x4e, 0x65, 0x75, 0x65, 0x27, 0x2c, +0x73, 0x61, 0x6e, 0x73, 0x2d, 0x73, 0x65, 0x72, 0x69, 0x66, 0x2c, 0x27, 0x41, 0x70, 0x70, 0x6c, +0x65, 0x20, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x20, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x27, 0x2c, 0x27, +0x53, 0x65, 0x67, 0x6f, 0x65, 0x20, 0x55, 0x49, 0x20, 0x45, 0x6d, 0x6f, 0x6a, 0x69, 0x27, 0x2c, +0x27, 0x53, 0x65, 0x67, 0x6f, 0x65, 0x20, 0x55, 0x49, 0x20, 0x53, 0x79, 0x6d, 0x62, 0x6f, 0x6c, +0x27, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6e, 0x63, 0x2d, 0x66, 0x6f, 0x6e, +0x74, 0x2d, 0x6d, 0x6f, 0x6e, 0x6f, 0x3a, 0x20, 0x43, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x61, 0x73, +0x2c, 0x6d, 0x6f, 0x6e, 0x61, 0x63, 0x6f, 0x2c, 0x27, 0x55, 0x62, 0x75, 0x6e, 0x74, 0x75, 0x20, +0x4d, 0x6f, 0x6e, 0x6f, 0x27, 0x2c, 0x27, 0x4c, 0x69, 0x62, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, +0x6e, 0x20, 0x4d, 0x6f, 0x6e, 0x6f, 0x27, 0x2c, 0x27, 0x43, 0x6f, 0x75, 0x72, 0x69, 0x65, 0x72, +0x20, 0x4e, 0x65, 0x77, 0x27, 0x2c, 0x43, 0x6f, 0x75, 0x72, 0x69, 0x65, 0x72, 0x2c, 0x6d, 0x6f, +0x6e, 0x6f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, +0x6e, 0x63, 0x2d, 0x74, 0x78, 0x2d, 0x31, 0x3a, 0x20, 0x23, 0x30, 0x30, 0x30, 0x3b, 0x0d, 0x0a, +0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6e, 0x63, 0x2d, 0x74, 0x78, 0x2d, 0x32, 0x3a, 0x20, 0x23, +0x31, 0x61, 0x31, 0x61, 0x31, 0x61, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6e, +0x63, 0x2d, 0x62, 0x67, 0x2d, 0x31, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x0d, 0x0a, 0x20, +0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6e, 0x63, 0x2d, 0x62, 0x67, 0x2d, 0x32, 0x3a, 0x20, 0x23, 0x66, +0x36, 0x66, 0x38, 0x66, 0x61, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6e, 0x63, +0x2d, 0x62, 0x67, 0x2d, 0x33, 0x3a, 0x20, 0x23, 0x65, 0x35, 0x65, 0x37, 0x65, 0x62, 0x3b, 0x0d, +0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6e, 0x63, 0x2d, 0x6c, 0x6b, 0x2d, 0x31, 0x3a, 0x20, +0x23, 0x30, 0x30, 0x37, 0x30, 0x66, 0x33, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, +0x6e, 0x63, 0x2d, 0x6c, 0x6b, 0x2d, 0x32, 0x3a, 0x20, 0x23, 0x30, 0x33, 0x36, 0x36, 0x64, 0x36, +0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6e, 0x63, 0x2d, 0x6c, 0x6b, 0x2d, 0x74, +0x78, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, +0x6e, 0x63, 0x2d, 0x61, 0x63, 0x2d, 0x31, 0x3a, 0x20, 0x23, 0x37, 0x39, 0x66, 0x66, 0x65, 0x31, +0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6e, 0x63, 0x2d, 0x61, 0x63, 0x2d, 0x74, +0x78, 0x3a, 0x20, 0x23, 0x30, 0x63, 0x34, 0x30, 0x34, 0x37, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, +0x0a, 0x40, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x28, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x73, 0x2d, +0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x2d, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x65, 0x3a, 0x20, 0x64, 0x61, +0x72, 0x6b, 0x29, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3a, 0x72, 0x6f, 0x6f, 0x74, +0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6e, 0x63, +0x2d, 0x74, 0x78, 0x2d, 0x31, 0x3a, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6e, 0x63, 0x2d, 0x74, 0x78, 0x2d, 0x32, 0x3a, 0x20, +0x23, 0x65, 0x65, 0x65, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, +0x2d, 0x6e, 0x63, 0x2d, 0x62, 0x67, 0x2d, 0x31, 0x3a, 0x20, 0x23, 0x30, 0x30, 0x30, 0x3b, 0x0d, +0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6e, 0x63, 0x2d, 0x62, 0x67, +0x2d, 0x32, 0x3a, 0x20, 0x23, 0x31, 0x31, 0x31, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6e, 0x63, 0x2d, 0x62, 0x67, 0x2d, 0x33, 0x3a, 0x20, 0x23, 0x32, +0x32, 0x32, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6e, +0x63, 0x2d, 0x6c, 0x6b, 0x2d, 0x31, 0x3a, 0x20, 0x23, 0x33, 0x32, 0x39, 0x31, 0x66, 0x66, 0x3b, +0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6e, 0x63, 0x2d, 0x6c, +0x6b, 0x2d, 0x32, 0x3a, 0x20, 0x23, 0x30, 0x30, 0x37, 0x30, 0x66, 0x33, 0x3b, 0x0d, 0x0a, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, 0x2d, 0x6e, 0x63, 0x2d, 0x6c, 0x6b, 0x2d, 0x74, +0x78, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x2d, 0x2d, 0x6e, 0x63, 0x2d, 0x61, 0x63, 0x2d, 0x31, 0x3a, 0x20, 0x23, 0x37, 0x39, +0x32, 0x38, 0x63, 0x61, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2d, +0x2d, 0x6e, 0x63, 0x2d, 0x61, 0x63, 0x2d, 0x74, 0x78, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x0d, +0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x2a, 0x20, 0x7b, +0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x20, 0x30, 0x3b, +0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, +0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x69, 0x6d, 0x67, 0x2c, 0x69, 0x6e, 0x70, 0x75, 0x74, +0x2c, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x70, 0x2c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2c, +0x74, 0x65, 0x78, 0x74, 0x61, 0x72, 0x65, 0x61, 0x2c, 0x75, 0x6c, 0x20, 0x7b, 0x0d, 0x0a, 0x20, +0x20, 0x20, 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, +0x3a, 0x20, 0x31, 0x72, 0x65, 0x6d, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x62, 0x75, 0x74, +0x74, 0x6f, 0x6e, 0x2c, 0x68, 0x74, 0x6d, 0x6c, 0x2c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2c, 0x73, +0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x6e, +0x74, 0x2d, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x3a, 0x20, 0x76, 0x61, 0x72, 0x28, 0x2d, 0x2d, +0x6e, 0x63, 0x2d, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x61, 0x6e, 0x73, 0x29, 0x0d, 0x0a, 0x7d, +0x0d, 0x0a, 0x0d, 0x0a, 0x62, 0x6f, 0x64, 0x79, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, +0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x20, 0x30, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x3b, 0x0d, +0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, +0x37, 0x35, 0x30, 0x70, 0x78, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, +0x69, 0x6e, 0x67, 0x3a, 0x20, 0x32, 0x72, 0x65, 0x6d, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, +0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x36, +0x70, 0x78, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, +0x77, 0x2d, 0x78, 0x3a, 0x20, 0x68, 0x69, 0x64, 0x64, 0x65, 0x6e, 0x3b, 0x0d, 0x0a, 0x20, 0x20, +0x20, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x2d, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x3a, 0x20, 0x6e, 0x6f, +0x72, 0x6d, 0x61, 0x6c, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x66, +0x6c, 0x6f, 0x77, 0x2d, 0x77, 0x72, 0x61, 0x70, 0x3a, 0x20, 0x61, 0x6e, 0x79, 0x77, 0x68, 0x65, +0x72, 0x65, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, +0x75, 0x6e, 0x64, 0x3a, 0x20, 0x76, 0x61, 0x72, 0x28, 0x2d, 0x2d, 0x6e, 0x63, 0x2d, 0x62, 0x67, +0x2d, 0x31, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, +0x20, 0x76, 0x61, 0x72, 0x28, 0x2d, 0x2d, 0x6e, 0x63, 0x2d, 0x74, 0x78, 0x2d, 0x32, 0x29, 0x3b, +0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, +0x20, 0x31, 0x2e, 0x30, 0x33, 0x72, 0x65, 0x6d, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, +0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x2e, 0x35, 0x0d, +0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x3a, 0x3a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, +0x6e, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, +0x75, 0x6e, 0x64, 0x3a, 0x20, 0x76, 0x61, 0x72, 0x28, 0x2d, 0x2d, 0x6e, 0x63, 0x2d, 0x61, 0x63, +0x2d, 0x31, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, +0x20, 0x76, 0x61, 0x72, 0x28, 0x2d, 0x2d, 0x6e, 0x63, 0x2d, 0x61, 0x63, 0x2d, 0x74, 0x78, 0x29, +0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x68, 0x31, 0x2c, 0x68, 0x32, 0x2c, 0x68, 0x33, 0x2c, +0x68, 0x34, 0x2c, 0x68, 0x35, 0x2c, 0x68, 0x36, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, +0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x3b, 0x0d, +0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x76, 0x61, 0x72, 0x28, +0x2d, 0x2d, 0x6e, 0x63, 0x2d, 0x74, 0x78, 0x2d, 0x31, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, +0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x2e, 0x38, +0x37, 0x35, 0x72, 0x65, 0x6d, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x68, 0x31, 0x2c, 0x68, +0x32, 0x2c, 0x68, 0x33, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, +0x72, 0x3a, 0x20, 0x76, 0x61, 0x72, 0x28, 0x2d, 0x2d, 0x6e, 0x63, 0x2d, 0x74, 0x78, 0x2d, 0x31, +0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, +0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x20, 0x32, 0x70, 0x78, 0x3b, 0x0d, 0x0a, 0x20, 0x20, +0x20, 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, +0x20, 0x38, 0x70, 0x78, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, +0x72, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x20, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, +0x6c, 0x69, 0x64, 0x20, 0x76, 0x61, 0x72, 0x28, 0x2d, 0x2d, 0x6e, 0x63, 0x2d, 0x62, 0x67, 0x2d, +0x32, 0x29, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x68, 0x34, 0x2c, 0x68, 0x35, 0x2c, 0x68, +0x36, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, +0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x20, 0x2e, 0x33, 0x72, 0x65, 0x6d, 0x0d, 0x0a, 0x7d, +0x0d, 0x0a, 0x0d, 0x0a, 0x68, 0x31, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, +0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x32, 0x2e, 0x32, 0x35, 0x72, 0x65, 0x6d, +0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x68, 0x32, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, +0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x31, 0x2e, 0x38, 0x35, +0x72, 0x65, 0x6d, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x68, 0x33, 0x20, 0x7b, 0x0d, 0x0a, +0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x31, +0x2e, 0x35, 0x35, 0x72, 0x65, 0x6d, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x68, 0x34, 0x20, +0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, +0x3a, 0x20, 0x31, 0x2e, 0x32, 0x35, 0x72, 0x65, 0x6d, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, +0x68, 0x35, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, +0x69, 0x7a, 0x65, 0x3a, 0x20, 0x31, 0x72, 0x65, 0x6d, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, +0x68, 0x36, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, +0x69, 0x7a, 0x65, 0x3a, 0x20, 0x2e, 0x38, 0x37, 0x35, 0x72, 0x65, 0x6d, 0x0d, 0x0a, 0x7d, 0x0d, +0x0a, 0x0d, 0x0a, 0x61, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, +0x72, 0x3a, 0x20, 0x76, 0x61, 0x72, 0x28, 0x2d, 0x2d, 0x6e, 0x63, 0x2d, 0x6c, 0x6b, 0x2d, 0x31, +0x29, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x61, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x20, +0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x76, 0x61, +0x72, 0x28, 0x2d, 0x2d, 0x6e, 0x63, 0x2d, 0x6c, 0x6b, 0x2d, 0x32, 0x29, 0x20, 0x21, 0x69, 0x6d, +0x70, 0x6f, 0x72, 0x74, 0x61, 0x6e, 0x74, 0x3b, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x61, +0x62, 0x62, 0x72, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x75, 0x72, 0x73, 0x6f, +0x72, 0x3a, 0x20, 0x68, 0x65, 0x6c, 0x70, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x61, 0x62, +0x62, 0x72, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, +0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x3a, 0x20, 0x68, 0x65, 0x6c, 0x70, 0x0d, 0x0a, 0x7d, 0x0d, +0x0a, 0x0d, 0x0a, 0x61, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x2c, 0x62, 0x75, 0x74, 0x74, +0x6f, 0x6e, 0x2c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x62, 0x75, +0x74, 0x74, 0x6f, 0x6e, 0x5d, 0x2c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, +0x3d, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5d, 0x2c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, +0x70, 0x65, 0x3d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x5d, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, +0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x31, 0x72, 0x65, +0x6d, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, +0x20, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x3b, 0x0d, 0x0a, +0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x36, 0x70, 0x78, +0x20, 0x31, 0x32, 0x70, 0x78, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, +0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x20, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0d, +0x0a, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x64, 0x65, 0x63, 0x6f, 0x72, 0x61, +0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, +0x20, 0x77, 0x68, 0x69, 0x74, 0x65, 0x2d, 0x73, 0x70, 0x61, 0x63, 0x65, 0x3a, 0x20, 0x6e, 0x6f, +0x77, 0x72, 0x61, 0x70, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, +0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x20, 0x76, 0x61, 0x72, 0x28, 0x2d, 0x2d, 0x6e, 0x63, 0x2d, +0x6c, 0x6b, 0x2d, 0x31, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, +0x72, 0x3a, 0x20, 0x76, 0x61, 0x72, 0x28, 0x2d, 0x2d, 0x6e, 0x63, 0x2d, 0x6c, 0x6b, 0x2d, 0x74, +0x78, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, +0x20, 0x30, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, +0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x70, 0x78, 0x3b, 0x0d, 0x0a, 0x20, 0x20, +0x20, 0x20, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x62, 0x6f, +0x72, 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x78, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, +0x75, 0x72, 0x73, 0x6f, 0x72, 0x3a, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0d, +0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x76, 0x61, 0x72, 0x28, +0x2d, 0x2d, 0x6e, 0x63, 0x2d, 0x6c, 0x6b, 0x2d, 0x74, 0x78, 0x29, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, +0x0d, 0x0a, 0x61, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, +0x6c, 0x65, 0x64, 0x5d, 0x2c, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5b, 0x64, 0x69, 0x73, 0x61, +0x62, 0x6c, 0x65, 0x64, 0x5d, 0x2c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, +0x3d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5d, 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, +0x64, 0x5d, 0x2c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x72, 0x65, +0x73, 0x65, 0x74, 0x5d, 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x2c, 0x69, +0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, +0x5d, 0x5b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x5d, 0x20, 0x7b, 0x0d, 0x0a, 0x20, +0x20, 0x20, 0x20, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x3a, 0x20, 0x64, 0x65, 0x66, 0x61, 0x75, +0x6c, 0x74, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6f, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, +0x3a, 0x20, 0x2e, 0x35, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x75, 0x72, 0x73, 0x6f, +0x72, 0x3a, 0x20, 0x6e, 0x6f, 0x74, 0x2d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x0d, 0x0a, +0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x2e, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x66, 0x6f, 0x63, +0x75, 0x73, 0x2c, 0x2e, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, +0x2c, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x62, 0x75, +0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x69, 0x6e, 0x70, 0x75, 0x74, +0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5d, 0x3a, 0x66, 0x6f, +0x63, 0x75, 0x73, 0x2c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x62, +0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5d, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x69, 0x6e, 0x70, +0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5d, 0x3a, 0x66, +0x6f, 0x63, 0x75, 0x73, 0x2c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, +0x72, 0x65, 0x73, 0x65, 0x74, 0x5d, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x2c, 0x69, 0x6e, 0x70, +0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x5d, 0x3a, +0x66, 0x6f, 0x63, 0x75, 0x73, 0x2c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, +0x3d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x5d, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x7b, +0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, +0x3a, 0x20, 0x76, 0x61, 0x72, 0x28, 0x2d, 0x2d, 0x6e, 0x63, 0x2d, 0x6c, 0x6b, 0x2d, 0x32, 0x29, +0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x7b, 0x0d, 0x0a, +0x20, 0x20, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6c, 0x61, +0x70, 0x73, 0x65, 0x3a, 0x20, 0x63, 0x6f, 0x6c, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x3b, 0x0d, 0x0a, +0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x30, 0x30, 0x25, 0x0d, +0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x74, 0x64, 0x2c, 0x74, 0x68, 0x20, 0x7b, 0x0d, 0x0a, 0x20, +0x20, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x31, 0x70, 0x78, 0x20, 0x73, +0x6f, 0x6c, 0x69, 0x64, 0x20, 0x76, 0x61, 0x72, 0x28, 0x2d, 0x2d, 0x6e, 0x63, 0x2d, 0x62, 0x67, +0x2d, 0x33, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, +0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, +0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x0d, +0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x74, 0x68, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, +0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x20, 0x76, 0x61, 0x72, 0x28, +0x2d, 0x2d, 0x6e, 0x63, 0x2d, 0x62, 0x67, 0x2d, 0x32, 0x29, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, +0x0a, 0x74, 0x72, 0x3a, 0x6e, 0x74, 0x68, 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x28, 0x65, 0x76, +0x65, 0x6e, 0x29, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, +0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x20, 0x76, 0x61, 0x72, 0x28, 0x2d, 0x2d, 0x6e, 0x63, 0x2d, +0x62, 0x67, 0x2d, 0x32, 0x29, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x74, 0x65, 0x78, 0x74, +0x61, 0x72, 0x65, 0x61, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x2d, +0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x30, 0x30, 0x25, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, +0x0d, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x2c, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x2c, 0x74, +0x65, 0x78, 0x74, 0x61, 0x72, 0x65, 0x61, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, +0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x36, 0x70, 0x78, 0x20, 0x31, 0x32, 0x70, 0x78, +0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, +0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x20, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x3b, 0x0d, 0x0a, 0x20, 0x20, +0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x20, 0x76, 0x61, +0x72, 0x28, 0x2d, 0x2d, 0x6e, 0x63, 0x2d, 0x62, 0x67, 0x2d, 0x32, 0x29, 0x3b, 0x0d, 0x0a, 0x20, +0x20, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x76, 0x61, 0x72, 0x28, 0x2d, 0x2d, +0x6e, 0x63, 0x2d, 0x74, 0x78, 0x2d, 0x32, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, +0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, +0x20, 0x76, 0x61, 0x72, 0x28, 0x2d, 0x2d, 0x6e, 0x63, 0x2d, 0x62, 0x67, 0x2d, 0x33, 0x29, 0x3b, +0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, +0x69, 0x75, 0x73, 0x3a, 0x20, 0x34, 0x70, 0x78, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, +0x6f, 0x78, 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, +0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, +0x3a, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x78, 0x0d, 0x0a, 0x7d, 0x0d, +0x0a, 0x0d, 0x0a, 0x69, 0x6d, 0x67, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, +0x78, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x30, 0x30, 0x25, 0x0d, 0x0a, 0x7d, +0x0d, 0x0a, 0x0d, 0x0a, 0x74, 0x64, 0x3e, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x7b, 0x0d, 0x0a, +0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x20, +0x30, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x62, +0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x20, 0x30, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x74, +0x64, 0x3e, 0x74, 0x65, 0x78, 0x74, 0x61, 0x72, 0x65, 0x61, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, +0x20, 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x30, 0x3b, +0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, +0x74, 0x6f, 0x6d, 0x3a, 0x20, 0x30, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x74, 0x64, 0x3e, +0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, +0x72, 0x67, 0x69, 0x6e, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x30, 0x3b, 0x0d, 0x0a, 0x20, 0x20, +0x20, 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, +0x20, 0x30, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x2e, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, +0x67, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, +0x72, 0x65, 0x64, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x40, 0x6d, 0x65, 0x64, 0x69, 0x61, +0x20, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x20, 0x61, 0x6e, 0x64, +0x20, 0x28, 0x6d, 0x61, 0x78, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x36, 0x30, 0x30, +0x70, 0x78, 0x29, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x61, 0x64, 0x61, 0x70, +0x74, 0x20, 0x74, 0x64, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x0d, 0x0a, 0x20, +0x20, 0x20, 0x20, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x61, 0x64, 0x61, +0x70, 0x74, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x74, 0x65, +0x78, 0x74, 0x5d, 0x2c, 0x2e, 0x61, 0x64, 0x61, 0x70, 0x74, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, +0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5d, 0x2c, +0x2e, 0x61, 0x64, 0x61, 0x70, 0x74, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, +0x65, 0x3d, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x5d, 0x2c, 0x2e, 0x61, 0x64, 0x61, 0x70, 0x74, +0x20, 0x74, 0x65, 0x78, 0x74, 0x61, 0x72, 0x65, 0x61, 0x2c, 0x2e, 0x61, 0x64, 0x61, 0x70, 0x74, +0x20, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x30, 0x30, 0x25, 0x0d, 0x0a, +0x20, 0x20, 0x20, 0x20, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x61, 0x64, +0x61, 0x70, 0x74, 0x20, 0x74, 0x64, 0x3a, 0x68, 0x61, 0x73, 0x28, 0x69, 0x6e, 0x70, 0x75, 0x74, +0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x5d, 0x29, +0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, +0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x20, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x0d, 0x0a, +0x20, 0x20, 0x20, 0x20, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x61, 0x64, +0x61, 0x70, 0x74, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5b, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x63, +0x68, 0x65, 0x63, 0x6b, 0x62, 0x6f, 0x78, 0x5d, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x2e, 0x35, 0x65, 0x6d, +0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, +0x74, 0x3a, 0x20, 0x31, 0x2e, 0x35, 0x65, 0x6d, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0d, +0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x61, 0x64, 0x61, 0x70, 0x74, 0x20, 0x74, 0x61, +0x62, 0x6c, 0x65, 0x20, 0x74, 0x64, 0x3a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x2d, 0x63, 0x68, 0x69, +0x6c, 0x64, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x6f, +0x72, 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x20, 0x30, 0x0d, 0x0a, +0x20, 0x20, 0x20, 0x20, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x61, 0x64, +0x61, 0x70, 0x74, 0x20, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x74, 0x64, 0x3a, 0x6c, 0x61, 0x73, +0x74, 0x2d, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x30, +0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x23, +0x74, 0x62, 0x6c, 0x6e, 0x61, 0x76, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x3e, 0x73, 0x70, 0x61, 0x6e, +0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x2d, +0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x34, 0x30, 0x70, 0x78, 0x0d, 0x0a, 0x20, 0x20, +0x20, 0x20, 0x7d, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x23, 0x74, 0x62, 0x6c, 0x6e, 0x61, +0x76, 0x20, 0x61, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, +0x72, 0x3a, 0x20, 0x30, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, +0x72, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x20, 0x31, 0x70, 0x78, 0x20, 0x73, 0x6f, +0x6c, 0x69, 0x64, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, +0x79, 0x3a, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, +0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x31, 0x72, 0x65, 0x6d, 0x3b, 0x0d, +0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, +0x3a, 0x20, 0x62, 0x6f, 0x6c, 0x64, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x64, +0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x2e, 0x36, 0x72, 0x65, 0x6d, 0x20, 0x30, 0x3b, 0x0d, 0x0a, +0x20, 0x20, 0x20, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, +0x20, 0x31, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, +0x76, 0x61, 0x72, 0x28, 0x2d, 0x2d, 0x6e, 0x63, 0x2d, 0x74, 0x78, 0x2d, 0x31, 0x29, 0x3b, 0x0d, +0x0a, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x64, 0x65, 0x63, 0x6f, 0x72, 0x61, +0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, +0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x20, 0x6c, 0x69, 0x6e, +0x65, 0x61, 0x72, 0x2d, 0x67, 0x72, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x74, 0x28, 0x74, 0x6f, 0x20, +0x6c, 0x65, 0x66, 0x74, 0x2c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, +0x20, 0x35, 0x30, 0x25, 0x2c, 0x72, 0x67, 0x62, 0x61, 0x28, 0x32, 0x35, 0x35, 0x2c, 0x32, 0x35, +0x35, 0x2c, 0x32, 0x35, 0x35, 0x2c, 0x30, 0x2e, 0x34, 0x29, 0x20, 0x35, 0x30, 0x25, 0x29, 0x20, +0x72, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, +0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x32, 0x30, 0x30, +0x25, 0x20, 0x31, 0x30, 0x30, 0x25, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x74, 0x72, 0x61, +0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x2e, 0x32, 0x73, +0x20, 0x65, 0x61, 0x73, 0x65, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x23, 0x74, 0x62, 0x6c, +0x6e, 0x61, 0x76, 0x20, 0x61, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x63, +0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x2d, +0x67, 0x72, 0x61, 0x64, 0x69, 0x65, 0x6e, 0x74, 0x28, 0x74, 0x6f, 0x20, 0x6c, 0x65, 0x66, 0x74, +0x2c, 0x76, 0x61, 0x72, 0x28, 0x2d, 0x2d, 0x6e, 0x63, 0x2d, 0x62, 0x67, 0x2d, 0x32, 0x29, 0x20, +0x35, 0x30, 0x25, 0x2c, 0x72, 0x67, 0x62, 0x61, 0x28, 0x32, 0x35, 0x35, 0x2c, 0x32, 0x35, 0x35, +0x2c, 0x32, 0x35, 0x35, 0x2c, 0x30, 0x2e, 0x34, 0x29, 0x20, 0x35, 0x30, 0x25, 0x29, 0x20, 0x72, +0x69, 0x67, 0x68, 0x74, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, +0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x32, 0x30, 0x30, 0x25, +0x20, 0x31, 0x30, 0x30, 0x25, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x23, 0x74, 0x62, 0x6c, +0x6e, 0x61, 0x76, 0x20, 0x61, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x7b, 0x0d, 0x0a, 0x20, +0x20, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x70, 0x6f, +0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0d, 0x0a, 0x20, +0x20, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x61, +0x6c, 0x6c, 0x20, 0x2e, 0x34, 0x35, 0x73, 0x20, 0x65, 0x61, 0x73, 0x65, 0x0d, 0x0a, 0x7d, 0x0d, +0x0a, 0x0d, 0x0a, 0x23, 0x74, 0x62, 0x6c, 0x6e, 0x61, 0x76, 0x20, 0x61, 0x3a, 0x61, 0x63, 0x74, +0x69, 0x76, 0x65, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, +0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x20, 0x76, 0x61, 0x72, 0x28, 0x2d, 0x2d, 0x6e, 0x63, 0x2d, +0x6c, 0x6b, 0x2d, 0x31, 0x29, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x74, 0x72, 0x61, 0x6e, +0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x2e, 0x31, 0x35, 0x73, +0x20, 0x65, 0x61, 0x73, 0x65, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x23, 0x74, 0x62, 0x6c, +0x6e, 0x61, 0x76, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, +0x6c, 0x69, 0x73, 0x74, 0x2d, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, +0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, +0x2e, 0x35, 0x72, 0x65, 0x6d, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x69, 0x73, 0x70, +0x6c, 0x61, 0x79, 0x3a, 0x20, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x62, 0x6c, 0x6f, 0x63, +0x6b, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, +0x30, 0x30, 0x25, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x23, 0x74, 0x62, 0x6c, 0x6e, 0x61, +0x76, 0x20, 0x61, 0x20, 0x6c, 0x69, 0x3e, 0x73, 0x70, 0x61, 0x6e, 0x20, 0x7b, 0x0d, 0x0a, 0x20, +0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3b, +0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, +0x3a, 0x20, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, +0x72, 0x67, 0x69, 0x6e, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x30, 0x70, 0x78, +0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, +0x37, 0x30, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x77, 0x65, +0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x30, 0x30, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, +0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3a, 0x20, 0x69, 0x74, 0x61, 0x6c, +0x69, 0x63, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, +0x3a, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, 0x0d, 0x0a, 0x2e, 0x74, +0x64, 0x62, 0x74, 0x6e, 0x20, 0x7b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, +0x2d, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3a, 0x20, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0d, +0x0a, 0x20, 0x20, 0x20, 0x20, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x2d, 0x61, 0x6c, +0x69, 0x67, 0x6e, 0x3a, 0x20, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x0d, 0x0a, 0x7d, 0x0d, 0x0a, +0x0d, 0x0a, 0x2e, 0x6e, 0x61, 0x76, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x20, 0x7b, 0x0d, 0x0a, 0x20, +0x20, 0x20, 0x20, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x3a, 0x20, 0x6c, 0x65, 0x66, 0x74, 0x3b, 0x0d, +0x0a, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x78, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, +0x33, 0x37, 0x35, 0x70, 0x78, 0x3b, 0x0d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x64, 0x74, +0x68, 0x3a, 0x20, 0x31, 0x30, 0x30, 0x25, 0x0d, 0x0a, 0x7d, \ No newline at end of file diff --git a/src/webServerConstants/webSerial.h b/src/webServerConstants/webSerial.h new file mode 100644 index 0000000..bef6e30 --- /dev/null +++ b/src/webServerConstants/webSerial.h @@ -0,0 +1,683 @@ +0x3c, 0x21, 0x44, 0x4f, 0x43, 0x54, 0x59, 0x50, 0x45, 0x20, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0a, +0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x0a, 0x0a, 0x3c, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x0a, 0x20, +0x20, 0x20, 0x20, 0x3c, 0x6d, 0x65, 0x74, 0x61, 0x20, 0x63, 0x68, 0x61, 0x72, 0x73, 0x65, 0x74, +0x3d, 0x22, 0x75, 0x74, 0x66, 0x2d, 0x38, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x6d, +0x65, 0x74, 0x61, 0x20, 0x68, 0x74, 0x74, 0x70, 0x2d, 0x65, 0x71, 0x75, 0x69, 0x76, 0x3d, 0x22, +0x58, 0x2d, 0x55, 0x41, 0x2d, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x22, +0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x49, 0x45, 0x3d, 0x65, 0x64, 0x67, +0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0x4e, +0x75, 0x6b, 0x69, 0x48, 0x75, 0x62, 0x20, 0x57, 0x65, 0x62, 0x53, 0x65, 0x72, 0x69, 0x61, 0x6c, +0x3c, 0x2f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x6d, 0x65, +0x74, 0x61, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x76, 0x69, 0x65, 0x77, 0x70, 0x6f, 0x72, +0x74, 0x22, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3d, 0x22, 0x77, 0x69, 0x64, 0x74, +0x68, 0x3d, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2c, 0x20, +0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x2d, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x3d, 0x31, 0x22, +0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x20, 0x74, 0x79, 0x70, +0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x63, 0x73, 0x73, 0x22, 0x3e, 0x0a, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x69, 0x76, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, +0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x20, 0x7b, 0x0a, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, +0x6e, 0x3a, 0x20, 0x30, 0x2e, 0x34, 0x72, 0x65, 0x6d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2d, 0x64, 0x65, 0x63, 0x6f, +0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x0a, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x2a, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3a, 0x3a, 0x61, 0x66, +0x74, 0x65, 0x72, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3a, 0x3a, 0x62, +0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x62, 0x6f, 0x78, 0x2d, 0x73, 0x69, 0x7a, 0x69, 0x6e, 0x67, 0x3a, 0x20, +0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x78, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x77, +0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x74, 0x6d, 0x6c, +0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, +0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x30, 0x30, 0x25, 0x3b, 0x0a, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x62, 0x6f, 0x64, 0x79, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x2d, 0x62, 0x65, +0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x0a, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, +0x3a, 0x20, 0x31, 0x30, 0x30, 0x25, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x30, 0x30, 0x25, 0x3b, +0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x72, +0x67, 0x69, 0x6e, 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x3b, 0x0a, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, +0x2d, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x3a, 0x20, 0x2d, 0x61, 0x70, 0x70, 0x6c, 0x65, 0x2d, +0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2c, 0x20, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2d, 0x75, +0x69, 0x2c, 0x20, 0x42, 0x6c, 0x69, 0x6e, 0x6b, 0x4d, 0x61, 0x63, 0x53, 0x79, 0x73, 0x74, 0x65, +0x6d, 0x46, 0x6f, 0x6e, 0x74, 0x2c, 0x20, 0x22, 0x53, 0x65, 0x67, 0x6f, 0x65, 0x20, 0x55, 0x49, +0x22, 0x2c, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x52, 0x6f, 0x62, 0x6f, 0x74, 0x6f, 0x2c, 0x20, 0x22, 0x48, 0x65, 0x6c, 0x76, +0x65, 0x74, 0x69, 0x63, 0x61, 0x20, 0x4e, 0x65, 0x75, 0x65, 0x22, 0x2c, 0x20, 0x73, 0x61, 0x6e, +0x73, 0x2d, 0x73, 0x65, 0x72, 0x69, 0x66, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, +0x20, 0x23, 0x30, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x30, 0x30, 0x25, 0x3b, +0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x2e, 0x61, 0x70, 0x70, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, +0x30, 0x30, 0x25, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x20, 0x66, 0x6c, 0x65, 0x78, 0x3b, 0x0a, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x65, 0x78, +0x2d, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x63, 0x6f, 0x6c, 0x75, +0x6d, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x67, 0x72, 0x69, 0x64, 0x20, 0x7b, 0x0a, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x69, 0x73, 0x70, 0x6c, +0x61, 0x79, 0x3a, 0x20, 0x67, 0x72, 0x69, 0x64, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x67, 0x61, +0x70, 0x2d, 0x32, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x67, 0x61, 0x70, 0x3a, 0x20, 0x30, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x3b, 0x0a, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x65, 0x78, 0x3a, 0x20, 0x31, +0x20, 0x31, 0x20, 0x30, 0x25, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, +0x3a, 0x20, 0x66, 0x6c, 0x65, 0x78, 0x2d, 0x65, 0x6e, 0x64, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, +0x31, 0x30, 0x30, 0x25, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x64, 0x34, 0x64, 0x34, 0x64, 0x38, +0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, +0x6e, 0x74, 0x2d, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x3a, 0x20, 0x6d, 0x6f, 0x6e, 0x6f, 0x73, +0x70, 0x61, 0x63, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2d, 0x78, 0x3a, 0x20, 0x68, 0x69, +0x64, 0x64, 0x65, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2d, 0x79, 0x3a, 0x20, 0x61, 0x75, +0x74, 0x6f, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x31, 0x34, 0x70, 0x78, 0x3b, +0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x20, 0x70, 0x20, 0x7b, +0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x72, +0x67, 0x69, 0x6e, 0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x6f, 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2d, 0x77, 0x72, 0x61, +0x70, 0x3a, 0x20, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x2d, 0x77, 0x6f, 0x72, 0x64, 0x3b, 0x0a, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, 0x2d, +0x77, 0x72, 0x61, 0x70, 0x3a, 0x20, 0x77, 0x72, 0x61, 0x70, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x68, 0x69, 0x74, 0x65, 0x2d, 0x73, 0x70, +0x61, 0x63, 0x65, 0x3a, 0x20, 0x70, 0x72, 0x65, 0x2d, 0x6c, 0x69, 0x6e, 0x65, 0x3b, 0x0a, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x2e, 0x70, 0x61, 0x6e, 0x65, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, +0x20, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x23, +0x66, 0x66, 0x66, 0x20, 0x30, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, +0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x6f, +0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x31, 0x72, 0x65, +0x6d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, +0x61, 0x78, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x34, 0x35, 0x72, 0x65, 0x6d, 0x3b, +0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x64, +0x74, 0x68, 0x3a, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x28, 0x31, 0x30, 0x30, 0x25, 0x20, 0x2d, 0x20, +0x31, 0x72, 0x65, 0x6d, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x6d, 0x65, +0x64, 0x69, 0x75, 0x6d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, +0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, +0x73, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x20, 0x66, 0x6c, 0x65, 0x78, 0x3b, 0x0a, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, +0x2d, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x3a, 0x20, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6a, 0x75, 0x73, 0x74, +0x69, 0x66, 0x79, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x66, 0x6c, 0x65, +0x78, 0x2d, 0x65, 0x6e, 0x64, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x20, +0x61, 0x75, 0x74, 0x6f, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, +0x61, 0x75, 0x74, 0x6f, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x2d, +0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x70, 0x78, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x65, 0x78, 0x2d, 0x64, 0x69, 0x72, +0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x20, 0x72, 0x6f, 0x77, 0x3b, 0x0a, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x2d, +0x67, 0x61, 0x70, 0x3a, 0x20, 0x31, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x3b, 0x0a, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, +0x2d, 0x74, 0x6f, 0x70, 0x3a, 0x20, 0x30, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x3b, 0x0a, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, +0x67, 0x2d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x20, 0x30, 0x2e, 0x35, 0x72, 0x65, 0x6d, +0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, +0x64, 0x64, 0x69, 0x6e, 0x67, 0x2d, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x30, 0x2e, 0x35, +0x72, 0x65, 0x6d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x61, 0x31, 0x61, 0x31, 0x61, 0x61, 0x3b, +0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x2e, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x20, 0x62, 0x75, 0x74, +0x74, 0x6f, 0x6e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x3a, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, +0x72, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, +0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x38, 0x70, 0x78, 0x20, 0x31, 0x30, 0x70, 0x78, +0x20, 0x38, 0x70, 0x78, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x6d, 0x65, 0x64, +0x69, 0x75, 0x6d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x6f, 0x75, 0x74, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x3a, 0x20, +0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x30, 0x70, 0x78, 0x3b, 0x0a, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, +0x3a, 0x20, 0x23, 0x61, 0x31, 0x61, 0x31, 0x61, 0x61, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, +0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, +0x72, 0x65, 0x6e, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, +0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, +0x73, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x73, 0x76, 0x67, 0x20, 0x7b, 0x0a, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, +0x3a, 0x20, 0x31, 0x2e, 0x34, 0x72, 0x65, 0x6d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x2e, +0x34, 0x72, 0x65, 0x6d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, +0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, +0x73, 0x20, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x20, 0x7b, +0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x63, +0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, +0x31, 0x38, 0x31, 0x38, 0x31, 0x62, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x77, 0x2d, 0x66, 0x75, +0x6c, 0x6c, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x30, 0x30, 0x25, 0x3b, 0x0a, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x2e, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x72, +0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x30, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x3b, 0x0a, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x20, 0x66, +0x6c, 0x65, 0x78, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x67, 0x72, 0x6f, 0x77, 0x20, 0x7b, 0x0a, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6c, 0x65, 0x78, +0x2d, 0x67, 0x72, 0x6f, 0x77, 0x3a, 0x20, 0x31, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x73, 0x68, +0x61, 0x64, 0x6f, 0x77, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x3a, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x2d, +0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x28, 0x30, 0x20, 0x34, 0x70, 0x78, 0x20, 0x33, 0x70, 0x78, +0x20, 0x72, 0x67, 0x62, 0x28, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x2f, 0x20, 0x30, 0x2e, 0x30, +0x37, 0x29, 0x29, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x2d, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x28, +0x30, 0x20, 0x32, 0x70, 0x78, 0x20, 0x32, 0x70, 0x78, 0x20, 0x72, 0x67, 0x62, 0x28, 0x30, 0x20, +0x30, 0x20, 0x30, 0x20, 0x2f, 0x20, 0x30, 0x2e, 0x30, 0x36, 0x29, 0x29, 0x3b, 0x0a, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x2e, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x20, 0x7b, +0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x69, +0x67, 0x6e, 0x2d, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x3a, 0x20, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, +0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, +0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x74, 0x6f, 0x70, +0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x70, 0x78, 0x3b, 0x0a, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, +0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x3a, 0x20, 0x31, 0x70, 0x78, 0x3b, 0x0a, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, +0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x31, 0x38, 0x31, 0x38, 0x31, 0x62, 0x3b, 0x0a, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x69, 0x73, 0x70, +0x6c, 0x61, 0x79, 0x3a, 0x20, 0x66, 0x6c, 0x65, 0x78, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x2d, 0x69, 0x74, 0x65, +0x6d, 0x73, 0x3a, 0x20, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x79, 0x2d, +0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x20, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2d, 0x62, +0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x31, 0x72, 0x65, +0x6d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x7b, 0x0a, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, +0x3a, 0x20, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x70, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x2e, 0x33, 0x37, 0x35, 0x72, 0x65, +0x6d, 0x20, 0x2e, 0x37, 0x35, 0x72, 0x65, 0x6d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x30, 0x20, +0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, 0x23, 0x36, 0x62, 0x37, 0x32, 0x38, 0x30, 0x3b, 0x0a, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, +0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x2e, 0x32, 0x35, 0x72, 0x65, 0x6d, +0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, 0x6f, +0x6e, 0x74, 0x2d, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x3a, 0x20, 0x6d, 0x6f, 0x6e, 0x6f, 0x73, +0x70, 0x61, 0x63, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x2e, 0x38, 0x37, +0x35, 0x72, 0x65, 0x6d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, +0x2e, 0x35, 0x72, 0x65, 0x6d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, +0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x30, 0x64, 0x3b, 0x0a, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6c, 0x6f, +0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x63, 0x6f, 0x6d, +0x6d, 0x61, 0x6e, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x30, 0x30, 0x25, 0x3b, 0x0a, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x23, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, +0x6e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x20, 0x30, 0x20, 0x73, 0x6f, 0x6c, 0x69, 0x64, 0x20, +0x23, 0x65, 0x35, 0x65, 0x37, 0x65, 0x62, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x3a, 0x20, 0x30, 0x3b, 0x0a, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x78, 0x74, +0x2d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x20, 0x6e, 0x6f, 0x6e, 0x65, +0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, +0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x3a, 0x20, +0x6e, 0x6f, 0x6e, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x63, 0x75, 0x72, 0x73, 0x6f, 0x72, 0x3a, 0x20, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, +0x72, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, +0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x20, 0x66, 0x6c, 0x65, 0x78, 0x3b, 0x0a, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, +0x20, 0x31, 0x30, 0x30, 0x25, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x2d, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x3a, 0x20, +0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x79, 0x2d, 0x63, 0x6f, 0x6e, 0x74, +0x65, 0x6e, 0x74, 0x3a, 0x20, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, +0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x2e, 0x32, 0x35, 0x72, 0x65, 0x6d, 0x3b, 0x0a, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x64, 0x64, +0x69, 0x6e, 0x67, 0x3a, 0x20, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x20, 0x31, 0x2e, 0x35, 0x72, 0x65, +0x6d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, +0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x2e, 0x38, 0x37, 0x35, 0x72, 0x65, +0x6d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, +0x69, 0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x2e, 0x32, 0x35, +0x72, 0x65, 0x6d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x66, 0x66, 0x3b, 0x0a, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, +0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x72, 0x67, 0x62, 0x28, +0x32, 0x39, 0x20, 0x37, 0x38, 0x20, 0x32, 0x31, 0x36, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x23, +0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x73, 0x76, +0x67, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x72, 0x65, 0x6d, 0x3b, 0x0a, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, +0x20, 0x31, 0x72, 0x65, 0x6d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, +0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x6d, 0x6c, 0x2d, 0x34, 0x20, +0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6d, 0x61, +0x72, 0x67, 0x69, 0x6e, 0x2d, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x20, 0x31, 0x72, 0x65, 0x6d, 0x3b, +0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2d, +0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x3a, 0x20, 0x66, 0x6c, +0x65, 0x78, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x79, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x3a, +0x20, 0x66, 0x6c, 0x65, 0x78, 0x2d, 0x65, 0x6e, 0x64, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x62, 0x6f, +0x74, 0x74, 0x6f, 0x6d, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x31, 0x70, 0x78, 0x3b, +0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x61, 0x64, +0x64, 0x69, 0x6e, 0x67, 0x3a, 0x20, 0x30, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x20, 0x31, 0x72, 0x65, +0x6d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, +0x6f, 0x6e, 0x74, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x2e, 0x37, 0x35, 0x72, 0x65, 0x6d, +0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x69, +0x6e, 0x65, 0x2d, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x31, 0x72, 0x65, 0x6d, 0x3b, +0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6c, +0x6f, 0x72, 0x3a, 0x20, 0x72, 0x67, 0x62, 0x28, 0x31, 0x31, 0x33, 0x20, 0x31, 0x31, 0x33, 0x20, +0x31, 0x32, 0x32, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x2d, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x3a, 0x20, 0x63, +0x65, 0x6e, 0x74, 0x65, 0x72, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, +0x20, 0x72, 0x67, 0x62, 0x28, 0x32, 0x34, 0x20, 0x32, 0x34, 0x20, 0x32, 0x37, 0x29, 0x3b, 0x0a, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x67, 0x61, 0x70, 0x3a, +0x20, 0x30, 0x2e, 0x35, 0x72, 0x65, 0x6d, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x62, 0x61, 0x64, +0x67, 0x65, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3a, 0x20, 0x30, 0x2e, 0x33, 0x37, 0x35, 0x72, 0x65, 0x6d, +0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x68, 0x65, +0x69, 0x67, 0x68, 0x74, 0x3a, 0x20, 0x30, 0x2e, 0x33, 0x37, 0x35, 0x72, 0x65, 0x6d, 0x3b, 0x0a, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x6f, 0x72, 0x64, +0x65, 0x72, 0x2d, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x3a, 0x20, 0x39, 0x39, 0x39, 0x39, 0x70, +0x78, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x62, 0x61, 0x64, 0x67, 0x65, 0x2e, 0x67, 0x72, 0x65, +0x65, 0x6e, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, +0x72, 0x3a, 0x20, 0x23, 0x32, 0x32, 0x63, 0x35, 0x35, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, +0x62, 0x61, 0x64, 0x67, 0x65, 0x2e, 0x6f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x20, 0x7b, 0x0a, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, +0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3a, 0x20, 0x23, 0x66, 0x35, +0x39, 0x65, 0x30, 0x62, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, +0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x2e, 0x62, 0x61, 0x64, 0x67, 0x65, 0x2e, +0x72, 0x65, 0x64, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2d, 0x63, 0x6f, 0x6c, +0x6f, 0x72, 0x3a, 0x20, 0x23, 0x65, 0x66, 0x34, 0x34, 0x34, 0x34, 0x3b, 0x0a, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x73, 0x74, 0x79, +0x6c, 0x65, 0x3e, 0x0a, 0x3c, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x3e, 0x0a, 0x0a, 0x3c, 0x62, 0x6f, +0x64, 0x79, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, +0x73, 0x73, 0x3d, 0x22, 0x61, 0x70, 0x70, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x3c, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, +0x73, 0x3d, 0x22, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x64, 0x69, +0x76, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x20, 0x73, 0x69, +0x7a, 0x65, 0x3a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x20, 0x74, +0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x22, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x62, +0x75, 0x66, 0x66, 0x65, 0x72, 0x22, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x72, 0x6f, +0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x22, 0x20, 0x70, 0x6c, +0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x3d, 0x22, 0x42, 0x75, 0x66, 0x66, 0x65, +0x72, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x20, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3d, 0x22, 0x31, +0x30, 0x30, 0x30, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x62, 0x75, +0x74, 0x74, 0x6f, 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x72, 0x6f, 0x75, 0x6e, +0x64, 0x65, 0x64, 0x20, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x22, 0x20, 0x6f, 0x6e, 0x63, 0x6c, +0x69, 0x63, 0x6b, 0x3d, 0x22, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x43, 0x6c, 0x65, +0x61, 0x6e, 0x28, 0x29, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x73, 0x76, 0x67, 0x20, +0x78, 0x6d, 0x6c, 0x6e, 0x73, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, +0x77, 0x2e, 0x77, 0x33, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x32, 0x30, 0x30, 0x30, 0x2f, 0x73, 0x76, +0x67, 0x22, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, 0x32, 0x34, 0x22, 0x20, 0x68, 0x65, +0x69, 0x67, 0x68, 0x74, 0x3d, 0x22, 0x32, 0x34, 0x22, 0x20, 0x76, 0x69, 0x65, 0x77, 0x42, 0x6f, +0x78, 0x3d, 0x22, 0x30, 0x20, 0x30, 0x20, 0x32, 0x34, 0x20, 0x32, 0x34, 0x22, 0x20, 0x66, 0x69, +0x6c, 0x6c, 0x3d, 0x22, 0x6e, 0x6f, 0x6e, 0x65, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x73, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x3d, 0x22, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, +0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x20, 0x73, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x2d, 0x77, +0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, 0x32, 0x22, 0x20, 0x73, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x2d, +0x6c, 0x69, 0x6e, 0x65, 0x63, 0x61, 0x70, 0x3d, 0x22, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x20, +0x73, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x2d, 0x6c, 0x69, 0x6e, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x3d, +0x22, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x3c, 0x70, 0x61, 0x74, 0x68, 0x20, 0x73, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x3d, 0x22, 0x6e, +0x6f, 0x6e, 0x65, 0x22, 0x20, 0x64, 0x3d, 0x22, 0x4d, 0x30, 0x20, 0x30, 0x68, 0x32, 0x34, 0x76, +0x32, 0x34, 0x48, 0x30, 0x7a, 0x22, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3d, 0x22, 0x6e, 0x6f, 0x6e, +0x65, 0x22, 0x20, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x70, +0x61, 0x74, 0x68, 0x20, 0x64, 0x3d, 0x22, 0x4d, 0x34, 0x20, 0x37, 0x6c, 0x31, 0x36, 0x20, 0x30, +0x22, 0x20, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x70, 0x61, +0x74, 0x68, 0x20, 0x64, 0x3d, 0x22, 0x4d, 0x31, 0x30, 0x20, 0x31, 0x31, 0x6c, 0x30, 0x20, 0x36, +0x22, 0x20, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x70, 0x61, +0x74, 0x68, 0x20, 0x64, 0x3d, 0x22, 0x4d, 0x31, 0x34, 0x20, 0x31, 0x31, 0x6c, 0x30, 0x20, 0x36, +0x22, 0x20, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x70, 0x61, +0x74, 0x68, 0x20, 0x64, 0x3d, 0x22, 0x4d, 0x35, 0x20, 0x37, 0x6c, 0x31, 0x20, 0x31, 0x32, 0x61, +0x32, 0x20, 0x32, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x32, 0x20, 0x32, 0x68, 0x38, 0x61, +0x32, 0x20, 0x32, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x32, 0x20, 0x2d, 0x32, 0x6c, 0x31, +0x20, 0x2d, 0x31, 0x32, 0x22, 0x20, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x3c, 0x70, 0x61, 0x74, 0x68, 0x20, 0x64, 0x3d, 0x22, 0x4d, 0x39, 0x20, 0x37, 0x76, 0x2d, +0x33, 0x61, 0x31, 0x20, 0x31, 0x20, 0x30, 0x20, 0x30, 0x20, 0x31, 0x20, 0x31, 0x20, 0x2d, 0x31, +0x68, 0x34, 0x61, 0x31, 0x20, 0x31, 0x20, 0x30, 0x20, 0x30, 0x20, 0x31, 0x20, 0x31, 0x20, 0x31, +0x76, 0x33, 0x22, 0x20, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x73, 0x76, 0x67, +0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x3c, 0x2f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x62, 0x75, 0x74, +0x74, 0x6f, 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x72, 0x6f, 0x75, 0x6e, 0x64, +0x65, 0x64, 0x20, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x22, 0x20, 0x6f, 0x6e, 0x63, 0x6c, 0x69, +0x63, 0x6b, 0x3d, 0x22, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, +0x3d, 0x21, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x22, 0x3e, +0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x73, 0x76, 0x67, 0x20, 0x78, 0x6d, 0x6c, 0x6e, 0x73, 0x3d, +0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x33, 0x2e, 0x6f, +0x72, 0x67, 0x2f, 0x32, 0x30, 0x30, 0x30, 0x2f, 0x73, 0x76, 0x67, 0x22, 0x20, 0x77, 0x69, 0x64, +0x74, 0x68, 0x3d, 0x22, 0x32, 0x34, 0x22, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3d, 0x22, +0x32, 0x34, 0x22, 0x20, 0x76, 0x69, 0x65, 0x77, 0x42, 0x6f, 0x78, 0x3d, 0x22, 0x30, 0x20, 0x30, +0x20, 0x32, 0x34, 0x20, 0x32, 0x34, 0x22, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3d, 0x22, 0x6e, 0x6f, +0x6e, 0x65, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x6f, +0x6b, 0x65, 0x3d, 0x22, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, +0x22, 0x20, 0x73, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, +0x32, 0x22, 0x20, 0x73, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x2d, 0x6c, 0x69, 0x6e, 0x65, 0x63, 0x61, +0x70, 0x3d, 0x22, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x20, 0x73, 0x74, 0x72, 0x6f, 0x6b, 0x65, +0x2d, 0x6c, 0x69, 0x6e, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x3d, 0x22, 0x72, 0x6f, 0x75, 0x6e, 0x64, +0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x70, 0x61, 0x74, 0x68, +0x20, 0x73, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x3d, 0x22, 0x6e, 0x6f, 0x6e, 0x65, 0x22, 0x20, 0x64, +0x3d, 0x22, 0x4d, 0x30, 0x20, 0x30, 0x68, 0x32, 0x34, 0x76, 0x32, 0x34, 0x48, 0x30, 0x7a, 0x22, +0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3d, 0x22, 0x6e, 0x6f, 0x6e, 0x65, 0x22, 0x20, 0x2f, 0x3e, 0x0a, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x70, 0x61, 0x74, 0x68, 0x20, 0x64, 0x3d, +0x22, 0x4d, 0x35, 0x20, 0x31, 0x33, 0x61, 0x32, 0x20, 0x32, 0x20, 0x30, 0x20, 0x30, 0x20, 0x31, +0x20, 0x32, 0x20, 0x2d, 0x32, 0x68, 0x31, 0x30, 0x61, 0x32, 0x20, 0x32, 0x20, 0x30, 0x20, 0x30, +0x20, 0x31, 0x20, 0x32, 0x20, 0x32, 0x76, 0x36, 0x61, 0x32, 0x20, 0x32, 0x20, 0x30, 0x20, 0x30, +0x20, 0x31, 0x20, 0x2d, 0x32, 0x20, 0x32, 0x68, 0x2d, 0x31, 0x30, 0x61, 0x32, 0x20, 0x32, 0x20, +0x30, 0x20, 0x30, 0x20, 0x31, 0x20, 0x2d, 0x32, 0x20, 0x2d, 0x32, 0x76, 0x2d, 0x36, 0x7a, 0x22, +0x20, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x70, 0x61, 0x74, +0x68, 0x20, 0x64, 0x3d, 0x22, 0x4d, 0x31, 0x31, 0x20, 0x31, 0x36, 0x61, 0x31, 0x20, 0x31, 0x20, +0x30, 0x20, 0x31, 0x20, 0x30, 0x20, 0x32, 0x20, 0x30, 0x61, 0x31, 0x20, 0x31, 0x20, 0x30, 0x20, +0x30, 0x20, 0x30, 0x20, 0x2d, 0x32, 0x20, 0x30, 0x22, 0x20, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x70, 0x61, 0x74, 0x68, 0x20, 0x64, 0x3d, 0x22, 0x4d, 0x38, +0x20, 0x31, 0x31, 0x76, 0x2d, 0x34, 0x61, 0x34, 0x20, 0x34, 0x20, 0x30, 0x20, 0x31, 0x20, 0x31, +0x20, 0x38, 0x20, 0x30, 0x76, 0x34, 0x22, 0x20, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, +0x2f, 0x73, 0x76, 0x67, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3e, 0x0a, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x3c, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x72, +0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x20, 0x73, 0x68, 0x61, 0x64, 0x6f, 0x77, 0x22, 0x20, 0x6f, +0x6e, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x3d, 0x22, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, +0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x3d, 0x21, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, +0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, +0x73, 0x76, 0x67, 0x20, 0x78, 0x6d, 0x6c, 0x6e, 0x73, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, +0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x77, 0x33, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x32, 0x30, 0x30, +0x30, 0x2f, 0x73, 0x76, 0x67, 0x22, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, 0x32, 0x34, +0x22, 0x20, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3d, 0x22, 0x32, 0x34, 0x22, 0x20, 0x76, 0x69, +0x65, 0x77, 0x42, 0x6f, 0x78, 0x3d, 0x22, 0x30, 0x20, 0x30, 0x20, 0x32, 0x34, 0x20, 0x32, 0x34, +0x22, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3d, 0x22, 0x6e, 0x6f, 0x6e, 0x65, 0x22, 0x0a, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x3d, 0x22, 0x63, 0x75, +0x72, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x22, 0x20, 0x73, 0x74, 0x72, 0x6f, +0x6b, 0x65, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, 0x32, 0x22, 0x20, 0x73, 0x74, 0x72, +0x6f, 0x6b, 0x65, 0x2d, 0x6c, 0x69, 0x6e, 0x65, 0x63, 0x61, 0x70, 0x3d, 0x22, 0x72, 0x6f, 0x75, +0x6e, 0x64, 0x22, 0x20, 0x73, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x2d, 0x6c, 0x69, 0x6e, 0x65, 0x6a, +0x6f, 0x69, 0x6e, 0x3d, 0x22, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x70, 0x61, 0x74, 0x68, 0x20, 0x73, 0x74, 0x72, 0x6f, 0x6b, +0x65, 0x3d, 0x22, 0x6e, 0x6f, 0x6e, 0x65, 0x22, 0x20, 0x64, 0x3d, 0x22, 0x4d, 0x30, 0x20, 0x30, +0x68, 0x32, 0x34, 0x76, 0x32, 0x34, 0x48, 0x30, 0x7a, 0x22, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3d, +0x22, 0x6e, 0x6f, 0x6e, 0x65, 0x22, 0x20, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x3c, 0x70, 0x61, 0x74, 0x68, 0x20, 0x64, 0x3d, 0x22, 0x4d, 0x33, 0x20, 0x31, 0x32, +0x61, 0x39, 0x20, 0x39, 0x20, 0x30, 0x20, 0x31, 0x20, 0x30, 0x20, 0x31, 0x38, 0x20, 0x30, 0x61, +0x39, 0x20, 0x39, 0x20, 0x30, 0x20, 0x30, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x38, 0x20, 0x30, 0x22, +0x20, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x70, 0x61, 0x74, +0x68, 0x20, 0x64, 0x3d, 0x22, 0x4d, 0x31, 0x32, 0x20, 0x37, 0x76, 0x35, 0x6c, 0x33, 0x20, 0x33, +0x22, 0x20, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x73, 0x76, 0x67, 0x3e, 0x0a, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x3c, 0x2f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x3e, 0x0a, 0x0a, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, +0x73, 0x73, 0x3d, 0x22, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x3e, 0x3c, 0x2f, 0x64, +0x69, 0x76, 0x3e, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x66, 0x6f, +0x6f, 0x74, 0x65, 0x72, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x63, 0x6f, +0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x22, +0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x3c, 0x66, 0x6f, 0x72, 0x6d, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x66, +0x6c, 0x65, 0x78, 0x20, 0x77, 0x2d, 0x66, 0x75, 0x6c, 0x6c, 0x20, 0x69, 0x74, 0x65, 0x6d, 0x73, +0x2d, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x69, +0x6e, 0x70, 0x75, 0x74, 0x20, 0x69, 0x64, 0x3d, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, +0x22, 0x20, 0x61, 0x75, 0x74, 0x6f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x3d, 0x22, +0x6f, 0x66, 0x66, 0x22, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, 0x22, +0x20, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x3d, 0x22, 0x22, 0x20, 0x63, 0x6c, 0x61, +0x73, 0x73, 0x3d, 0x22, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x22, 0x0a, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, +0x3d, 0x22, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, +0x68, 0x65, 0x72, 0x65, 0x22, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x64, 0x69, 0x76, 0x20, +0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x6d, 0x6c, 0x2d, 0x34, 0x22, 0x3e, 0x0a, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x20, 0x69, 0x64, +0x3d, 0x22, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x2d, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, +0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x22, 0x3e, 0x0a, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x73, 0x76, 0x67, +0x20, 0x78, 0x6d, 0x6c, 0x6e, 0x73, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x77, +0x77, 0x77, 0x2e, 0x77, 0x33, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x32, 0x30, 0x30, 0x30, 0x2f, 0x73, +0x76, 0x67, 0x22, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, 0x32, 0x34, 0x22, 0x20, 0x68, +0x65, 0x69, 0x67, 0x68, 0x74, 0x3d, 0x22, 0x32, 0x34, 0x22, 0x20, 0x76, 0x69, 0x65, 0x77, 0x42, +0x6f, 0x78, 0x3d, 0x22, 0x30, 0x20, 0x30, 0x20, 0x32, 0x34, 0x20, 0x32, 0x34, 0x22, 0x0a, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x66, +0x69, 0x6c, 0x6c, 0x3d, 0x22, 0x6e, 0x6f, 0x6e, 0x65, 0x22, 0x20, 0x73, 0x74, 0x72, 0x6f, 0x6b, +0x65, 0x3d, 0x22, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x22, +0x20, 0x73, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x2d, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, 0x32, +0x22, 0x20, 0x73, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x2d, 0x6c, 0x69, 0x6e, 0x65, 0x63, 0x61, 0x70, +0x3d, 0x22, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x22, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x2d, +0x6c, 0x69, 0x6e, 0x65, 0x6a, 0x6f, 0x69, 0x6e, 0x3d, 0x22, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x22, +0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x3c, 0x70, 0x61, 0x74, 0x68, 0x20, 0x73, 0x74, 0x72, 0x6f, 0x6b, 0x65, 0x3d, 0x22, +0x6e, 0x6f, 0x6e, 0x65, 0x22, 0x20, 0x64, 0x3d, 0x22, 0x4d, 0x30, 0x20, 0x30, 0x68, 0x32, 0x34, +0x76, 0x32, 0x34, 0x48, 0x30, 0x7a, 0x22, 0x20, 0x66, 0x69, 0x6c, 0x6c, 0x3d, 0x22, 0x6e, 0x6f, +0x6e, 0x65, 0x22, 0x20, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x70, 0x61, 0x74, 0x68, 0x20, 0x64, 0x3d, 0x22, +0x4d, 0x31, 0x30, 0x20, 0x31, 0x34, 0x6c, 0x31, 0x31, 0x20, 0x2d, 0x31, 0x31, 0x22, 0x20, 0x2f, +0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x3c, 0x70, 0x61, 0x74, 0x68, 0x20, 0x64, 0x3d, 0x22, 0x4d, 0x32, 0x31, 0x20, 0x33, +0x6c, 0x2d, 0x36, 0x2e, 0x35, 0x20, 0x31, 0x38, 0x61, 0x2e, 0x35, 0x35, 0x20, 0x2e, 0x35, 0x35, +0x20, 0x30, 0x20, 0x30, 0x20, 0x31, 0x20, 0x2d, 0x31, 0x20, 0x30, 0x6c, 0x2d, 0x33, 0x2e, 0x35, +0x20, 0x2d, 0x37, 0x6c, 0x2d, 0x37, 0x20, 0x2d, 0x33, 0x2e, 0x35, 0x61, 0x2e, 0x35, 0x35, 0x20, +0x2e, 0x35, 0x35, 0x20, 0x30, 0x20, 0x30, 0x20, 0x31, 0x20, 0x30, 0x20, 0x2d, 0x31, 0x6c, 0x31, +0x38, 0x20, 0x2d, 0x36, 0x2e, 0x35, 0x22, 0x20, 0x2f, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x73, 0x76, 0x67, 0x3e, 0x0a, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3e, 0x0a, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, 0x66, 0x6f, 0x72, +0x6d, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x3c, +0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x63, 0x6f, +0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, +0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x3c, 0x2f, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x3e, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x3c, 0x2f, +0x64, 0x69, 0x76, 0x3e, 0x0a, 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x0a, 0x0a, 0x3c, 0x73, +0x63, 0x72, 0x69, 0x70, 0x74, 0x20, 0x74, 0x79, 0x70, 0x65, 0x3d, 0x22, 0x74, 0x65, 0x78, 0x74, +0x2f, 0x6a, 0x61, 0x76, 0x61, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x22, 0x3e, 0x0a, 0x20, 0x20, +0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x63, 0x72, 0x6f, +0x6c, 0x6c, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, +0x65, 0x74, 0x20, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, +0x6d, 0x70, 0x20, 0x3d, 0x20, 0x74, 0x72, 0x75, 0x65, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, +0x6c, 0x65, 0x74, 0x20, 0x75, 0x72, 0x6c, 0x20, 0x3d, 0x20, 0x60, 0x77, 0x73, 0x3a, 0x2f, 0x2f, +0x24, 0x7b, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, +0x6e, 0x2e, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x77, 0x73, 0x60, 0x3b, +0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, +0x65, 0x74, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, +0x65, 0x6e, 0x74, 0x41, 0x72, 0x65, 0x61, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, +0x6e, 0x74, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, +0x28, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x27, 0x29, 0x3b, 0x0a, 0x20, 0x20, +0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, +0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x20, 0x3d, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, +0x74, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x28, +0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x73, 0x74, 0x61, +0x74, 0x75, 0x73, 0x27, 0x29, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x69, 0x6e, 0x69, 0x74, +0x41, 0x70, 0x70, 0x28, 0x29, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, +0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x41, 0x70, 0x70, 0x28, 0x29, 0x20, 0x7b, +0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, +0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, +0x54, 0x4d, 0x4c, 0x20, 0x3d, 0x20, 0x27, 0x27, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x57, 0x65, 0x62, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x28, +0x29, 0x3b, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, +0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, +0x6f, 0x72, 0x28, 0x27, 0x66, 0x6f, 0x72, 0x6d, 0x27, 0x29, 0x2e, 0x61, 0x64, 0x64, 0x45, 0x76, +0x65, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x65, 0x72, 0x28, 0x27, 0x73, 0x75, 0x62, +0x6d, 0x69, 0x74, 0x27, 0x2c, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x28, +0x65, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x65, 0x2e, 0x70, 0x72, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, +0x74, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x6c, 0x65, 0x74, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x3d, 0x20, 0x64, +0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, +0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x27, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x27, +0x29, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x73, +0x65, 0x6e, 0x64, 0x28, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x29, 0x3b, 0x0a, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, +0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, +0x64, 0x28, 0x27, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x27, 0x29, 0x2e, 0x76, 0x61, 0x6c, +0x75, 0x65, 0x20, 0x3d, 0x20, 0x27, 0x27, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x7d, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, +0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x69, 0x6e, 0x69, 0x74, 0x57, 0x65, 0x62, +0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, +0x74, 0x75, 0x73, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x3d, 0x20, +0x27, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x62, 0x61, 0x64, +0x67, 0x65, 0x20, 0x6f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, +0x3e, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x2e, 0x2e, 0x27, +0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, +0x6b, 0x65, 0x74, 0x20, 0x3d, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x57, 0x65, 0x62, 0x53, 0x6f, 0x63, +0x6b, 0x65, 0x74, 0x28, 0x75, 0x72, 0x6c, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x6f, 0x6e, 0x6f, 0x70, +0x65, 0x6e, 0x20, 0x3d, 0x20, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x6e, 0x3b, 0x0a, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2e, 0x6f, +0x6e, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x20, 0x3d, 0x20, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, +0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x77, 0x65, 0x62, 0x73, 0x6f, 0x63, +0x6b, 0x65, 0x74, 0x2e, 0x6f, 0x6e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x20, 0x3d, 0x20, +0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, +0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x6f, +0x6e, 0x4f, 0x70, 0x65, 0x6e, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x29, 0x20, 0x7b, 0x0a, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, +0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54, 0x4d, +0x4c, 0x20, 0x3d, 0x20, 0x27, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x3d, +0x22, 0x62, 0x61, 0x64, 0x67, 0x65, 0x20, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x22, 0x3e, 0x3c, 0x2f, +0x64, 0x69, 0x76, 0x3e, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x27, 0x3b, +0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, +0x6c, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x27, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, +0x64, 0x20, 0x74, 0x6f, 0x20, 0x27, 0x20, 0x2b, 0x20, 0x75, 0x72, 0x6c, 0x29, 0x3b, 0x0a, 0x20, +0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, +0x6f, 0x6e, 0x20, 0x6f, 0x6e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x28, 0x65, 0x76, 0x65, 0x6e, 0x74, +0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x6e, +0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x69, 0x6e, 0x6e, +0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x3d, 0x20, 0x27, 0x3c, 0x64, 0x69, 0x76, 0x20, 0x63, +0x6c, 0x61, 0x73, 0x73, 0x3d, 0x22, 0x62, 0x61, 0x64, 0x67, 0x65, 0x20, 0x72, 0x65, 0x64, 0x22, +0x3e, 0x3c, 0x2f, 0x64, 0x69, 0x76, 0x3e, 0x20, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, +0x63, 0x74, 0x65, 0x64, 0x27, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x73, +0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x28, 0x69, 0x6e, 0x69, 0x74, 0x57, 0x65, +0x62, 0x53, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x2c, 0x20, 0x32, 0x30, 0x30, 0x30, 0x29, 0x3b, 0x0a, +0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, +0x69, 0x6f, 0x6e, 0x20, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x28, 0x65, 0x76, +0x65, 0x6e, 0x74, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x74, +0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x65, 0x76, 0x65, +0x6e, 0x74, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, +0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x65, +0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x57, 0x72, 0x69, 0x74, 0x65, 0x28, 0x64, 0x61, 0x74, 0x61, +0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, +0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x29, +0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, +0x65, 0x74, 0x20, 0x6e, 0x6f, 0x77, 0x20, 0x3d, 0x20, 0x6e, 0x65, 0x77, 0x20, 0x44, 0x61, 0x74, +0x65, 0x28, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3d, 0x20, 0x22, 0x5b, 0x22, 0x20, 0x2b, 0x20, 0x6e, 0x6f, +0x77, 0x2e, 0x74, 0x6f, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x74, +0x72, 0x69, 0x6e, 0x67, 0x28, 0x29, 0x20, 0x2b, 0x20, 0x22, 0x5d, 0x20, 0x22, 0x20, 0x2b, 0x20, +0x64, 0x61, 0x74, 0x61, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x41, +0x72, 0x65, 0x61, 0x2e, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x2b, 0x3d, +0x20, 0x27, 0x3c, 0x70, 0x3e, 0x27, 0x20, 0x2b, 0x20, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2b, 0x20, +0x27, 0x3c, 0x2f, 0x70, 0x3e, 0x27, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x69, 0x66, 0x20, 0x28, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x63, 0x72, 0x6f, 0x6c, 0x6c, +0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x41, 0x72, 0x65, 0x61, 0x2e, 0x73, 0x63, 0x72, 0x6f, +0x6c, 0x6c, 0x54, 0x6f, 0x70, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x41, +0x72, 0x65, 0x61, 0x2e, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, +0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x2f, 0x2f, 0x20, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x20, 0x62, 0x75, +0x66, 0x66, 0x65, 0x72, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x61, 0x76, 0x6f, +0x69, 0x64, 0x20, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x20, 0x69, 0x73, 0x73, 0x75, 0x65, 0x73, +0x20, 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x0a, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, 0x65, 0x74, 0x20, 0x62, 0x75, 0x66, 0x66, +0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x20, 0x3d, 0x20, 0x70, 0x61, 0x72, 0x73, 0x65, 0x49, 0x6e, +0x74, 0x28, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x67, 0x65, 0x74, 0x45, 0x6c, +0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x79, 0x49, 0x64, 0x28, 0x27, 0x62, 0x75, 0x66, 0x66, 0x65, +0x72, 0x27, 0x29, 0x2e, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x69, 0x73, 0x4e, 0x61, 0x4e, 0x28, 0x62, 0x75, +0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, 0x29, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, +0x69, 0x7a, 0x65, 0x20, 0x3d, 0x20, 0x31, 0x30, 0x30, 0x30, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x6c, +0x65, 0x74, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x20, 0x3d, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, +0x6e, 0x74, 0x41, 0x72, 0x65, 0x61, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6c, 0x65, +0x63, 0x74, 0x6f, 0x72, 0x41, 0x6c, 0x6c, 0x28, 0x27, 0x70, 0x27, 0x29, 0x3b, 0x0a, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x69, 0x66, 0x20, 0x28, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, +0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x20, 0x3e, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, +0x69, 0x7a, 0x65, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x6c, 0x65, 0x74, 0x20, 0x69, 0x20, 0x3d, 0x20, +0x30, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x20, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2e, 0x6c, 0x65, 0x6e, +0x67, 0x74, 0x68, 0x20, 0x2d, 0x20, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x53, 0x69, 0x7a, 0x65, +0x3b, 0x20, 0x69, 0x2b, 0x2b, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, +0x41, 0x72, 0x65, 0x61, 0x2e, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x68, 0x69, 0x6c, 0x64, +0x28, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x5b, 0x69, 0x5d, 0x29, 0x3b, 0x0a, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x7d, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x7d, 0x0a, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x66, +0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x6c, +0x43, 0x6c, 0x65, 0x61, 0x6e, 0x28, 0x29, 0x20, 0x7b, 0x0a, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, +0x20, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x41, 0x72, 0x65, 0x61, 0x2e, 0x69, 0x6e, +0x6e, 0x65, 0x72, 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x3d, 0x20, 0x27, 0x27, 0x3b, 0x0a, 0x20, 0x20, +0x20, 0x20, 0x7d, 0x0a, 0x3c, 0x2f, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x3e, 0x0a, 0x0a, 0x3c, +0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, \ No newline at end of file diff --git a/stacktrace/esp_exception_decoder_rs.js b/stacktrace/esp_exception_decoder_rs.js deleted file mode 100644 index ff3fe8d..0000000 --- a/stacktrace/esp_exception_decoder_rs.js +++ /dev/null @@ -1,302 +0,0 @@ - -let wasm; - -const heap = new Array(32).fill(undefined); - -heap.push(undefined, null, true, false); - -function getObject(idx) { return heap[idx]; } - -let heap_next = heap.length; - -function dropObject(idx) { - if (idx < 36) return; - heap[idx] = heap_next; - heap_next = idx; -} - -function takeObject(idx) { - const ret = getObject(idx); - dropObject(idx); - return ret; -} - -let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }); - -cachedTextDecoder.decode(); - -let cachegetUint8Memory0 = null; -function getUint8Memory0() { - if (cachegetUint8Memory0 === null || cachegetUint8Memory0.buffer !== wasm.memory.buffer) { - cachegetUint8Memory0 = new Uint8Array(wasm.memory.buffer); - } - return cachegetUint8Memory0; -} - -function getStringFromWasm0(ptr, len) { - return cachedTextDecoder.decode(getUint8Memory0().subarray(ptr, ptr + len)); -} - -let cachegetInt32Memory0 = null; -function getInt32Memory0() { - if (cachegetInt32Memory0 === null || cachegetInt32Memory0.buffer !== wasm.memory.buffer) { - cachegetInt32Memory0 = new Int32Array(wasm.memory.buffer); - } - return cachegetInt32Memory0; -} - -const u32CvtShim = new Uint32Array(2); - -const uint64CvtShim = new BigUint64Array(u32CvtShim.buffer); - -function addHeapObject(obj) { - if (heap_next === heap.length) heap.push(heap.length + 1); - const idx = heap_next; - heap_next = heap[idx]; - - heap[idx] = obj; - return idx; -} - -let WASM_VECTOR_LEN = 0; - -let cachedTextEncoder = new TextEncoder('utf-8'); - -const encodeString = (typeof cachedTextEncoder.encodeInto === 'function' - ? function (arg, view) { - return cachedTextEncoder.encodeInto(arg, view); -} - : function (arg, view) { - const buf = cachedTextEncoder.encode(arg); - view.set(buf); - return { - read: arg.length, - written: buf.length - }; -}); - -function passStringToWasm0(arg, malloc, realloc) { - - if (realloc === undefined) { - const buf = cachedTextEncoder.encode(arg); - const ptr = malloc(buf.length); - getUint8Memory0().subarray(ptr, ptr + buf.length).set(buf); - WASM_VECTOR_LEN = buf.length; - return ptr; - } - - let len = arg.length; - let ptr = malloc(len); - - const mem = getUint8Memory0(); - - let offset = 0; - - for (; offset < len; offset++) { - const code = arg.charCodeAt(offset); - if (code > 0x7F) break; - mem[ptr + offset] = code; - } - - if (offset !== len) { - if (offset !== 0) { - arg = arg.slice(offset); - } - ptr = realloc(ptr, len, len = offset + arg.length * 3); - const view = getUint8Memory0().subarray(ptr + offset, ptr + len); - const ret = encodeString(arg, view); - - offset += ret.written; - } - - WASM_VECTOR_LEN = offset; - return ptr; -} - -function passArray8ToWasm0(arg, malloc) { - const ptr = malloc(arg.length * 1); - getUint8Memory0().set(arg, ptr / 1); - WASM_VECTOR_LEN = arg.length; - return ptr; -} -/** -* @param {Uint8Array} bin -* @param {string} dump -* @returns {Array} -*/ -export function decode(bin, dump) { - var ptr0 = passArray8ToWasm0(bin, wasm.__wbindgen_malloc); - var len0 = WASM_VECTOR_LEN; - var ptr1 = passStringToWasm0(dump, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len1 = WASM_VECTOR_LEN; - var ret = wasm.decode(ptr0, len0, ptr1, len1); - return takeObject(ret); -} - -/** -*/ -export class DecodedAddress { - - static __wrap(ptr) { - const obj = Object.create(DecodedAddress.prototype); - obj.ptr = ptr; - - return obj; - } - - __destroy_into_raw() { - const ptr = this.ptr; - this.ptr = 0; - - return ptr; - } - - free() { - const ptr = this.__destroy_into_raw(); - wasm.__wbg_decodedaddress_free(ptr); - } - /** - */ - get address() { - try { - const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); - wasm.__wbg_get_decodedaddress_address(retptr, this.ptr); - var r0 = getInt32Memory0()[retptr / 4 + 0]; - var r1 = getInt32Memory0()[retptr / 4 + 1]; - u32CvtShim[0] = r0; - u32CvtShim[1] = r1; - const n0 = uint64CvtShim[0]; - return n0; - } finally { - wasm.__wbindgen_add_to_stack_pointer(16); - } - } - /** - * @param {BigInt} arg0 - */ - set address(arg0) { - uint64CvtShim[0] = arg0; - const low0 = u32CvtShim[0]; - const high0 = u32CvtShim[1]; - wasm.__wbg_set_decodedaddress_address(this.ptr, low0, high0); - } - /** - * @returns {string} - */ - get function_name() { - try { - const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); - wasm.decodedaddress_function_name(retptr, this.ptr); - var r0 = getInt32Memory0()[retptr / 4 + 0]; - var r1 = getInt32Memory0()[retptr / 4 + 1]; - return getStringFromWasm0(r0, r1); - } finally { - wasm.__wbindgen_add_to_stack_pointer(16); - wasm.__wbindgen_free(r0, r1); - } - } - /** - * @param {string} function_name - */ - set function_name(function_name) { - var ptr0 = passStringToWasm0(function_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len0 = WASM_VECTOR_LEN; - wasm.decodedaddress_set_function_name(this.ptr, ptr0, len0); - } - /** - * @returns {string} - */ - get location() { - try { - const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); - wasm.decodedaddress_location(retptr, this.ptr); - var r0 = getInt32Memory0()[retptr / 4 + 0]; - var r1 = getInt32Memory0()[retptr / 4 + 1]; - return getStringFromWasm0(r0, r1); - } finally { - wasm.__wbindgen_add_to_stack_pointer(16); - wasm.__wbindgen_free(r0, r1); - } - } - /** - * @param {string} location - */ - set location(location) { - var ptr0 = passStringToWasm0(location, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - var len0 = WASM_VECTOR_LEN; - wasm.decodedaddress_set_location(this.ptr, ptr0, len0); - } -} - -async function load(module, imports) { - if (typeof Response === 'function' && module instanceof Response) { - if (typeof WebAssembly.instantiateStreaming === 'function') { - try { - return await WebAssembly.instantiateStreaming(module, imports); - - } catch (e) { - if (module.headers.get('Content-Type') != 'application/wasm') { - console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e); - - } else { - throw e; - } - } - } - - const bytes = await module.arrayBuffer(); - return await WebAssembly.instantiate(bytes, imports); - - } else { - const instance = await WebAssembly.instantiate(module, imports); - - if (instance instanceof WebAssembly.Instance) { - return { instance, module }; - - } else { - return instance; - } - } -} - -async function init(input) { - if (typeof input === 'undefined') { - input = new URL('esp_exception_decoder_rs_bg.wasm', import.meta.url); - } - const imports = {}; - imports.wbg = {}; - imports.wbg.__wbindgen_object_drop_ref = function(arg0) { - takeObject(arg0); - }; - imports.wbg.__wbg_decodedaddress_new = function(arg0) { - var ret = DecodedAddress.__wrap(arg0); - return addHeapObject(ret); - }; - imports.wbg.__wbg_new_949bbc1147195c4e = function() { - var ret = new Array(); - return addHeapObject(ret); - }; - imports.wbg.__wbg_push_284486ca27c6aa8b = function(arg0, arg1) { - var ret = getObject(arg0).push(getObject(arg1)); - return ret; - }; - imports.wbg.__wbindgen_throw = function(arg0, arg1) { - throw new Error(getStringFromWasm0(arg0, arg1)); - }; - - if (typeof input === 'string' || (typeof Request === 'function' && input instanceof Request) || (typeof URL === 'function' && input instanceof URL)) { - input = fetch(input); - } - - - - const { instance, module } = await load(await input, imports); - - wasm = instance.exports; - init.__wbindgen_wasm_module = module; - - return wasm; -} - -export default init; - diff --git a/stacktrace/esp_exception_decoder_rs_bg.wasm b/stacktrace/esp_exception_decoder_rs_bg.wasm deleted file mode 100644 index e19f193d3e0c991a947d67bf3a7499772c3483c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 960397 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 NW{dc}TJ*Snk`FszFjB$&-aY71}_==2K0X_z0!Y z=Tg?suIpIlwB@qb*{%yf>x%m*9OtAuLuD;JI$0-~I)`E;=iJL9g^?K*RWQ6mIZ|r! z6=E`Wu_5(BW)~#;K-KAD8*(A%N2s49^U!xlrU0F3=1IxoRTUH=Nl7#L941#xtlA*2 zo!q1xK<4srtZjwvhyKR%=FA@zCiLK&TX}Tm?~CEWtxE_xQ)Z1(8N4MSFcC`nFk zV$}iV^`?};8II5tX6m}}AWR6%pq6ldlU2J~*1U=Nw!`}+ob!t5mU|%7)empfH^FL? zQ;$a^q+*u z#^M<4-m&o0!!xPUOoD^T-tX9Ms1N=6i>UklGHsGM%|aL6tLkz{G|uyAp2bJibe1C1 zWrc=RWlSoj-WQ53;LDRjZFgZPgcHBBm|CZ1brwX`Jcm!1bKb*!a?-OlP0!&mHvFx4 zi-Bi2M(Juk$H}zyLvhOJ07~IG+7Y$Rqe`0WMn#Oxj|&@IpU!1NPept$q~$JjPU)*9 ztig%#ss=SVluif+3E5!%42Owg3(P5qD7$+WFr(;`x;>4uL`;Q|t0ZT=^26aubLa0( z5AQ_Oij>L9tIBY7=xAqs*r%`14U$haQC#&^hLwD((Xl~%2~Soi!n$X`aq|>IT|b)g zjx1wKoNk*6Il(-Z>Nisr1hSoEK6*Zq;q#r!pO?f6hy_8yI*tcxpzY>6h*K)&*<t zB^Tt66nnnr6a4Jyyak({l;0gHSJT-Er1RCm)W!2$|5%sGH1PoBJT7AIx z)19Vd$bn{AXQoQ)s(%bkT-{O*$7*v11UvZ>kEmS(@es~2_~={EVB&PDd3dc8F{lat zDc`j`hs_3ij>V|?R&U~a<vcxi>{a}rgw{_WmBbZ0_i6oAOi58Q>dV3WOZe$Fe;*zjPd!oz{eyLs3oPf)nv6s zqa=$%&PLwOJOW<$cUwdcFmWc&h`OpOx2mu-Jk@~$_UqlRLS9DqbXVZ`azF0wn^Z*ti zykOLn)c52AD8ns2Mne@G*_|*aO(OeO<2_!d&1zF1t>GDYFXk1}tXrPV+ z(%cC#KRyr-L6oDTIh!<1S!aSt`U-;Gpvb>XxC$&Uj5{IIwMZC8k@p_FDsVtD9~~dQ z!(?18tEiK9sdajy5`0l!p1Eqptz+5hGYm0PZMY&+iViY|NeU%KHIL91?{R3c z=sb$b0Z->>_zoo}PcA@XHENLtCX`0bO$pvqTL|_U(;ze!!D$chnoDfMfb@%XgHSLNQ&Zn0-b& zo7O1;dcOOG?$V!j%f6-u(RBF38BY|yOSwRf>(CL-m%~ur&{g1$lb8edc;nI?bzR!Ty8_qH`GftY@?-iG3bi3>fs^g^XrNFJms}6t+^A=b3+kFD z$eI&LAQ+qRj+j*#24;=RMXlv56?NknHlhXsG3zmga0qLOL6h8PP?pRbI9&s|cW`9l z&UpJmSxallnNczP(#dkjb?;WVgD85#1AWm7b_%W zr7r7V!y^ta1z7(JQmJ0+DA0Wwu+NnyF3(d(d#y1p>D$cY& z3!_1-^zQZvOo;Liv_A{eOdV*5n`$zLHBp6WWRrZ3_IPAajU;st`cxIkbZmvD} zN*&ly(Yf^LINstcg+|iX%tY*eu_6XmI8+5iqhs(P_1owd@|S(v!tNfD`x<_10ahAq z43lf{B=TL$HlDnj}IXJd27K+^0NBs)HxQWxYNl{ zjJYEt=BsbKF~%((ML&5%ktN`X8pubP`VMUiPU*{QG43Vy*W9Q}CoL%g;EM~RdAa0x z?DW8#uPk#$ur046@VT?pJo;JIzSf&3o}dRVFj{Z@p?*dZUJSB31?s?CC_|tlHPo9)kv9QT-~Ewx-6Cp=6ef^{iVV3N}I~?;^Nh_I8TFD0&Lo4Yet%P3@IaHu} z=+GIXUJScx3bdov<%JT%g`}0JRsp`cMFO9ZOizYG0??>6fnvGjyTO1m^b?W1)FKWc#bht8@ocbrL2k4 zcaLvYk%z1FGHO64v7(9YRr>PUF}^$Ayc+!@9AT(OIpCsm+I3}`a$Q88TIZe0F{_5=XSrBgrYF*>4YF%*w{ zuR@YqF)6-qXs%amxPi1QK<%K<08KcQ$PG z^lGQRs_gY#7?W>zw6EaQYmrQH0Iyx35LJ4FZ{f%rY# zxpkQ%Zv6naDT7Iz{yz)2tfB1;ZkUU+;CALPb3gFAtTBAvaRD(C*Y}(8a;0DqI77_d zaFBtc`aNCQOL+F2)$u%iiL6Kee`HeO_A=}010eutiUkb4anIhAQ!2Fze7HpQ99E1g=sEqj-3o9fI^=eN5*7*#+fGj}pfk9*HaM z++kQ&)%@^>(;iV)q@&aBr3xN>I2=RtGImmVG#$%kotcePnl%Kw7?d^O0x}&M2_qd6 z3JZ!+GlWQ&iulbtQYZKg*qCX&P1###5RBVI1Tzp!`q4b&>aNq^82G==kL!x6!YrS! z?+w4n+IT)3V@_W-{xTnQ>l}6#r^Wb;gNo+F0jAa(>xsS|b2fc-05k=cIn>6;?VL3g(isI1}53=dwr6tp-#a?Hd9D&WsFUX-z={G!Xghkit*kBvB}a z6lN<}dzUmz^9wgnZ~n}gptHx(z0_?t>K6?B5hLhf4u&{N6UncAm_UT?bo|)`vXub3 z(CGyb03$B}M4u2Di4L5zDLj3a4pbat?+6!2HCW2z0i+!fUpOcZLxb(}2wM{Y?E_s7 zvgw&Az}ua^+B{LDLAX3N@aN{rfsDfSiw^jrCid8amRReJ2#N7hco21bFq~# z#Rlg^ySd6~8msYg(XxK9I}T5Rqz(nfc^Ke(FW!ZJ;5>{u&%@}Xz_V}z<9m!S0Aao= zw&wtwXA<$77_hewfEAzxBUY7*aM9^rK%qiw=~l;p92S?hSDbvHbMuh(J-~7Y8T!UX zbMnlCx48+K8d;@C^>Ty;0KXP$g>crZe}$uu%k_o;j~V8}Jcee6To~W*!lqowEO{(< zj#bg3xat@^$ru4^mKFMFjckgK;v9|j7(m1*GAEy-;Y{}&4S-a^!*P>BJ#aH2)zvAT zDbYAA%z1DFzc{+njX*Vr+yQKXj?D!hECWoWdFlANF2uZPKtcVPSlcro#$iuk?{Pn9 z?*2XWmQVC$urPlVr!GsSp34S;P|U#qr)3XUr0@uKx8_)S3Bsb>Im$_v2~4KmYmatb z5eGj5(yN5)+v`7+SW^IyQQ%!q0#W=N+fV{1SDdp~9__pqqKc-QXZ`@VIQ*k)XgHM| zg7&z;!NX~!o&_Ol$YAGn@-h%7q};spSeH%iCkK7VrEGxy3umjnO3uWd#PyWFIdym_2@I&kOM@ z&TxUgKs-l^GS==6BqmzLuV_BY=3m|9f1;dYe$j?x^jG|Jx>ZITm6XB-*>q5b=a-s_ zzo#B;gNf*!%L0Tx53dF-pDC`s$>4&^uF1PNnJ~gAtMpb4VL0zb{)dVuJ8bN48OaTfocH#Aog&`owT@GyuYZYkpOe*~ANZ=5X<)5G~5n z{p>|QK71Q{(UH}misMnhRccZRM3X!mOixSI&8ZK6xM*G&jWuc47(tJ3G@#(1kLM!N&J4JZ zK1>l50c&~YqX}FbEEXB$9^L*s6hT#@i_J6Ck_w-Gh{A6Thx2TGcUfQV{_Ve!>ccIw zsfhKt{>_2V@1x1wg^#5AFuP_8zc&?5y|l==Qn@@^s)ksZYUp;OYsw&)uOD&7*ucQ}ee<@v{}5v*J7m52v;% z5WIQm*Sg6nn5?ow>xc*?n7U;spSWq?5K{}TIz(NJFj(ei@YKX=gX3QM^5p_@u4E5! zW62ayIN5Q;Z{`z%=7USI%|ic*4Iva*z*S9hVKF8g%qr%*C@WAPo(Ks>$^o0)>sQQl zr!guB9EcKx`2abN=`rAYCRMr7RBoM8EnxC=w$=fnV4MWRG^f}t1+yN{y`&JA92xvJ zp2#cBx^A@%88LuMD3L&f$*O_}eh|xV5EyV1JA=8sG|-Y11Qg(i8wntQDFd-r&?#D@ z3RIimXOFxM3Aci_n(YLPebR}*KvV-0blEY0F9BY?Tc9bO>QeA+g*DbrDP`g!*dFt0 z*3yuhJ5tZQnQdet^%(wgcEE_5h+8Y`?;S`!?Vq~Y zrF2dcqS+sdY}gdg3dMoZ;ubl~Py89}&qIh-p01H@Cidd>C?6o}7t}epQ2(eV78;l) zR!Ea`KaOS)`veX58!acMj5SKn2#Osn00stQNC=EJm00(RI1t z98>(LG&zUyq|tWs$la~p6&S0M2*&1WQM0%CZw05v>XyO`+7I3s$@b+SUZTmNPsDCW zxVp_i<=Li|hcM7NMnFQqmaTvy!<{_}Z9kIT!bFX;LJ%X~K`aD?o;qD$QGGXe#|(;@ zSJfIXuNOuAxBVH^3!URp-;1ZwDV%Z4>U!rkh?a%)+cFl0W)vHblTkMW8f#=pER_?wd;bcn}|I^D@DlDVQ(D4h5#LbCX0?OaWs%(QeE7 z7yB`%xQeXzF*8xO`!JTW{)xeOuK@HD(ngE)`V1MD<{(vexe;NnJ022NZNGbEW8CLO zAMl2I>z~4JORqtApMlKkb${4Thth(ozC4E2bN-7E-+ps1rwa9%Yt7U10^e`m!-G~c z?`y5!*~1OYUSMLn?&=8)!JJF9xkQ_~teZPM#i=Rk?`PhmKMyaiF<2_?uvK`1FDDO8 zaJ17y*ndg==-&gXPg6$1;J8o@f4qpRy{`>G8I0DvER6Paq<}rcwP6j`tovc)S}~t#$+5zUmlr zf7fugjn#xUlU$%2?y7$lpT#J|o_QzG)2;ksUc56Mr^C*I-NTE6L9k6=xKIA(=dt^q z;V7;d?Heu-SYYA`bf5Y?gO}fga~o%2$(xzS?%B9#xH4R+KN!Yal1Bgp%$rRz>cj~ue*VIq(k3AkUm*+7e5Wtre zBr~f$s2ftT&z<+94ic+`ZQcu;-m&ihZ*~; zjD7P|9Po594wjFGY1W}&T?1)XUrF7ag%Nr~^CV;NS)dypI9fdkEA7<3&k{f)z~d?y=pK!`S47BM^8mtKTkY`(nz9SAo#Qc%&b+sR zPH><+3VBXvYiz2SYtEq^-x)x-EH#;|SgLIue6RnPvt8fodduF+iimw%OuNRp=r~RN zK(M^HI2)VTgS!m(ijBGY6_j|4=~hkvfie|`ei(u2Z3UbcYjwBxT86XOyf2=d>a}8n zK%YyhXXcMq_pwxD>kIA2sddC#$ZAG7(84T?7&KieVuh&MVthcf@Ht(M$BT{*c3DUr zKCGYaI|R0s`=4H=Pclohfipev9~_*Nhvg8{uXz}Jj*I4_YG2z~_QOoON|%Bwxi&6MF zi)4G`lex$iqww?}P$V0LPg5iYp}9-Iw;P4`S~wepcXBV_Ta3a-Es~AG2e?o5owYFa zZ7~Wzl?sQg7DcFUi&6MTI~3Vs6#m%`MYb4)Pgx`zg>6GyjKVMNP>Y0#mev}D@A)*f zWTWsD_q@U=yu-U`7q%IN|HZHJAmp|uM&XaorE_v|5MF=>gB~Og2HdV$!e-82T5$CRfi@*d_$N!&taP7C zvZG3~4%-<^LX&5eh}GuEO^A!%<@a2}T0z*+$#A3EYbn&db;ROPp_+yim###R8Mh_h_9C3 zx`(~#-R#w$MYtONdaeN8RJ> zBL_*i4MqdLZdY4LoWge%`mUQS(V~AGEsno8YKjk0fT@vcJJ{I;UGjl{Yk3-gy7%?-8cqpoP8m}Bz zU9YbLwciA4<#L-#J9@6TY%blUbS&EMSQ@^#sqR6PM%t|0Gg@xY%m)NJR?Tks&1J>& zWiPCkzo;0!q=XmpCBulDhs7($gkW+9qk2(UzocNn&(YC8O6OVX%46IRJ!OUHic~is zd~!#?a;H~kJKas4zGyozcu!}5QJcb!l=|$(aP=N0LWjO6uA2kfKPL)k>*s4ENHcaF z)5AXHo?t*udlFgRqoej|9!F;Glk&WI?)GL#KQPmbaTIO!pzP2lltIwbh7!u2+g7i5 z-#+qJFKZ1F%P_h^+`~ltao7|#372^+W++gJPes_|Q~ zH&bSEb*##LMOCT#3h{Q%q`xDuySfA0N@@7NGUTX2&o%`!-p(VVvB`7|+$rR~!f~Lf z)#Jm{_l!_M5`hH8_Mlki)lRSGc_nY9G<+d_3aR%R)+^-1JAE_9D-{yIY2VvUn(Ey& zg)^NK@Cf-Oe=m#jvAPl_tw_;(uCs&;d5szJcoYl4{o^IpuI8=o3bNRZJK1MzVtz=n zjq*z7uEAKzXDh@+1<1p_)5$^hK15km$SXXDOL%;B@DXTC2^JiOq^x#x+U2D z+AM}MfPlDBt;Jo#taxMWWk+>?VX-?m-|1IwlFzTPcm% zKDFrb2fvD0QmXO*w8qGa%?M?^uNx_Xvcd^Z zY&y51caW;4xJK2TGe1ukSyLs4QJN7alqgC=hKF3|l z0A2qC+AY6SbBS%L?-_HJ{o)26EpFUAoV&4EFk@}>n5lMRyh8O1Mz7g_Yg%9Qm9u_> z!YAlmTENp^liPH=oB;MCqY3V2BS#3N!uMQ^@TAE~75_FF7rnuh@sd(Jge~H(?PyDz z$IWT!mvM6o8_{xpOpZr9pszY0VML+sxKztO!6-Jp8@MG5-;W1oDt7yYJ;2KsePVuX zui04#kI@(J;5iWU5usxM^v@5fJ-2mK+D(qODifj&vU`K*`^N{5lYb-r`<6Eh51t$y zG$Oxw)6gL=>yPOIZq7O+KzJ*9J&f#Z@tT86ql=o-?9B{4>nkH^dzWjRiO6=j24Rr&@=*BxT`WAt#zG)5pmJe&5wHZQklIwRaQd#r63Ocv7I-+qq8cqh z8w$`#I5T%7>;Z!Nc-8Qp8=g@6`vB2KJ)48tZMtG3nS(y3j+bw zFt)13@+r<{Cc_s_(W{5dbwx+fzz-XMbgOy^79zVY7n+CP5+%UQvJVfz%DIRFcgO<> zS&N#r8+6-#SN!`}`oL0t&nvn{fB3z3RBK)F(K73x(&qATg-l2#l@MqZtKahkb&c6v zK;`4TbkBKg_LlK(p0RwjuYH!5ojU6@Ptl8cJlfAaMb^A$xhl}(_xtb$bJ;uG?}as= zT*umQcfJEWq_c1PqL5D$(95!p<=}AwIINqe>|U%DV<9z9Onxz3w~*sqW^xf7gbrSb zYwH#hW)=tN0djfh^JYkn&xHJQE%FhXqDSV@X^IAEQvXIN0a)V_QehB=H&?b9FZ{4_mxZj^|{Xgy*VKwX_r!FS|jB0pRwzz!eBv>8pInmr7`toou zF;^%o&CgUPcslfGUEbrMS|?+IzI7(Ss~MX;65^h=UG|KUTP$soS#1uV-~)MKkPUf& zfQGf)*T85NZ*nc!<6HoIxV#}HU?o#9oGz%$Ur9I0USJunoNbc zILs~;KQo<)F&zVKsW@{HUt~YH!aNac!{yi9#1u5TaejmCD0t!7R6JfeI9_yW5^xM^ zfs4dhL?n`XmG;(d7!L?oWE+lJnA==f5W|~>RwP;sT3n94^eT2SgVP`tyZ|@@#w+?S zQ0y4d(E#)#v!LuXRxP6#4LD^PMM-dc;JWd?gX5M4V?ON$Etw``d44y9GojIasomjV zxPN%ybpbdF*ajEU3%I0MC;LqZWMDVJn5pWe$$*aaxCJ`K1t*1vg8sO|* zWA-Z2$}$7e7AX zU!C0Gkf#~BLCgo-aTlD~72n;;jTPA`Ue_790ZFXELb;IsHpvWw6_gqCQ<;G+D`75Q z(i!^Cf-++nJ&CPcl?S~zOv;QHBWZ|(pjxTHEbXzsX)%e6=~n=@tNpUv@?{blo4=el z2XL>I7`xzKaxEmbvuGkQ;Oy{xC5Cez`sRK(-UYSKN(>$zLe1r}26-AU0fEW1lo*4M z7=xyj7?e^DWQjr27A3~6kQipn8!sh^u^JKsHk2g>J}TY;8e*UZ8**`uV?%uKY(`=* z*W;~+g-s=f6xvD*m_z<>E8!V3cNn)%hF_vc~ zhR_fyqQvOWNQ~XX)g&=woJj<%NIfQBT%AY^W>f8yY9+>BATg*gB*qE|%*9)YK}pzr zMjH}?;z?qpu%VC`t65^KDlz)vpOhElrGw*sk{HCC1>+SEo&q&L(d<27F2dQF2}lap zi_`)@3!4f7S?Q<5SeiVL7xxv=TO>(23YRDy#O(Cqn$fcKLd$`lVX&neNfelXoI#-6S*;fl#p-sJWL6nbh56$Sf+B=m}kK4H*Ta z*?bRkPz7QMg-Ed^6PXoDJk*fkqF4&01<@%5BbIt0mU#g$Sf+BcH6tDSn~WzWMqgXEfz%;N><#h$0Ue3qVd862wP`F%9(8HXu2Hq zle)EMTGesia96Gk@HUGj`XtaZVo3lIvln2Xad9$ac86Hfx9RLsEMepuDi{XTo-k?Lzpc|a44K^_mO`6RRZ%RhyapCNYsl;w zt|YOfrO;X?A(l}3Ct_)q5*5xGG8S*e62&(eG89i@X?beMtYopo6Ej^sDqHy=QtmzZjSNr?%D;Q)Qi6+xLRGt79{r7T{xZP*;UGz|y(w?N-XUSe zVf`!uM05w9s0GA@C0Z}t(cYNHd#@G}wmE@^MYuQ;rDmq~yzGPE=nD=2e9J&F+($6_ z0q%r647%6x8?uT#R5(4B#_eHajzkLc6P4~lho3^ zhB>v>z1Du_7(x%5-D~k_vXr)cy4k&kPfH1j2vRD|y4U0p2%Rxg=T_B9Bo9)l-%2GP z>`ksUPErd2K?RDfxm%3Ep1Wn-+u+)oO5skE6Wd)#)9(kP-653t4i}6<2>~0n((YjY zVm!QSOn-^4)yBfRwku}d)VqdCKfX9-Ul>P9opz?e{S{98A^y=J?vZZ?ynhb&RD00- z=YhgjKixZgo}cdarOPim>Ot5vi=~K!hFg=N4bw ztO&bcUtAJl*%w#OSXLpz2tr4Z-sFo*A}nZ3wMG#(*y@YJ#NLpq0;{b|3K1s9IiD}? z^E>(CNS2~6E=}7_B8=imgw6Qk23dqbtmpN`0oSZA4zgd~>Wf?6?28*jU#7k|=wt_9 z9GWO%N|{DD58G+H>Wlhlb&sqX*bnt>nQjpF)y-bMPfZXxpcM zNH*!KlTMiT7wD^FdbT!~+R-K<^!X4%mYDI??JR`8cL|%TYS(y@5>$q9;~LLD+UD8| zb5AzcKJK)+LI~l^#fd!?LXU-fT}xxZZZg>`v<$&W%lhkj!@Xf>d7Hp$72il~C0=(j ztmNuyNy+AMtGWDRVmVDe%R*?za%w;I%xsN^EuUu7C_zPvM}&~ZI6}x2$gODI+BjG8D8&)=;#-~>v5VmJhK){zd>LD zby{~3A*~k;a6!~&UjK)ics<{$T*2$Jxe~k{bH$ad&E^Vu>UL*y1#jzQ-GyhGD{S(a zm@E6jTv-k;8sT00k{4~)tho}r9y`sAIt_2yeG%06X1r+d9Cq(ay=Z?vW3DVSCb@X<`ZPOYinQx46i>W9dDXXj(avM8 z0N1R!0(H6Wf`cxZD{M8&<_dSoTv?62wC0M_32S9VGldD5kMU{OUC@Gf4|!V*nSx9& z#(QGzV|>xIaLP=3ayc=iKX1?QqSyGtNuhTPBit51Z?Y>e)dd9F%$$23qL23X$h~_* zE=GcK>5eW6J@TS!EFLQ>dmugZCaRzWodf1V9m~sFYB!vy2nya_jALiK&_cl)vojN zm%Wk6HR@ z`7z5R+QV+Tt>Az44=rlYad2zm$gqDAudB;6HF&=^C=x!XN)iA|=tXG(C4W?oR`HQd zK4eeU^h4R3(T7{U#M;E(51@vtG!GeJ$jXhIGxq4AywD}PtRJbuHxP0YuiPF6pZ;uR zV6HgHz)~$Ir?qTjV4o}Ph1F^7lEfHmP&7WCW-IW;_&fN(E z<5^;0FsMxn$BBXM$_vNK!+pWP!gNKls;t7cPv8N_?V_wQMUuZI7}&m91|~E+ECU1s zE1904Y%>F6xwyGI<6$cUdj49wyWOvz~z1EY9iU=im%+|Ix-NBHZ#ay-E6 zE`6~8$G`&@jD_jV;(+blGG2j!A-47UvpN8iT?u8CyTmt~kP%`&G$~pi@`H3Fw6S6+ zNl-RZW@UAS_jqFmUN}igbFRK)alHHBi^}39B_q!hgoOOc>S2Zcyg8nr@j>XM+6G$5 zoOTf9!Nyz;jyB~OfXhYUEgK1@H5kIQ(4m8AN$mq#g*h09L`+inD#Qqlw~zqjv}u5$ z%>)_EE~c%~v?;UVpDtcmE*N#mgW-0}&CJTN+oU``GsCQO17QWKal@?kZDm&fWwF{l zWmaq!MoXJ2k888cYVG7`?W<%~xM*7Cv1L{)tFNJ5a!Jf;WoihiJZ@)JOD`(P^39k! z&vs%}^Sp~epIKy_;eZiROkS-eTz!aKZ~TMd%B#Y~)VD<~uOske)k ze>cOeVq?2JWo5#xD2^iJ+(|(X6yL_JHhG69+-h}4ZpG8gtu(DSajRrnPq>vH!^EwU z6oZTO6X(EVt-7V-+C?778ZAjSCB3oe!3Ktn@kQQqa@=tDwFhNaSl>iPM4ha4`{UKY zs<3L4vK95ir;@V80<2tZ)gb6FlY?hPlPIt9EcO?)JZpKDXRU5#RDwb5LV~OZG$?<< zL(Poe?$;zB64PQeE_A^QWm+?C*KJJe?`GVt=V4ldtYN*^sK$xKyEQuHE3|k?$dENG z^(xks(Xh05Ngs7vQAH5!E;7I8ZNp^yFr$#8~|<}jjdz8S<_Z6zw|JjteV9G}Me z!L@0K@OfoOO0bBQ9ZGbQt%{tMOt%AmNjmqY~3uo4;}-X25A>vhze;H`5Afc zv=9txeB5>;sL^yZAD#RH)2(8<7l0vyS;Z8a+J~W-CWJiFBE&JI3$tF-kD7QSE2c7_ zu&jw_bgi?EXvDIPxSmZ5fmqgUd`dl|m}W2PY$Qjg1LgIR@MaylpDV!H^kKQWSae9}QJMGi6EusK5I<4nr$XI5yJ9+j72f+*3u;ZFTCQ+p<^@^9Y{k@Nd#>Pxhxlj8Zytb88S|8;tULZ!e;Pc5!u3p{=$8!Ve+eseo{(rUC+Vv;txu%|QgS0s^0f4=0`r z(xPO>2)H0>vw--;O}2n59n2g87!NqmIe-xXF$rLtM2fJhWN-Fd%nAseX;G~V_fBkq z)o{Hg0kQYQa8=i9DVgg!t2~wg8UX4F?ZC29h$z z57#S3@OcHqn^iX^#l!V#@emMc{%sNv6yGKwmhv(i^fwd0xV$NV5x5W##1kkWXz!Ns zE(C-!91g31=wm=74+3a0fDyKp1%z9)aRjJHgn-y3PXaj#uxLOR=(3siNf{HRQ-1Bmw9b>GZ zy~@TD=xwy3^D_uODa=%{NkE8RTy`qW4*w}2Fg}kRF%c4Q92J&upbYAVNTf*G;IwybK$P4T zb0OHs+Qzh;8#rC0g*-sm#2lD@3ZPSSVB67Te%d@q#TMGwj}z z->2+eRw0=pZb?eV-zIjy*&YyMExV^X+w6f~+sPh?z(88Lm8kPJFfd0|OxQg~J+>lC_dmu+uL||ZM_qko>dVfrGJ=gop32!ztp`QBQ6NN3~lDg5AT&v!j~3WDi6f+SYjWh@jJftJg?&KXp_S38;IR zi|el|d7h3hVn$z`q7u?dZ^ThVJY4&mPDeak`rXTM-qb;$8tlL+LDf5Ma>|Y>^wG@q z13+|C11Y!^Oe8MJt4%biUhTBWiMauYOcP>&nE=y>3Pg#FXnb)1zGgT@0&E3+&W8!0 zFeXE(o9Rm^Z8LqDAFc^~mxnAq6a9{6v-l16|;Q z)&<@M@x8NKF1zm)K|#7N5zzM{I=HYv8hm9%FG+O_uVNQQ3>PsW@@URy=_%g4ruS+n zlM;y8p*czBmUuUZ{@uLcM)dkQvUmj-@_UxuVmmbc7g8^?>6?QRNQ+WLf)Xscae->( zcJf%bEp$wseDf)|2%wD@oA0^f-bag@Hw?E;kKt8Y-`v=oWW)FC^F=0Zd?<>mDGf*{ zMhkI-E_`tdL@L8G5ZM^I}BO>(6 zdgRrl|CAiMfx1ftGy?iw16T-fVk@dKjBre9!AeYO+R)Nc^W;0o%fu26Y~Q3zY*QxB z5;calgO;A5^2ll)Zj1^>tCw^mj#Z`QaOBd(whGk#Xptmn%S-Pyc{k0^Rs1Urth0BW z3n`@;`U6cNjIVT`YT*_E{wc0o@_a1|y*8CS7G(izE*G}gEBxokbt8Ny?C~eZ?Qrg( zo3`0B!s!45S0R9q0JvtyJjT4G z!CB;7IS7VJ5lO>a9!?5GzJQ3ak8KYOxu@QFVKe+e&$BaCI4Z1CjquR)wmV{g$TDnu zB+E2*vSZgR#BUp`_#LMPkaWc49`s0v$6bzP0IoJSorihDZ#ZzmKkXbQY`7QRWDBUTJQynL3V<8(_8$k0p`qPAcW}7N_9k zLEeAxilv|JR=vqF7bf&OHv4DBjo9Z){*I!oNVPOKN2-YO8;Us+M-9twsusvcWhoA( zJIFZ+r;-r0m!P}iLS_;WQn}^^S5oMa47dK%xyDh9`#&KO!IEe4k*Lpsp|olg_+%Fm z^|9%M21;!E&eHMDXt4#bA@Mp@l9r8(;wBdCq{M<9Af;rNPphTlb6jYMk_#Ck8sIz( z%|r$)S|ultiUHtB=~-`{ zg{Ue`pi;FNVCiSTgV`lx5ld7^irIU}Y???jAws~b=FKM~p)K(R9)eA)@aTnG?M%W? z6l$w@%oCOp663ABqw|tt9~Tlvk;E{i(T7=S^kI+3xnM(%6e{@@so{&};>aI!t4sz8 zeo?vhl9HrNVVwU9!APe6NP>C#pM_wa{^uo_cXg|!#9{89rel=OLo^4)=Tqg(77y<` zrVFEVa@Jqx!EG;t6(9Wuln$-R3tq(h#mi&N^#* zo@F1W?6PH{=q{EfYD|88)OfTm6u({+W&-LqcOv*#xIRA~2@x!~c=^%Jdb(pb))|3t z#sOrvIa8jfuY;!_hUHbqQeJ+hY)Yuk=a*D*_#Uz$QdKjjOc#a|IvsXoMcrw3cGU3< z3dW`UTc8vI>qm=MbH~|bui}F5;}v{H6))q$(YDG%&e^UX!+B$_QWC1vOBXoK{#BLL5LQ02IwW7OFA~YFnXTGf1J3I9O#K#|?gjj?{#f%z$_z z8H|afua=9p6pLxtEpD=xyUohD^k6q->-0>q68B%h(ANKbQ8g?5@#NQig78Rn{#SpY zgMRD>9xFywlMnJiZz*8vC29vEw*GfE_KI=kqxI@lDy`mJ$598u^~vuy#c2KB-f{;8 z2i?SEh9baG(eFp1Rf||ou1^IAoBa(L_73vVxC(a-df4O>ghSEX0Yv2Ne{XLTiA3WZ zxaPNg*t02Fwa(e1`IOHVd`9g}`I7QwUlTryga>B^z-Y|^otV- zOwDyTml<+pVwAAyai_jBaJ?4YmoVu0p@4t_;-}NBlW_s{Hx!h3mcKz!Q%V=jQ-WCe zQJf7y4V=Hq^FMfJ?jx$WRd*deWu;8sSp(4kOJU=07V>7FHS})l|&uWtRcX-Jp#pCZX%1R z%FM5tdm+jC`vJxg0sl$f&p90Ca9eOxVlqb(xmmappgREtW4M9?9#v~i!h0!=qQaqY zyD123O*P8}0*sk5TW{!~8=4ocBH>M70pSGf8P9!k%!Vz>Cg95o;Er$U_cfY^7$swr)8y}sVXm9(&F8H#T?QcFppF+4OqNyKei|QS^-9Ly0xHYgGIQhkksOLK-@KFRTgV`5UG5bLHMjP*O0ZkPql~G`A#71S?Y3DbxvS*Fz@DEjbx(Af3;&J0_GtG2!cwfmF5H!ox2Xtq#MVSiE4JU znBYsdcdNO?h!kX`okqYN+la3_^}DDdG@0sHtINEpRS~+)i{RLlMoXD!A?sPiNeT`x z-2=oWDK|;ALEmA5`U&tREoHo@sp#Q!o$J%1=N&EnO}cvlDHfZ(^*IiMR`i1$Cu;QM zlFs!<3mGPg3ChmDNqQ1f<0?J{D_7Dozb@y(AvR`%rXP4cq4u_IQuW$$+hvus==FMa ztck7~?}Zw76&5|0%k{x@o69*l_*a-p-%I)#o?gk++KYn#K6goVOf5wY6h}YUjutE* zA-}SRE?kRU&nBHf((x6!BsKCp*ySpyL0tp zIJ|t)Lt47wXy>Hb27;?t@aoQ2|m#cU7bn>?k`u|vAKgjVrv z36ur+A%v)DT;}0an@vLY%{4KGN#>_4heH%ZCH_oF(Rrp)@BQ&^+4C$&0xCQY4fVB) zSCc>r6?kTVW94s_vY+`rf`vY-H zFsp*17!y7dmm4cpSp-LR)qPbJ2sP`L*bH5wp?#lc@Obn7IqOejHy!h7(X8G z7 z>13n!M1YV7{kgsE&%e;f|Bq?p|I!xx>S^RnnU5s<2gZlWvR)mT$eH0p&KwD0ijDJT zcq1GGrFd_ex>qTVJ1R2R08TAVn{Lkj>Bo7%QI^L!(Q+7siBSLGU>QNB>A~dN`pLat zI?pGWzoAn(Az)BWFqGlQ@r%9^?F)|Yo0nbyILIP(48VzV+&t^j>b8OOzRe&_Kl6?g z=YMG+^Pac=w7>21GoRYjqqa@>ra~I7q&kSyfY*W!(UOcNve-2|r zUFG?zNP9yn7sw&)&0x|XhHh%KiMZzNAt*z&fYvUx0oqPFN)TVS`O6PK7R0B7}^E(DD4`Rc*=~tCsG+(BGN~g4w(qpEtl`m%Q(T-BTmmpm*4+vZL7g>|8-gI=`W50S#D=L^yQNMtt6qlet$WRY+f@2473{TfQi#ZAu&&fpv$SPl8(}!}? z@IuiRZPNnpQk~S!(lNY1t{weZFJ3T#z+Ic+QjgLc39<~&LaId$`l5MrR~rG=XSbUl zhRe}u7jq~5#vx(9^;gp=yG<1tZ@K3MZ{Q-~hfv9fMJJO@eoJ=~ClA9!4cWzj{7Eoi zptvAQg#)iNRQ|AAb(3e~7>Ls`=N*k@0imAHyXffdK*pm+BhSwTg;vtb z|IF5$&j9mZq}PmQn8ooc#AxT6l>GO5Ad@mbH8V#uEFP5KSOP=i$sr6t3kQx!qTRz& z%+fg_Rq;zqIo%I)`P}1YkvcMR`@nz_r?LhrHWb8=u1&Y@{y{J!> zrE2O+N<#f^E$E)JuS~9Bq+zlz5;{U9z{5&?nEqCq+V?`^eAUHb9ET^kbF4ztLX14d zKQ!ip!$Dxo*;tx395=wJ?+g!LxRpGKh*LUI99?q`4|Y|*CFQH|z|bkL>SX-@wwU417ZQb5i8xC);xmn%mLK^Qq8usQ~LxcQ?oN{O!^ zjWNj0#KHLMF*3$2{aJQxT&{E%Asw(7M?%c&i@^h5e?I_3On{dKAol2Rnul37r@sU^ zzqhDETxh9mtmlH%a=PCrIF9iaK zyQ8kmlGdneZd%s|w$}B?^nppws^*iqaw1$jg;>UG<-=ZE{oA7Y!wJ+O)kCgMdl1FU zFf_5Me>+fpc`AeQY3QPekkIE;&*tlo4bq3lHmKfj_Sp4T`Ohmhf{E%FoM84WA5LBq zb>y#OR0tvA^}lh%6&jG;Lp$MU6?WWwkjklUI)D;h)RPxEYY*WYh0?tpx>!&WPz8)- ztRPtg$<%ZMZk{2{{?6Dd_@seXP#4XhOb&JxnEF{o{d-Hm;-)oWU-&VT?8SwFNKp?qJ^pX{Xkotvjg)XIS=N zh^9Rl!6;c?Fqdex^hX_>XRwC36bZ;W13cJ+P;SIAR>l<*0mKj;#F7!@I@f`XQGQ$w z7j!|frdx2|yBf;rUwsq*E?#{T#Gu4$(%oi2 zp=g6b8%1#EMoh=Y=i*I zjtwN+kv1YcvvuY>QxmQaTkpcx!%XKuxFlw)=A(bBQ9m43Nz7KwZ@_G>qF9yXtanMy zR?6AOD4*mkVCXe0>$|Fu?7B>jOe?9%4dUo6n`IX(*Ko;t^^6Nox82fiZE5}C^R=!H0#_Lp^%oIXG>B)R zd4STfR{u{6S!XB6&Ycf3@S>w+0$D9&A8jF1$7ay;uqUTSl~_P$=`CGWS7QVHxwPQc zBGxft!iw05>kE{I@)CXp_ld_3d__ZIig_2>kPSzRMJ^P6;nCs{ zMaezUZN70*G@nTpD;7;iNmw8&cuj>$8dmG13pr-WF8sd|d^#86FvgUD3L6C?K-MO4 zZ@<(7+6R+RqS-GrInRYQ@cu3Ft3ge0&9Z(PU*l!PE-eRdh$Qw5xX@#}C~#N=^`~K{ zdh9wDK~rnu7_Eq)T+^(AOkhWuH4{y)t1m)WVPe+AD1?d&$D;1Av0Oo|_$NtyEsmmj zIJ{sjrI+~x!y3}!2+>r{da>(@qNFUUCucP7)ta<+kH^!z3tx>j@Wg0Tr%YM@E<|h3 zW-5vhGvNt1Fc*{d5tyKUj|<)Xk`nqJqQ&@NQZp~`%YudhB7#eo9^xb9Y#mHKcoFOa zoar5OO#{VM489E%G0kvWyop7~*V~&gg-9sy(OR|?||W3dn|Ox z@`ek7(;-Jshai$gudh4!&872+WtKR|jhOd#0fjHung=IU3sC*Ekw8@_s*JY~3fpn2ubjPva8jOQI7eodUs8WndgdG~HeS`g$ zL#!sa@Wu%R8Tam@H6&aR%KAZ$CO|z-s6wx-e}ypur>e}gYwx8#(E%)%X@Jst+_l@< z1<6kRcFaj7l>THc42HjgcVF&OQ-z8diGH%bJbM530S*ttqnQ(cl}~D3iZB^FkVl%~30i<;QS9`qy^ zVen)(j9!)O3%3^Dy!7c#>++Zeb39xmDbcA35525-x%+0kc^QUqP={_Xs{C|ug1j?k zo5?cbcMu7X;#5Zb=FEc#;^;PCe`381#;Es={ZlELV#wusv^X9;_h|XA)7{q^#}Tvy zRZ7{Iyz(9lrAvt8a5gyu_~u_r{^3dlPnh#02O9b@>8#mrH5 zGNMM07zPSV6Rm=`mTp7#Prg@IW z;5@IWIkA|#baI6ciJT32oOJh+s=(|R`AHRAGtJu7{H#ZCa2i*4$HJgMVGJi5VTGRl z3c*79)ZNf@*HmNB3%^*NN6}CIshl&TZy8snkUGXhzCq|cPX5J}(p^*DEZ6{bl0?Hx- zj0DR#H89V}&C@^%aopBG2Yy-qf(m{#lyftd&C_!y>bEKePQulkcbV>)1cB41l{^}w zPo86V{vMK4QHiO@@g=-NXQ_?_)yx|dL(vI$OgpN17J-DJsf5|aghN%pejBo}EyM~E zERC2DAd6jRixt>}20-C(SHxO#*Zhh42L<;%GT|9mjg7j?HOzHKwQTOJ+C4@wr_sWV zb}?j%dXyN%?&M!gvIxfM)Xh4f&>tr*?YLS*G#Si{yM#HVM$`~7x@jL23=hJ}8<~Xh zUSRyB$FV_m_Yz>jqr0mU&D~uBow@%cubPK6Y%-+g_CMtA z^Mq@BzEgFQ*L%ji5a}W0#N`eq27+n6`R~7sQy(s@M<4lcl?+9>#)7Uq4%ICfo$Cz} z8~%lFPOAjyVqvpO^R8N;!%NzK%~w_vD*crVp*q9s-5?&JgAhdni^WS3_34M|HoqKZ zNRm1324fvzB3_Db)+8BH>QKZ{trySFkX%v_B>3&X)O%^Mp9{+PgaghuUrdV?5pOr? zTMHCZfX+l$NHfOT2GzsO6HuX&$r+_9inSXdY``?!j2Og~5gR5!1mH(M(CVF2BA*N=7L!>-$w2zh1sx#}+Fj%1cUo z{i>-if`3wed0NXLYEj)+*Ns{ZZvK{$if;+jXx!VaB5G63VbACdv|v@l=lAv1jzOC1 zjp2_7NZIaq|7f9lqrC;mbgU}1;#o=A#Xi4)N%m77FWiWntd#n*1MXr=Jv@H6c#1^r zu7w<}YCfPMHELC1RmS??v*Z&Tji&}qxI?i1k1Wj4id94Iy2^X0|GeXakjK+k4RPbC zGQNX-g_p?H1v)Je1@mWooIR~0sp->MO%Ufg9s@T?LxJnnBXko1_()iXFGtnk*`VpL zA(r;NERMINbAP!sX1`*a3Fsk= zLzJII&7`AnWHf}Roy-ysJ`|DOs0CE_D^zzQdxddwb&fSBnN;UaelU^-J4l@RC>p=KTL0^mP z`W<-#38wD)u&DoR9zB2QjsqNbQ+m>X!SUV0F@z2y)gT?e+_@1ByMJS4vBT^x`Ok$R zTye2lKjkpapl)*t`1d4bj0}$4XfCL^c)-fA9IJTU_d|$-`T9U^11Ibe(aDg!6dK{@ zcS6@(t|uo453d?w+Fyeq5<O{81METjMKC^WP9Ava^RFo zXEJi0q^;jj6sM1uZ~1n++u=9#wmd2m`l(+>KW|uqj2}y{W*dc@Rj7vKA-Wr>k`zKz z$$c%&GvoGo#U`Tf!;1~V-Mfq@WK<5^m&+HH_gnP*)%eUhaS-_R>hx1q0(k1zEIto8 zxy)ZN7$EE6A0!k$QZmwf^VsCqE{byKTruQSWstI~d1CUa!yyAv9X4!J08ZgtfkgOZ zuDJ`+i)|{<0w!UnnHO0QB?JVzKsv4)X;Hl!vXhk_;li>A6m&WGk&f%1S_qr|;qX?K z9DUyOuBCfNHk$smH^oLAumZLLAhx}s`vfl>c1YP1p)JG+vn3_A>3}RsK|_E+Ls%+z zwm>>t;IqwpCQocWoG>1Nh*(aCb}s1d_xt8krf<^ghiM^?W5{?o~N9$mjby}i5`gX|^ zz1HD(B(6oZHp*>5CAqAh>`9oY1My6hGl9?xz;d6d_OMh2=KJVyL8n5tZrlWRMPoGpq<+({-?50U$#5)DQN-@}@M9Qk^2zXWvRZ>o;x#uL9J32Z zWGqBJS%r{J;kgE?SC3eV{cs2Jez*hoKuXj{NB}e7TC~yaU*T5CI0s+p&dL?WOvlL6 zctiqhbYDS)S0(mvWnvGPgKQq^B7hD(6AB_=+1K=g$MWA~;h%BnXaGAPcm0P<1S;H` z-g%hb^Sx=PH9l!ji_|r2MleL0pZ<1H-&@faYBRrwkABSBq%qgO2x%1O5!o04C6W2h zVx8vHw0g6FQ~e=9kDM`;sYyfH?eqTq}%>eQdW_3DwBeG>$7w~lSks1eV>J4`&3TZ)y>u>7h`Br^GJ9`SM|tkj-$sDoZLyedj?_FcdABttT=& zoXG4_c7Y}46`4KyFrcr82R^o>sX-9sj4aRoPFMqkXF-Gselr8dnw9%~k;Kdv8 z%bQqXZhoH;p7+t0xasnYnI+ry|Bj%Nyhy&l=}tDi#wB)x#F_47mGy8#vi3V7$O)F&QL{&$WiIH+Z@8REY$v~&ES{pAegh6PGZ;0eaw-F`t0cX2&FJX+o1Z)&R&XbAlyZoZ`+jnD@m0YbpJd|w%(1Ca=nQ;y|1*+W5FD|Z4KZ^MA3Vx94n6@rWwZDoBarNk#4yD>dPq$3{H>H!YtiNP8 znHD|F;p_R3N4oTNE%jF^nVR*uijm>0;ror4)~VFG1WA!?!ZPMwI>HpQMgyo6ty)y%^wC04Bdf3(N}pjDTZVgFq=amK?iW7c zQxz34NAyX9bFpmB@!T=Q9!oFYc%#gUXXFy}4#vq_$%mTi2lW_4yMg~`&?=iJbNwNb z+s2SjE^@s7#&N}$R*GfKprxAaL~42h-X@4}`T6x$fF_@54V;YpKs>5HQ&Jv(EpqwM z_p>+KE#1v06I9}dcb!{r8Kf^ma~5iBg1DqhhM@QD&_^Q>lv*LD|Qlo8S}#hOC;}{ z;g>W)N+vHRe*!FK6>PP6&s%}y_fQs)dzAb{lr-Lwl67K9n#$@L(~=BU^YHYiAO2!| zXmBMTuBBOsVc>_4O-uUW6SF_7=BepV>$xZDF^ZCU)Tptm)uUrYuwr(O%|$n7BqaqR zgc2I&)}YE*C9Djg3|@L{17fl89t#{(W#jrP|9QnmtTgk5g<3qFrJX1UyPPSgP7xmJ zE{(&HV2y4(jIm_OY0kd5K;@@UXB5+r#Y9N6xh+jpC{)TryNdMdg+b(SqwxO1F#f8O zvbMN>etwcU^)DnNk;2dZKS455N6h;o7FXNR^^?%t}~71Q8-wLWRSm1n!8@wc3h$km< z0)g#%N%e}O>W`eh2Pp8%@MUsd!iydStJp}RI*K6r66?RbGzUnETbb1 zou%s^_G&Q29Mp2QyTzkCD;v*`nQn70U4TjCJ(l;DBy9mPbIk!ei{nI9zRVTi=P3rk ziIH(#QRDc>O46 zk6lp{5erfecEVir{H(ycw zdfZ-8{O?CQk1B*qXcd81u~Y>l0YXT6K|uw)kS`K5+qtFilUe) zYRal%x-$-)v>B%ONdt)ntH|M9FHk`Qb>lq8 zE1=OO3D*-%;~apVmf>J?j@E7q0v4_PVB7{RyM0Q_aK@R^vJgSsY?{@i*V~4c{p2hy zOO#p=oRgx(LZ(e-;Y^CQmz9p9Xg3$8X@i)Nx{a{A}=Llb$Uvq_J*JDArgzT7k0A(GlVE*e%NQ=|n>ZYYVPtra^Eur{9Ef;l= zRA&UWj2&nTy@dXsK`{e&W@u*f=2E)aQo?p~=&2}s(X~pNuXScPU=n#RhPv<=Ob(+RifC$+C+#9yD*|yX2lUv#sv99JCAB zKPI}vdx888p#QB_cxiSq7iNxRA}x5Z5T0c-S*ErrVCF$07R>--egh#3X&QCAfm{H# zoMQulVC|y>`v_>^J|cE8m+mSmC7Iy!M8vc7%16`=857dT!2(49uT`S zXkY@m2TV@(Vxw4`rtEe3B{*CJ|1oHOtY^()g5+e-S34!=+wss3CpI^2^qh?P&ED|~ z?0DEVXFHA~Ku1TCN19WRV18-#;^x$8_}_oU*dVga7eB<0x0?Cx^Z?em`_APR@#Fmi zu~$t}{~#!ox-iKQ%v=8=W*w=de-L$bde!1^V&zLLobc@VFdGtBpCFA;HmKgo%te(! zE~F+1AU!d;wfVk!z6VOubH^>MIp>b@S==j(Z3tvbJBoz#@$D$186H_& zYI8%(GrtC^I8`$3I2K(64X$biWmHBC9}p@uWbjq7jOX z?|b_mFvPA0Xpcf6-LJJ+d}7r_*^5=1%)LmsR^1ngADCbTVzmtL7p!JIKhd>ra$&dL z$AvCD#CCfTOYIjGExw1kyV8?&9nAe2YJnqXlhK+G9|xqRAzH0+w8D&Lj@h9ylXMM&gSqjH8mC29Nb z4P}A)hb|#I7O{Ai^eV2&=#LtStJ3YexqV(clpc#nN;+kzFrjr*;q zh5p`?o5bcwTA{CXoZ^HLPo*BFP3!<+M}@`RsA6Fmmo@POr3oh`K|cv|z{r!5JQwv& zVht|D<)E-NDuKVhD9f6CiVrvz>1tQDAq7NJ>R~z}T7hKG&`uj2gEW)f+DQQ! z>GCYbJDvgI3?h^hQr6yIq&X;O(EgY#tJ}H`gSJ2Vl%7~jU z$URMTKgcoHT&Gb>J}cyoMCoe>@Lo^N<94!Wx*_3U@0a5cEXU1@@M5>;XmDdtc~_sy zfRXfVu@#4@vwwg>k8MAXcoQ2`pDM=Og;p&1Gq~~~1nlualU|~Z3DTsRJ+Tn?%00X? z#bKRffCi9o_A$ob%Xs@{>97oM%DUMNEFNl{UXTfe^CHBkpLrc=V7kMXT54=4t zaXabqltPwM?JU1VV3l}&c)X1zz{~R)hz+(jOZe%3*I@Ec2;{~(?vgekfCJqRH8a*L zcEjf-W!4h{+tg-8Q)z4G3rVC)w%zLidslx9NGK49^BZSi@G z6(#j`jP=5#rdF5iX>gx`gL`@?keelJmCaMqJ*wiR=2v=lmrC|$?}8ORSc9qR@X$Al zL?W|GnlFGJ`3+cgGLZFwL(_y-QgO)hf3ARNACfmK7NAkGj(fOCnKE?o8^9RU~gNCJYnK1<<;*cV!4=SjuQ>6Gr!RV!kQhVd>!5d2 z3Lg_d&W_qW5KE9*_L-8C4V2g6F&WsWaBtTf5-`zS&9jl^|5LTNuR;`K7e&QRX!7wO zr(!oDPyzZ_hx>s!+~Ov^xW(#ZI8x9TB?knn5ccpo2oA8k=YA}AB;h5Hzy%1CZDDGM zF26blyJ98w^o1#EeaOIj_mn=qYHI~HQ$6TXi*T3+!^4IQD~t)DJ@uB32e_6UfF_8= zeiTSVjsj!#nWNBgJVvpYMlozY*Ny@|hG?+KrOL=V>?aApbbE7y-srlBgz6qpbc8W$ zKH&En^WIXXh*1oJvGZ!|d@4vsKL;Bl_hGP+9~I}xa2ZWjuJ)}iL4066z4qXJdVp9Gnw+8;r57=&9L!AJ~roqqM(CY0G2IatWA?GFg(;0Sp7}p4jQr0BKe^kDyxS|TswT?PQK#A9_7!<)$Eg=Y7IZ?GdiF@ z1}E=U{}u;QGer4m%rO<7Fo_{pdujGm0f5_Q%8kGnYfPA2_LAa-UBw5GAs=`ao^;yr z!qs?=M0kW_z-?ZOw{5bX#;1HB(cDX^D9nyPVV#CzKV~16I_PeNPr_fGSM0iZU}(o- z6to?GR7eo=>eLdE2-KNP&aaDW0M@Gec3!=aJCi6ZnT>%#uNnZsK&kra`3rgcq(uC` z#mlN#zg+zu@X&low(NAM3x7P1Yzfj2xU{cycIb`SkUM-%4uCEn3>$;z;~^F7eJ zN1!V_6f=i#mCH5fOYMc@-D5Vt#9rpHbYN$NdVoIO+P>#Amm0t1&<19AUKrtX4FE!_V^SHfsSU zfOxWuGZomn!uvIz?hYbMJC0=~EVF9_4&l9xr&aYA6uck_=c#;S zuh*As?9t^pIyJ8M8q+)mlqHyAj2uL0PrbMLxGZ1h+Fx<>{8gn=W)n*~Lh9Fj`YMo; zbr4U-wf@vD1O^zH|5;%pBCYs|_?4hQ{XAebrzU(?r;x^IJKk;97ruVC$Ova#^$ zqU<|ufpd6WE^G}Wy)^Jw?}_H9J}(w|hYPe86A#^NcUq1myEbS>`aS(C2EK@Xep)r> zaEx1P@2{}b>?E>v0S5-AlF%gGL;m#@{J{<4223YQYBu@%{iprCsA@V|5cdhcpGWiymuqebqYfKN@Wd+8qvN%LuFs`dF)MPC>| z+{VFT*VGqo?BR$Y-qJdM(^wb->+eZvEJqG}=bnuxt)P0JE%cw+b2nL~4U>=2E#I^8 z1XZc$E^>j1S7(c?rY5d6O(u8}$Iq3VY$2Q~IhZJX7O1=yCIpBiykn~bd!C;CAMRQ^ z+_iZ3Qi)3fgKv#ekS^_DX+XeQ9D9^jUQg^&f;)K;Tuw1xG`;P7X_>_)Sba98;U$yG z`2v~F);Ans`e~f7w&-q5$NS0RN;1XkyE?lxhT%~P)BLNVV>o~j#;&{G6 z^&K@#=(E5VF4ri)d2`i--G49laJ4lT*jr?FwZhzo+@;WTiqop1$5&Em{ElB&oFMqs zWSD>eC4g>$d|w?%z%8mDEXNy+zWFzXZRE{oXyaP0pXGX0s{aN2q&3eMyz_^RvN=Fz zs?vxu$Hlo+M0&)nIT5dkJ2O8$i#wQePA4R8rTG|Nw#kTN0u%-^RBkPdT~`5u01*p8YLyc|(M zfq{ph=SEhl2~pUhVA;Ist?6tzBZ&(IPG&EpKXn#03P<(y`3d7Ann`o_Pjd`sMClEw zxVf+Ud1sj~nL4RmaP%j_LKZopDX|rc!M&AC!vWN(T=b4)`6{j~*&~JnyXjH%;K}co z)qSDQ@V0phkHZ_Y`uXBQ@z)e%694g1ag#FGUPMH74*K#f|(B9PaOlx{i`XDf-{*`()h<)qYK-VPF#&SPPqQ z56zp?De7w4B_!cOC=Q!d&Bf)yf}vfid0Tc}6_L?TSMf*(+&Gr4`hEn%FknBXk`W^z zWTW{oa6NhhoMOoI4Vx!~Jqc+z;04~elXO+_gOu~^yV6OZl~jmu)I2yi4O=`#$30Cw z&Q-%3zhC_#5hc?}<5e_LqL+KNHP->z>1>${F2li!9jzu~qD&30;5{LShq`0im_$6eA zqmk#@q7qaPp6#OY6{kGI%pJrr7`S8AUo3-4wn!a7hz)ew zT4d1FJvlYxP=epM&CMxoY0%lo0f>DqD-PHBfea07lU+4PgDX8m^RSRDn-`yGUMP=P zMj+W2^DA9FhPqRRsiok;N#c&vws-2T^2T_5yg7CI2X5w^GqeeSg=s26F(~0hvu-GV z^s4B46%PtpYI~ukF)F7QYxd>_dU&cj%2~>(eOA@CpU~`f>aGuwzoc)kq&-^MQau~C z>hI>sCupLu{TP6O88;A-0pn1T@W+XYSa0UbY5mbMU$|Lb{21a_O8q^gT|zqA*x8hl zr$Lz-NQ-GHua~x_{vIOg!KjHLDfS~}#V$9QOsth{4)28%j|6eMDiUe2@|k7!XtqA9GCko$a{lnE zKAbf>sy8iByBkjP_EUuZ{Y75Adaw~xu`l_zmRyUH=_Ry;3Z)!=$jbcttoe^w^_!#| zlx^5#_4*2-!pz`z^LeC3G+?-?*UvAT;W29g0_#W(g?)c`qR}y9njt09as3PjPfSB&f z>R4tmoorRad;v5_RKzfvJC3_H3p*?GAae~fJN;*dD!woedtQ`^jS#zL5Q%lFHNWGz#WG?^5nJ;weOg9wu*4bX&(67l-0d7 zmnQx?&Aq(XdMwM6VTP2KN?0~erOV*o%gCEjif*{ecGca}SI1Or(#QTII&`7r4xqu9 zRR3mdp0m7#H}>l|^DR`;gYnO{f-mMp=0%_VJSMGsS0${Iz>%!!jc2* zJi21Gw;LgFh|`pyC7K@lL4xI-eV%c3bS%ML^aX-xQkX`0gz)B&Q*mA`4p5xL;Hsmz zy>|JGU%!x#rG-YxwzC9$Qo(KKX+3#I6*zS>w!NCOy@{!kt%OY>2Ziv5?{$GhCy=hf z$Q#%U)uMR@7|u_AJXcO_d@2VU6_b)UsWQ?iJKfz~AF>#%X~ zIDfwF>OIX<5QAmyVsn!hTxpHv8_Rkv(F+ZXUg#(jZFdH%MFSO-tz`c7XZ8p?=05_L zSiRlz9#IML4^nNXfb)9EZOHSqrwxp|F zLaqtKD;C8&W!ylXFOpz|MZt6Al2{W6yKlcOMCEQ1ag<~q^G_U%!Osa!^i&?7aq-7{$NRMRWhHAIX}{<^#6!@kO?zASI`zz&g7w zw)scU{a%{A2_QDazfk$_;_>rLy?iWq8W+ZUtl)1Jg=hLip_Ei%XcCMoPFYMOT@#tb z?&kw&_2_!_zGZsa%Wf>^*u(C(y@zS9NCnb4noL?0Sh=KlFxq+mFZ-x5W|yjYkUAkW zf;pBbF@Swc&}|G}^rDvi<^3Fet(*orPLDMw)`E_ww7g17ky_9l$j{Jx#$nYzaHLqj zxzw~SDZ{p&*1Hpv92x*Q=FMdJWa5E5|91gJNH>%8DS60 zsZyB0yU+0uv9URk@(~NL5rg3Zom3ICF-V_6fdDy#gZy>iLbG{20)YbJWceLOLNjy= zCO8jt!5Auovr$rfvdzj@+rT>tz^qBv=E#2-a<&eU_D=U=M^^29BB7tLa5W8h?6i zNS+iIC3a^mHUZBz;C&ENfkT(nYE=Ck8VQ%u06Gf5;RA!@`>uJ%ubd|Fc=b@^k6Y-w z!f5#LK{;*6&Ba_=F7&Ps$hQJYIjMa@O4!0T$w7O>9cSrqcaS?^0=!vG!G`}AJW=!= z#jxq0-Si5_7SrPtA(y-SLb(7-g&ZP9QB?&J1Tc)@VpItjqTkto;aP3x0>;mOQv&1X zzkXoAE1ne?h1{~3(PF}{BCa0uYc0O)xH1K|dLLJM6J^!FmFh zS$ZI)v{O}M%b8=$s+vXhyjlH(a0PV%#Ig;Cp)iiAzrz^DSNusSxcrS7O(onW4>2T# zTLkoSG1ATAjixKfDii_&3uPO28)tV7QandHS;KrL(bUHS60NS=E%u;<*_<@e0XREJ zvdZPjk{jy2=2U)SaC4KP!eGP7sw4Glpf|8djJ0XSLfCo-8Adpq`8<{q+t{}jd#j(} zhnq#nCV0QOaN$hgCFMupp%TP`!x|0k4-9;LT%iX>ETo?`oh=HLIi z)G)AsJ!YLvioF+SsEJM@Od#5=&EixJ?dN(+zOh1wn7W>4!t)?V-I0~*D*)2rBO5t< zzDO|9*>R;=;e=GYbN0m9G|i`IcB5>bYBw2?O3QWiiKqUa>|G-ihK?|PakqXGnG4AW ziJAsgX7l48jc;qerMs+%$&>26FQ4pvKBm&YN)3ykv7vA0-4*%1%@-93yCzo zwD$3+XK+I0%=z4QCX-dVoylkN-PvaHnf**2nwiO1$^m&7uW)zvj|3*Ivz8}&-sTuh za~mgZK(Rm)-ur4JQo5ogcY-3sT^6oGZp6g&9QQ0m+;H|nc@Bm=1787IP%&(5hy-7~ zqh3fU^VN-^T#utIrOCNOk2MN*;r+Z0D#s9IjHqOWRlUsLt**u@VW&7U2(=#-cyRQ$ zaYvWruR@mW=>W3w`}3ps&FF zU+C*&r>_I)>kN|zYXj+&Z{|`>;A}j`4{~i1Yc2Y2zwR~=DcMAtpyg)dSX|P4>lk32l#o8 z5o?+pmOP07iU>EuV998J85q2DPEPWHzIY63fC?3{!qj=KBsG-_*usSAGvojY`8~z_@=FG}1lz#8{L{}I zytWb~9Qxmedj0DV3SrX!fmK*RNTsSIVd&IHhBqpXa-P^44Beu}HN%ZVC_#%!F;9Zs z&mBD2rVoOnlVuAP8k`&YGZ5|IoKF{(pp=9-;D74rO)_jcUPg#tR)_8aJzMxvjGMhG zipR~De@a(R^%<{h3o6wyu`+FbTRk5hZQSfj#qTDs<(b9RtPvEu=WPvZydht5Y_q#r zCLszbG{T|tA!3P-B3vYp1J6g|y}tZuayX-8p_q3iTl~f^j?~?_2Sk_zo#T=%7RR3kFeY7mJ$%8Kc9G2*HYX43Ib<)Ycq?bGZ-x z^3%oSJlZ4jt{F8;^{zbtyCli~?i+Y|sqeYgyFJ?nQu*+w!%ip^iyJ&RhvUM)48j~Q zgec=~W7=UERrv+84Udd)5(aCDk#UQYBIlHyC<*e>T` zj$<=N{ir!fNSZkQvi-X)3-Yw|>C(xbm>r6QpPN>H>bU6-SnI6$$43cS210Fo-c zfxRc?>^b7PdSSTUiOMNuNIblD<{_ONo>7vO5JPh^(sTh{V)cjzLC$LiH%w;au-$(P&vJc+8#+?#H*K%Sqnp#i-V7ICEza7;DG^TWRxg)Xr@4W z6nZaI>l{k$8T@+Xz9-{pNR0rv3kRXqM@()4q zoFlkMsY{}npnR*8qN+{)tK471h|wMnRx)}*=fy{98E9^@v) zGDBrTSZxHqy@z-=Eq`dv;%;{U5(qXcXl;E+f(yO*_1e!FIxrYAksvkZ?K)4%lJPPA z1TB2QSU}Ixn1C>1df-DS?N>I!ZtYj7&P+sgK)W&=GrOG1D2(Flw&UXtC+HoDRWNqt zdeE76AZFw)_6OC0lQ9i26!wLo2s}5-wapI=9aBx z4-jS@c4cWx!m9TR?IyPlYU5X$C+gw{P1z7`T7SCCcy%I3b1`820dXc|AdKk(T`!N^ zLPtGoI0LGHcg497IyAyy=nbPP8In+ID4RU5^RQ2{PINe)_QLfamPu0{Bhm34H!Deh zJMt`NrqvO0H<)l}qF{vFEytC5uCM+w)cn;3%Z#4XOKC{0k<*kYF_8sBZ0>KdRpf>G z{EY{+HFx;%UhU|Zctu-g-B)ZA@AK84gL^C*j5Hh^V1IH`b2x~v`ug*tW^29yJfK<7 z1@T785qPC0lIfYF4iQ-aYPf@ivXhN@g^IaAH3AXsLdL&4-$y$}pRhlr$ywY-!uc5p zhn-2JOcJ9cC)`=`>W4TOMr>nPymx~OF|tp@p0Wi*1b-r*)PXlw80Nf!ivunYEQYz7 zoK`qkWOwz)AfRD@GCQs7sI%N4? zO?Dzr96Z^?u_LY!7XVePz!%?aSHL0BF05aJMFG4&oC6rWldjJV zsIpB7p_-Om`3|aR5jC0WM0EyX*AAv~2e{ykuo)e>*yYG+aPMXIu?^}dPIVV$9R0xy zgpL6JWs^bmp+)v*dk%iz@mjoeKf{)Rv&%2RWvQ;9!y5&4!jV0Q7+kJ`MQXd zA2Ov6WH<%;^o9O8O!}Zb0twcsUVeU*0=Xzc!P-~2>WbKPVCUlD(K!1Z;LY|jMY zPg4z$u&dbH_DqQSlrap`JNpSwCmCJmsp~4N+3YLR-%JO#sQ!0!H%h{{FWRT)lKOw* zAlwEGhN1jSeOMgk>f4;J4@V@u1K5MM^utJ+xep1p->xTzK{m*SLra}_A)UaDYObuI z{PVRL$}{cf_)iL=GK#~^CmwleQvqvQel`^zuk*-y#Iw8^ALGOzufz)CNRIr$@{*@4 zni1P^ahR|0DFZ7)l*>1Q3xn5YV|1l0_&KO^tfBtnSV}RX^9kR(8PHyMtn*NEkFoCr zl+Cs2nnWPG0r4vl7J>ppGUI7HahcdcUx<0E@f4dY#FOfWk}bGEluDH7Ud|IBh+^7 zbv>@dG5!~emUI@#VcHMTIiyTWL!b<>PvSr-Cs;~gtjsh%*60_evziPe{}Wwv$0?F{ z&HgaBoFCOuCC!3FOY8)6i5al~oy0w~$v4Wj@69XU^J#p=IRlr-AIn$oAIsPQAn33J zIQRpduq3oRJoPG1gsPrTndVKe<~*j~_UYO&qW$>s+FOXRJUxK)S=-krn}h%f0$eXO z2zNf{`Qfz3j~^+L3nfe&jvV$-ptt#T4#IHe$0C^)9T}29V6t#^s9cH9&`FK=$n%D*Pq&R%MdGLqu4JF!>{f88# zUi3l@^avN&G+A)dB@+Pv!5NAKPn*JF#V32hi2I2LnS;e1bqF2_pK^m{pZ;vOWbeN1 zY9}V{i3jESn@bnATV@+jYsKgsXDfzFjMnIbI2%$CMr6&~(PXjDUY@J35HH+fKym81 zI3|LT)5dc386I7fU2I~cq5=CZW^OEn5HYBJE3_o3lS)xV1J^NA!pbZpG(2l8XEoGz zkvbrKI{cw%1N#%h*?JeBE>qMiCJ`pauFw8+M)_jal{AHefI-!}+`k0^PC>IDrF%bx zEOHP^Ug(9Y_i)UTY)JKs%lzQm6}>69Jf^oPSC?}-Ee(li&!3%ptbn2KHAwAUEEE6} z$AbkBR{|mpk~Hp*OxXSc-(Z;v+L241nuoibQ5YOH9KR{ia^O+(%SONKZ+BVlyN35}6{O*PP zyt%dI>5n>*0$x_F9{PAVG|RHo@z5pBFIAS#k!Rr?j%N)S}irY#I# zs^;bto+qUpR_|0bY&d|6aui%C#bbp#9sO6Jx3evl^B=?Iz!*}Uq|Jv<2h|5*+~QOB zo2XQOb*2m#C<(6JkmK~@f6Eok0XpabLZkPblqEoDgOZ_*SHd_%`yh7j0fr{2S!urf zJ_ybm%^JA(*n~8$!W`y7%Rvm6+)#_D^{AtlsHS zqn2@5;3V8)SJbFPnCO}cL-5rsKQrJHOTWsFh{{*~?&AZ#5i)@H{nFJZvm{3n=h#6nGvdtdcaQWW0 zoonaXvDHPUHH8G+d#O#U|Il)lo}KpDp?IV#`U`obbh8jiP2OD<<36__DaqJ|-3;iSZ`KAe8l3)2vuu;R42q$m|nQ_gs zSNL4Z%7Hr7ogpf5iMVaRMnkRO7hCF7AOb7cQ)c8ZWE_9@f*>Mg`=$6wx2JFXQZ}=H z?`GYLgee+^cYIFjI&f^<)Z0JZzlV37alHmcbSdm6rR6jy8Xb6RP z1EeS!L`|a0`p|#|xfUFwke6AEghErnD9Xc1NZYarRxvNAv0T_keRJ-BvPpRq|ffjh%Btc=7j)g zyhly-Fz$EP=RcpHj&xUjUg!msSD;R0+%to(1Wt6N5~a4J2BH8v$boyUFiyHS1XFuEvr5?f<#92D(B7vBBl${hTsga z`0r}^K4QNssc5n+zAo20(){sj*}0M(oW-&^EDDl1k7e^%$fjC--0lT5!2sI;sI(Cb zZKeuxf!~mFOg?H8QT(j%pbj-*V~l(tS9uc&{~jPXj1J=i-7ErMs2?yo9dZw|12tM^ zp+20>yp%S@x&pxhAwaN2ESG9tCcCe@aSyL|)!smek2k}cSl?KymjhQv)0v2zfoe6| znTd3JszAHnQDgG-hDS|#nRyqFai<<*AJ14zIiz!WviNMEIXZfSYo?vHSX)vIZP)0D zfI4vm$7dds@DUY{8KK0cdK6k^KB!lX30!JBA_WBTdK8jQ^SkeOs8uzDx8;|d228vh zvI&pko;DT@7OQJKbdndgP#o)5E$V)70XstfJ?+_O|C{z~wEqn**l7E^MS`|j76sHG zkYE@M(>@WRlx4owxLh~ci7IA?$0wN_ZGLQ?bw4|{NS-z`wibYGTjP2s0T;|K?1C4j zIb{;7N6%qMVQM_Yg$?!qmpA--{j@jh6}O~=JlH(eyoqORR;-v$NFhOq@5MskB)_lFWhHjur6u?K%a*0JgHSs0qK@qJ~A#P8IW z+Ay9CBF^JkSfd30J=`yR=eIRZI!#4jU*cli5hUt;?^8oM2ER&N%}LL5tu zQxfo~i{sTR!|e&Xo~9rg0D&Avvjkt9BS?aGoCt)XYYiRrz~u|RgSBXE0NpY`W^(w(4bMyW6B%DX` zD<%Wj7IpRqDOB?Vc1BrG_t+tSuS8sROsK$k?vpFxiBKY;tQdHC zLNe(JND|PpCT$~WsW3d5G5U~}lD}a#lCn3bDRfwY%z;_?(Yq)#c8h%E- z9pPPV4H{0YV*Ps5-BzJ09X6es?w$56_xJsM&G&6v^DncEnYFIwwr`tV#nkWsHOeM) z`#I6FZPc-h|C7LO@{Oe+OJS#C?O>q@HlcOYz6tg)|$<%*!*#rph8+@F$inqG3ucOfRWd$ znqJr(msBS5ZFAS_v0Q}1ijq(K3aZk#m25Q}R?cF8Zp1o$kw!!}1in*c}}`DKHICq&r$QqD1p%+ty(LlqR7>o-8{sGdHpX+09bZ{5~=M@=j#< z!XyURO{y6gzBpVS4nUk;ivM4MRicLo|MV4LZd|C&@Ukr#`%EaBl28{yX=s_^H-gYqM#q0?DxUN$p^WQ>ORzHQp3NV_CsnM5N(1-J z4Hxxr0;Q-RkkEY&Spa4s)D#=aT^xInfe`%1zyc1+-W$v%pzFuVo)c848*4{C({EV8 z>q$W|zTE4G7GVc$uS^ZMEw0rI(-s*=R3GrX4!$y4lnN-`BF8G0!}F5-rSFC+gxPL{ z0yGG4>IUa;DS4q;kYO)@?TZjOy{=#HsU|#DdrAKwF1~1`dQ~1aS02^i-%0f`p)*o^ zO!$lxA74C2xJO?l9mjYE3B1w;Mhh6;G-Hg%AXK$lb^)@+iauO(T5L z6+B8pM+#6=_a-VU;kW!g%0>mul;0)v@~n;Qx*N6np&|zk!3VHXE^J&RBNho~u2Cix zMEQQ>o(*!fvuuwy>#7$KV5B(+fz!FEWHV;OEtACusscb#ud(LRI?*{g)@53cV52Qr z_W8I|vshhIIgTzn)IqR2Ol4NlZzofOAjX|K2sJ<5Z?~l7dNsj49NKnDL_D3st}eF6 zfmj@@no-e(pg5y)Q(Fh{mJnIW@etJw)`bd5aLvn#PLo!QD?1b?f(QWP3OdsuG^x!* zXxsLe9bnQFjM3qw?%-dSzyk@K?@o}!GrPm)$_`7#FbOh$R@3P~=q$g~fzYqeTq-O} zPC6Mq$jOYr8sua~U}e8jo!Sl^0CzeM7EY+va#RqET=5WSGB2Y}G)17Q-m_IMWs!wy zg7^?Q^QzTVtk+fKJLCbG$9i2wKkHD#$oBwd$3hWK{UvS#~RO(dXG^qt(el8PnoT05#1t3;c%Rl zLg9pW+FC+R3?b6pi}Gp`5I$+yy%1*=9Nl%krV}1#Rie0oVyEM*;A2tABzf4xv7!m? zMa`Y3KGI6YutrJl48Ql}oU11?5BR+fWtQUSGyf_5&)LRQIlkM6*4xIhyWz!1tvCisrLu69UN6L+PXzC5s+` z=FJCwB4SbsJ;C1Y{cGRY#iS?&MA@gQUXA4LS@o;Aqe2x`{W=VFs)l6+mrSqN%*V1O zsgHCTEzh8NTK7g?qj|&YX(VURNiCE$4+#Z9p=5{O-k#=(cu5v}C^9KoF<_ngvji0d z_ArQ-bu{BWr-q zINyQqj1Ry;$72y$>xPAa;naMb%lV?Ib(XabQfkWt*Cz6)vOqSDL%8Dt8kx9Zo=y8(#`*zjHahfC~yNf2laa#isA%Av<$f^@}JX!#lWaz81*^ z^|1l0h<3%vOUf7VR>xz?UXRfIhx8&ePc$X5HO%jMT!^B%jtl5=Ef;X;8ZLoRU2(p% z2PT}OuB(_I&M>96i?VA{D$u}Zn~rp#;j~7G7(Ofl5$DvJj=n2x2AFr}^67 zeu^V<&uFH$`hAb38KZvA-i(|F>bmB^PvYvzsY_c%vuQI29!oP+bdF|7FIXb@Ht&A_ zf6AI&XEZ~yUC*j}3_zozb2P(xo||#uOv5T$IchmJh*PpD&Ab2Pqfj1pmxZ7z%pH=M zq|QGp)$8@P<}j#k-cudG<~Py&Syc`NPm66jcWEU$cSA%|_Fq*~&4WLm@Pw-7@PzPS z6FNSIA+uu6F=VJU%nOx27;f_R`29ck>uEtG8aim+`BhfL7)17g3N((n0jn;H?`Dyg zEyUrUyHgR$`skgi-V@YjSiM*3!T#g^KEfle&SQ&29m6~9g8nlYO3sDd(Z!-xlkE;4 zTE4(YR#d-=iUETcJ7yG;3Ms-z>~pF%jwwu>3vG;=%UVw{)|PW36J)LICHK?$`SyyK zQ-$I-5BvzVi|U&91jnm_vpm@l`T+81^ypdL@YX3$%I_kSh){a#Ko08QcV+6}3cZ9- z*z>#YtUMkBzuVeD3Pu|IE^hrDzsqg#yC7%ccT6RK%|HWQCS0e(Xj4m>qY_HU? zoaJ|U+Vi_Ky*-QzS2xb;VW_(?ZE z_sbZM{lj++;Zaofzn>7@C>DLEnDuedhDn1AfvCFs{mwt>JJ9Q<_|8+PWaEgEqwPr^ z$i%P>uA_$asCBpY6Kb@w-KpyJ@%T+U^Gbmi5#zjl8JPGO9rbPmqUp0iVr&~#{F;Wr z;?`M@D>9!y*CJ42>YVrCoDLw8f>%HZVWj#netIrLy4MMEeF4_uvGlMpF#)sTFkD`U zPm^KwNtAo3Fm~i*OlFpO+z`+Ri_uCU_~1d-r}}+FI3=S}WKRMk^7#g8MvX42AwrSt z7Os9@GA|*dSpl3+PPlEA6vzq)vXaNXHCrXbzOjh zDLRP*!#OHkoUL$)0e2Om5O$fVVBe@%39Fhn@=yb(c~J#{qq!#4#Rv~a6A5?-edu5& zfLN9*?nx{Ol$xnXQLl6pv79ENav}ggOavg!yD3YcSrLM9b4J zXYQI+%3Z)J$Dwf~T61i}Noc}O;~(rQ z6n0P^b-_Fq%g4;^Fd1*s{IG9y^TKxHysSDeOvQ9wcr2k=nVFG`gC=8#J3bCiW$|$1n4) zY^MJFJEl7&#~=TOpiK}ZuZ3gBt|KvEO$9OF$x49a=$Nh`>NM-A_( z)p-5JPv6Rrw?9J?qFYPp?fMj!7iEROk+9AK=b{XF1Yr$W4jL^-JXlD@p*?f3B!7u- zhx4$M4klP)C`+)kB^MWhmaz2aJS=ImZ+HtV)3+?9t+4bP9=i(&OABm)rH|%e={NG= z%-Ix{ExpH16R?b*lA#34_=&_X#sSOtxiEg`D8+XpLk_0__6H$ctZuNmJ@pP!aj^3p zmV*1QMdGGC<#2SoDUZUEqx8)S5`8BL69WX4C#s4{V|llgqJN%=(l_x$AeqWmh((`z zN%GI{st2^MDVjoAFU_7o$;V!G zsI9uHg9cH9$PXQXM1Klp01JVdQ6PN<*(a@*_8c>Ilih4RkG(x7#>VQ!aCjdl05_{m z&7c-hNJxe=2^F)RE{=_nk)kH)1{insrsx&X$IVl^@5ItZl|-5c4Ie-|=T>{l1KIz*7~MZG_TkAu`&>^tdU^PY-$@ckR%;NPubU zUL40L6~O*PDRx8}vzfINY0PHU(y(7kU~>BKl`?Zp9^3RBJ`7WXrRQzu>Yb9cH%V5GF;&A4xyQ3R{zFT|v$#|8sKpDv+Lo?3g)lZmm zvMyqgR6pZLSjjqU2bE=N0CP6DB#XPJXFC|Qlq9eIFy$v-mvCgW7io%)1@p)MM)epdy5oO2{CB>32$R}r_EaK$Jn~n~i* z=xTguPrd4vFi}7uZk#M(=xxvbg`rfz>(lahU2Zu67_}AyQo{|H#XuZ*Hgd);gJR_^ zG~60W=%alMai#|WJ{cf}wozpTSk7$x#&X`j$fq@H9xd%&ojL`4^DWh#(B()!x~5(v z99(^Yqtaccv+BK=YZ7b9rE;b1&}Lc}2Qt!n=@8D{TJxcs|9h8j`f#oJKzyq9v|yUX z>?}~u%bEdce7rm4yrvac+j`oHmOQ;G?pF{_W!X05^|d<6v#wNsgMJmZnR6%UOKS)F z4)6C7!sDEo&5SbM95C6$rc7h_MB(sIuX1dgG!#_{h8^U~d*~&bE{CM?fRc)w&Aro6 z1J2+9;khwPnHeYW7=^p`X?FoaUSxfcSA@F9rMOJk1B5@FJqVVgK@EWrHb8@25u)su z3$m3({28)~E+{}Hi$wtajb8&1m0?OpCEj8m?-0~N#ca|E9Q z6X`UZaEy2jS|`802%$i*3xF)93Y{Y#gcSiEE{SI`1*CWgcQ9}b|FYJ{2gtVMK_`FO zE!2E?#3tRiG&{g$DIFe{5`0J`3TSZif!`ws#UEkFQ8am6b>yjndr}3cVuc|3amWWl zS_q$+L`|wM%ICsp0V=namYxAs;aS8?j6Yt$ACn`F)80Al8qcZ2d;`WI^D;`@m^Bgj z`_BA&^z#B&4`$|rf4qVS^$+P9|H7m&eOLq^lrTH}mFYwjaw>_$QZ)nDXSjzR{i2JhsaN6)1w8@l-mc!*BI z*HLZZH)$el8Gv;j&h#imV!#R=)5DoN)Ek@u*B4~|@NfpRv+?g2T>xc5;Noy2Y!4TJ zv_UTZ_aSAP=<@6V)`OJQ@Nsd%+J;?#m$fTofM-`pA>1=7V`^;d|vJg2+lWEYspE?1t~cTwRAs2MKvf72WIAH z%>{CjHIcaVv*rSk+U7UtvUHT1V+maz!$rks&`LavH;?{DuTpy^_mY9P!*9SQ;B7VfJ3LZ=Sa72b|m+PaA zB#N!V!f@JYxXBG4$q>p*1v9xm5JNs3@s|@rBd-^1ZHYLL8vj6A;SLSeo59!tn?!Zb_AGJFHFC}~cqMXIpGgvhLffg=w z?F%i-VlYv?#qJv!JJ=eNsgvX##{F!cvg34{vLowfIOca5L^KGO9}!7=qx*{*N?C6qlSU@s&W-^WdDKp=tA)6-ONMjP2nB^Xb zK@ql3zQJ70B;V-g$`~tD@6MGmR5Q3RL&gFZX2@7;>}p#}BWdRf@PY;`4MK;fb9H5# zZlfE=G{Z(WH}m6Yfzu7=(KBoaLYNt-LkK))gfXom4*f=NOB=z<#LUA5Ol@gDdSSk+ z)wry{xX9>XWe)a`#Tnu)p3bb%W!~u0^pLvH{Mhx)laDnoJkfmrsZ%*jGBrmD*b~g& z09Mf$DH#+{B80C*J_CPH4~sGvWj{Fp_*{RAZJ*4s?C9nJ&Fq4r5eTC^sK~Zd{Y?7Y z)ou4=QYCqT2GuKJnUv=)GhAr;p26nrM0zsJq-7OnUM}}nrPu;F;d;`x&VgojvCH9t^*Ap5Cf@lrG{WH8Gabf)FvqW zuyqxO!I4zGx}D%sFo#uN5gk$UFjLi=(HTnq^T4cn`J(KO0cGjU!{tW7T<4TsuD-ky z{H*@z7-a(<)$4QZ1J?+Bm~CNgB8M)!2yoqB9F9{7Gj@>l$)$CE1L59^S4|GngKWNl zoe?N22ocUHQ~)*gVKRf)0NT+pj)9>PFS84>}=aQY4EV5!jAtGQ!p{V>27jo5?^!{RQQ6L=TH>mPu<8ry;M8AYneRxkO z+949?MC1&|EW4%A9S(yIc+|@`ASC?IH}^u+xmQ#a*V2@2vHWu4s{iY?QGTW@6o}IIiFg2w`_XeH;ek62*_ zbih9s5iqs$4JZoaAr)`UQ)iWg&~~=f|K1bkxwu}mD|s;*3qFPTO-S4$HLOm z(y$;e4b%FB=HVYkdy#be>im&d2fDti*{^q1p8!rOhF6Y719(8Dz%C^nrpj4j>;c4g9kwK)H6M+y6kbGpB@|zpkp&I1qJv4FBwMy3HK1Hn)pDe>x%1@Y)>xgH*t{eNA7LhYVz40HT9_dQo+>3_$DNnC zY>7eCSPwd4uwcS!^o!sfL$c1Bnak)WJc6$9JQfl7gHj@QZF75Z9UhAtCZbps-`XZN z*1=S~eNO6+=54*cl}toe*hWLx4oMa_zaSIKK_+s^1Wl~qfyrgW+;G{8%Oyi)ZpbXf zQDqA?=cN4)Tvjj5Uf{)8qnNkr_{9WW+foZ4q#~Kq=OFtRiUHh0E!c#i7T^UKI!i6` z`obA%5qQG}9MnRqYrVUr7G`0dQVTG6RG%-k;BE=ePVXo#wLot^LoKYa-rZ7*TnVA0 z7IH;n7pPNm9u$0MD3tjPWoBA{D+?8_RAP~w#@Z*Q?d3m+1#)8I0~jaXv@Nl~y-MC% z=>lj5_Z18ulLwVylVTARd=SK9xh_%_m$Q7(n8Wa-&ly?9$Mk`MtZ(2rB^CgAJrRqT znWv_iVY-|duxD;X;l3!*=vPS)4OajO=;~clqOl;IglO#GRed(1(ej5l61YXm5o*?D zoZ2TLedaW1sQ_p;nB?eh!SD{jrACCy?0tYIKQ5Rp^^v)J7L;{w9yqT1xTQ%k0SztHqcvUfYQ6O zMnL$|2nap(S(O*?-ox)+s$0W! z2y`XBafIF3tBYLswsr36)~#;2Hg1E(J&|GEw$3GDzIZoV;o3I+yTH}mM?kzxY3}6=l(bmoYa>5fB}Q&&Mm+P0uA}0Mr=~5Pct01Ozqi6tkxh5P>@C zxLXw8uEs!cYK#bow#Kozt%U;I-YxPLKD@ z$v@O~dS9}g-UoLwwVftQ_tbXU{YK3_WA}#Z#bm8%XlnoJeyeMQM5p)PB(_sJ!*20) zoRbg^T6#!tb2LIfNLU!a6J~}41jMlxJgsqP-fo)gqun_OFKV)S>p2Ko1wU57U`QldKlecg+ZajH7^g;KXA*iWZD_S65r*kd^@%{_MX zIL{)Q-D5|SIDTl<9X~W(`Tw%V#@RyKc_yXx9Dz_%&THE}_TGQ$J@)hSd#o4&4G9cs z4-;a>&p1rzAG*hKj5>`xzC9L-_4WE8b@X(8s|w$fZ?`vRAfHZYPN+XKR zHqHF8LpQ+i+*8NwhYwCv7{bnFBQ{RxC_LGmY z(|)u_hhd|6Sj4)6>-G}zIhPT-ErE((3LV7$Qhg%Kx*iCuMQ@`}j@Ed(&dhRoqNyx; zJ!yg2plJTvqZp?M1~TE+b8f)?k%#F-iFz5|8^k9z*=O&G9K^v#@j{=8JAaX6qOZet z1=oZQcDH_Vi0Sr(wlqzQs=IlB;UX;Q-l>Sg)(5LKDH?*M_DnG3&;a)fbaT9Vg09}D|AG?H~MZEuTIXn8z=M> zsFI8i&2D0hu@xP;{gc^s8jZsIj1q(MP64XnmE`2eQh`&GMa#Y7Wg-eV=22ea=X zY?h?FxBdXhtlDsrk`xb41#hoEp2}@0QD~FGSaIZ$5C6{7pIa{`p9A`_c;pYV=h2PD zx2624IN1|V6Posv1zo#pt+~Z%g84jQvNKX9SC1KjJx`)OqP>9$E@Ulfb8q!( zmIU2<(EiO-3h40Ycvj6wsf$tIAb^onzYZX`-)`s|7X7u0=~Uvb89-2dA>t7Ip21st zc!7<7y~xYi2v3&BDUG#E7GqU$%>$3y^LlEK-f+}Yd4pCz9`3q{({Y$d!mIeTa8vW` z#0>giM?6@WK3K(aMt=>KY>Mu4-aoMI=c`Sy8&Nv%N>lymDBToBt*SujnnQh+{CseO zBdy$V&6H`h4}$)>G=PCz`9=~3u9coO8$|$Z%01_&sTwUgS##U1oW$}c0b~%`VyTJ} zl$r_0Y$6~tZ+)^ll9#TMPVKup7Bhn72Mdcv;NU9r+a#X2BKaEFt1E7RdPqhuZ?DnN z75uR9TeJ`P%|=%J6{>Xp+<1;x=%o9%T`QO0fK3|1WvWh+kSb)j&~~UPv^4`TH#>4W zV$@#g*{``j+f!g!Z{(;sv6_r?(X*MV3SbtMsZ!m(GFm;eGLWKri?JVX8Qz%sKK<=L z#-B9kkMJ`Pdw;pE`>HyIfdgd9fLhK|{VMdJ{aO*{Uww!in&oLO` za8WNm*KA6?& zU>=@zg6C*EcwQ?!4?PBWqMCQS)pK>DwWNBx&(2C+Fgn_gHGUh(55eZM}>dgq^YFkd?00 zyxC!OZQCR^r!%d0>i)b)X%9M5k&^}?fN*IB$n~2^X+>Gok5Y7KQMa;l6a~W8N^~W@ z7zw=N51KI`p(uP*vm9A4vIZto_dG3Nxu#ER6l&EoS*fxEhIkF8BKg>K%l{nk@(Q?Kl-(zDAPe}V5e?x;s2Gevin;X zI|?>==Eij7IT8d&?qA`TM; zEg+irMI!XPdEZ~3&Z;*7BN$T#%4LY$F5O3f;umOnLdzZS@Q#dXA~1KX2fmyu-Z^1>XB?#e%7eH3_km|j|Zf3V$b*p@!l$&eaozI9a zAg(Geir{QX$?qsqZ~-i*NU>NBh6{_MB}DX7ylgg`hb;5)MbH$hAV|>MpN4J}0(igd z**qK@v1G0poNh-($CJ_`4gq(Z1SkX!#jS|}TyH#$vk(yVxphO-HMonz`E1JxJdpKA za)=_Z#k-k;;!3CvpLz02H-2}O^+4*ppr<9G32D`BEN)Y#b#F;GPpbFd9g@M`cd&!G z0FLq|pgM?WHJ7`4aW;;Oxa^X0(^)t~^C3{CofDqZZYe8TtlabfV|wyLsftG1>U2ud z%}Y-)s2C>SlwF7j-$hJQ9Ba@zUxd)v)k?kAs#vOzZUpzg{U<--wA{xfO-mG7PqJ$( z?OLzG8Lg%MIo1dCNFINv*QgwZ>rXT|MgakxKu4Kj=zmje6itY8Nc}Os<_~|>qhb&; zJ|we%3QI@az)X}v8Y6m0AdkaBoBHFA(l=`2aoCLyH~o+rDD9Dh($fCJh$${>KK$eE z!&;xu_>ifB_M{IvIak+7>(Gyo7sLyYL*$b3ARjNGdwB*#h=tu`S6-UY&3bf61`z?A zS$0Y0_6Z3uNuCYY`_unM%9?a;gf1kEWlz6?$nI4H*Ndi2fh-?!z>hG(e6Vy_p*Us>%>4cN6WlZ}K* zbdgYCz=qs%tJqXIiLA2p@eoH<%Lj^O!WnT={bGoKcXro zYMb+!{|Lr7bNCL9xNX#KUJ&NFQv=o*QK?U_*ozM#KJ#kP9{tpShXZ5QYBEU#7M*cw zfFUGQNOCAo4dAj&8(dZaF&Ux&VIRb9$oKuAi-7Na=JhTkmM9}a06Nkty6as*Pgp0r zBqNdvr-ylI@R?t2I-mK~@R`@$ed;rhVTPE%h3X5fh1QS|@BSmwf_!jwoA1B#c3)#q$=hAa2FBee4%!!o{g*OB@GMfL+1 zr3Y#z-(TpWIp5Onl+>TtAhMrZ>^%HZ@zT_#UGvUv%AJSaY&Qp&$p`MB5YQFO6BB|* z7(iXojiZzE$)w#yTkWXNKQ?I#@6@$dx0T8Hb~hEifWqgu=(j@$`Mxk-yV~F$TjAQm zIN%zM(AKil8hS_3@c_-%f9+zOOzh?;3fIv<3V()b^D^ZaEP` ztN?#w)g~jc(2C#3Cub1Zb5L@<3cfp49tkUC>9DAc9d;2|yQ7@w7N( zVR+MPpuM1{i?j_MSfgfCIN}g#PTB#_2M??Tz*`(@VFs<70(Ny~M5%B%DALeKA}MDM z4tW8G+KluZ@{;$%%a~0>y?(LOGyd3wBUit#HP4NVA_r7Ak(()2;xd;jH5+NEy zPGW3-Y@#Z>*o3v=l?iXlgtujLnsl^o?PcI?VL82`&H9>2QaO6+`Xnq5!f$*4z=onb{spKg9A(d01ifc|cosB;14w`sYl+zQCNt zovg`a`oU-2_sk(+;8?I@8?Z$3Z7@sQWB?umyf|9-l%`rlED8<4$yU#?K$uqZ)-RyY zeG75U&BDo`*?I7U>~HXbY&LQjXmw~|>54cwGuPTa3@O=-B>j^KBE>cn*=CVuV2G}$ zw?2rbfHCq1%WOL`9))Fg6nq3Drd%Z?9XF9@T*-uW+y%AMUQ})EnB$g`)pra-Z z8WWtEp(u*tkFG9ihI(>MMUG3Ao(lGJEIaDPU9F^*AQAxrOk03W3oxKg8%Cy`M9=~R zQ5toR00l%NXeB5_2}(yK^ZBl|&$;K^d!O{=I6yObvCg^Y?6ZHYz4qGc_fGwJz%%l7 zf}lcNAZk(cY;A7-pVcQxVJD#V|2%OsfMZ@5r~1-3wM`G6`A>-QZ5=-t(|A(+yngFo zM0joe{%QU0Rj0b``}5z7if_;xKWC1!uq1`*pH?{0ZPQ4)kNj3W1N}*{XIcLw$Zrz! z6$D6&6rqfWLP{h`@h68ruCo;{fb#O;;37v0#>W552=1~lh50m!B&O=@gy{BrBPF(= zA#qIb{45_Jivq!$k_2LXQ4f0bz{pUokNVUYMASoW(k{+@h5^TDIsiJgoGE{*tL7K* z8x2rfg9e^|lI$q|)PLj!T{4F8qyHL^CKX5lp}_e9tSEv6(?GG!!qA?<37z&7V=vYAd5I*x`MmLdEz&?w|KBK&rB7m~bP#+m|{0K`;#@*2^K)-xG zf{vL{~gXOtQ!e=dpJvJ6!8(x~M0#PB2FiodkQ8)4Sg9GRO% zl4+Z%|NcgPvrbW*y(!u*5;`Zc0RSMTgGiJ@DhoJyiJ6^>DAGw|CDLM5f=DZCCy4le zSW+P--G={P=n(9Cq?K(H(Ge{S;>FZXftW@j+x;I);(6SOSb9SUqxOU?DBKY@fXGnD zeQeSH1hft9{H_I-*q~P;vab0; z&=PiVB531FAk%YxgSz<`iE7PQrpQ4V@VHDC4#5StWhGK2}O^x>^>2mt6LTsC60< z+dB0@K5i#n{-nk(I}+OjKwxjuiyKOy$|s2gD#2I!6KXKNmWz0GbApzS(8RfQ)c&|B zU&(s}Y^66Cb{9c5W+3Nq8F6&*bE*=C3Q1m(I_2!TUPB6nakR+ozYbEUoRqrRhh~V~)@_el z3&ECC1W9!4LB25k&^hb+tqIH(6hS^)-RxhXsYgRnW+G$&!`_(WpmRJlUksExiJdZ3 z=r@OM%@^Dta`{D;=lEjv+N(7W+ll1Cl?nxkwb5xAblWUnLb#Q^lX4E zlFsrl6um_TQ%V6P1U=)|4Qf1CQ$2o}#f*e(X zdJ+{loh^(qhzeE}Ppw=K6~fq2Qxx^oC@+qS2536q*EaLs4#-;v13j2!zM+sT?;9Q4HU|c2oZzuAs8?`9Rt(3W zTeN~$Pt=wPizs&sbP$9w*%L*vFlYgp4#fo+G|LRkWk1(9VR9w_j8q9Qo?djlFo;sZ zpp9NsA^97tq99vU6bw>PFzALw!5|d{gF**P^sQ<|VPWyNA`KFfSvMe3U16ccB+;4^ zG8;0dcV?L*0G+O?=gc0Dtx8Ce&PZcZ63JEJQg1=zlMUGrNt&T{-glX^7pjt608?N! zDy^pg9S|viKqN4X$0W{bJP<*RM_+{RwG{e!-w=tu#MvJsWJ6S8vbey7Fnu9=mc+p& zum#>@3zwIF{v{rOKAv$?=u@2HnVtXl(JGNQT5Fdy+bl1Xw=D^aGOGqHHs+#{vKr4- z?1rY8-%@w7>Tc~`mabrZc zU2;VBk}~8)7YhW#>ZRTsqnwvP^kN4VQ^&iAM>KDbM2_6Gf*@zHU@Z%FWfrWSuFwd^PUPVP z(dkEK9as_?dP7D?yG)9_*Y!KG>TOQAlJkwy+gWN4BRR7fD^nu(OWL)W6> zy&0UGCRglA|LKI}dI5Ut-%4=X9CbHJmLE zD#KqJd@(Hr?2+Ei?HbOPZ^KT9DOVW*rAaWe>$?l01Ypqkw9q~K*MrKHO*>E{KVzFF zO>b)kMNtebU!jzgLK=k%Fh{${q_0(s$Zo%Q}U zG9XMXSK{CukBlYDdYoO*IS?|cBLCXZwyN)t1yWM)DE~C%&6ujcA_L~K9GfK7@%4VU z+?K|@ZqxHzoFwbdz0J|kZ6^aP8M9;t17nIe$QAyHm_esnsvMTYx{)a`Yd~^`pnR9L=Z}$;F$w?KtP=^!kp5msx+GP&!qY?WYLW3 z<`H(0+OhDCOONgm8nL}d%_V^qLdE6-dlu=^XJ6{?BFBX!4IH)f3}UN`G@t~W=mqrM zGf7epdNXaDvf4jNrzs;AUlq$i4v(8eBNz z-7zR>V9=+N#<@>Z9NV?OX+bXZ5dY2Z20+HepZwRCq}Te{zFcg;WEd2IoNO6-p^@Up za*_M&d@S#qdXWQ{^sN_J;a)``?kXbJd)0DOMYP>BLPaq8smQTV1Qw*; z&^Z;E^&+Q25sm521ij0Bynu-JvUkXLWKz#5QC=x)tk9##V2I6BX z5#V}E(UUQzjiIvDP2t*521%O<%gri-QW!PNBb}mRK^Mu++xPGMYV^cTP6FG1 z;K+%U_))lg83ynMO`hEYL>Xu{VEsc;&EGUmcBDJlJ-gcEhX|-o4wIdaJ((w?I)31Z zojO{~DtzpTK|=XN&ZjU{aBg|>e?MEKdr{BiojuUczSvHl?u>sRPbdw**;<=56lUpx z!4XZaeU8#4*%|$BI`)vm$alt1J@F1oNVvc(fx}hDMldk_zSV&}cKI%-Tl8&|n>CA- zWfQ44XY~&tau95{1c?3WpM1rtuRRRu6|26oOOPFA4iU@FRcbHuuaVOQ zda6&{SmgzgmdXo=3!lvCLUrME(Px5JS9xWhHL-{EQp`QrG&kXNLA0hSv_yrNprr#t zx^}@dI9-&&qtXX{Olg|gW94+g-blcwE-pjbmT#(WM7*zA-SxSk?y}S~+U6JXt}b1e z0I3Uf-;>kD99#QB>2wiSDF)eyt@xYcQr{(>q2^@4TEk90UE3u)xvO~a8W~8-!B#cH}eBT1!b(6@3&HY8^iqF1yT5-}lzhRLsNoz;Vw_)l@hjW&r}6QbX5e zotA3_RjMv^96gs#%d6?SRI1c<$z@DHF%^Z>wK&WK*NRX_KrgEbT4eAIDvAIjTq`t^ znJ^MF^{aI+>zzR1hK6V`FM`HBmo+Q9J}>qd6tC>yV6(JbP*6Vwx7G#dS#KTCN__;%p!(H?#FhYQu)#JE#!J_nhTuBWP;Pmr zM;b~NkTjG$wkn&-Efp@6TeC*_0_M1K%T6|#HBz8%1?862$WviXsoV;nLb;`(I|98O zsgp2weHqkR;Y;&9n{mw11-b@j|0-#>J{0l*xP~U#p+A%qXbfPOP$;l9M%gbRNy?JW zBTN(otfYuUKuC}*(<#X&KlREC2WI+;i#mP*H(kNKGYBsFLMMz$*S7zlgZ9R35i^Z$ZE zfR0P^#uZt~-WD(F-M^cqb-a9C+p-P~4}Z_;jp=j5fnGbuuS+y&Cn2VfvQ+~aF_rW+ zdw*)+VGy!pmQG0A0$tB`z?0 zxke?vFWUK9dk0kLV&#nv7)@_r&JuKRDT?on*oF~9^rI!qJ&$QguI`|WF@QV&N9r;K z%#FW5kp;`>U%>jVp^e%XK85fF41&Rb=fLM&o7}C6W6MpK(%(H#MQ*6Thxi)PSq%>QgD|w2zAjm&^ z3Ta;W&6&8R+XHh5dKafZj@!$pWCJa(EUKre7!}~=b2xF(~!C^yM5#}m+gej!ciip~tFol}-R&f<48GoQo zWFOHIb9a<0-71ww&z-8pp_^eJ)Tyl* z$3||^F?uj)0a%oiku_tLTQhjPSIwXU5<+VL*?Vmic2L-6Gnju$w963*Jx-pKRSY2{mXt$ zHmC9yi2%VBa#Zt{VyqxQE&vE3LcHuP7C~?0x=%jye8J#68A(!XdIJdk$>M}QMv;6@EzS}$`VnKC5+wCKA@`Gu4dw2GIe9P*} zew7+U+{%s|eD9gik$5}HG%bFc9^M6oOVQ(L*4PF#n^g}n=$@YCrw^6&Pltd8JzgQ1qwVv z;sLt=3a)E1Mk$jB6>Af7;0gpn0KHlP0NH1?A!*IqFYOjoBp!{yiEJ3wM9`c81e~o@ zCMouGLu;5<>9~5ul`HBc`<}TVQUUBs>3}E-ZpbD-{|b0kdymBrPIme~Ev<)bP&o9+ zg%5QH%PKDZD9V1W!+1n68xO!iX@j$u5vlMp(Lp?l1cL~$q+534pykC$i%&;nnThul zcMz${cwQ=hKBzsrxKo?5;IZ?u|5YJ5+{EvJh~iGgnlzz08N7o4hEvV6E*W! z*FCZGn;(UDXcLI4JFZW?XUN9KTElMK{jTTjmFi@ROEaW;tssaaAGMz6q}3;MsA}hX z0%&a)Rr9u-6_Zi>u~AOXVwk`M)2yl0PSf^8h+q2V6v;B;W3y_m1UEI)z( zZacAMAZEvrc`EPdz)ThzW2LU`hkxC!uSZc3DJ>iR$SndtlyX znxJVi9MIdgdMl$A>R4KFWd@7Y;_Z?ugOM;P(T)>mA9rpC9N}29z_(zmft(lbbi{Z} zJz#&5B}r;O|L&X^J^QNUc9=SR?kt8Q`yO;ZZ$t}YdrZ%DQmt=hEru{(Q!!$)Qwd>y@1)yk{1OYxW3?!H>1)$Zen(13LHNmX;7wu%GLa?q#mB>E=7Bz_c zC+Us^+%+H-G3d=NCOLw0;zFt(VKa9vu%8P`BLJ!Sgg9vj(=+X}stZ7h*02pjAoSlZ zR3oCMa4VEvK%CiZg$VRPkX-it9&drmaAFty%GR3T~vhcoU64 z{}5@1g%j)*L5O$L)=SYYENTzKfPC3@6DwV;s2kyx#=RnR1Tg9=LugUS0BD%gAz->6 zv@tL&>wpjSk98>N%6BN-8H%UB^iou8D~@xq&|UC?*`cc~&4FNI`F2{_=jdqm8=bb{ zxIqyN)8RK@9AT%qogbswh3ea2hA`XushOBTatyEX)F;T@#1$MKX=e~fceNhFd-&xD z#=V?M5TKe#Du%RiE|XXlyMJJ@4~qvYqs5EMgVfv>-K3mWFIzGIej<;eGNX(%XQC9s zB-sJaU1iW7YMw_x^OAmlbY=(_z_9qRxTYtkWzQ1!>Nr9`7$ozq(}I7QyrL8_HtgRz#Au1#;iYtVMCBYtw>?RCh1qunMevUULJEG$U zW%OJtE38XT5TTA~c@^>}Mp6{zC)8c#BynWu>4cpM{B5 z2n?;kOp%&-gS|nUZ82|t65@dH%HcP*^3wM{-WH(-0A=kvwsr8e^7OSK@RcM-Rtmj` zP2|D`e-{@9Ds2Me+R6p`v)L31>g|1YYAa)+wK52weGykdbxE>j1Rl^4>r&Yp$MWN= zQS{iUXp#a2>J=%dC_4KvYc@f_COaI^F|vMl1hKd~N&`t}Nkh_wr$juU4;V1o{CHXs-GXVx1Oo8;$~;l7P{BghsMQ9`@sKB~7zQ7TI1o z1L>~EopElf(&v8*eWpX!zSHO58PR8COc{f~AL;pxS9>l+767d;;U~#vB_v9Qm`_O-0(USw*Jf$Z`xj8FE-eGPC;2`?~nH@i`C&&2e^E2K@ z{ae^%9Z7~s(bl#b7wrcZ7h0`2NdYoJTr9RY`%{QV_TTjTSc2+EHR{0LIQygO1*i08 z@0$}BZy$NHD*d4ls&kb4&--SeS_d&e!uF^&92F;c`6q0=*+-bQ?1zJ50Gxjftdn;6v=gNpZ>9Z(1-^{CmUSXVAs!$eGnJfAI}n*t9DfxbeOM|MJfKs_Pd z()i1VM^w2kf_d_vqGE7-L{P+)roO zFB<+i|04N^#Y`NT&P?q4Wt>ZH%uMuuFsZvM88cw2kJ}njrb_49P zM5kOWzbV&{-;`JN%zRNJ$0-geqm-r!xRAs8ne2prU=hXPjQKJf` zu`*?5K5<$+!eUXx{cMMRGO8`Y6Z1&P)<$=XoSDgiTi4<3!nTiSH)`r=W&4U+dj;g^Iw@=Mox+{pTMY&Y`V(mb&Ih znhXv>@2Tto9-y&eTQmyskc=0QK=?vwZd=;wq;Zt309w(JPSBJ?&T=3N7x9234+Xp= zekk}UfwAO2k@Us|kx87g<-evx_HoOK-Gde)#~59v5R56~OSAtv%X4#5fR(KZM_w2< z6~aYbm`P!7nH3`HHA|$v7PFfYq=uIZZZZ}eOAv{1!iH)R%FM>cbx!0>XEuYACOoCznB~qkJ{qd4;vL_AzZxg4S8cXtrq5Q&Y|Vz*ntgWI8=I|}Fk3Sdvz2$N z*#d+z@oZYozG5R90l>7z4gi5J0Km?et^>f-YykjLvy}k&nYy=H2)!0f0-v;(f;xh6 zQf$?h1}S4f?bO>$3ikxvvI!rcU=<6HC`Xv_?6RRzK3LP1D86O6xI$u1?v|Fb??D`r z3RqIr(4=E&RY|^sc#*N1(O1}0mIjImh>t=CVCKs9RgI}}Rn){{1B3Olc>I??72O?4 z;*!x4YFV_hkM@VLv`+X6XMc&N0h~dHXI3q5jgF`aIGvSGac5hi4cT3FSDG~L|A)lw zGr@L>YOy8K262N&6>XL6QahPwd)|I?oa^BxbSGTqz$B+IsWeNPSXqU!@<<&5)rM)w zo&--+O?PAhMQ6gt#j#&Pf^L{VsWStCCEw5#6Q&<1_GO(VmNqF=X`KBb92ZrBzmnN? z%rN@`HEQ0oZ-6^ZscnFJ4z%Q5#ARSX}!>9&9g;ln=xqYQV>TAq@D-aS}gj zDSqqQDkw`%|7vGN;cYu>ELhYu>v#V{VKx_Aa{_b4&UHsG9 zKS*RrsBNcKhi|8mZ>QI-yuOj%Y~7=c^vQ(5$8by#p-7n|HUqpom+;7%B<@9`sdp_sxzWw`Dk~V_(!nSDh*RO@%&KN}NL%8|}liCht<`B7N zpe$lDl%VTG5Z!8ap_Q;4WgbzwVWZwS8xJUMGg~ z^CDq!@^0Uc+B>*A>|I(YWe(81BcOIhK;^ass%}R>?bLwUsR6Z90hOu@s4yr1)pIV; zV6=XF#F`Y9(DtxR`3G573gj|&)8yuVo{(ZxBQlbqVMU_*mLgN^4(QVLJjp{X-l+JK zXHV#TfnD7g*&^1r$jZdpfL*kN+uaDefJ4A8-Uz!`R(R`hz$qEMK()@UVZ!PL)AVCE z&Sv83W*+1jc&PqREz6XCLpJDu7#VHVaCF#Z^F19jibIPKK?P#AT|&*e&{gf7e`MV03({Qk@|Y;A@Jc_9w~80_xshx8J?J>;cT1kA zew~ewPYnQrYEyTV{T`Mb3EMD9bVa*^U<|VBzzXh!sEm)I2weD+)s@RkZkzLj%0@iDJ9D1je?U!*b*saIxWw)UC8s@NV(lepsf@y=p~9( z4xCYiEwqbE}jsUZ=W`Q|JCHES2`$q+Os`XuLOP0bM22*V>0niRGDLgPXr4B?-H#O7+JxEIffX^Y|Z#&8J2HODr=6YlvcQjLs4O- zXVCZgKq$2kpeAYdK2~OF5jXRtWQL~58RW@byZ7Az7 zB`UKvBtu&WRt@b7vGtt(z3>7{{9h{31p5OnVk`iyB-LtUZnRy{eJAYY2;w)IXPxv0 zM#zsRbtQ_pn);vEsc5Kw0RKV3!ni@aPb z@4OBt#d@!P>zy7W;miA|$8~vARGJFMLIXpR{<~dVSBRutrIJ z2f0_Tg2JWj)d>{|O&$wH5P|EpoUPSz(u=50!>(U$l_x!oxbYF}WP*uy-thy&nVs$L z0>NjV6$IO@s2!4+f6TlPfP%IQQeGMNot?6DE_$?MclE@yu;qCJsby0_G-70i=uV_H zIN|j$28HxJdB3X)WFaEYuaxH+;N8)m%4!9o9VHu$l^XQeCBiBZ0X?f!S)iWWWrF}| z`-Jg4+Aa_t+Sy54L`|Nj_k7+#;GQvon-zlnZ01=?HcRPoCwmqm#Nr9u666DsMccHF zdQfLU03N~uiN?!T2khZUjOI(>rkBpHj9xmsf`&&GFz_3e0V1v9jWy;bH*=Ko#ruM8 z)$_&k&ho`eq8YHr-ANOE5SXj$U}XSvIj<_oys8z$n=j183$lPpr053n%qlO9pgozp zc+3CZ&E{*&(%sPzRz`ZCp)~YA1@vTyLp~yu9Zj^_{2#c)uaEOL$4k1~mXKgO7x~y~ zeum>X3M6HLjAa)4xkH8%!nxZq(JBQOlZ1H}x_m=jS0Q7=;rChqJZZ2Gzn z`<<%~`<}*@Qy+NVWtv$`+w8<|LDd3%e^%b_z$u@@;k6fkwg>X>kG) zjl$=d-=e8QxagsFBJV06@jf^;Z{ibB68$W%<&6#LQq(=(J-hi{sSO}Zp{DGJ+3>a! zPF8#i(HN9teXH;~X$UN!V2&^Fu366e*`Mi4XhnzR;lvRtM7nk3V9}*3kSOJy_IQd` zsZZ@AB|Z%wk#H0$EbQp`$`$FCjZc*?R5e%r+P0yBh`sE0(Tb2)Us}^mT;}DhYf#Je z8byV8OH_J;)WOi+8u`w_Q(!eKR)7=eX+n-MJwb!(rXllbzFsyu)2{+OmXxAKI@ur2 zii^^4XWx2C8T7nT!Ff@nJ$hd}hD`o}(jTp;d~f z{z&lz`b!UUMhMhUJc*Vv8$BcrzUr8Prg5gxG4w$Sqx{qZ>23}*?53^lefsw?O_3rOJetVa8Zy!qhi|21Zq|; z9mMGN5HY%wPc~xvN^%Zk7=mlZ{jwo)9Whw$C3kn&> z--VW#G+PKjF$;iN?-y(^?Yjpof-&M}j&o`$c)~hpa%EW$*7C^P>aa}cUTu0~fN=PO zjKMM47A#q{trkv01`wzlM+Gz%{UXIkE374a+9q=Ma|h>^{edxdkw%~ftwW5XMcu4y zDk~1s-Rv*%^3z0!rb!UU)9c?bdy<`!GD#0#hrHsVe01Y*AUPTG`IGy4=?d{7Y&rr=J- zB+&(RnoboLbi|mG2Ybp;sVw4RoLK4t&OQt*kK*qgv{eL-@Sf>L1^tIXg97m+@I`tV zx&vdI65S5xIwb(UExZL^w?z@dZa+Cp72lq&8s83{@I`9JD=D3M>H+F_pmz5RXNyN3 zTF!n-$zM}NxTjA9sT1<3c=dYVIiO^6!Ev#G`Z}x!xg<~vp$ZVxK~l)4L>{^^Pzcs0 zxix^1X{m(9@Z0CU4ub`J9&tAXW*2ZRxDqB8KRU<|S@I7iB@d0L3z z`WnO-A%!&@J!?eXrY?xw9etPuik~^~zLr9Vp+sTjui$(N*~{^3=H<~ZAq{=#-h`xjF>(J}LI!GPsTnq;O zdD?(k7h1_(Tk85}9$!512*XU6fK@in3>OFMolJ6ig7zsh^;!7nMo?caz~tA71w!rb zj6ldY%P+CxG=#}kK7Np~8EHVZWwCLy`cdreExHeJt2M%dy*NuzB4)oSh%vP?x;(I$ z{XVmePaf7vD+GJ<+mBe6IDL5JNv+F_Qzee0b>wuwO-}72z}w*hi%rB6wSAa0?4-$ z{VgGj^l3(I0#GFwxJ?V?wkHO+Svzbn0ACc^U_tK%4j9$!MMNOckdI<&$He})(8{Gj zQ%gRBwh%??a(IDz#br0sJHS~$ZJkFT8DXO{7!t@8{kH+kF`RzWLeW_Ps-7b>XD&P4L^zVJ<+@o?4wm7sHJhKWo3?gz33XU|7#* z)+JU_Yq$3WWZs?MW_Dk4+zJru^7Yn9-!52+ZyBck#h4T)wT>T$SLf+{z+Y?{ zOp`ulkI=`O6}9@79LEVghiB1qom;Q`qf!4rWe-O@Fh+$>5OY1&7AUe~vbhD7fz)5a zwoo)O-j<8&No+=fzN z5c*CBc%hBi^aWpvmE}wWz^JlCdFTnw;(zHL6pBD&GaE_gen(s=jj|82Zp~9feUq!c zeCDqG8%+5}_0<_RDl;3$b#hcIy^o~iIQwv$4JHv%Ac%R8T~b{Ak_XvgWYzf;D&RqO;>zxh zq&i#W%a#9j-7l5E(LZI|9cy&|DxW$xX8X0mm-xOGYnu2fOZy*8IKWc~tG|NrJNhRU zk!K87>dxe8oVbr?$fHL=#DN$d7)7*5Lu6AAbk~tiSM}Htj9lCBbFOF7PR538Yo&<$ z@LQmd_BcaHcs_+#p<|c6NtjC%6pOZqDM&pF`u6T<9t`C|2u`vCBys_W2eF!QCwFVX zQPCr}m~_={q{14By%Bn?*e|ui1E|^~1jrE%)&EoZ?fN#|u7qdJ=j*ehX8z+oJA>mF z7$<&3vx2;diz_6+X@Rr|?vudXT&@qkeL%bB>*_uSbj7iejv0i+uZn5yQ8%NletJ(_ zz6Ir6zknatxu|%(&S)0vBfAJ!(~fas2hkBw3l@ zbvRZ<@H(u2p&b6!Ox^2{N5SjxSK(QW44I@O8e~knS+}F&$ot^H>zc2V3W-RFzWzzLD9T6C{|`*pf8$>;^n6TXa9i&M~hlc!(@lBQ}lKSl2L=_z;qP= zOGeeB2YUv?ohd%G8|K4wq*-VYPQjd6XakfPx_mDWD4&Cx@+jeBM-#8Mz3I!V_K-$RrY$Xad zarT3du<#2kbYS8jyw5;rLG*&?TS)oY+Mz9rwT6&}JzAR{FoCB$+=5-FL5@m?alr-Q zk>b8R&p)+KW4lLXgrW8xM&?Ni49UKzWe!Gb!eO=IW;Dd8j1QA~g7mvD$h_?G@k5Z=WW@PXwk)vA7T zEHwqp-rnNyM=*LoAKw(A$KX+GFCI6wr+)S|js=aU67FF!#-6hM@-!QJ3Y%ZV5C5M< zBDG1PVkFR?zKucku7rPNFo5qL$SP3dYoN8@&?~#O{&( z4r~q}3j7lde`6HOoh2|%uC$Qt%JH4%H9h`Y$_v%;zVSN#XHKuK)uG+g>|fLB5c@UvWh%wCqKHy156-8`TxoYSZ^AEC5>DbzQIaBf3kNjO zxT28Hc#$n)hKJon+9qp+Ta=O2SX5?}Fa=dooPPmwXL>6W8_8ORv=vMk|3Vb7CFc^< z^es*M^(Y|1EOb#6&;$WgOWJfKC$QjkLz0K>i9{sG(pE+jgXS$X(b;#3RBje?sf@5t z4)FrK+lJZ&0!{)Nb~V^CKibupd9m}doFH4_tcpL5Bu*xcYUP`=iOQQ)51Onx>!i)8 zWTW6}#P1%tbo^OdtpN!Ks(-*3M55F^X>rBegzc8AZMR%YC;w4Y<2qa6qwQAfy|LW} zvQTc%m6QLd3OV^3>8PCi8&y>BLb})=3_GH(W87?;OM`m3j0xvH_FkC(zeK!Zy=d>06a#w_ zTY2`!mDo-$g^U9+yG;vlL}1%xQM8DZ_j1NFB<$VxF@U>IwH4n*u17^;LMD=W%SLXMA}=tH*h;G2Y)&>o;HWr^-gYg1V0JHITu zjK`CwLaQa7F;G=@psEbNCcYt6@6VlCex0jAhbbEZMq7(JNvaSvaEy0n_!gMEOR{j5k6^5-FdZ*baS(ZXkL;Y~AB4$5{TZyMgimDr0-bR6fv_19f!i-@oHr4ictq^9d?34exB+Qy$ zDhKo1*+1efRTNi$s(h=m`>V3_q&QUlqA$hK>X*JdUjF)gTnRDEu7+(MqP9F-P@-8= zO(-$xFe#$%Fl8!S9rx-#!K+Yg^@_MkwVM!KnCwV*7##9;1vi$4;0AOk0OX1j@Cz$= zWJ3}JGU1@vHMKRx#pS0kV&P!K@(`OYt$X%kqM|P&!Rcp&waJ6%{mNISHDTM?O;~5O zG3PqCUEn#d8nwrrAEC6{p#n<(_fERc%lKgmn;#qzFh*EhS8HLSy^%06%uY+iAAp%o zFrWKOsd#{ZVN5Q52V%69k_qCD*_F8yb0ZdODs=W?zmYBh#qXAt&X?6}mHWg+_xNT%ma*S7Yhszli#d-Cp~79OlYb_|A>RZI(9-~_=)lycw(C|3;C-v5PxVW!yp z5NS4sGmDgX`I!^q?zk6s3sw#1+>aXjiO>^kg%GP}5HP|erHY;4k?as6w5YMa6fI#{ zTf=CE9i6@;(SJa5vh;D7t}%B*IbU=XN1y$mYi>L_joVRgH?>i5{G>T$!&pK~EcH-2 zfN95Xj02FlY<|x$%h!F+d`t;UJQ8+3^u2YuTe91b1CiX6aRwWd$+=FkE{noB-%Hp#<^``)hDrO=#-s^nWz-gPJqt%i z`~|&=gdS856DC0uju7R8JzUCXRYVQXA}om_nlfh=NCs_pgpfpCW#UHFYyPvp-z}a0 zf&NUn`j;LWTm5Lqr>y=Z&19EYJk}=g)DcE&S}#*qzfZlb{=1ZB#OMF#Z7S!4G0f;d z2j#GuG1W3Rf-yE&&6p%PNXOoM4loP5w3Ce%wrrqDSlDFiUP8&grjFJY_N?Q9j-`{- zrY;mq4{2e4(6oMFN)e$=lJcOq@xtaHA6wY#@`bN)VUvq@k?_|$u~~AXRMVQhYGI3B zYhib_u-7zbU)YpiBarMAEIH~J9`p)f1(@rEchG~j*B3Sm&K9;$?ANxiA!KqZb!xAL z-7OckN%q17m_MNjXu8V6#>cZ-*sNMDY*w@u_QJG<&Ds}>Ijh=0yRTtkvtg}aVb7Ec zo8z`e3wvg4Vb9bS_KYv=zlk{q0W~YgiYpxCQoCApU==?QXR)1t$6Ughpi2GmQy<^| zy* zcAt+t(RL^LZCQXWm4%hD(EY6GXmPE2oc+u!Z;GdtV@o+)l=*IG9nMHx6O*`RE|n=t zU!iwBta9p6>>oGRfGD)X@lb7)sRSrre#s{S` z(ju)ssCtPoC{$>sNCJgTdE$HyeJ~9X}HgfXC+7Ttxkt9r;N@Im+mNp9w^(w>a{a`e$ zDrj5f_;E({0s&Lroi2ZfJ(U6ut|hEjH-Dr?s#vyPQ8mTUk9^!^>?=1r^6r`ke&)$f z+{D1^r6&fi%<<*8&#T&U+~>+4Hyn4jVE20J6F%x|ZW#0ZvZgdm(VH-pEQIWFb8wAh zl%{R@05eOtFmew92|r~iD=r;}3SNe?!v=|th-DJy+NLEUEW!gdwu9AGPstW)MH_P| z$I)0cQ?d6{Kort7Rr+2i8Bdj7!MvoY#RIs^>?p;GZ;T>EVu+J+hL7`gvA#H^N-oL& zI6OF4K6oZ+BnPT|1`>G<&}1~!KPYWb*1wBErAiG2Lrg_k>WXB1T#t=;$C$!&y>`% zBy>~nJH^NC;>C`IVvs;p*ak8xc}Ydu#pmq8bHc(->HdrQN18xdILCcka zfI#yTclA4D47BNSsDm_*#<$ppgzSLBvisGr%NZTjFP*B~f__Q{JaEOfWLQj5yCdNj z&9VW(Ho@P-XbI3V;0=jaCh_0e&sagaP)thAVPeS!;8NfIF!y1@#oUQM@gBY0tC`(f z98>LL6I`KB*I3%>#0hVfwyYPYtDg!W&wkx>n_^<5y`)j;R?JpL`)E`xK!nw;wT#n# z#dyFUIEMgDmg3ZGQy)t_wI%MM74;d1oP~en^ch%@v_gIv7b78-re3(UUxUjhwdf_#bnWcdkHX{;>4s)3S~g?~nc=c#pC;c8{V z&r}Cz02wXEw+sNKq60Op2@qyo`JBtteUJ72c zf>?l`;WL%E@6GXhyu>{^e1cYX2odj&zLkZ+iqkB%JxV3PjfO`$iy|=KzJZhh_nzV(hKad@;jH3EQZsa=SSQnH)#dIgM|}i5@--;$1%n30b|Lu5}2^+_dP=J%`AfOgxS)$0V2)n0vIi? ze=cg8wO2ODM?pNG>|KD-NHHyG3Fv#g*UZUGwOh`tzMMa8#a~AV7ZIKi!tG)9<6RfR zA?XDu$gT`FObX#f#@SH+y+vI@+klRV;r1fC)U$Ukh--JK3E~wY7aHihQV=gc74ytv z6T-_*4ObDsPs@d1LI9^*E`od0CW8N~n>DZrSNzX}>oKmbxL|hur6RSw1;w9*p9@OE zpA=sRKi3=UTRio+JPMYIzBH9d@&54h8*Kw9em(rOaOR}=?eOz|>JK!w%H9q}TT0JOyidd$%FxghhEnX0so!Fm~W!4RPs za2HihwZ?fsW~`lBg^J)+5@H>zl!7D{u8Y;0=3CiTQH(9*b(Ju@YHfH>cKoEIeXhA2 zope;Wlb0tQRoxNcNJwL+j&afvy?BIG4}r0j#bb;$ER)7bM_ZP&e@={2*cJ|6i{sbH zNrv_D8d!xL2`El?vHEbqFJ3G0HG+eYh~?q!K*IjNf}hqS#dDuWIQYqwBIIEt6h_oQ zu|G#z7UCDl^2h{=i1Z+?ifCRTd6QBiX8oQR4kpB28mLzCf9y z>9WE$P%$3(3`51B51aNJj`q49O$VGAsrf|~ke{eYgu}G-fb)8JDj6|?=&~Bne}g2W zEFm%@ki&qlUMOFFhdd=8q&9i>pzp?xzSHm z^{iEOFjRFwVVisK{o5pX9-%^+Mj&A-`g<(UrR0e1^z$2a|BQWB9HLw+`(6By^zd*> z2%Qi8n)Xlo){0+4tlFR=`)63HT=x;{6b7!M6(CR0I)JoT$n}#Su%polTIuJvfotoa z89nY&y93qXz%%v#IQ?>bI9B3A;q6?M>5ueL*5Mb^?2{?qhbE1nev3#4mTCo{v34pFbyIkXR7aB0U;?lm8W%o+1GNuF8gxK&%>N;!61t( zz2(E7g!NZEeo4a@&P7AFxfgDl)KJb(n^FA_yxv>z!>M0-erc6ao{ zGf*zO`!E@&{q7?(&?u7h-W|bX`=cM3;iHF*J#J^m#3PhkUwQ0+?EweWM=(Hr6n-rw zPZK@IvqLk>+5fAT`vGFgqfQZJ|9g>ON2K6>j&DTF)a}!)?0LC=)ViJhJR&NzPJ;q3 zAD707^ADLUyjo|O8NCIrt>Q3aXCZhW?oBRHTr!5Q2b>gU2U+S+AplUk9j`9+24K4! zdu^{$BvkwWu$q1F;rSH!^_gn^&xlBFz_>xw7Kih;^YzQaJAja!!N}bGh;eHknH+1M zXcy!MmMpEF64%UX$~!DZ))cmLtp0cKZ2WtV#ERu3toBqWnJCm~#6oAw3eAbF-XV#~ z82)HC?>fy;4sd#+NaYT1rR6DBm=l8p^RkhdF&N;^m1O7=G+s7qP1PI=g5Uc9hR=eS zKiqlsJT!2d2S z-W%py9|K1Pl&ZQukzur@metM=>=_a*oP{a6gfOS*16w~#9U#b_?`FS=TLI55!TS6` zYhEiIFc5gd%&S4K=Y9~0O=ou39x4d4&+BsTnU?kAQ$j7!3(E{4_qp~1gD%KQC@=QA zWH%wWT@u+0G8n!{dLB&IjDzFxXrSx0Q3IoM{_QekP6zsKq*8S$Rze$_iOYlw+7w(# z>r+4^Emr1u&tjMggPvG1O^59%m#_~4FQ!qT>v}nukP>t(Ae$uXwV>a%{w95=^H;4$ z?E82t?qe0R_sS8R>ovCbP|ZKZL?#as#ujF~Z^JE4h*r0I;a5JsA*X^Lt26(u!h}Pd;MEM>0t!lHzY4F7u zcY`E0!Q8yT>Bl`xC~hk1<7%u8P$(H2RIj4u4aNovkrMe8+E<9%3E?E1n{F5XE5@@YH^@wv{k7+!y?I2PeI92GmcYV&%yHAY39 zW=@?s(O$0|*6VFDC#@ndC*P)OzI`-0tKXTDl2_B*tYcw;n@3t?_@LVR%36;!SRR8X z!CI*7vVUeBR8MWKkM|T1WWSfrZMKD`pk*;HKm>jYPiOD)<+AdnR>_`uhKC5> zd@lP7D9v>k9>_fmPrEq6h6WSkp*iZ&%8X40$YAVF_iJN!I+N^9-*$AExub#AXs|ot z+A4O3F#I|9qTH)?54He+ z7XSb;2u`V3E?wLTV{tmT->^UpB7<9Wz1AZwg(!B{p=CUeXX3E!vJG~0c-^(yA^)5vNK~r3P^sGDR!DP!`b#>WP2#r6L5UvKFW+6U-VpD-?)`3rH>aV zOjOI5sIi^9-aHrsuxcCj)8d0NW?Jm49U)wM&*DIQ2z(!yP-k!0pdS!#qe+XHzafDGXiWDC;N!3pxxs*x9ha2nE-D;a|{ z#ew&XURmd?4?&u$wq%fYcCaCxB2B>(tS(J4)=HYvxQ(1-pcT^8rm=O6plVd2lBSR$ zR*|N%oSaYN_&Xevrc`KBn(EdY3DQ(ISJ?^T7Nn^z3j?EzxQS`f6iB04KmzKM!6j5b zlBV|Ckrl~c!PLJ9ybX%5VKArX6@gL&(iCZG0pQzdT4Ed_=2Hoq5xF2wA^1q1YS1_9 zKU;}b^FofR+h*R2p%c`Rryy`y?vpewPqCp*%2PRDn4C{1(yf2#iN7BGQ!8nv$>1L?8lGdYuIGb##p#P~s7@l32b!=l0Hv zAiMJR5t^mFcN(uJ)9qrN$9o9Ag16sKXGRNg3~#@@3wRAmy++TlN1FhFk2{S=5t(aWfpX{bEKrHw=bgKASlM_i4oD>`btV)f<&t0zSBmTRou+!liLY&QfR@(dY4g+Q~QHdK;AvD6|$ zVB~i;08$Y8Ujs<2TnD3V4<8`1`$b5B+@SH=ly9ohJIJ`GT`~*lpO;jQ-oBybL8zUR z$a_o0g<@?9n*5DcRuVQ^sGt?1{H)4v=oeQnorsDR(Z{Da(I;OopbTm7D$OiTa;$Jc z>xS(C42;L)m3$&AayBRM9T~K^4C4%cgVAi|vw`jw7kRcQs9d&HdnF0Vl8eb(^$k0| z*|>`HDu?06h`b`8Ne}Wmy}v-9aVExyW~At>sQg*6>2(@@E4eDmYelq0yg`{#UDX{dfH2DGO4BCj8ej&wcXTjtw4w~F zOKM%sID}GRUP>E<$nN60EDjRaa}n`PEck&D@mrjTZ=OQLOY$sn9pM$Sws{H>cTU8_ zbtOAcp-CbhsuEHLA|5InC*mGuXbN+qaM}c@KkP^Rmqih9+nz%>7AFLpXw! z)x2<9nFny3G$M+|BM@=GjPAu#svwRxi8&|KGWR0p8}irEW3g{&+PiFbblAoAljU+e zm7vM@nPqrHY$}u$1|Q6j2aEM-jF!V!sT-zpPxA%u1t?MSiQq7Ev%@E1xVzjFrqJc+#f_vMyauT1oJ|ngpN8&M%T> z*{bLB%zu4WEO%0zXuyvt3S|F8wPu{|zns(wKkbe{H%|3iI=`7XFEX4Bn9VKumKxOu z4^pH17KLfb&ews3tV6Vgm^_U`w!;pL7K+v#po?>LmBPWqRSE~3x|TZ2wWt)7nqzG$ z1+_d$0GV!73aOcAYbph;@IXW$C^w~0U<;c@0!#C(Qo>;^j}-~jWLCT^ z=OBS0V+w`+EQ5&0eDk!?KD#ZuE!rpNGYA_q*H9?*OyjP%D5cXW3I$~lqgGhjHp>a~ zEND4hsbH$gz$ZQc&X?xdAW*`xb}Er_DCT9FLLsd3N};ftc~&;-X$pn1eTb#nQ=v(P zLZgwOQ1A*T6$(xYgPLwNg~EzfTBT4ZDOFJ}xRtQr7R=iW*|D+UG6;{@P2V`M*x0@` zVV;%n*^|WEFwZ&;VMR2WE_^a|f@ZDd=GoSW{_?T$kjmc~)Cq0To08yx1*@wQu=a;lQUEe$_ z#RyAS?sb<RuaXDw-lE~9v}rEw)j_f%~cI%^XBHr&5Wg+oukteaO0XKm!%klmhS7qnhJF zcd15Q6V<$qbni|rqMFn61glZaDVhgi@r|8Yj#gAt!ukZ&JQ}EGKd51!Yfw${8>~eQ zE0vt>adoN*qjDp<*`h?nx0Y&H(M>|LOEv5(rkh5@{}$<{6rgoAY{RXkMmG;JAv2~q z8K;|vSScn4A5K=In_*BDU`xHY4i$5{Ddn^6U=lHdE>>HPpxU6D(wooSF1m>zN{{Ng z*dvA&GO2}$WtlyrGtIopl7^Ztwub=1&6sY2w#0JvXam|zEtHzj*am%VBB$G4sjXc= zV{1#lBFGn^>k}H=OJcL=)y*opRe3EN3!m#3LYt!>>dUutdB>)7Qp zc=MXp7FJ>k)pomlD(IRa`fJzPu3gxd*48-P$}&$MD^6Ftcg5+R1#q}cAu~G7wvGEN zJGezzEG6g6bY`E2t;Q_#FahFp5xc?$FZaGu(r1&BNj{She~5s$rg_-u!FU+luO$-WIyp z)Y~qgNJJ02zS7oawH_a-dMrPSk)HX;SdX7+^cdb~&7#4}AztAsMWD}h*G2_CxNGCJQ21)_2wYKelk0jn>Rb12+$R~DhE~KIvf%fJ zZ`bVLsH)t-@##?2{tkP&LNzw1!b4Oz5vp+rvos>LMNk~J&x!+-8@V?gBv13|p&IPp z&c*AxmQW2+43B?c8=ll)whMuR_a;~I+kqNUbWbCiR_dvk;kpY7tQ5! zqCt0!#2^~R<1q3uRZU_XB4h(kCwWXNWJBI}zOGoH;6ZnqpV8*JQt;`nGfey0cJ=Y! zQOt$}+~8*dm3s zEiK(1v(Xf9Lp<3?yq)G{Bnv8BQYvA~RQGkI;MACnpcI@CZv(eeiMND_tm0)P$#v51 zQMPYNK`HvCu~gH&j8t|~DX6Vi(u`~ut9lt-Wo>~bDDouUPIwtz?Vz)h=%LMsa@RO& zXrz&nc+2y0ACxz$*X8_C8MEPPB0Nv)UPhy@P%(K8O&_C1%myFVl!6wsF^hWH+bMmF zJhWom#|RKiDg^^zuIpn|#%$nQSt$(RVLqetiLD)O}M>m zJ*o@0mpiT$ydoFha;ArTSyu|q*l=q;nYoHJoo0tkkViC=DCLTD{!YE=ynEaE|Z)NR~cfGqurWX?5;| z5`4-)E0aQHIDff!bB6P|e6T!t9Ryx-^qtxtO+{9hr-PUKnBn}j>I2U1xg!=xwMN7F zYh^emU8yYSg!ysOq5Rx$nIzH>3Ey>OIM-U<#L0t`wxA$y%FmsEI4d-{flNx$p~BT9 zY1qB5hvA$RRX3dXh!T^KozFB4=f|0BpVE!_o#pN;!@0?)ZV5SFF2@&jNPA@o!ADNQ z*bL_I)eYyc9yPBk4I$9D2D-xJSO=ZSvEr+O92*ShWL*HbeLRbB z^g>G|Io8NU>PpEODkhA92z%bK2h8LgS}rG19!rg7v`{?oiqXPaT=Tx3^T;bsU036g z>qek5uK5N=pjuq>jg3Hmj}7Nn;gKf{=U0tKHqGKSp`oHu#ox(P^e z%~JTxP2-aZ12^(F!6PeSyQrNsdW1@dDvw-g6y0#HLX*U@ z(MV-DSJ_D(c}*su%ghN2$vp9=n1C*KOCA|hGv%&y>kDok!m~!h`OK?hI9EIm8Za4v z^Dz6MY&rLAPir)s!%jJm9O9bi$9Uv10}z{;^T_9! z4h2Qj)Ud&Dex7w=OXEVfZUDmMj%~x^n!}(*2B4Bht_(mjocokDK^F)%(b#4QK!M5>u9kw~p~^H(@y6z%kX6jNus7RH3y}O_hCxRP&Jd6Qi2=H-$Bz z!+nB(-=V;!l!o)eO*X}rN5z@QrPb>y<;`G`wRME$`_(X_R^zqvsI;HPz#bH!%Y>E_xD=eC1QH=K{?W+ubA1u-44 z9@XjQ0mBM6oICTflpIuMLf^$o8VaWg0d>Q9-P(dk8w}@dH_m%06v|`fby#n?{>ub{ z0@}lzWH`5_UlHW9(Dez!`8nLIg^XwM6M!b1rc6WLKht%heOj6~v>rhZOfzc>XuqD} zyoceu7SN7X_XdV@QSHA!hVur^J_+E6kaJ<5sWj?*k{vu4&QBSqYxdNz)!f){ZUIkK zNV^-(@gA@IoD|aTejJ$u8aP_oGY(*7rWV?Mvxf5!)*fP@&2WymKZSBO#C^AOPou>Z z!7dHw)2RBSxF0GU+djVDhVxoj`?O%E6HK#<`3=g`2x~vVEZ9W9+^viGjj(nYx2ab1 z(EN0(xq17&LfPKJ+C!!Sn2X7<_6e&wByKFMy(ZhEO$GIW)%R=FNjB!WEYQ(w;jBGtgxPB2$7pOs-nu5dA*`s>Gs3jUR+(Gde6nzXv7 z(Geq<#vMH~VLn?W2Z;1SAwm=v1S&7R=*-B|=uk;8 z4>t$|&Ifs>fTDQ_4a;r zPbfp#pM-9s;85wOl?OyFtKM=gI8=}sDMLrJ^FRYWBmbQPW3=;N6Esk;3N)toBn-0D zdxkJkRO=QnbgOAFM|#hSe#Vx*REI=~ZaTeWDd7`oJ`$#24x|(4Pa&Of(UmJ_lOr|# zs&l1kg(fS9PIKn0>`Uh>XNX$({e_P6q~|+EYR^(;bDhMV>o`w(Rwlav9AtK`f8Eb22Xk#z$vR_gT$WJ8Hzk+D?3B_zov)68cFP;li1bL zEUkejeI;Zz@TFzCB{_7i!k3mDXPItkx{jbUR>3lt%efKoLi}bU9Z5-MZ@`zHWU5De>2xxCl9@NY^i;#xtk7Qu3uQH{k(otGG(tHP3Y{)t%P!&3dLK1}m{oDAO;) zDO>*G%fY|x4pn&-J(l#;q-9l#V0(52wTh09uxAk;Q9>Cd^|17Ni{`Mn1$WO?JRx%Q zoAQLXWr`=n9p(u^Vy!_)*sBdCux+#XoO?oC#BFli6XHD2un7?eV3>Z1B!4ClpKk|G zhzsUUS)5h5(i1{PXgnbX`tBSzbM6T-Cr=1v1vkydX}-9lz6+gcds30p3N|0@LU8CD z3Va<;2;SY$6QU>0=^|Ev{>^$q7;~$Elv;+rBTtCNMs(6QdYo8>>k^|T|ewb=Y zn{k54F1MmBG;B83J(M$@gL^`pD3{~Q?YfEtk5vT$5fh5nSm_L*ZjItX>pcls1VTrq zI768CsPJKxECR}l*aAb~+pU{Fu;+d{>{$df)x5BYW}1f+{C`(P$Fm4@;Qz}EgvfzN z9%U8*;56d@k>l%G1bWB@mQx^P5jfreVNIb@EgK2FOUaAvx^0$r8_*lyyMjLi!Nf7^)!z@T#5 zs1ZW;gPZahezh!nXxB$dj}<_s1m>k>54j6M!eR)Py?sUjZFdj!yIu2#kQK+w86nTR zACA(n?2Y?Fj4~5SR+GATYOZ&74VFRhmwf=VFB1vOvkFA>a3#yRcYg?xANHpk`a_KQ z3}Zo%O8{Ckh}|@w;gW5icYg>KTB~JGWhX6rP7oD>a6O;l7WB$2dke4*CA}(2%ih&0 z&%1 z(>I7`LnY$=5JWZw!sY%DK1G+t^1M@O6@Lh2%CXaEY6P&BNFdBU6IRYWvp4AvAtzl( z#VC=0e1_4xK-!btFfsTH_pk3WENge^Gt6|%vqUESAue(rf-Q|pt-4(gxDZ=tn}((W zCG`lfZVka_xblawRiZC7I)Ym!UR+ld@hbsw@)Q+xv-vfj-k5+D;p8E1hUBckM~1plt6 zW+MaDQKOn0DynG)%cCQz`P_A>W;6W?=UUv@AEHS$&5iWWI%!mBX6KC zNNNcEyU_%MfdzL*xX2OLDcDs)|9Bz+6SbS>J;d{-uz!+ic42>xr5e;3683B6y_3wk zvBjqpMP>qwmZSnoDjODzoA)L34cOG1H}jr@1oIx8V$Hnw%EWs!?~&P2dK~EVqb zyhr-VCEkzBdrk3vVIFpL#m*O5om78yvLkZq)&!C5y#td zRE|>6LW5c;WzpnD@{0)SS#&ravVT37h~tc7!X@Ixmb*k8Z<+7dG0IGJiFkoC9koP{ ziCrGiOmm4Cj~T1GM3gaO*K>(Lby5!(6HWf_)+K`D?*QPKOTa>5+;i5M0ERR0`7C(I`hsn)ytFFi1g47XF!hL+KLH43Moi zZ!~klRwqFZUx893TD|931CB;v<6x@Wl4=4mmr4}9gB^{cN#%u2DVzH(vL6x0>=cGY>aG1I?^JV>FZa->}t{DNRVXX`x_uUILpC-!4=|Mdh@Oj^38^(_Q$==Zjv2+CFC`*q=A3A z9!ok-Ud3%rst3l%>vWcMI(en+-!gf<0ZV$CsUESUHS*dQy>k20X=dJ7(ld=CBga`% zC-v81Nh|VMxpwzT@M5VrsqElCJwq+8;jDAH z_e8c2y<2>D;;Mh%Y{saL;F4V_Qe4^GBTM^2)=~=^KC}olE-uiWyA*{^b#HT-IFIG z>jCh9^KETQdqcKs??Z>aBd^kHYgIYKvcHjMp%Pp1&W3S2wR|bmGMl&G7)9?HqNx3z z`MAh=^?~0w5%mW#z)OVJQI3q&0)Pfofl~Ev<}$lI&A6CPO;wn#Q&``CGde01@O~_g zdyjbs+jK%RIqZNGn%+S-c`V%lAYj&*-aEK<4L`5|f15Z|5C>jtrub^KCr=*9TMwg9 zNs8|BK=UeV74LiSA@;66NK~uxd9($3x!rb(BVY9VXsBy|mT(0eqR9kH%WnO<_g%|F z4c0w=XwHVCaWFWb=EL}LqLLmKrMo@-HY>8Ipg{~swk6hcL5JVH>USR7n_jvj0Re{8!FxT@%oR(ckL`Cp`k3F8xSxfW zX!a)>hkS^B0CUFzHLTufP*#^#t2$=CMLBI$e-g)?fWMmdP?dIP+4Jy<{1H zAO=2_;3$}^?#7R(BaiMGM!P9{C6uKWke^e8qg5l1aXIXkb zskY+XI!?Ov`Zxl8Ku&Jn9BagFUCb+nr&guf-EEZ0Ev@j12R}tG?c7Fb9bC`1fovj^VLVemCS|D7QHiwpe>(d^jCoQK&f4!!*|W5hkx?)%hGk=2VAurK%WYDd&`+n*OgPF|>V0j^Qe@ z{c9Yy9!_f*-VZz4-yklqDl!tYxwE<< zdFwPIe7Khb;akhVPqtLP=G(mU0B0SEuI)BeW`r$OjnWHmbQo)1)eU}g%)Bbp^neA$ z*{8#-F#?eX)lI=+WQqZXlt)@pXy;Y%acv?X5+Bkwg91HOx6wlTwVM~&U+J86>o%A8 zO>|LsqhuoH(5`l@y2G6E+5b!&rvdq6ZAZxt(F_3-^o)v+McJQ`T14H`Ad18P>I^8D z{ZyCfa?LakPpObI5C6e#?b9f`Wxi$Gbf}H`va8@cK(oSzP}vvKP^!520qQ=>KPnOr zlf~lpf?P6-YE6qRc~hi;*hZy^&F-AnCQ+!L2i31wC0hizGE+Voyi^HhM2N&*b%tD* zECWaRwzf<))_YT=lTn=rX>Z{OY%NKq1Mjr#x7r$NPUfWyYV`@9lIKA~Q0nT3%_pyRXwDk%(q)XQ%awEB~IG|(>;gep!TnviaA}TS26=H3OzA=^V)|H=;sHcJ=@AvRs0bwBq3Q98 zm7ip-kS`T3z;*&dLi@zhl&c(jajb3B{0_@kQ~{*o-C~PEb;25PJSyV62cI%7?}2iS z+mAJUCe}){M35BQ5xA$*anf>(ggIsZ@nJJ15Zvsy*=Se`VmnwhFx8)kaH!(buSWMX zAK&t}hZ%TlQCmps`JG>lp3uWR&p(xS_JIMZ_$bueC*ZZ_MV0tmv$uMH5sU|OqX$e14>s&Ax_dafgHIrnT1)j> zs*lcFf$=)y!nT6?7hWsvp71J7jG%z3kC9F^O(N9&13lK3(+k*d5DwH?O74N44h=8z zT^gc9qI*O=M}M|>gteWh-FCbcfgiM~?4I4jNF3%W6){trnK=pufh8&E4U1rLkQjkZ zXj5o!4~@B4O0xC9-F6SoAk#j^%(D$?C~Qs)WiDk`pd74q!panxq}Q7F4wSWI=QRj* zee*CWkjOOM{MvGFvdJMr{C3{fdbFvGM2_JhC9Q4Ya`8)_h|Hgk9zxfa{RT(~q_oPk&e>(5 zP=Xusg#hGuEim*PC?LPe+ooir)r!{e#mQ<|+McR0YKv0rQXJ+R0&|bv-y@Mteuj<^ z;yqVIh@=1+mDBaiR|H@bh9X}iQY^kn@Yf;*JoE~qnusBH(c-{~zv0-|xE7%v*l}>TVAcnro zx&mxqxP!l_$N&8_n-7`a>6>^WZM7j4atUzhnQ#9@Ve6U&#Q-9i|B2jghmX= z#6CPQFRIZJA{Pco@$j%0-6DB#ama~x@)C*ZIN!5En6Xs(wB^tU9?P52@tFGV!km&8 zMoi~HFMRUmMJUKBJzzBt(76l}{_FbO&6S&pnr{ACPlp*xab5Na@p6C!mMPQo7WHv4 z9<76~$bd=JgKRjvoAj!Z0tUCzN}NK;*~>X92`OfX^!>oR($~W~5!mqHJQ6-z=B+up z`Q>knqWwGLC*HxFlVc6xKA&ZA={WGk;lco+QdG^bq@xXD*0nI;7Ch2}^K*IZMtZKM z5Plo`9U{=Oi$EG0eTnnl+x0x}_!q1P>xU-XO#EE!Yf+$@0F~04b=puUU0nK=GeL}k zmwWsFN8S4e*>zQSzURliw{PFutv<4aEn6a-d&jAfs-#$x7|SF3CB6Fv83hO=#Z0A` zd8zqhs@^NLY6{sZKVAlK+ZMJ+1PHJl0RjXl$OJhUFhLk4w2dJG1c)Gm2nvWq2?87t zu?Y?s{662c_Br=ovx0doL24AEg|64WJVVnTZ{1G@;! z=$;124(q^;*E571Fgh3(X@G5;pETUKetbf5>5Ilk=prz&+Qf`Hng)R;0s{fVqzrgI zy_Q2h6;!H8Xjxem(x+V2N~RGE&qbh)N;8$|?^p#9N3cb-1;TM+d=^AH*z!Fl{;M2*&9G1NhzvL;E<8ct3ejy# z^+!2d3FcTln&=k+IMbTZ3pUTXAyR-79b8y&q-JZhA(h~+b&_ehQ2l25Ct97b>ZdLDXr7#q0Z z64P7+r$Rz*=;#P&Aq3Y}cZknEFmzxDn(6VyVyv3a8pG+q5->!da~y$5QAUu{$-gny z2Z2K!O-h8t4N7xxr~)6~x5Badm+W|t*T2-#z8Z5>@=*Ot2f)p#@<9Cx9zRsc+y>%2 zF4PmzeLbzt>EvC3Xh5tb7;3@s&JaT8lgxdEB8ed*up5&&=E%28JreR&m`CIX^1>X< zV@;4G&vPuo1B{baUE`dlqy<{e#WTK&s1+$6QWu6r>R+Py?+mD4cA(CSa3Kv)M%2If zY}5~neM^5Zm+~VE9e{o?V{@lg^fj1vVUDeQT@Wi`R7izx z>}8X5M!I52XJfuDvrsPa^|J8wa-0bv=*Jiih;3Mzx@s_dSlDY$YovHciWfi7jbV5^YBp@Co*$=@%;x zunr*)M{RKr$*WSNYkfp9t!&s=#5~=TfM}{&8HMpmG*Yc5#bC6T2F#R6wKBzH+-9!3 zHA~Zh{dKMqCA2nSRWabt^Q&rMryt z%}8I&H_J{Aaxzy2b>Wc_>Jq8|vx--6fz?|kpe(G4o-_mqv$0-g270E>70a-^{*5&@ zTjCb<hw4q&@bQh2#D;L&Q<=a)D6%QWe~0;*uX28Wq6fjrVOGn zpfI+6K5K4Kdz@8|Wekx8IXq`GbeM;4x_vsd%pKTTeA(O%q^Ma}x1|xev)ik^sXodpI5tg|u#gceqxarRyN&xAlFtN0_uM3On_T4N( z!;+k((a4=9k1MHS3>?N5Lyj$JlN#TEiflG<=%V-mJQR4zpelS=(lab6tkQgCw$y^` zpGf&`bYpR63dfVH)R5m=0q-?px@zAqb-M6ZHi`|vGsbF-|a;ScqqRr9wU`q>@kZ(nx@l-oKSy~Ns3 z+us0@u4I{L3JOMt8OhDQ!_u$Z<$(g>sH;)JU(*E)KYsoGxONQEmQ4Vx9UZEn`WE`+%MHV z<@9_7_k7OXRok|zqd2;mTyE}x-wx>=z;lFj6kvT^3uE~ z=QgBo|Nm)7k84qKD^L_B#x75n_HveAf^@3L$KVQh$YIHFJ{eQ9Xp9Qxiqc~CJjrd1 zF76fxFUNt&PLqPeal*uAtv{_$ZWi40kh6$M5=1zOyuI>mX%b)|gzm(d2=W|gF*fHH z#HpznU7LV-Fju}`TzzU*RP*;%ZZd3(mduzIIe)usF1wDPk+OB&)v1Iso6xV%5j;Xp zH%;EpSjxf&zxF9-A6vNzdGWfAf|HO=!~3c?x9Lqgz9G3r*i*fEgWfd#4INmrF>HG; zPm1Cr7+@eXWDk}Oq#BFX6lt?UM`lnwZZBnK=22TBv&q4do>)16omR`+X`%Rm6a#qI z>f~8?TCg4qT)7YKlWCUL{vxfUHZ-vimy#+Z{ zV5-JSx}VkzF&WfALIK1uV1&OsD^6nIlu9fJ`RedO#SG~u8c1AHxx){ePAkp~f%o|q zfc6`k&E=F$+xj`nkSBke!APo7FK}{sf&8=r6LkTQw4v8>H6dPg>pu+Nx(~Fm!dg#O zf$QCeqR`GtK3LMCn-pxk{cA|;gpSbtYT6+Wxx9cGcs@;;J+Vy2fMT$SAOLo7!Hxpb zP9n)CvgD;DD*1W|xMk*UCk(IhiAXTwA;P_W30nv}(*>SQt&FQOmg>{+pxU%x5y^NK zEYbi%_g0U;D<*FNbI#<|2mK3lKx&v|KH8FS9X&8viUdh(GN$vVIMLz9O#dqi$sct? zXeUb{DpPuZ?aHjsZapv&&jT0Map9^o^_M8CQY5Snc@)lyQ9DM*JQ8#v^@ z!-i1}c_x+aci$Wq4DN{5!5)!r1`oP4@R^7y5hZV7h;regBp}ToL%e7iV35^HtN~o=?5h zew@1Hstud1AG2>pP+Jvt-p=K48cyE9^&j)%Bi_p|yoH}D!aLr|<=t7B-Np5N8E?gT zEeb4I(Qir?L#(c3F-h1_7SruO7Hba4V$C60tXa!qRAsUl6SAz|d<-?U_ik4;yWq8}3 zS*D7gN%spvFuppRZ7d#Y%0d%0kj9%YUbd*wzafgci{)fu(iK-PpO&Oxf)IW$M8@Q7tgoW1t2ukUDi3-9ht61zT7-xUg6; z(ajeuvxP)7pKCFnQ=S&Z7odLriuz4&si?nc)URPuk)%#hzkK*Q_LgZ8JL3;-O{aQ2 z=rKAi28jkH#LArN{}#fCR>%v_sKQ<7D%^#x!d>Vp+=br$IjeB=fP6&K+qgWFdfSEI zgN7o#?O>c9B$W}KVa2^UW4YjZQ-<`wbtc2YF`}`!uy@zT5fboXU^_-9W%HqAF#e3` zm}M6_WhSR`K+PTFSGb&DEXM_IFf0e=5hA`z3t8B&8YOlhD~d8`h#oL?W~r9(4@$Ll zq6IR5XL1@bML}F1>BffBy+2Jyp?n3%W?+uuWc$qxGDrhaY!F~J&*|_W%vS<6z&~f=-V>q&xU>zN>EM2YU|S8K>T69#VtV5*Wd~ME0!fa>d-YQ>e(`d z=0cT>1Eu{1e8cOjQzQrtnD_QmRwtU}bNkuq{!LWRCh2l5aDay4&~2Dh_ENDHM%Jiy z*qLq;c}pTR*y1(KCUay7X&4P&OFWPisHu4E%!4@V;BOX#-DFL!=wGY>;rsaD0l$zG zJQADokkn;#5mFZhWEe(@FVn7CW{RP8LMpBhS0G!9VxSxL{xtxHRR&Q^F*dlZ!q%U8RFZ}JEXgLB1Oe828 z+z4}<$<6RswtrFl-1S8?iHM)uxnBT3->o7MKOg*z7nz5j?^ThApH-20_<4_tMEpGT zd9P(2ejZejh@bnpcl@-%L-_d%65_p&Qh6Nc9_|+y=zS^@2YT>_3l8)zRU{6yDl%`N zM^z*a^k8gg-at>ONF3;K?tP$Ecxa%r)dB|J(5+0bt+GhQx=O7vAn7OQgfN;!WgRJ zY;1kY{h8uVwEo4P$XDVw)L>sM?S5Ql5o19azPI9z(VkXat<35iu{B~}Jf>4}J?o*C zWPWLcpnrP3t<@5#h$Zkx3QN~FIfpuHb=5s<^ayViVZid7GXgcH&~N+5*V`oac66{f z+kgg(v#H0`;{53}8>#(Z(RzBiE4EnJ6`MSXE7pwUaJWYCgof6DNh0>FOAu_aTUgJ{ zLu+d=n*)3X8geulT=2WXc3?>EqG#y7v_-eNmM)OW3>zQS!d0zR*`(u98qi1qNI>t* zHZ1cr0)s-?Bp3|RGqN(IkLrM@lPx|aQR1|Y%87y0SVB(fCnPFon@z20bnlVBbx60ZiGckNY;y%!lJs7cxN~8?S zOyMC=haUTkt+s|BPRIMb;v2AT? zGinMh;m3Ib4H!)L;m7W0?JGVZTg~@%FO8k1lQ5%NKbRKpfM*vNN#Zmf5dU()ut{g( z@sc&sO(pZmUp0ob#4^X-b0jxOG&grbNGwx!7Wes?Gm1VoSU}QZ8(WR>CmXC~lLyLe z1vqK>w=JI*jMp6cD1L%TLHqoG4H2&lZ4mgx!sm*EEUfg#xG&~}1%3RQ-o)1BKD1)~ znlR3`J$LZ4kwNAuEr@HPBC+oQWCl#7VH+Ztfh_ElF!q`l(y67?UG)2T9K@W_1O|og ziiPJ%D@RmVgQjpLxy_SSj;m$mgr>+*)pA?~eBwV8%~hBaklI1s78YJrXGU8rbKr|I z&q{4`*P%rfr79sOlJ=>vlxc&C2et`vC9jL`b$D*!yi%JpIibW1yl_L7ecOp>_IzfV zP=2Y9V3_70BL*H(IRW`K7p}`O_p*a@KX9H1bq;t$97$X3+7Sy_l}az@hMdJ}c9i%pxgzg>lZ+i3Ju(hbFKHH8=(qDRQXH z#Ozeqql&1*qKYz$D$*w&Rb&#%ma41}4P+mL6!Dpb6xnCjF*Ds^I}6L%6L>o+Za z$ix_#O400C$g-^%-h*rb-1Lvsw=53TZM2S((ModYpLDae*hx1q^+n8xGxq=}0c`aICu9A7RgW z2NnqzG>|n^(l>G&wnfm7aDt6PwKbecIWKE?BU}TOu3Nu=72N6_vV!l;+zbvX0mjqK z;0^g#&ee`D|Ai_kiXXK4#w=x3kvGfC8hMyKIxpr?aEykHONlQuC}zb2sa)s_RdDF+ z6(r)O3y!1tjLWj`tYz7Fhb$ZKkY$f7Aj|q&UNPU74Qmfa2C^)-&$JN!?z-dgj*iDW zI{vW*I___IHNWE@8+4po9E!*4AJ4xOTwP-vj)H0tiV{jAym2HW9%vA^<@EA|(MJf=3bwZq&>i;8kGH8v*KNmMm4U=WMvGPgE(2pb2%zQ!MI zRn_`tOf&np(Kh$iV2^izJ>CKK`xXGZzvb0@u-`WTJGXzG)_$J}*gVVZ0-<{o?)PD1 zoK_7iI9ewr#P{SGI9uo*5S(yl50_`s*)w6Q7GuTPbC zT2(D1PG z8@mM-NqnScTgL1C?Gigh3HN4!VO^g7Bko@$Y}oDUWOurZg~y~uN}P~&+Di7=oFS=H z`JO603m9!<&Ecyhns{UuBMu3=a^(8R*MjR0hDnNdOjyL2+;5W*$6z&+TUu9lVFsxpB0*S#( zkDfyoA}B}@J6jnA4hcUR!IMm6M&V@xIWu;PX5lhsd71-xm&D1sV73603)BVwtqM)B z`pOwpBj9JUF8k44FB+Lv*tjNs$iw2g&c1KWN-HwmWEb}fSaly%k!Z5LHx>apY50O( zG!?2mPbWH|7tvIFBz^%L%sdI?6$bs?(~HzP(fx5;r;_OT66;RF&8X@Y$qZV#U<48o znuff{Y;F*4FnBI?@Wotps2DXeY_XzMZKF%*w(~i zcm^-A>L?$CA?~xEC-hw&^7Ula4l~(?&5A+;b=nfpP3qRTWxh~km^x(gB04zuu`0p5 zs~r+>6=EOllhUayq*bVQnXg0Vg5*hBFjSTE0i^ojheP#?ak#DMv|iMhiId!fH(X#W z!Qt$=9t>I4#mt>ynMgs#t(nK&8J5W##jX~^QoK<{9a^0kbhVv-M_qRQc78b$i8Q3B zdxdmYd4+`bRM&xinzDv2%F&{w}wO{`8TD9dzHIQAwK(f8!w6gKUjYE^+e z9X*ApUh5JOi&=PnoM($XND?C#U|01`Q2wS zm8qOxlKR?1Ql9`q&WrZ2)HjOMXA8KX(dc!U-zEr|me|!aG(J%VWx$|2rF3v?FzXDu zY-RvaOK5)K-hq7C_Ef&4PvC3d`of;PR%R%Kk4Ve4Y?$QO7ZGR1*BxFKslmQKDKY{i z{D+N=iS~CarehuHh|G!=v*ruQnpwG67c7?Yz={Q$hyr0M6FlZ3F0S5+3JuCx@yQN)rM6MJQrRxv%;eKZGh9==&{j7K z%;rNzi&<{O0w4%Lsd7j;pRnn6mZqp9Dpz6+$<**>(}mq$%SaI+=)1s=$wn)qTg@}V z&up5i-$FLl(74U;(Vv;+Z|TP3WhAH9oXH}l(@q6B$?JVm_%U#sPCbQx0#Bjvu9=7E z0z6Tc4o%e>@%i_p7DR4%mMCS^(k--4B;aNO^{(T#eS`htZs`rz@c{Q)XkXiSwSS?t z;2gdny`}8f~SmR*Ogs_fVk~ylzZ;q0HB~lgK^$SnHp{WZb<)1`b?c_CfI{ zRY+g)j<$?r%t`UHj(+NU@meLonGMU~cUauDp}7?%emQWgSj z&O6Ou@ABcpe?zEE6d{jsFS!)SW>|#W`gMv#(e=?-WS$_pPemXdIAz$*Js6G+eiwH# z`_B_e52B$l&0bu@*#ypm!vw{^L;F## z@3T$3vOVioGJO)Z>P~<7(!UE>@|E(d6*BWiqJt>>(Kae+eaV)R`waW>J+$e~sR8>* zW7f3&2={sc?Ba?K;lm|-$UO<|p3Mc#VmTN5c;;7>-b#v?_z}%Pj{Cg^|FUWju>~8D zWEvj^S_o_cx2v3l?-dP-=SEKrD~E4V%1m0oO~Vp~ze5|3Hh88qWN~&>t2|y|sjQrc zlIB(g(uyiTw75J;uBI6T7D7I&+M!O>Y85K7Bvy!(io=jpQ=Oehl`z-D<>%K?Pq+K} zytZ6R_p3uk1ST{<=Y4>D9`ADj7NMQBS|!7XrpS0iTKt_kj+ZKVfjz~zCVG-YN?*iA zioY|zk5VQh6)iCxS7Hof9=ufoSKgxVpqRMX5ym31CXcoW8peMvtAr_%UIT204)9R9 zeYlvb(c=FULgQ`on1pzGYi%o9&@%KPDBG9>SV@Q)nv^}Rjebfl?K*X&+(}|_rP$az zZ8T%lC|i>HYv?2!p~+twIkG;@E%jEHs|-XZ;S7v4DcALjzltgmJ?ZiZh`oSevg?LP zW>)qoRx*jLUG-)`!z68W-5SZ|nY2cBeVowm=I;AfXBXAG$t+)*hC8NwXY^J8#+Eg8 z`R@STd8R!eOChR~Vm(f>Gr9bgXid3YM5MaY+a+Al88VRZIJ;TRcEN}Hp_4_zNf{@l z%C*Vo!=*ubCMk9tNYapmzJkrfGD*y!gqQy4ilIlV%8Mv0E8r_YL@;0rx)Ya|OQl(z zyf5upsO;_(&5g&q6gA3qXNuOu_4c%$sT)hV(>(L*q^P_m{kqbh zdv#@t_dU82lDJRT#q?9xOV;LB4Hg%zi+P;%-UM_pi*taZ78uY~ge3(|pzMvoB3i4H z@9K;M$qrX1-@}z9#`hhr8Yog4tYXZeXHV#QOGBs2cBQL)aizXcqOMpn9IZg!3dieP zHMR$^oTSc{W(9O@%iaq5w&f4#72a+ARp8X4DIIGIZEWeN_L1fwR=-nb{j_+D^=ow! zdU1c6eoXee(VA|lvpb;t8*$N7qrDuBFY$vszki8wr{bmKS$J;Gj$+EgB3S(Dk@5FWsl3))rq#Q0)7Qi!FdUyn);;STQhWJepuw8 zsEL$j^}S5XOGszUl&ZH%d~ItujU-`h&L#j#0hN{VEvz-^NUzo^n>8(pQmsWGNf*2+ zubOo~7vEdqW;yCvnf<2vWvyz7tO17hpvDavB=b?d>D1b^6PvU4Ju5L|T4(L~kYjuJ zO33#o9*rc#=kevQU|*1+aMt=LD~PfAe$f9cYR{Uev;8Cg6^PtfG?uhR+M^hZI*n#m zdD*8fSJM~j?h4&qpu6Ylj)Q2MQ&;M)(A`zKLpNn&nS;EeXXvF6>--=`j2a>K z$P??5t8}+AXWNsu)zI@C6CGLF(07W@G%I${iPT3!qCT5!MA!iVYQj5AvkTC%nwpF{ zKGEVhqG8o?Mlzz73hk-Pk-Y509JMtCT`i;>0DBHn(n4fJR$TlBwj(0CCVq8}@X}yd zrrTPrB_feJ2cFUEnkv+Z;&@V8top@@RkHS$aJg_@GGKFlsAzNQe^cus!oX|99G;b^lYu3 z!EcAl{hFS^xQ3tos-8uLRn_+&^bBokxE#`vEZp;16H?TW7u7z%8chd;;J|C@fw&MD zPA!d`*##CA&N93dghmLmJNc(Ey`nf90Kc=9TJjs80bk{LFodixU=D zEfoFH;*GH%Mj|lz+>Pl&)Xf}deJNScls}osksqlT0){Tctws4#3z2{eA+F3PS#?by z)gcWOQ(A`=+9xP8fXS=C#k&pA1xj#yFqi(UUSJ2G*r6g$=d5!T(%G>RwnCjB5J3s` z`n(oov56W-=i$%&!UGY-FjD;n&ouv*+M#T(%x6-7^T|XSn@LxvQp6vISRh&f%f28{ zw#!2ImkKx*Dq~M4N*)+K>F_Kjpm3?XE$~f}sMq}4m(EAv;osqclBs!B|B}62pY<{e z5Lj}-M8YcD7$-Aid-3AMqa99mXB{0=cb{L}H=;$AjIK7nv#A!=>et~^iz^ZEtC9E! z$CuzY#v+N~ND`(PhKZC&w-j2LBh|KlEq(qg*K&tZ-^+b36*II?9!|$tD5~0zraHga zUVPVYC3{+3-We)^xLN^?3?NQUhwXog*7t)EafPZ9ESk$H31WoXh`4^YN5V%NO)0gplGj7o^N?V=2W{T*_&cLvg+kp z;fGctTIpw-ra59Fz2%ialiIS_ENKDusoB4#S=yBz!F)^XM~CoU&=_*P**yrq$?*W{ z7>ms3RJM>kiW=g2S1u)c9ntyxxPo#^H=!GHzs5Di($#MrtRTBLpe1 zc?!GIbbqmaF6L!<>F%Nz+O+@EY9VrUa) zr@z6*Tl~m!i`pmQPgQk%FN^bxT-LTQltLh2w5bPpWmQxY$|Z|9J53@y~e36V*G5oKt?<;DeO`_K?i zP+mImo_sC(FW<^eVTOfpP*d~wcCNkbo^I{KTR5$05nzjH=d?bnSI7`-Sb(k%q8L5| zGX|>Lr>bttv~x0Jv{@LF2;_DF3>hX-_@3WY0M{Q_OHyeW4Awu}@F758Md0tLIXXVo zuEo~CbJhuiLfEM>yp{1{vjcOvkb6y+6_6B{(h-pj|93ee8ctnCTTC!`2<8a^jdilq zQl!M(s5ccJu3#?JAz+S+1~Xeoi*HyHd-9&Ov71O8O{>kGz@UcjqLPPoj{)wa-Z|Vs z->~1|-knN&ml#r95~o%pJNwkyXjHwX)|>LFo!7)sZvw8JzS2Z5OO=Zu`(3oLI(ZKZ zIvGrju=eHH)~v%0I7VfMh0te>BHZ-}AZ$C4Y*Mg-VJ(_FEwZuLv>+ug2O5JWTU%;1 z=Nl9puh|V_;iNkDU4YDM?6qb|Gt(3?Zoph7Vw=S!fL1N7s8m-&;xe{lR_n)96;qEb z?*<==f&r*PHf$L+iX)?3@eTh-8DiU{!Vn^#D-8IQDeJe2e}H3Uh56&Wa?#uv7YMG+#qe*D7`sUZB)EnQ zp%jKU(#wP^RFNr34p=zNQ%I~LnHH~<+kI>k8_WKl?&iF24!(l8#7IU|gII@*o21@T z$+|L_k@f@ety*p(h}2~o;dl;X!&*v~epQq$BU`_^AmyO8CYxPdQVku4L5QLAjckj9 z;KZ1W`p*?~fE|j^4%z?3FK&Y8DQq^iyyChj^TS&RkiC}vn7GNojuYCR{3T2*8Tn3`9`;SY}s{TpaAom)__u^sa64o>vB*TXlRDvapEx4B5YT`V@5a?V`4>S z#AlrroUXm@0-|V&?RC)6V~2^LiU#Zc*&@_AND;j82zB+8<+u1Y%7`M={ZQ3G)E2Z9 z(@(?EeE+jHgBnIypEUv#H$V=JAhQv4ZzWbZ?jNk<>9NMuT_*5newVeYXDFzi1)2S2 z3G*P+dvBC3gU@cf7nDuiLU7OF!8sTu6PJ@Yd~0lGP(=)bsR49JFBIOK;k?xb|rmJHy_pye1KclHvV zf*-hjiesYzP%`qAd`R$dVL$d}04qcr)wWw@O^&1l{WuO;Ih~iK^g6sp6&q#WbeY*~ z=q;uM_^E#&H3Pm6_6Xs$RZX?fAICP0R~=F>pqPf(33!g^sLK+hFD}ce-Pnk5kjjLE z>Wn^(?8M9IY$Mpo18KeKVubmIlYj@J0`nIai`z`N|FaG;a?eyiDXrb^()S*TJR3F9G=pa~_a z1Go#QVr10mSdYL2YFbQcJ7YTZF7o_3W1v-Zb5pa$yR3LT_lPc}lvLnow=*FjTYO$72uRFz#PViTuIJTsE97xp=UVNn?{Q^*PND^dJ}f%Qle=iPw_B4a>} z$joKL^eki29wa!!Z*7K*dH2+LTk8{INi4_=r6z6$$njj-K2ST`&lXOkKpUnZ+A4nJ zXHFL7E0m_-ACdf}I?jcDlo+2DeBXYEfUt<~k9&Zdz%q=?cc@6j_s3>EOl=;%&wQ04 z5#LXJ#fuE%`%b-&_`Z$%;jlAy^*@PZS`6=;BpU&1k|czfs%Os5$zi$FP#n3G$njyh zv`)%na;ZhHGea(y4&~)B;ch{>^l5?nQ3c{fxF7UDy!mi{R7E1(PsAeg;J)KW1Gvv{ zFK#sq_q+5y!hNT|uldYv!#nq&IuHM{B?*i-rVV?7S#AB;14;3{CQQTjlZtmZhGu}R zPm*lC|0oeNVNX>OzH_fX?Q8MvrN$e{tpJT`UErx%*|fMw@N;8ZGjL{|cJIx=`%;q` zVay!kZnn0BVs2|=sVf`U+8Sz!$Sx-yMRu=EJ^pCXR_!w22>nPB z`&U|;=h)?9F7-!R*>mdfD(8yep?S;_!kyH^-WY>qmx>80oF6e3zWD}bHZ9mr0Auch zC5R{e+>VlD_Bc2(*J+SEy`~SIBg*tIp6)Hhjtiz=Lf93L8huU|wm7QGu+{M3D#EF_ zTmj4Bf>~Bu!4?q#)>|efELN;1WMFl!tcU)uyi}qB#~7RGoPjEsjY-lmR~#QDD?29{ zk`qh^nG7yIZ^wRMbR{4;W2t-OD z4N@uN#KjwXoc5$S?w5!Mt2bgR)rL z2TIGzc4Q?N*EgyV+OkjigGJs}DUrto%GrYo000PndK;X<0>IPK&VTB%dDn)LU>^oQ z3H4DlACp4q+jmj=qk2JC!^3Z_zNNF_@%mTJtm5FH2R=Ipk+>*iiuc*qA#Vun2yS-H zTe$@B4#L7eVswrEvjjtb@d7j&%U#4lBZ>z^DF!ga2m;_1)Kbjk6tmnRj6ErPnDnR8 z9w9|&J(6S7;;R_SSm5ahC0eANFMCssTenh%B|994PO9S=_?Xt*xKNpiT*?As7#k%S z8Fz~3D7mD}l3Txy7>4^~R8$Ok^JEmzERz##iLS2$S zsLjf#sH(4vN|$5#8WdHt(!-QwpvrPA#S779fuK?pQXNzSmT6*XO+g$5 zft%$Fc4lc3jW03}V7}C3K?sEz1mat>Pi9C8RShWP;glNL$~tAW^`*wqoR0dClZ07P z1F#0>ku>ZCtuC`@f`dE5w)!J_cp^4ZBqKU!_Nj_1b8e-H3ZrmET5>uu7Wl zqh_KC#)i3V;hm}CBcxH@P=UIVdZGj`L_PrG{Bh_<%#QecBr_R4*E=# zl7T5GB2NvIp}B!d!~QR$9{uGgZ7MU|9Q963i$wi9CNztX@h=Y!e~HCpNHLT;ZB`y{ zTNGk{Zhh9d9e4`5dkhcs*t3Kf7-i+r!IW7Lwq&wj`C;*Zm0Jv?q%B(Dp z5mUo#X`--In$Y5S&78ks zllKpu=w1BKQaCX@jmb3FTz4_~4^zDc%CT*!#6kJarEJnh`opFGK{xHODW!Z${ks5| z)-EAetd%u}!>$9fph*AyNYG~xg2?RPs9#9vbNAVGD zLoWLUa~N&UfLJq_SGZi<2~Sy_C^IUTw!n_h!AzW;4cvb#@gJ=X*ieOC-%O%?hACCg zF&FA0i7f1V6RXslG(ApAkp#3z03Von%y;b%s4Qh$J`|dHZ;z+daW63{JqtT-huM9< zY4xd#5|QwG72g@b>3b9Wq|kZ;Px7#uTzgfqe(;qUMiEM=I^0$LRyQ8URr%OXs{MJ6 zH)D_1C<1ctpw|ktxLv(xz1ybW^z$(aReUQyr5`kPQdjJ*$A@1Ya~`wSF_Yuzws zezoe0D`7-sN6Zazc+W9ngZ0g|}V&-6+O}7Wp8i z%GZjK@q;Zw#>1`vP`TS`|i0Bo?K|MP8)})+~^Uozozp*qD@+hU7uS!x3`Q zFH;zZvRd2E4fazeydL$j1&B(7LVZrdWEC?Pdpx?;tk7oc>jDA|1RSkBF>a@)9@!;} zuL9}S$t83zFFpuuK|?DuIJ4#*7>O!k9hE&eeEaPWBw=OP@eTl{qio(G#tdK{Lp3*9 zjBoh~Wb<%5+0-YYrGDR)Zt9ajn3c1b&7oDOSh+5xp;r%~MgH-SAd32-bqfB1g9k6d z6X|;T4Y>?GxLyteFkZvt|2eOgb=k&c>$o`(`;eZZOymW4X=RY|HHwi&*8ml1+Vdoz z%zz8XMtnf!eoPglCK`!_wczu+@Y6r$8rUe;j)JEuvPoWO5y!x=){d}6W z2j>|@?!yi|on|CTR(Z}Q>5_u@?-3#FkRxFaS}yU!S^!6Iiyf#B2y%%C=TNp~V>pH% zK_bUdPH9tg3P-EtAm!=D1u2W3@&;7<)s18INxuo#6EEp#gjZ%;xPWsn=c100g`{|4 z+0mAXELgOe(4u)`SnJ0qN$NKzu(`ghXKWnP;+G3`I5$-r`%(flHi2&s>v#wYZ4pM~ zFTnk;Kowe~2t<4QCVZ{$m&eRJMB>0$3!oo`U<_ANW;g z!xBup7Rk%QXVxP#&^CrnLsUy*;|$l9l_%dt4^6jq1_sUQtCh*K)`Fy#8D{R;hAWcA zS0+|S{h|jZ@1INe{(+TAvSwC60C2xUQE3%UhNp<1oVQ!2_Fx7zcBRXA6{MrI; zsdR>uxKdjT`)EZa%Y<0T>^_8vTcobTx!L&wKRB#ML?ys|Y$Z!53n3#p(FFH72Gw*k zAw~Rh38>5v4$*PKJ^Iv6O|}O8w~jmeL|%JHu^t9H*F+%9CIfu}P}(AgZf~&S>?U0o zHIp>YGsQuxbK;lU;VEN1>a#5Q&?lT;mN84MLKP-MtGe`Bvb8qUr}!x>{++DN`q*?u z+pft%rqvh5YfCp3G4Is8#2YA#0nh-JxDnQKmjvj2%lmHq7uSwkM)4W}+jeL%0CXe{ z@NG0KnAVEK{jm+|rW^R$Wy3WCfhve^3xWcx-Lv$})%dA`>}49i`Eq<^ zi0_yCdm<;rNQ`|7X^A|=W}^XvAUFN#Tnn`2E|Q(ayM@*f;_Ar^c2~HT1|zMP>bNC5V&EBhb@bhD^`4!NvYp!O=U7% zx{y91c@5f9N5zE^#_^+8Nv)hk13ah$iFDU+N7dhUpBHiw=)E!OuwA3M1H%-LfQWSu z`5<;6Lb~ceHF|Sg5BJNF!D$(g?6E?7M>($>Ie7wczAo`}c;Eg=TOW z9(qg$QK&$; z2&>TVu`1;cPmubhHnE2A0$b$=a&{?6{A?9BA*op65UWObJY0=PP56W$2$I{~+-fqZ zxKZb$8|U=BAZ6V+luNuB1{=5^!^|oG4yUa;1A+o6xcGC;9Je~TQpO*Q4(pODodI$8 z-0m>;RQDkghL&7_S~E^%_CXOQ0>v@;OBt+KxxOV<&lzDQ5YL5>#8#!-;{&MTPRw?> z0`KekK9EzN9#AAJ075PU_4(9p9aHUnM1%%&nHY(J>bf;DO~TRdI+=0k2uu`@B%z-eK=E_5t%Z zZY+c(=&@}jC6hnv8maCu(5Q>R0^oUCKj+3kvaN}=?;R;|bUCN%BDXgfAx~qRtZnw4;$tW|h>h$ztt`)~Ae;6`rVCs9Kp`tk*tq%{A-ma;Lfpyog?q^M9!aR;S^eGc(N34cOw`Knp~|j1tsa zS+eM6EVkIzO_K_xImW|9cz;!H^?J%%!niSUCP*rKHBCKg(#GIJ-w13kZIJ3e*Gh%XH{kraqV%-dYt z*X>$o!Al2&Th7IsqxfQv1(tzXRt5zJ)Vu5Br;wvW5%3Yx?_8e#DvTv9e%$Hj#m{oA zFzi+SRrm{9qvA--azmVbIP^XyD4r)BS&%F@P&AVMH2uGV4V=ZN6gvV=Ftdyj!_3dH ze915)e+#)#MTU}p6|xtT=AZ%C3>R3Rriy8#{<2}` z4kS8vfa2A;1KbYI9Z)s#+<~x5=K#DP)zt?NUEfs#JxDUc2ZAzC%_N|Z7G#=|@sP{- zRqM8ErL82*7UiV$FlhBsp}g70Nd~)~XV}M)N6e%RjTWCpE>n)*MeD~e z;3@7$!z#WJuadP^4^~wos%@R+!DaOWnUR;T&0oSpPWME5woSOj6W|FvCM~`OqgkDl zbOfHbygx#ZC2bR2VJK1DBMp}&XwDXXRm$%ElBaBN)j`3H;&b`fbKu@_G-MB3FUvWj zkrhCZ*K0V{VmkbC^!-?bH3a;IkHLK5 z$rg_h?_RL%T){wc@_g)<24EOCJ%}9<80G?j^CzD&5C$MH{a1pwTq#=N@S#9?TK-_k z?2{FJE{t(*3F$jZd_uYaGX`!Bg0NLBbQsle zxWgAc)ea+cN&1TzCdE^pDb@k@r)v}4%b}k~4ZzEJXn3@KTq!TmPI7Q9TxNUN&5uh_ zy8rCh(|M##2-s7`gBr9yC$8RkIV`>Sz>`3j+#5ChlCY^6uuJBlw=w)X?>p)Wf{Jg? z^aFw!hEA+m0N_u{FmQDk#2E%_upnN7m-FfI9Ea5sJuaO;EQu%c28vk7Gue_g+Gw8B zambAJVjt~X+^b;xkXSsCQ;5e1#z zapv& zn^jN7?bN)L*(#D*(hkykjuIKAl9=7%iotK08{%5dGPyE;iH<5jkYaIH-XbG1XUgOa z8}5aUZFUi0Za?Ds?M5_oz^Zn2m)dg<5S)w0YUIiASWTZ%qNq3|^r~C&%;Iyl&uKX6 zk9rv;h9Qmve*)f0#-#U84QARvt_)8LF{X1Fq0BRe56DXT^P}-L0eDf zEwWF!rxNlcKgLB%w{-p&SZOT@*6C8f)7n8`S$7beIjf*KM8k*zpv^d^nY|SqLaw=R ztiF4=zI(jB+y1ty+^+iWKz(GIjIM+&`QLh7F6hMLHYfk0) zF@RHd-msK)SHKxxU_?W}X%`UWJm8EI%TzVcszEYRE>snEkAnanac*h{|j^o z4Pkw1VxQ1*Az7E=WR>_1ascS1;UEik!8p zaQwMl<(wG7L(Cr^v7CVX#+hJTiBJofL<|@@QAQ*2YxPCgRWb0euf97_-yN#&j@5S$ zS9i2lu})QeW_F2Taz49MXgciEOtS2tJG1L0Jek*J*EiXV8oe&txyMF`*Jbu^af6=j zbvdBI^1AHvk^rhIiLQeQk#BvA>lam$N8<2S*kwAwr=SIFhMZ23;;k zIMYGUO|**>v*6UepMQB~mXtmUua`g3&A<2l90>jCXrcovhrn;6=?jl~wHFM=gTaIb z2(quY96Oj6I>s48I0NIs6$XN$NRK+{y9LC@sf1lpRj#cl6JN_}fpP2i-qmX}pQ19d6)$#kfG^q;z z75Xu(@4hu!+K(e<5nkm&mZ^1eM*mlqtQ%$fN0@STA8MfozZtnB$meS9mw}Gi0d-;H zXein5r{;{1SZA)x{wwe(frLXw{tDrX@_1Lp=$s(M3#2ey6Yr1IGzo}gUN?G@SAt?} zhJ-b{M?x+N#&hZ>rZ5erg+AnRNeU;IgRUn9%~hB$KvMMuyJ< zP^?bUW%AZKNVQ%IWT`o)h}k6o&6Y;uM|e&#+mw(MpFzjwK@V9UwD6rEGRc~Iffc?X z5P?p-^vagJ*n{Le_>cW)bLy(RguqS*onxC4%Y%x=?_%H|4at+p#oRMKKh{gaG;1)%%Q#|FS?4YYreFmg9Y(8gWnU}>`LMFosoNT565h6FmPh=wz_@A} zhGH(N6{urOF?6Rx=7(@*LPuLeF9WNEWhZp>5G*asexq9W4|6xP@M}4jh4?oI<{#2*FGNr%n zYlh*trJS%8f}SdB$73E~4!x8I!X-Yj=haf8f?&P{7#k@6Y(RTMlOFh9OhA7uI|BJI z<#IV=u+8@$V13nuvV0!=)?C3t6Ta{ByccS~uTLR3P?D+Nuaby`^QQhJk1HwVs8?1` zJ<*#_4N12lU06>}ex`~EdW^dTkaV|7MkK9dj(I)3S4AR{?s2i@>Fen(Kdp(t)E`zo z-L6BM26A*oPWP&0?CBmAIh~visz@cdd6BxOuNR^c6?8tkZN8WHKrQ|a@3!F~biu#j z-8MXAfnvrf%yzK0EbO|pU)m?Oz`_jrqc6RF8AV1)-E?1f*8YrasW$%{A8h`4c%km_ z@bvERaJV~W@F#R-s5{BL?))O)`KN{Y!^6}2!^89J&mW2e&M;Zc8aP+g8>7CzP+xd> zdS7@r=!?<6I2*FS1_g_`bu8P!ROOmaZn|&81mxR`(0f>)vPm(HG39_woP}spRFAbr za)&Sm;XpDK{0!5HWEiSqE1;sFF&Z%}?RSG^kYD!3*G$dabo172J9f{`+;|HCVmTbs zB1e%##CJ`o5H`^QTYefZu_T_7{Va-Hp>pCglH*h(5iQBQO8XXzmPiz0A=UXPuPPgA zN^9&N><#%1VaukCZ1FK44bV2<3E%p#ht z!dKft^iZN?0E)9gs?>tUg(P)?TFZjLlq3M` zQIdehb-gs3qzo1`K2RVAjTpXRfenq#S{bcdKYcAnz=0}*ZrPe)?|!0p>6~{`n=}>7 z2>WR=6R*2xpqf`~uDFS9EnHMn%?}r%8Xkg1{2OL)JRDHXf&B|-Lt~5M0`q6m ze;?5Elym2e9`%RN&uJz95Rzli3q`S~+R)%{Rf(uUiWRN7=s{U(rqSY*Hev%;@IvyF zcV$Y(C(C~%oIh}ku(N+8emX5~BV)SDZ88wP$W^jzvihgNv|~CyNq@!%PtD>Tb@cDM$w3sI`yszY}x^z^hy0gJr*17kh2C&Xwg@9b{Xq1inEqIGm5DlIXKx$otW?9Nqq9nPw_s;k;k~ol)!B!u&b~d3$M|~U zkbou;V6k+YTt{za{ZETO(Tp`J}rv8h?qubMMc1DWbawsqTf0TP=96n!$@#EYVi8&Gx4^v2J zF2mp<^aHFww>wEwVz+D(7+uf$#ZdUoNBl1H>z6^cT@RCWB~Vg2Qx#@BF}%PH5$Xd7 zpdb~yFdZ%d6$+sz|zfXDZbgJ1RM;eoRYY2T9|9JgQmoe}S&hqrl$aly0*HXi-C(f6yHTbUH}x zY9f>M6SLCW&~i|*c>K-!F=uzcMGWKYG-WS&r$0dn`>~yDTx=WR1!v%i<8*gN6%iKe zwv^%A6XKuhkd{e01b@_yB*GqZB_Yx-Hvo!hcW84R&3HEFYImS{NmgWsGB113GDh&x zOa1ptx=cKCAdbmAqaZWD%7|f_*W4beJ*uvtmNCTu{;8z(V0mW!GXM_Ld!J!bAK&ezWJ)reCN*>XbW!qlM+YFm#EZ&0J0WCiqTun}{o zRy#qU)~a(~(HmW?{nZv%iC3v%7ssCx{cKC84zIuQdSt$<(_htcsIbmlyVdC&(=B5c za8Z;YFvh1~iMAwX$#TU!MKch-=l4~S)2hI>=TZx6SUN4zVj*P46gh2`Sh4`_!h!lT zr78`N-i1W9BJ9#rRK=pv26HSz>hN19s`~QMB%Yq_!dpyi9$2Xm`Wj>0sjiG7v0;1 zBLR$J1bzfz^)m*E(+@LxXkU?Rw9!`~{@#3E*?gYmC6z2rv*A;c8PtkgzyZ>S-LuyN zdnP?=6z}c!z-D34nMxe#P{I;qJ01}Mqre2;t$~_FD@5x84dIUO;YG?Yx;0@#Qn#d5 zno-6+ijSJEr0!z5mSoRkhbZ;B5PbY3zl3Y+iJuZtjhHT+n z5SOQm=(dhxHghpcwz584o!SyZFIFZOu1#20!B^^GAC`_>1S@=hQ(_Pt&iZgJ9a%8z z!~cqoESTTn>F&r}bYcF%s;wi!PSdyGD&PaVxd89P#^NVzWCD-FVWf{Yj3FL4mafQ- zu~k1Lz3SZ?F$Rkt^kp-}y8lF~gbE-yiw#JW6hDHL?2rgOEIymL-5~P7*F_@7s4W_Q zT6b*0Bv-NWutY4lL5tT&DdMcgo@Br7Zj0SPfKnDw0Fv}PkcD+pisobYu_mzf3#HCd zChE^v@lXqZh<_>i6UsD+mU~uL>>;j6HpRBFQX>%tYA!R<*{58a8|0P<8Ri2ENbr=% z*wLN)MQu4QUjfLf35$8S{>;{CC^_t5`3h21ht{dMl*xvob?P1!>4uN%LidRa;N}zh zMQ`gRYq#>fQ2Ifuuy{Y=C~@}QqE0f!|0$as{>RtqB?FZP>k?-N5qPwfwp!Z5%*H)h z1F>E=<{ON;-HBwYO3tFzyrEf%!|(8%cA2hP6ES4YCgE{+@eT zerFpRmR!zbb=D`P#0L~Em&oJUy+s`hW(17h8?)&RC3F)MM4gz6WKYC+Of{~5AqZe zvS=X$l4QS^_{xuv!pH2&Nqlc)s`nx^IcJ#sYN2tdL*J>gYO}7?xNxtMidt@$ma9_( zMGuTpj||aAG%Tbq(P|nVCcAbJ>flPg_YnSpB>X!zB>Uacjp2yyG9mmi<>9_ucw32X z!uLmcZ*GwB`g`Ou``*y~1n-OAs?mEU&C*wEKcohGH~Icw&DL9wi)ieHcr(VNESB2K zhfRs5r?pE-GQB)UI&Rk~l^10$$qvGI-AKU>{1V6ve}y5Z-*jJ<&@_ApFzZJ4Wh5v` z?_4}tZApV0tIWSCB&5BzD%S8~4Fn@o+X(U)6r*jX6$h|-p&Gn>#-!#*#raW$Hn`zA zt3rlL@IDg?=V?6;{&Zoj$HX4t3e6VmkXK0F97N44{pY=r8y;@C&VX!_pzdekF&J!G ze7(cuUbfM%fRf-+BXph9_WUxN!rnbgX@gPYme!9OYt2T>2djdZj$MdDm96MG%nzgG z$8*rC#9|}B5mJ4pv=$UiAlD_nJDR(qmoiV>EFGxUfurNaZxmopRi^X|tzR+##8pEa zf~isHYHFOfN;3&(u#wQC;>{MUBZgqqDn*)hmHiPJ8@qLt{gGU&Kf!lxq$}l`8s=nw zjNuKhaMYP$y`v{(a(T)M84}|laD$ET4(*tp*xb)Z77C2N%I_?6JUO3wOE(k{)3^a< zghT=fXc0=oEfSxhYE?phG{`QQw#=cPEbafE*RYoGvo^f;>1lWVfS*h&G` zwd<7IiGnX^yc(1eCsfYzK`Du4-H%UXOWon8sQNMRd5rj`-Y6tE&blQHwar7F|Eg^B zy%-YNk@}p$tFco|hnrum6~IKwyzGb>pfw{9Vw&kFj$s5*su>P`@Q7{Jrw7%oK5MGC zr1>)));=DgaS~eUORQW%adccp(j_5%$a)hwAKA9qi@hQ;*IR}zo_jtqtG;(hHknV- z@?sh(N|MN{%QsT~54+P0yTYy0NEYO^c0!YFC&|xU(dDzR(2&K;7H^rR7pe zXzfdS6LfMh!t%w+jB#ms2`^r(N$x0dAbau2UZI_E_Or!hgs1gqBaBCxL^Sr6<)XLok%<5BWW=Oi-L<%DhZNR@sBqVxnIHix zw!4m=?PL~;4~SXnBsTiNENLRq@EMV%ERb~@Ff;`XB(t98qX8%<%L_GMWsCFH)f0+L z;{n2lz-~?KaPm%EDClirSo*r;YZ93%p|a9X0?wwZNQ_?Vb6zeIhbM#D)}KOPgP#; z@Y9rB{}-58uF=Q!qb=O;(4s4CLUI3BW{g~|?rZm!QMb%b^e-viWBam}_sEYgJ2Qi% z<1+Ku`&93tGnp!gw?QM)VFMW9$`L!5O-cJ85&*oV%w9~k3ra5OP0)eT7Z(aDUMQa@ zb{zTe5g|dDv;N~(mRJ^M?`2{YaZK~2{El|8BZO#+s5L3oNcJqDi#CUwQG9WIH0(?qzRwyfA;s7=rFQA%b%G=UGlO?-8G87#Mhc!;ifI)pG zx=#SvmfhuQwrq(nwpOSW{vb=z8U|vKG8d)DQ%z_AyhX;H&?R5Lj5%b6uBF4^cC*JB z(NL}2_Ek5^aiLbnkX8_}xUjZT6|}L^nb{^6tGrwfbU=AR24q9;l?jK_mpYXB8d?DX zuku!mWsZlu$JRGeb|{vB;9V*AWS^08KMFx)OO(5Pw7fuZ0;A=)+;XE%IeML!N*OxJ zWYX&LN+lar@^STzl}pB?QM5JdTGc5x0oIrX!NCUf4*`VjSY*Bro#l|DS^kgNz>9u<}BopyNK6Alx5Bu8O%M z*vT5PhIV3(SHjV;vKOB@#vmj|sv8 zKs9zJFXj`r@!w1AOxN^eQ{ZM2;jgeIlUJ*RZYuLfxqM8#zRFcA>4#d3IeJyXFt=pS zrL$LYYr8?ZuXH0Ryg~*^$-9wH!<332kv%~3=&BW?7Hg65!%XLO$~oCP5I*ZoN0@SC zG-t|k8kNRbHlra|+M}@y*wMA!TT`@sM;ZNf%{C1q(;-oPWX;~NtlH2Z*;^)LIrWR% z84WY|Jl0>WQpFu^=ip9nRKlK6mC^tu#TPrKKJq@^;R8yFM^MI#6PQDO;eOmXuOEM0 z_d{>g4|{U1{kU!*otwxgJuZPCF&8c_vY}yNX)%*ZAZ32y1^huPNajh4R)tH8nG}Lb zTHJg-O(GlD^64+!A|@Vr446*TrgZOSb=w9Sh=gUZV2pUdaGaNp5&vCHKB6dkkv`FS z73Cvv#lo`qj&~%ml_F1uCK`dRhU>9n;BS|BLNJfnzj}au!atUkMeSxYZ8ovPu?&hH zimjDbxtChE)e-H62Bnl9!!Qds^$!fkG^{k-j3Mn6P#Px#E0c@)KCCXIL#RBK_UgOc zM^iuN4tpjO4-m{SJH`cKl^|jv>q^o6t9`iXmR>vD2qF4nBz}~bxZRPsTDH}}5x6V7 z7Nt00)pEfJ=8d&Ux#6{jWs~7X7J=@y`a}FSLZkbZyR5kEH$?u@T4e{?!2uZ^jVV)9C8#9)h$n2n*o%L3ee>AVqZ|6?^`GJc=ih{2{kqE-O?Z^>>EgG<_(k@WZ}qsoQqTho zBYuVGe%Qa_Zs+~_s6;7cxK^ZE zu;}+&ma18bqB;krO>xgw*V>KD7r)JOwE>)kX*uDD2r0KU$QynszffBLN_8R( z2s&YvY->mbqR@tnql{- zX7CSFKmGt@=4d4$Mq11?IROElpo&biskYwmHEIV!NmWMMRZv;9z|=kgE5n{hz(kgQ zDonz$58z6;vkFbj*zUYZqQ_BlX$$HeiuA_R{Tp-rLjy}+T17UfI81hMDl2qToyrRP z6lqnF4fUz45MOmFYotCEkp=w}savZphsU`mKB6YI56>aB4CshXm`y2m4cW+{BJ%H9 ze<~7G#X!OQ7vYpnmg*pCbW2&u*yu@uc}SzwRHm? zUHlP*(92+TEX}m*IuG1IOC0H3^=E1EE@+pYg}z5v+m^8WdD3sfgL`J-H0&odyl|$? zO3o-;A8MYp^*g}Fe}mRO5vf zaQz7-9@g9z|Db^?hKoB{%UBd(F#u?z7_fvt-s^M!T{0v-d`3jaN6t%h^wO2+_zXz0 zKRvJRczkaf2nU}moOu(sG zkJ*+CKygoN%`zVaCF-?>{(AI)0EeS~+AcUI3I3@$_I=BdX{uW+SG_EsWNkqM0Fh#k z)hp^O(@j;to0N3y7W4}36QLf1gyQC?W9$W{gTJ~Syu7jWw#?*|rvOR3*-JK#Ktuz2 zfZGUJxJ;)DL}z-{=g`&fuono#OZEUDd_a^1YyN~zzjwZ|0Ub+%j@P* zxl7ZU|?Hxct)uzQWCP{c)uqj< z>MiS)CyFNJwoJYHg6fo=k!hg@eQ5H+E4>TE{g}KUkzQGhDT4<@eO|(aeklzgm*rd@ zWH*%pYMWEpT0qOO#|-CgQyA`9w{>lPl|5?5N3(jg#vZLfcr7W7P}4B4!uFADkvj^b zZzQU}%2@$EF-jYvI&~Qxrq$BHv&4TX4WLl4PXU6~RL-=6HlGq7PAIDevdZ5q_X{=@ zD5saW&P_h$T8tG#`PlM|EDaB#um~l}bvG$D_dDDsPqI0z_1N!39*O z79$6K7yI1^-B-0n4tpZ5KpfU9`kDB1VfyyB?p#d8XyEct+s6mD3 zskaPBC%HwNjygL~-(~a`+{yDGriXM*hskqb17Lzv1|XwwPx;nd5i?PR}JIm54pU0-#MFv3OH!!jbbG{81}u)}&6`A@tC@GN#lVGQH^L#x-Cl+JA) zN4(Uc792>T7V{GfcD2E6MZaO^EbP~k@1Y(>(yY%$u;~DXOqaMzO{`_AvhDta{5|Hd zgc8xq$_Y_+YCa?8Hf;TTRr$Cv7&$?p4PlyY$H=y}iP5n}e5hmCRv+8AM*8}eni~n# zU_Ag0EHT_4WAzY40u^@GD)7gV0cOus%OR_d0M|4+V>KI~2BgN!Fn{JwocSW=h7Yts z?A*9dnRNfBHwt>df3ivai%Kb5e=TcTBjz}>frE;kt4vx9^41Lhk>;Dh+a0KiYeFIH zvmOYora7a~lWT#MqDLTSAnU$1rEzaFw(Ry^7GX@%gRsl3W7Tp_{UQ|cg#`@0UpOzh z)JxMr?8#lCL!1#p7lJ;kj{pH>|CvP_%Py1K!p@pbW(dnpqHf5iM3~);zr%f^Re@R1 z76TTLsq~fc8)g%6z~2F?q$`cym&ESpWTnYo4N2CqpI2>EYY?w4M0)y`e4@e#_cRlF zANO0yePim8&wlB1d$)h>Lysn}kv~h1{^=WUeB{nU$3A*OkF-CzIrXg*cRccyhrf2< zVLcK%Y)<{?v!B1^tNXtG(MR-%X#uKHT=I~S6n*y4_oaRflfkBmh`YlDt~vrP%G zkv36^U3i2JGVj4dd(oBHaq)zmw@^hCh0?I=>tOfCJ4$H8HVxt?jEMK?>8+z>$GW1+ zn6}PxYJ!#XWPm-E1of$8dmqyt4#cX&$`O5 z4qESX>N~yEpRwZY4O$=d`6Hx{A!&Q^Fp!Q7jjSi{xdG|n2qYU>#|FYAPxtVrI@q{4 z*c7OfmlF=A$GtKpj|haYUHgeYE;uU|N5C*hgEcl+`BQ-p+AR|)ougkfgAdWXc#M3k_O56n@hM@cZviB}f zc3tJ2=Xu;$Ro$vOC6%Po!}7VuWvdEFmH;6ul4EIC<5y!Mnenigtjt=>TBL_5IWySp zq1|f{C_oqm1c;0iM8o`+*=RXGKfriG8WW1cb|Rs+56ky{@(lBP(XauVoK~A6Gif2>>xK=BaJf|R|1|n z0WUkFv&apEz>(9C*JSl@Ut3`=w3LKAq86+t z9asu4B+#Bk)4tc8{8ztZ2N<J=c1}BjjZft*V|1MZDKqy^kHkPk-u{Be&jN;$oJ^ z_vpw~kt>e2^Y2LWsyjx?h5r?LRsav~1<}+!`yNL10z1J~7jTW;tGrGyZR9*3 zE zNpx57mMGp8#lV}H;7vRBr~8sz_$jLg`YIwCd6_-X(tlnV-^?u`ax9~zoZ(!IZau3c zgNaT~tYHKIelSd= z-`K_?PzS_>HSgK!01@^%RY$khvX6#+L+NBRaubbP7nJ94k{}ElC*Q32_R_F^-#;{1 z|Cg%`>noUFwkBQO`L$34Pf;)9AT0e6vxlFAIl9m3g7gLwx#vF&>HC7WZ`z!Cx5Oz` zSzgvOQT+)OeMNr;c@=@lUY%96C+LH8NItF7G!cul(p>Oz_yr&2y*W4nrc{``->yxB z#aB@$EnwVk6e?~v=doY>jp<5fGH2(MNA3)6^Mg$^0LZ!ba7XT4BEI}%-AY;6??rjG z4N~TgEO#w!#HYUX@_pT28nlu<{vQAl>2WFI6>A~ns7m8Rd(30^U%$@4`(%x0z}STK zvtK{aWXKwDp?nI3V0n5V9#v`G1M6Y#dmR7|s&9%Z6g`s=l6_V{K=IX@q9daDGVJqv z{svRY$+Ge5xw6TJJG_Y8P4LcEk%n#^VtH(ae9eJ>F;AlPGlSJ>zhlPSi^R|TBovKS zvnNVPH?tC^XjUaJX}J0q6>Fu;s<_$#1F_i@t@%bFP&Hb z;cVV_MaUD>NG=NYv5OncOycJ^q)sjlyvj~nw{#QG1y zX}_5_-GtTf$<)VZ;NtP78zz}aC1}{@T)Wupi~`TX_#Q))nj{N~_SAM7ENNcWQj*N6 z+#^UFLRJG0;GhJxQ~;s#`*rLX$VM|AQv(R_zE%=5`7_+4+rpIYy z-(s>fu`=d_*MX#eokC-cN57p(O23myN|&4@vIf1ZNs_Dm+nS~H?b$D0g;^r)^i`Ur z=dWOv9-J@0;O%!uehTrjk^S3*)gU`8Vwhz%Kn%kYEc=7VBx{WV+@SE9=S`xsIPaRb z8bUocM=MO{4eG9N0@?M6-$Q7X3FbiDLoBsIBe=^@8o?Aq4Hb-Hp0ag+TB+W}0Fu0uVJbn{RPw_`GF5+LZ4XpY zq@et#T_JR>9w)W5rd9CDh)k&pUXEWK>rPzjHIN3M>|7>+WGea}!cI1Rc4Uz=5qb)B zRrfkob6`JGyNe+^GB(Ixig)vM@KwPA`82(6FcRZ1Ld5grfudnnZD{9y>6=7IORu4~ z(vy)meF#22W-Vtv=m#wT4#+uMi81yC9R-~-Mp|YvqwJT_NCYZVzv-bm0ckjw5_c{- zRK&I|fGyR0NjfwYw868&R=p@@1yy*g`C%>5JG!Oz>j8-WYHb*yq?% zfx86canb}mERxy_XP30G`}DC zq3Ww}ALv5m9YY(;N*gP*j&MGhuVy&4!%zdx;7~)5k`0~#3%cao2#0kcH zZ^605I>8uw^P&@s`E;mRuAzZ<_820AWJ6exsnHn7qDpBrO97BJE0%lq5tiF~WmE>I zYrPsYFPYLR)(oxSsgY69#X4M0^`%*w5QLVo^yf{pe38!|`t*18^AAa}eUZ-}{oHr; z^Y4GD&p&aMKL2~r%6FDj+RX7rr;FyT;tAp^2!xNnqk!_?Lx~LXlD4(pkZ^S>bnxsT z)dDdj?tAp-z?2xv@Eeu7F@3ZE=Z(kkHq3=xZI2S6UFh&P_J*`b4xttaCE%H7J}}n2 z_4>6P0&-ylUK+H3+>pi^9wFbGJOUkTNJdn}Yi*-OI9=p_mQ76i?mNg7tYvgOV|Hem zL^JAOA2BvYM34;8L`=z}ic$a{HyW6;;hIPADn5biVd5wQLX!5(PM(EhpHU5Y zv4#6FL?g}q3=@};k`N3&NZ(Chg?E{-j%!uEG#!m{^ta}aCot6dO<4lDyF{7al*Js_ z6143qlB2{8{DyX52=^2e`P#j#Je#Hlk1Y}t>6)H=6^onSbYs8iUF}{D+4?h%kU_{2 zC$+H|KZjquTh10QK1lvyK*rgx_L$F~T|DNKzq90+zY!CrAP~2au#G-j_^$4l#E5Bp zPgCV)ZuIqPN^1!ih(b`R4NPLFaIf<(qipQYYkPfkK9B|9!8o2{2Srt9K6I5;6a|as zfr1aVP+bY7_EPNpV~L1C>Le`~uIphQ z?xa&HEslh_QR<=7;%)GbdP5~)lvWW!`oTkVKtlTe#=`XilPR16jMt{Y)8F>z!;1Kr zHMcO05%6j4SW_5?ZHA?dQ=n<$^Ij3RuW6-8;p6*gy)dBf%J)pCEWc+zs_%XJYiaVj zch%&7gWYdMDBP+s(%I~%oB3AZ&&|5DIxd$hE)B&|XG+Dj&iC@>VQc}zygDpZKhK9P z7Gs7~J!2G&PZz5Sv+ zs0|Gb#gNlv4@}@pL@I_xKY9;Un%YsRSawcc-W=80KhCArX@@Q}T}M8zrhC>LUF?76 ziV?z{if`lW;wF)w+GxyKjl}TZj=%qpqTBCh!G0sU9k2UW`Eh?fil6-Ue7U=YCxfn^ zqQT5TPqeWoaeqUD*jmIR+(R^`EybU~8ado%zh%OnO|^Q)xB4qw28UcqWmYev7;IUk zKaW-En=wxZU7e>j_gi}0PS_xt=mC$Zq@KN?T5Z)LK5of}0|TUPPIWSJqT0Or^LnSx zHLc}eP|K}a-$3XzeQj~@RQFd?n`v9_IeJbslzQHFf5?wf_g@Vj%iSw)2N1ac!GYL( z3Kc>gLs)_wUFegE`+fGria;U~Bn#H7aQTxKpF&K(=E*Nsi)X66hTW@g@Gp3A^9}Oz z@CtpwVDx+gw2^@fyhA34iOGoYgnhvFY__&UV<1=J5f@s%E3Wz8WMWT=JA6u{%?J}u zt<3C5MxESdU+JsAWR<`!`wZQaBq8cn-x4ExxDRTpfm4JIQStm#iWoMWy5)Mm&wc3E z{YL;wKXqW6eQvdXbn(~xBOui02oh2C&xh((&!{_8EQD+IIrihK(yXr}c|b#7YQ4}; zPL?_t7sk)YGH^)YL___FA{QEQ+-%WFqGl$NLncd@=!89Os)^>`W)n-ptrDGVxF-!t z)g$o8FL^n;xB4UJ`=%6rK*w;HraiM|q)Lp7N6Mi-HLAl#B;pgBWB%=O_ULX4cGvGl z?YNN^2~~lx_Tv@%^4hDT3?VUn?>mY&gmfJFii-e z!TJ}nQ?`A1j4|0O?0i<6O`!;laWK82C=51yz@lxo2x3Z)g*{OF zh3kUr1i$(%!Y*gDioRoqxcTNaEabF+!u=L>gfwBr1{w8otJVh7d^ko3w&_OV@Tfs} z0~p}WA+HX&he`f2A>Z-9WI7jj_NmUvxD)9RIzQnpW_C7YC&5@ARda1r-%!BMJyCOf zSZvDXUaNj;n`R!kw6VN%X#vI%UR2_+I1Chcn;}57wunr=t}|Pa7WKD2@H3yc%y($@ z!34yeeCOJk<;ar?%BXES4k%=K zNcT6ew^5rw5 z4grKIhglxd)DsG)j`aC;gczv#&}bRiD-c2$8GjfVh~P&CTLBHO??mpC|9Z|gt@4hC zYy_4?`Jm1=(p%G=tinFvt*sc}+AX9okZ4^iX$6N{WRC|_Y>VZ=sp6r^u8gJ)m2VppgwNAnQ?>!G6skv#O~>Tos1Egp3fBGiae8$e@Z%BfKG**ZrSAnvGW%Q`S-9dxZ_6d1RWEJgHc{ym}dJuyxKyHU%ZnAb@V-Rw6d zE{JDaR!exfKBh00Qh+|DFM>5%5Yz-PYSd%^v3nB2cu_|d)4jA1D(=Nxs_C$bs&AQN z{9{pWbBr2cLFW~NL);O2v&70ZNhgx-IYT;pTAKkVdWIr91)1Jp&7Dl{ku(G0^B!!7 zAW@NiJt!g&DX%{l4=fbgiA62@9HO;8Cxg5`Pev>I?h2+`S*7=2QbD;WM_g0H!jQm$ z=UMq~sxz3w*Ha?-Cz7|32#d=Dos}9e^jjYr2p`+mS*C~85OZ+5=AM^X&XEty>2Q#W zJA;cBiViueK|N0W@?4Z11AV~If;edf=aSdm8KMqrjI^#L_?peX*vwb-!6KOsla~DGa!jlo` ziT#p)9Tx>{NHsz11`pkVUlB0@bxRpa!VO`~7pc@`d;5?|ZO$z4^^T(7*EX4^1B3-r zlm$d{A%@*e=#0#kf)#3Dw{2kNiHYSDR==4VX^7SDZTh{{elwI7d-eIfqx)OOObac; zI%sJLPyqTE;_z*YV#Gdqsu5g1Ry21`h`S7rQk8Ve~;))=2P**6^0bP;pXLN;v zzKIKK=pHV)GHteUNXT7WMwAVpm9Npx6%#ebxvao^Vj`sNL&^_I!y&xCURi)#pb$Kgz*0;UmKlWtuT?CeLY$5vP772C z^aymO0e2QveR)Uzrn0q8MT zpbNE?%ljqu4jE2_(YDV<;+QyOrFUSgk=`Mj%@TSCBilY-?+7DvJ6=NXK;{T)$50Qj z$Z9;bpYg^Ge+xd2L4g$cX)GN@RoDm`cj=N1}rLD>sv z2>bc2t|G0tnd}~B{PJo}iL>-YWEnL!a8c6&rHex0ZSk0*V5v%>=%(fXf}OBO6a@aD zAoR0#%?jY=B9FB7UOmTSC-9@<-9lQabCzfohk~?7$fb1UYo#m8>fqHP3L6g;gNCvQ z255Q`&zCv6YJvi~GFBE;BlVvhdi1~K=8~k;eUqD1-WO_lwSZy4e>J*@<8t9IFRE#o z&t|@+6;$$GO{>l*f~GYUb@no5^yRL$RfqbRi6CfO0h@%yTcTSogHNTlW$N!`a7yZL zsclWr&P!@r?W?bC1>M-RE#^aWHAJ@%i%V^b6s-@SFe=N(f0No4a+S0#TPi{Cdl}jm zgf3`X%>~+4bAh&HTTo2fB6Y0ry17u>!muZVZlZE}rehUFQ%&3Qk6(_qCBm&1U%s|Q zWCV+~)V9o+fwuM8h1%9NUi?_|BHC8{%C)T(j1)CKXj}ec3$?A4EViY!Eu0+K z5gRvFXH6p?Uq|(X|qEExf!->ROZs z{}0?lnn9VN-upd*JJ$pZY-wq$5{FHILl?uRWkSc)y36{2JP$Kb1nTP6_4t4=&;H$j zl8qoJWG@U1NX$#T2Q_hj{4=sGcn_{8&56kx(gzZ^K{PyZbH37x`gOK}4GY{lZNAol zoN}7yw6`4Abh(!jzKIRY1U&^uU;)G6&}sUSlOck&EE0tdx=xOtE3%3w2t$usxP;O= zpsX-Zyy=nq3A&Hz`i73hPx4I8)27XFA+*A8W*=;DB zvDvIm2T(U9Z{nJerMk8`8pm)4nKHAR*;IlVPIf;M5@UIj{j9T`quxd1vDDQ__ndvm zn9dGtyQsQ1D;_WjW^R7J)*>4s@+<1;9<;3;M1IT%6=51pTElF|)BWVuZ%#y8uf&y* ztnG|Qrt!@o@R?7c)Xc8&#Z41(M;@O#6?IiJVDj{<8qt+~b5TMWR$ksG(+?KP=-y5r@W*hA30HntRpN9L%+#3~K1U0L z1HLM@sSPl0=JOcuW-yvW$}H&{$9bqAdG=>Bxp&BlX-I45^aX1)0+0ojF)rSdVJ{-& zN=@%^t6p!2A}?^)n-p{lO`p!t1UFyY*_o_;94isE+gDb*GuoYOi}#Z0Uj}zHnh`(Q z=19p$AD?P>=i2-wqCz8@>k*r4?<~<=OQ#u;^CZl5D!ZNR2sYQjmto3=JQvb3Y_j}Z zS3x1BVrC*vkuhU;;kcHq2$3nFOtSY(z>y`+Lguu9uM9{9!&HPCuW+{V6~Q&%OLm7b zVJ;jJO!M6hx&kv8jN|*T)AI{^D~nd<_)DPEa`3y7OG*1pL6vi`mM=GP@vV$(z@2`S zL8fl4ykeC_QM42o$=Zm`PUJ*eIW3c+?6x}3OI7Gs%U4lN$Wk!tzEuPjBk9g)4;P5? zRxX$}vGodcm_s4MY0me|a$9BpY)QJWDNVU-iE7PzFc^^^j4YdEv}WaExLj!2JQ+i8 zq`5!%ax9xuDU1_6cuB@d`Bh?^`IR!xd_Lp+R>e4H+JB#nb4Di|e`ky{|3}L>wH{v! zGTIq*kz1|9Bt&v4I<13XmSCNt!s4B$A=1V?RT=6FM!!Hh%hm%#R8*2d6%z3BnCIF5 zPcTmo*ZK~aCkZsZE#^tSnJZm z`P`GJMnnyJMHDMAMklX~B#36nfD-(Rn8;zd1`*vOix(D=jffXkG%v=}K9@^6>2r_& zq!dg=w@B*q0(i$iIyC>0;+eJ}p4AAB)|tJ13M*6-zd64iW_%3T{?X@W=e3TkC?gHl zHKJJZ+T#}UI(07kVc0*t?<0Z&`w^L0q#FJO&7vJ%D+!a*Q6ilYaV_zpLP?d0(adDH z#~I`U*(`||rQgKt#W>7&dAG2LQ6SngLf@LQtJ|qSrkzMMLldFT>YxRZ0PZog6Po}6 zQq?OHe(TW3zK#X>Q$*Jyw~b^&t6ertyN>zG(ri$ zdCIg5#qZ!^ zfa@0|M)?I1(-BOVg4_IBX^W_Gk5hj2R*#oAYAirYCfZ#?QwL+orN}02 zMd5>7%#aVp@2)r}Is9NePcB`w<`go|s>uDS_;%LZ*RSrHyKptu+yS;{|6^TrS9!JJ zY~K3+@_K8q-dOHSuD8pTLk6sV=GSL8ibbAScA!dQwFU1Z?;A2_+(BI;8TW93a@q+!3Ms7Bn-fga*g3{wSEnhtX*HA5S1OtV8+ghbPlLQ_VL(UWT>p z^+KEva~MiYOx_;<&(8gkp{|yuQLN!`Bp7yAqcFPt78*VbPK1p|M`DYaxs9mif4(#N zYnsd1EHaaD9d>`M)N5q+(ESD7la6xO9Z0;PNU0ZNXo<=$>8UoJ%P1A>$bRpDrI~4S z>@!)HekvC4Bm1J)h=?r-exO7QuCMC{qHl@AY=G^ctW$-7u($6Hcp8`2c3S1A7haVT z=&qvh--(%=VlAEfZ6Y9*&QIIW<2>FHy?$4`%o9aq3m77uC7purCn^7`ewO|!>t~O@ zs<)q^j%WM=i~7mVTJ;muQGX_7l;y*in2T2k5c7Jna#2r)uVPPNV(N({OS-GLQ9VKU z!md(mS=5sdQrQEO>?-yIG*M56JWST9CkROhBgOhfJz2j9Cec;w32BhjlR@8;Yt<7F z%iSny<)n!VNp*e7WE{#iai3i}j^#tMG?VK(+^m73{*|Df6BUiB}x$ntp-;-CX zCy*F-%XG1AQBQ7O)RSdbu_xocCmr9D*Qh6uT}N`8V*8@5>{-;64%QGVmjh75TjSDAU-OB~l@vU4?B;Ug2H9Mm>a~a>B`~a7Z zLc62<)jOkmxS-gupCu=J<1Q|*+8N!!h2VqNav>B!v%PU=bTb#ks2yAgKG?=(=gw#= z7h>)=ak2P>D8FuJG|n#^k~tS*$k%bXerGhsh3M{4E;z6$uH2!1x@%$QWz9D?d(KN5WPQfQTLdkw_cQyAJ@M9w@tt zwh?z9;Nj5&03K;GdiR0(-ED@Vwz8*G-#}s48w!I_BzX4$!_)(Y87XX``yhB}ZEF(l zm+k{Vs5bzi8F9J~0Jt6i@W^iyDo4)r=mFDX;RW3{m`puTERMwC?gOS?514vHZn^Ieo*j6wKAsIBrmxg0wLW zo3I}SR-y#cnmK&IZO$=4tnponvOZ3%R%a6LB9lBi>}D|SkZXHhcP^ze(G9!MA(Wi5 zL+J(Tsym&%F86@2B?K}mnoiiu;|r;B8``-5Y{ND;o<9k&bm0xVXV^RPGySv+CO@Mt zo=gRlQ!+H6B?TMvuzP}H1$_o*Hudf9F}fibJd zGX%3pZ|HN6ed5U|`)Y$7I~eNX(AR6s3RwLBN7C|#Mqzu7=%*}6!)}grp_9JbUU}m9 zk}w_(;~GUN2&A;ay-r2IA?uF3KuEw(pkt~?GQDj6oQGCNd8(82T`4US>+tna5;m`_BXV}jk(E-53`5W2~1bdTthfsVi6VhX_OlZ=q ziD`b#=4k!SXg%fEY>C(Hir4AR+QMz1JDkRxi|uBTUGa@v*@Cl)9>$FO@Ej^7=BZMf zvn_MQE9fxJ;El3AzQO@)w=VlbbEI9|DCguva$zI+0Ie2?bZB?Z{<4YW(nk1!?&;ov z-2_ye!~W+E&cSVP9&fV5r$#~fwP!zNm-s>zKq>F`g^f3*m#R0CX3Xof{$%{r#Pt+&;5my0c3o z9_{=SU24PzrJJMciknc)NmSc;t$tpkyIXa)PItHIj_iN;b#B+)8r|KYyVbh8Q+H#! z`=`2Fue;arso&f%UEJlG)1B9+W>qNRZ3M+^xb6h2WVw3}2cd3{`iL6%CQ}Ym(%GlP z4QOq!0f{rrMd2yWU$--=Q@}RC{GYDfX|L%1PVTX=TKOH^4}|;Mxo`8@ZP_Q4cq4I9 zek(;}q|RUK)&75?@A+xph$Mx^98Hnu23Bk<5}FGiRtXGP!CWA8cNpWuaX&M zP5w$Pur>Kc#;rBB1}f6gX8GBgxk32I8kytm+?rflF+t16(gYwVZY3AT>Rg}aC40Ij z=fBO-KeKVLP^mHd?k}NAb7a9pk}F@6EWX^2V$CtR^6TOJKyXz zULo^G#X8v4BgRNh5FPE%xq<6rT!|rePo>kH4%ZW0U(FR(*IC8&IiAymyTI?)a6Qg- zyUr}3dv+n~pnmyTs z-JiZpZ~*{hKKBy2CRm$g^$p^H*kHRuDuq?TE$H#3;STt?zJ&D7 zLN~Wll9=61>bS0)7-D5mLp408uub@i;E@OovoF^OxdS(?`ewbDXv7$T4ezW{ah-)@ z@0l)EcO}E_hwa_sTKAU_rA94QJ}e_>*SbHUq@KiaESh$$`(20`u?VYyYjLe_f3>{# z<9U-#UCV=U>kwLK)8)cV_5dke7usi403E6+bf79g{IPwlRe@#r!tGKOaC(ewYOM+o zFRUMX_OnKj6^LI1`j+8qHA!*|S|U$iKR6`{Lp7seES+wNmdj}l$$2YNgA6?rQwbS9 z0rALikht@l{`P++erjPGcG8tTqqI#Gd>>(5tfsGLSy0)@zCxbuQKskY{s7K;BHU2I1Qe7ic2%QQeW)0h%h+lBt9u=P9 zlgq+7HL74h@C3rJ(OB?Pj8zokw8lK#gIM4WB>}T=osT%w@Wg$HMYKzcXhe{zaWR#j zSz0R$w^h1Uzzd(&S`nng-7Zluq6PTVJQJd0*9u0F7h5(jss#QG+c;+7yv{D?C?xE zag$Q{6SvdzZTQJt%v*3xcaV-V?nCPTXLNR-QL6KhJV=!%YWVpAyaH9jEm#$p2Dvo= ztV^K+%`&^sMDmt}^jN?)I*0BmD(QI~eK#rz#pPDy`6eUI?f_8N;7R2W2I)=!`(6T! zgss^qjSeNIGJ337vwf|@D=F61eLACR1b=M>| zOG2ue$=8F+GT`|_)_v1$c|G4~x*LfGlQFRAcHW7c+C-#9c1)uwBM~E z8dpn>WzZ#C*d}*C9knMkVNZ*w9E9756=o0ywaL0xG;KWO(_se$39Pl`K&F{EU+Zr1 zi;Y#b!?*4p(IQiGZnj!yp45s0f&4|Fd(eTB?yUv=B^W_*jqcGj=uq~~dR_Gp3RSLj z)+6w)(M>kMxa0cVk8)_0plXbuSPP8Q75!@EYjt#y4kP1Fl{3ZI{wC2WNh(RcUJNtI zua(Iff-IADl7ko9xWJHhXm0mtOJ@1 zU>EL?4MT%v;rkzJj6jR^K*WO9x^+=8g z4Qn~phzF$CraI!8C9GV=pfvxMmXrFv$wxTd!{q~@&4}TaRoRNbhPf1u?inAVJRkMV zAVxuN#jI6&^R!WU$vL9J28SQFQJ6|Ii|&A^~wc81-{-R;m%jgq~U4Nh}`k{2@PsS zu~%$hVXqNC?}#bN%r`E)c-qd@6G9>!(CfBB zu-_a5kQh_=C}QYfDOs{!m*=v`Bxe(Ek^zJ2?i{8*uQiyB2Gdbb0bCcwTA=MU>d=Ln z+^*hk(_YeUa{+^l>Fc@45WI3Ct`KWd({CD{A;(Gq@!Maa#Jf7B=+2=SWypa0}IttxVR(9m$nFp~1#u12`NVaCmf*ywl^_iHt zMLy=yGo=FWtHDfc)ZxQ$?{}*yF?)ZfmqoF9`r}(!(3|HBFB!x$G5s;rzXP(FSY)IQ zTNLa~C!PgGrsj~sOpNZ=-w4LrdUt`fi}0T*Zt`@DX%17%egrmOLFsVe<&M?*ravNI?y_R5MU#-{`p1Y{|dQUptHAD zLn!cGXmJujWAr2h5tLRw#$-~RR>!C+SAw8m$<9G6+GfU;%nz9p zIL$T8?(As{&U_W*7YiVV@Ws#4<*%~`n_C$gsmb*&h!C*Fa`PU^j?B^z2!;m9Z6(D{ z+>ct%S&EWnm5I|Zk*i2=D?2%RDi+wu z6{9RaT#o^qMYRpAZ;~HUW8xr6U{)aH+xlskp*k=*KefmL6*58fWjk{-0w6rtj_8K= zvDVstUlUF9qg9{?g%n)e)mUUkgmu|pD3fZwLQ`dA7(|i`att(wWP^G<@t=MIl#pqz zEbv&H&I<9ob&e2~60uJ5{tDV*+Ws;HB@EF-h2h88zslGQ@2b3f^(ARg{MP5xy8qlV43Yck{9#r3CWh^{2`0g17)X#8 zEfOzUc(b%0Tw!9Mw~|Q%mbPh)UHY{j@aJJ)f27U!t6SZH@=1y`jAVY5CM z+u3dTa?S6!$5U4Q&3EV5f`b@9x@A`GB^YmRi3dILy}_FtH+wI|3$ouxBtoBb2R_0K zJ&JFD#`HDlk%($T)Em0B9}oy+S{@1NLuVym)&7H?P{Zuo^7Ub9hknyG)g^q61+mjyy2E^yr$t?;abdl{_}>D@Dj0o0Geohb6;B_eMM zy}>K?9M8-%w?x0YeNeaG<*=neKpy@aZ`897^^?Ha$(-MGAMY(ntmt3$7Nu77$=)LC zn>*H1WOW`d3rP7>ue*j7e!eUmjMq3R^iB73y+x$UrRZdDQJ)n(*;_3H52NEgHCR;bSjHVYdNRkb2y{0hGl%#Wfd3; zU2G_uHJ$!=UYkyRZ>*ZmJ^S6sYC6>+;J;*l#7)1`E*W#i6colM(fe{^c*EFr9Z*p#z^c7PEE zeYyOiV34R*5HU{3HcO26NK7C69316#!6Zl(+aU|R&Qlh3%#9pF&Hrzs%+~LvIyW%C za}(XpUDdu#_`cC5%4j(SegdRf3838>c4sLPDKMxMdwe}a?A+f5q&(h*h=iVe9SF)~ z$t`NL^^~^An{p?VGku`xC9USv`@vJK@n&uqx-)tkx8OP+Wk^m_D}P5IOie8a1d~cI zw2H^6_$Dfzg8)ucHE}vqb*`)`p{(h`n&83Mban`iuZ1k41FJh4!|NOFSu8`cVo4NQ z=jNm0}lkx5Q=v>>jUQ#e?ff=8GUj?e}J2z^;;Lu^R% z_4X&z5^2+HbVkRGpt*1RW+{`X&g+9krK@GD{X)!^^O-f==)9z^xr9fFtX@PaL zinhcrezrNPL9z(M7z!*BD4eEBjlv`Gy&UUqQSekf726aBdy+d(%kBnu`2CFh(|uU= zXSs8$-N~|mww|#Gj1*5-f?biF%rXtmAL|R0t$73;-`c$WnZ*S6m#`}FvciOXL;M=U&09!-muQ+mu+ z_F;WUymSLssC=>6TGDcYn;FxcrF2JC3R^1n@bp+^wWRK3a+p&r#8k;Omv~G0!KC;; zjRY$gtYhIPFVM`&y!)|B)`jk8X4I9XKXbnPOqf-e9iORFc?KH0Qj8W$GtlPOhU(X0 zer+!0L$k%M3oKbXlIF4GTq8;e>Pa8;w_@ZNT>+iEvn(;3CHTKe>Gn9UwGZe4jH1d=cjp;OQhy@K1{Z8NSdgLV!L!LuHMA0=B0wJf$| z(=^OlYEU;U#MLw%Skv4K=5YhwD_w2x+M#+JMTw7MW&wj?l~0^ZomNo!|A37ZSgf#w zp~yW!f#hRhgcTr8P|y|4)J4EkTGGZ60>tp?@;Oy76; zW_qXcMVcY#&n8VBIIy5KMGASy$jpM`*fSLk$(Qrm&Goyd`&;MDgSo}K(_mPEa3QmY z$#+I*{4(UD(#|YgwijvTDz{f~695N*4uH#7KtH|0+}got!tUfToDu4|O~$E;AOsIR zcu|3xz8dCK1z`7{3WBVTQa-j>u~n-nDVGpq(3b_T@AGlMVWH6~Y9*77C+;eA2@=vX z3R|=grfNyz?TD1+qbvwyB2o8%kGeN8uX`r)lth7dImGujZJQ`EkSq$7P>bR((Zn-H zRtJb8HnTd!sIUQ3=%H|y0JPPbpn1_Ou)z}qt}q?Gm0(^#MwEF$X0xtvV>MJza&1*c z5L15>nN((DGDShO84NDZn*lt6->+DVrlK-O_)_ zi%?hbVixR(S2pNs+m_mXm+Up^5i^#W?&%F|odWemWFo9`ibQLyAJ#c`I_o_)aL?<~ zNY$O57Qf^1nP9|Xs8mrkR8y|K0&b^rHnUC(Evan;mkH- zneeRrBn+;Sp*JBe6YI|DUp_*rr~ls(L~LRLR7z?5>cM+{>sZkKPMB-sh($v^T1dV& zun9~O@s|LT$*?7uQWgjal?FO1!I%Yr;tSr@dDS7rS?w_*yFm%P!&c&MX&`1npi3iC z&E^P}L-Bf6F>_MQN)Z8!Eky)NB4EOWO=gfGdMdEWkT=Zj@1cawW2>={@7>S01pl?b zYS9|F1ZIUbaDc-q0O*Rn_j~I!`3|b(0KfL&*W}w&ppmm1x@Pk6BUnMY-+GMCuMN!H z3$`YhRwb}G_KEZwzC#BdMr-ntTY6BptkO&92uBkcHZYK^GXsZ3?;%3vtE(2-+eq(@ zq@@VKh%A~7Nf)LoNf{tMqAP(!M|2(889gnr`J*N~GEDp0K{5x-5g6i!>W*tx6x|_} zWSLjV8!nfsfM6uGAUlL~x6DEeFdvuf`?CDAaTPfNWTbZsBT_IiPx5ydBQLxt;QQ=1 z=*f+7JgD#?&`)M8ncEW?TIZRuBnK&;$ejq0UXYyy;RFq7L4zJuEZ|D<#KMgRVQjDs z_Uy<)cL262Sm#b#6IExLtT^@Vu7l>b_97)%D2e3M?O@|s^lF^a@EZxznDV4lyhid{c$t`AD72Pq*IF z*a&v=5sZ)?`Z4IRL{~jiUk7CnEKAf87_9oFK-EJeF)cM*WM1Dp78RxCM$AU`(EvCQ zYrYvcp`_cHo-x4{HJ|}AxY*2?4>>9W;Eq_}n1a5T85V~=z6w`$#DNQ^ z!pyj*fsmVUGcpAlsj|5RA_|+B2a#kEL`>wUAmT-imkkl}wi=AYn9qKsD6Uy<&;9P=Y8P)-rp4i|ZwVp}Ljogyu_u z1?;V6B5mii7t8C44`V~OuV|wAp_tW|@7GSke6?I5V_eYmGcJO%++J+)w=mFKIuVr* zGg0zPN+p5aL&ryT)e<1^EKlxVcY-EgTX&hTfrrasWTI^V%@y;souZ#=NFs^y3 z=(cv)Lp_prSb?jiv#&{k)CL?V46zMxJxsv^YDa)+u^Bqx;YyFW#|Q zlWuqFagy4ezjxj_n0hk}VWi98wuSl1AynG2zA5(gPxPW;O)|8m)LDY24 z+e8Z$HmUPbk_TX%eljsDy@qxi;A-Qw%Et80puL65zT#LfIxmW5;w zuJTS9bnDpRp%2Yya*EygZr5Vs8mwB21izMkX@*vmGo;!i2Z^Q!G&?T0s4up$<_JP- z^6NyKOzhVFwA?a7^D(wbpk#lIS?sAEEv`=DCU`Bz0}X-AI0c`Tca|3w3AR0ZELC~V z;nXbR_2T=v%w4wGLpys#Blw*N;w!RuYtsn8(jFf`xK;1A$X>vu-C38vhVDMCN%^x- zkJuy2yR6kLsPPBF*vY=gbMH&kmIiqyjBYx6xvdT5TrFvoRJP zw1=N#C_fy<6EQ3w1i#Wl6(N8R16R$gBE=x|o~yD4NE|Br{o0j{JHK|`plOFe>s4!7 zWFK%~tZKk}h*pxW35v)X2d&u# zgcy~cVB9b^LAG1%&qF~J_0YT-78%+=+$PgZX!2^IiF8{3DsAVqnNMfGq&-nYzZi1a z2HQp#xf(h3_c6anJfaT&sot@0eV--Q%h%c8BKGOiP;H@%@ob~C9%tY*d=q+8;!LZE z3}-N@;w2Fnz!^-%ZWNq>5|HKvq?fMI^f)6mke)NdO$fS4OXJz3@$~rPjl%oQI)$JG zqx*Mwye5)8egWAS_vp1gFbTv+lQYoZir=Cgz@$xB zprND6?oqz1R2VauVIN76*ag%Cr))pgM zSVaF97J&)%a!)g9Ro*K}Q5)qf4GKbGNQ5E*-qN6ezabHdFM_tf)>koQHZiINPr@d$ zC=Ck21SnR`jMAXYOM)WSS^mR0(=7cm%Ve2_6)Gb&B0~*CBk#>*%Gprj!w|_bkX47K zd6SSm0mI5I+;#UM*s3h65-k?K9{TiRuYaU`9T4`ue)$i6xO@W$_r9V2Ucm=HP`=K3 zE2`m=_{Va)M0ueFR1UA`9eB|Tk{eX5j2OH@)rc7nO9`DCms34N*BmoUFciWX>1Kn~ zIbw%_Pg(T@buAr~WL$gk(!nnoOld=ie&p|-)b#7^8NK~EG62Ac*YwK!YfPjb2rF@v z<>c4x8YKlUqU=vmXtIx+7(c3&wnjW^PI^E-S}Ilpl%hC7XgG}eWDIp2k|z)}9Fm35 zSLee~rDY6RhNU5?d0w*jXIqDchr|PF$ZYIbmCUxn=g?Z=b7-x|Ndu>+Nc}5$y3$Mi zE4|dea;hu!57FV`m2^jPSEt1*k|FDQM-+`+$PyRrA{BwaPeP})9*L-~;{!!RLSE6-NkJ4CaQ3M27mV1v@wFt1~0FcgzDD%g$ zVm3!zYTV2uEYVHkGe*mtWMbP98BT)d1ME@M{AQmfRAe+_54mm2Sgl7{@1vx>Jt7j+ z4eX3YO=cgR&VC~;C40ZAzTw`vSCP_umY(qC z-~4AFF(XF&XK-$C{xen*j+}XAa`I>b$te}_(6T7Paqd7)vSP36g3QsE%F|12fLmmXSP0zEe?ty`Qa|ocJ#8% zS6ADymoxwJC@%vmc}zQs30YFx!KaAyn`31&ZKord*s?g@K&OPLg~o5{4(PcGMAy6& z*MV}KjogE~#X9sI3M{LfxCGx~A(5&M+}udH1xQ)sdq4su$0luEK!P>GRFGhekU(bx zDr=qah{?2PAi)|TLC-U&OF5-$ObGG6^HmZq*7zT$B&`#LS%vw}Ta?zQQT36}Y|MTX z4ya}pyoR#0@HJDGR(a$>s=uRH<=^z8?!j5Hu0gCXPcKEk>v&V*nyBUx#K%ZDJQ9BCyy81N3TBPr@lvowOgR!22>z zw@Id((~Aii_$tLIj6ac2T+6Lc#Hj=cmJ1M3?CA~=WACFb_2f!Ju}vK}Ga(v&cPNs< z6U~-1Zx1n^w~GJ{?g{P?1}}iNeNv!SqF(`+p56gS4PPrQjFoj6Kxw4LPZE%8F^Ij~ zeVKRZ^5Q3aA0At(X{_uqD4|UkSSsO1kqzsDgeU?h_9B`D2j&DftfAS*aVhRW211M#sI@$4re|LDo9+eE%^Ig+HlpZod=Oaew zTTR6`!LG_cOyOf&enfPnkR8jCVAGXxpp*T2s!h7%Yz#4L6xb3GIv9W!5(I54Z(}dS<%X*b&rL zmaG<+bPQH#gWw=fz$!rMg>w~ zdjPrK75V~F^$TE{XIn&b@dv$1Yk3}FYy(nhu@Xt@)Fu`#h?7L+>3X{IXbdT=&ID0R z$%a~bj#gaMxjtQG=@`m~CKEDF5JG1%EC}WoJP0<%v-CkFqZqRRh0c#5mQ@1(7)-0u zbjDmEba-XfDm) z?gZDV{HEl%ep7xdTxYpb^4xB6xty#cL)6@CeYz8Sfh%85pRp5MyWa`JZ@CZif+>iY zN)u(dMZ~BxMI;cF%%Z%)h~{$i8J)64A--nj1dRA?UYQm3;2qWCMcksT?6V<7s!6E& zQ_H^I@}4ppJ`__q4!-_pe@?p4J1|So-hnvRv*)FhWWP8dVH8I3S(Tlm3}T;6@&6AR z(FzSbS2cjE^q{K#JZ--T=_`_BK>Ju}7EIip+yjfGNwut}Wfz`b)WXTof=C{(@wRWJ zdU-$&7YUK-S8%?dYtU`?Ld0oD*>5y>_7Y>Y-q>i%9 zGC5`-dyag@tOY|(gy__TW`=4aM{ZC) zwm3}_)|2Q>$HFed9Uu31fJEn;%Zo&II7C}BK5zk9B$Fd>P4cSwt@WldJOP8Uz@7XvMl$UdJIg_kc&i|T)`w1|252SkgO=#6Mm zeQ8>R1b(lUzi3e=TGS6MYFOPXqeYo$kto4JS_H}(E$Z*mqW+2&)dMYp`t0ZPkfdoy zQokFSH5yQMJEvmmfS|o%OE%FHa_d$zVMvDee7HaPNZpoH4 zcX4+qy&?~h^=kBLJ`5QjnnCV!3u3)~rP0rEyE!_u0o!ID z>Dy`GGz~O;`%o#hPo7_yHWk=&`!>j&^sU7O`3J< zAm+olAzsEZa8@r;{FU7~Ctr}UZMTHe@1e6*QiT}WOu*!QlF{sJj4iQFueh~imS`&} z;_UQ*p2s@bVvh8kjkk-Ryh5pjIl5LSYN*B_z8E`kBl||b7tXbH!VdZ1@1gnAa)7a1 z*hu+lHb`pv4$f6-2`y46xt3ExBvE7TFkoEbr4yr+KhL=#`m&D9h_Zj*gbjcIgXP5Q zRZa`(ef8nfhz)YisnCpL*4_gBzfWB_%*I-%x?5Xe^QGPAMh$5Lgufc7A{n`09E2To#Dsks9{UOrHj zaf(g(R2=#QBk)~Z)Vs~mr(Ok>1Pa#6N9iR8_gKHJXQ9`Z?VAh(9xGwW z<=5RavaN((Np%i=R^TXgRwyOn#8^>&COXdp&q zmr%v}g%Bku&-8(VVMjG{!7osGsKj1F#N$J(^*&ec&_AX}#*(JZR)K+pG@SRjsg&^vR6#rLCvr`h*lH46E^7Inx*+9LD_IA_Jg=fHqa$KxhxQl!Jn0vZR%M^&Om(O^sMgPj10Cwm`<3W7jp#=|fa^U3 zt=}DkU-ZK^-6bO&{q86Q#@--d{etU}Cf9zmWIUqKS)G*Q&(6ULI>^gMnvgw5PMp3< zp2sGm?@?H^}+3%sDgotUMh2JXZrgL^kKkUdPspb4F*UL8_({ z6k_VhdRXfud|^x$V#}_vEFaTXa35q};IK~uoj(VUW-U_rK$GK}Z)F>5i-a!AvX8_v zAtg|^mAQHPI?L&1Tl`Y5A0`-v^LSizdxx~2xB3RO9*?$fy`Ll{*dp<1^%f7(+zO0B z%d?-i?(2I^TB9ucfKD4rcz|7rF>=t+2%5-Yj&;iZs#YWzH_R-D0ZZ^76-*LcYQ?yp z8&zjS%W34-&5dZS%lW6qJIk%Ts)8+`K{bG}yu};>bi$c+Oryabh*%Yw4VlH>`EF(J z*LH=A2HyisQLP5CiFl4V_-Q9+HVtOqBs~yS9u*KYldbG-T{79@$Wz_o4s5JJ3v9uO z#kR6jeZK0!8m2VxQFM7$-;RYOx@?(0^zLzco8E0)Yn%)wXb zoh*IN;h|_{|FO;&4FmDWTLalSF%L9TGt79C5lh zpkw#K>Leg$GI@&pmd6tC1li$it#^UysB-F`s}UVwosj#mY#FmK5TQLCUVe-y9Zs=< zwI(3us?AZq28!igHOyy%ncJFZFG>K@ zu51CqQhZSPP_rCG!?x`XxC717bWDW*Wb%B&0v+t@ifgc!{nvd!mZ6P-g~rXRP=paF zOiA9XW3tIGWGmL0?hLY_4MOmWf$UPhreEI*l!u#wKUDU@Mxa~wJnPbk zSj5GRuzBm*8Z0b|De@95_XI$j?8#pw%pS4M$U2<;VO_RN zv>49pxa{k*^+m6XY#se7!@r5wK7!=#9@ej8K%@l5%k7c6fqQ^1=?=fi0cl6urnC3! ziZ6s4CP)&IDxfy-m#o?)NCb6CZZ4e&$Q+Z&wjlI#l3}MV_E{xzV8d+o=1nV7q$4;D|P` z673)I{x`nv&Rf|*%2;`(BvCq<%%mv1$j_pV4J175fdu#eAe1hlD6}ZSz6wB#vuL{X*V~^1dxaD#6{Fzp$(Qy+zn|rvZL)mi2UI1UiF`gX;#^eJ5XhTORrsFU9CC-PY zBTj_(Q_D}FwbmgL)WcboeM`#C!A;^vwJq@@@vc~3KV>M%A(sL#FV@@{E1B^=ODn-F zQIYqW!-6dZSGcQne{$5XPmkMp$~=&8pfXa(IiCPA2ch4@*cwgQ9DO>4jkER-%caHj zNZh$wE#j{sgb6(X?$y~Rh45I~5iNU;Bd8$(K+5w?qf542_As7BU}QOX7!tAR#;c=H z2i*9*NN(V|&Z?5H7U@J;K|5f$Ur)AW4g@S#brNLxmz$ZZz7)ZoB~4#EL`E3GAQ zvSvP%onu9b;OqX6Fq$z7TUB8lbvfjbd7z5T2Y-A{JZuF>BIeT7YS=1&FoG>MK+on0vUEVB%}t8QA1iT9%*gDHSZQBz!7wQ-YvWzFDRPzBrs(Q*|X?aI(6AD=HaZ>$e8Xxh~kQ}vXAjd)Mf&U9>2g0@`KAAF>nkPe~9t|_p>b!x%$2MtZ zNbXwA49u%wb^~4m6WtRJC*p?P-OrZ1r-t!({?)Kyyk={`!L_i_^59ye%DnNqwVi(E zign6Duw0q_B6Q|P&C$;QHECgqXi=le3Lc2bhyabmCM^Vb_5)U#{%!SFfCOi?fIx69 zAae^dz#FwG_rgUuT{duj0b|d8 z{vN$?9vgV%Mx83lbZn01QY3%a`$}ya`zzT~Skh)w5=*b$@7u3hzev3WwyEc=C|IT# z40Lj5bP4l`Ru&ejlfP`?mbI z#7ChaPX|))2&(m2EmaNOmTGpCw+(%$X1E8cJwY|$pK^fdi<=`(N|2dMluW*yV30a$ zX!Z1lE?IiSN)R7PLM6;Sy}<+C9ay2SvQJn5!;+L2V9v<7_ZPT{MRMMMSJ9 zSY$H}Q(%;gJ32ACJ^BmXV$Nc~9;zDXZp=bbK7^(t^f35d%6ZPGsBCG&vG6mZz{f|1Y<- z*DGYm&e$tt5KPo6IO>lycd$1WCW}wMQyLQwM{gu2fjj5fG(ULKoGV5paA+RAzyTL| zae<=}E_wtGORs8_c7edb+NU`$a7f0e1P&w-;BQbDfvyCOQk>}T6*!PC&#Kp7S19#z zblMC0Rf!&iSsgVYDu^CRb>n3Y5g%z#;nZwI@^NfQ<=69ew`Bj9_K%i$cybIP6|{)2VU$FUy)mmlt^1Os0637s+50Rd58o*x%dVs-C> za8c%Fu2*fekf49S?$OIOAky|Hdt|1~(Nv(g+;vQ|)>1w)1~YUG<4eK}m0cPy5IhwF zif)4ek6nE+guCAh3o@mB%%Vo7iH58v4$`wZ`kk@0w2bdIvNsyE2NoW#QB61J zbgC<7*E2zqf{hbAlXfEG)_^$iVZw-b_DGZ*V3XGOJ_U?vuT?`eQWw9DUU8f@pW+jI z`0N;sS_k-)OY8|c_eHX8U;t4)iW!OTJFz-Qs@ z4F>4lrEX4?)tY=f-x3JqILM52y(QpuLVq>osEF`ScrnqvF_IIrqW!Azlq?uB$x@4M zFhe@_oCIpYwns(6ZCd!aHN&m!GYz2C%ARO)i4_qV!-NBl#V}8PS0`@7I`|%Y0^x)d z6Hxe#)OasHkfPs@@gl~{PiJgjbe$4EK7*)KMr{`hK9+I2ligSjvVl&Vb8@=WNHKQ} zmd^7=QSOhhL0{S(4mk5vJn&<_Jw+P0JViW}_sEz+*Hgs#3})rgm!BS70QDPt zp+1=3xD?bCll{_A$F#H%>h+8uO-QK_-oiOC27>R(S1BRNq^InU(AA{bcqPiqHa1sv zKUejaJ6A*1ToFm4DVjf5-e@&%t{_=2GEWFjFt)I4Fl$G(-ho+ z-6ZJzGg$DCVST_iElrol2Y0jh*I|8N!Z;rUUnCfoqt}9pM$Qm%u*}J^(5z5Wm@$c; z(YqiKtFcZT+Kp1!R;-P!&FnDV3W$$cEUY7!HoDXLzMWqd)^GL;5{nKKmSQ)@F#y=j zSt6E?N|u3SUb-cCD9(bm$8YX>Jkn$QsMh?rE&1`wu6VCN;RK{re7uq;Y#lR@pT*Jm zwr;meT%`ox07%OX(8EL_JjM&C2PPu)*k0Zy)61KoFu=xI_Li4{JjLv!_YPw>8IM@+ zeSp!^Ax+F=-lz2p=1o?_Nho6FrbbSxNww?2Kft{$@N2UF+{&-XzB!Oz;|1(tWYDme zMR^m4^Wn+l6iuH_^I@snoyhCTB2~lgw5$tKl+)y0zMTCtE^-Gh&Pl!=sYgX0{Zntj z5UId)%gsIfWaNHDCBq!`q#sZJ7|eMNlUUIwIczR1;A*757kR>*qMbp?#$lUtayw2s zE$cC3bsY+tLPohYLLs>UjzUEI$Lau!HQ6p$uWjp$OjAfbh?{8cEMk5p4+t(DvlHuG zBwuDG%Y11)Tn{+uSszS_k;3(5)rT=ivJdD-vagP_(KYB5-0xNwe( zXGa>8L9Y+>XgYhkA56bk-jM%Ct6n4_`&gSR65vJsW<&U2G`OBXce9&gETrtKtOzOU zOcH}G6?MI#?s?G;FsiFs@JZe`BI~;rP+6cKYDmfhc1ZQdG#G!wvQdAe=Bq!7(YMwy z(Wo1iAlBcU4*eNsB??!SB@>LaRWVzu)_^;1B}cj?S`~-oMX5n5Kxn4JD9Zv7K*b3) zf>AJq(4`u4Un004L+BEq3pOac9#KosMj>PMt`#L@ek5Z{L$jR?{->of$H^iYQsfeX z;o=UEfSzbp69bgD3v+K91r)VN<9OLomBBk1id8o?ETS(gC?a4z)%BeOT{YkO<7E)t zwcUA$u?`~v{@Ue@tWE#bRP3E|zD2c1P7}#lIAukjVt44T=2-i1ZaM1LQ2_bc#A}i- zMaXogaPJAOq>_1r>fY_G#SX5RaxXcT)rnN$Sq>PBW8PDR@~_aC;Hsgd&Vh`8hQ4i% zBDaxKfNOD0U9z7-eOA+cJ!es|ND{Y<3@ajC35#H4FWsNQRGIG4DKuhVdNKP-OCO+w z(fjw9C$%#C8v3K!-Q?O=+`={u_Q{w^{34 zVl5VX)q49K#lC#+_oL^C@i8!PRmPta?DHmk$!!$sLYU9%$Fm;?e&T{m>Wma~@ls}N z-&Fh#46}ytLOx@+LW))q0})!)c7w3C(Ez*BUf`ZXX!rk&@7KFV^n6%ZkPlYp_-;XFhT0Cm)k zS||`#l6R$h9HYt`M2Bz$8{@+oib95k3WqO0$v~V&ipF3SvD)GG%tp*G+DZ~53PHD! z4)%LxA6l-FQ}woolY#t3 z`L%jkyT)fkN{}vS!VKIIoicd=>G}bhk(B*l(b8I8ZhB?9C#4xcHf928EFPmniX+FiMeTf{ zA{<#zUnzbnQUt#WF&il7S zKe#J;ecmshJ-EArJGQ>wrJ>lMR?`adI|$Y<3BDsmhy)GVlHkdiJO_7J_q3xco9XM^ zNEM9)&k=#?o1=Zus$Y$?=Z~uQ6h^9|E%BS(jXHEoF}+m%16*RbEu>?P>Tawvl-EP zMew4s-eO^a*v#Xd%p-Z&lrGd-Hf}k?l*4YU1|)^d9FIx1oC@W;S{M?gVdef+~-@FYw`E$-|(pK)R5yAtSolA4XlUosv#sa%DN_czIhWLq2Dss4<_Gw0Y^@g6L+R z@jMBXV>=HD1;@)n_6Xz}XJT&jD-cbbX`j$O*?vnryaZhASFGMH|otEF-K2w5Q1ZuCfw}H5$_LS7dWAPa%gj z0c(=P$Hm@#!ukef1C;HZYQABRH~Nr@;Vf23+f2cSh0WOO`y`2q+N7%WCKel)eacB; z-z;b#e3ej37@811%E*1mOdZo`e$_H3GL$XRr{iAw@Y51XM8@zC@6}i*aOi148Eq*^ zgaR#$M$l)$BmO{qQ`}#|14rUy9NiR0JOg1MK3X0n4Y48lFA(ejKt1;eyu_FYC}u2| zzw;Qb2E0!ge=zpnGG3c$<&>@KP4v9K(iIFtkA=DdWsy}AYRz~gQJu2v-$@NbIEhS9 zHL{%jU&LQQR1Cq##3R{yD=R`nmkhGWr45Vb(qihod?Gc1a7~!2V6{w~Kl9u7+gu>7 z+Usu=ewmr!_+B2dIF-YSo}|__&w@;g=*!Max29{dAi=6=Ukq#F|6%T3;O(r+JOB5x z&vox4FB03xiS^yPX`5(L;tegJb5>L^Ma$*yIJDE5+OeN$Cx`KGFlGGoW6cQ!3^Zt} z=md=x+9*_^VnvNMjwg_6)Tprrje-?w#2^tfHEPgQ{@>s8toPmfoSbuVg4)mD$l32@ zz3cL<=f0lxtjo-D#z!R5R=D+|>d7L;i*}C(+4|JUM-!J>iwn&dQRW&`bt zM=SS4?i}dC@}f(zL}fyh7rp#)7GQKLIQ&juAofdmvn)INh+-5P0lV zR9^ghYuCtnMOgDEN7dAz_yN*rpfD9|DtaR;ZeH0sGg&4apC=i}NS-DX*AUvN-Y&}t z&ma_3>L~7Qmx1ISj53gd3f+ZAwmPPN$Zi?m084sjABf6xx!4#d*x}^}rIenca$D+h zI7H|cC5>ruDGWhLHfwjKU1@{ea=R+T!d!1oVVphs5o!hO7!^($aY{A(pU@4iWHx|G zT*+zB9$uBSFXmh2F_mXEMK{IK1bZZkMVhZ{(3f=@uJ@*57nDJk@^Q!90%>@T9(|=& zZ{r#enr*}zncr@1q-A<$@*mGho?UXaEFYDKD!GO?D|sY_&>9p~Z*&xE3jPCx=<5qR zwwib0ErjcsH$Rh>$_vv{VRBJLmha#PsKnGInk=xGo8VeQsLfQLmAyKyZ%On26Mr;L zUutXMwLAj?)JtK z7AQ-F9WoU*6D|*%3X7*Ps<80LvbbP`=dQxixKvmSN?`^5UM7vHkP2&9(ir1Y>8bt2 z|15{13TvgM!q%_AzFrkJ0~WTe8D-f04JF&V6kWo9Z0l8jP+_ykW8o*vT6*p|$&;bL zr)aL9zXsois3TRZV~0UYV*(>YR;gU1fASolE<@HJDU?#z&BJQStuSmbl;MD6Hp;DD z;~qEG$I2~(wW>%_Xz^fBQk`7E>VK`*FTYbbq&iS=Wd;+81S2>*SzdrSQIg(;eHyf8YN}ExTy72ggi}OK|>^FQGAUVq^B5a zQZM9KfGPZsb8ISd`m!P!bHG2?9YP1qK&YibblC3nN8bMneKZ(%==0JZBnPr{64a<_ z5@9Xyd$)KDHS7Q>O@B@tOn0^&3t(){w4|6BXr_VTx!!7o;e~ZLDVu@D+6}jFZBU_i zP%p3%z{=9yHSc&7CBWb1Biw@wRC^fI8B5>HW9LMlj zvxb0{C1u)#ftYC`mBEaX94e0-+VpvOW9xhBQ>E3t31lgnCXW`J$v(X1CY zlTX!nO_sghC}_T#Nh7vn9yB@&8Juk*!L9|rwGX6&`U6jEr^bv@?O!TDQ7Ie1t}q1y zHG%8F&LzLM79wke1O@7%@{-@U&Cu@XKr<%5@UV`_UzA~P(L zpcxc7khAd2#1v;T<&lqNMFMNVV<1p5&$husN(HWWDHQ+=1$dRb%9-?{ru_U>k0k** zshMgL+{(~B-Dw=tNOFN~5lg6}HCQuOk~-|BpAa z#w8ymLi*Kzh0>Bml-xke%dDLOIc?KeYW@J6|0Y~J8V|x31;b>kB&1wy+-QZ+&0~!N zm~-}o7*`Wy;TwET+NdLEJ4%zGVwr<$!ei!vZZIn#g#ulr_Je>`%$Mw1h6yEtl1k14 zO3G(%@{k_Ucp=wj<3eAPmKA~6(RK?(?K2F18cp1tNIEr;3m0OARM&<%VK(@R36r%1 zL}0Q?e&8F%P__I4-(ihKjgmrIT?C)m1m>S*cEwT*S~cU8EM2&Iq`dgg;aOq_sn%=? zf~l5fmj>HYM*x?UV)=XkGp3oS%{_)pt50)vZ?d=IGa?zyyv@5nqk5P-&Ae2_LF5M! z==OA2EWJewj84z_G4AAzs~%Jm5D~Vs6h@J2!deo`El<+rb+?!co>-bL_m`k+FT-j9 zJW3@_c%8L2PwmnmDQSV6>HjGH+GWP{>d*`!o4Q|{2PhA`HuFHGA{*dJcxZLQ5R#Bb zu`5Wn)Eq}|if-u)jj1#FN;<=wSpM2>7pltjnMHczdB2D;DhpgEA*iCJoB?B;DUa#^ z$AR+6MoiC@zy8uT>7nHf{$-fu8BC#815W4Yz?|G)?AB8vy+MMQfiThH>LaSI5!dO0 zidly~c(rXUYwoOsHzdf$rr5h@A8BGw_bEKx9Q;^$fX}k1Xlr8{#ey#t;0?zL5|DMK zGe583r&JteD=ZO}w&ZJUk0_gC(q5*Y20JwQX+eX^3~9bvt%RSpnp8jQ%amw&yhCuc zKN6Gy%~{!Hc4f-@pTMu+GYLHb!`cZ%pP0Q$QC#r2obZ)Hg-Nl!KRlMM1#(Z6dAqRl zOHd%DuaxYx4f3{!IDH{4M{I&Uy$lVPC;?52&tQ)*-O({SwsBPA5Xm>sj07Qs2>pd} zEUl(S;6iPN=SKhTk}kE|+1+6=n2vG643Z1rB+6@#(BFVvD`@ZlXqf9wgB$YZo`6T7 zS{hw1p7KJ>jKbulRCDGBAuScO+^VO!YHC9F=BT5NMmRXM9oE_R)zXJdN4q2=vXm-uUqe zUkjy5&8Yqq3PYem7>YDv1&_lbi-(6LET#B{4IjP-9V~J{<4jK4lbKvn!HAltw&{oy89XsgSY2k*tYZZ_*E+LOO+N;E^@)IbR>Y0>uNM{Suk=c1WYeAA;AH5~ffM%YLkg%52+6 zQcM(~wDdBr5KFaEhC0~uV(~_}gmn%14N+XsNm!Rf4=txyrBxEr(Sb&s96;KhfyQ zu};H0ZR<6k{x4({CTgl9b{yFEF2gSrf)>oMMdx7~OC+1mOu}`cDOHTa^!_S5 zmwPrQYhp04N`B}Pk6f5zhf2`A_9J( z57{PNi9(Om64~PwWgr5;AMr!<#4GrL27X^ZruSXS70CQD{n&$xRK4n`CQtl?M~hUG zrfkTj4ECrgtEY3)%vF;@gFTbN<{(YV(20{`=IYE-t@zZH(3z8kQycUUQzR{5^`j5G zRTyEur;oia#1RTLr$)kTzjh)CN2^E}RWm`5gM^@ySyH@9ivbT<)ECiMB4mh+dRhGN zIKewrb$c1B8u=alTy}JsewfQM(*wjim~v$`_W>@x+uett<9A;lkm7fLA8{k4dU{8{ zRz^w!B)Ovs-7Ubkkxo#Xctp9R_~>v(=T<1D$33MB!uWuKlW6X){who&Fs($n1miK^io8S26{u*Fpp zFpkmI)ya;tMA4C3rX^?EiIYmLpzRn#oVxt7>DIozSeh0nEhUoGrCVaHs5TmkB|LD+ z3|RINPMX6qGogaeG3n`p1`By8j8nARZc;>>H$!TcaV^5R&!{`C#JGA04A^KZUlmMI zt{UhOuaoXf?dO3H2&hGq#yhV8s11?J91y&2~^-1deE9v@Kj zEZ&EG{H`hqtJXcwMGg8@bS+ol&skt0SI32ULbT$$wnburQdjU~Q=L~q6h#w6`}Ru( z+D|*-Ig~iU5O(Y40I_9+mC1?ePt|n*%aC~h>)NS?w(`*1UqzOP-FgIcH>>Lu*~l+f z)-R)6t4Y>{2Fja5{q)!d3h203kKYSU8D>CIWe0kIKRI~O@@}QQ;xYVtJXL5Rv0>v6=;VRY&9>3w0y7HDtXws4@w~)2CD;Qw>EIQ#h1|r6PO&}O zltA$lZMio3Cj;lB79eAJIUhw4TY%vOIiY@J#aEGg9z%=QhHyv;2w0_vEXhYpt)(U^ z#4(*(i@>uafkz;h=pXvfV}iLY4aV~*ysCU2SfYU4bGZxUx$$l#6M;IFHZM=ps0dNd zV~^!)VK&c2+Ye91VIi;LR9YhdQx`$=Ac%&mU%6E~jbdv? zg~S}8&I|Lnl2X$szGB*+aS8gx*l&c>N@)Pjxmg%x)*Q3U#HvyZO24g;$1QHG+!8X$ zkT5&Vv#G68Az@^i4f;K38{S|;ZCNB3haLm!uhXz&^RA@WIMim0s=xW))4tc2iOl## zope=kEuE5&;&q+$YScC^3k4;CJFn}I%lX>Zbr7KxFSAuoyteGST6?)PkbKp=Ys&_o z@FDL`yOuYmxbO{R)%?R6e(4gJ!mu3oe7jZnkvK6y>BGTXk84K z-5~;mIij=KTX^lyqlMSkV_-jsix;!rZ9~*|2DIm2ijfZm|BJ6Dp`=NvOUnG5)a(&^ zF4$ztl6hK!N&a5u-@%;ZAY=?^dy`u?2?307?TwJZQuA3 z(M>#Hi}+@)sfY{$6JO^DwX5X;w!-I9Sl*DGDttPHZ}XBImJv&e0z_@iHQp-5v<97d zIF(NickH7{i*GeD`miEV0xefWDCp5ZYLJ^{$!R`NW>N5Q(CC!~lEeYNx*lMIrYz3@ z#KBCzk5PP(yzC(VChJB10|_i@Ybvk(m=8vXwWt_U&^lP zwz0jcZqO!lMUvuDN}-xII4q1K;Eu98c0w|5!ZImwJe&TjKds{9{pcD@pYGr&YZc<4 zYvSgCFKgzg#Igjb%bJT57(uCa!jP%Y5_l|vhK*bALa?=;}_zYvdys?xzrG+OOR*PDTA8-~@n^8M1mVHKPR#%Jy6=l=5=_)j#RZi(D zVtwvDkDR7n#*0j|UdGFuX;$uaD$7kx8KkK^jz!Xp!D~rGq~*Zs^vUcoA%)CBIorTP@LL|{NvP`+Vv5D#RRz(0jG7*VL7%-k)ZiI*SL zy4k4iN|}8e2qEWa_kFL`LRN1gocW>66l-VU~!d^XihaQNNu?QLN)06l36Q!96hj~zZO?=!) z<4;_lpbMfxpbA{^<28!6N@YgyotYA{VIk0^67OZGK=w$3!@+JN3?%)iKSN=KmzDXM zsq)lFql`2tW@%E>##wO|ZKjT#MVqJ{N2FBMoCO4^5QA2Heb(NaI_B7Au&y}E!;N%) zWG%xCN{!0W&PU6EvT5xW$FZl|12Qa_dYq(3z7JGB#zta10)vj{}g2%?d0h5rn(c~;R_mcTOr|wo9%ftNyHof=C2-UH@IUdL2*vt?j8AS z_|bYP3o3@mVSLNZ^~7q?RhCTj=zP_xNU(XU*8*wOZgyS-+_B-2C${CO#bj6fo{l%g zlg%nJ^hT|%%filg-EHAemZgaIWj5B9Ew9Dcq22;~(7&2cD^XV2fcDIGB2C18$%ZtW%5w7U5VV^nXNhEZMR z3QBQRv$-Lio_R^ zs2&VxLg7AK_wbH2HScIh8({`>RvQ#;C~2`aVD>uc_vSbGx^Zn`|(tSiLdd);=Lx~&b?fJP7gG-7(lmv zh3l{Df#d?)QSHIE^Z*4Z+@y<#^oKP(Rd5H_Ju~^A0WSdp>DzEcSwJve^fJ8#y6<1N zCNOoZ9F*AwBM8jYwgd1$1;m}IGNxQ#wpwKpeS(5WwBbne)oJ$nGJAUR?$m>Dm^}=$ z_oUkKnwqp;g?2!ps_72NZhCNewdnX--j?>pG0Hpd5 zE6F}=zB8R{Bg>XTkl7|i$>XyVHe|X>B%^7(YuTy|V4U*J$l%$%-K4uq0X)}&pFL{P zRL1!Ma0?9()C#v9->)mthOUHe;nsJJ#qj<-#g4~R{i@(S{oYxk2 zi}$d%G*dr4ke7 z;wEfWgD?JL=EYLDHx*~i->nTM_Z&!ND0T~Hz(I`I6$!aOP|0ojxtD8MIt1 zlnrfo)1IP){2H<;BFNTcsjI|%Zb0kx$1_sYKq&=BuD*v604+I|iI7?)*0yf|>_t6Z zbNfbZAqI2HT$d%6In2nyg_$UTtDNsAYYIQ0ni}6UV^clt#8zi$>VFy|Sdlb@S}T%1 z;as*p2;fARAlQWr9oz}R$+h<&K?JoDq&ThNYbtv4W4$qW#y8Cl-WD-p z>TAA=*#X+w%Oavn$-;f2t;$>_x*ZgxxRzMY!~QGb2tQTqw6N2b>N}Pr5hc9L#0+qE z$h-igasKEqmrPs}WawikI#r2D)b90^Kp7d0bX@7vap0`$^hOi*`FWuy8R0TlYjU=e8;7z>TnBlEK)mF-XRF?1GsgkED5qEQeS zwyw5D)R8o71V>)`65d>;i}R)XnYsQGPPh86nvcZPLps3)ilp6*x&AoP!5yuzn==AU zahS$={CxnXA`Cxc_2t~H^qb+;NM&Y}@crs-vv~ zi2#5f7K0TJY`$))q7o{}cIZJ|f30v-KT)#Xfs-(7_%?r{ zWZS5hf2jvzUPv~3aHAebvhC69cj_)mwgWuqk!=41&PMNTE?0sQ9RLoR%Bn*bS9(;& z8MgeGkN#eYccMWSZ_kaN#TQo^8SsLGF&gs6BTs}6R78~+Yb!y><{u|;V3+|CBaC|} zj?h{QNO1OW@Ui{I2okX}G%m4=<@_XU0=qqO1!Dnv%;s@c?d;?SYL_o#hVc2tKoAMMG#YMw3-`msEVZ zh%8P@8cha>xA^vq+K#bYJZ?@b~`|K&@$?#qB=C0XIHgd&y>tTEYg+SF$GmPDD zLyn)?Fn$+Q&ul)HmcH#qgz^#KzvfjkZCQc2P?*J<3_VaZgr?E_cj7MKiOr>%p}@4Q z1uAE$)nI_^Uq_Pys_3!|AJ=Q<&@0+n0 zw2x36wZ=t_&`{R7kXHMQ-#}qv5_=G;CQHP5OdA%@*1j!?T^K^l_EWd0y$SWQ&ufjE zDj=#Ms;8G)F4k(XcXdUAbhq$6$w->TzWaFQ>&HF!atp>~3bPFB8$I?qtVim=D{F4l zqcwil#?msvTZr36Bhx98#VzO@f&nCkEMQPf#g}{sSxtRGAV~;49f{E66k4C+xQWU9UpCWvFrI@BuO?4y# z+FERY`P=$7U67j2`C#AO<^B#VxqVz0_g5>H;?L|d)O(ao*?jl=`x;^YxL4Dma%)O7 zfnWwLgr6rivVBq`HhQ(QSM3M_w6k+cJJQm-WFaWh#{5BMJ55=|5?zQ2NVjOlILq+N zD)3Y{(&8t2nid~)|2Q_&hT0MScKL=tx9$__81qq$g7X5OT!ay5{7PL9*NpE@ZBg7S9RC_$mHYM`{`B5<=ka z{UqG*6!xEqm)sWi6J4YI^G3F;iKKb(vgt-%Mp~d1G?f`)4X! zG2Na%9Gju6MkX(qT;dIpGMYl_N0gc#2uJ0%SDS|Q)!H=v)Rhi?JtXBa7{SCE zB=v-xDJ=)G9FCP~pSWqCkT1Pbh&{g=s0P>-o~a2i)83PvnM$oH_W#tq19cUap)E0y z1097_S00nC%4VzX?pH?=>cW|M(i(dM^#h(MLm@xSrb3#(#_>rlI)0Zs?>O-qsSB|IKo? zDoTPzj(@ec5fcL9@HeQ4cIDB|-p^T)x}8(Ehv3>~4-pnfIBgv!80{hQY&(}V6#gS* zZ|EiCsYWq;Q%+6et}-g6)EVmqLqL&vLS?9{*dRBC0vx8XhhLTSiYQ&Xm|B1@Bp(=P z^bOem`nCQiY4vC&tco2C6I(ocaHzU^lfQ)dQ z_y3$i&E-6VV;!r^Fpb$?gErcNwL6RUFqG7y$BT$7fGrln_!CX4;PmmWuvw*f)V3EH4q+vO_B<2_KCY=)qFUAL)lL=MVoOi(2)N1wzt+V7yjc^LgvT*p# zDD;nLeU}X=ey5b4mzX}S&nvf07}Rn)4<4_-CekNLX(}LUajlf;y2fLL(TeP;pat5f zv!*&=jhThO+?(wxS@>c4{C=&1p-Q8n0X>QEY*bLPC)3;El zCCKRQ7OuMjwU%`|RU~?7Z}TD*r)(-rFQlmXKBD`Q;?~T9Di}iWJdDc|GJoKkpa|}A z1%~-{YKshCo?tw%r9yIqk>ag*1A;Xxt|!2kMyS8SXSe1F5Qo3hS-II*E6B9|=uxqH z5QTP9EDATg38{PxLx94be!_5*omK4P=R-%&xqxW17HlJkj!#n9Y7o6uMIwlfO-xn? zUg<-Kj7Q>9N#`}2aWYKHM(g+zbwp+D_&@b%9p+r*05`oCO`>va<(iqQr{Oq?l<)N{%aiMP}62~MphrKtO zU!*O!ft&|Aw9MFnY>=#yO!Q^Mo@vnKLm@)t83-dUGpWjQS7i`maDVm9u5& z#2Ep7@4+-TJvi{Ap~K@$>g-4L$VYvzw>kvFvnd=|SLXCV8$#iLsBc+VqM-bgFfl1G z3|6Mup$4kcuGIKRwB6)Okcpk8Nd!fQ?iwfLb9t_nJSrwrC?I7Fy^cJ|;+h)fM z?}hBE)OuAL($zn@q3s%AfOf~_X_|;c(U?#*@9WdTMe0SP5jQr!Kcjb)qZm3E7MBW9 zAG6eyy5=~9t8wiX{}J51jd%%0>rK2RxP-H4soh~P^)p8S`E>lsTmf+ z!lIby8}>4RTg~Zb)67(Wxx8aLIK}zS&0s(-UT;z_3iCg-uImJY4y!7-pwNT?;z9De zE5p1UC6E@MMdI4JJqM0xZH~4lDHa~~#DNLLgQid)=X2Qu90vvitioSs7y$vn_1TW{ zY6?-S5#%Qy!5r%65VoHJArZoq`sVQ$h#h>J>dA)c$xr=> zvGKzbNb2v@@to0F*Q285v9+WBNL~Hm$NCYK-l>b9>W^AOaPHRiRiEUKwr(@^2h1Ba0&GuEH}9B4#*sDg6XUVJ!0f$IZo)MfF>JNwb82KidZ)# z^y2DN7oabxRnTbAm^W7wYDz#h78+Nylbo)r`zR1?_^w2d=F)P)$bi9r^HHs`*rNaD zesC(J(n`$XYI=F?PDWJXPBx#B88u9JJFmUa^(R<2^(Tnc=z(@^2y+t+%MZjbqG>z8$N%~jrN?zh**+g9tB z^!Basw$XZ`Zf}gY^IDuR%4UFgJJdQ|x9^X)PiQ?sx4Yu)VCyv9emdTs)*`)D622C1 z``icjjdPIxK#Eo9j;|$@6igsy3sB_B)`*165jQRGW;Ym>h>@1_BJVOcZ#yGJtB4$bes4{EhT+-4n5WkK1DOb9gP5eN%(miNdhhEmh zg8Sg`wvUGo&D00(4Q=+clV;Q?7jja`>(wtF%yhb!%Fsn$8&i|A+J!n&fr+{$r{l&| zs;#L=LibVO<3%bMAl$e(mse(Ht=*-?y=>VKRDedrm4! z!Tib8L(85nP$+VPAH`x!TQSMKWQ59TF8*KaPBZJaML)^fpcxWzQBf$u<_{t^?XVs0 zyR%nSyem!nBapR9?C4;aqIjz3V#)J!Zd*rOR-mF`tfqWvLiR|$(3NP4A9f6LKX3ur zEf_Xh3O35KL4W?VgaGtS7N0gvQc{49HCTBAA>&5mw?f;u1*cSHf;-%_dxFNSW`19! z59799xg5QFHRgeL;8uEOk`=e1G#kPNKWnqot@7_beL|HH^R{K_aIAAcP+^aAdyqC( z`dYgDHgRlloM~D&?yyyk;gX7AUU38KDVoWW9|&_X&jBMzDZ^4_V$dEO7*ZcP z7?Ve8^WrKFW`@LgGG@+V{LT)&mAF7Nc5(@0JncYSkI^F!aaRi#IVXx|K!)XCNYg<< zCq@wnZ%B z(*k;oX)QB4aDi=2A+xlQqED%f zAVHl_iAxgiS|nOSp1$Jhp+MR$eGxeV8kEAUa3fIxvjPoOX9I?`k1fA~QRD>OMWq=W z1*}NSWJH|Q&+#(YOdY{>UYX+4h2)dpi7A1MBQZj=05sMtq^~LS2})cZ##@(@xBzwc z;GtbfI3tWdgrTHZpNqkTY!uRR-!M)(P!^yPXDx(@PMi|6XrkwH z*lXb1FmEj61c@UhO{&Oj!e~G~hjZ(|@ZyK!x+{svDvrZjI3~~*KhdXum^E1t>IMYO zrSgqaD*w?;mH+5*RDSi8%8$)d`7tX0e*kwj3c0|sEhS(Y*bw;bp?M}AG?`)BTX0%u z#k&XO;!lewBO}0#Xj24Rd*+D~2xOHsFYKK{c^@4l+9%I`6bMC%4>i39dN(?;=XxeN zL|(ni)=0~$J>&aM!aBY@^#3c~;o4c$M?lVLc*m*Y%e7Oc^cr9|Eizt{pE@#LH>L77 z%vAXssQh;f(~XaiyWUONYOjJqt9@$C1>NCJb1!SIupJJa1RZIFrwx)U+uG2n0%G%& zzFs?1U$3RFm)0`AQmpRHAb#moXjJC0wRHhA^LrIRTLh>S!K{|AH9~d~JT*ZNw@He> z8K!Qi2<8#FVJ#xj@?FEsik(fp79mB=MH+EjAwyR(M~AldVNrMH@3K44r{dlc%%V$MTg{71I*WYB zzfB~rLk|q%16Io?pMg7{bPsiYLDv zxWy)OQNfn&$Z=b@wonJf*a^JBl9JS_zcy+&Khwwt*XPPXfd=O~v!!dQ6G}^0qOF_5%O5cR%!yBjBF1b- zfm9~l&|#qpXW@)XLBduQ7%K*$-WhT`7~9C0RU08z1%w-eaMjx2DDgl&eN(5Y3r=X(cDD+An#kF0++hu(vHc z1#DAFKE~i2h@n`5@;+Cc-_XbgeDmhxz$G11B&$>2f?iZQn!Ku$s=MHsx|?eOo3V>o zG?Zg^d$nAp*KG`Ne6S{KzAs8JWqb_T**BP(k# zPM{<$mGr{ONR63c%v*ZvVD(H4&zPBb8KrgWY$;wxbp+%yQE>ON$H^ZUAuI(L)PDB8LGg_hi?DSu!>pZR(T1i}~WmwhOo$ zqR0AllN95_%3wj;a?S@*ue7qRh1%kz<_-|L7;mmu+hMc5yx~lx)?$QK^2s1e^5bI4s1sydY7OMD@mM0{B7H? ztB1nwxAP;ue48#lq=#A@hKp?0^~dx_UOd)kw{cxuryEo8qFx?}$mRkkM-0ld@L0`Q zO)r_03P{G|@<5_0D343|{a)fG+&Do$jvPrCM|DbFMdaGGXLh==d-V(kz-sxDL>sX( zsKALx`kHhs^HWbVb{*cXvEO%?Q4NQCALd76-}gN(j_8k6TCGj%dW-(Vv5#}zGxpV{ z>Xf;iioW3G#69`Z=t_D5KyL9p47nd#QGeOEbfnq*ep)*%U8!TU65?(}a#MRv%$@0#^{r_(*Io3~{_80Zx_@0Y=%=hj z%lp~KJW58R?wDC}IdRMs`8kgHw`&HZsA8qrP{goM6UKl?w73QW0g!E$R{&n0Lc8S0 z^kouH)}(`Z;M^~Eo`_*zxWx}ZK)sMk*A!nvht^60*WjJ;|$v4R>t*8M-hqu4vvDrwdMd*NfwV>Pl+r~4@+kO=CWQga+{Pqmw;R68>W`{r8ZcB=mc^z`tQYG>|gq?VHp{=O+y zPLGqPHcuOW0d*dqQs*U8RPnU9P0lCN?>~e%fMFr!+NcK-1*!38R5?irbnjK=rsut3u@lF1UA}WohIa*0%~-|$fy^tDtokVT|D2J`-Q&Ug)8kR zsLpxD9I7$}NQcwgjywQV3r&kR^9SHTy~SVJjS05amS2kYH%&A9DWa znu1d*?Qm`Z;Fp%F&JCnKq;0+Ze-R z=m`tutcf}!3+VEY)L=!30v00X1y=qzSmQ!;)UL)=L7=UlMfIYOvd zWz)`)By(42HGoJrrUK3WCbtw128k4pOZ{pBnz&# zqDS=RC09PrmTo0wa7z)I{0XdA*tIQfXc(MhqDIv3;`Y8t3(Y@|Zr{?|?d!T> zJ(@g?jJy%_jK8Zk*8XL~GkLnF^A$!cH(#N=&K8!TST1dYA+)E@ei3TEHAuWXItnc} zhorjM7}w6$mksoVqiqsL`BU!-`F5-;`eiCk(v|-Xb8vdm>YV)Korc@(`6@c1o@g}& z6oCed2axdQY)7ON_nY`fW)MpwG(us4|J%v~HCa@MYP1p0OgYg&iM2ht-Bd8R_BH`pz&< z%++0_SUP@_G+$syPJ1vft5O!Z*6zVpLg{s(gh$%^$PI2`p>ceX^9a9DbLKIB^=?dr zR@kGwsv5K9Q{7kHQKvmPpa*fxJGkx{v!bt=HG;1sSD9t!hKH~5B#o)ZlBT>lGlrsX zQ7C!|rKN~+Qy?^7p8Rcw+O}9=J96a2+HRVqwikd=*{IZ+1U4>%w}ZZ=AG0|ST?jh$ z*_Q>RbXYu%CZ~_}Ib>Ng+Vl8kjM2Kow_YoTi^vH{czmWoh^WH0Hz20p0Wi%wEj1@| zPwaGtg&S(yKQ@6?Jk|c*t*3)wuYMx%@8r7pFdd8Jd!9odtwx$+jv`{NWw;n#vEAlF zgE^WqWNHXf%{(>yAiac1MiZ0l6Ca8=r7cGo0h-g~*to_a4gbKMKGi>Ho~$zpb5@{=_DKqu1lxCgw(NA0QCxb5D_evpf( zk)fvH0n}B~2g8%#a!6Q+u%spenY&$8&%_<4cIFLJA`gV z3lj6BT2@MSEpi*kO~R|lV3YbL)qv2>NdLX*A7DyysLzHc_fNpZP8jb|d+Oso$aOCS zPr#F^mtksMh$RPKZ*^0*H=k@mrdE1ljhl8&?x3Rh0?JG_>i-Om=xp=*GD6W)GlyA` z$wTfskSrbUGTCCnWxGQ^(!4}Ol+V|=o(P}iU1I`fBp`LKtk!lB&#cTu_6MiP#Qrp4 zKuC;*>Wq>Go0S6~4A`<`7^oZo%aef^uviL7RqX!+kzOQC@*WX}J-BBu;Z5-z1s5{N(XJq|k@GE$hW(n&_ zTBI3;y3+r#-Tj%BP-p?m2fF5*V0d;mn)7YhuRu~thOO7a;y%Q&GsO=eK&X$0#kZO< zc80BF%r1T4uwN-Ait_)6RFV??BW!;k-~Qc@>Lt{XqEia1?fMJKZ@bOP+wwy5T!BIe z(5v6DYDVWWt)B7MwHw>z?#hiGOMY1hB%McV>ew*bLJtrS>1#?pW0Wrk5kJPO7?i|m zc)t2i(R0!grCUt#)ugL6SB}FAQ9!Q^@58|zFxDFNkqDqZLyWi~Z^~rU*I4L7^O{ul zF7>b~URCF~;~K8i9(zu>F$Xc6@@B#cXREE=u^)I~q;*KTdq1WHvFrqaSicpB&025} z>#;WDHGhe%XRaU_`dsCP7a6QL4V8webN`W^G0mXyev8zUqG0@x^DeoQq8Ag zJ-|S;fPYPqZM6sezt@i+N}Auy-R~7XQu=otD7fF zu}CA`%KRvs^$n36oOf=KT`&>5D#B9B>B&wK6Kefn5R{HWxWrfESIQOHU!-lZ9Zy=L zVHBl!p@pXvIic9{2q$5QSZz{3CAo7|pBiHYVuje(FlYUNHpW8V6&3{0!@h_YAGUUS zKR4VgWi8XBTpRSX#SDqIj1K~k;`<^52_6dCPi8r`ZACY_A}dqi0{b)xSK3Uf$Cxn= z7J*nqZ}jA<0# z84%)>CJQ({#i-X1N}OKnWi}|>wozVyzZxMUmH7|D>h_UL!XM8tpO6%LK7=_&x{LH$~|noGK14S%qALF31BY8j30Em zfqGf-zwO1K7@at#NmhwfaD+DV=-({6Sp~ zMBtgN1p}Zke4gS{=&%vMX@qP22j{3*t3vuji%TXvxf+rKi%CV+ki9(&R`pOzML-uP&}?oTQ3IRf9s6 z>M1vRpcev_EmP19f)qRs;`F5qXM@i?&; z0TjN*_A^j&RIubsVd0ar1%DmMkn)3vW?XM6Vx%`gL~i| z_)Z49VRkI9S)|=VdQNX7LJz$aBj6@Qni(}rUmcxvzPVF@dObB-b$dLF&#K#Wc=d-Nmg$Ey39-_5-`@7i$p=7966-8fN=>~_z*jMBqUmj&fGwEFZkoTq>BoWb2))voP=#K;=KrhE)@u4o2uRkVED-FJ!jKBONhrkiy!VGkX>w{hJw zzUixTSRGal#QyNF`jJuur`fCPAL>u^-rmP`Pj#znnP9`5#JIk`o6mGa4@7+Q^VOMW zI)=`BcHmyB`faY~!n59`wUyzp@e9@!mMy6;T&p{AJ;>PngC|9c3T$_Nk}q3xukHmt zPDGcRK8Da>7aFKMbg7H3bk)8+`^Wb!m)uH0K9^ev29sN+bti5=upXBdcT%SKp=phr zVJ~V*F#9|Nh+h{Zi&z7<6eZ*={=l%QZP}<602UKuGtY2}y=s!Zd`_FaF*XF>#IP2m zdpE{rQ(mV%t|WQebbvIib$bZIK*TGhKO6Obj1ET|lG5|3n!zG9KMgxJ zK~C3MH49&a=Zjt`xQPrx2w7V>)epj4(df92Y-s47mO>#M>V8c~PDwUW`)Z*Nk9|7+ zacUo@d>l|o!zQ`gY#lJEPEOiNMP_685o$^BH1GOZ!dMavOqrIt5=t!9l`;(&vfip* z==db7eUI*}b~+Re)OQRj9INl(CIS;nV!{WYX9gmJ2fIy+?l5c;&=Y=Ne04bLL_KP2 zA4e->Cqq@T}fAu z6#vxEG;ujbhzT7{&Zo8H#UrNbsVm-{6|53s&yJb-Fx}R}57*hd?Vt%wiZ&k34j**- z8Q`InB__J-F?5cw27|G(#0Y0?-4X z7LGokC>lZwF66+sGx4KeSVwXI3Kn-h*7Sg699ow9hT06t>sBV`$!V@)j8SoTP}zQxwFXmAGFtXIb0?c&_}nJb$hb zVjZs5u;WoisMActv143`N>ztJw{2zdCdy)Q1{pm~I^J!zQ$O+lcqkgD@u{l9B@N5% zJFbHR=m=z<3exfeP2p@jl_Pu+B(6&6Dk~WsuuxmnVTlSbG#g=$ zy{V%&l1cUi4Z^CI>UPJjU6Rpta!ZS~+NFol5V(o!*>sV*rY(2z(Yz@&#T1#QJXkf7grTr#0R$1;f|3+}Z&6wq+>d3oxJWVUmmt*%U!D`^g#BoMFW5F3 z@I*M9Fv9>7Seun;O$yQqvB17g+4&@$ym%lF_xUOdHw%s2<<}~%f`E95^dx@;$E(7k z&rT!;p(i@B>L$dC{u^IUd=d-rl2?cj{^vr+FO9L-mf<=rj5wwvx*8KEYh{WQ$!l;q zPBXLB?y1AlPv?b4^&^XMuP%P-cQzmQaosbs=O!6AjuHW4<5E|Sa(-~aTe>IR^!a8m zk*M@1;Tv2EJWaGF_IebwpqL78AGK( z-YSLk^to%0=YSc^V-||@oIDgp3GmRom>#yE*`0ul?AMPr;`-VedWf@en-U||;{IU= zdF@V)nbHA#MD$xT08ebD9D~ah5n1n z;U7i`WxpLW#x27w-ra~Jvgg9`XOTI@W456pMb`l*X;5jm=Sxn#=VwDx=rPs_5JP>* z&j&?VXM>WFRek=p)iD60sG`3}ukjo+J%a|E@|zh)(F`f@iJLI6R>&rYq~PH`Mi;>< zM3^2ZC_~dsoO%*kr#=)dJJ#^EnPraQyv0|{aW}|ZThKcsCNx?xQES-NEWv%r z9i(U^5P?O&xZrZFc`+(1`Bda+L@k_DTu$>h0b)LyjjA#~a6-&pLruc}eJp>qKDFQn z%caqLUgTqm>kja-kSeBvGSBR8utKt+53;)oM3R;xVacRdDui^AuG{{=rx?`38k9g^ zb)Pbr5x^G~W^-#diB$olDiuOilWJz$K z0DZNoou@*XW<5a;$|yGTO8Eh(ru^`^;f=bj-n%|C*gQ)Tm%#)Dmiz(7fQ#E=F;hMa zUoavJ3%_;2NXJG?xiVW#1%S*IuSuamVe==Dc2VmBM`zKx2B&qxGaoi@%-a9)wVyUv zXI5tq%wx#zx#Ef1Ho!EltmnMDo>#$E zMa)hKCw!u;0zIEVQAu&cZLau9cWJ8+JTR+R7I7MG0s)GT4ww;aLzMm3GsI{OcfYUj z2yr9ho$qsfFPyROg-$)+#|X|>{!G+&VCY2h+i#rWEVfzE3nReMDUcNUcce|aEAHd+ zot+L-x%IxvUAFtvaKWp=q}eL)ulMORGN3HK*g;MS;~TDa=%lr|Rj^et$~v@x&$1@LQCu#fz+!CI2MTZSP(5~~a3?WIF7&Kx}Gn1~_sDDvyS!=kKCFuf^ zpC&;{XYkR;_s0|64Qh)=^MrUia(0Ph84Y-5t}NU+U1ly=f33!JQP;hP#*Cdy!fQ<$ z!^9Zyn~2vDn>os6Avg$Z+EMqFlK@Bmsu}ZfA-aUSgj)PVKVy}=bK>Yd?<$M3k6&eU zODwvCF;?^?HRKclB``51Y#+3PW_@aXh$eBfVnSqWws|}C*GN7Yd~Ds3I%&fz8;DP7 z7M3Yg1aSC`*r^X`oYiKqVl#Z&f${9gz@UgIw|LL6v2^zkc)b~_lwN(0&3k9@RY>LT zv)Qe;FKUt`_L7j9t_GBp%QE>L>C`E<(A=2+Zce2Jaa=@H%>V2ttxaQ-PLre4fIeu= zZahhvxRT**#?4Fl`6%(ds=|poVY}LM4>yjCZsu`^HP=k)CSts8;`1Ok$D)P%fMa=1%1WkUV9o`??b zNi9`|^{NeCX`?KFu!N^sC_V8hSbBuzc~Ed%P5`Nh3K7GqYA4JIRL_xNr2KB&5*DmQ z!&|9bIL|@N3&X2N#9kQi7_~Q6S>}<(rgp;|34r0M>j*&seO1Lc1`cJ%iU3w|v&5Vd zH2#i8^Z7kvR0lE;SEL#ig(IH>AUaV)!-SDl!^~~>lVkmJOn-vl(3msRGJko0P?Q{opMjGTYf+M(RHP8x=$oAnM_h zis?2xiJpwb@c0HHi;$KgE2Z%=Po_D~G~z5|VUrR%oMgmuL7#M1w?N~xmlkg~hd3Ai zyV1O2?nrED3{jI$35gGD+Y{V>3KpMIv*a>7)n=6_k!JaF67if;vqw*zWb3S7lbh9g zt?(lo#Umx#799BtHs464hir&f>SH57lJY+=BMV9Z$4x z%zj%Jvky4HSp>F`gKcJ##2DEa(PgU<%o6$!qja4(-!y_Ztm=kh+%%TA4?bZsp zZfw-ug>%fzY`$x;Kz#Yv)t5InrttJA@zSvU5F25l;kUZ}^l=j{{(2u^`h$HwUe$TQ%&3=$^BZ2RcUkmObZo{z+YCp(dM3i`-M6S-xhA+S@AHiDdC zp~P%^SqtY)!UNUg)g$7?p}f55LWilC>eO$HQh)^ybF|r-0QE-~&Iu@9_wUw6=-6<$ zK|is7Tet9y2W3A3(Fhe^}duFb8wW5a7TjjVn6vcC@*{aBvrn8_wP$rz;Wk=ETGqNAfZ} zg7FXl=|-0EpOD((UKG}{57Tf}d9D1A+@LnOX@#>KMx+Rg$d4>_sn|V*ScgNC;vfKy zI)Hzf&(0JXgll2yN z4;wtH!t(o`OIgq4+I+5|34Dets&F8|a=qHld zR9!dj$c=O3gqE@1svq%X21;kPEuB-Cw}mqhvNrqLj#l&T{mX|4_lQOMWShPR4Q}2$>x`)6!$@_@GtcfL3H%7Ng#TLg9vig>WbK7N%D7w z26ng_T&27`xF*7UISq;{%x6&TPnrubwrsj5 z0>iEwu6+bf#m9qYL~jp`3*dA@6mK zYPIu&(COEPEQZMRG*i&`_CB>R8CaBYDzehTs9+TEDKV&X5>T{IIMnPQ zoYwa;GwyBKFHY=If1K+cgk7Fw45|1K`#<0)Fc*w>L0+BP`*n&w*e`u3HGy`fO%f~( z<&c8#6v-%C1k|LV`nkmg37I&m%m2&d@_2o%yv}{?*?DFruVR&mT{6uKrGl!o(U^`A z#elp5oQZ^6nO-n*p?^TfVaMvfa#c}rw%Eo0X|^pxf*~lCp4@|y0rVID(Mmn zc}h`fT7sfOX5Y&`e*KAi*>~{F0!wCZa?{N-HMue|5C5t&u^*7iqhrM}_@hpaDSn^} zPM-272f6qW`oPn`c_Mq9bjwCJdZvnwgVbbILL74|yXdmHm$l9EN%N_6npP%9NbsOH zE+P~b7qQYb+?`Fw?&uW|)UKYr+F$oD0tO!9IOZ2h^Or{LL!Q>4)9= zdwGRen8X=8h)O$2aRZFH_$v0iQ@o*{b8h2))q2K5;+Ep-THbXn$~oyElGfEP>_T@q zM-~gKOmG8?I9t1>cKnHG~d=!6=P@qRWqfqlRgH<^cra}p^q>mQ5O=gZ#qOCh= z@hvTn{#ajNKD+~C?2p{|t`uorNMk{r16#Gty^(1K@obnwJqf)FxQv#CMTNV>1zfZ% zh8db`!t2)d=5WPX*G1)U-v^MN4_C2Zz1WNZ6gEq<>YX{8wlo}^KwL-9)qbvfI2*LW za2NZSB}S7o)8~pf^kljIpxu+Egu%^W1_Zn=M5(*m`I+c2_WU=E2xOii&y)$_2P+4pm!KSjra5&{q(q=@b?PAW9Rl#2fGx5S}NMCBw1Qlkup3 zHSLik$Pxs}<=emd@{#6KDbj;GOgI9b>WdAAoKP=UJvf&yj(wXiqJFb+PG5Y`S8-0ES9kS%VXHmeX`W%^ zU(^>7R&yKq#9_WzJT0umfV)#?I}n^T6Ev~^ji?RJ!jzTWjT0ex{z-a=Rh{6k`G&)QG#HVaG59TzOkC!Vp>r^RLm>xYP30dMB6PF=%>*x z^3k#=o8dpKwS-&ZksarbwzhB@uTLv+jY@B6l=H0O3+FM-%0tZ}gIi){v&43xi4{q5 z*_Z;2Xhu;lZ96*978_n}ag^L0{kqw|E~pY6=(MPLnKn~U2+yk^q^oE3;2 z`8*IK;}E2eRh^{(XWMc|heZ4f}K#4{XZA{koI?DcI^Y73-)ylj$b1JGKyGTkdLQ zFY1fH5ab1O#0Zu~ay2gonm~u}y+ND@>I#kG(flq89ymx}QM-J71;_Kv4Z>_PaX_l1 z{~`)seAAV&wn;l(a|WJ{m3i+@SH3q+sh)J@k1AE+;)|BWuvc+-c2ZM14OVWFM9G8D zl#5Szst~Sz-4Wb7+#-OJX< zxzpl1QwuUtuXLfqBS`ltsF46nP7C)7Ih9i zdT^lG{4X_(-AA4g>Fpq?g$Ey*vwRiq$Jvt%O;kySDDME)x3gKa;!zb&^vpywMKlG> zNm^`|<}}@uO)dC?+PM3x%uF>!ow0xlg)YrD>bOjpQavXw5CNKYn82$=Q8I*(h0B4I zD2ay(aS(ki7Vu1TYQx-i9XYoYUTf*l_GmZz_Xj`+lcTuNMbS*C#oy7OuXTFiB#dX_ zR_)rnl{h6aLKTH0!G=ZXa<`If5i8bu=B%o?jz)I8?=`Ie{cQdg63>rZV@A&^yN+Uli9yK z{)MSuZr)ctnf=TAzf_g0dV8dPGW(Z1zcTg9z4em|dUVa&*93Od_~6P7w9X=X^pDHF zaWp>R3rpS(c*QTiQh!h@f;ICDw;jMbaAVndCXyBg#{3sAZ=RXJp+M&1J-(2vXd*qz z&2(4rKf=4a!?XExy#)2qzl9Vv$A}@{E_U)4ot?-90cOFSt%c%{S+b`7i2`Zd>{w6) zqLdVAE*E`q|KfJ4pO>^V3Bxjr+vLDXSoB%hi{W)mxs_-GFmz=}E48MbX;hE?sHO7H#4So+tdOeErxu2ccu)pS2i!(cw7b5?m_Vb>qY z7<;KBrFY&zeU=y29Baj;hM-{+E6wJjDL&a>35>@uT7g9I*zoMY>Mo~hRC3pySnHm; z)=iR7)Virj;IXh{9e?VxHhC4#+T;yqZ8k5ihwU0VEC=;mGo}4^;77x;+cgVCv~;3S zwr0Z7@q27ih*t^d3M5ZGo?2+Me`aDlpd4e?dZjR*x>AvhqWC)ULy0BEkPU@e_q1!i zDIt>_RHPctM*W|8qGEbga-;mhQ$%0o{P7Ji08A{B z{ib%z$@I-{yAtA>I_zniziqmba{v(0?9(^BRl>WsX_cHqg*YTVFfqn$gezeclj1e1 zIE~F8ks@y*MqGIgbz|7gr5G+!xJCtcMMS%^m?NQ!%^tD|4YuXUF5c8Pml`>s8&la3 z9Yj+Etm)ikK87eNt{>J?pu7Z@A_2a@Llg_|9$2kNUjrd!HhlOVxDk8vr3NTal3qwRtbr1He^|XocGK%M z1vlRNN7Cl6+31*sqdg`3*2-|XAv3oQY_exPp}1b$aS0h0?KmPSGS|19J``pF1jq-W zP#^|LrrU59Pk|^tKGdc}DcvW| z5}1=JHnJH9IKlgRdbqL97ypn}?|12a1psdR{f@M0@V2}Z)M%BP>SHL7h28%G@U;|O z+o?cXXbtj7A+r^sG`x``9q8t}v7vs2xkliXG?!lf$73PAqLU(L%k+vhTsME!P(k7+ zp~O@Ew3EH2%*MD}|C;cWE11LsX>*CHsArZ>mB+_SMeCLCAJfF0d>K(yl?hOGgWmf_P~$_2TFG=sfQ2gq zm&Fz&fto>Js{jV{emKl((7&N6NF|4nLph>RxIrC|HD$_U>Lyr;@_Ru}<{X%H7|g=S zhXGGIc_Ct?5^*j(h7OP**HK# z_EKTZ`MwvfxWuW(k;@nYK>NFXNKBCe$@yz%pFoXVX#C`=jfw{o)F&)oXB$GH^BVY* zls1YmOc0tO77;T!fl1=NwnDy=FXMKCetZzS@Hb0tYL+c4RM58^J;!kD!-lnY0N!awdjit6UyDe)EqkZFq za_yVd@;>fkq&)G^8aAGO{Fb!bki%r8qz{>*|qV`WTN*t?7 z!Ed&xTt4`Hl$fIUY+r^;n&@b%{#0~~6P=DCPhh+sgie~SvlHB{{*@(fhqEZy2z_B$ za@un+N#n~!YnCO+a}wO3T8_uI&~ep$@|^;GBmj1U?YtpPpKTyem04JB5%%zRD9^>f z5_wfR^W|4T94^ZicNXYc+4&_0bhQxIwc}gtE8r&q!H1Mnzg5i)fzHFqLxzL9DL&Did?^8-vrZBY`~#S3le`yPzH7u zr*WuzWYqBJrIACgtW{+BsGL!EA{|Vti@-|AR{Se8$Gq}?{jy6Q3JB}4QCnlhyN8?q znvy?(9`__19N)5YJ^GxRZn6i-!J3@M-|lW3oy$_6+H(1exKrSWHt0O*0(Rzv@$|yW zNl^3kK64IatPF|20RcoL_~eQLTK>WJ{G%xeWpaTW?W|Ue#S=f#r! zB{xXZ)_f9nPXo@qL7c+(Syiuum(x6D%F_OfE#amGTwm}-p^3pSHx!O1=MKyh1)Vw%h zq7KgPDXMtM6KmZzx#%q1>Cmh^?r!v}2ne|3x3R$4eFL zs8dP!@ZU@@Dv+{c>aAL2y=H>I$nO}tKJ&dOfPkGWs+S5MQsn;xng zz5m;OIeqVrf2Uh8UQS=|hQoEitq*r=Y-$+CZ4W^6>eSa0JU-7^hvbeOb&v_HcGLlK z35g??t9-kBUW$X7!&}T-Ud;Ml-|(=y$K&s5BV{NlLk7??vQBk42wJ%IMm)*rvCNg= z!6)#a`d?&rsHk}+u4_COr`k!&ESp0a42YA~^R%QnLVqG#mO{c{B2WJ3Mss(X4)nN_ zDc5R8M_9Eu1DmmxhRmRujoLy0tW~QDoqjD0+oFcxJh(>78zy0mijm}sB2eoc*db`% zcj3rb$1-Cg_R$v*L#%)%wwA7MQH>}yfSqnz!&0@WXKYb{ne!^aI3P7v{kl(b8(mS3kp*zz}M;P1`3+Q9L; zI*o`vK;1^ixY%3G5fg7F1tj=4G2I_&3R4OS*&`-bbbGr9~*G7Gdp- zaO-Efj4)n`G$c42aA~+w{==65-wnE`^jqzEIwK-s*C$eYL#8w{esxV)2RC*J3y}@) zL0Cs`1y;u~_w0&vWXJdR_0I3sm28QZ>MO)2#Bw`c2oW!-L9S<5%NO#lsf(yJhv?=0 zW3D0h#krzUDcqB?SJ&sj3%=76mys6kV42D^`4_`-&s4^DL)d4Qy<)H{dXRfJMsR@< zQDJGU8`F+HJy5wp+)HNeYlK24>ubCbjYBqIW3X??T#@PsLGcC^7*Br!_?JY*^$v1rQCV+z>_dmaVtzGqR9tQSQ0 z2z~Y(d>iqb#JBX#oFHyeX*SKdrT9WQVQ!D3sh~UcJtn9Io6G?fzS(Ln1{6{R;sLRJ zXeJR)K2A6uBj6=-Ow*e-<8tdOM&+Rh*XyQHj5g13@O2WQTJcV~y~^kldxF0*9Hie5 z4K;14R|8m1k1O-UL3X>iqwoOcDqr zz^JGws5cQ=lwDLrtPGo?C=}3YYril_CL|;zVP?YOigl?AZWR@GXx+uF?$*6lZEGvF z*sra&)k@t;TddmJR_p)$Ip?04Gm}JF`~AKC1E1Xc+uf6X{m+)?qO zBBqs^E{c|Wvo+fc*V1ki=oh6ZZobNAvVtj-VvMRnLzdG|2VuHEdspZ{oH+JQ9b~M8 z4;7Y^!oorcY@zfk$D#}Cjsv60C__I61}e|(lV2rMrU$B3>Xn|<+wi)8mQO*dS#d|n zhGL2yqRZeisIsRnL$HkF(vQS*3CI_h{$znmpUP--d@+1U4Y~_Wg$?z}2wh=#5n+$x zE=ogI9&J~q1%{?Mv@4#CHpYD=n0ysA!k@!di6tI~;pR0+9+g$`c|kQuE_n@-_GeAc zOsT5iP1Atg{fd;3V^sz$B- z>hKk*=n}U4FN({yxUyW}YHk&#pHYrqCxf(EMUl;&Z~tA zkC(7a&o(;tXec2xC)4Q6(sUJeIiuisHJD$JZJt(Ii_ORWtm$FhG^du`9pVWOR z%=o#C5>`5ayE76QNzzQb0|ubp@+(V6`(;a-FU4c}UKxXkRoLN;9gikW<&4*6+9q)T zS;u@0n48zFx}Cm_Mp$|tJFkmm51jB6<>5TaGp$%wD!GLr$jq@cE|Chtr?g|Wym%fR zW~BV5MaDiMe#xV+NGxD%g)JaqQb+MsJd2(Nr_xaqM$BNMp;@ZVZPpWJq71cMVw8#X z$9SESHX}N-y_Zq*XgP<#&ArY7q;}X-IR8#F6XI)sI$$+w-ZG=L#X_eqHbXhllq=Si zq{n=c)})rN*A%O`RIBCYT_}4=Kw#p;yWA3Wc^lGe{6>}zZ6*x^_OfLLmoS$lW@||N z(+7~~^ame^(BZy*HgtUY9h%R6@ntJ$0=MadE4LD?5uHo~GGq%MmiOj)q3+C72YE$H zNb1WnsrZ_lm5iiEy-^lk_2uJ6Q}--WU_xm`OVvH3$`ZM{2oLx)a~Gnw5-ani%gV~D z&6I<5T+pS;%uaagS#C?7jdyA6*)39B9F0c#jIXikteCH1RjOeMk|O9APKf%-oX+)T(c z8`EB_JgTY4t|m#;iJ2J2uE$m@_9n|Ax0gh_NFwHRL(Gm96^j~%$60-hnleUPv@^2| z!ap$W8=Ep>U`|QG72geN-8nyCON~~jd;zOa?uuWVhtCHGI=`I2@TGAqyg~YYr>uOp(2unWz#>3> zAa*@##^D=O=!fv+S(<&kpPeP{9QrZeWjE^ff0mb<2o$^N;6^K9_Tiu1H5xlTYNmiO zMs@K$bHe7T5_AMc)sL5w*cI%fSGg?Hs2t@9QsBAf{=g`oH(_03Y=pg`rliZXTVS~e zlY6#o;P{df!!V=q?n=_h&(e;C8%)oJ7gpj)Xg-M^ObWfl@De+)?n&V<8b1pTf{&oQi57sId~u0+?COmwQu%Zz zww}#6C~gkeYKa=4GE%G==nKYFE~0ePUE_Nc(xCm5v`e-d)5LA#Q$u6k zcV?7VGP4Xrf;gPp;_~>j7qewe9~mM;%Q(PMq&YvK2dzve#dnFX<5|2L<3*36uy4{> z5X*^#MDkeT<8S4NvoN8`d0D|eB;%n={CDn+iQ9QpC&xu4gJU$lssz~svj+|H>Ye8E zavB_CCzhAHj+}e=602!_!f_2QCU(rq-bPY>PFeXx!k_~qMKM-|eOH1rsWWnAe9gDq zf(~3=W)8{1R|&^i<>f6gG<9`f;NmuOF?k1`oyc3HvzN{|$Z)jEmg zs>G+glMKqEyplPUc+C*|rk}mAAWsG>BUTVa z+eeE=NSa?+VW0FME#nnPU}xPu^o|ZeIT0X9LhitU85N?2QW|;9VO}+5zH3)bn_+nemTJK_3RHn^xilvLy zfOR+Oi7rg-f^L%AjIh%s=&md(-$rS{O$GkAlvQ@Gh)VZnGFXh7SgaEHNm5gHD@NIQ zCMlBI%rbtd!6MR@7=2h(SMt}BF+sCNvR6jY8ihtrL%}*}<6YUE7LRaFA!Zzyc`HKL zmznZ$A;#WZh>?T&G?!(8N16vRNg0~C#*Lbj8%4Gig{1Nd^<^=!G^;MJP=}RLj3*Q* zwTswPCKHSRma5LIrwl9B`v^@|nQ5-P*#+Li#>#nz=HTmcOR|kh6Cfj>#1Tot>SKSZ zSrgL6o!*@>1{Md5yc14F_;PA)CZY+YTA)3rdV}5mB8ie!45P?rYS*3SpmiwP$^@+g zEelAyhF!LL8wt%MVbxxyHD!|%DVHMLwj(q9h)(HS_^5ZoVIfa?RVHFjzR#E7}pDxLUc!ol>Zr8%xf7hj`i_zsq$J>9(W@D9l z0a~>s3y~LOpw%T_ys)ZkU+h055O$3#p92vt*bm#cN0EF|?A`PZ_7c0Th?6giV3-*F z6vtou{N$scbVwwJPApld>r`w;@Y5CEN=VD1Q^gPCB`IVBZW>vcE1RA|+8_YffEG4k zd|k6?gqiBhm9Fs(kC@5s6p0=2cO79>+@wFcum?s<$_BF<^VyxLJdk?!G4W%15?qP1 zrD?-}JR^Ih;?b0C>^jMd#1=z}UlM>-L19a#C%lVYT2#@)3+<&2Sci{Tlc|qUTK4>C54~EQnCN{ypk7BN9m+a7-+2Ilq3BiTo zvnvOTmf2^e5}W9^q>EZpj)LOGqxIoAjTDvLaD|j;wG-4To4%=WM)~e{PKcgURUUpD zwEPxI)flE|Z@QIqs`y|Uw_2;Rizt$47~_wAjAu0AB)4t7`n;Dx) zjmAQX*+>UAjg{tTINrw)yp1z7?&vYpu{qP%bQ3e{4zncbpo*bG`9t_O4YGpCpBX#4 zYCdEpKJuqELKTqb!&Hf$RK(Yu!Qg1VSQ~D*)#hJHZglK>-K?5SLnvSBGvYB(M$EUt zj7&jn+I@)Y^^pSSJdilu&b`J025_^PLE9K2v8yVK;I42320;cOB=b;wnn3oJY5bKh zM$0PRU?uc91H3WZkS(Ms#r|f@Vr)YivD4bAUW>ioYgRj%a*us%#yq24u5j&=rglX! z5q%UkwOo^bzzZO3#5leQrCGLJ+HsHBl5Oq}V2Pgdzor70`CSJ8%vf`g<$}G~Z|=D; z9`w@SBI{`*`yPXA&i|Di=iwpGf6nnOejajXK!8kn3Z=Qbi&a^Qkd= z#0@^q?Ox!62c7s(i&9~h+rnH&^DQV}=Ht%M4%U$lC~%MLhZSPyb;;GjS-D!cg$A0- z@i}T-?W%U2m*ZTGotUe!TmawhFn~wA01A?IKFP|3d4d z>JU<=HX2(+^FX?YV12CQG2_dmTrChJA!`8IArdKnsjR3}R*D{jpzo1ks$C!FxEhkg(I2AM`vMd^Z^7JEn=o`mFBB++1JbfAxKIS?`Zq)P>#>I3h zUR2qIX@Dl-Ln8l?yCcivpJ{D${*Xw-dc!HhZPv%Rm%hUMJ6_7bj@gS{iKRTIngd^o zr=~PxKo~&O4x*D)Qb(IdW~IQ)Nf8^uz>n-p(MauO@)t;)tcvRFpknDNF-V9POI;*6 zqZmCXADJnkwwXLgyT|%RqsDhc6`Rx}@yLX|F_avv4iI-}J>wh#-pzM~S0i7*8zhFC z08MOpu8KofC~FlX3KV7$elVESn_$ok$bk$ODiKpq0-^;fS6ZdkRvC~sE>oB>=`i_h z2~6uDI|98ZvFm3xJw-$!NrB@JwPsMnaYd*+*yy&fQvGiZ(=}4lB@=W>RhrtQUYvEFB4(rgRoYB5AyC3! zR)jdXdtBUk8FMmjDG(9Mm}6>&Zki`2=9oN4lU6EIi_u&z`Hu9AI#{RlAgo48dDJH~ z9DiyohU4|-QOtid*E|{&K6*p0jyI3`hmY3o$fFtNQQ#iQ2>l3|W{?zVRxp4hJu+Wc zD%NIG!56qXNQDhQFBLX?mkMLleuT_Ss8pIIbJo~HGBzxg-ISuZht6R$ibA!6C~U6s zqOh@6_*t;Amidp4(9$U_KmIP6u;&MrWK9`)!E8B93aNNO`+mo8Gs2nN(+W*Hj9u3a zk=zbsj+aTy*j*~sBC8;vu2B#e{a*|LK;Ini?4{<7DvFXuNt(rG1z!b&+^DZQh->Cn z?iKE%p^9Wf7wN55y!MpNfG*FbZk19e7RdmjKLJ9}*9{LPgPLLR?WAs2#eAM5NV9RI ze2F5pQmeH)JE;${g!dw9P5%$FdPe z+vj*;K^=Ee!+G+wmCL$PVHw+InC&D(O)DK5=@Tzm7>_Q>Qe_KS&M3b;%C>^& zc$=!O{Y?ulll&iL3<%7o0Z9?+R9b!O65l9^TR-nc4--r_wanX^2HoRi9IL)8 zVo%AL5y5iIL^D#DNhp#V*~w0r%=*)nA#-3}rD_c4=H@eD=7C#-&~ z%Hp}OES{?!CS+y*!~w?0EPCO}P=T2)a_9 z`l{1Vn;&IFl~Q%!eDtS;iUu~i3CdG9Zj!E#SoSV5orPdtJ&*4B00)uv%MHBmuv%4K zPVz~0G`6Z+_6^$MYr6Xs3%`~##^N8n!g`zRt{TY-tdDg&GvwOdg`lcFh3u{2v^f53 zc&K}^G+J8z(t6~bMxhmM9^{cn2gZrrJZQcFX&0t9DX#U~CNA|CY9K79lx?4)vZ%YDoD!UVyY*$7M2XLcLbiicSL=fZ8qmWrEMd$JH0{^62yMR zP7vL*Je0lXqqMqLSh(33^@ykV@K5MNmFn(MfqM59-hG+w!;s!Jo>f}04=dvTdF@aC zIAw}yGa`Tf@k5KJ7}gWM{M>u_l6lz;pX7`Yqh}=kj^_F=Ma*Ph;m7XM44mE8qrX(W zhE|eoo?*Ag)5;2y!r1RLfMD`ug8OM0oFU%x-l+Q)#V#zi&cfZvwtVf!yi~qf)t{%P zd$+6g@~#5Aw}S5?e3>5b3ayBIgq4h4c~>ocWXe#9(h_8eIE^7_fEBSz9Pf^QVmq(* z?!j(0jq5LA=q*`Q z-S>Cx%vR5Nm^Tq+9IGw&BKCWgI}PNdP)3B6YBInqTe{eANkkR|QI;XxWPprktqY3G zOn@hv30Ui2eY~8!*qMMij`HvBh(b;nkQD{({C3W$V~hwS_f=;l%S=QcPCY92pkgs zRum)J;?o!-XpJS*gcheX6tV=sGQj<>60ZAvBx~0iH!yy~Mw^iWPi%5h^_kB{8e^+| zvA0+QQthIEQeCS*vFTYmpS4p1MyZN1b(y6VBhflq-ORcq8C6o#^I^$2+X{93UGezn zc!KCJbEqXU9PA%ADj*$!fj9I{QLH_5$Fy=V`(;=xQv#y#an2S)<}^V!t<;#&i>z=b zJ5@b^Nhvm363t8oBSmP2uzEIe#+Gq|g$ueq9>fe+(Hi#^4(20yu zkHRs_pwD+9dnzY-b-TzybM{S&Z;Xv^Ts9UP-#FqMZBmep&)hIQEs8&;LfpZe{hup& zDv?vWc|-lgvqcz#CAp_6y{Jrn^dU1sGe-fxTx1S^q0EfoKW)OPqbeEf*FPPpkZ0y;!OQa}TTvE#P{f<8x*SjMvU^MX~O9fD+g5O|wjvL`ZJfR@ z5{uT=?-+6*6f=ewpyGq#>)s_Vk}2cMt>?YaRl{$Q(_y++YDc}Sbq@YiFkaJAr2#M_ zuQ4uvw6y%#aG{8pye6-DWB7#?stFgx*WCLI%`$$sE)vd`>*hX7nRa+B_pw#X6>JRG zRpbTBj6$u?%#-|5+T44SEZA(%y=#G^hOPhMWpf!p<+x!tpUxEnfiyGMJsA9d!o zUwgMJZtEnyecQXezcaV`ByT}EyxN)D-P*fdaeF6e=+oZqwVk=$wY}T*ow?nmz1t0) zx!t+F+mAYP+q=EnPdjtFQ+u~J-qA@p?AYGz+RohW(BAEpX zXKs785BHKao#YLByTZ1!vNN|B;}yDH)tOs_qC&T~cIFoQxQH1;>_`f0Q&--Qbz%n}thwf982zC5dYqWChKRySc;gnA^1Moj z-)f#?LV{Dt2Og_cGL1#DQFd&2fS|L=4hG$CMNwX98p34a)tnxq#A-Xr^@6o;O&5*G z^6=x&AY!3`(;IHyD8ajw7x5R@{Rk^#ZE!T?wXZ-PDpG+Dipud>B?_b{zJZS%n+cW) z^2Yam=?954aJ5yYFkBSHu0^mnQStmgG_!7|k*bk+Rz(PJ+Oc-{X`$&A5=wrRpfh5Q`6A#;#?Y=l)%HZ=4V>QM&nA*_85)(NI`1dv7(N zDk?@kWy5~%hN&zhhnLRxr7@gL`7FFi{c zd%G6X?llXGz0}=qp|`i@90_iptgzeTxjjKEp3bQj)BS%zv}Z33jmJkyY#cHSR$@3blg-{olXwoz#LhTMBqrvp1KBC-soA5?>LTfJsW?Ga60)_A zT~aP_S23X6&t_EH#-ianf{@UJEkZF4)}rXq(vO;P36!epv#8S;82M=}h904$V`LRp zSXAJ;=X+WhULl2H&0(hp+U1}bAoFMKVdTbeIipHl_QKk(Yzm>QPA35+3rQ4O7`omN zuDBD|v(k9{{*~+K&$8LFl8z)l$vtedoW_L}ks}a#Fuzw2gn&e?%LpP=cQmp-cZ0Y? zIwDQ{;atz3g$G^}s03{r3!XF?KpHoR(PY5(a*63-Dog+)6hL`Zah%7R0+jUCViRZ2 z2PGUZ5MN80;|Jk)#QgY2S8#u>mPDRHb4WQqrk5%yjG4=^gHR=@@UTB+iZ8tr9;pl@ z*<6Qyxtk7H3y(-Lbzy~0(uFVDdsrwEjwA6Em@b*gx0KiwCKp3OCHBUHF+K>)BWEwL zOjZk&O%Sa&6+i$IjLjz0+)9AS4QVpW?b{cU2gBTyL^AbZB=)0{^6PsQ^}^)MaG@%( zA_}F*SoW?$d0=&0E72zCi@M9XQmfLA^w6aQ<%GOc_OyD9==h+5d1()0(h~GIyi$fX z_^AlGR~7|5Dql6-CvEsDqSvoOpljorpUXvRiFc5hu^ndfzrxljC) zh(2@Goqt7*@s;OOHNQcRp@Kw-GAMcqE`Lp+LnCLQ^uQPfFB|bf9D03j5urXTUzeNh zI~fwr<5srbMD@v2Qr^(MV_v18+tdPDW`xOuWujD$E8QGCnkNHcBrt zwVY4aqq8@jSOx z?{A+GBxSOqh}vhyzC65|)SU_oT{`h2sK(4ddmueoY zD5}Cf2nC#;UQ$$5I=@kO%ZsYix`?VI-v4m^41+Jzm!mRaAxW}%+Mqnqj8M7pVHEwD zX1h4HDL5Qs+)=E{FUaP7jI?rcIj#yTwG~B_D-kPGq&KRgbxo$&hNaBt^l?s3N84wc zysj&YXaYq+`B6P+%Iwmugrf$q6U_1AU0E|%P2qw(P3b`=V~5Dl2zIzr=min0A69)5 zCVYy`h(T%WpTxk~J2WRg^J*;GM_0-Pp6ODINT?Z1`ZyY7I<>9umc@$#PP*VcHmVjx{8%%X=NYdHLdhQT4Vez?#*sm6-xXG@68|b z-aO^Kc{A_LGv1pw^4>h_z4?9Ko9DbYzsq~`g7@aPd2fEAH!56G{d(S;k8?~T5YwS@ z;xFRD^eok4fB?j$f0gX4On+doJWEX`%Qd=X*<&}I=F8_*yT#cpuFtD7IH`bPFVeQa zQ(%dq^B$$foB5*{;D`~N6zQRHSwbmA zYtjZcGp>wz9-LFI*i~j^11Z|&Q>C)12ywvJkJ}{3cE_wh^uthxB=A8)ZN1Q!5GCSh z$$;^jLp11|F%ubGZPCllCMNEiSI~^cEWJGNUg|(8>%&m%ix(yfRMKX zR=;+{9~>Q`#Xrp$7#Rq!pC_&S)1Qm{%O`$S>N&f|E@E2$*Z9N-(Q26tt}<}ZJB*-YjC{h?Kdl&cJb`O9CMt^D8I z#kcjLG0V1D_~2;E&06@lF`IYyMQT|BG7nRoY)o|6r7($hM5-8#|C#&^>j zXIiEw^V$V$Duqp@T`>H|Lvj2Rwm%2O5|`= zjO00&J4su)qK%67i(a%>HRuc|rks1G7#wGsqcJltiFe7-T}5|wwAmu7OWGVsfsg$g(+d#!h?u>Ospxxk;B~cFvkQGOqnP(v-&55zZ;f(#C>1 zGV${XBkGLm>6UTTQy4l;%heIdq`hN4#}un7qSP@2cl;_;k2J>`RT66?iP~_JJ+r)G4sST;a!sv>r2Pg;RbQ0-Kvi^Vjx{x3Z*S~bBBiC&?r5d7 zUTepSc%OKGwHyv+!<+Psyq~Q)Eh?Yv#xqQNjPmx3?uQgb%tK9RBjsIbT{>sNTt6ze z*Y#!gdQJHJ+VF~I*tlaCXbIg>en!8i@?> z=$oO3dGu+x-`S&o1x;h%XTyIFdRLEr19~5it{^5ZhRnz(Af z-oVj!lO~k`#huR73?H4W9(mx%Q3s4j?mv1&&6v8;W9kk(FgdFF;86!B>qaLIs7}@% zR5NnS$l(-bDnWJBw4{=zbkj`@HOb)%T54?>XNqExqY3vv#gRxQSD#iHIyzbsi3A1o ze$d+}J?WNIW_UW2sBTIQuT3@7Wt6&-Xe{y#;`kiw1|0o2?sxR)pL5^eqkmCAkB6=T zTVH>frLD=@p@~$oIWct9FxqThgT06J{txjy4b&dDKEB0?^n#()bfbC6X1d6zVF!&d zG1jy+FG{M!RGDd&6~;D^M&eusXewFyYVK85R4?j7$}mJJ*Dfq(eVd+qHiAS` zQ%j9)m6=pS^E}fe%S&RBqe#m|-6N5nT=i4>gfdWrFA_3$W-{H@lo>m=t$A@O(K=}G z+<lS?w~-Rfz9!%2xuqP;^s zEpRvm&QjoTDzVm1Y#|{_G7}Tc%`KT3iBvi{eL+JeOyA_@nwDBB19!(ZryJ&xvT1Oe zQDb;8%Om5})v4s72Gc%fC+2-UnQDn=sK)BHOma#~YJnc$<%mRjVtqqXEqw-RTC#aw zrvBLG#^#pA&2lw4Y(#QBsjZdLWU%mqp4d{G%)Lk@n&%}$?=*m9YLQZ>Fe&j|>sCt- zT^*N9r77!>@8(kIVhSTYBbo9X%E>fZ;7k>+2%8r*CQ)h# znYuB@v}7hWB&XKeYuH#IrqpIzcA|Cy6;x9{8&M#cnc7SzY^a^lmad;(J)b5YW(z-) zn_JrE)l+mejZ-tp1?kx>q_KG^_hAA}Y3Irj#aAQ@js~N$F;$u^n#t0ToST?2#!bj6u=nJILe>JhLAkg1=%pf$796z(xC$2Ko!_?X&U*FtX#L-Mj?+f<0 zafwueqypQRXC)IUH7_1`VIAAtkWsyOkHVZzl>q8Jo|QDowEcxf)I3jqCpF}G^_dv0 zLawGXG$l=8h-D>UnG|x!xMrD=E6e$g)3_7X%2dYChMI;9wUf?FT0FfKDLNe67=HWG zE*yPf0X+{!qjoc_Hd);^Z%)FnT1UVf+^u1U>5!^Z%NmxfpOb$xr#|bxfo2domeB3p z&Y?XzvZW?>*Mu}9b0<&*hJ&ww zBf!^z#x2P*8k02cNzQT4^ju?*{3)%D?hU<D|kgiz^3LXEP=T^``Zw!+KJU zspdQfEv*_<5>27YU_oMDLk%7apPLGANC%mgmVlwLsp$*CD2SrDZ9#QXO(mFlTpXFa z)}$fr1z;j|^rY#tTw+`+LvWbatP#a`ljmvjv?)Prs)eC?!IygOz%4W8C2DxP6m{Uf<3N*h()Dn+=GrALGsdf)G2v~OhA{4SCE*QYfda7Z!U4)W$xnSc zsH5_eb6V@Ej-ZA4VqH_qVm}E?0gOnBqqH1-c~~wZ+2DLHo#Zp*A9+Pu*ew0BbQ!md z#!s)ypT?T7ZrtmM)2B=c>KLWJv@IBy9kunX=N&CZ$`wyLaM&m_tu;KYhMWu!(+(3^ zyJIY(*-9K9CZ3U(g}f|QBY+P*aCDee=kMq*^_O3ACd2K+9XX<)2t$5f)3RWJ>#;6r z;j5;WL~Y>S+xq+>7pB{6wTf_)7~(#?^T!ECJN~%!b=z?=j1v;;aroNVvnPE+% z9?+#1G}H!P37V44<-5j={I!Po)gGpSy?~>qa4${sb|~+T#HYwO(&Nidj^1|tq7$CS z?4Z77xEQj;rpU9TqmF#v4E6?&zA>cdP+0ES_jz_0aA}>(z1n;Mt4S|iP~FlL7?p9z z$qGl6j@XuUFV<8L-lhz@VSv`DOYbDowrym;FD%R40787R-C~gjuF-HTaP&WUrt&Sw zTTUJeLrMRa8sOuk({F!{cJ0s6b4j!6cxpXsaC9m0_xEVE zmAFU$hkK1h&i&`y`|gVh{C9^Q;ko|{_ZnNA{|mYI!+Qx@^Us<@D~g27(yR>W`C(zx zxN%|ZS3nPiKEQK73|cw>{j@ev0yKVZ#u~x4TmpzZ-!Fd+U}Bip>7n#Z(y}WsT9J%v z0R+VbD=sZj`F$o{%L0abDQ%F?q(jGWZ%tKdmjrSgiOeJ}tq@9<9>&$tBcKn2 zPNZ2P&~!JbOE4DIjt!cVi|5b+gRdN_@!GjR897M$g{?22j^)GxwMJweW#RKhM?1c_ zEgR*Dd*!#utq;4Vg%von#E>3dok=B=!S3_$& za{lK*YrJrD6LghFFM!?``WRaGv9qTP9TT*h>E&Me6KqYNT|Z+sXO>e~P*smI%7~nn z&$&8gb~vqeYNa8@;SjlOrx!t$l&7eHcC$}AF?C{^uh1}4ck~q~*SEgDzJN!ik}zDe zs$%5Qe!2S2#0C|QW5|AdhaYonN5RRtg6QP6(+<`%4cdgz@>K?=%tGZ5 zTKi;HJ7$})KQiRE8>e%!?#%Lwod&ohw0j{|&l0i!ez?~xZMw4R$-HiqAN9nRwx-&k zxg~=^1iBE@YE5Ggm%)OgXAPA$Q!m`3oTDkyPZ@Qp3T*4!dB=RPaI6`>PySfr=(l1s6*+6XXv8Mk3%j=&bF7?-~j}PG~G>%$9*qXl|#vmd&*yZhV#+7c+vr`Rl z%?!%%dTdu3b(aX5wDO$_oQxY87&CsiK3%EA;yI)Zt~G=(m9G2X|4N6e&$--hoAGti zt&UcbmPX>e8c0u7)6|k~OC^Jb=0z=ylujyH(}wxQqGS`|ek!O%VmR%@RVv`T6;H7l)DHVZ*pT3TnB7})`a>}23yI9*)dP*Wc) zHq4<(jDfb$)|^h%B{e)Iw1P~L1PX5JTY@ir(IV#5Vx-^<`VJgy=YC%;wQZIv$<8+_ zxtIJP=%=}oAelw&TTma;mtypLm9XL)e~EqA>Rwx#>a6~(0n3iznN*@7lOC>n*e3-o%t|j^pAoL#w*FZ_e_TNK zz`tMDWzfF=U7)1{aq;ynpesY#r8Cr(ARLNMX$6gJ;Q!g7vB(}?I1}-wcDm_(RB{rH z7uE+GwKi$#U@;xqh??pUl}O825z)V07x5jB4L&6eOR8Vp?w}D+K=xjXuq8v zUqIJG`~2b(=)enq1+>pUu7Z{hNIz~36yL;<`TEZXLmZoJbEZY;b=IHe)#m9)^LNy& z#G+)nsU_pP*$={4+D&U|X>0;|$JOGsRa8X8WX8jqsWQ$A03M~+OY2wTMGnZ!XNs{G+X@nup?83M`48ze+KnLFYA42=?e+sSk;oQFrtvopT zm(bGcIa-pJ|2{^Y`SelH;=s=RZ0KE}O`g~r!Onvux=@VD&32jwghN!Ei`gt-pE`eM z<4+^2qr1Y|H8T3NtPLfR^UB~Lu46(tcL#T|QvIg$RkzzAKzwCV)-)uTNA;~bC>9w{ z*e=}t30LuNdAOSVvu6p-tBoNN`Gh!*^x`;(IQ+8R8(QtdrC~rwZ~OibW_>t2o?s=X zjIlgaR#tlxzoUFE8TCCNJaVQ9^o9sM}8(&gw^pw*8Z{RFfh|9OmSe!eBINgi|VZ-y41 zbMzh1e*BL>OY(N_{{%h2qd$TUJh}wF;n%|)XpMEwe=W3TDULo9+OMaJp#A(^RzQCh z&6WC%^M4HV_UYI8d}`34`FzUJj!*gY{-n>*j!*e?;d}9^ZQnoAt=ed)e*G?K{|0er zOi@`oTJ@y5@M-bj_FATfU>pl;(yWCB7K1dSbN)0YYv$-^<^6 zyZiISuh{YIe8SaO?&#IrtG#V~Tw0lEXr9CF+?wQ^Pzh{#{FuY69QSYHfo*Kk%EXQM z>Ay|Vm0OuuOPJFL)2&Q!o0V6#Pn)V{9>QQ((`X7}+<2?~)@r=klB3V$UUHqI&*nbx z=)1UAyL0c?a<4w`=-+a`k4L}Bz3SAxf1CSCkJcnyJl4J630iGp)>5`pFB#N*T-;j1 zh;Q)9{HF0t_iD#;!+WQ>V2|8{hIw=5u$-S}ym8WmeBS72#~XcGyus0qH~Mtp z`|Zl}C?i~0JP*f_g-^7$zLe= zQ1bVw{00*Zm819NnCXk3j+9?4rW=_A{<}7> zOPghj@H{!0O57hH^=jmrrB*z3k~4Q*kXXV)el8c2xu20rF5uvfhSsK~&Rt4N*lAYM z=ipm~AsKjkGrfv#^K%sUTD$X~X=Y>B?esL~_Gs?S8l8EXdwvYG&gxKl(5kj*{m{@_ zf7XMM`XilB&W|)3a+6J$))ir@sf^BNncQ5fi=lNa5VS5|Yf06b!#FtS>zI~2(tj0~ z2}!|w^Gp$X3ze=6)Hn31v$e_@N;p5~UTc+dpSNDQ?HdT{&FVJJ6H3Z{=+I-Vh7jS@ zXki@vF0}YhH$b<@UMsj)yVdMpJp7EKIfDUQ3a$pL!JXhS@H5a}^I)_N;ks9P7!P$P3>%4WF7Ye`0dVy5+>i9=SGn)$(I0THnUizB7xgVU!O{Cc z2Od4VfYzQE|2+ppM#g*Y#}&LEUqHtT=&wPWdJG5ntf3^fo{1WBa1xV6&KV<)%9*i< z;@;Bs3=AW__PnWqeNp3riSZfniBo5vuwC*WuFO14TE0OV zu7vTbtlOt0$&rP_>XQxg>NCNihgxNANDd7~I{$Zv{vGW!hwa1T7@v^a5?XCKV+rT) zP?$W5fQX~DDxq1Uqn|FIKZEYS$?0xZu5*d^!rfSG^Z#(z7Tlhvt>+<~aeuqYH2PTE z7S5+FNOpDf8_;V1j-EjI4)W*^c`xmQd;bA+A85MpK$HNB*%)VZ18FG-*ccQ})MV&B zX-YijZv*~R?=GBop#6Az5U(_S?){F?l^#7DdIyh|?Pirn^96;xbngo-x!HxMeWAYl zouU2sc8B)!*|&h+3tIIbvaWP}TU{NNk9Ms-ECEct+m(QeKZ<`p|BIl-i{1Oh(3-P3 z`dnx~{h|l+{{J;C##vvpT8y!zPqL_^H*i1Bqn(z+y?0s;mtXNjzg-s7K74vgNN*{R z%G#CN(`>)=T!tSUZ#6C_auv^(EU&qeqcx9JeQjxaa$|-&xhfLbKwOe{Rs%EV+v-Vq zXFQ>%N&He{;1MU-y|=4~Q|0aGTe(;NboA}qOAdDQBiyUMIQmiUJ04?<{9CQ7;AYCm;x)!|3| z$I)}SSA96TntSmdM=$5zPx}qf;%Dytueq0oP(Pjd!2ifBFdG~Tjsuz}3&#V^gBjw? zT>a}@HCCSpv@#~>$IxZM`5&(86LWzJC&9gbumR&n>8$~^z`0Re`Z+h6bSvNUfOF%* zQF?`X&;aIxLO0?Oa?=Q!zyi;W;@W;=Dr_EOeWnHUAWm4FiT+)a*y;8(!e-*G04mQG zaPEngN9t@D_3KS-8_r*x0+WS=qlZ9iEOhj#(8E1?HMHv9z5gw=v<8lTv%q~R6)Wo; z_r4pnAKp0VUA*@#(0+Pk#kPm{elE0heJ;GSpp|b&%X-bHuY&f|D?4*Py)Q#6eFu%+ zf7Hkk!-ox>_qPcX|2Sm7eFqO3IAEXtdskJC3HI7^kA9!8xbgCHS6y@GZ+~~rN$>vT zf8SX9`inn!=)QYz{r(Go_~F$L-*wuOC$D?v_Q$`w`iiG7I`58q9=YYw*1Mm2?AqlQ zpM3VR%g+B!>i1Xv^VPp>`0TCUy#0@F-~YjTfB)#63qJnv-+%h?vm1Z4^1+`yaC+Z$ zzkK#C)VXDw(xrDbN*q6-(EvG~-R+D@E5>xi0f z#;4!>=kGoL#GAkP>2tq+?dR`*a{XVO&T~tz+p#^jv(7z!&i}1-?mFUEe-_W{4)jxh z5?a9wlVWc8x#tVH&+m%ay2+C=bk^dd`U>BR-K@~fY7uX(e6j$X?B z*2^b3YmMazYppQ|{vrM&>jFQ%lOSgCfd~KD$q?JU-G-X2Shdw_X^x_?a9X%lIi(?$ z&NyOP3rAL`GX=I0N^-W1oMNaPeQE)HT1dNcJ{_79d+QqJNg0K~ZcWnsnZx>2?b11Q ziHs!^iTTcXbb`pKF2^Zhx_ebXP!XzY)w9|`8M&p@$+2n&-3W> zx!2F7^#V&8nSy2+kz8biO;p^R-JMu6CyWUBGt-huG-YXZ-E`z%v>Ao9tTtx!0cVHT zn@LkS&(DYM$#o@H$-^`328Q&7+`BYh#C>%e`x`Rp`b4^3C2FptT3Z%t9PAb1T;jSM z+z9@g<=a1L%Xcp6kWA_5YTbME-ZZL8kM0jG_wD6h*RDc|o}+O_Zubmj+b}X$B=RwN z()gfxnB?I0X>?VggL_71-Am4ud*@#=zGNFmOU4}H(UOgKEuaJF@!m5rJcVic^-y)} z?3T_@m2S2*q;&|XD>=7wP%9JcA!OSF7VdSN)9i&S+1O93WJ%2tTw2A4#D^WNIl$f? zeJl6!zul`Q%#7IR-+pDyT;6RQqo6+}?=+dn;bpc>Y`=Kh@7&5X}dOUO$_;1$jjK=)Bb+oJ7tuD7t&UJX5c*Seoxei+$kJa8 zq1AVMTKaZJU&nhtKIy0Z^vLSa&(9Oket!M{y^j~3)-zO>F8p_){qp&&!2N#;+<#u+ zzA~Dh9<4w4`O84Zz4)$x_Tzghe7}9$mKhcKl8zC{BFkIsxd)O#x_fD>3hC{e7TeYP zv|4@kLoUuOJSV!Ne!HBo)o;%SstZT2=HB$^nBA0?K<(3`gGP5wBJGGarIo)s$rp1`sopMSbf=?ZBSkG3kR(uf`%Wr9)kj4h` zeHjHH$&PRGXbYe@XH9up%<^MB$A*N0X~3#oxKzhEQyj2VYtKJ)-uNm68Q_3fS*e@z zMcTd5=b~)*{`;W`_U0x7K91ECm^GDL2*IEQiAK(OF{afV_!90?97;q@L0vMT9m)a6 z;qhTW&M2xK9L5-iSi?d7tf;1w#w2@@4!<=^jpkgaw9V%t4k$I}8+8(s38RCU%#uaG z*+^`IkS?#aZA24SMs#lo5}R&2Qc4sbL5%eZH;*Bq?j!ih1RkcK8cYvR!EwLN(4VgujbxVk$IYX{#|IlEwM&q zTsVKDH`lb67Mn)q7WG#!p*962|)Lm2~A9f!rwJ->r{+Tm2%U^VvT^s3yu zHQZ06_f4Vmxieq7@=QE{CT_HO_b-Y?W-ew$AJhVk9dhHYqj+`*m;jCf`nkBZBBr0C z?b{rEr+uA$e;4$Yj?39eZzr>*ilqg!rT^mCn<4H7@-_xYqIUFb?)!UmqTu~W(EEDt zMNjtVleyO_q6_ad?j_Os^uZqe2KRn^Z$e87bMDp0`W4Uzc(mG~_?~kw+JAo!bfx!R z^bsEYIQN4*`bqA;;?d7=f2c?Ql>2==`W5a2kA9tdrN8~yR%uKqQu@|r`WuOF%Iv@l z&f!tOp$)=-7Pf1#AZ?vhe{--Gw$iSC;PR^e<)>Z!$}fBE!_@4^xz~w-EPVH$krtoUSqY=O^vQD7k587Xa{t9;>DzDQ@+vFY zZeG}$+4*H7xxuGDh4$NVF*C12JpZEo_ilEClPs^eoBOFcxe_sxQ*mq^$^pNU5URti z<|hSOkrPkN*NXVGv?7jnS`nY#8m&l{zuEM3s72dA+P*;=J_o8xNB@oc9X0 zd#6Qn^myJ?0sXeV{4y#346AETvpa&`EVVM6PgfG3qhH~@X#Hp|2H)qprRnKt-Ztd) z{CV3p2-}>Lt-1ZVgnbn0y@-5>XFA%QoyMbVJC&BC-4`}_=E@>TgI0Yx`ezi#LD1W8 z{)luzrG-aHM8+($);RUVE1u=(254!N96i5)z6V<4gM0r#fq(5YRe0GGk~G88!8753 z;E^+8M!t6bU&ejlg(vGE@nrY@O=!ucj(!i?Pp?+FmEOY+J*@Juafco@t}^F#G(5)- zOSGSMS^4^5&4Av=i|fRK_i5(pRoTr4Qq`6ReV09**`%7@|=kvSJem=if zK;H%Jm$@v!cJ{*iKD647>BTxMofEa2*)>uf9vjCLFL~lwF(dD}H2(xYei~kdri*0r z^jGLAkNyX=#ysbLFnmgBXfH$9b7bh(!+*e*;Gh)b2RHFb53CBY8XUpn3dszQVI;`oo4xb*It-E0b>7EHa z(kr87A$_X%OkaQW>+Hb-Kd%_kmVhabW}n?<))54=#AWZ}`5G+$`7^yd%ET7 zwv0J#ap1u5=fzAuYPcc>WYa&3^hh>#`S}*K_%@fUdrO=Y(exAuX5}}&a z3G=-NeSefQ7+N{3CDpPZK(jT4k5ebjiI-yo+y@uLjBK<0WMj00`pQCcx(O-3EaS~4 z&iTYGeTLdnVR{|UtdXv~lZ3A&42>NwtQR^7s~Y`kxNy>83G`czrJNVeE1iU64|(h` zh)6AANbls*vYva5g^u3HJ>AgsBmbHBkE1`}Uh;>dbyS7gm!l6Wpyxs>O!vOFfKEb7 zws-FrK}!a8^a5z&p%P`?=84{kifJ&G43`li~YL z_;y`WVjkby7}jQ&6$cG=;rtIWqS{4i_lovjt(vY=znRdl`0>FY4!#Z&;G_;{9z{+E zicbhaa4~H|?*tcKCHK;qy6}RK)^nBpSTG)FJ~9`a4CLO0-<^A*JVXUoL3%?W2odM1 zbh~&RJ%?vP0w_QJ`zhh`ImE!+Ap-BEmOW^jSzf(-zn{ zW(_24E$c6eMg9oh22^>3re@;P)!n-^=&Ja;gl=>%Kf%SZ$QW=0m;vU3RcWg7C&)~yLj6(&>z%GFLqjOKMoWqabwB8^-e55D-q5^x-O7A*xwZeCa?Iv}-Pl89Dp6 zT-APEnG`e%s}sP6p|FW<#GiPB^HX^33QdyVgYvo8$eG2BS5>&Oju9L91Ya1DbFlATcE z=MDU7Zt^(kR2U8BOCn8t4Xm&)4bgW3VK8*E=33Q(Ghxxra$_{ow3Io^<~4jQJECds^uyZ7S@@Ux>|DcmaPx~WW@DB?edD$Yw|fz`hxB&S_Feg z%M~#*t`)XLuQ%7It8Yr9I)$*tkuJ|KhgCLb8tNJ_lCdSF)5z?!ENn@*e+qv?xn2|I z??JATMPBEsGX6K$fU6E>8k)dJp}AI{<*8|EGd3dju|6otcj9UTLslp2S%$}zZB|+S z5$SVfEHaU>Cenv$xgJahl#HIG8DLabj{a&$Cz{ZJB$`_56A7K^RNa(lZmi*y5X@BI z?emz1)Ek4YR!&pPw8C98=6pC~*R>c9zQnl8g}W02Rc|kzy`cB@=pyt&{`(ea)xAqs zs(@}QpqCWTYoJw@&i~y7w6l3}@9z)&Ka3x>QH`sQ0R40?tOU%s{(ocB5`_6Wp6la4 zvYYbx1b7ng#h)ARdxmfGbrsis3jDwD#hc7)@FN#r zoj=2ORwmgzgssleZgtGj^QaE>*71ZhovT~<`o9+olKOa}nf;%5O)OGP+BCWecZl#S1xN251m}@VO9utP;(zt|o;wp}QlzZ85JNjqb@8Quu;a;P!doS95 z|I_e&z;A4jbGL!#;;PP{I?!RzTi>{Hduun4w`qiF_twVOK1xsh_{AMmj86mYI^^Ss zQX9?Zqoa%;+~rQ2vfs^N-yv3z<}f*PwA|LGkIrOGyDz+s$q4DV8fcQ}=~?&ZDwY?I_6oGOJwh~p^2bPLpuc3sfXKMlK}qg|JL2EUGB{*e1; zfhJ|!PZAFg@ZQwEKb9)Dk_U4OOr4Pw%onO@rz3B`V2!k{r3?~W&jISXj-Es#+TEk2 z{E@)o-aiN}WvHWdG>^JpIG@e8Sa!mAXtuol%BQKJnu^^>-sX~)cfp=OKMiWa8W76c zvKckp_;j9q4iEbL^DS>**`cHprS|ew`AY2{5vPP5rRh0<=#N2nFn4A$&8fv>$F?;~ z&pT-FT-Gf0E#SGNbgo@%+6G-9`#p)s@YVUl6G_RI)$=0wxw3nK`(rsm-V~Z?R~Yfn z$+Q?&9&QQ$F>YL+5UbSB`4_94g3dY{hBUcpF(mHb zqg$GxTRd!1e3sIFa;bA#IvS?BZ2sX;+w|x zXmAYBFgyc%70d*)fa06Y^;mEm_!^KKZdG(2_zG9oMkG8XI(dVmTbV?P-HYH*XGpNs`%K)5rIq2R7S zM`rH^`hdP*cc5dl`vDo~?FlMD0QLq|U?0#Q3m2lfR+!4M#0!C_#3pd(NZ z0HeV{Ku2+p1)5mtcuO65`4w;|7!RcAp8(=Oe03t20w#kaz~SI1a3nYyOas$_77V@$ zW`J2>CO8(%2HN^|95?|S5557u4!#La1arXufCQKeYCtv6B0?>g2kL+fnCd|zm=6|! zCeQ+!!9vgq(jW!eKn5%ZivTP$auV02;1qB&I1QW%)GyLtVw8JuCeOYF&IV_J**rU! z>$kyi+?ie&SvA?C0QTU@dqFybOK;)`4GwUx8P^tKfgZZ@{m? z>)@E&*<{0Y1d{tPyNzk;!bgw4vqmW_+J28!5R2JM`3{T!NuSbaK|ln^V%A&E1)mrdONt1`zyd*+*jlO zPOjHNH*5$|r}dN0?zxK1MOd%1oeOy>R}-Sh4qpd+>(0Z;4&AK=;w z^jYc@SPT|{&%l4c=io!I2HXi`oOL&N5&R7N9NY_Jl(iPz2kr+l+WHtg2p$3tgI|D; zz+~X!f0X-;;0NFVnv=%T$H5aoAFX=|=u^>8gAc$n;D_K@@FVaXcm+HU^a<)8g8`NF zKdwIo=YVs;dEk6-DfkXhS}y}Dz~w+`y#ibbRsuh*Dle7Q)m)XAn%%1a1aO^DW?3a2rsXZ|8akSPm`%7lZ!=O0UXS=~6kW3>Aj* zt~gajFM(f!SHWxGH{iG6b?|%eJMboW1H1+P0R9NpgLlB&;63mz_!D>^{26Qje+7R5 z%D?JM`BQ!T6PylQx>RN=%Ll+G;2+>`;NRe1;AC(LI2Ft&VGIN_!7MNv91D&EUjzD_ z_X*(Z;2YpX@J;YPU=A1oMgo0+a2XnCeQ0nrID`8GxE=@&0%L$aLNgW|0>*(u!B@by zaC;cn@gNS)gr30lEUssRiQG>DlYxxu4hKhosX(72KL~-I|8N6 zC`h?i+IHruk4x?f`heZQ?w~K|2lfDa0;Nrg)BschrLBsqOWWSu_Xqoc0bn4|#~Ed) zxGzxJ_TxGP3r-ReL8DJT> z0Gtml1k1t2;39A-xCC4Vz5^}?`sDkS;0kaRSP8BHSA*-owcrMDJy;D^f$xFuf}6mN z;1+N*xDDJ2?f|!gJHZ-oH@FMj3+@5;f$xI{!2RGM@E~{uJPdvS9tDqs$H0@|3Gfnl z20RU(1wRDOfggbv!1LfI;K$%a@Kf+}@H6lf_yt%CehFR%uYh&nf5ET7ufeO}HSino zTktygJ@_4X6TAW50)GI11na>&;BD|8co+N$ybt~iHh{l^zkm0b1ARbWushfT^aFc=JwYW1z}}z=>;w9PfnWd_3Z0Y90R6<8Q`m6CYS|ggJZ#QKuV}05Cz4c1eAg;`rReL+942iOzr1p-hBs=(f$KiCHh z1Vh0k@VZOEcfe&}1-Kks0j>lq!ByaDa1FQ?TnDZPH-J@OHTW+09=H+Q1a1bmfLpXvOeQ+PRA3Oja1P_6S!6V>N@Hlt^JPBIwpe=zENP`S$1B<|7 zummgxCxMf}Dd1Fa8aN#+180D5fiuBb;B0UX_%=8foCnSa7l7s9LU0kd7+eA_1>XUe zffe9#a0R#$tOQqqtHCwkT5uh>9^3#{fz{x<;CtXka1*#0+yZU|w}IQi9bgT(6Wj&v z2KRt_!S}&^;C}D`cn~}U9tMwqN5K!kW8iV{1b7mBvJ<=t{0saWda1lGpj<=|!TORx^S z^8e9v2Vj-Y>BGiPHiQsjW5;d?A%qY@2qA73v5edsNEn?~s!dY9g#F?ydqpbu%BKBAB5 z6Pln;=`;GACg}_MlD?uT`kKC>Z)uvoqwnblT1r3CPxN0}MnBUp^gsGP`i;)v>x?;k zZSow~qgbt>I=nyKU!{|^toXY4(I)aX( zayo{Nrempsj;G^jHvNYxz0To!0?nl=I+5nle5$6C=_ERZYG?tSN~cjREuw{VI@Qsc zbOxP8_4Ic-o6eyII+y-I=TReFKZQl%QF@&E=t+8lo}zwwhMuNpX@H)m=ja6*q?hPLdYOjkReFV9qhWf3UZ*!{gx;pN z=p7oR_vl@EpT_7z`hY&7ar%TlrcY^tKBv#<3!0>_=u7&Vrs!MxhQ6a|`hmWuA89H5 zmwuw3X&L=WztI0^hJK^}qZGbQUWrzwRVbBKrPXM4iaR%wXgT^5CDZb>09jUw(`K|eZ9zG-C2d7pQzmUd8`4IUMH|y5v?=A&PP8-aLIt!d z?MAy(E^R~G(sqZCj9PP&V_=x(})?xl9RiEgG_sDo~$+vs-crAMfby6HZurPJsEir1Xtb(}|Nh`(P* zi>QuHr)OxC-l1W7jn1GmX_CI6DH^Ab=xq8seM&P_PiIjBokKrRysq;C9l+E6WO|l9 zrGt2_XIrYJ(`X?rqB=UA&Y&}?p3b7P>F?A)=g>dsT&kqmbOOzxDw<34=tQcf`E(MU zOf_^0ok|O+i7uewEPlN7I=w+7^d`MUZ__BfL+{diG)C{!2lOG0(?|3%eL@rTDSbwt z(U1>MkoeF6W+LQL8BHEkwp?#^C_M`pj04kva=^#3o zO6d?fln$dZI-HK6BdMH@qNC{;s-R=(IEqP-BwCLCM9H)~tw1YM3avyd(<+ootI}$; zI;GJXv?i@Z>9jVjLw}|WT9?+NztAjNpZ-dJqfFX>Hl&Rxi#DcBXj96j&1iGlf^uj} z+KOgVC7sOc&F640%{g3S70_-}&EqH1Ni?5o=wynU5>KNTIzN;a@z_E-gHEU2d90Am z!;N$Solh516J1Of(Lbq~E~QK8GHRhK=yJM}TIp)KivC55>ECn>T}w;oKXe^kPi=G~ z-9R@{JKaJz)2-A&x6^HO2X)e2bSK?SU34$qL-$cPJwW%GQG(gYObMyiY(o6Iry-Y*&D!oFl(J;M1uhW|}LT}Ss^bU>Ed-N{7 zPh<2UeLx@4IDJAN(-eJ0-_Y0e1AR~24w2y2gT&2r3w6+~bQ|4HopcA?Nq12f-A(t< zz0^(j(f#xQ_0WU#5Is!2^awplk5L~zPEXL2)K5>*)AS4t(6jVBy-a)XHB}+)MSIfT zR7CsIKC~YdQ!`(a#n)ePjjzQHq!K!q4x&S-ln$dq>2NBeBk2e_ipuF2I+~893Ob&S zquEqRbLa$`OI36t&7=8LO()YybPCnbdDKW3(D`&BHPOX%5&e^z=~B9cE~6H@f-a{k zsg$OWRW( z?MOS&PLxl((9X0g70~Xq8|^`bv={A3ds7kZOZ(7%R7?lZ{&XOf(7|*N9YUpa7#&K7 zQyCpeN6=AJPRG#EbSzcS@pK%`rb?PaC(vA~q7!Kz&8KQQnNFfpsD>8MsdP4-MGf@# zFux9-%k>|09yQVhbUs~3O>{9`L@jhF#X#DXTwCdCx{3zq-*gRKOH1fKbRAt!ZFD2u zKsQl4-9k6ht<*uc(`|GIb<#ZkJry*YYUm`ofi9-&=`ddZc#x0lp@-=qdW3rEF?y69 zr#^a;o}g#wXbSK?K zU353yL-$fQ-ADJ+1Jpwg(nItx_0l8sC_P4f^f*01Pf|ZUMNiW+G(gYNbM!n7(hKw= zy+lLwGQC2t(lEV7uhSbeLT}Pr^frysJM=ESM`QFpeLx@5IDJGP(OMdQZ{Wyo6{DQLtD~Tv^C|@Hnc5mM|re8?La$HKJ7$1Q+9F^ z?_nkJdRP+gUnTMWRTA%CCGq}M67OFn@xEUY@B1b38e0rh0DTP*| zm1z}9rB!J)TAk8p4O)}dqI6oD)}cRB2CYl$(O+m5txtcYzfmS_KpWCVltmlUCbTJy z(mV7ny+>p8K7BwR(l~uYAJZo^L7&oR^f^t^7xX24MN{-OeM8^UG<`?k(+{+iex#r1 zzqE{greEk+>ZbeXetLj<=s|jj9;RM;gdU~GsE;0}C+JD)r>E#?dWHt*S$dA1r$Ksw zUZj_3h+d{w=v5k~*XVV6gZfkX_ULJPh6d|cVbTuuef6+DcZ(2gv(slG7YNPAv z2D*{j=_b0FZlMmkm2RWksgv%YJLxX!qPyuHx|h1?KDwX!Gx&L-r|B6Qpl9hhdY%U9 z1$vQQq9J;jUZGcMm|mmT=?xm8H|Z^Un?~s!dY9g#F?ydqpbx2?Zlas%7V4l|={CBZ zI_VC&lkTD}x|{Byd#Ri5qxY)eeA$pj4=@ELA9-}^boSvX3sq)mM#B4f&=1>*Q zrFnEBRnvSriB6^(I)zT91yoC?(L!28b#ywNL1$7uokeHU->HGlp?}c1R7iW!p0pPg z(cZKV?Mub9AMH;EPzfDK2hqV)N{7&)bQqP<;dBHYN#%4D9Zknj1szMr(ebn)H?3_% zS+p^2LYq=HZAP2Z7L-F<(pI!J<rh0DTP*|m1z}9rB!J)TAk8p4O)}dqI6oD)}cRB2CYl$(O+m5 ztxtcYzfmS_Kzr~~Kr&xM@jXiHNhx|SoT`g(n%*0y>wR#B-WSi(asP9sj{BgqbleY} zt>d+-9Lyix5+#)9;|Jn=9rsEX=(uOPP?zE&9rsWd>$sP?L?4DraeVu6Uv;^UAC4<@ z+-F^><9_QZ9rs;V>$v~AM#p{FwR$$L(}74dOlvP zPr^%dyuR0lss8SPs6=>A@0+Qa6gW3zm5id{B%5|&%nbv z?u#GM^>|dDg~#;ScwEQ*Y!f)X{eGJA@u%>#ei|>;&){Wx0MF=njWfRRk8kHWO2P3Q zex6cw+=rf~<9_sX9rvYY=$G&;J%ls$%Q#ENee2me?qAQ*!#G#R{p@)9{YxT#w-j9rwvs>JM<0{t#E|aa^N6!nOKi zT&F+5^?Cv~=y*-J5y$8JGivtn&vA>M#I5=ZyjXvUm*}r>o1Vh$`fJ>wzrmgQTim6m zaku^s_vr6&ul@n|>7}?||A+_lPk2x-!$bOKJgk4gBRXawM)eFH)BnTc`v35R=1Yvk zq>d-%lup9adO5sQ{|PVC{P8g{qnF3=;#OQ%;4jH~MVz8jaH?Jjr|Fe(x?TlmX#Nvn^T(1ziC!0%>h*A$ z{tGVGvv7r8A6M$X;wt?&T&**4jotv)>J4$7-U!$0EZm?s#*KOt+@v?f%{m*m=*@7e z-W)I1Ti_)+2e;`hal76Mcj&Egr`{HK>Fsd0&ci)=d)%vcz zJ^-ia5}c|J#A*5Up?MpNQ*qHEz)J zaicy7H|djcv#!A{`V`!%`QvtCv0i|e=vv&SPs8ncA@0zNaHp=rUHWv~tv5kx3-{}@@qqq29@GtZNS}j;^*`{4J{OPT_`R-8PDL3iOseK&5>_uyuIFK*G@xK-bW7wh}+68!*f(>=IdKZrZ@ zL%35vjJtF%?$(ds9^Hp~_2altKZ*PG03N{cynPlA>F4l>ejbnMK|G;fz*G7~yi~u0 zXY>$G<_)*__Fu-Sn9J{TXleRY9!S^2I77dNXX)2*rhWrw=@Fc*-^4lkEu5?0#(8=a z=j(THfqoYk>i2Mw9>c}@eO#hHz@_>_T&Blyx&8=O=#O!w{sdR)30$o|#WngfT&q9F zb$Sxl>o0JF{t`FpuW*x|!p-_?+@in1t@>NMSbv9?;Q0Ca9=GcsaHn31yZ!hdagY89 z_v-)RKD`Y0>!0y}{sj-}U-6Kh!NdB0ctrmn9@W3$F&*F8ah-%G^m2Go$86w~j@iIz z9kYT>6kT4*D-6Dp=0)NmX6uO zOdYd`SvqDBvvtfS=IEGB%+)cgn5Sb_F<-~*Vu6m?#X=pkj72(T8H;tyHkRm^Z7kI> z>sY2^*0Eg2>|=$_#FctOT%}_svRcPXWQ~p)$yyyVl65*}ChK)JZqPA9*{EZNvPs8G zWwXw~Ejnf_TXoD>F4i$~xkSgzWt)x}%yu0!m>oK1GCOtLKhmXRHnUsDtY(ki75D16 z*Q8I!y(9g)5D(}*@Sxrk59z(|u#Wl35gqfBqdI0j$8^kqj_a5KozO88I;mqObV|pJ z=(LU*(WN?OMwjWB8J*EFLmD?r#PdJyk4e^X&rFJrduCGgVK`0440gJX8SD%lv)HqA z%wcEhV{n#^_k^=`CC<^aaju?&^K`slov-6PPT~ zWjgK;D%T5fg^pS9N*(taRp~}ttx)pwW%ZoZw^qkJpLKpr%=0$* zc+B-S>Mq=*W2U-U--BE9y|`81hZpPL=YVm19%9zI-N$=yhmQH%PCw=$-0kBJ;~w3M zdoh>a?};7IG2c6kkNWX_c+AHi#}hstbJ~;oNj#o2V{W}bzk&;O z%upBUm=7<;@%@as=2Fb%_qpu~ACFn@D*ZOD!SVec#kD$Svg`D_xL&`98}t}%)bHaa z9W&d_`a|5J$8oFv2rt$#)4fE;jCY%k8Si%eDellQ^WCXq2E0qh40yNx0{7^c3GdZ0 zBi^TDM!a9g%=mzgnejm#Gvq@$X6T1;d~UzPqdI2A$NiWe@Pv+e_esp<_c{Hge*AxV zV8)M$dGolLFh2h=m!7O+?mR{Ric|IfaGL%CCLcKCB(yQQNor+8Js<>3IhRgKoxLl{<3cUud)G?!0h2!(T z7OwH}m|3g!@wIWikFSFp^q+B~&cIE2UEHkK!!7zRxK+=>i}m_=iH;e$HXPrdzu^ua z&%~X21Kj1uY>0a>KULfV!*kD%$-)DAV?3xg!9#jeJgl?vh~5m3>X^kF!}0yu0#EpO z4xZFo;wilqp4MCAr8*Zc)7#(~9rJ;4(`$VD+u;-(&)b+6O!e{Yak`K1fHU-tc$Ut` znR+LjrFX{JdKa9d3vjO973b-gPt3>h{n;HC`gkEO(tF@yKW0x{isSRY7q0MQig2ag z8&~OlaJAkS*XUwgtM|ioI_4njaeRLcz>Pj$f}8Y#xLF^BTlB%WRhQz$`VhQCABx-b zVYpqF;SPN`?$k%%E`22K*5$ZIABB7M(YQ|^gZp&_9?-|)L46z^(#PXrU5Q8ZY&@z@ zz+*T*KXdSeuEJA(%v?OJ=i#OLM7&H_;~704$4%JrJUj^}>yvScuEDAL6r83{#p!wh z&d{}ZmOc$<>V-Heu;1YcfF4h0Q zW%^uPt{ZWMJ`Y#wOK_FG6j$pOT%#|;wfb^gr?0^Ex)nF*D{-T~3ODJiakE~GTlBwh ztG)&=*8j#!^b*{ruf^^9I^3cEgFAH_?$X!eZhZsp(Kq5=-H!Y8O}Jm*j0f~Bcu;rX zA$=H=fb=;TS-O=l}gU zSwDbNbPrC|58^ca5Kh+*;|$%4XX!_9rhXJ>>Bn%k?!!6yah$84zZfs$eg+ro0bHV=#ijZ=T&ADL<$4fT=ofIMei2vcmvFTn!ZrG3T&rKfb^29YuZMAi zehoM3*Kw1612^jt+@jyat@;z9Biye)#sm5jJg6t|kp2`8>(B6r{v40$Nj#>%z~lN$JfXkBlX?nI>96s${su4A z-{NI@8qetOa17tX^Z$FCtbf2MdMQrTKjJj~6HeFv#Tj}To~3`rnfe!;rGLfQdIsm{ z|KVKye>hM7hVyk|d7l3|2^Z?+aFPBKF4oDoL@$p^^$NI5uZYWaoG(+MsN9?~1*VZ8|+(VOB?9p~$e={Rp^T*rAk6FSb{nbdLq&XkVxc&2rn$Fo$&`8>;X zoP{%^<4l|wJd5XloQ;#LNqneO~=_e={nBP$SXFTTPI7$ z89UiJ&f3Y*apq30jK9xGo_Nmfw#!t15vwmuHocU9$o^OjLC2XujXKT-YSM8= zP_vG+f?9N(8Puw0$$i?&%>SiMBJsTakrk2d-O@TSD%dgbPev; zr{Dp7Djw7e@Q{u(o`&^lctkJ6qk0h@({*@UpN=Q=8F*61*-%qD&WM`UaaPn)9cM-@ z({XmxjE*y;V(2oS|8bU7vW_#QQgoaxm8u(Ynm!Mw>+^Ajz5vhCO*m6uh_m!XI9tc; zXpW8<(p=50rHMSv?RSZM&8TB)ajUMt=BQz+Mr{`wNb~c zYm<(d*Jd5FuPr)eU|V&}!YNpE& zO2?T<(>l&ZTB_rWq-8qJN}ADeW>O3s$MZkVPD<8shEj?i$Eo@woTfj<>G~6#p(pSx z{VC4WpW!V1InLITI7fehbM==vPk)8;^%O49U*kgk4KC8(;$l6GOZ0cRRDX}l^bfdP z$5~GmI?jBm)N%Gxm5wu@s&$+NRioofs9GIoL)GaxBdT7Yx| z$Bbx;j#<%G9W$egbn>yLHT*_UM>B?bR`Z z+NWa{wO_|f>VS^f)Il9HszW+vRfl!Vtd8iIT^-di!#bv8mUUdmOzVV>+15!NGpX@m`(lJ|`tz*VEN5`yfu8x`8JRP&Q`8sBB3v|rl7V4PEEz&WYTdZS7w?xOR zZmEu$-7+1syX87&cq??w@>c4Y>8;W++gq(;#hJN8{s9l`rFcaDh)4A@Jf?rfC4n{rf!ZO6KCJ%={O^z zK*u?eML7ODit{3ib(|YnqT~F?QXS_=mgzW8vRucxk`+46m#oxr&SaI2^CqixoI6>g z9Xigt?9_4YWtWcgFS~V|gW03wJj`Al=VJEhI3KfL$2pk;I?l@+)NyX+ zkdE^+hjpBzIilk{%~2iaYL4kRUvpf?IhzwY&fA>Saqi}nj`KICb)3VwRL6Oo%XFLz zF{9(GoH*blo-=V?Lb6W8d1^Wdr|RW!n*I|`*U30TFOO&G6>z3r5ohTXoUK>FIeKNB zt5?B!Iu+;ZRdIn{4HxRwagk2L#d-}~qSwTwdM#Y0({Z_88&~LcaHak;uF@H}TCa<1 z^m@2f{{`3SS-4)Wj~nz~aijhlZqk{!S#N+_^oF=qZ-f`?EWAW-jN9}kxLt3GJ9IYg z)SKZhy*cjITi_m@gM0OsxKD3|`}Nj%Ks2jXoOJ>SJ)7uE6#BSlpnG!;SiQ+@vdUGmhUMXX93V0$$?B z%)xEC3b*UIxI@pwo%%%FrK@qbo{xL5xML1hujB|7|&ei|KdHNEZuP?;~x&;^N%W#pt92e^= zaEWfkrTR)-rmw=~`f6OE7voC(FI=VngR5~o4{yM=KHiS&^i8;4-;5jdEx1v4;3j=5 zZq~Qq7JWNz)tz{;z5_4Ocj7jE7jD;GxI^EKJM}%dOW%vTbvN$O_u*cBKkm~H;C|hM z2lRt@P(Or+^uu^q_u>)#2p-js;xYXg9@l+%LO+ft^%HnXKZ&PxKVGVz!prp2ct$^i zLHw^U&h(`6`Z4A#kqPI=jqpQ zzJ47S=r?eo9>GQWOvwU5eh*jbF5p)|{unptPjI82z)kv7+^j#tE&6lZsweSc{RLj4zr=0&E8MQ9aEJaHcj|9&m;M%a z>uKDhzr(%yd)%jg!2NnD9?(DHLH!dR(*MQ7dKn(kKjTsT3m((I;&DBLC-ndDr2aoV zrGLZII`KE2|2hdT)63x*{U;oU6~^;F87J%Iaf)66r|K1Pnohy#dL^8pSH`pSDmYW8 z;w-%?&ep5p9KAZu)oD0SuYvRRnz%r(g$s2$F4Ak`Vx56Y^t!lIuZPR@UvRmeg)8*> zxKd~0D!l=&)*Ip)y%Da}S-4JbjO+C#xIu4<8+A5r(wpICy*X~tTi{lmgBR;9@e;ii zZqr-icAbkm^ftItZ;QM1cDP&T;U2v`?$tZsKD{IE*ZFur?}P{S&Ui@gf`@eh9?`qv zQ5|PnkLlgH097p%2Hi^pQAIABD5@F*sWvi*xkxI9FHVJUtud>l1K+o`VZ@6)w_qaj~9< zOZ17jR9E9NJs+3rlW>JT8CU8WT%}LJ)%sLiqZi;>U5o4VX}Df5#0`28Zq#+SNuQ3J zb)0kEqR+&wI?l9StmAC!B|6T&ZqsoFcDs(VuRHWPxKlUcE`1*E*5~6MeF5&(O}I~A zi2Llufj|9)p(g+ zjA!(}a2!$_&;M(1vi>(t(Mxcuz80tH>u|dM56;kSc$U5%XX-d>Jxkw+vvoVp(Kq2- zeKXF}x8Qu;feZAlxKQ7Qi}dZdSa;$QeFrYpcj7XA7cSRbxI*8JEA>6NO5cmCbvLfj z_u*Ro0It)$xL!Yk8}y^NQ9p*8bRTZkPv90DulGKKm-zS~ZqqN|cKssm&@bUmJ%qdT zFz(i`;T}DTd-XfGPrr-%^?P_gkK;l85gyW?;$c0BNAwqXRDX%b^jCOXPvHsu1D@2& z@Ra@;PwQXsQvEAlrf2Ys-edzldA!LSU!!e~Q}h-%O>c`ca1tML5T2zgai*S)v-Al# zThGBcx(es&xj0YH!}8#n8};}+e3TlG13vHk~MqR+)``U2dp zn{bDID2wN|ei(P@Ufiu8!9Ds>+^ZkMeYy|#>&NkcegY5bC-IQ($HV$5Jffe*qxu;< zrU&r2eil#Y=kTO{9#82(Jgr~AOZAI*nSKe+=ph^jj3;q<87J#kaEg8vr|MyxreDM9 z`gNS4-@vo<2+q`R;w=3Z&em_^96gG2^*cCEzl-zrd$>T4;X?gBF47<1V*Md5(c`#O ze}v2Q$GBX7f-Cd{uGF96D*YL*)}P}VJ&9}e7r0I*a(MphB;25v!;Sh+xJf7DX1zRa z(JSCqy&_($Q}7bK5^mEg<959Y?$D{YQ?H7<^lG?U$IgWw9lIBLb?jj1(`({>y%rwO zv72E~uZ@TFI(S&e&V~^kyBkJz>~I*c_RbvDk>o8eh{bDXKSz*#y6XX`C-j@}CA z>Rg(TU?;G!-YBz7wPSBvEBif=pAvX&c|hXCtR*~#ua)OT&W9imEILs>)mjT z-W}KKLR_c!!1a1h+@SZujk*Xo>Ai8Y-UqkneQ~QU#*6iSc!}O0x9J0LyDq^U`as;N z55isgVBD=sagRO(_v%A&pFRxt>oPo`566T02t1^Z#KXEAkLaWDs6HBx>0|J?uD}!e zSUjnZ!&ABvPwUxusXhTO({u2QuEMccBA)+qak8F=Q}l^ARafIQJs+p*lW>MU8PC!+ zI8&d3v-GJrTQ9&lx)$f^g*ZdSGHz5+MvR@|bm#I5=&yjWk2 zm*~Z~P5%qG>uYd_{x|N_OK_LI7I*9GaF6~E?$vF$PhXGw^$mDH--riwJ08+E;bDC< z9?`epQQd*Z^sRVY--ajj?RZjm;wgOxp4NBbrTQ+sOn2cKeK(G!D)Ick2Pf-$afokK!)<4(`_P;vW4T?$u+sPrr}* z^#^!Be~1V5I3Cg;;bHwT9?_rRQT-Jj(^Gg{e~l;fH+WKikEiqxcv{Ea;iWqE4=>ZP zhj>QEKH^v?6wm+IOPs7@KXHnVJ;kXy_7$h;*jt>gV}Egmjy=Y+bnG+E)Unq%OUHiW zY#n=!b9C%G&egH^I8Vp^<9r=^kPCF|LoU>@7r98se&k{udy-3Z>`N}yu{XI)$NuDU z9eb23bnH{E)Uj8&O2>ZXY8`u)Yjo^euGO)3xlYIa<$4`^m>YELV{X*3m$^yDe&%K! zdzxGH@B5l{?0QDW0nu4CuagpM6llR9=#P3hQ4HLYVO z)lwZhs+Q^4Q8lAuXH_iCisyOktV-6g!zx9`4y#lhJFU`m?6gYPvEwR3$BwI6I(A-V z>JxC5o`bV>70%IfajuS?Sa~{jWaaDFkyW5$XI7z(omoXXc4!sr*r8RTW2aWBj-6U% zI(BT8>+^Aiz5rM1CS0X2#ML@>aMkG8$yKXkCs&=09bNT0c62r9*xA*nV`o>BjvZdj zI(B%q=-BDis$-|uVjVlamgv~=)uvez{vr(;K2zTOiT=)G{EF2Y56Z(OYR!6kZMT&jz4ncfeV z>)5eYp=0M-rH-9zRXTRCRqNQnR-)r{~~) zU4;kqTs)}f;URq@9@f=(M9;^gI(E#B>DW0pu4CuigpM6_lR9?LP3hQ4H?7aYOZC}! znf^PT(G573CC2mr9GtBGfm8IkI910kyEGlU?b7x6I7456XXz%KsV~G?`XZdIFUC1K zcH!mf*o~K`FT?pdcH|Z4*qK+TV`pBGjvac%I`-0)=xcDPj@^1?I(F-o>uYg^z7ALF z|KKX!hO71UxJKWAYxRw|PRDM(dL6s^8uZP$QQv}_bO&zMx8fFk8*bINKAaDei5hZ*ln1hf5NkL>{HCtwKz+khO_lToTC@vTwRCr^yxTXpMeYXnYd8b<05?) zF4kw`68(2vsvB^bJ_ncUf8YvzF0Ry#xJsXgtM&P~MqhwybrY`B7vg$-5pK{I<3`<# zoAf_%v%Unk=u2^{Zo!N7Wq66c9JlE!aJz2B9r{Y#sjtFa`fA**7vmoNFWjrI!F~GQ zxL+^91NvG#sIS9A`agJBx8V_eJs#CJ;4yt89@p)7Lf?cZ_04!n--4%g2VSag#mn?< zct+ojV^MDW`rnC@^&L1x--%Q8T{um5;dFgB&d~SZS^8d_sk?EOz7J>X`*Dtb0O#r+ zoTnee`T8MTpdZGCx)&GeM{u!z6qo47aH;OYW%_YkuAjga`bk`=H~5X`zupj6>y2=Y z&cd~NV_c^CJJo-U7Gi9Nen6#EbP-c!}N`x9MEmu45l(hu#)< z>g{ls&coe$d)%XUz`c4$+^1uYXTOepo&$PkJgE1;LwZj?1AIv6r++$9~dc9eYYkbnGiF z)v>p_ctT zu@|*T$9~ji9eYw+bnHuQ)v-5qv5x(zOLXi}ZPT$&wOz+v)ear|RXcU;S?$uXZ?#)z z;vT&L?$xn}wNJ-B)_xs(SqF6NXC2hBr*%ljzSd!#jYsrmcvNqW$MhC>T<72ky(OO1 zTj43aHJ;YFc&Xk7FVoxN8ND4&yzs~KKMyDC?Qx3U0jKI6ahlG@>3S!ep?Ai!^e#A4 z7vLA^`5vu?}ZC>5iZhu<6^xJF46nqQeBM8^nSQp?~g0= z0k~3^;3|C}uGR^9ea8Q zbnNRL)UmgBNXP!(VI6yXM|AA-9o4bdcTC5A-*Fv#ekXM7`<>LW_jgLi{@-aGdw`ef z*ay5!$6nwW9s7Y3FaGiTAH~V~9h{=y#i{x|oTkTcx_%#L=nwEL{UOfO<2XxygtPU> zI7feibM*wy)1Tse{TVLMpW{M3iHr0XxLALQOY~Q`R8QeD{WUJv-{1=UEw0qlxJrMA ztM&J|M*o0o^-^4?f5i3rC)}X_iyQSa+@ycT&H5MIqJPD$I(8v1*0B?LiH_aKZ8~-& zx9ixI+@WJcI(9G* z>)6FSqGKoXsE*ytV>)&;kL%dgJfUM}^Q4a5%~LvdI8W=?<-AnKPUmGhc014L*zufr z>5u1s?0QbtvGX}a$L{A;9Xp`YbnJpo*Rc~iL&t9DSvqz^XX@A$ouy-EbheJ&(K$MH zNayOd*c1#!Q*fm|GW9M|Sj@{EGI(AT(>exkHreh~{xsKh`6}lf+ z>Zfp(ei~QnXK;-kz_t2WT&JJI_4;|-pa*fIegQY>7jd(G3AgAW+^S#3i}fpbiGCHg z>0#WiU&9^xb=;|Ar+Jr--R9jocAWR<*md5kW9NCFj@{?|I(DEB=-7omsADJkkdEEx z!#Z}PkLcKyKB{A9`j{Ta)q$_L1l6*h`+LV?TMmjy>fC zI`)+p>eyReq+@@1v5r0FB|7$*m+IJSUZ!KedAW`~=M_5komcAEdtRku|9Q2JJ?J$$ z_MzA6*o$7LV?TPmjy>rOI`*YE>e!p!q+@@2vyMILEjsq8x9ZrdzF5b8^(8v?thedd zx8AN}?|O%h{p+1N_Rx3f*hk;3V=sM=j{Wq#I`-7}>DX7_uVZihfc|}dy^cNhLpt`^ z59`=#KcZv5{iu#T_hUNt-H+?odq1IH#glp%PwCh2w0<2g)o-TVm9>cTr`#4j7fV1?6I9taa`Wzkm=yP@KrO(r`pFUs5 zp85hE`|1mI?5!`-zwfWtvB$nd$3FW~9eeG|bnLe;*RkimLdU-QN*#OetMtLRT9@J) zeF(1AhvGVY7_Qf4xIrI|8}$*mNgs)ubvbU)N8wg|G+wNa!Ao=nZqvu&c6}V~(8uFW zU5UH&Y}~C+z&&~n?$uSePtV2udLACoC*na}jfeDnJgiT`Bl=`Ks%!9=J_V2KQ}Kje zfG2e=p3VN z!I}CWI7^?4vvq>yf;l<~=j!Efp8gZg*U7j*FOLiL3b;tGh>LX!F3~IDQoS-R)2rZe zor){;s<=|GhO6}IxLT*-8odUt)obE9y%w(5>9|3!jT`kkxJmyRH|q@CqSwW(dOf^Y z{{=76vv8YUAGhnj;tu^c+^I8hm)-z(>kV;_-U#>VEZnCz#{GH|JfJtlgE|`z>CN!4 z-W-qUE%2z$!DD($Jg&FG6MAbrsdMp^-Ud(WZShjQ9bTsM@QmIbCtm&I`M(2B);r=9 zosU!XPB=~PjMMclI71iUS$bETsdvL!dUu?y3vrI#1Lx{Jah~1_=j*Mj7o0M8>xHME zdg|PTTW>XI_QDevY`t*qiSrlLEj(-MMGNO_J^$3Ix%FGkSvb3H?xL;cFW7RMo$_{? zGcSM64kv7X!uH$mI4?eWZvB>v&N{VjcKw#QTkWvbw%h;y51xMN{5cD%=5DocQPrVq zB&zs5aUQKhvllIzyRdHlf>Sf+&7NN~w`%9iMRl_m)@2s#nmPAWKJfp4d@~=r674&e z@7(N~f6XB{?Y;r!aVIrH{7aqb^He((Caxu-7TTU@m7!r8Ueb5EIj{9ZMu zFRGin@c2C!&YgYoVRKLA1Ln;Al(w#|X(>Zjm#h$q+cFe^-x!5BY#SXcf zDE6%VNU^)=ykySZqd1d0&f<0eY66w_&bd(zoQ9Jd} zL-ahoK_Ag4G>0d{JX%1f(FJrNwa^vRN>@`S-AUbazdgkD5$dA>dY%U9C3=P4wlS{n z(}(m4eMaBWjQtZbeY0eX-gp+0(+o~IY+C3=~LZJg^T z^cj6iKhtlNvN1 z&7%c$nw`(}0=kecq06b2uA+a@wR9b|*$rH8q+6(iI_XZjhaRCP=xKV62I)n5nTG9c zuF+@oEhSRq06b2 zuA)x5lOCW4=@IIq0eX%G=|y^(-lVta0~_c134KQ2(s%SdC06CfL90<3tw}|+4;9n? zbP$!%k#s!Gp?S1`&ZcweJi34`q-*Fpx{n^9$LMkE=lUGIXs>b|p|@<5>xc9ieM{fd z50tc8BC#_S(m_;8N6~q7J~i1zTrZ&(x`l4F+qphY{WL(&*&x@KX_(%jG5U}atN&33 z*L5kAHlyurN3PLMwj0-dX+Nr=)2N9qqJPu1)JM-*f^(Voqf)w_+KJm`61-*ld;HNk z5yjcwzt9X7ugT8`9Z02g1eM#-T#uznYNku*GHRu6x}P4TUV4K1?P;#h(jdJ>qm;%O zuWQoUltD++v2;8&(iIeENynM8ah7bH37eG8kDK4b7tpzM9$iQ6^d)^m%P8?@o^P}o zrBf#5Q6U{hl~hBgQY|f{Mbt=d(Aze~^?e$rFKCqvp30O)>ry7wQzP9;-Si_R)=eb- zN}03;<*m@|iNEk` z9F@{hbTTcXM*4vgoME~n71DlmAe}>T#%`R08|UA~S*URaYMggEOs~@j{Xz-OH~pD@ zrM3UY&l{~znY1?*(}7eZXUNm!6=0dX5I^6&j|uXp}ynar%w6-s+E* z&*k$$8_?FY4Q)^PR6u*sHFPaqN7vJhbQAqTGxQrRzYYI9Z9|t+J3UF$^cyAe`1=F7 z9>hO$BiD9*ZSCOuNB^V5t^C~H#(#IT1;t#*LaL*4=v?}a{(L(-C}~4#rnm<+?jwx* z2jd>UxVLZ9PCo5c$aN7l(z7&7@6b5?mwvVXaozF`KJRoGRZ;^rQa`;)@6b5?AH^Ts zcc4N#kV@$&s-!dMY`)B2Q6o6`=IPX)A_ z6>{B!_M#%%hwh^{XxIPotlNE#3dY zpt#>4-p`KrvEzNx#PUgrO(~b=P-2Co#11R+{i4IEl1`*VN>XBZO0ku>ZcjT>J{8#R zTo0#8I)fVN1{$aDX(|0kiItKPYf~oeM2++?JwZ=WV&x>h4&mQPD^Mz}MQhWaX2Ru~h15t_QiAtfim8#}J-&EvFW!eqtjgz! za%m@OT#e5s-9=s0P4`h^bzaw?O)ZyeDRt8Tjnhw*NJ~oWL-S|>olB3>Fip}l{Y;59 zczuI*pxvp6_N7uR7eT8nn1-K>%8MbvDUaJ`JKpzG;I z>ZES^lBVfrO031t4=qorv^u5HT9i$jQ!Z^w+tK#46YWApv@aFY0dydh+L2tNV`&b} zqZ+EEI!dJT{HIbnijJe%)JV_L^ES-&9co-VDe)lnQa_E-`;=IR=KvL1Dc7T@k$S10 zUZBLElM?IE`m_b*(oU4%y@{PE-k1A=exnuEO-ig}sa)5hwP_v7pzUc#%BNjuFDj*@ zsGV-7JLzqDmp-CTXo3>!@pDG|S}E6S>3Zwux{MOD_-~X}rX47s3aONiqJ?w?T}8Lk z9rO?-*5~_ADYO!;LOamTR={;v+MV{LQaXw%X)c{e)pQbFPOWq$T}?}@f1jI_*eZ`}5&xa+!?l_p%SrrL=s2pR`7}&l(=;um z#L0ZWsgU-fQaXy}(3x}&T|x1FQoO#NSitj%4yKFg3c8WT=_C4tCTNR8BTA5a*bXtdI(O+pN+J$zbLMoztY=5q$bST~W7QbdtKRr$F(ir_hGnD=|-!A<> z_U;2dihBR||As0>5m6LT2%=&`LKj5{gbpE*P{g*`Y?frnW;g7n0HVZ#ySwARG14%xfOG8ClB#rVy_`V4uO7drUyt9*ujf1T ziF&?t+_|bA*IDZM)^B3?cKYx1PBf2b#YtjLsBA_P9${~!n^~mHHPw7(7md&qN8xC6 zF@92#C(QXg!T-tg=J}1h^TS)n9a!F&&(Uz_X?6Z|Gj!fE26tZ3o#%7s+1zx$`&fJWb}l-uac;|+uyqV>w4R-y8WZuf4TjR+n>1ofZNWy?Sp&YZn5{PdtbWsE)bo@<(hC& zG*lQ!1jAu>ZH7&-FOzj(Kwj4H;R9@p0nur0_zMi@Bdjk_6bclFrY1-84+~B84+D%1!p+qEWKfKa5j8 ztt|8>8qXSx2~ z>kkGJp~5WvqpnG@NFjfs+CRkWR&N$lEFLI`gpvb>yDG?kAs(+RmI&*z8<)$1Tpgn; zSR9BJg%VZ8TpY89s1zd|G879u7pyOEi~jdye;dGH#elq47}3@Znj6 z>UdF6B32O((r?UA|IoZ-w>O|TWx%l10h3b(j7S|&QkF7gWbPh=Qir4tC`}oVojM?q zG9WK?KzYi5v8e+pN>YZ58@b1z)FG(@DpLlGuN@F8FAl}sJkL?Fdv=$_!=-`vG&eNY zD|Zi%C+vcA$(X!x-lb8 z-@i{;RK_~QrSL)u*TqIFFen`0!Z@2#x~-$MusjqP97vS=2P9ZO{S(54 z%vI`u%Bo~lz4-XpB*a#rZK6+`1(3FaBVJJ43s0>6H+0T+?3Jd+i z>0Ok()L%P{#jip718>OGvOu&j5sOAA1qXZG{+y_P^pLF3?jePH3>lO%q-4)O8kzc6 zC42taNdB%o*#x056sMC$457lZaIoB)kT8$r_4DVZ^t2K62O4)$P+PwtSxlg|bdgx1 zA|CR32CZO4PFekGSJ|RqQLv!MYa^lcLQN#RIZztX+#c$hL};w$De1tlDk88?zM*j zZbx67C@*H$8;TA~{u?d~4j;ryuT5}8h^n?L6sukE;b85OR%e30$Wtp4Itzvm%JUBl zN7-EXbJ*Yq%42c$PWFlI?oqDs#>W3)M0=QWZ%FMQL^%R+?|t^$Hm8THH*ZdF*P7Bw zg@!ZXpf@+d?A5&G;*IUi5dJL7dWWNB!ElsgpG0tYUXHd_rL66f1EsM zCzt=peow1g?e5I&<7{V^vJa!v?X~E1`zbnW_e|=xO+KA&=R>F4-O%ZFFm%@LQq;Zs z@7!KvkNrfQ9YgJYAX30uYAt>u!P?^uw}obn4JFt9NGvoeR-{8Qe@>h?u#S#GW!fr5 zyxz1H(%ZVWC&x3jk5+qhQ`=#Ch0;KIaWEv;yvtL>BgU6YGXOH=}pa3G;E`~%db z1G4z&Y!Oq1S^w0K}Y=PN6dE?b?y}S)uj17x7AZ24i&qQs{ z9~9%Y7wV8hEdi5neOE9~O4$oUYMTj;wH}E{!9?o0>^XMrXOun1u3fHsj$ONaYsZcR6TC83AH6Uw zu9PL0C=Y4}Uz(^0mIwdgi8RE$NPlicG+17dT%hW&IZ>9<%YBftsi_G5!-OP{(*EJl zi~};g{kv*AXWh2IX&0fiwqIqeGEr5q`z=t##y+`fu+}p_r}CyeHD&Xl+73qO zOlVMYBcVd?)~PYJ$oi*H|CA&=S$D?awT;G>eon`3Hd%G8CaayT|*O z`am9M8>yx^&7=1EEL)R$Jsn6*cV|+s<3w^Fau})UaeqIOTJtNL)O5FFIjDAjUts;K zNImaWR^M&)Q&z9G`YTe?RYR&tPTQFGxEZAWeyG)FSe+pCd~W(Gs5M_NB{iRKwecP% zHGL~dEx$D+r&4|Ik$Qb!kb1patp45VCS~66)})3XMruA}SpSnPN7(T3RtK$)Sv|w* zORT=Z>N`n2-XiP&jO8mfe67`=S^Wd4_4;?~-*k$%{azfNj-eM)Ni|4M54w~Bku*P7JpNw;+MG1OZAZv5kH{4S)H^9h!&9$@3U z=g+d*J^x^iv3-)#sC%|JRUuy*H5hySr`pJj;dF-;Mt? zwbnm3{>#*wAMWu#uzDk@`STm8=XZ5l!ds8`A~nAbC$*ei-H%%9!w6E-bE?&aR>w&_ z|4dTTf0fm@TD^eO@?J>pMLtGq`MpAF`F(2r-SDrd^}ce$zo*vvw~f@}*DLp)&($rc zwViY8XD4bc&%N@z`F}LEp1%jRE}aQN z_}7pc{|-{q=l=fh)SAC;{P{NAjlYOm%i%dv&$E`)^u14NecM24KDqi^8}7#cj#|(6 zqvduRzKhg$w^4<+p1XQqYOPQElN#RM($&XM>-jsAdfuL-#_vOF{TxMVeRB1gHatLT z`YT8+FZcH|sP+2X@T;h`-Mxp@`|?>*%l&QZzme4Qx#2%p?S}tIt?B!j)b!I>Bst&r zCbc{cA+@~QS^r~6&HoHi%c(D^zjO6a>+i`PVQEUE&Nv#*vq~@QiZ=lxlyM@%>-EHaW2dK4Ob&vlHwbq~ImMch2 z&r4RnO6vLEAoV`}$ojkC>!|fS-;jDeKazU>Ur9~hK2yEA6{-1f7^(T=>Ml0ChYioN z;jYf5*8D%i`iDuqe_b83x`Nc}nnh|lU45MmzuAV*x8bf{Laq7druTJfz5Z3Cp7%pi z>z}K?wEkO3y^cRfjqhsTG;jJEk(!>?q_zw0{nw6K^Roka7@0-t^$aI99cPhR9tEV9 zf5Pf2Qm<R?3+Ag{0`_{&H&$pdguiHIe zgX!M$y64-ETFcu#Ut1e~G^y!1fz0@n0e}f8HVW_^#eSt?kJ-mYYdEpYLpMJG39E<>%`CtscStPLJ2x z>Vv5Dx(=e&^t2^4y~mTu{x-Y^wU&EFYCX>&8{gGKsr7urNv&67NlmYNz5uoUehR6- zKc7r}zFF4aJ^$aRwO@XK)P8)0)gM~@qt$!O@P?<8dOSCNM{2D%ZhAUXYyNj5HGL=B z`0nvCZMd7h!8Y7I{xE92z7eFR|8!F8v!B%dECKXH<9}L`J|@j zL93UMT0hPF{ynpDray<&^9D&xud72=yYY*xK9%)B^Ephdbn`bst?6>ZXHaW>a>LK3*8IDO)a$;M z)N*n4?Kb>QQjfEM)b_^J4^!*)yW`I#R=eZRXQ=gj?)dY0tKIRZYxA&?HV<0Qx*p$k zd{=+ht{KN?jPIJ^&*<7!9bM_@rjBmO4o2z5INjB!yFWui7|@MBrMLRhvpZFHRo#eg zJ?PoPpV5P!J^WpJQuXv_^rY&ksvFU*7d?CVGkVdpm%l4t#U<$3o#@`1VZHqsClDw2 zGx`vH{2Ak-u60L6ZC7R2jEu^zUHPBrCUketsHBrFI=b_3x5^$Fl|8yv_ROg4$-mty zdu3Gi>RQ>0j_#GcGb&HWsO*!$ym;bDZ(Vts)G}IT`2wkV{<77tTm7chYpwp!>QAly z-0H8b{*KhTxY_z|v-%gScUt|s)oE9G<2N8RJ$qT*%<2|a?`L&utJ_$8sMYCKA8vIg ztBd{u8V)ZzyPqq3CtNm8HW0N4Y-b1C9uCB82 z-26YATJz5>pL1=vTOQ|I?Uu(yR=eeKnbmH2Tt%I_Jg%|YEsyK1cFW^NtKIUr#cH=a zZnxSkkGWR6<#D&wZh72mwObzZt#-@f0ju5eSY)+Z9uHgXmd9gOyXEnO)oyt_ZM9n- z&sy!4hj)n~**t}7qMTmUDeFT2sAP9A$k}u?W*QQUb5>v1c|$2@UUd;Ah>#Rj86 zM&}|htsg2m3GW}5&}DkB{g6(mXM+=z(d0?d)JJmt_INb!xr2$k3K~ll@pwTxI5|Eo zF|D*97Rj=TYX>UT1|sDl)f^)A(P;5N1C0oma|%LnT05xlb3unH*_eyR<>hexT+=z& z70GJ?lj@vt9-=z+u_q;G50@*;!+V^X9`5x?9W~<3S#Mr@|9X?;^|vX~#Xn|sAbDvx zd6_WJRguWo&1hXh zvYA{O)MXc4meryx4V6Z@8mLpzwY{uOh4*BxQH4E@Yro+wu&6ipqlM8()TY?_)IOx9 z!<#)^<&LH-T`rqPQ)g@PdQ!!2a|f9 zBS;-9cO$ib>qY7qYy_##PJU9)>;8TcwI08i)UnYNQpfZ&Nqtti%JOzn)3uP)<3B}e zyq8H$kE`FX;UC)YZ%F;!c2dWPO|J7^r+d9EsCCTPfz&Z$4^s25r;X=6>$~}PlJ$4P z2T*IiW|Nw((=3ZfOQQc|z)CaZ5D^*Hxhe>eVPHhc-Gzh7zfD^`C% zYI@!L{*YSp-PNB`Yd`!AspYec)b#vJ>iN>H_i8u4>Ra8A)b#C7>UFs3JNTJ7e~cxo-5LQ=~iLF)P4`g1O|9^buxFQ(RXxaqml z{?4txb&m&cv*B)izMopJ$4&18)S6!RetOVqw|o{`?WQjn&l(dd80>xVE7o?EtNX;MBoh6S?HSMSLxBrdLfK6`3?@ zNThPq_()~>sPSXV%B*REwL-Anr}m!ZV=Ko`oywn_HerO%ZAaa9ukLp6(ObON`MBj1 zmQRtIpYEE9tC!PXpCMl+wf?+C>bTd{YpFHg-m~EwNG&HhU^Q)_orzZsQ$EYX8vL($)X!oRC|O zd+>K!Kizuj>i+cCbY@x(upDTaMQZxpc4aWNrgxZSpfD0B9iV^cDh(7B7i0x0IILEy z)&Y@%K$MOEzhyN5bd|?wP8BVtF>5T@(myf4_45zg-IHUCf&rkRfc;CuBK~eb+{*xs zA%@e2n6}*!KO>d~G-hcuP#NNKe{_HsfyzXA0nJths_6=cmFo7gv|?bOltW`Q&AiUb0AU@9_Ts>ic1m&v9j1el*T5- z)Sb+DpqOtb6qkni+Jg6Qm^vJZ(A33?ilXp9Bqyyliwg%<6o(57^iMEQQkqrFKLNg- zK${%?DWLrXe-eoB#e`%Z|A5+FjFez@gtL;(+|?DJ{f{k_fGramwCVAR1A63A+Ns59 zxTe-0A$5DncNP+*{Baho8@;YzaXg`BUa@Fa^50;rtUL=er1btRiZaLBSK6pIf<5f7*CWJUr-L&2KQd@9=A6^j-Pt%yzz zL<0VyG1^uY#iFIzJQwS;>rq}jl%sV1%KJASh|*XtT3)P!axX$5TL1D7?deL2Dkk&C z<>8^0)HKsfJ_C=<6I8@YD@uwP?j>~vje}_otR})lfv;>F&}ZJ1sF=@ zA7dp0WAv(s#$t4OQ63)_C}+Bgy?@reORa_b^$_*3; zs*3%?Sg(qx%SKOQN%KzQlMbsWdmL{FyN;21Px1(~6=D(Eqg6zUaw3KPVPtY;r)5}j z)1W!Y@(M>;qiH!;INWupNw0pYF4?TDEKnQ?RECGA_VY7E>RD&RILjgstvjaIS6`me zR17EivI<*~5zw1j-O7?cn7<#H{I`UWMh2z@iv6R)dOhxS(armrG8rZIYF)D%Zv2L=$|}k9e+{sdpO<{`CB=M)W~Bb13$e)~QNp8m z|MKOEDmE=6i>;$1T%IV276wXqrU;WfHW2oYW!n)6#6|^T{0ka}kJ3MMMI)iI;3yRH z4T0pp;Zj=umKIb*ynmtreZUXI)xtKKY!giPKy9K~ZeA2b!ikDeh)fHHMkDWJH*4?5eW)C)vR+sW2O?CF=BoN1=sWaUi6} z-Q5)ra`3{&k)9UGw`%g8RhsDjwG={u=36eOC z;ii8i%fF-|tR5j|zSqrju@Tnx!q3^B1RFXQQ>?aM%C1uVH6Evk+-NFOwqi_*886TqWHe3Xi?!D-V8KQC`)H^tFdAezdqkQWhpPNqyGGI2xFj~Z zB*wp-8Y!+AUBN%m`+n?x{|K?G+o##&!f{xrsnT z$Mv@9D=Usp%`J{`+@&{M+3v1LypX+oxXc^fww_Z0fgt#LCU3){G0A`9lcRjMp}2@2 zF%1XD=pVY`3AV{>jRVm<*Fhip#tRaGig+G4fyr(}m30+GtMd3d)&zZtigvzQRE2>& zFQ_V+J}L!ORiZdvm;Y)V%n8rpJk1rp+-bogw8dx(mWU-d^2q~B zn4Jnwt|KAWIW3kKo5pEg#`2;fT9}9A)}F7uS;w?Uj4zhN%ENrapoo^z$!^{r>Wl~T zI1CE#eH8s$&U=P0H;nays(?<8p{sb4x#WjglkbfX?-kaxQlc^(Dp$YpB)iA>STKi^ z|8N?NM*HP~(r{#~{-I0nWuAlmJY#$RR&oYBQZW|v^!}a1IPCG6&f@Z-ND)sJ7z+;9 z-M?XKmI&Vu4n)U#K~-Mv{wf?V9t)nl+=~j{dgJu=V*{n`WJXJ(v8w1eFDe7!@w}cu zILziCSR9*>{I`k)J^>sMWbrpD`C6{J7-ec%C^j`wF?CvKdUzrV!|LMS@I-{e)0yOg z!1O>oF{L6951r;pe_pa?aKUuefa%kwO`Fbt&2RV4E3~w1P3pXns}Hui9jWsn8CLhO zJb~1Cy-}pj>jkWTh}7rF5=&Q4q1NZsX_n`adcIkt&gP!`~$Jx%fj;kK^jkZ2Ye+zaurhuHItxPo$=Em!+%g z-QhiMGt2!+{k^LXvicBG&wIF~tB&5Ywy{*3+-j7<-HNsmFKq7#n}0WxfqBBsJYpOIJ^|;WJ2`zqr_jyZRa%egmoH zb&I8|=h$%fe0N)YAF1hFWa;W9HvDN)@8i{^maD5jv*BNnnjha=y80&@zTNuQSh~8= zTyK6fCH4IKS-SdQ8{W?PA8G08<8631QuC{?rK^Y7@DZfWyHBwCbgPT4j*wap;+C$S zYQtxcdVLpIy81F|&F8BvuP3#9U40X^Ue{d9c{beD4^Zp;vYWmqY`o=`FWdO8ew|w9 zn^s%CWy9YkHT@r3y81I4?#BO$TIcD0B6Xg&{+-_RHYWA@_OW#J0XDo1smE_`>FOhF z_|ewCi>0f3+VDQ4=EDF>R}Z)0ZvT*N^(mz0%b8XONVQq1vifXN>*Li{Uq@>B&L#D_ z-2P$_wcejkSUyMU@79vqA8oX(A@%qN+~v)WHl)_4j#hUfHT_*IUEP~n^W|jAEKUXSupVaI4)Y8>oP;35uZ}|(Uzju$n(`xs6{;=B3k9v1|<2NET|MnrZ z{cuOp+hZ? zBK7>PKF<30CiQ;Kvf)EXy$w~LppE~q z<>Qua{yb&%vzE_WzC>z1uC{db`_x)rKeGIk)a!HgXI8t{_m$NfNzK2lmag7zb&X}C zd%VYUbyI3hM=Q%iY;0pop3l`!P-{JL+w&FF znqId(euG-e-@V?CZTOd@*5}QZJ4n602KRdX_aRlcA@%o1k(yt9NIm{QQhz^+)ayLO zay+T&bHh)w+6_O;#tT{&+i+J$tS%$UT-ar!TGkmel;&X6fqRZMb{CrQK)i zv+YkCQtNobJzgst?vAGqwA$^T+fr*g+QG7u4R`giR=eYuF4S6HJuLg!a95v9t@${_ zGRKCyI?rmiK1{IsbW*Q3Wa;Xd4Ns7o|L2mLpR+8lu)NOl7E%dEM0vzwbqYnQjd2LslRW;eoff1;?-ds|DcaNp37uaz3cn@0bwxZuJUM)AOpOtJm0YH$CrI{l1O&simvGu;Jg3n*J?T=aYJ!KUuw<)bsse z>FNgaz1O>!Wph%0*UIu>>+kAz)OsHGd`H^wV{H7cmaaa*hW91)cY`clJ<7(hij~MpWkn=`estkGsn`^ z_fYHl|9zJ8Nll-t7gB4x`3$M!m)C8$tJhfVws-GX?an{EZ?&5rf${-kIZsU+!gy&g zl5A<4Y<|lx>xFVgC0lYP+kr;87{IlUaFE813I?kcZ=M?N>eq?5Ol=(@+8NTUFj1CQ zmMG8DgIAO#8-DuESn9pDvq-J`K}%N`+wjTOKW6Fbx@}YbRojtrdpy_1t_f|;G|ydK zX~UG%Y8emkR)fM=1wUt{ z-z^CZN_O(=ICK|I@tQ2LdN5un*>H(169>N>J>t=+~2p6n$os!E{3bmoO>EX%(o!;~$rd083T*=0*6Y@euY6lf! zUQAu)E#sM%b=Ref=&$$pHKg_%x09OpuKxe49n>6q{<`g;?zjGK_`h1W|5dxGCH8nP zkougohSckI^;=fE^9FU#Be?gDo1b;xJMY-vze{S}UT67@)EPt@BX&?`IxoCk~`vF6Ln|KE--`3vGA?BOd|io_!V2{rcow zb0PUx_vu^3ur+uWADWLz`P8f@E zU%vqT^n2fB_;23N?=c>43I5rA{oMWhzGl21k;X=>J{sb$?(5f`VLhSy`}M;=yT4yP z!vk=?Uw%H_|H*y*o@M-h_r87`7}xzidOdbt_0bS@@9TFI{f$V`||1Dd<$?t7UD@f zjeqxkeV;JyTn_$q|2*9fnZ0lp6GTakzJF&i79A4b>;Uq??p za=N+?=YM2k1oE*Fz9YECkGa?k-;sP4#leUntrO?;&v0nn;UPQ=?d*G_zZpPY58b!y4%~@9(6B4NpM$Qr3bQc>zHa;u3(}E=e4LG$ zSd8U(4QucReBGHAoQ+Sg9)CdhH@jyJxt?R0oh0|kO1=RK3n~{pVnX9XG{0j z>WB;s!f=eiSWH4ON}&5~#i4s{rQUa|hFa2Un9m5{-?`7$ddB+--{1%QjvDBGz<1(q zEQ0O>Ec$Tm?rRyQTlclR9J6r)bZ<*{f6Ik*KZGTC(%jmP-!a4e=^l5#vp;IM4+;LL zsYli$>y!1#24n-WA=!{@L^dKDla0x}$i2uWWD~L}*_3QXHY1yp&B?vVy~%yZeSHt` z{PG*GRenk1eUF1UrfZMG&>i!!5bMlFQuk*b!ZFxr6qxr&`N(`i$~v=wl;p{Z2K=Uv z$tC4Xa|wAVuE5p!4&UQ4=Dp-K;-0a10#9O@Sxw4L`~hEMo&zm#95SH$EmvbP&SzWx z-@HGo?#ucUCbOL7Z{|UAF`h6_k-G2cvv?h=jZW5dKu2`K(KrUjp&NRk4>B?~D2%{d8~CfA{{Vs~C3;+IN zBeSs(i|`pfM<4bLC*lILiQI;?j-IngIS04kh{M?xV9ODFCPkYgJ!Rw+aDzTy4XTf4 zTa8<>4Zbd1>&F)Cg6>CoBKn!RY_peWyWNA|W6LJz>KY^46Wocv;}JZD<#-+|@RHGe z4`m1M;a&KtKA&r_hHdR;-M^4~_O(MgIwAwQ-=D8Rn(qi4g>3lNa34MR-sIjzI0m2K zzi~gP<=hME`Tq^~g}R%2Kk2?uucY3`$ybkSJ#3)t{yu43{gHIcR5D0%m`4&s4DaIu z{9-O^z;+!k;w8L-SMdf`!N<0!1$4jn7<3PJ`IYzPcIXGI>fYD47yUBv&+h9xG@bnm zMq>;n7(W@r6tkFo2wz|$PVT_*2Yx~gemsoCjEr5nebcnHgI z*WcN<;!*P)DKDA~jyWddH`ZZs_u(AOK7I%i#?LyRj}9zT>49E&5R0%G>`uAACG!$z z!jE6E3%*9YMX)yxz<8XBAFvthYLhxQ=BPO}b3Bbtu?{t6Ioq-t z{LZqIp)9XqU@mc<>_5M+sV^!J% z`rhUqczBNOmiW@V`-AmnT^fK>S$EFBZ{RS^_e%rTDcsf2^CGzt%^G>ykuniyA(wTi z6z8!1$SU(V>w@ThU$UkJn`G?Rm-Pg?@3}PI&oh*ii_IcZR-4VFv}omNPs&i^C-YH_ zo0Y6P^HKLc-=ETNoz^RUFirRSZin`Wu#UZeap}Bwa4OEiY+R3r@fbFlzN~{X%DmZ; zV@4cwq~~06Ca%S8xC;+qc_+5R*ymV2kHL2wpAX^gM_o<#M(lv@L#_Kxhv4ozT}}7j zFc<${?mO*cpMD??!J$~rwrw@e?dG|6j@qU&efP0Vg>N2jCAj+*@5_6j4Ki7GFT-5c zTX&z`uL_pW*t2Tt64{7C-_+5 z+n05;6`nH78#4@Nvp&wixtNL1nzJ3lR{V(6`?t?%%P|S-z^nKJHTW)_^$yuA=h3*( ze9W@`8V|EfWo0M+4*RoA4@NpVBL6tnEtI1Qx?lFeNJj_ge%Mv;HR0a9Xm51?&uB;H z!{OYA5M@XppZD?W>7P>%_u++Ys|^b*!r z3hY7+bpQ1gSOwjGUH3WEeb)WPw}9ghWFqx`>Ss{%i?ettH!U&^*OQ(;MGT)F9c&j?ZRQd={ID#jGnoYn@@Aa6djY>Fg8ELOy0-CQ|Ps zIhT4N*02u!h~HU<naR z8Xw?OtV2G_`fOC=d3=O*Sbjg}Gq44^-+kTt+?VWR9Y-d|AiD4Q1o&|<>p@%OvyGpr z?R+!uzTzf6^4qaFiKE%4m~Ej)NchxB)j}u~|mSDy&9XXU|Mhp6JTH z8~OM8d;wf}ALoNH8`oei=3}QxW1VY+CfElp(HiME5=Y^9JiLp~W6*u&voQv`ue`f& zw(d`zhPhj~2Q(hSvv>}x@g~+GgXJ#W&=>toCOH6E7>uFNeSLE<9;f0g@eLVSltX2a$5HIfQJ7bR2=Ba4b5T46-|V zA`^p=gKE48->)3+z}@%wYTirIppj=T?;p7f58w;@fh|ovpYFqU3M<(c$Q$N&lGDb% z`*}|+#8X&?mSN4lX})i;1v}tt$vv^r3t6bf%W(G-u5QiW z!`(Mn_i-PDT%3!mq5HW1zx!}|_u=011NX1T zA=M_?Xs0>nkIZ?br0wnbirkE?9Q$m?p&akD!{UQEmyhkN`#bP8`--3OG}E>eKe3P4 z3125q_Oa}Z#SiEK<`zLjwIA+J6l&G#6dz$@^z=5gWfPd=CXk^hJqv;5#R-*&`0rul9{kk719l$*@S z><{7YPadT^hBf#eTktb{CF~QBi-|ZL0R&Nnb8t0$+?aea$}j`fxCFCtGj7A(@O{I6 z5G(O6mTmE@Cx1q>t;}C^*v5Moz05hJT#q?;(Y!{k!aG=pt@suF*>}nSvz?UR@dx_- z%y10C2oz%)&c@xi2Rku2p5}WP%kd+2 zq6V+ z&H9{m1mg|jGsTcJ-=}Y~pN8-KG~eYP@|hTOa3>a_GwVhdoQs)QjkmEKHNv_fBU$!2 z$YR+J!Wy$L7qt&UH7>+*lm0|K-<_-K`5tF^F2y_e4Am@4$zfT_Sd7Q1I181SifXp? zmtYs$`XsjTe;|u(^&mXRGL#qRd9GwTdleQpVEXYscA+2hQhfWf-r;m}CMo%?+0MXs zNSbdiG(|6*fWgQ`1ZB7y*Wy0R$KzPfF^l-hSpP33FJbv#My^luHNsvv2yM{;9dS60 z#4+%F%li$vn259B$E{n_d=KEHA3f8V_wsl1CiDL-{Dfc7hWXwO>F9(E)1B;xOpHV> z&cZBQgM60BWc3t(BKzW3mWBMn^4Ni8yyv8bWg>4K>lw_l8II%m z%p~vf9^8n|^;ys0JDBYNa&ZAJ!fm(%cfofk^9_5U37Vl7PBeYVlhGeTk&B7gz%r0} zi;|o0!L&v55DCJb@?i$2_J3J({u)#xUdCoAm@4=mTF1YGhy{-q_bOs3qGG zoYcy57VjB3m~D>u4x&G9XW2u?k1Vm{WlV|gGm%I8Xa&wFSq z*1yGm1o5{y=YlEUrTHF3m#v;1EJIoQEAMq=vrKXjK^YRL#B?)*oQa!o7Z&45JcsA; zHENK*GmY~@?8{j$a?w7XOG&xHTt!}oo6KBN=3zb_Fi(-PlVvHdut?7QevHJeMb0d*-%bJA?&z47tY_J6!rnVLhD3ieg_N_+J>&vBh(&k`%kTnT#T!@+HK@-+84{R^>8Qr}n2j4y z!?{R#miOjLjBDm;z_w1#Gt2nwu^czDyd;-pH3m=fo?C{;vq@~>z4sedvg}^P&-ew$ z@!peSmSqWUOJjS7>U~)MaX%JfF&O8Eek{amrkrIV7vLiN4fC)Vk7GHW#~Qo~-!8VrxE`-!3wGc= z+N6AHL|yFU#21z3+3l`+)R#!}}hIyAQ}9>S;WRyAMe7 zH(UA+r*`)NIqt2NzLTikeLxz#)6&P{_qqFkMBZ)b8&B=-19Hd*Eq&}BeeOOWJw9yd zn@H{M1M=I)Eq$j^yZeB=zOJQjGPS!8$RVG58x zwYv{U;YM$I-F-m%e%De>p?vPXD<6N~QcbIT?mjDrZ1%=?_gVRAOG{s0hP(T$yz`^? z{O&$0A5&|741iuo0Mqf9Sx&x-_wft1<0+QMGgyWdxQ-Wa1Js_R?sY?VUDch3xTrqc zV_bs2`o4?WXQ}fv!WJ4P7_-0=jPW1KfE{UuUnqLEZD4nS7=zMKx}Pt|P`U1sCIT zxbyUGznZ#TcIWGL{^m63bD*}-?sH(>_ShY2xW<72I1OswmxH>WH|l;4)Omj7_t9`I?RC%;dt-mJ#vy2jJ~#>ekcmMUVn&d;7z4FqP&>cncpe|(W9-Cl z*#A8q7d_Amqmhd!%5VuT!#pg&^H>431JLK2EF8@&lQYdZq@2XHAvxKoO{xq@_nb@0 zRi;TtuC1V%Ifj&QCr=3}r6xwo6q6vO!l=!Qd~LoZWs~`yl+ETsUW8m^E+OSIa|J0^ znc1XVYpy5dZ{{XaJ}@7V^1JECv4$LBI+1d;X_CSGKr^#9DJ@J(QVuW&lG4VsC8ZtO zqu=kIgE$8wz03)uoM`%z($8d)GSKKd2BJ1;a+*1Vl(S3|-b-?_Ig=E%Ih3IB`#ArD z{;UU?P@6mH&g1kzHgeFP@kRf&$4tzD_Th3D?!ndU6U4P2`=hbxNTJkd(cdHqkMu zxbF+-9K3wObFRl{_yT2Yd*gW8=V?PfIn}}N6OFEc^KBfV_M&5M> zcU|HWYH7jp5}i{LwN;m9JXZ@GgX58pLQFyo?t3h*J@-;R=ZgEh>pmyV@+^skppnBIh>TEOeT3M z-1)G%bnASy&R^>Dq1qz%!O2G74;FntH~_U%)3vTyxB^#WHm<`wEWlzsY#t|{#8Tth zr+!TR3D#i)wqPrCeoh)T<$Z$|*cYvE6pld#x}iIIq8Cm;A56pl?C-Y>pP#7p-sxp*wn_4^B2`kY~b=09^a+3+R?vxC~ce zHm=1DxEZ(LHgg9#2Y2J|n1=;;5Km%_`Dfp|)%R^v+Y##egZqB1JAXZkeplcs%*M5t zhXr^9kKswE&AEJP){`6H+Ii|+L*4Jqsx6Icr|8<#xbx(?1`@z@sGZ_0{0+C@Av}Vo zvD7RlUjogmeHrM6?#RRtoQLyqq0#v+eVHApv{*~HFN-oCXG@OZm36YZ!MHwn^9T{gha{s&E z+tPQoQopaYnEGKnh9~eWmYe6v7x6OO_p|h!tkmyg>HAk|_kA_$evZ`lup%7i#-R3o z=iwIU`&b*{u7jt3&!r{D8|ml@eb40-OPFh=46%!S&!E`r*%dSrp8Yu*W^l-duIP!A&=&)s??2s+Ik*!$@f-9#D1BdB z*FoI(we`I}ou75zkJ3pmou~DU=5OYZbJ-64-D`*XJE;!^&F^Kig!VWFuKjY9?wL^g zkh%C02j0hc(0PYTpz{rN&oiXW(HKq99EU;e>k~L1kKjlA3blO|U7Oamo2K*m z?1u~tK|W^SLOcw$ic0%n`bnti-GBFT?FcSHw#B_5mxd;!L$H>R=B$i^i zQCnNr-u4r^*JC4o#83El+dsPVE@#}&=OpO7%V+RCz<%dFwljDMuVEK_JG^$g?t30} z&(FB;X|~_R>%}qnPrpBZ^6%`2a5b*QN^HR{=zH<0--oYzK4=o3nf{&c!!w8eN8it? zuE%u)%*7h`>U-^obX_$Q12G(GS5$#&=zCjp;lBT}nr@x9()YINp0}#o4(YGjANgnl z(GYu?resg_#tGoGbmg=^v(DzFYfNPImx1FJn>y@%ETHyd3h&Ism z%zVs1HEzRlti&t$08plhY> zdg)-gb=_tK-1WNpe5UM;3$O^Ty=48CT>FQvtBSkMqxM*Fs7;n!fQRuMR=~B-`j~D> zZJ%}QeoQC+RlAaTjH7m3pW;7lw{w)UKijhGGPCjZ)XAs<8+w@FLW9 zOVn=bLA;NTpmtkbptf65jRkPmIo009U1vU)^Qi88s@iq^tLtA~+HgJ53?L=-y6GC~ z4d!!F)ILF)p&L##YOf$?;8M8j-L73(YWtDn58*v&;-uP*{8_t(46c6IQ|JR)-=Nh`M zulI(ouj{(H=(_qQxORf>e7d{7{{Pxbd+nt;lJ>6u-dE4pV@bW*_W76Z6oz#Jpj^+qbI+>$MIo5P0rHkoGN_W$fl-@W2Cz`&b^fQ^H z3^Z)Mv>91>4Ner0g&>0a4QszU%3!AtjA--csK*B&D%wLP|5UHz_SlOHx{y14z+tc1j!5 zmXt${e&b0x82#?29AP?bBC#0-18%X)wd`ZgJ=37!WneR#2 zjBQXG4%u#Yk@_u&j0U`S5imhgLZ*n6uqh#>)Wk@cViKfOm?~1HnX^eb$IK+Xy%pv7Yb2lmXnEObXZ|)~$p;<)AL*@}u9y3cwdD1*h z%2Kn8l;_O~QuG@=qThNI{Z^0YH(y1+*|QpNnzu<=Yu+Q}1M?9npO|%|Y%rgb@}>Ej zlyA)@Qoc8vN!e<)k@BCZseody~?_v?N8p`5*_F z14(IP+LCgpX-`TA(~*=TjJ~rgN1J0w>1?`?k`J{-Ub8Rffbcu?y+ZeW33q<=ui7i6 zwd3`pzG+BGW7C9`W@c|vT9}rkv@!>fa-eBLN?UU%DeX-MQaYL=NaCYzKTa|$VWW*jLK%tTU7H)oRKHvv+D zCPYe+36oM{N=b>CDWoJ!1u0c#8YyR+b4ZzK&LialGmDgq&84JVZmuNdYI6-K*O?p0 z+cC%7Ny^>k9#ZZz^GUhiEF@)-d5Dxp%wwc1F;9~6v{_2ZGV>fMFPIleS!rG&V>g_Itq4=H_dGKOF{Mw<&saqSEP$ML>G2$N83 zCX=Gy!V&%MiTmvn{WeY|)IRY%a{(!{%*CW!YAz?`N^>%FX6hQf@bM zNV(J8P0BsyK2qkJ`$<`77LoFhd4!b5%o0+bG*6SV)GQ6&q-ac`p&4WsBANT)n0S}pV=kL3?^l$8BWSblTAvF zIfaxwGmexAW+Ex4n=?uA8~t{K1WkyPA`>R1#HeknoM$c|WtO>^luOO!q+DsPCgmD) z9Vs^${RWTRY}AHUI&vLLjxe1_IocdcN@vrB?27KDCn>#6A5u;-CzI0O3?L=T3?^l$ z8BWSblTAvFIfaxwGmexAW+Ex4n=?uAn*b?66C$O^gh?qerKH5n6mlx2n;E3cH0P0W zftf|h#YVqi_BxBEHO`#^0Zk> z$};l;DK8tfr51h1MgG(F)UF-1ejiossNMH9-S=mgALO;0&X0QSrVr*sLwAhESd2#z z&d05I98cnDvy^o0q*v3u5%t%4?V@{=YWG}%i!cXI;cfhY#+=AF3@2ecVz>-yC!N|p zdINQ8`{=gs?b$wh9Cd2@=&Pwy+ehnnRn3-FA2mV6N_@d{qU z8~6EyFZh02Z<0ZU|SMdhieIk6#xm1gO z7=$4hh7ridIE+UD^!s-DEe+l8;TiKRxdJcYWxR?vuomy)GwAmQ^*vwRzrlUaw;$bu zFa&>gp9c4PdFL@)zwiC3Sxvr!cg_3cI_P)1x1lR-!lVaI#88aJL*`NP8N7@)a1d?8 z+MuWDO-dirkL(ZqKKzBa2p8i@xZj7@?|{E#^c#KsFdh?e7V=SmLKLACQ&5icaV4%c zw~)6(zhkA}^xW@2E`6dKdSDFnyTfrL@F?Df`@Pv_w6)qBvv3jg8`_dio2t~`ojs6t zRQmnTaj5${Z~Cn_{T_M&iPktK90{HaKDeWzB9vdOa{m2(0vqcLF`_y zUATU4=p5)b80KILwxZrVPa{&AnT}*9xbIEs_W;ksqj(YeeYmaAcbetM`D}kM6#AXO zYFvOvupD2SqZiN~1X*SjsoxJg8|PrLd6;|@OYj7q#WFl+Hj$h0Gk(G6_p>d_j?NK=+^JS=wg$82S(oy*KfP@!$13dmjZ_W+3&mb+@I-z`+oUix?jMe19tz; z%W}FuhJFVlqczvCaX<9CQttOKj^nuDL}ax2$M3)PqhF>ONM_+pxbIJ|r(55lmb8QU zUKP5d4^Bcq3^k{ar{gl*j4p@l{@sZFbl3fzh^~kJ_3s!AX4p`38Cm!H@;B0N8`u7S zfqsYPCuDFzsu$e%xKD|B-{aQrXk80^r&rwfdT)P*_BRN<$?v_P6mgu5^DzsTV*wUo z;9D$5=ps%poP-D}%!Q=fiqzi|`FDT!Lf<3rh3~kwy%}r%7kl>tXLGgxfBZ}CBqm7` zqvV#D-$-I{Pl05*auQQ3{6#_=4yOr_C$a4CaL+!kMJIo1T&T# zj{$tA4uqRm8#o_Ub7BMM!)i{f=E1%N&3`?EE0X+VXPhT zMsru?I8MOLC*3{GKbJI~?>Nz1Px%>|=c##{s(Yrno7wX>c@MwqqB5!hVxU`tTU<1=0G5!?38FUn;o-Ymtuc zupRr6iPJcPH+gQy!{fOriBOcs2#iD*9>4U2>N~i)o{fEMuMlZ|Am!B0obv~d`=WI* z)X#hF|MPxcZaydK=efR~`g={#5?V`9&erc!-_P~?mT+19zP09T{XDIM==yn0xO~3- zydnIK>*p=uvg_xq;@bDxorJn)+lzsJ~YV>hnnl(~)%jzgRAJH}{jh@F-mUZ`Ute#Lry4 z8ubq^f%=D12MrKzZXqSG-#D1|J9rOMF%7OBt@@F&2R~xJ$s`Y<8sB+0qYi@mnHl_S z2hP^tbag$?*5BM3%D#}X5yOr>FB*Yc5C!#B1N*BV(w>h6CY4OXQm7w0=L&y6HicY-R0Q^CZ!Sr{ z6^%>;>H4?o<9=Y0$&a8uuj}`gyOQx^T#rgnUC0{rf$O5a^@mmeDIDqpi~7E@0j~f1 zEtk~?mcagRz0zmz|90T#o#6VxuX6cys6QMQ&>wEZW%Y>z`^D2~Cu0si#79s)#dGZ^ zyLxherEe_iBfEa`k>BVi2ltO%zxaVK{Qctp_Wm%NIIlkD;6r?3Qpm-K&By*Y4&nsT z@-vQ&9tGLo#BOBb2u`3!A$|_G4s(yfw9yx;@4p*|(Sv=9KF~TUgRmQ!aCJL-u-~A% zox7nr&e8OlI$=G&K`7t%HzSho-diyiZ{RPCrD}abHxE05?^Ufo=+@_Q>kl^PyRseD zLu+9q@?96W?nN};L7k8ct*a8r_l?$5iAE>Hhx+v+pF|=?Ae#R85Ddcz#8zORAA6xS zytIz&%Q#)lFQ<9oFWtoPI%r+kDrgCQTCNHLkgg^QCY*+G9CXAJ46q;OfuUVcQ=8S8x7%E~}2Ut5+S(Hdysv*W(*Rv;FLZ zG^~c|=r%+K+e_7rc6IVx{a06K)YYw2eZ>vXI!LM`?dnDc*M&~x_~ol`^(R_s_;*F>Q)mQWm`RhcxdU%yR_BYYR zJWWaiK7$f&-sIc|DIMxpmXu~@ASo}H0@pE)hC-$aDG%})k)Ea(DZNcRDSb^pQkI+D zr0g+!N!e!(kn&6wzhR_2XGW0nym^6?G3G^5UN(OvZ<7v$x8tPHM!tN&9pKgU;a8(L!yQgI4ds9u2ME{HH)$$JoE9wH~=BeRP960V-m z(1P?&@d8HUMZAP*W;Q7w;v+1;LM+D$tj1?Z$3|?%x7cQOlDpu8$Mv5anp>HTTL{1C*p8F63tLjUc(!hV^T<2j8v?|YJ84$_}XkDB?G%~5Qp#! zyrR4(&=_5jh-b_&Ql2-HNSSOFlc`v4R+6#~>DYpAkpUlC@_i`}BOb4tMWn1X-;zG8 zDCW0{T!VE;$E_iLZOL}H+jJtO8)7iRj3&omwwXtMj8wCPloeQsO{O^e)KU^xq6@lW zAQCVR6LA#Ba0Wh1U|(P&PQZst*%y~9P!4qwf%b^O!{!lE`XK?^upN7miIea_HQFvi zX_Uj0NWlA;g`@DH9Q*iE4K)ys2sA-c^hO^%h6K#OEPRG^e2ec;hJL~|h%p1nK^TcK z7>9|NiCI_zA6j3{>w|$vz!986J^B(2&hfm>EOLPGq87 zO~2C<`F*@FiR-Zv>8M7ZE&|8lL)sMHQ}`T5aN|@SHyR)U{gHqbSc@&#j`q`d-7yde zSZB77-@#|TMWFcvRj6*6%KK9pvE zwH)p=50KIeeejq$O?p1wD_DY6SdI1g0-Ny-zQcC>&190Na0WgU@#t5fl4(dvW7C#w zhi*u~Dfn;+eeZmzg*q5xCXf^HHqvnh3G~k=U?RT2c4Wba3iR2l;Wo6x(@4NuW*NB> z8{yN>=)+IMbj-pAY(f@%sGOHRBjV5-@$jK;e)`YofEYXoAM!BJ-^1YW}Hn1HEBh7Y$E;r`)6q~d3sK;=t$9?<|XMY)Zc zPRdNo!W{TenK6qR=!{udgY7s5AKEhheLLbY2(B*aQZA?CM`Yq8e5lRXhO|UGJb?sc zm|sXALKx?k2qfS+GlG=S<}FgDV-|iwCQibKJdBCUr6`Kx2tgHd6DhS!15%oyIc`NO zv_(7Ijt=OEu870^co==~7<}l;SdDZ?0#+d%ThwL@eI7o>Hu%ttv7C13j2JwO1bl*2 zdNlG14pKO2@Xot?2h^d%{&G-hp z;6qEs$lKvvq~Zj8SMxbz3|#7(=43lOj6N8P7ctd*O!|XP-*&@?8cCEB4g zV$j35l;zi-_LLM}rTy_2IpS;TVl1 zY{xES;xK$T{v3&oqev8dft*Ect=arN+==_}Ao?I{4%aW_+<_F@7>ERnz!;3fn^65= zUpn`HJ&8(RunoYYP(9%v;Y0H;xnDQ}AMXB&=LAo}hr2fTO&}!+Z{uA|!W2x!2W9~& zDP|cd`M&lmOcucv<{DBOmKR5#wjPU)9@!vhHIfqT~q4kfvPUwt#5R3SI z98ZD@M>K{Hc@Fr6l5(B7o~($<=4MjrnFgeUqY0X#Ia-=lq_j5Cq}*xlB0Hd?=}byj z(~Xo^a~~=9qX!-`kCM{g3?wDNj3i||k}%0kCnW`$I1FDV+r5K4?|20hF$>8^GwVq? z3Lj=3;TPOl$S>LW4-eDcES@@pGXTD?n{3OZ5v)fpM#>W7~LFTafI00X~ z;j+LiPpk4XGGb+G#u zWE=*=aIp?H{jI|Ew{WozHsfSP{yXbnH!I2*F@BFa*nf8YYp*!tl8pJaLK{S*13H?{ z%3PpUjfZ{LiGwLK~FkZG3f5W-fNAANH_9J*4 zPnip;lf0GR&48L7cJeFd(+ z&Y;~{*IoAt{BPDhzF6n@AJ?be*9vA*%YSKm0euCWSsYTa8`&-f3kTgiFhZ zznA{^CCH0%D35DV!Birp3TmPj>Y~1BNXjjy1u3_h+em4HcDNmPpuM@9luo7#DfgHd zQtm}}#F+=kp6G?X=!YlpBnDuRNhC+$dAy0Y@h;xOG`x?6xX^mNbNI~<@rg+x7sJhG zb@Nsa7WU6ub@Nr-Jk|J1{qt0-Ugn>V>gJ!i`KFp%D)FIyXPYk?!+zTc^RMQMp6|R+ zHxJa!=X@*|V?M}fKIeaWzGiGuUVHr3Jk9%yF%Px4e?De|D|!E7Zz=yg%g$wZPr=Qn z?7}$iy-4hR_IZ*yC_8`yk9IK?EYv)x1p#yQ|se zksl+~3}SwpJZCyHZ!HEROd2VlniZt{j3X$Rk7-~if=h9=DNB|^Pdtnb#>>y`a1199 z#<)#mbTe^`zub>_bD9*l{`|p0%%y?WIG3U32%isWM}Js4qYLuzc?m%YGmMn=*nn@a z1+9wldpKocnN#v0dNY?qe!_m#zLN7^umKyf8C&4dugi=4D1<0Ji_K8BG|vN)Fd0+v z0Xow^i$xZEXh`2H0)vo%G_1r|rer9`z7dK_2tz$IL}N5TQ?$VCxYOK4cEbtYELk`M zAL8kAiQYiDkPih=*c2s8q7<&e)ut?24pmVdVW^LAM4*XjO16X69G6^SoY#d$<`gMs z=!5xi>14*7@TeI?%3&Nszp1?5Sch~R$4O+F>eKifAjT{q*J2yCqbq%v7;M9K9K<2~ zL_bA}aooKmt}_i=C#2>q+l_YAd>B1Q}n}QSdLX#YrZArJ8Vb25c)%yW^OCN_d2u|d>7nfR*E$l0x8^>*8z*{sMZ#7S5nq*Rj zX1^;EGCy@CDvda((yGm(h$zUwo#y9XV+eC?ETPNG#!@X?NdZHf& zz~hT77cN0Q6hJ|gFeS+=Q5M(XdQ*v%DyBLq4bTv+Olz_Y+L@8$^Y|;?z<5l=+js|) z@E)e%1I)r&tj8Dl%6v`!41EdbM-i06wWy36@H7Tu9OmL%>_Ei|JSS*{@%Rz?BA8Y2Q@Z(?2(Ud2SD;Rkp%dCgE2Ef8&D$pnl?HOhP?_!b4XA^Gj~dMvJI3yWosvr(M(F@OD zC`Mr#W?~Pt_&^ghGakpvJ3tE%_`adf#5Sb?9!5Vrj%P3o&!XM;els{uEY&$iELvpX z287{dBw;3IBNa=KjxX>FEm(!n= zL1e)@#&KRGVly)E6TIV$m!TM1AR3(zi{~&FA0QdCp@k9p<0*WOwYc*nx5vYXM?dt( zQ%JlV$#yq59Db`~nw8+9scmoy<%iBuRNFd2a6?OUHJJuh%rx-GSIwD$`tcHDf93#7MfI2ertbRYiql8wg1=l%XMy7Bb@L4 zxm#b{?WgOUu<QE> z{(bWc-7n`O=1G!CWZNM6VIfq8z6WZU7*agm`=X1IWP*P`r{BAzAp5##XjDfw61So? z+Cp_@hu|5gery_6Vii8e8f-F`6yo1QV?^Q^vzSc7YNNWZYmmDzw?|_WNlIXy*VeS} zHjBwrEWuK&fUEDihRd5wt|I)qXo4sVf$F!aZmXnW8CJs8Z~dIhu6}E7`X{Q}+8B{& z4p*i zz`Cj9Y0qP9M;2o_R$>*dqmNS&Rp9EN-o)jbQ4d!!##0)qhbniQdr7$uad;Sgp_-^t z+cYGl5t^VWR4;Xid7G5Un1bo%Z=~$SJ{&NINmozx2F8?Xp*FrZs-G&=!}u&f^-L>3 zHBBY3p6REw@0iAS8lEw8$&auA3$Yk!s4<<75pG5;sCKEVU-~qc2b!NqIe<+3Vt#m^ z{eJAm-|!>$VxLj{P*+1#bwpJ=)YT82!{v`LAJvNcx%#0)Xp8EGeuPx0eyHk(it2_| zM@`&}+9reCf!vpKJOrv68i6J_m-?Zq7g`sQXo6-&bwlUi6SI(9j3q|(L}z0@7Gkkc zJ<*zIh;TGEGf0_Yq*47*QT@@cuoc_k>W|hh z&Dav|Mn}A6RA*Egn`xxXHgidFbwpog-u5ea)%?QPjp~THdZDg9sOp0DfU66tF1FlY z!pX+yW@1ShU~W-T*|y5R8c$kOj(K@V z#S*MVI=;hp>_;X};|!ug{q7*;DGb0!j6xDpp^jfJ{MI;CDXuSz^BJd#U8|&&_X3>|>_>yYKimN007cNU4pI>lYS=GptNYj;+ZYG1= z4UJd*QR7s9=J?d_T_^W^$Gdzx7$1Wh_ey5$OWgREtGoMWjD!6zjDIc9#r`Z-na@c% zY=)O(Ul^}rBBo*%Qp_4svdkY@N5#kYp=zjz>Zi!>T|Y%NQ{-aZl#6v!F4j%qcszaX zi*-}zpEI^_v2MzR*G*B)l#6v!{`|Tr_tTe=zIYU4%mi{G(vXfr@L^PWZi9<;QaB#M zvFg(kd0y~;x=soM9RJOAQqIsn^L&1(z>jOSxDt<$s}GifX3R$N#0eDU(uoyy^d3H|1iz6rPuii}g}2)=S}izNP4+Z4vF}C{gk5YUtY%kWBHOt0y zRZrMO$;K2RPuP9P#-V9XIBcAa!@izycsCn|V?E(eYc>w4dJ<}`C55T+*(#D!*;FN^ znyF4on5jt$oBwQeNU3iclG4aTkkZ67C8e2ZK}svrnv}LCnv^?Cdr~@>j-+%pT}kO? zVoB+4;z;RX9weow=|xI!6HiKC(~p$LO@H!9JZ%P&G8jWJ)I3W*hY@%lqwykM#w&Og zuVXwWU?P(6j+sQtWK6*{GlP_wn1$K+5FeS3$@xez%Sc&iJ|ktV;VX{%kJ;0nHT7B3 zm$Q9M$|my-Dc_oHq-2;Kr0g`iN!erelCsYnAmxxbLdsDb$4Qe#${E84Q>SctxlJBY z@|gmp6f#9fDQb$55@Je_Qqq(nrL-wSN?8+1%C)8fDHTm+QmUG2q*OOyq|`JG$cAWy z#%N-ilFiZ5v?8UoX-i7{C4PNLdE6wB@~jz7j>IT4njC`{@iyMY`$#umk{htuY$0W< z*+xo+*+I%qvzwGXW-lrG%mGr4m}8`zz)74&jXZpoO?Oh_Ob=2XG(Ab_WqOkmZ~Btb z&pb{_fAbV61I!>&63s|bMw!v1j5RNj@``ztl-JETQpTINNJ%p9kTS_kCS|IbPRa~3 zlaypLhm^Ty9x3z90#Z`UVp7tu1fQDaq^vZnN%`EYC1t(&l9UZ*BPpBB7E-pFZKPzF z9i;3uyGhw&_L8#C93bVOIZVnCbCi_h<|HXu<_sww#~>xQ$wNv$Q-G90rU)rTO)*kJ zObJp-no^{cHf2aDYeGr6)>I&+qNz+uRa1?W>gFc01ComIdSRtmOG?t^%(=r@<^V3h zBBa7A>zA99JSHD01xz7QikPCL6f+^DlrSYpDP>BNQpS`eCDdF?N(EDql**A4Qfiqxq|`GFNC`KMNr^PKkP>B@lhV?(BBixyOG>o4gOv8B11TL%XHvSFZluJT z?xe(-9;7^IdXm!1^d=?V^d+UAd7PB~<|$GJm_ei@njxeNHP4bV+>9h;lo?IRSo0Do zub8(;Niy${GRaIPWvZD@$_z7;lw>o9l(}XeDf7(&Qc}!fQqs&)QkIz&q^vTZk+R0D zBW1n$l9UZ*BPpBB7E-pFZKPzF9i;3uyGhw&_L8#C93bVOIZVnCbCi_h<|HXu<_swX z%5i)SrEm=@qXz0B0xi)7olF-}?lCc>JcvG+kA+x;&#@WbVh{G=I8GsVdB6Om6vm|} zh7ep~t|G5N1yhlf%BCuLBf@Yq8Y2SD%rm5@SVDEgn(kyA9x#6)Gfv?8UoX-i79xr3DUrUNM*O=nWNnr@`Tn(m~;nI5D(XnK;; z%OsLA#0(|nSu>oJk!BPrqs>@SUNWzc@~U~AlyT--=2J=qQ<0R)rYb4bOm$Lfnp&jP zG4)7kV8TghY$8dy#YBD5K@MkXGwY9ygUvMm*8Pd1 zJ&fDefR_Bi4muGhaiAS}d-BuCKJ;~7vhB>Vn`z2a}j)e7<09r5y7yM67D z>~X(H+PXiZBKY^or)lf&&21Xu-9|3w@#t|DX&&ND;qQ;*-`DdU)g?qPf!CVbt39eG z{~kGyww{k=y+XW?$S>{sUVTHd&&kfBt>>dmfB)kv&EwJiuRxn225&pps~t}J6SBo$ zi+fBP_3{h~Q7LLKjDIu z(46E>pgP_i&x-3bP8ApQ#x$E_0JB$4|2-U<%<2E{P z(AB9@jdY!_It=GiCq0GRFGJw@t?OvJ^INxa`8#aK572tgXP|==1yBfeP!Fo>E)iHAG?Iv(pyvn=};c?F8)o}H>B01;iPH3Z;!1=++%v<~g zNx6AW5SEwq4dCi6dBxfOL+kgpfQsbTK_qm3qg(IT)tz$VE63TmoJRcn+)pH5=3f_> zzwAY#3u5s!rh%JeZ)X;gsbEUhKb&{=36Fg{cHu|t17-ZZer&A7)sq;;WpQ=h^75G# z)oqijO*v8`&3B}@^+n@&P40&~Kg`tya&^;!>n`NxIlKg_jV7+1nLF?FZ1tvf9_mTs zh4L0gQN*DK;-UJ6gOG^PNJ1)f{?_%Vges_po1ng78?-|VM&NmjMc{c>u@!j!D)H}B zIs182s+XpEX0CpY&JkA)9o4QD)l~?E>M5vxj_O&fevUgYDv8UYx(Zns%X>Ajo=zxp z4`Yykboflio4E{EKgXNGL&b26gz7KqyeHK`lXMe&{?l*OPw2sRR&^5|g3sh)UoR95 z5ed~oQ2m2=^A%=nz28?kgiUTtIOl+@qEu`OzVBC#?}weIyCR% zY;|^YzNhN!Xg!*o>g>36t6hDaSPoQa{c7!xwnqnOAM{-IKR@Ai3(X?(Q!K}C?T40S zU-De`L+{{r@3B9r{maicF%Jw{Ut4t|-Fn&C>tr81zxqBpQ0D6U__&1xlh6YNIadp&?X1&#e=$Ndc;>rvtz}5sv{##Bhwo z8&J(F)xOh#{_3^(K14lud?%_7c?REON1;y1e{x-id-!f0fJCT1-S4$N!MWDGPbzly z<16d=`AK9!yYK&WoQ3zm^{8ZSB*o*ssd39NbkqAZgV!4cPzqP0Jg!3pR76#TT|(Vx zc$fR@6yzm~;4&1$<*1CR2t!TWjM}J=aGb54K{P*?yUji1edvK+h(|vqpRq^r7@ojW z7zlTqc_^3Vw~jZv`*j=8^@03^4<8Y z@$7+IpNP4bhh zh8HjfFXClP#dIWN4nD+3_yj3fj+Ic&7u9=Ni}fah`~kb6bN)}jhuCYV;5+6pj^G!Z zf)6k9U9%E_>v5@0v)0$BgL()@V-ra>K~qGbIohEK&!yI1nShDNmCX95v-#}f4!9GA zBl(+mLA7UNz|-XQ!7#q}p2cnS9qvNBxt;H>_DH7hm4@|vCw_?y$iNQl!G3dul;b#o zG(P7ia0)&Y31#d8>v0fOxvw|k4UB`wcj;va#f>=4=TI`(*OZ2AtK@+%SVt01V+e-f zc}&L#@NyOPG7(E(x-a@80g<>19T9^>UUStQUXO3!>JKLtqm~QSn#3aXpD`L^@e-zD zIzGfl_yj3XJ*5?J^_13f`D<*%Hj_dAfZfQ%AsoirJO?Ln8a^E4z3Rhy-lJ#W-OTn7 zJ$Uc+fm;v7#}8Y3BdaS$gkm_f;NT?cCsw@t$`tT3y{ zwOEgD;MT)x!k_Mpd+`*en+2q#!Oi15%H`u=6T*9oW4YRF@E*M$)zB5)aX%iy6L=Df zp}|id9trhJAZ0AZqiT8f8&T7=B_$TamDRXCuB9*d9CW-P6&lO`3>v%lA&l>&&ghCb z^uS->@tMyDH@@G5_d;iQeCFyx^~rBV8?=MRYf=`WaP_Yma@o~wQT_9F(B#!R`T3mS zF2v#iXu|7-tfQlKn|w$v$9n*Ye1^5IPG~{4kNCCjb#ZE^BBQLo?z0B5i=ZfqAp}tf ztUspu$?b6;dLRK>SFj6Qefl)s!@KblR7YF&rN`hUOo3_|&4b5xXg(A`K@>(EG%(?0 zBSfGDqR|ODZlZeA8NAVsLhC5)$3dLX>$Hb;QLz#mk;G&E7%51{m+&DG6XDhmX~$>n zIgG(XXi{(#qR|PeU!MzkOg^$Gis34R!mV32oy)F1cVtg$U?UcPfvcyT$Y=6d3^yam z7cd4BFcGQ^?iJ(v1sQBp&LEb@oPfjv^vy8^vyeoeWeTQa6ShD#rxJOOy^mz9#(HQS z4Ar6D4o!k~^~Ueza$0`2hd2!%zUR4+c(!q;=5T+$_pgHzMm9nuZiUuGQSDvT|5JU@ zXg&j~)9;RZrE%=*Fiye;kA3g!a3g9Uu@H|L(OiBCN%$12@HM>4_?|~Bw^6NjkAI^j zauw#ELS7WXxvt9?&TXR*Snsb5?Yp3we_e48VsIaN;0d_nd7J5bo(<2bnk68O$>zrqNncg<`#s*1SEHOsEX+O&TpjvpT%Lt6-V3TP7h{rm z&iCQ~jzb4qZiHJuLiOpEL+b;4gG4_2sza~!vJ#MZ1;-Jg`f1-m^=DMS{Y^~7+n9yH zeCAbma2Q_2ILyX}ScpX?ja-4xjOr9_z((Wh74D{;iNnzP6yI~7jv$QJTJ`qVvp=v0 z2XO+?rTz8m6R&3bjWph4S_eXf$*RHQJ$orGLo2jFJH!^C9|Vu@&LSv^5{N}F^hP}T z;!#BN*?1W7=!ekKY~v7%0Z70IjKv#Bg4V4_XH-$LssB(m+8k2I{t5Z*)2U>HVX zG{)j3{1tCt9LAfs$ccCtlQ0$2F%zF)F@oz+uH|RzjjKz!o3`qiX+0LzMRIliGy1SC zMc}$gzLB(FVA~8G94vyOD25PJMpe{DBdE@0bF@S&w835IfR5;lSlovm=mV`yl7K{B zo7rI3(QAN6Xk8K=By53O(F>2@HN1fos1CoYzaO|xN!X3dSwbIZ{f-2a$hK`I*5ex_ zvQ3!)w_b$SIlN&q&(99tXK?kDbiDpBv~HIq7Ugq}_o4c;$(Ri-S46@ZbMC?Dl17>;Cnit@~5Wt{+94VJEMaT|b4k{=F!> zzAX1Agm!DYzMoy+)!OT5>wfj3t=vdk_iq$!-M@ph3z3s(^Qw4xCi?&V8MHs3UDVno z()_otPFv4UHQM_3%F@>3X-!-At2u4``vYhzJK6OqwDs@D(bnHvX1_mxHXk!@r``Uq zw6kB2CH~t_p{;+X8g2c2A#KewXirOo07}~lY187$ulW6PyjbG+}KeVEKDeWT5 z{m)05T^~-H-4ZXIwx0JC+In3#($?Q=zrz3fM`-g=^_J1r2>wiA?(boIu8ru5(sL%YbcU9W@{ix6V z_rHN%-<7s**OIpG$56Yzy|u^F*5m3;TlZrFZQcLJY3twHNn5YSv)0~c*N?N`&$8>M z)6RbXtnuG|32oi~BDD4Mb#{FeZT+$AU>;HR;tzCw;et!jR z-T!K|b^pJmt@{;cx8F-!KOaC_&#%wglkED--}C=|3T^#+p|th7t+DH4t-X`B?#G?9 zv+vJ3|LuFz*54~(?I&sL?^Lk%z4rdCMO(l3rd{8jww|9EwDo#-wf4*0Ue8Y)ZT-7f z@&3~DKY+IGUjuGmoE&Ah-$h&3zhdnZv~~Z-+wF@^_P1x)^_6Ms_vc#s7TWs#6l>p3 zTlaq%ZGE5IXYE?){=XkjThC{dwQuMC>h*0;Tfg@L*X#8dKwFRRUD~=oL#>@kTaR~? zwST0YegA3e@ol87?ad_Gdi>?5_}||tc6}|{`a5f^-JEvz=g-<*XzSnGXYFCMb$_#H z>;AlK?L6!K?a9_ILR)|TQQEq{WoYZ~ue9rH(bntojkU+y?`P81+`#Tw%#AH_WMWd_7Bn4^Offd|NTj{+n1rO`-i`_TmODP+Il@I zSo;mTz7}o$-W1xpU2D5Og|@aQU1{t7M)HqIj`PU4&dn2Z^TPhjd0!f%)x3a<^S{_H zKk)Z;NZtG|ji=uMH!mlV%YWwlEREm0F?@~Ve~pdUY}`Dby|l%R>mTN_`~uDQIW*PJ z&F9J$#<&OEIwe}0O6!!k@qM>miRRdd=F>=C#e{%lRE!FvcMDRQ+H6_@e~rV9hx&0IB%-J6n$s@ecsf$%#VuV{nG+&otbl;Cl$+kE~j}>!SkQo zyrzVyuoaf}ePrY1cpO@z`W_!N#oPKM5({YY%iJRx7bz$Y7 z<~y;i)%Td@Ica{AzEh6E9rr!RHcQ+*M>qdT-+O)FettglnKZvJsaVeQb=*dT+``VNG&BE+`9Vu`oVDElAM=BPU-v(IzL5Jox&6xXoj(+O|NqnTiQMB!WZQGL z^-$gZrsfuDT|BqHS)R+9PZGGlsrlS)fAehfw_C6ul89ua;d2De9N&@>sM(0ej_x2=0j;-QQ-Xj;QJpuFFvPvQ|g>IK~qGb zIlALczRLpVM=fQWbqt#Gl+(PY%uwDZ?4O=(p3}L`YjX3J)E^3*x1{;Tf#0ve^O%A^ z=ZOr8{2B9_0>A&%@7!WsztYVc)91c6&iD1!>#TKb^jiPcys5y~U*|!bZQhjTOKCo4 zCfs%?cs`Tc&bsS^=QlOspYDu%@f4<;1*D{5BR1nGjw5g$(tW(Q0_Wwq*Ug=`bH4MG zYJ}3y#v>+yl(85OxBpSK{JG6r()ldf-u+K##@OgM{K8}06bDD>v$03_|PUIW2mHZBxvny`Cje9=-ta&u< z{=4}!?(e(tJ2!78aDPGL*um#H2G3LW^8fZc8`rN5o^RvE5nbjq|0c4Se_Szm9*(>J z?(-5nzb5#7^`D+^6~;4zTfWO`}Oq-nuinkcXW=ed*A)~cbHpqw)r;NU&#%(|E+bp zuZHV)cuDMMP5S$M95=r0=HpcO&VRh>T<7CNaeGdk_|xX&?A#XOmFDl|G#_W~cK`9U zbDfV(}`>v~}F;Lg(Xz^ZOdcxzPDIUHSc2_v?;6InBq}$@T2=d2T*V7Hu8p{JrMmRM_pmzivKGFWNc|nbUlnWn9lR zL(k2}8TGdiuOe+XA17r`NcM4eHyV ze4KFF`uE*@oUXLlO}pUvI5YTty?=9>kF$*H^?q~nampO>-`>r~sb%e)=Hs;H`U3p^ zpEVz6l-(aUA7>J6z7BGnkF&w9ck^-b9QHrIInBqZ!1e0h{Qoi^rx*8E+vneFKF$FC zJ$)YksQEZWe)hk=a+;4*f$R1D|GnnpMDg$G{c)l5ar*K5MfrU|RJ>M5PALj_a zug{~Kk5lA`|MTbO}S0NQ#!+l@cHZ{6oUi>0zpL8ZgLwmt zgpLme)+ti0qF4+^G8Q4#EFqU-8J0umvId{edYGRT=Xtkg z2Oy{OyyLm_Jqs5){?dq@jNtRATJy6GINNztkMMK( zGy3Ig_&dSp!Kfd73G!Y*f4Villhb)E8rOdY!*DL+`-`|;@OjH?_*qWpExYrT&o;i< zfHBWT2tHr4H9u=>bl&FOh=I=EdDyH`9g#F*>D7&H>6HW9n>=o$p}Pa48~ysl5n;<@PTzo zTCzjc3T+UL4(Mn)llLGN!!Z&sU@Vd`2Oojcdc4I*Gn}U3EeEF`cpI@9#pu|D;0lyN zXCz__lAyZuu5MZ`CcpRMgoi#*owmUkhkrUhkYjxAJh;ob9EzLa=J(|^E|h{#|JmxXX&%l=qvJ%XwemL{ zfzDh1z3Z)Ljrql9De3C3XubLM2&}`BL0fgj1M9G8P5MVd{eq86x{8lcvHL>Jy%&WlnKZ552>3sd2Q0?jiP|a%9qw;P% zdmW&_^Zs=1Um{*b5+-9RW+EB$FdvJNh80+aby$y$*oy<3&g(x7ou^o2GTQ`{ zLsjU!Ma>uMjed9<3CP5iQ@9;;+;BL~R`($9RK|f&2|DiaC=&50mYc)mF`P1|N!8aX zG);5#Ic|$P5DV3HNyHq?MJn7pVjW+~#7XEllXleWAQGwz8H>m96c!`R=$u-2UhQ{W z&Ojy(;}@K3{i(p?qN?i(kKpc13^XFZCG*>?~$K%Q8G4E3Kc65II<8XBnGPoRA4@l?PUx84l zE{5tss7}OUq{5@dz`4|KQ9XhINW^&PxbRA>#!h>FQX9kx(6+Sg1aZJD%w37zEcz z@N8aA;Q7WgI2Q8j`No_ZUk0j)AUeL+462v948PW!yVBuW-BRy^E7IOP)EY^r+tPbNd@3(x`Tb==kJE zPz?YHtUFy*^`<$eydHF(`F7|W^Yg7&7*3s!2;73R9e>}>&%ZZ6kg5x!^V4ghHX1{9 z6<)&xbFFizU04K-=zt2CYqY&r0Tt#%Y4dLxt(gViR#!Kg{ynxh5lo` z%3teLhWYC={#xhzL7xAfJRYb{i>vRfIvzC;iKe&@PhcR%Ky_#mkW>8_)l^X36xC`K zHxDte&VuSX{aR-s`5)_txw=xn)?G>Y?fR2%alQOE*KgJO086n2TcLFVvQUD0t|g)M z0_vbGqM>yI;xQZ}q4fi%V=0zF^ zq%<~NNV&&6 zP0B!{T{>B48ZZvf2yfCCR(+!Sp_~hiW@wIq7=#xv8j$ohX1yQQTZXmPBb> zgL1eQ6--4^Zoti`ZyJ)VaR=@~3}VsU#E}o7H%4I$Uc&3<9r9gF#(XSBDpq4H*5eCo z#C{xv4+XAcR|KIbk1D8&2P-koh&1ylxdN-O8lPh=zQRUq#Ww6fCZ4IneZ!kb!aJCS z`6i8Aj@4!z`6V{sYi!0=d~bdrcVQ2H#1Wi87EYs3Ro*Wsi}I*oDw0yg+(1@GE!0Lh z8slzsL>%r%Pdto1h{vPohbQqaCgTIl!bWU0+eq1g-Pnf%_}LsIPvNvVa|8Vy&b#Z5`|vH> zU%7&9skAdANcq(8QhUN(%hrIDZYGu#x`f$2AZ3=BOUlQXkL27u=a=wYLp5+!|5jA< zHn0xA<_wO2j)_Q&Q60~7IWD5wp5n2MQ9XZmT*Pg6BKetUew&VuxH_C0xvX z-Ekju97G126jGKz$2r!T9pn$t8WE!77rEi;&NkulZ`GaE@rOsCV-W5*#1Jm0m?h+L zti&p)#;)vu>g%3_4?3aOXSL3gO$nvM@hno&(F(fGaOF^$Pc z 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 X4YiWxaISG#vC;{rD;KU{$K3xHaBA^T diff --git a/stacktrace/esp_stacktrace_decoder_rs.js b/stacktrace/esp_stacktrace_decoder_rs.js new file mode 100644 index 0000000..20d35ed --- /dev/null +++ b/stacktrace/esp_stacktrace_decoder_rs.js @@ -0,0 +1,314 @@ +let wasm; + +const cachedTextDecoder = (typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }) : { decode: () => { throw Error('TextDecoder not available') } } ); + +if (typeof TextDecoder !== 'undefined') { cachedTextDecoder.decode(); }; + +let cachedUint8ArrayMemory0 = null; + +function getUint8ArrayMemory0() { + if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) { + cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer); + } + return cachedUint8ArrayMemory0; +} + +function getStringFromWasm0(ptr, len) { + ptr = ptr >>> 0; + return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len)); +} + +let WASM_VECTOR_LEN = 0; + +const cachedTextEncoder = (typeof TextEncoder !== 'undefined' ? new TextEncoder('utf-8') : { encode: () => { throw Error('TextEncoder not available') } } ); + +const encodeString = (typeof cachedTextEncoder.encodeInto === 'function' + ? function (arg, view) { + return cachedTextEncoder.encodeInto(arg, view); +} + : function (arg, view) { + const buf = cachedTextEncoder.encode(arg); + view.set(buf); + return { + read: arg.length, + written: buf.length + }; +}); + +function passStringToWasm0(arg, malloc, realloc) { + + if (realloc === undefined) { + const buf = cachedTextEncoder.encode(arg); + const ptr = malloc(buf.length, 1) >>> 0; + getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf); + WASM_VECTOR_LEN = buf.length; + return ptr; + } + + let len = arg.length; + let ptr = malloc(len, 1) >>> 0; + + const mem = getUint8ArrayMemory0(); + + let offset = 0; + + for (; offset < len; offset++) { + const code = arg.charCodeAt(offset); + if (code > 0x7F) break; + mem[ptr + offset] = code; + } + + if (offset !== len) { + if (offset !== 0) { + arg = arg.slice(offset); + } + ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0; + const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len); + const ret = encodeString(arg, view); + + offset += ret.written; + ptr = realloc(ptr, len, offset, 1) >>> 0; + } + + WASM_VECTOR_LEN = offset; + return ptr; +} + +function passArray8ToWasm0(arg, malloc) { + const ptr = malloc(arg.length * 1, 1) >>> 0; + getUint8ArrayMemory0().set(arg, ptr / 1); + WASM_VECTOR_LEN = arg.length; + return ptr; +} +/** + * @param {Uint8Array} bin + * @param {string} dump + * @returns {Array} + */ +export function decode(bin, dump) { + const ptr0 = passArray8ToWasm0(bin, wasm.__wbindgen_malloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passStringToWasm0(dump, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + const ret = wasm.decode(ptr0, len0, ptr1, len1); + return ret; +} + +const DecodedAddressFinalization = (typeof FinalizationRegistry === 'undefined') + ? { register: () => {}, unregister: () => {} } + : new FinalizationRegistry(ptr => wasm.__wbg_decodedaddress_free(ptr >>> 0, 1)); + +export class DecodedAddress { + + static __wrap(ptr) { + ptr = ptr >>> 0; + const obj = Object.create(DecodedAddress.prototype); + obj.__wbg_ptr = ptr; + DecodedAddressFinalization.register(obj, obj.__wbg_ptr, obj); + return obj; + } + + __destroy_into_raw() { + const ptr = this.__wbg_ptr; + this.__wbg_ptr = 0; + DecodedAddressFinalization.unregister(this); + return ptr; + } + + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_decodedaddress_free(ptr, 0); + } + /** + * @returns {bigint} + */ + get address() { + const ret = wasm.__wbg_get_decodedaddress_address(this.__wbg_ptr); + return BigInt.asUintN(64, ret); + } + /** + * @param {bigint} arg0 + */ + set address(arg0) { + wasm.__wbg_set_decodedaddress_address(this.__wbg_ptr, arg0); + } + /** + * @returns {string} + */ + get function_name() { + let deferred1_0; + let deferred1_1; + try { + const ret = wasm.decodedaddress_function_name(this.__wbg_ptr); + deferred1_0 = ret[0]; + deferred1_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); + } + } + /** + * @param {string} function_name + */ + set function_name(function_name) { + const ptr0 = passStringToWasm0(function_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + wasm.decodedaddress_set_function_name(this.__wbg_ptr, ptr0, len0); + } + /** + * @returns {string} + */ + get location() { + let deferred1_0; + let deferred1_1; + try { + const ret = wasm.decodedaddress_location(this.__wbg_ptr); + deferred1_0 = ret[0]; + deferred1_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); + } + } + /** + * @param {string} location + */ + set location(location) { + const ptr0 = passStringToWasm0(location, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + wasm.decodedaddress_set_location(this.__wbg_ptr, ptr0, len0); + } +} + +async function __wbg_load(module, imports) { + if (typeof Response === 'function' && module instanceof Response) { + if (typeof WebAssembly.instantiateStreaming === 'function') { + try { + return await WebAssembly.instantiateStreaming(module, imports); + + } catch (e) { + if (module.headers.get('Content-Type') != 'application/wasm') { + console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e); + + } else { + throw e; + } + } + } + + const bytes = await module.arrayBuffer(); + return await WebAssembly.instantiate(bytes, imports); + + } else { + const instance = await WebAssembly.instantiate(module, imports); + + if (instance instanceof WebAssembly.Instance) { + return { instance, module }; + + } else { + return instance; + } + } +} + +function __wbg_get_imports() { + const imports = {}; + imports.wbg = {}; + imports.wbg.__wbg_decodedaddress_new = function(arg0) { + const ret = DecodedAddress.__wrap(arg0); + return ret; + }; + imports.wbg.__wbg_new_78feb108b6472713 = function() { + const ret = new Array(); + return ret; + }; + imports.wbg.__wbg_push_737cfc8c1432c2c6 = function(arg0, arg1) { + const ret = arg0.push(arg1); + return ret; + }; + imports.wbg.__wbindgen_init_externref_table = function() { + const table = wasm.__wbindgen_export_0; + const offset = table.grow(4); + table.set(0, undefined); + table.set(offset + 0, undefined); + table.set(offset + 1, null); + table.set(offset + 2, true); + table.set(offset + 3, false); + ; + }; + imports.wbg.__wbindgen_throw = function(arg0, arg1) { + throw new Error(getStringFromWasm0(arg0, arg1)); + }; + + return imports; +} + +function __wbg_init_memory(imports, memory) { + +} + +function __wbg_finalize_init(instance, module) { + wasm = instance.exports; + __wbg_init.__wbindgen_wasm_module = module; + cachedUint8ArrayMemory0 = null; + + + wasm.__wbindgen_start(); + return wasm; +} + +function initSync(module) { + if (wasm !== undefined) return wasm; + + + if (typeof module !== 'undefined') { + if (Object.getPrototypeOf(module) === Object.prototype) { + ({module} = module) + } else { + console.warn('using deprecated parameters for `initSync()`; pass a single object instead') + } + } + + const imports = __wbg_get_imports(); + + __wbg_init_memory(imports); + + if (!(module instanceof WebAssembly.Module)) { + module = new WebAssembly.Module(module); + } + + const instance = new WebAssembly.Instance(module, imports); + + return __wbg_finalize_init(instance, module); +} + +async function __wbg_init(module_or_path) { + if (wasm !== undefined) return wasm; + + + if (typeof module_or_path !== 'undefined') { + if (Object.getPrototypeOf(module_or_path) === Object.prototype) { + ({module_or_path} = module_or_path) + } else { + console.warn('using deprecated parameters for the initialization function; pass a single object instead') + } + } + + if (typeof module_or_path === 'undefined') { + module_or_path = new URL('esp_stacktrace_decoder_rs_bg.wasm', import.meta.url); + } + const imports = __wbg_get_imports(); + + if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) { + module_or_path = fetch(module_or_path); + } + + __wbg_init_memory(imports); + + const { instance, module } = await __wbg_load(await module_or_path, imports); + + return __wbg_finalize_init(instance, module); +} + +export { initSync }; +export default __wbg_init; diff --git a/stacktrace/esp_stacktrace_decoder_rs_bg.wasm b/stacktrace/esp_stacktrace_decoder_rs_bg.wasm new file mode 100644 index 0000000000000000000000000000000000000000..325ae9318d4b4913a6682972175004c124ceee4c GIT binary patch literal 1280340 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⩔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

Fgd9RTTBT5!zP+FbA4nt^Bx-&nx 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 z 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%0D+Amx4Tu6R=gs(EK|WFo}z8`cN1K)BnsJ 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

`rrXTIMeImxkG34*Fpy4&U(SkB2 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 // Load the WASM lib - import init, {decode as esp_exception_decode} from "./esp_exception_decoder_rs.js"; + import init, {decode as esp_exception_decode} from "./esp_stacktrace_decoder_rs.js"; // Get some references to the DOM const stacktrace = document.querySelector('#stacktrace'); diff --git a/updater/pio_package_pre.py b/updater/pio_package_pre.py index 5b3d47b..c25461a 100644 --- a/updater/pio_package_pre.py +++ b/updater/pio_package_pre.py @@ -10,6 +10,10 @@ def recursive_purge(dir, pattern): elif re.search(pattern, os.path.join(dir, f)): os.remove(os.path.join(dir, f)) +os.system("python ../resources/bin2array/bin2array.py ../icon/favicon-32x32.png -O ../src/webServerConstants/favicon-32x32.h -l 16") +os.system("python ../resources/bin2array/bin2array.py ../resources/style.css -O ../src/webServerConstants/style.h -l 16") +os.system("python ../resources/bin2array/bin2array.py ../resources/AsyncWebSerial/frontend/index.html -O ../src/webServerConstants/webSerial.h -l 16") + if os.path.exists("src/Config.h"): with open("../src/Config.h", "rb") as file_a, open("src/Config.h", "rb") as file_b: if file_a.read() != file_b.read(): From f1f475d9d82bedd391ccdbd51e16aed3e297a5a0 Mon Sep 17 00:00:00 2001 From: iranl Date: Sun, 6 Jul 2025 22:52:29 +0200 Subject: [PATCH 25/30] Save old version for OTA and Webflash --- .github/workflows/release.yml | 5 ++++- resources/old_manifest.py | 20 ++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 resources/old_manifest.py diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 82bba62..134fd22 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -154,6 +154,7 @@ jobs: run: | mkdir -p ota/beta/ mkdir -p ota/master/ + mkdir -p ota/old/ mkdir -p resources/ mkdir -p src/ cp -vf release/*/nuki_hub_*.bin ota/ @@ -168,11 +169,13 @@ jobs: rm -rf .github .gitignore .gitmodules touch ota/beta/empty touch ota/master/empty + echo release/*/nuki_hub_*.bin | tr ' ' '\n' | xargs -n1 -I{} bash -c 'cp {} ota/old/$VERSION.$(basename "{}")' + python3 resources/old_manifest.py $Version - name: Commit binaries to binary uses: stefanzweifel/git-auto-commit-action@v5 with: commit_message: "Update binaries" - file_pattern: 'ota/* ota/master/* ota/beta/*' + file_pattern: 'ota/* ota/master/* ota/beta/* ota/old/*' branch: binary skip_dirty_check: true skip_fetch: true diff --git a/resources/old_manifest.py b/resources/old_manifest.py new file mode 100644 index 0000000..20c73bd --- /dev/null +++ b/resources/old_manifest.py @@ -0,0 +1,20 @@ +import re, json, argparse + +parser = argparse.ArgumentParser() + +parser.add_argument('version', type=str) +args = parser.parse_args() + +with open('ota/old/manifest.json', 'r+') as json_file: + data = json.load(json_file) + data[str(int((float(args.version)*100)+0.1))] = args.version + data2 = sorted(data.items(), reverse=True) + sorted_dict = {} + k = 6 + for key, value in data2: + if k > 0: + sorted_dict[key] = value + k = k - 1 + json_file.seek(0) + json.dump(sorted_dict, json_file, indent=4) + json_file.truncate() \ No newline at end of file From 596da1b74fe4b6d697f36972932389fdac40310c Mon Sep 17 00:00:00 2001 From: iranl Date: Thu, 17 Jul 2025 22:00:55 +0200 Subject: [PATCH 26/30] Arduino 3.3.0 RC1 --- platformio.ini | 2 +- src/Config.h | 2 +- updater/platformio.ini | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/platformio.ini b/platformio.ini index 3c96a49..2c3913d 100644 --- a/platformio.ini +++ b/platformio.ini @@ -13,7 +13,7 @@ default_envs = esp32 boards_dir = boards [env] -platform = https://github.com/pioarduino/platform-espressif32/archive/refs/heads/develop_33.zip +platform = https://github.com/pioarduino/platform-espressif32/releases/download/55.03.30-rc1/platform-espressif32.zip platform_packages = framework = arduino, espidf board_build.embed_txtfiles = diff --git a/src/Config.h b/src/Config.h index 23b6110..34a5923 100644 --- a/src/Config.h +++ b/src/Config.h @@ -5,7 +5,7 @@ #define NUKI_HUB_VERSION "9.12" #define NUKI_HUB_VERSION_INT (uint32_t)912 #define NUKI_HUB_BUILD "unknownbuildnr" -#define NUKI_HUB_DATE "2025-07-06" +#define NUKI_HUB_DATE "2025-07-17" #define GITHUB_LATEST_RELEASE_URL (char*)"https://github.com/technyon/nuki_hub/releases/latest" #define GITHUB_OTA_MANIFEST_URL (char*)"https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/manifest.json" diff --git a/updater/platformio.ini b/updater/platformio.ini index 5325cbf..3955888 100644 --- a/updater/platformio.ini +++ b/updater/platformio.ini @@ -13,7 +13,7 @@ default_envs = updater_esp32 boards_dir = ../boards [env] -platform = https://github.com/pioarduino/platform-espressif32/archive/refs/heads/develop_33.zip +platform = https://github.com/pioarduino/platform-espressif32/releases/download/55.03.30-rc1/platform-espressif32.zip platform_packages = framework = arduino, espidf board_build.embed_txtfiles = From 487c501c48eae3c23ad776b713119bdc51b95b9e Mon Sep 17 00:00:00 2001 From: iranl Date: Fri, 18 Jul 2025 22:01:24 +0200 Subject: [PATCH 27/30] Update sdkconfig.defaults --- sdkconfig.defaults | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdkconfig.defaults b/sdkconfig.defaults index 44caab5..7d4ab09 100644 --- a/sdkconfig.defaults +++ b/sdkconfig.defaults @@ -86,7 +86,7 @@ CONFIG_BT_NIMBLE_PINNED_TO_CORE_0=y CONFIG_BT_NIMBLE_PINNED_TO_CORE=0 CONFIG_BT_NIMBLE_HOST_TASK_STACK_SIZE=12288 CONFIG_BT_NIMBLE_ROLE_CENTRAL=y -CONFIG_BT_NIMBLE_ROLE_PERIPHERAL=n +CONFIG_BT_NIMBLE_ROLE_PERIPHERAL=y CONFIG_BT_NIMBLE_ROLE_BROADCASTER=y CONFIG_BT_NIMBLE_ROLE_OBSERVER=y CONFIG_BT_NIMBLE_SM_LEGACY=y From 17eee0ad7d840b40d9b2e8f87b08af3af48ae8ee Mon Sep 17 00:00:00 2001 From: iranl Date: Fri, 18 Jul 2025 22:26:38 +0200 Subject: [PATCH 28/30] Revert custom hosted and wifi_remote --- .../espressif__esp_hosted/.component_hash | 1 - resources/espressif__esp_hosted/.editorconfig | 19 - resources/espressif__esp_hosted/.gitignore | 7 - .../.gitlab-ci-override-idf-component.yml | 5 - resources/espressif__esp_hosted/.gitmodules | 3 - .../espressif__esp_hosted/CMakeLists.txt | 94 - resources/espressif__esp_hosted/Kconfig | 1356 -- resources/espressif__esp_hosted/LICENSE | 202 - resources/espressif__esp_hosted/README.md | 280 - .../common/esp_hosted_header.h | 32 - .../common/esp_hosted_interface.h | 30 - .../common/log/esp_hosted_log.h | 34 - .../common/proto/README.md | 53 - .../common/proto/esp_hosted_rpc.pb-c.c | 17767 ---------------- .../common/proto/esp_hosted_rpc.pb-c.h | 7219 ------- .../common/proto/esp_hosted_rpc.proto | 1830 -- .../common/protobuf-c/.commit_docs.sh | 75 - .../common/protobuf-c/.gitignore | 43 - .../common/protobuf-c/CONTRIBUTING.md | 5 - .../common/protobuf-c/ChangeLog | 564 - .../common/protobuf-c/Doxyfile.in | 2312 -- .../common/protobuf-c/DoxygenLayout.xml | 193 - .../common/protobuf-c/LICENSE | 32 - .../common/protobuf-c/Makefile.am | 382 - .../common/protobuf-c/README.md | 73 - .../common/protobuf-c/TODO | 82 - .../common/protobuf-c/autogen.sh | 2 - .../common/protobuf-c/build-cmake/.gitignore | 3 - .../protobuf-c/build-cmake/CMakeLists.txt | 218 - .../common/protobuf-c/configure.ac | 139 - .../common/protobuf-c/m4/.gitignore | 5 - .../protobuf-c/m4/ax_check_compile_flag.m4 | 74 - .../protobuf-c/m4/ax_cxx_compile_stdcxx.m4 | 948 - .../common/protobuf-c/m4/code_coverage.m4 | 158 - .../common/protobuf-c/m4/ld-version-script.m4 | 53 - .../common/protobuf-c/m4/pkg.m4 | 214 - .../common/protobuf-c/m4/valgrind-tests.m4 | 35 - .../protobuf-c/protobuf-c/libprotobuf-c.pc.in | 13 - .../protobuf-c/protobuf-c/libprotobuf-c.sym | 28 - .../common/protobuf-c/protobuf-c/protobuf-c.c | 3672 ---- .../common/protobuf-c/protobuf-c/protobuf-c.h | 1110 - .../protobuf-c/protobuf-c/protobuf-c.proto | 86 - .../protobuf-c/protoc-c/c_bytes_field.cc | 163 - .../protobuf-c/protoc-c/c_bytes_field.h | 100 - .../common/protobuf-c/protoc-c/c_enum.cc | 334 - .../common/protobuf-c/protoc-c/c_enum.h | 118 - .../protobuf-c/protoc-c/c_enum_field.cc | 149 - .../common/protobuf-c/protoc-c/c_enum_field.h | 98 - .../common/protobuf-c/protoc-c/c_extension.cc | 90 - .../common/protobuf-c/protoc-c/c_extension.h | 110 - .../common/protobuf-c/protoc-c/c_field.cc | 241 - .../common/protobuf-c/protoc-c/c_field.h | 133 - .../common/protobuf-c/protoc-c/c_file.cc | 274 - .../common/protobuf-c/protoc-c/c_file.h | 115 - .../common/protobuf-c/protoc-c/c_generator.cc | 176 - .../common/protobuf-c/protoc-c/c_generator.h | 106 - .../common/protobuf-c/protoc-c/c_helpers.cc | 558 - .../common/protobuf-c/protoc-c/c_helpers.h | 186 - .../common/protobuf-c/protoc-c/c_message.cc | 633 - .../common/protobuf-c/protoc-c/c_message.h | 148 - .../protobuf-c/protoc-c/c_message_field.cc | 129 - .../protobuf-c/protoc-c/c_message_field.h | 97 - .../protobuf-c/protoc-c/c_primitive_field.cc | 211 - .../protobuf-c/protoc-c/c_primitive_field.h | 96 - .../common/protobuf-c/protoc-c/c_service.cc | 294 - .../common/protobuf-c/protoc-c/c_service.h | 112 - .../protobuf-c/protoc-c/c_string_field.cc | 160 - .../protobuf-c/protoc-c/c_string_field.h | 100 - .../common/protobuf-c/protoc-c/main.cc | 22 - .../common/protobuf-c/t/README | 38 - .../t/generated-code/test-generated-code.c | 71 - .../t/generated-code2/common-test-arrays.h | 62 - .../cxx-generate-packed-data.cc | 1169 - .../t/generated-code2/test-generated-code2.c | 2383 --- .../common/protobuf-c/t/issue204/.gitignore | 1 - .../common/protobuf-c/t/issue204/issue204.c | 48 - .../protobuf-c/t/issue204/issue204.proto | 15 - .../common/protobuf-c/t/issue220/.gitignore | 1 - .../common/protobuf-c/t/issue220/issue220.c | 13 - .../protobuf-c/t/issue220/issue220.proto | 20 - .../common/protobuf-c/t/issue251/.gitignore | 1 - .../common/protobuf-c/t/issue251/issue251.c | 12 - .../protobuf-c/t/issue251/issue251.proto | 11 - .../common/protobuf-c/t/issue330/.gitignore | 1 - .../common/protobuf-c/t/issue330/issue330.c | 25 - .../protobuf-c/t/issue330/issue330.proto | 5 - .../common/protobuf-c/t/issue375/.gitignore | 1 - .../common/protobuf-c/t/issue375/issue375.c | 24 - .../protobuf-c/t/issue375/issue375.proto | 7 - .../protobuf-c/t/issue389/issue389.proto | 12 - .../common/protobuf-c/t/issue440/.gitignore | 1 - .../common/protobuf-c/t/issue440/issue440.c | 30 - .../protobuf-c/t/issue440/issue440.proto | 9 - .../common/protobuf-c/t/test-full.proto | 423 - .../common/protobuf-c/t/test-optimized.proto | 13 - .../common/protobuf-c/t/test-proto3.proto | 40 - .../common/protobuf-c/t/test.proto | 42 - .../common/protobuf-c/t/version/version.c | 56 - .../common/rpc/esp_hosted_bitmasks.h | 120 - .../common/rpc/esp_hosted_rpc.h | 35 - .../common/transport/esp_hosted_transport.h | 65 - .../transport/esp_hosted_transport_init.h | 60 - .../transport/esp_hosted_transport_spi_hd.h | 38 - .../docs/bluetooth_design.md | 527 - .../docs/design_consideration.md | 195 - .../docs/esp32_p4_function_ev_board.md | 393 - .../docs/images/ESP-Hosted-FG-MCU_design.svg | 4 - .../images/PerformanceSetup-ShieldBox.png | Bin 114919 -> 0 bytes .../docs/images/esp32-p4-esp-prog.jpg | Bin 2843410 -> 0 bytes .../esp32-p4-function-ev-board-esp-prog.jpg | Bin 2489906 -> 0 bytes .../images/esp32-p4-function-ev-board.jpg | Bin 2794134 -> 0 bytes .../docs/images/hosted_diagram-ditaa.svg | 53 - .../docs/images/hosted_diagram-ditaa.txt | 48 - .../docs/images/hosted_wifi_call.svg | 1 - .../docs/images/hosted_wifi_call.txt | 49 - .../docs/images/native_wifi_call.svg | 1 - .../docs/images/native_wifi_call.txt | 13 - .../docs/images/spi_hd_sequence_init.svg | 1 - .../docs/images/spi_hd_sequence_init.txt | 34 - .../docs/images/spi_hd_sequence_read.svg | 1 - .../docs/images/spi_hd_sequence_read.txt | 27 - .../docs/images/spi_hd_sequence_write.svg | 1 - .../docs/images/spi_hd_sequence_write.txt | 24 - .../docs/images/spi_hd_timing_2_lines.svg | 1 - .../docs/images/spi_hd_timing_2_lines.txt | 42 - .../docs/images/spi_hd_timing_4_lines.svg | 1 - .../docs/images/spi_hd_timing_4_lines.txt | 42 - .../docs/performance_optimization.md | 102 - resources/espressif__esp_hosted/docs/sdio.md | 640 - ...p_esp_idf__latest_stable__linux_macos.fish | 65 - ...tup_esp_idf__latest_stable__linux_macos.sh | 62 - .../docs/shield-box-test-setup.md | 75 - .../docs/spi_full_duplex.md | 565 - .../docs/spi_half_duplex.md | 811 - .../docs/troubleshooting.md | 149 - resources/espressif__esp_hosted/docs/uart.md | 450 - .../espressif__esp_hosted/docs/wifi_design.md | 79 - .../CMakeLists.txt | 8 - .../README.md | 59 - .../ble_compatibility_test_case.md | 180 - .../main/CMakeLists.txt | 3 - .../main/ble_compatibility_test.c | 730 - .../main/ble_compatibility_test.h | 31 - .../main/idf_component.yml | 9 - .../sdkconfig.defaults | 23 - .../CMakeLists.txt | 9 - .../README.md | 298 - .../main/CMakeLists.txt | 8 - .../main/Kconfig.projbuild | 15 - .../main/idf_component.yml | 9 - .../main/main.c | 483 - .../sdkconfig.defaults | 29 - .../host_bluedroid_host_only/CMakeLists.txt | 8 - .../host_bluedroid_host_only/README.md | 100 - .../main/CMakeLists.txt | 3 - .../main/idf_component.yml | 9 - .../host_bluedroid_host_only/main/main.c | 307 - .../sdkconfig.defaults | 24 - .../CMakeLists.txt | 8 - .../README.md | 235 - .../main/CMakeLists.txt | 6 - .../main/Kconfig.projbuild | 144 - .../main/bleprph.h | 35 - .../main/gatt_svr.c | 247 - .../main/idf_component.yml | 11 - .../main/main.c | 548 - .../main/uart_driver.c | 258 - .../main/uart_driver.h | 31 - .../sdkconfig.defaults | 11 - .../tutorial/bleprph_host_only_walkthrough.md | 83 - .../tutorial/hardware_setup.jpg | Bin 495040 -> 0 bytes .../CMakeLists.txt | 6 - .../README.md | 202 - .../main/CMakeLists.txt | 5 - .../main/Kconfig.projbuild | 80 - .../main/bleprph.h | 35 - .../main/gatt_svr.c | 247 - .../main/idf_component.yml | 11 - .../main/main.c | 550 - .../sdkconfig.defaults | 23 - .../8d519870/slave/CMakeLists.txt | 34 - .../8d519870/slave/ExtractVersion.cmake | 43 - .../8d519870/slave/main/CMakeLists.txt | 33 - .../8d519870/slave/main/Kconfig.projbuild | 845 - .../8d519870/slave/main/app_main.c | 945 - .../8d519870/slave/main/app_main.h | 28 - .../slave/main/common/esp_hosted_header.h | 32 - .../slave/main/common/esp_hosted_interface.h | 30 - .../slave/main/common/log/esp_hosted_log.h | 34 - .../slave/main/common/proto/README.md | 53 - .../main/common/proto/esp_hosted_rpc.pb-c.c | 17767 ---------------- .../main/common/proto/esp_hosted_rpc.pb-c.h | 7219 ------- .../main/common/proto/esp_hosted_rpc.proto | 1830 -- .../main/common/protobuf-c/.commit_docs.sh | 75 - .../slave/main/common/protobuf-c/.gitignore | 43 - .../main/common/protobuf-c/CONTRIBUTING.md | 5 - .../slave/main/common/protobuf-c/ChangeLog | 564 - .../slave/main/common/protobuf-c/Doxyfile.in | 2312 -- .../main/common/protobuf-c/DoxygenLayout.xml | 193 - .../slave/main/common/protobuf-c/LICENSE | 32 - .../slave/main/common/protobuf-c/Makefile.am | 382 - .../slave/main/common/protobuf-c/README.md | 73 - .../slave/main/common/protobuf-c/TODO | 82 - .../slave/main/common/protobuf-c/autogen.sh | 2 - .../common/protobuf-c/build-cmake/.gitignore | 3 - .../protobuf-c/build-cmake/CMakeLists.txt | 218 - .../slave/main/common/protobuf-c/configure.ac | 139 - .../main/common/protobuf-c/m4/.gitignore | 5 - .../protobuf-c/m4/ax_check_compile_flag.m4 | 74 - .../protobuf-c/m4/ax_cxx_compile_stdcxx.m4 | 948 - .../common/protobuf-c/m4/code_coverage.m4 | 158 - .../common/protobuf-c/m4/ld-version-script.m4 | 53 - .../slave/main/common/protobuf-c/m4/pkg.m4 | 214 - .../common/protobuf-c/m4/valgrind-tests.m4 | 35 - .../protobuf-c/protobuf-c/libprotobuf-c.pc.in | 13 - .../protobuf-c/protobuf-c/libprotobuf-c.sym | 28 - .../common/protobuf-c/protobuf-c/protobuf-c.c | 3672 ---- .../common/protobuf-c/protobuf-c/protobuf-c.h | 1110 - .../protobuf-c/protobuf-c/protobuf-c.proto | 86 - .../protobuf-c/protoc-c/c_bytes_field.cc | 163 - .../protobuf-c/protoc-c/c_bytes_field.h | 100 - .../main/common/protobuf-c/protoc-c/c_enum.cc | 334 - .../main/common/protobuf-c/protoc-c/c_enum.h | 118 - .../protobuf-c/protoc-c/c_enum_field.cc | 149 - .../common/protobuf-c/protoc-c/c_enum_field.h | 98 - .../common/protobuf-c/protoc-c/c_extension.cc | 90 - .../common/protobuf-c/protoc-c/c_extension.h | 110 - .../common/protobuf-c/protoc-c/c_field.cc | 241 - .../main/common/protobuf-c/protoc-c/c_field.h | 133 - .../main/common/protobuf-c/protoc-c/c_file.cc | 274 - .../main/common/protobuf-c/protoc-c/c_file.h | 115 - .../common/protobuf-c/protoc-c/c_generator.cc | 176 - .../common/protobuf-c/protoc-c/c_generator.h | 106 - .../common/protobuf-c/protoc-c/c_helpers.cc | 558 - .../common/protobuf-c/protoc-c/c_helpers.h | 186 - .../common/protobuf-c/protoc-c/c_message.cc | 633 - .../common/protobuf-c/protoc-c/c_message.h | 148 - .../protobuf-c/protoc-c/c_message_field.cc | 129 - .../protobuf-c/protoc-c/c_message_field.h | 97 - .../protobuf-c/protoc-c/c_primitive_field.cc | 211 - .../protobuf-c/protoc-c/c_primitive_field.h | 96 - .../common/protobuf-c/protoc-c/c_service.cc | 294 - .../common/protobuf-c/protoc-c/c_service.h | 112 - .../protobuf-c/protoc-c/c_string_field.cc | 160 - .../protobuf-c/protoc-c/c_string_field.h | 100 - .../main/common/protobuf-c/protoc-c/main.cc | 22 - .../slave/main/common/protobuf-c/t/README | 38 - .../t/generated-code/test-generated-code.c | 71 - .../t/generated-code2/common-test-arrays.h | 62 - .../cxx-generate-packed-data.cc | 1169 - .../t/generated-code2/test-generated-code2.c | 2383 --- .../common/protobuf-c/t/issue204/.gitignore | 1 - .../common/protobuf-c/t/issue204/issue204.c | 48 - .../protobuf-c/t/issue204/issue204.proto | 15 - .../common/protobuf-c/t/issue220/.gitignore | 1 - .../common/protobuf-c/t/issue220/issue220.c | 13 - .../protobuf-c/t/issue220/issue220.proto | 20 - .../common/protobuf-c/t/issue251/.gitignore | 1 - .../common/protobuf-c/t/issue251/issue251.c | 12 - .../protobuf-c/t/issue251/issue251.proto | 11 - .../common/protobuf-c/t/issue330/.gitignore | 1 - .../common/protobuf-c/t/issue330/issue330.c | 25 - .../protobuf-c/t/issue330/issue330.proto | 5 - .../common/protobuf-c/t/issue375/.gitignore | 1 - .../common/protobuf-c/t/issue375/issue375.c | 24 - .../protobuf-c/t/issue375/issue375.proto | 7 - .../protobuf-c/t/issue389/issue389.proto | 12 - .../common/protobuf-c/t/issue440/.gitignore | 1 - .../common/protobuf-c/t/issue440/issue440.c | 30 - .../protobuf-c/t/issue440/issue440.proto | 9 - .../main/common/protobuf-c/t/test-full.proto | 423 - .../common/protobuf-c/t/test-optimized.proto | 13 - .../common/protobuf-c/t/test-proto3.proto | 40 - .../slave/main/common/protobuf-c/t/test.proto | 42 - .../common/protobuf-c/t/version/version.c | 56 - .../main/common/rpc/esp_hosted_bitmasks.h | 120 - .../slave/main/common/rpc/esp_hosted_rpc.h | 35 - .../common/transport/esp_hosted_transport.h | 65 - .../transport/esp_hosted_transport_init.h | 60 - .../transport/esp_hosted_transport_spi_hd.h | 38 - .../slave/main/coprocessor_fw_version.txt | 1 - .../8d519870/slave/main/interface.h | 139 - .../8d519870/slave/main/mempool.c | 161 - .../8d519870/slave/main/mempool.h | 82 - .../8d519870/slave/main/mempool_ll.c | 360 - .../8d519870/slave/main/mempool_ll.h | 354 - .../8d519870/slave/main/protocomm_pserial.c | 346 - .../8d519870/slave/main/protocomm_pserial.h | 39 - .../8d519870/slave/main/sdio_slave_api.c | 700 - .../8d519870/slave/main/sdio_slave_api.h | 25 - .../8d519870/slave/main/slave_bt.c | 318 - .../8d519870/slave/main/slave_bt.h | 168 - .../8d519870/slave/main/slave_bt_uart.h | 26 - .../8d519870/slave/main/slave_bt_uart_esp32.c | 43 - .../slave/main/slave_bt_uart_esp32c3_s3.c | 267 - .../slave/main/slave_bt_uart_esp32xx.c | 33 - .../8d519870/slave/main/slave_control.c | 2535 --- .../8d519870/slave/main/slave_control.h | 38 - .../8d519870/slave/main/spi_hd_slave_api.c | 877 - .../8d519870/slave/main/spi_slave_api.c | 1039 - .../8d519870/slave/main/stats.c | 272 - .../8d519870/slave/main/stats.h | 127 - .../8d519870/slave/main/uart_slave_api.c | 663 - .../8d519870/slave/partitions.esp32.csv | 7 - .../8d519870/slave/partitions.esp32c2.csv | 7 - .../8d519870/slave/partitions.esp32c5.csv | 7 - .../8d519870/slave/partitions.esp32c6.csv | 7 - .../8d519870/slave/sdkconfig.defaults | 12 - .../8d519870/slave/sdkconfig.defaults.esp32 | 39 - .../8d519870/slave/sdkconfig.defaults.esp32c2 | 19 - .../8d519870/slave/sdkconfig.defaults.esp32c3 | 10 - .../8d519870/slave/sdkconfig.defaults.esp32c5 | 10 - .../8d519870/slave/sdkconfig.defaults.esp32c6 | 26 - .../8d519870/slave/sdkconfig.defaults.esp32s3 | 9 - .../host/api/include/esp_hosted_api_types.h | 25 - .../host/api/include/esp_hosted_bt_config.h | 54 - .../host/api/include/esp_hosted_config.h | 396 - .../host/api/include/esp_hosted_ota.h | 35 - .../api/include/esp_hosted_transport_config.h | 240 - .../api/include/esp_hosted_wifi_remote_glue.h | 44 - .../host/api/priv/esp_hosted_api_priv.h | 84 - .../host/api/src/esp_hosted_api.c | 480 - .../host/api/src/esp_wifi_weak.c | 277 - .../host/drivers/bt/hci_drv.h | 18 - .../host/drivers/bt/hci_stub_drv.c | 93 - .../host/drivers/bt/vhci_drv.c | 263 - .../host/drivers/mempool/CMakeLists.txt | 7 - .../host/drivers/mempool/mempool.c | 157 - .../host/drivers/mempool/mempool.h | 51 - .../host/drivers/rpc/core/rpc_core.c | 1050 - .../host/drivers/rpc/core/rpc_core.h | 136 - .../host/drivers/rpc/core/rpc_evt.c | 177 - .../host/drivers/rpc/core/rpc_req.c | 510 - .../host/drivers/rpc/core/rpc_rsp.c | 624 - .../host/drivers/rpc/slaveif/rpc_slave_if.c | 373 - .../host/drivers/rpc/slaveif/rpc_slave_if.h | 471 - .../host/drivers/rpc/wrap/rpc_wrap.c | 1363 -- .../host/drivers/rpc/wrap/rpc_wrap.h | 106 - .../host/drivers/serial/serial_drv.c | 251 - .../host/drivers/serial/serial_drv.h | 107 - .../host/drivers/serial/serial_ll_if.c | 358 - .../host/drivers/serial/serial_ll_if.h | 107 - .../host/drivers/transport/sdio/sdio_drv.c | 1147 - .../host/drivers/transport/sdio/sdio_drv.h | 33 - .../host/drivers/transport/sdio/sdio_reg.h | 116 - .../host/drivers/transport/spi/spi_drv.c | 713 - .../host/drivers/transport/spi/spi_drv.h | 47 - .../drivers/transport/spi_hd/spi_hd_drv.c | 767 - .../drivers/transport/spi_hd/spi_hd_drv.h | 22 - .../host/drivers/transport/transport_drv.c | 666 - .../host/drivers/transport/transport_drv.h | 138 - .../host/drivers/transport/uart/uart_drv.c | 554 - .../drivers/virtual_serial_if/serial_if.c | 219 - .../drivers/virtual_serial_if/serial_if.h | 48 - .../espressif__esp_hosted/host/esp_hosted.h | 45 - .../host/esp_hosted_bt.h | 21 - .../host/esp_hosted_host_init.c | 26 - .../host/hosted_os_abstraction.h | 122 - .../freertos/include/esp_hosted_wifi_config.h | 35 - .../port/esp/freertos/include/os_header.h | 16 - .../port/esp/freertos/include/os_wrapper.h | 180 - .../port/esp/freertos/include/sdio_wrapper.h | 50 - .../esp/freertos/include/spi_hd_wrapper.h | 53 - .../port/esp/freertos/include/spi_wrapper.h | 29 - .../port/esp/freertos/include/uart_wrapper.h | 37 - .../port/esp/freertos/src/esp_hosted_config.c | 16 - .../port/esp/freertos/src/esp_hosted_ota.c | 248 - .../src/esp_hosted_transport_config.c | 245 - .../host/port/esp/freertos/src/os_wrapper.c | 854 - .../host/port/esp/freertos/src/sdio_wrapper.c | 542 - .../port/esp/freertos/src/spi_hd_wrapper.c | 553 - .../host/port/esp/freertos/src/spi_wrapper.c | 119 - .../host/port/esp/freertos/src/uart_wrapper.c | 187 - .../espressif__esp_hosted/host/utils/common.c | 130 - .../espressif__esp_hosted/host/utils/common.h | 125 - .../espressif__esp_hosted/host/utils/stats.c | 236 - .../espressif__esp_hosted/host/utils/stats.h | 139 - .../espressif__esp_hosted/host/utils/util.c | 255 - .../espressif__esp_hosted/host/utils/util.h | 46 - .../espressif__esp_hosted/idf_component.yml | 11 - .../espressif__esp_hosted/sdkconfig.rename | 147 - .../slave/CMakeLists.txt | 34 - .../slave/ExtractVersion.cmake | 43 - .../slave/main/CMakeLists.txt | 33 - .../slave/main/Kconfig.projbuild | 845 - .../slave/main/app_main.c | 945 - .../slave/main/app_main.h | 28 - .../slave/main/common/esp_hosted_header.h | 32 - .../slave/main/common/esp_hosted_interface.h | 30 - .../slave/main/common/log/esp_hosted_log.h | 34 - .../slave/main/common/proto/README.md | 53 - .../main/common/proto/esp_hosted_rpc.pb-c.c | 17767 ---------------- .../main/common/proto/esp_hosted_rpc.pb-c.h | 7219 ------- .../main/common/proto/esp_hosted_rpc.proto | 1830 -- .../main/common/protobuf-c/.commit_docs.sh | 75 - .../slave/main/common/protobuf-c/.gitignore | 43 - .../main/common/protobuf-c/CONTRIBUTING.md | 5 - .../slave/main/common/protobuf-c/ChangeLog | 564 - .../slave/main/common/protobuf-c/Doxyfile.in | 2312 -- .../main/common/protobuf-c/DoxygenLayout.xml | 193 - .../slave/main/common/protobuf-c/LICENSE | 32 - .../slave/main/common/protobuf-c/Makefile.am | 382 - .../slave/main/common/protobuf-c/README.md | 73 - .../slave/main/common/protobuf-c/TODO | 82 - .../slave/main/common/protobuf-c/autogen.sh | 2 - .../common/protobuf-c/build-cmake/.gitignore | 3 - .../protobuf-c/build-cmake/CMakeLists.txt | 218 - .../slave/main/common/protobuf-c/configure.ac | 139 - .../main/common/protobuf-c/m4/.gitignore | 5 - .../protobuf-c/m4/ax_check_compile_flag.m4 | 74 - .../protobuf-c/m4/ax_cxx_compile_stdcxx.m4 | 948 - .../common/protobuf-c/m4/code_coverage.m4 | 158 - .../common/protobuf-c/m4/ld-version-script.m4 | 53 - .../slave/main/common/protobuf-c/m4/pkg.m4 | 214 - .../common/protobuf-c/m4/valgrind-tests.m4 | 35 - .../protobuf-c/protobuf-c/libprotobuf-c.pc.in | 13 - .../protobuf-c/protobuf-c/libprotobuf-c.sym | 28 - .../common/protobuf-c/protobuf-c/protobuf-c.c | 3672 ---- .../common/protobuf-c/protobuf-c/protobuf-c.h | 1110 - .../protobuf-c/protobuf-c/protobuf-c.proto | 86 - .../protobuf-c/protoc-c/c_bytes_field.cc | 163 - .../protobuf-c/protoc-c/c_bytes_field.h | 100 - .../main/common/protobuf-c/protoc-c/c_enum.cc | 334 - .../main/common/protobuf-c/protoc-c/c_enum.h | 118 - .../protobuf-c/protoc-c/c_enum_field.cc | 149 - .../common/protobuf-c/protoc-c/c_enum_field.h | 98 - .../common/protobuf-c/protoc-c/c_extension.cc | 90 - .../common/protobuf-c/protoc-c/c_extension.h | 110 - .../common/protobuf-c/protoc-c/c_field.cc | 241 - .../main/common/protobuf-c/protoc-c/c_field.h | 133 - .../main/common/protobuf-c/protoc-c/c_file.cc | 274 - .../main/common/protobuf-c/protoc-c/c_file.h | 115 - .../common/protobuf-c/protoc-c/c_generator.cc | 176 - .../common/protobuf-c/protoc-c/c_generator.h | 106 - .../common/protobuf-c/protoc-c/c_helpers.cc | 558 - .../common/protobuf-c/protoc-c/c_helpers.h | 186 - .../common/protobuf-c/protoc-c/c_message.cc | 633 - .../common/protobuf-c/protoc-c/c_message.h | 148 - .../protobuf-c/protoc-c/c_message_field.cc | 129 - .../protobuf-c/protoc-c/c_message_field.h | 97 - .../protobuf-c/protoc-c/c_primitive_field.cc | 211 - .../protobuf-c/protoc-c/c_primitive_field.h | 96 - .../common/protobuf-c/protoc-c/c_service.cc | 294 - .../common/protobuf-c/protoc-c/c_service.h | 112 - .../protobuf-c/protoc-c/c_string_field.cc | 160 - .../protobuf-c/protoc-c/c_string_field.h | 100 - .../main/common/protobuf-c/protoc-c/main.cc | 22 - .../slave/main/common/protobuf-c/t/README | 38 - .../t/generated-code/test-generated-code.c | 71 - .../t/generated-code2/common-test-arrays.h | 62 - .../cxx-generate-packed-data.cc | 1169 - .../t/generated-code2/test-generated-code2.c | 2383 --- .../common/protobuf-c/t/issue204/.gitignore | 1 - .../common/protobuf-c/t/issue204/issue204.c | 48 - .../protobuf-c/t/issue204/issue204.proto | 15 - .../common/protobuf-c/t/issue220/.gitignore | 1 - .../common/protobuf-c/t/issue220/issue220.c | 13 - .../protobuf-c/t/issue220/issue220.proto | 20 - .../common/protobuf-c/t/issue251/.gitignore | 1 - .../common/protobuf-c/t/issue251/issue251.c | 12 - .../protobuf-c/t/issue251/issue251.proto | 11 - .../common/protobuf-c/t/issue330/.gitignore | 1 - .../common/protobuf-c/t/issue330/issue330.c | 25 - .../protobuf-c/t/issue330/issue330.proto | 5 - .../common/protobuf-c/t/issue375/.gitignore | 1 - .../common/protobuf-c/t/issue375/issue375.c | 24 - .../protobuf-c/t/issue375/issue375.proto | 7 - .../protobuf-c/t/issue389/issue389.proto | 12 - .../common/protobuf-c/t/issue440/.gitignore | 1 - .../common/protobuf-c/t/issue440/issue440.c | 30 - .../protobuf-c/t/issue440/issue440.proto | 9 - .../main/common/protobuf-c/t/test-full.proto | 423 - .../common/protobuf-c/t/test-optimized.proto | 13 - .../common/protobuf-c/t/test-proto3.proto | 40 - .../slave/main/common/protobuf-c/t/test.proto | 42 - .../common/protobuf-c/t/version/version.c | 56 - .../main/common/rpc/esp_hosted_bitmasks.h | 120 - .../slave/main/common/rpc/esp_hosted_rpc.h | 35 - .../common/transport/esp_hosted_transport.h | 65 - .../transport/esp_hosted_transport_init.h | 60 - .../transport/esp_hosted_transport_spi_hd.h | 38 - .../slave/main/interface.h | 139 - .../slave/main/mempool.c | 161 - .../slave/main/mempool.h | 82 - .../slave/main/mempool_ll.c | 360 - .../slave/main/mempool_ll.h | 354 - .../slave/main/protocomm_pserial.c | 346 - .../slave/main/protocomm_pserial.h | 39 - .../slave/main/sdio_slave_api.c | 700 - .../slave/main/sdio_slave_api.h | 25 - .../slave/main/slave_bt.c | 318 - .../slave/main/slave_bt.h | 168 - .../slave/main/slave_bt_uart.h | 26 - .../slave/main/slave_bt_uart_esp32.c | 43 - .../slave/main/slave_bt_uart_esp32c3_s3.c | 267 - .../slave/main/slave_bt_uart_esp32xx.c | 33 - .../slave/main/slave_control.c | 2535 --- .../slave/main/slave_control.h | 38 - .../slave/main/spi_hd_slave_api.c | 877 - .../slave/main/spi_slave_api.c | 1039 - .../espressif__esp_hosted/slave/main/stats.c | 272 - .../espressif__esp_hosted/slave/main/stats.h | 127 - .../slave/main/uart_slave_api.c | 663 - .../slave/partitions.esp32.csv | 7 - .../slave/partitions.esp32c2.csv | 7 - .../slave/partitions.esp32c5.csv | 7 - .../slave/partitions.esp32c6.csv | 7 - .../slave/sdkconfig.defaults | 12 - .../slave/sdkconfig.defaults.esp32 | 39 - .../slave/sdkconfig.defaults.esp32c2 | 19 - .../slave/sdkconfig.defaults.esp32c3 | 10 - .../slave/sdkconfig.defaults.esp32c5 | 10 - .../slave/sdkconfig.defaults.esp32c6 | 26 - .../slave/sdkconfig.defaults.esp32s3 | 9 - .../.component_hash | 1 - resources/espressif__esp_wifi_remote/.cz.yaml | 8 - .../espressif__esp_wifi_remote/CHANGELOG.md | 236 - .../espressif__esp_wifi_remote/CMakeLists.txt | 59 - resources/espressif__esp_wifi_remote/Kconfig | 34 - .../espressif__esp_wifi_remote/Kconfig.rpc.in | 81 - resources/espressif__esp_wifi_remote/LICENSE | 202 - .../espressif__esp_wifi_remote/README.md | 26 - .../espressif__esp_wifi_remote/dummy_src.c | 0 .../eppp/eppp_init.c | 23 - .../eppp/wifi_remote_rpc_client.cpp | 318 - .../eppp/wifi_remote_rpc_impl.hpp | 179 - .../eppp/wifi_remote_rpc_params.h | 23 - .../eppp/wifi_remote_rpc_server.cpp | 383 - .../esp_wifi_remote.c | 34 - .../esp_wifi_remote_net.c | 94 - .../examples/mqtt/CMakeLists.txt | 5 - .../examples/mqtt/README.md | 31 - .../examples/mqtt/main/CMakeLists.txt | 4 - .../examples/mqtt/main/Kconfig.projbuild | 21 - .../examples/mqtt/main/app_main.c | 204 - .../examples/mqtt/main/idf_component.yml | 4 - .../examples/mqtt/sdkconfig.ci.p4 | 11 - .../examples/mqtt/sdkconfig.defaults | 4 - .../examples/pytest_eppp.py | 22 - .../examples/server/CMakeLists.txt | 6 - .../examples/server/README.md | 21 - .../examples/server/main/CMakeLists.txt | 2 - .../examples/server/main/idf_component.yml | 4 - .../server/main/station_example_main.c | 36 - .../examples/server/sdkconfig.ci.c6 | 10 - .../examples/server/sdkconfig.defaults | 7 - .../test_certs/generate_test_certs.sh | 52 - .../idf_component.yml | 16 - .../idf_tag_v5.3.1/Kconfig.slave_select.in | 17 - .../idf_tag_v5.3.1/Kconfig.soc_wifi_caps.in | 265 - .../idf_tag_v5.3.1/Kconfig.wifi.in | 1132 - .../idf_tag_v5.3.1/esp_wifi_remote_weak.c | 392 - .../idf_tag_v5.3.1/esp_wifi_with_remote.c | 388 - .../include/esp_wifi_default_config.h | 769 - .../include/esp_wifi_remote_api.h | 83 - .../include/injected/esp_mesh.h | 1691 -- .../include/injected/esp_mesh_internal.h | 324 - .../idf_tag_v5.3.1/include/injected/esp_now.h | 382 - .../include/injected/esp_wifi.h | 1650 -- .../injected/esp_wifi_ap_get_sta_list.h | 55 - .../include/injected/esp_wifi_crypto_types.h | 440 - .../include/injected/esp_wifi_default.h | 152 - .../include/injected/esp_wifi_he.h | 221 - .../include/injected/esp_wifi_he_types.h | 434 - .../include/injected/esp_wifi_netif.h | 86 - .../include/injected/esp_wifi_types.h | 29 - .../include/injected/esp_wifi_types_generic.h | 1081 - .../include/injected/esp_wifi_types_native.h | 134 - .../wifi_apps/roaming_app/src/Kconfig.roaming | 0 .../idf_tag_v5.3.2/Kconfig.slave_select.in | 17 - .../idf_tag_v5.3.2/Kconfig.soc_wifi_caps.in | 265 - .../idf_tag_v5.3.2/Kconfig.wifi.in | 1135 - .../idf_tag_v5.3.2/esp_wifi_remote_weak.c | 392 - .../idf_tag_v5.3.2/esp_wifi_with_remote.c | 388 - .../include/esp_wifi_default_config.h | 769 - .../include/esp_wifi_remote_api.h | 83 - .../include/injected/esp_mesh.h | 1692 -- .../include/injected/esp_mesh_internal.h | 324 - .../idf_tag_v5.3.2/include/injected/esp_now.h | 387 - .../include/injected/esp_wifi.h | 1650 -- .../injected/esp_wifi_ap_get_sta_list.h | 55 - .../include/injected/esp_wifi_crypto_types.h | 440 - .../include/injected/esp_wifi_default.h | 152 - .../include/injected/esp_wifi_he.h | 221 - .../include/injected/esp_wifi_he_types.h | 435 - .../include/injected/esp_wifi_netif.h | 86 - .../include/injected/esp_wifi_types.h | 29 - .../include/injected/esp_wifi_types_generic.h | 1216 -- .../include/injected/esp_wifi_types_native.h | 134 - .../wifi_apps/roaming_app/src/Kconfig.roaming | 0 .../idf_tag_v5.3.3/Kconfig.slave_select.in | 17 - .../idf_tag_v5.3.3/Kconfig.soc_wifi_caps.in | 265 - .../idf_tag_v5.3.3/Kconfig.wifi.in | 1168 - .../idf_tag_v5.3.3/esp_wifi_remote_weak.c | 397 - .../idf_tag_v5.3.3/esp_wifi_with_remote.c | 393 - .../include/esp_wifi_default_config.h | 769 - .../include/esp_wifi_remote_api.h | 84 - .../include/injected/esp_mesh.h | 1692 -- .../include/injected/esp_mesh_internal.h | 324 - .../idf_tag_v5.3.3/include/injected/esp_now.h | 380 - .../include/injected/esp_wifi.h | 1666 -- .../injected/esp_wifi_ap_get_sta_list.h | 55 - .../include/injected/esp_wifi_crypto_types.h | 440 - .../include/injected/esp_wifi_default.h | 152 - .../include/injected/esp_wifi_he.h | 221 - .../include/injected/esp_wifi_he_types.h | 435 - .../include/injected/esp_wifi_netif.h | 86 - .../include/injected/esp_wifi_types.h | 29 - .../include/injected/esp_wifi_types_generic.h | 1238 -- .../include/injected/esp_wifi_types_native.h | 134 - .../idf_tag_v5.4.1/Kconfig.slave_select.in | 21 - .../idf_tag_v5.4.1/Kconfig.soc_wifi_caps.in | 385 - .../idf_tag_v5.4.1/Kconfig.wifi.in | 1168 - .../idf_tag_v5.4.1/esp_wifi_remote_weak.c | 437 - .../idf_tag_v5.4.1/esp_wifi_with_remote.c | 433 - .../include/esp_wifi_default_config.h | 791 - .../include/esp_wifi_remote_api.h | 92 - .../include/injected/esp_mesh.h | 1692 -- .../include/injected/esp_mesh_internal.h | 324 - .../idf_tag_v5.4.1/include/injected/esp_now.h | 383 - .../include/injected/esp_wifi.h | 1795 -- .../injected/esp_wifi_ap_get_sta_list.h | 55 - .../include/injected/esp_wifi_crypto_types.h | 422 - .../include/injected/esp_wifi_default.h | 152 - .../include/injected/esp_wifi_he.h | 238 - .../include/injected/esp_wifi_he_types.h | 435 - .../include/injected/esp_wifi_netif.h | 86 - .../include/injected/esp_wifi_types.h | 29 - .../include/injected/esp_wifi_types_generic.h | 1340 -- .../include/injected/esp_wifi_types_native.h | 134 - .../idf_tag_v5.4/Kconfig.slave_select.in | 21 - .../idf_tag_v5.4/Kconfig.soc_wifi_caps.in | 377 - .../idf_tag_v5.4/Kconfig.wifi.in | 1135 - .../idf_tag_v5.4/esp_wifi_remote_weak.c | 432 - .../idf_tag_v5.4/esp_wifi_with_remote.c | 428 - .../include/esp_wifi_default_config.h | 791 - .../include/esp_wifi_remote_api.h | 91 - .../idf_tag_v5.4/include/injected/esp_mesh.h | 1692 -- .../include/injected/esp_mesh_internal.h | 324 - .../idf_tag_v5.4/include/injected/esp_now.h | 390 - .../idf_tag_v5.4/include/injected/esp_wifi.h | 1778 -- .../injected/esp_wifi_ap_get_sta_list.h | 55 - .../include/injected/esp_wifi_crypto_types.h | 422 - .../include/injected/esp_wifi_default.h | 152 - .../include/injected/esp_wifi_he.h | 238 - .../include/injected/esp_wifi_he_types.h | 435 - .../include/injected/esp_wifi_netif.h | 86 - .../include/injected/esp_wifi_types.h | 29 - .../include/injected/esp_wifi_types_generic.h | 1320 -- .../include/injected/esp_wifi_types_native.h | 134 - .../wifi_apps/roaming_app/src/Kconfig.roaming | 0 .../idf_v5.3/Kconfig.slave_select.in | 17 - .../idf_v5.3/Kconfig.soc_wifi_caps.in | 265 - .../idf_v5.3/Kconfig.wifi.in | 1168 - .../idf_v5.3/esp_wifi_remote_weak.c | 397 - .../idf_v5.3/esp_wifi_with_remote.c | 393 - .../include/esp_wifi_default_config.h | 769 - .../idf_v5.3/include/esp_wifi_remote_api.h | 84 - .../idf_v5.3/include/injected/esp_mesh.h | 1694 -- .../include/injected/esp_mesh_internal.h | 324 - .../idf_v5.3/include/injected/esp_now.h | 380 - .../idf_v5.3/include/injected/esp_wifi.h | 1666 -- .../injected/esp_wifi_ap_get_sta_list.h | 55 - .../include/injected/esp_wifi_crypto_types.h | 440 - .../include/injected/esp_wifi_default.h | 152 - .../idf_v5.3/include/injected/esp_wifi_he.h | 221 - .../include/injected/esp_wifi_he_types.h | 435 - .../include/injected/esp_wifi_netif.h | 86 - .../include/injected/esp_wifi_types.h | 29 - .../include/injected/esp_wifi_types_generic.h | 1238 -- .../include/injected/esp_wifi_types_native.h | 134 - .../wifi_apps/roaming_app/src/Kconfig.roaming | 0 .../idf_v5.4/Kconfig.slave_select.in | 21 - .../idf_v5.4/Kconfig.soc_wifi_caps.in | 385 - .../idf_v5.4/Kconfig.wifi.in | 1168 - .../idf_v5.4/esp_wifi_remote_weak.c | 437 - .../idf_v5.4/esp_wifi_with_remote.c | 433 - .../include/esp_wifi_default_config.h | 791 - .../idf_v5.4/include/esp_wifi_remote_api.h | 92 - .../idf_v5.4/include/injected/esp_mesh.h | 1694 -- .../include/injected/esp_mesh_internal.h | 324 - .../idf_v5.4/include/injected/esp_now.h | 383 - .../idf_v5.4/include/injected/esp_wifi.h | 1795 -- .../injected/esp_wifi_ap_get_sta_list.h | 55 - .../include/injected/esp_wifi_crypto_types.h | 422 - .../include/injected/esp_wifi_default.h | 152 - .../idf_v5.4/include/injected/esp_wifi_he.h | 238 - .../include/injected/esp_wifi_he_types.h | 435 - .../include/injected/esp_wifi_netif.h | 86 - .../include/injected/esp_wifi_types.h | 29 - .../include/injected/esp_wifi_types_generic.h | 1401 -- .../include/injected/esp_wifi_types_native.h | 134 - .../wifi_apps/roaming_app/src/Kconfig.roaming | 0 .../idf_v5.5/Kconfig.slave_select.in | 21 - .../idf_v5.5/Kconfig.soc_wifi_caps.in | 389 - .../idf_v5.5/Kconfig.wifi.in | 1298 -- .../idf_v5.5/esp_wifi_remote_weak.c | 452 - .../idf_v5.5/esp_wifi_with_remote.c | 448 - .../include/esp_wifi_default_config.h | 970 - .../idf_v5.5/include/esp_wifi_remote_api.h | 95 - .../idf_v5.5/include/injected/esp_mesh.h | 1694 -- .../include/injected/esp_mesh_internal.h | 324 - .../idf_v5.5/include/injected/esp_now.h | 409 - .../idf_v5.5/include/injected/esp_wifi.h | 1864 -- .../injected/esp_wifi_ap_get_sta_list.h | 55 - .../include/injected/esp_wifi_crypto_types.h | 422 - .../include/injected/esp_wifi_default.h | 152 - .../idf_v5.5/include/injected/esp_wifi_he.h | 238 - .../include/injected/esp_wifi_he_types.h | 436 - .../include/injected/esp_wifi_netif.h | 86 - .../include/injected/esp_wifi_types.h | 29 - .../include/injected/esp_wifi_types_generic.h | 1525 -- .../include/injected/esp_wifi_types_native.h | 134 - .../wifi_apps/roaming_app/src/Kconfig.roaming | 0 .../include/esp_wifi_remote.h | 49 - .../include/esp_wifi_remote_with_hosted.h | 386 - .../scripts/README.md | 38 - .../scripts/copyright_header.h | 6 - .../scripts/generate_and_check.py | 636 - .../scripts/generate_slave_configs.py | 33 - .../scripts/ignore_extensions.h | 13 - .../test/smoke_test/CMakeLists.txt | 8 - .../test/smoke_test/README.md | 5 - .../components/esp_hosted/CMakeLists.txt | 5 - .../components/esp_hosted/idf_component.yml | 1 - .../esp_hosted/idf_v5.3/esp_hosted_mock.c | 393 - .../idf_v5.3/include/esp_hosted_mock.h | 84 - .../esp_hosted/idf_v5.4/esp_hosted_mock.c | 433 - .../idf_v5.4/include/esp_hosted_mock.h | 92 - .../esp_hosted/idf_v5.5/esp_hosted_mock.c | 448 - .../idf_v5.5/include/esp_hosted_mock.h | 95 - .../esp_hosted/include/esp_hosted_api.h | 21 - .../esp_hosted/include/esp_hosted_wifi_api.h | 8 - .../test/smoke_test/main/CMakeLists.txt | 6 - .../test/smoke_test/main/idf_component.yml | 8 - .../smoke_test/main/idf_v5.3/all_wifi_calls.c | 412 - .../main/idf_v5.3/all_wifi_remote_calls.c | 412 - .../smoke_test/main/idf_v5.4/all_wifi_calls.c | 456 - .../main/idf_v5.4/all_wifi_remote_calls.c | 456 - .../smoke_test/main/idf_v5.5/all_wifi_calls.c | 471 - .../main/idf_v5.5/all_wifi_remote_calls.c | 471 - .../test/smoke_test/main/smoke_test.c | 24 - .../test/smoke_test/sdkconfig.defaults | 1 - src/idf_component.yml | 4 +- updater/src/idf_component.yml | 4 +- 745 files changed, 4 insertions(+), 280973 deletions(-) delete mode 100644 resources/espressif__esp_hosted/.component_hash delete mode 100644 resources/espressif__esp_hosted/.editorconfig delete mode 100644 resources/espressif__esp_hosted/.gitignore delete mode 100644 resources/espressif__esp_hosted/.gitlab-ci-override-idf-component.yml delete mode 100644 resources/espressif__esp_hosted/.gitmodules delete mode 100644 resources/espressif__esp_hosted/CMakeLists.txt delete mode 100644 resources/espressif__esp_hosted/Kconfig delete mode 100644 resources/espressif__esp_hosted/LICENSE delete mode 100644 resources/espressif__esp_hosted/README.md delete mode 100644 resources/espressif__esp_hosted/common/esp_hosted_header.h delete mode 100644 resources/espressif__esp_hosted/common/esp_hosted_interface.h delete mode 100644 resources/espressif__esp_hosted/common/log/esp_hosted_log.h delete mode 100644 resources/espressif__esp_hosted/common/proto/README.md delete mode 100644 resources/espressif__esp_hosted/common/proto/esp_hosted_rpc.pb-c.c delete mode 100644 resources/espressif__esp_hosted/common/proto/esp_hosted_rpc.pb-c.h delete mode 100644 resources/espressif__esp_hosted/common/proto/esp_hosted_rpc.proto delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/.commit_docs.sh delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/.gitignore delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/CONTRIBUTING.md delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/ChangeLog delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/Doxyfile.in delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/DoxygenLayout.xml delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/LICENSE delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/Makefile.am delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/README.md delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/TODO delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/autogen.sh delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/build-cmake/.gitignore delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/build-cmake/CMakeLists.txt delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/configure.ac delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/m4/.gitignore delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/m4/ax_check_compile_flag.m4 delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/m4/ax_cxx_compile_stdcxx.m4 delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/m4/code_coverage.m4 delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/m4/ld-version-script.m4 delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/m4/pkg.m4 delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/m4/valgrind-tests.m4 delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protobuf-c/libprotobuf-c.pc.in delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protobuf-c/libprotobuf-c.sym delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protobuf-c/protobuf-c.c delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protobuf-c/protobuf-c.h delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protobuf-c/protobuf-c.proto delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_bytes_field.cc delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_bytes_field.h delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_enum.cc delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_enum.h delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_enum_field.cc delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_enum_field.h delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_extension.cc delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_extension.h delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_field.cc delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_field.h delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_file.cc delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_file.h delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_generator.cc delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_generator.h delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_helpers.cc delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_helpers.h delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_message.cc delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_message.h delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_message_field.cc delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_message_field.h delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_primitive_field.cc delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_primitive_field.h delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_service.cc delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_service.h delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_string_field.cc delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/c_string_field.h delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/protoc-c/main.cc delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/README delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/generated-code/test-generated-code.c delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/generated-code2/common-test-arrays.h delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/generated-code2/cxx-generate-packed-data.cc delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/generated-code2/test-generated-code2.c delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue204/.gitignore delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue204/issue204.c delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue204/issue204.proto delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue220/.gitignore delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue220/issue220.c delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue220/issue220.proto delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue251/.gitignore delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue251/issue251.c delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue251/issue251.proto delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue330/.gitignore delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue330/issue330.c delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue330/issue330.proto delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue375/.gitignore delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue375/issue375.c delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue375/issue375.proto delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue389/issue389.proto delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue440/.gitignore delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue440/issue440.c delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/issue440/issue440.proto delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/test-full.proto delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/test-optimized.proto delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/test-proto3.proto delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/test.proto delete mode 100644 resources/espressif__esp_hosted/common/protobuf-c/t/version/version.c delete mode 100644 resources/espressif__esp_hosted/common/rpc/esp_hosted_bitmasks.h delete mode 100644 resources/espressif__esp_hosted/common/rpc/esp_hosted_rpc.h delete mode 100644 resources/espressif__esp_hosted/common/transport/esp_hosted_transport.h delete mode 100644 resources/espressif__esp_hosted/common/transport/esp_hosted_transport_init.h delete mode 100644 resources/espressif__esp_hosted/common/transport/esp_hosted_transport_spi_hd.h delete mode 100644 resources/espressif__esp_hosted/docs/bluetooth_design.md delete mode 100644 resources/espressif__esp_hosted/docs/design_consideration.md delete mode 100644 resources/espressif__esp_hosted/docs/esp32_p4_function_ev_board.md delete mode 100644 resources/espressif__esp_hosted/docs/images/ESP-Hosted-FG-MCU_design.svg delete mode 100644 resources/espressif__esp_hosted/docs/images/PerformanceSetup-ShieldBox.png delete mode 100644 resources/espressif__esp_hosted/docs/images/esp32-p4-esp-prog.jpg delete mode 100644 resources/espressif__esp_hosted/docs/images/esp32-p4-function-ev-board-esp-prog.jpg delete mode 100644 resources/espressif__esp_hosted/docs/images/esp32-p4-function-ev-board.jpg delete mode 100644 resources/espressif__esp_hosted/docs/images/hosted_diagram-ditaa.svg delete mode 100644 resources/espressif__esp_hosted/docs/images/hosted_diagram-ditaa.txt delete mode 100644 resources/espressif__esp_hosted/docs/images/hosted_wifi_call.svg delete mode 100644 resources/espressif__esp_hosted/docs/images/hosted_wifi_call.txt delete mode 100644 resources/espressif__esp_hosted/docs/images/native_wifi_call.svg delete mode 100644 resources/espressif__esp_hosted/docs/images/native_wifi_call.txt delete mode 100644 resources/espressif__esp_hosted/docs/images/spi_hd_sequence_init.svg delete mode 100644 resources/espressif__esp_hosted/docs/images/spi_hd_sequence_init.txt delete mode 100644 resources/espressif__esp_hosted/docs/images/spi_hd_sequence_read.svg delete mode 100644 resources/espressif__esp_hosted/docs/images/spi_hd_sequence_read.txt delete mode 100644 resources/espressif__esp_hosted/docs/images/spi_hd_sequence_write.svg delete mode 100644 resources/espressif__esp_hosted/docs/images/spi_hd_sequence_write.txt delete mode 100644 resources/espressif__esp_hosted/docs/images/spi_hd_timing_2_lines.svg delete mode 100644 resources/espressif__esp_hosted/docs/images/spi_hd_timing_2_lines.txt delete mode 100644 resources/espressif__esp_hosted/docs/images/spi_hd_timing_4_lines.svg delete mode 100644 resources/espressif__esp_hosted/docs/images/spi_hd_timing_4_lines.txt delete mode 100644 resources/espressif__esp_hosted/docs/performance_optimization.md delete mode 100644 resources/espressif__esp_hosted/docs/sdio.md delete mode 100644 resources/espressif__esp_hosted/docs/setup_esp_idf__latest_stable__linux_macos.fish delete mode 100644 resources/espressif__esp_hosted/docs/setup_esp_idf__latest_stable__linux_macos.sh delete mode 100644 resources/espressif__esp_hosted/docs/shield-box-test-setup.md delete mode 100644 resources/espressif__esp_hosted/docs/spi_full_duplex.md delete mode 100644 resources/espressif__esp_hosted/docs/spi_half_duplex.md delete mode 100644 resources/espressif__esp_hosted/docs/troubleshooting.md delete mode 100644 resources/espressif__esp_hosted/docs/uart.md delete mode 100644 resources/espressif__esp_hosted/docs/wifi_design.md delete mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/CMakeLists.txt delete mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/README.md delete mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/ble_compatibility_test_case.md delete mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/CMakeLists.txt delete mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/ble_compatibility_test.c delete mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/ble_compatibility_test.h delete mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/idf_component.yml delete mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/sdkconfig.defaults delete mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/CMakeLists.txt delete mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/README.md delete mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/CMakeLists.txt delete mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/Kconfig.projbuild delete mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/idf_component.yml delete mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/main.c delete mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/sdkconfig.defaults delete mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_host_only/CMakeLists.txt delete mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_host_only/README.md delete mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_host_only/main/CMakeLists.txt delete mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_host_only/main/idf_component.yml delete mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_host_only/main/main.c delete mode 100644 resources/espressif__esp_hosted/examples/host_bluedroid_host_only/sdkconfig.defaults delete mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/CMakeLists.txt delete mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/README.md delete mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/CMakeLists.txt delete mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/Kconfig.projbuild delete mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/bleprph.h delete mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/gatt_svr.c delete mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/idf_component.yml delete mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/main.c delete mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/uart_driver.c delete mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/uart_driver.h delete mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/sdkconfig.defaults delete mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/tutorial/bleprph_host_only_walkthrough.md delete mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/tutorial/hardware_setup.jpg delete mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/CMakeLists.txt delete mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/README.md delete mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/CMakeLists.txt delete mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/Kconfig.projbuild delete mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/bleprph.h delete mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/gatt_svr.c delete mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/idf_component.yml delete mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/main.c delete mode 100644 resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/sdkconfig.defaults delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/CMakeLists.txt delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/ExtractVersion.cmake delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/CMakeLists.txt delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/Kconfig.projbuild delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/app_main.c delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/app_main.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/esp_hosted_header.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/esp_hosted_interface.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/log/esp_hosted_log.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/README.md delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/esp_hosted_rpc.pb-c.c delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/esp_hosted_rpc.pb-c.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/esp_hosted_rpc.proto delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/.commit_docs.sh delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/.gitignore delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/CONTRIBUTING.md delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/ChangeLog delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/Doxyfile.in delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/DoxygenLayout.xml delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/LICENSE delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/Makefile.am delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/README.md delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/TODO delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/autogen.sh delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/build-cmake/.gitignore delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/build-cmake/CMakeLists.txt delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/configure.ac delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/m4/.gitignore delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/m4/ax_check_compile_flag.m4 delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/m4/ax_cxx_compile_stdcxx.m4 delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/m4/code_coverage.m4 delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/m4/ld-version-script.m4 delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/m4/pkg.m4 delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/m4/valgrind-tests.m4 delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protobuf-c/libprotobuf-c.pc.in delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protobuf-c/libprotobuf-c.sym delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protobuf-c/protobuf-c.c delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protobuf-c/protobuf-c.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protobuf-c/protobuf-c.proto delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_bytes_field.cc delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_bytes_field.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_enum.cc delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_enum.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_enum_field.cc delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_enum_field.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_extension.cc delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_extension.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_field.cc delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_field.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_file.cc delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_file.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_generator.cc delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_generator.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_helpers.cc delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_helpers.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_message.cc delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_message.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_message_field.cc delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_message_field.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_primitive_field.cc delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_primitive_field.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_service.cc delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_service.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_string_field.cc delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/c_string_field.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/protoc-c/main.cc delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/README delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/generated-code/test-generated-code.c delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/generated-code2/common-test-arrays.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/generated-code2/cxx-generate-packed-data.cc delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/generated-code2/test-generated-code2.c delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue204/.gitignore delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue204/issue204.c delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue204/issue204.proto delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue220/.gitignore delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue220/issue220.c delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue220/issue220.proto delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue251/.gitignore delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue251/issue251.c delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue251/issue251.proto delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue330/.gitignore delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue330/issue330.c delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue330/issue330.proto delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue375/.gitignore delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue375/issue375.c delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue375/issue375.proto delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue389/issue389.proto delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue440/.gitignore delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue440/issue440.c delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/issue440/issue440.proto delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/test-full.proto delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/test-optimized.proto delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/test-proto3.proto delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/test.proto delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/t/version/version.c delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/rpc/esp_hosted_bitmasks.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/rpc/esp_hosted_rpc.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/transport/esp_hosted_transport.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/transport/esp_hosted_transport_init.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/transport/esp_hosted_transport_spi_hd.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/coprocessor_fw_version.txt delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/interface.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/mempool.c delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/mempool.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/mempool_ll.c delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/mempool_ll.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/protocomm_pserial.c delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/protocomm_pserial.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/sdio_slave_api.c delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/sdio_slave_api.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/slave_bt.c delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/slave_bt.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/slave_bt_uart.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/slave_bt_uart_esp32.c delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/slave_bt_uart_esp32c3_s3.c delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/slave_bt_uart_esp32xx.c delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/slave_control.c delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/slave_control.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/spi_hd_slave_api.c delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/spi_slave_api.c delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/stats.c delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/stats.h delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/main/uart_slave_api.c delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/partitions.esp32.csv delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/partitions.esp32c2.csv delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/partitions.esp32c5.csv delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/partitions.esp32c6.csv delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/sdkconfig.defaults delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/sdkconfig.defaults.esp32 delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/sdkconfig.defaults.esp32c2 delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/sdkconfig.defaults.esp32c3 delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/sdkconfig.defaults.esp32c5 delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/sdkconfig.defaults.esp32c6 delete mode 100644 resources/espressif__esp_hosted/external_examples/8d519870/slave/sdkconfig.defaults.esp32s3 delete mode 100644 resources/espressif__esp_hosted/host/api/include/esp_hosted_api_types.h delete mode 100644 resources/espressif__esp_hosted/host/api/include/esp_hosted_bt_config.h delete mode 100644 resources/espressif__esp_hosted/host/api/include/esp_hosted_config.h delete mode 100644 resources/espressif__esp_hosted/host/api/include/esp_hosted_ota.h delete mode 100644 resources/espressif__esp_hosted/host/api/include/esp_hosted_transport_config.h delete mode 100644 resources/espressif__esp_hosted/host/api/include/esp_hosted_wifi_remote_glue.h delete mode 100644 resources/espressif__esp_hosted/host/api/priv/esp_hosted_api_priv.h delete mode 100644 resources/espressif__esp_hosted/host/api/src/esp_hosted_api.c delete mode 100644 resources/espressif__esp_hosted/host/api/src/esp_wifi_weak.c delete mode 100644 resources/espressif__esp_hosted/host/drivers/bt/hci_drv.h delete mode 100644 resources/espressif__esp_hosted/host/drivers/bt/hci_stub_drv.c delete mode 100644 resources/espressif__esp_hosted/host/drivers/bt/vhci_drv.c delete mode 100644 resources/espressif__esp_hosted/host/drivers/mempool/CMakeLists.txt delete mode 100644 resources/espressif__esp_hosted/host/drivers/mempool/mempool.c delete mode 100644 resources/espressif__esp_hosted/host/drivers/mempool/mempool.h delete mode 100644 resources/espressif__esp_hosted/host/drivers/rpc/core/rpc_core.c delete mode 100644 resources/espressif__esp_hosted/host/drivers/rpc/core/rpc_core.h delete mode 100644 resources/espressif__esp_hosted/host/drivers/rpc/core/rpc_evt.c delete mode 100644 resources/espressif__esp_hosted/host/drivers/rpc/core/rpc_req.c delete mode 100644 resources/espressif__esp_hosted/host/drivers/rpc/core/rpc_rsp.c delete mode 100644 resources/espressif__esp_hosted/host/drivers/rpc/slaveif/rpc_slave_if.c delete mode 100644 resources/espressif__esp_hosted/host/drivers/rpc/slaveif/rpc_slave_if.h delete mode 100644 resources/espressif__esp_hosted/host/drivers/rpc/wrap/rpc_wrap.c delete mode 100644 resources/espressif__esp_hosted/host/drivers/rpc/wrap/rpc_wrap.h delete mode 100644 resources/espressif__esp_hosted/host/drivers/serial/serial_drv.c delete mode 100644 resources/espressif__esp_hosted/host/drivers/serial/serial_drv.h delete mode 100644 resources/espressif__esp_hosted/host/drivers/serial/serial_ll_if.c delete mode 100644 resources/espressif__esp_hosted/host/drivers/serial/serial_ll_if.h delete mode 100644 resources/espressif__esp_hosted/host/drivers/transport/sdio/sdio_drv.c delete mode 100644 resources/espressif__esp_hosted/host/drivers/transport/sdio/sdio_drv.h delete mode 100644 resources/espressif__esp_hosted/host/drivers/transport/sdio/sdio_reg.h delete mode 100644 resources/espressif__esp_hosted/host/drivers/transport/spi/spi_drv.c delete mode 100644 resources/espressif__esp_hosted/host/drivers/transport/spi/spi_drv.h delete mode 100644 resources/espressif__esp_hosted/host/drivers/transport/spi_hd/spi_hd_drv.c delete mode 100644 resources/espressif__esp_hosted/host/drivers/transport/spi_hd/spi_hd_drv.h delete mode 100644 resources/espressif__esp_hosted/host/drivers/transport/transport_drv.c delete mode 100644 resources/espressif__esp_hosted/host/drivers/transport/transport_drv.h delete mode 100644 resources/espressif__esp_hosted/host/drivers/transport/uart/uart_drv.c delete mode 100644 resources/espressif__esp_hosted/host/drivers/virtual_serial_if/serial_if.c delete mode 100644 resources/espressif__esp_hosted/host/drivers/virtual_serial_if/serial_if.h delete mode 100644 resources/espressif__esp_hosted/host/esp_hosted.h delete mode 100644 resources/espressif__esp_hosted/host/esp_hosted_bt.h delete mode 100644 resources/espressif__esp_hosted/host/esp_hosted_host_init.c delete mode 100644 resources/espressif__esp_hosted/host/hosted_os_abstraction.h delete mode 100644 resources/espressif__esp_hosted/host/port/esp/freertos/include/esp_hosted_wifi_config.h delete mode 100644 resources/espressif__esp_hosted/host/port/esp/freertos/include/os_header.h delete mode 100644 resources/espressif__esp_hosted/host/port/esp/freertos/include/os_wrapper.h delete mode 100644 resources/espressif__esp_hosted/host/port/esp/freertos/include/sdio_wrapper.h delete mode 100644 resources/espressif__esp_hosted/host/port/esp/freertos/include/spi_hd_wrapper.h delete mode 100644 resources/espressif__esp_hosted/host/port/esp/freertos/include/spi_wrapper.h delete mode 100644 resources/espressif__esp_hosted/host/port/esp/freertos/include/uart_wrapper.h delete mode 100644 resources/espressif__esp_hosted/host/port/esp/freertos/src/esp_hosted_config.c delete mode 100644 resources/espressif__esp_hosted/host/port/esp/freertos/src/esp_hosted_ota.c delete mode 100644 resources/espressif__esp_hosted/host/port/esp/freertos/src/esp_hosted_transport_config.c delete mode 100644 resources/espressif__esp_hosted/host/port/esp/freertos/src/os_wrapper.c delete mode 100644 resources/espressif__esp_hosted/host/port/esp/freertos/src/sdio_wrapper.c delete mode 100644 resources/espressif__esp_hosted/host/port/esp/freertos/src/spi_hd_wrapper.c delete mode 100644 resources/espressif__esp_hosted/host/port/esp/freertos/src/spi_wrapper.c delete mode 100644 resources/espressif__esp_hosted/host/port/esp/freertos/src/uart_wrapper.c delete mode 100644 resources/espressif__esp_hosted/host/utils/common.c delete mode 100644 resources/espressif__esp_hosted/host/utils/common.h delete mode 100644 resources/espressif__esp_hosted/host/utils/stats.c delete mode 100644 resources/espressif__esp_hosted/host/utils/stats.h delete mode 100644 resources/espressif__esp_hosted/host/utils/util.c delete mode 100644 resources/espressif__esp_hosted/host/utils/util.h delete mode 100644 resources/espressif__esp_hosted/idf_component.yml delete mode 100644 resources/espressif__esp_hosted/sdkconfig.rename delete mode 100644 resources/espressif__esp_hosted/slave/CMakeLists.txt delete mode 100644 resources/espressif__esp_hosted/slave/ExtractVersion.cmake delete mode 100644 resources/espressif__esp_hosted/slave/main/CMakeLists.txt delete mode 100644 resources/espressif__esp_hosted/slave/main/Kconfig.projbuild delete mode 100644 resources/espressif__esp_hosted/slave/main/app_main.c delete mode 100644 resources/espressif__esp_hosted/slave/main/app_main.h delete mode 100644 resources/espressif__esp_hosted/slave/main/common/esp_hosted_header.h delete mode 100644 resources/espressif__esp_hosted/slave/main/common/esp_hosted_interface.h delete mode 100644 resources/espressif__esp_hosted/slave/main/common/log/esp_hosted_log.h delete mode 100644 resources/espressif__esp_hosted/slave/main/common/proto/README.md delete mode 100644 resources/espressif__esp_hosted/slave/main/common/proto/esp_hosted_rpc.pb-c.c delete mode 100644 resources/espressif__esp_hosted/slave/main/common/proto/esp_hosted_rpc.pb-c.h delete mode 100644 resources/espressif__esp_hosted/slave/main/common/proto/esp_hosted_rpc.proto delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/.commit_docs.sh delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/.gitignore delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/CONTRIBUTING.md delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/ChangeLog delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/Doxyfile.in delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/DoxygenLayout.xml delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/LICENSE delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/Makefile.am delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/README.md delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/TODO delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/autogen.sh delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/build-cmake/.gitignore delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/build-cmake/CMakeLists.txt delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/configure.ac delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/m4/.gitignore delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/m4/ax_check_compile_flag.m4 delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/m4/ax_cxx_compile_stdcxx.m4 delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/m4/code_coverage.m4 delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/m4/ld-version-script.m4 delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/m4/pkg.m4 delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/m4/valgrind-tests.m4 delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protobuf-c/libprotobuf-c.pc.in delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protobuf-c/libprotobuf-c.sym delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protobuf-c/protobuf-c.c delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protobuf-c/protobuf-c.h delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protobuf-c/protobuf-c.proto delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_bytes_field.cc delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_bytes_field.h delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_enum.cc delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_enum.h delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_enum_field.cc delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_enum_field.h delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_extension.cc delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_extension.h delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_field.cc delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_field.h delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_file.cc delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_file.h delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_generator.cc delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_generator.h delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_helpers.cc delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_helpers.h delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_message.cc delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_message.h delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_message_field.cc delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_message_field.h delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_primitive_field.cc delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_primitive_field.h delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_service.cc delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_service.h delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_string_field.cc delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/c_string_field.h delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/protoc-c/main.cc delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/README delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/generated-code/test-generated-code.c delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/generated-code2/common-test-arrays.h delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/generated-code2/cxx-generate-packed-data.cc delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/generated-code2/test-generated-code2.c delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue204/.gitignore delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue204/issue204.c delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue204/issue204.proto delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue220/.gitignore delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue220/issue220.c delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue220/issue220.proto delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue251/.gitignore delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue251/issue251.c delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue251/issue251.proto delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue330/.gitignore delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue330/issue330.c delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue330/issue330.proto delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue375/.gitignore delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue375/issue375.c delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue375/issue375.proto delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue389/issue389.proto delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue440/.gitignore delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue440/issue440.c delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/issue440/issue440.proto delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/test-full.proto delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/test-optimized.proto delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/test-proto3.proto delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/test.proto delete mode 100644 resources/espressif__esp_hosted/slave/main/common/protobuf-c/t/version/version.c delete mode 100644 resources/espressif__esp_hosted/slave/main/common/rpc/esp_hosted_bitmasks.h delete mode 100644 resources/espressif__esp_hosted/slave/main/common/rpc/esp_hosted_rpc.h delete mode 100644 resources/espressif__esp_hosted/slave/main/common/transport/esp_hosted_transport.h delete mode 100644 resources/espressif__esp_hosted/slave/main/common/transport/esp_hosted_transport_init.h delete mode 100644 resources/espressif__esp_hosted/slave/main/common/transport/esp_hosted_transport_spi_hd.h delete mode 100644 resources/espressif__esp_hosted/slave/main/interface.h delete mode 100644 resources/espressif__esp_hosted/slave/main/mempool.c delete mode 100644 resources/espressif__esp_hosted/slave/main/mempool.h delete mode 100644 resources/espressif__esp_hosted/slave/main/mempool_ll.c delete mode 100644 resources/espressif__esp_hosted/slave/main/mempool_ll.h delete mode 100644 resources/espressif__esp_hosted/slave/main/protocomm_pserial.c delete mode 100644 resources/espressif__esp_hosted/slave/main/protocomm_pserial.h delete mode 100644 resources/espressif__esp_hosted/slave/main/sdio_slave_api.c delete mode 100644 resources/espressif__esp_hosted/slave/main/sdio_slave_api.h delete mode 100644 resources/espressif__esp_hosted/slave/main/slave_bt.c delete mode 100644 resources/espressif__esp_hosted/slave/main/slave_bt.h delete mode 100644 resources/espressif__esp_hosted/slave/main/slave_bt_uart.h delete mode 100644 resources/espressif__esp_hosted/slave/main/slave_bt_uart_esp32.c delete mode 100644 resources/espressif__esp_hosted/slave/main/slave_bt_uart_esp32c3_s3.c delete mode 100644 resources/espressif__esp_hosted/slave/main/slave_bt_uart_esp32xx.c delete mode 100644 resources/espressif__esp_hosted/slave/main/slave_control.c delete mode 100644 resources/espressif__esp_hosted/slave/main/slave_control.h delete mode 100644 resources/espressif__esp_hosted/slave/main/spi_hd_slave_api.c delete mode 100644 resources/espressif__esp_hosted/slave/main/spi_slave_api.c delete mode 100644 resources/espressif__esp_hosted/slave/main/stats.c delete mode 100644 resources/espressif__esp_hosted/slave/main/stats.h delete mode 100644 resources/espressif__esp_hosted/slave/main/uart_slave_api.c delete mode 100644 resources/espressif__esp_hosted/slave/partitions.esp32.csv delete mode 100644 resources/espressif__esp_hosted/slave/partitions.esp32c2.csv delete mode 100644 resources/espressif__esp_hosted/slave/partitions.esp32c5.csv delete mode 100644 resources/espressif__esp_hosted/slave/partitions.esp32c6.csv delete mode 100644 resources/espressif__esp_hosted/slave/sdkconfig.defaults delete mode 100644 resources/espressif__esp_hosted/slave/sdkconfig.defaults.esp32 delete mode 100644 resources/espressif__esp_hosted/slave/sdkconfig.defaults.esp32c2 delete mode 100644 resources/espressif__esp_hosted/slave/sdkconfig.defaults.esp32c3 delete mode 100644 resources/espressif__esp_hosted/slave/sdkconfig.defaults.esp32c5 delete mode 100644 resources/espressif__esp_hosted/slave/sdkconfig.defaults.esp32c6 delete mode 100644 resources/espressif__esp_hosted/slave/sdkconfig.defaults.esp32s3 delete mode 100644 resources/espressif__esp_wifi_remote/.component_hash delete mode 100644 resources/espressif__esp_wifi_remote/.cz.yaml delete mode 100644 resources/espressif__esp_wifi_remote/CHANGELOG.md delete mode 100644 resources/espressif__esp_wifi_remote/CMakeLists.txt delete mode 100644 resources/espressif__esp_wifi_remote/Kconfig delete mode 100644 resources/espressif__esp_wifi_remote/Kconfig.rpc.in delete mode 100644 resources/espressif__esp_wifi_remote/LICENSE delete mode 100644 resources/espressif__esp_wifi_remote/README.md delete mode 100644 resources/espressif__esp_wifi_remote/dummy_src.c delete mode 100644 resources/espressif__esp_wifi_remote/eppp/eppp_init.c delete mode 100644 resources/espressif__esp_wifi_remote/eppp/wifi_remote_rpc_client.cpp delete mode 100644 resources/espressif__esp_wifi_remote/eppp/wifi_remote_rpc_impl.hpp delete mode 100644 resources/espressif__esp_wifi_remote/eppp/wifi_remote_rpc_params.h delete mode 100644 resources/espressif__esp_wifi_remote/eppp/wifi_remote_rpc_server.cpp delete mode 100644 resources/espressif__esp_wifi_remote/esp_wifi_remote.c delete mode 100644 resources/espressif__esp_wifi_remote/esp_wifi_remote_net.c delete mode 100644 resources/espressif__esp_wifi_remote/examples/mqtt/CMakeLists.txt delete mode 100644 resources/espressif__esp_wifi_remote/examples/mqtt/README.md delete mode 100644 resources/espressif__esp_wifi_remote/examples/mqtt/main/CMakeLists.txt delete mode 100644 resources/espressif__esp_wifi_remote/examples/mqtt/main/Kconfig.projbuild delete mode 100644 resources/espressif__esp_wifi_remote/examples/mqtt/main/app_main.c delete mode 100644 resources/espressif__esp_wifi_remote/examples/mqtt/main/idf_component.yml delete mode 100644 resources/espressif__esp_wifi_remote/examples/mqtt/sdkconfig.ci.p4 delete mode 100644 resources/espressif__esp_wifi_remote/examples/mqtt/sdkconfig.defaults delete mode 100644 resources/espressif__esp_wifi_remote/examples/pytest_eppp.py delete mode 100644 resources/espressif__esp_wifi_remote/examples/server/CMakeLists.txt delete mode 100644 resources/espressif__esp_wifi_remote/examples/server/README.md delete mode 100644 resources/espressif__esp_wifi_remote/examples/server/main/CMakeLists.txt delete mode 100644 resources/espressif__esp_wifi_remote/examples/server/main/idf_component.yml delete mode 100644 resources/espressif__esp_wifi_remote/examples/server/main/station_example_main.c delete mode 100644 resources/espressif__esp_wifi_remote/examples/server/sdkconfig.ci.c6 delete mode 100644 resources/espressif__esp_wifi_remote/examples/server/sdkconfig.defaults delete mode 100644 resources/espressif__esp_wifi_remote/examples/test_certs/generate_test_certs.sh delete mode 100644 resources/espressif__esp_wifi_remote/idf_component.yml delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.1/Kconfig.slave_select.in delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.1/Kconfig.soc_wifi_caps.in delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.1/Kconfig.wifi.in delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.1/esp_wifi_remote_weak.c delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.1/esp_wifi_with_remote.c delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.1/include/esp_wifi_default_config.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.1/include/esp_wifi_remote_api.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.1/include/injected/esp_mesh.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.1/include/injected/esp_mesh_internal.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.1/include/injected/esp_now.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.1/include/injected/esp_wifi.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.1/include/injected/esp_wifi_ap_get_sta_list.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.1/include/injected/esp_wifi_crypto_types.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.1/include/injected/esp_wifi_default.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.1/include/injected/esp_wifi_he.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.1/include/injected/esp_wifi_he_types.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.1/include/injected/esp_wifi_netif.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.1/include/injected/esp_wifi_types.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.1/include/injected/esp_wifi_types_generic.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.1/include/injected/esp_wifi_types_native.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.1/wifi_apps/roaming_app/src/Kconfig.roaming delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.2/Kconfig.slave_select.in delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.2/Kconfig.soc_wifi_caps.in delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.2/Kconfig.wifi.in delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.2/esp_wifi_remote_weak.c delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.2/esp_wifi_with_remote.c delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.2/include/esp_wifi_default_config.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.2/include/esp_wifi_remote_api.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.2/include/injected/esp_mesh.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.2/include/injected/esp_mesh_internal.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.2/include/injected/esp_now.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.2/include/injected/esp_wifi.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.2/include/injected/esp_wifi_ap_get_sta_list.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.2/include/injected/esp_wifi_crypto_types.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.2/include/injected/esp_wifi_default.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.2/include/injected/esp_wifi_he.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.2/include/injected/esp_wifi_he_types.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.2/include/injected/esp_wifi_netif.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.2/include/injected/esp_wifi_types.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.2/include/injected/esp_wifi_types_generic.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.2/include/injected/esp_wifi_types_native.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.2/wifi_apps/roaming_app/src/Kconfig.roaming delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.3/Kconfig.slave_select.in delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.3/Kconfig.soc_wifi_caps.in delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.3/Kconfig.wifi.in delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.3/esp_wifi_remote_weak.c delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.3/esp_wifi_with_remote.c delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.3/include/esp_wifi_default_config.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.3/include/esp_wifi_remote_api.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.3/include/injected/esp_mesh.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.3/include/injected/esp_mesh_internal.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.3/include/injected/esp_now.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.3/include/injected/esp_wifi.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.3/include/injected/esp_wifi_ap_get_sta_list.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.3/include/injected/esp_wifi_crypto_types.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.3/include/injected/esp_wifi_default.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.3/include/injected/esp_wifi_he.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.3/include/injected/esp_wifi_he_types.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.3/include/injected/esp_wifi_netif.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.3/include/injected/esp_wifi_types.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.3/include/injected/esp_wifi_types_generic.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.3.3/include/injected/esp_wifi_types_native.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4.1/Kconfig.slave_select.in delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4.1/Kconfig.soc_wifi_caps.in delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4.1/Kconfig.wifi.in delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4.1/esp_wifi_remote_weak.c delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4.1/esp_wifi_with_remote.c delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4.1/include/esp_wifi_default_config.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4.1/include/esp_wifi_remote_api.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4.1/include/injected/esp_mesh.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4.1/include/injected/esp_mesh_internal.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4.1/include/injected/esp_now.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4.1/include/injected/esp_wifi.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4.1/include/injected/esp_wifi_ap_get_sta_list.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4.1/include/injected/esp_wifi_crypto_types.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4.1/include/injected/esp_wifi_default.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4.1/include/injected/esp_wifi_he.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4.1/include/injected/esp_wifi_he_types.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4.1/include/injected/esp_wifi_netif.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4.1/include/injected/esp_wifi_types.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4.1/include/injected/esp_wifi_types_generic.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4.1/include/injected/esp_wifi_types_native.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4/Kconfig.slave_select.in delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4/Kconfig.soc_wifi_caps.in delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4/Kconfig.wifi.in delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4/esp_wifi_remote_weak.c delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4/esp_wifi_with_remote.c delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4/include/esp_wifi_default_config.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4/include/esp_wifi_remote_api.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4/include/injected/esp_mesh.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4/include/injected/esp_mesh_internal.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4/include/injected/esp_now.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4/include/injected/esp_wifi.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4/include/injected/esp_wifi_ap_get_sta_list.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4/include/injected/esp_wifi_crypto_types.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4/include/injected/esp_wifi_default.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4/include/injected/esp_wifi_he.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4/include/injected/esp_wifi_he_types.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4/include/injected/esp_wifi_netif.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4/include/injected/esp_wifi_types.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4/include/injected/esp_wifi_types_generic.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4/include/injected/esp_wifi_types_native.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_tag_v5.4/wifi_apps/roaming_app/src/Kconfig.roaming delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.3/Kconfig.slave_select.in delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.3/Kconfig.soc_wifi_caps.in delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.3/Kconfig.wifi.in delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.3/esp_wifi_remote_weak.c delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.3/esp_wifi_with_remote.c delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.3/include/esp_wifi_default_config.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.3/include/esp_wifi_remote_api.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.3/include/injected/esp_mesh.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.3/include/injected/esp_mesh_internal.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.3/include/injected/esp_now.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.3/include/injected/esp_wifi.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.3/include/injected/esp_wifi_ap_get_sta_list.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.3/include/injected/esp_wifi_crypto_types.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.3/include/injected/esp_wifi_default.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.3/include/injected/esp_wifi_he.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.3/include/injected/esp_wifi_he_types.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.3/include/injected/esp_wifi_netif.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.3/include/injected/esp_wifi_types.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.3/include/injected/esp_wifi_types_generic.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.3/include/injected/esp_wifi_types_native.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.3/wifi_apps/roaming_app/src/Kconfig.roaming delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.4/Kconfig.slave_select.in delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.4/Kconfig.soc_wifi_caps.in delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.4/Kconfig.wifi.in delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.4/esp_wifi_remote_weak.c delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.4/esp_wifi_with_remote.c delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.4/include/esp_wifi_default_config.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.4/include/esp_wifi_remote_api.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.4/include/injected/esp_mesh.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.4/include/injected/esp_mesh_internal.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.4/include/injected/esp_now.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.4/include/injected/esp_wifi.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.4/include/injected/esp_wifi_ap_get_sta_list.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.4/include/injected/esp_wifi_crypto_types.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.4/include/injected/esp_wifi_default.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.4/include/injected/esp_wifi_he.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.4/include/injected/esp_wifi_he_types.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.4/include/injected/esp_wifi_netif.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.4/include/injected/esp_wifi_types.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.4/include/injected/esp_wifi_types_generic.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.4/include/injected/esp_wifi_types_native.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.4/wifi_apps/roaming_app/src/Kconfig.roaming delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.5/Kconfig.slave_select.in delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.5/Kconfig.soc_wifi_caps.in delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.5/Kconfig.wifi.in delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.5/esp_wifi_remote_weak.c delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.5/esp_wifi_with_remote.c delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.5/include/esp_wifi_default_config.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.5/include/esp_wifi_remote_api.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.5/include/injected/esp_mesh.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.5/include/injected/esp_mesh_internal.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.5/include/injected/esp_now.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.5/include/injected/esp_wifi.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.5/include/injected/esp_wifi_ap_get_sta_list.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.5/include/injected/esp_wifi_crypto_types.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.5/include/injected/esp_wifi_default.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.5/include/injected/esp_wifi_he.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.5/include/injected/esp_wifi_he_types.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.5/include/injected/esp_wifi_netif.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.5/include/injected/esp_wifi_types.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.5/include/injected/esp_wifi_types_generic.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.5/include/injected/esp_wifi_types_native.h delete mode 100644 resources/espressif__esp_wifi_remote/idf_v5.5/wifi_apps/roaming_app/src/Kconfig.roaming delete mode 100644 resources/espressif__esp_wifi_remote/include/esp_wifi_remote.h delete mode 100644 resources/espressif__esp_wifi_remote/include/esp_wifi_remote_with_hosted.h delete mode 100644 resources/espressif__esp_wifi_remote/scripts/README.md delete mode 100644 resources/espressif__esp_wifi_remote/scripts/copyright_header.h delete mode 100644 resources/espressif__esp_wifi_remote/scripts/generate_and_check.py delete mode 100644 resources/espressif__esp_wifi_remote/scripts/generate_slave_configs.py delete mode 100644 resources/espressif__esp_wifi_remote/scripts/ignore_extensions.h delete mode 100644 resources/espressif__esp_wifi_remote/test/smoke_test/CMakeLists.txt delete mode 100644 resources/espressif__esp_wifi_remote/test/smoke_test/README.md delete mode 100644 resources/espressif__esp_wifi_remote/test/smoke_test/components/esp_hosted/CMakeLists.txt delete mode 100644 resources/espressif__esp_wifi_remote/test/smoke_test/components/esp_hosted/idf_component.yml delete mode 100644 resources/espressif__esp_wifi_remote/test/smoke_test/components/esp_hosted/idf_v5.3/esp_hosted_mock.c delete mode 100644 resources/espressif__esp_wifi_remote/test/smoke_test/components/esp_hosted/idf_v5.3/include/esp_hosted_mock.h delete mode 100644 resources/espressif__esp_wifi_remote/test/smoke_test/components/esp_hosted/idf_v5.4/esp_hosted_mock.c delete mode 100644 resources/espressif__esp_wifi_remote/test/smoke_test/components/esp_hosted/idf_v5.4/include/esp_hosted_mock.h delete mode 100644 resources/espressif__esp_wifi_remote/test/smoke_test/components/esp_hosted/idf_v5.5/esp_hosted_mock.c delete mode 100644 resources/espressif__esp_wifi_remote/test/smoke_test/components/esp_hosted/idf_v5.5/include/esp_hosted_mock.h delete mode 100644 resources/espressif__esp_wifi_remote/test/smoke_test/components/esp_hosted/include/esp_hosted_api.h delete mode 100644 resources/espressif__esp_wifi_remote/test/smoke_test/components/esp_hosted/include/esp_hosted_wifi_api.h delete mode 100644 resources/espressif__esp_wifi_remote/test/smoke_test/main/CMakeLists.txt delete mode 100644 resources/espressif__esp_wifi_remote/test/smoke_test/main/idf_component.yml delete mode 100644 resources/espressif__esp_wifi_remote/test/smoke_test/main/idf_v5.3/all_wifi_calls.c delete mode 100644 resources/espressif__esp_wifi_remote/test/smoke_test/main/idf_v5.3/all_wifi_remote_calls.c delete mode 100644 resources/espressif__esp_wifi_remote/test/smoke_test/main/idf_v5.4/all_wifi_calls.c delete mode 100644 resources/espressif__esp_wifi_remote/test/smoke_test/main/idf_v5.4/all_wifi_remote_calls.c delete mode 100644 resources/espressif__esp_wifi_remote/test/smoke_test/main/idf_v5.5/all_wifi_calls.c delete mode 100644 resources/espressif__esp_wifi_remote/test/smoke_test/main/idf_v5.5/all_wifi_remote_calls.c delete mode 100644 resources/espressif__esp_wifi_remote/test/smoke_test/main/smoke_test.c delete mode 100644 resources/espressif__esp_wifi_remote/test/smoke_test/sdkconfig.defaults diff --git a/resources/espressif__esp_hosted/.component_hash b/resources/espressif__esp_hosted/.component_hash deleted file mode 100644 index a5f848f..0000000 --- a/resources/espressif__esp_hosted/.component_hash +++ /dev/null @@ -1 +0,0 @@ -ba380b52c57e1adfb384591dd8ad85ebc7fce6f990741c403af2ea06c33f3371 \ No newline at end of file diff --git a/resources/espressif__esp_hosted/.editorconfig b/resources/espressif__esp_hosted/.editorconfig deleted file mode 100644 index d394d9d..0000000 --- a/resources/espressif__esp_hosted/.editorconfig +++ /dev/null @@ -1,19 +0,0 @@ -# EditorConfig helps developers define and maintain consistent -# coding styles between different editors and IDEs -# http://editorconfig.org - -root = true - -# Default configuration for all files -# - tabs for indentation -[*] -indent_style = tab -indent_size = 4 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Some Mermaid diagram commands need to end with a trailing whitespace in Markdown files -[*.md] -trim_trailing_whitespace = false diff --git a/resources/espressif__esp_hosted/.gitignore b/resources/espressif__esp_hosted/.gitignore deleted file mode 100644 index 6edbbdf..0000000 --- a/resources/espressif__esp_hosted/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -build -dependencies.lock -managed_components -sdkconfig -sdkconfig.old -slave/main/coprocessor_fw_version.h -slave/main/coprocessor_fw_version.txt diff --git a/resources/espressif__esp_hosted/.gitlab-ci-override-idf-component.yml b/resources/espressif__esp_hosted/.gitlab-ci-override-idf-component.yml deleted file mode 100644 index 54e7717..0000000 --- a/resources/espressif__esp_hosted/.gitlab-ci-override-idf-component.yml +++ /dev/null @@ -1,5 +0,0 @@ - espressif/esp_hosted: - version: ">=1.0" - override_path: "${OVERRIDE_PATH}" - rules: - - if: "target in [esp32p4, esp32h2]" diff --git a/resources/espressif__esp_hosted/.gitmodules b/resources/espressif__esp_hosted/.gitmodules deleted file mode 100644 index 542fb1d..0000000 --- a/resources/espressif__esp_hosted/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "esp_hosted_fg/common/protobuf-c"] - path = common/protobuf-c - url = https://github.com/protobuf-c/protobuf-c.git diff --git a/resources/espressif__esp_hosted/CMakeLists.txt b/resources/espressif__esp_hosted/CMakeLists.txt deleted file mode 100644 index 3f79b2f..0000000 --- a/resources/espressif__esp_hosted/CMakeLists.txt +++ /dev/null @@ -1,94 +0,0 @@ -if(CONFIG_ESP_HOSTED_ENABLED) - message(STATUS "Using Hosted Wi-Fi") - set(FG_root_dir ".") - set(host_dir "${FG_root_dir}/host") - - set(srcs "${host_dir}/esp_hosted_host_init.c" "${host_dir}/api/src/esp_wifi_weak.c" "${host_dir}/api/src/esp_hosted_api.c" "${host_dir}/drivers/transport/transport_drv.c" "${host_dir}/drivers/serial/serial_ll_if.c" "${host_dir}/utils/common.c" "${host_dir}/utils/util.c" "${host_dir}/utils/stats.c" "${host_dir}/drivers/serial/serial_drv.c") - - # only these directories are public. Others are private - set(pub_include "${host_dir}" "${host_dir}/api/include") - - set(priv_include "${host_dir}/drivers/transport" "${host_dir}/drivers/transport/spi" "${host_dir}/drivers/transport/sdio" "${host_dir}/drivers/serial" "${host_dir}/utils" "${host_dir}/api/priv") - - # rpc files - wrap -> slaveif -> core - set(rpc_dir "${host_dir}/drivers/rpc") - set(rpc_core_dir "${rpc_dir}/core") - set(rpc_slaveif_dir "${rpc_dir}/slaveif") - set(rpc_wrap_dir "${rpc_dir}/wrap") - list(APPEND srcs "${rpc_core_dir}/rpc_core.c" "${rpc_core_dir}/rpc_req.c" "${rpc_core_dir}/rpc_rsp.c" "${rpc_core_dir}/rpc_evt.c" - "${rpc_slaveif_dir}/rpc_slave_if.c" - "${rpc_wrap_dir}/rpc_wrap.c") - list(APPEND priv_include "${rpc_core_dir}" "${rpc_slaveif_dir}" "${rpc_wrap_dir}") - - # virtual serial - set(virt_serial_dir "${host_dir}/drivers/virtual_serial_if") - list(APPEND srcs "${virt_serial_dir}/serial_if.c") - list(APPEND priv_include "${virt_serial_dir}") - - # mempool - list(APPEND srcs "${host_dir}/drivers/mempool/mempool.c") - list(APPEND priv_include "${host_dir}/drivers/mempool" ) - - # slave and host common files - set(common_dir "${FG_root_dir}/common") - list(APPEND srcs "${common_dir}/protobuf-c/protobuf-c/protobuf-c.c" "${common_dir}/proto/esp_hosted_rpc.pb-c.c" ) - list(APPEND priv_include "${common_dir}" "${common_dir}/log" "${common_dir}/rpc" "${common_dir}/transport" "${common_dir}/protobuf-c" "${common_dir}/proto" ) - - # host ESP32 specific files - list(APPEND srcs "${host_dir}/port/esp/freertos/src/esp_hosted_ota.c") - - # bt (NimBLE) - ### TODO config for HCI over UART - list(APPEND priv_include "${host_dir}/drivers/bt") - if(CONFIG_ESP_HOSTED_NIMBLE_HCI_VHCI OR CONFIG_ESP_HOSTED_BLUEDROID_HCI_VHCI) - list(APPEND srcs "${host_dir}/drivers/bt/vhci_drv.c") - else() - list(APPEND srcs "${host_dir}/drivers/bt/hci_stub_drv.c") - endif() - - # transport files - if(CONFIG_ESP_HOSTED_SDIO_HOST_INTERFACE) - list(APPEND srcs "${host_dir}/drivers/transport/sdio/sdio_drv.c") - elseif(CONFIG_ESP_HOSTED_SPI_HD_HOST_INTERFACE) - list(APPEND srcs "${host_dir}/drivers/transport/spi_hd/spi_hd_drv.c") - elseif(CONFIG_ESP_HOSTED_SPI_HOST_INTERFACE) - list(APPEND srcs "${host_dir}/drivers/transport/spi/spi_drv.c") - elseif(CONFIG_ESP_HOSTED_UART_HOST_INTERFACE) - list(APPEND srcs "${host_dir}/drivers/transport/uart/uart_drv.c") - endif() - - # config files - list(APPEND priv_include "${host_dir}/port/esp/freertos/include") - list(APPEND srcs "${host_dir}/port/esp/freertos/src/esp_hosted_config.c" "${host_dir}/port/esp/freertos/src/esp_hosted_transport_config.c") - - # transport port files - list(APPEND srcs "${host_dir}/port/esp/freertos/src/os_wrapper.c") - if(CONFIG_ESP_HOSTED_SDIO_HOST_INTERFACE) - list(APPEND srcs "${host_dir}/port/esp/freertos/src/sdio_wrapper.c") - elseif(CONFIG_ESP_HOSTED_SPI_HD_HOST_INTERFACE) - list(APPEND srcs "${host_dir}/port/esp/freertos/src/spi_hd_wrapper.c") - elseif(CONFIG_ESP_HOSTED_SPI_HOST_INTERFACE) - list(APPEND srcs "${host_dir}/port/esp/freertos/src/spi_wrapper.c") - elseif(CONFIG_ESP_HOSTED_UART_HOST_INTERFACE) - list(APPEND srcs "${host_dir}/port/esp/freertos/src/uart_wrapper.c") - endif() - -endif() - -idf_component_register(SRCS ${srcs} - PRIV_REQUIRES soc esp_event esp_netif esp_timer driver esp_wifi bt esp_http_client - INCLUDE_DIRS ${pub_include} - PRIV_INCLUDE_DIRS ${priv_include}) - -idf_component_set_property(${COMPONENT_NAME} WHOLE_ARCHIVE TRUE) - -if(CONFIG_ESP_HOSTED_SDIO_HOST_INTERFACE) - idf_component_optional_requires(PRIVATE sdmmc) -endif() - -# Required if using ESP-IDF without commit 6b6065de509b5de39e4655fd425bf96f43b365f7: -# fix(driver_spi): fix p4 cache auto writeback during spi(dma) rx -# if(CONFIG_IDF_TARGET_ESP32P4 AND (CONFIG_ESP_HOSTED_SPI_HOST_INTERFACE OR CONFIG_ESP_HOSTED_SPI_HD_HOST_INTERFACE)) -# # used to workaround SPI transfer issue -# idf_component_optional_requires(PRIVATE esp_mm) -# endif() diff --git a/resources/espressif__esp_hosted/Kconfig b/resources/espressif__esp_hosted/Kconfig deleted file mode 100644 index 929e356..0000000 --- a/resources/espressif__esp_hosted/Kconfig +++ /dev/null @@ -1,1356 +0,0 @@ -config ESP_HOSTED_ENABLED - bool - default y if ESP_WIFI_REMOTE_ENABLED && ESP_WIFI_REMOTE_LIBRARY_HOSTED - default n - -menu "ESP-Hosted config" - depends on ESP_HOSTED_ENABLED - - # Co-processor selection done in Wi-Fi Remote Component - comment "ESP32 is Slave Target from Wi-Fi Remote Component" - depends on SLAVE_IDF_TARGET_ESP32 - comment "ESP32-S2 is Slave Target from Wi-Fi Remote Component" - depends on SLAVE_IDF_TARGET_ESP32S2 - comment "ESP32-S3 is Slave Target from Wi-Fi Remote Component" - depends on SLAVE_IDF_TARGET_ESP32S3 - comment "ESP32-C2 is Slave Target from Wi-Fi Remote Component" - depends on SLAVE_IDF_TARGET_ESP32C2 - comment "ESP32-C3 is Slave Target from Wi-Fi Remote Component" - depends on SLAVE_IDF_TARGET_ESP32C3 - comment "ESP32-C6 is Slave Target from Wi-Fi Remote Component" - depends on SLAVE_IDF_TARGET_ESP32C6 - comment "ESP32-C5 is Slave Target from Wi-Fi Remote Component" - depends on SLAVE_IDF_TARGET_ESP32C5 - comment "ESP32-C61 is Slave Target from Wi-Fi Remote Component" - depends on SLAVE_IDF_TARGET_ESP32C61 - - # y if SDIO Transport is available, based on host and slave selection - config ESP_HOSTED_PRIV_SDIO_OPTION - bool - default y if (IDF_TARGET_ESP32 || IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32P4) && (SLAVE_IDF_TARGET_ESP32 || SLAVE_IDF_TARGET_ESP32C6 || SLAVE_IDF_TARGET_ESP32C5) - default n - - # y if SPI HD Transport is available, based on host and slave selection - config ESP_HOSTED_PRIV_SPI_HD_OPTION - bool - default n if (IDF_TARGET_ESP32 || SLAVE_IDF_TARGET_ESP32) - default y - - choice ESP_HOSTED_HOST_INTERFACE - bool "Transport layer" - default ESP_HOSTED_SDIO_HOST_INTERFACE if ESP_HOSTED_PRIV_SDIO_OPTION - default ESP_HOSTED_SPI_HOST_INTERFACE - help - Bus interface to be used for communication with the host - - config ESP_HOSTED_SPI_HOST_INTERFACE - bool "SPI Full-duplex" - help - Enable/Disable SPI Full-duplex host interface - - config ESP_HOSTED_SDIO_HOST_INTERFACE - depends on ESP_HOSTED_PRIV_SDIO_OPTION - bool "SDIO" - help - Enable/Disable SDIO host interface - - # SPI Half Duplex is not supported in ESP32 - config ESP_HOSTED_SPI_HD_HOST_INTERFACE - depends on ESP_HOSTED_PRIV_SPI_HD_OPTION - bool "SPI Half-duplex" - help - Enable/Disable SPI Half-duplex host interface - - config ESP_HOSTED_UART_HOST_INTERFACE - bool "UART" - help - Enable/Disable UART host interface - endchoice - - config ESP_HOSTED_IDF_SLAVE_TARGET - string - default "esp32" if SLAVE_IDF_TARGET_ESP32 - default "esp32s2" if SLAVE_IDF_TARGET_ESP32S2 - default "esp32s3" if SLAVE_IDF_TARGET_ESP32S3 - default "esp32c2" if SLAVE_IDF_TARGET_ESP32C2 - default "esp32c3" if SLAVE_IDF_TARGET_ESP32C3 - default "esp32c6" if SLAVE_IDF_TARGET_ESP32C6 - default "esp32c5" if SLAVE_IDF_TARGET_ESP32C5 - default "invalid" - - menu "SPI Configuration" - depends on ESP_HOSTED_SPI_HOST_INTERFACE - - choice ESP_HOSTED_SPI_PRIV_MODE_ESP32 - depends on SLAVE_IDF_TARGET_ESP32 - bool "Host SPI mode" - default ESP_HOSTED_SPI_PRIV_MODE_2_ESP32 - - config ESP_HOSTED_SPI_PRIV_MODE_0_ESP32 - bool "Host SPI mode 0" - - config ESP_HOSTED_SPI_PRIV_MODE_1_ESP32 - bool "Host SPI mode 1" - - config ESP_HOSTED_SPI_PRIV_MODE_2_ESP32 - bool "Host SPI mode 2" - - config ESP_HOSTED_SPI_PRIV_MODE_3_ESP32 - bool "Host SPI mode 3" - endchoice - - choice ESP_HOSTED_SPI_PRIV_MODE_ESP32XX - depends on !SLAVE_IDF_TARGET_ESP32 - bool "Host SPI mode" - default ESP_HOSTED_SPI_PRIV_MODE_3_ESP32XX - - config ESP_HOSTED_SPI_PRIV_MODE_0_ESP32XX - bool "Host SPI mode 0" - - config ESP_HOSTED_SPI_PRIV_MODE_1_ESP32XX - bool "Host SPI mode 1" - - config ESP_HOSTED_SPI_PRIV_MODE_2_ESP32XX - bool "Host SPI mode 2" - - config ESP_HOSTED_SPI_PRIV_MODE_3_ESP32XX - bool "Host SPI mode 3" - endchoice - - config ESP_HOSTED_SPI_MODE - int - default 0 if ESP_HOSTED_SPI_PRIV_MODE_0_ESP32 - default 1 if ESP_HOSTED_SPI_PRIV_MODE_1_ESP32 - default 2 if ESP_HOSTED_SPI_PRIV_MODE_2_ESP32 - default 3 if ESP_HOSTED_SPI_PRIV_MODE_3_ESP32 - default 0 if ESP_HOSTED_SPI_PRIV_MODE_0_ESP32XX - default 1 if ESP_HOSTED_SPI_PRIV_MODE_1_ESP32XX - default 2 if ESP_HOSTED_SPI_PRIV_MODE_2_ESP32XX - default 3 if ESP_HOSTED_SPI_PRIV_MODE_3_ESP32XX - - choice ESP_HOSTED_SPI_CONTROLLER - bool "Host SPI controller to use" - default ESP_HOSTED_SPI_HSPI - - config ESP_HOSTED_SPI_HSPI - bool "HSPI/FSPI" - help - "HSPI/FSPI: SPI_controller_1" - - config ESP_HOSTED_SPI_VSPI - depends on IDF_TARGET_ESP32 - bool "VSPI" - help - "VSPI: SPI_controller_2" - - endchoice - - config ESP_HOSTED_SPI_CONTROLLER - int - default 2 if ESP_HOSTED_SPI_VSPI - default 1 - - menu "Host SPI GPIOs Config" - - choice ESP_HOSTED_SPI_HANDSHAKE_GPIO_CONFIG - bool "Handshake GPIO Config" - default ESP_HOSTED_HS_ACTIVE_HIGH - - config ESP_HOSTED_HS_ACTIVE_HIGH - bool "HS: Active High" - config ESP_HOSTED_HS_ACTIVE_LOW - bool "HS: Active Low" - endchoice - - choice ESP_HOSTED_SPI_DATAREADY__GPIO_CONFIG - bool "DataReady GPIO Config" - default ESP_HOSTED_DR_ACTIVE_HIGH - - config ESP_HOSTED_DR_ACTIVE_HIGH - bool "DR: Active High" - config ESP_HOSTED_DR_ACTIVE_LOW - bool "DR: Active Low" - endchoice - - choice ESP_HOSTED_SPI_RESET_GPIO_CONFIG - bool "Reset GPIO Config" - default ESP_HOSTED_SPI_RESET_ACTIVE_HIGH - help - "If Active High, High->Low->High will trigger reset (Low will trigger reset) - If Active Low, Low->High->Low will trigger reset (High will trigger reset)" - - config ESP_HOSTED_SPI_RESET_ACTIVE_HIGH - bool "RESET: Active High" - config ESP_HOSTED_SPI_RESET_ACTIVE_LOW - bool "RESET: Active Low" - endchoice - - config ESP_HOSTED_SPI_HSPI_GPIO_MOSI - depends on ESP_HOSTED_SPI_HSPI - int "GPIO pin for Host MOSI" - default 14 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 - default 23 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 - default 13 if IDF_TARGET_ESP32 - default 11 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 - default 5 if IDF_TARGET_ESP32H2 - default 7 - help - SPI controller Host MOSI - - config ESP_HOSTED_SPI_HSPI_GPIO_MISO - depends on ESP_HOSTED_SPI_HSPI - int "GPIO pin for Host MISO" - default 15 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 - default 22 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 - default 12 if IDF_TARGET_ESP32 - default 13 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 - default 0 if IDF_TARGET_ESP32H2 - default 2 - help - SPI controller Host MISO - - config ESP_HOSTED_SPI_HSPI_GPIO_CLK - depends on ESP_HOSTED_SPI_HSPI - int "GPIO pin for Host CLK" - default 18 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 - default 33 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 - default 14 if IDF_TARGET_ESP32 - default 12 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 - default 4 if IDF_TARGET_ESP32H2 - default 6 - help - SPI controller Host CLK - - config ESP_HOSTED_SPI_HSPI_GPIO_CS - depends on ESP_HOSTED_SPI_HSPI - int "GPIO pin for Host CS" - default 19 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 - default 4 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 - default 15 if IDF_TARGET_ESP32 - default 10 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 - default 1 if IDF_TARGET_ESP32H2 - default 10 - help - SPI controller Host CS - - config ESP_HOSTED_SPI_VSPI_GPIO_MOSI - depends on ESP_HOSTED_SPI_VSPI - int "GPIO pin for Host MOSI" - default 23 - help - SPI controller Host MOSI - - config ESP_HOSTED_SPI_VSPI_GPIO_MISO - depends on ESP_HOSTED_SPI_VSPI - int "GPIO pin for Host MISO" - default 19 - help - SPI controller Host MISO - - config ESP_HOSTED_SPI_VSPI_GPIO_CLK - depends on ESP_HOSTED_SPI_VSPI - int "GPIO pin for Host CLK" - default 18 - help - SPI controller Host CLK - - config ESP_HOSTED_SPI_VSPI_GPIO_CS - depends on ESP_HOSTED_SPI_VSPI - int "GPIO pin for Host CS" - default 5 - help - SPI controller Host CS - - config ESP_HOSTED_SPI_GPIO_MOSI - int - default ESP_HOSTED_SPI_VSPI_GPIO_MOSI if ESP_HOSTED_SPI_VSPI - default ESP_HOSTED_SPI_HSPI_GPIO_MOSI - - config ESP_HOSTED_SPI_GPIO_MISO - int - default ESP_HOSTED_SPI_VSPI_GPIO_MISO if ESP_HOSTED_SPI_VSPI - default ESP_HOSTED_SPI_HSPI_GPIO_MISO - - config ESP_HOSTED_SPI_GPIO_CLK - int - default ESP_HOSTED_SPI_VSPI_GPIO_CLK if ESP_HOSTED_SPI_VSPI - default ESP_HOSTED_SPI_HSPI_GPIO_CLK - - config ESP_HOSTED_SPI_GPIO_CS - int - default ESP_HOSTED_SPI_VSPI_GPIO_CS if ESP_HOSTED_SPI_VSPI - default ESP_HOSTED_SPI_HSPI_GPIO_CS - - config ESP_HOSTED_SPI_GPIO_HANDSHAKE - int "GPIO pin for handshake" - default 16 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 - default 21 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 - default 3 if IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C6 - default 17 if IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32S2 - default 22 if IDF_TARGET_ESP32H2 - default 26 - help - GPIO pin to use for handshake with other spi controller - - config ESP_HOSTED_SPI_GPIO_DATA_READY - int "GPIO pin for data ready interrupt" - default 17 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 - default 32 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 - default 12 if IDF_TARGET_ESP32H2 - default 4 - help - GPIO pin for indicating host that SPI slave has data to be read by host - - config ESP_HOSTED_SPI_GPIO_RESET_SLAVE - int "GPIO pin for Reseting slave ESP" - default 54 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 - default 53 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 - default 10 if IDF_TARGET_ESP32H2 - default 5 - help - GPIO pin for Resetting ESP SPI slave device. Should be connected to RST/EN of ESP SPI slave device. - endmenu - -ESP32XX_SPI_CLK_FREQ_RANGE_MIN := 1 -ESP32_SPI_CLK_FREQ_RANGE_MAX := 10 -ESP32C6_SPI_CLK_FREQ_RANGE_MAX := 40 -ESP32XX_SPI_CLK_FREQ_RANGE_MAX := 40 - - config ESP_HOSTED_SPI_FREQ_ESP32 - depends on SLAVE_IDF_TARGET_ESP32 - int "SPI Clock Freq (MHz)" - default 10 - range $(ESP32XX_SPI_CLK_FREQ_RANGE_MIN) $(ESP32_SPI_CLK_FREQ_RANGE_MAX) - help - "Optimize SPI CLK by increasing till host practically can support" - - config ESP_HOSTED_SPI_FREQ_ESP32C6 - depends on SLAVE_IDF_TARGET_ESP32C6 - int "SPI Clock Freq (MHz)" - default 40 if IDF_TARGET_ESP32P4 #config for ESP32-P4 Function_EV_Board - default 26 - range $(ESP32XX_SPI_CLK_FREQ_RANGE_MIN) $(ESP32C6_SPI_CLK_FREQ_RANGE_MAX) - help - "Optimize SPI CLK by increasing till host practically can support" - - config ESP_HOSTED_SPI_FREQ_ESP32XX - depends on SLAVE_IDF_TARGET_ESP32C2 || SLAVE_IDF_TARGET_ESP32C3 || SLAVE_IDF_TARGET_ESP32S2 || SLAVE_IDF_TARGET_ESP32S3 || SLAVE_IDF_TARGET_ESP32C5 - int "SPI Clock Freq" - default 40 if SLAVE_IDF_TARGET_ESP32C2 || SLAVE_IDF_TARGET_ESP32C3 || SLAVE_IDF_TARGET_ESP32S2 || SLAVE_IDF_TARGET_ESP32S3 || SLAVE_IDF_TARGET_ESP32C5 - range $(ESP32XX_SPI_CLK_FREQ_RANGE_MIN) $(ESP32XX_SPI_CLK_FREQ_RANGE_MAX) - help - "Optimize SPI CLK by increasing till host practically can support" - - config ESP_HOSTED_SPI_CLK_FREQ - int - default ESP_HOSTED_SPI_FREQ_ESP32 if SLAVE_IDF_TARGET_ESP32 - default ESP_HOSTED_SPI_FREQ_ESP32C6 if SLAVE_IDF_TARGET_ESP32C6 - default ESP_HOSTED_SPI_FREQ_ESP32XX if SLAVE_IDF_TARGET_ESP32C2 || SLAVE_IDF_TARGET_ESP32C3 || SLAVE_IDF_TARGET_ESP32S2 || SLAVE_IDF_TARGET_ESP32S3 || SLAVE_IDF_TARGET_ESP32C5 - help - "Optimize SPI CLK by increasing till host practically can support" - - config ESP_HOSTED_SPI_TX_Q_SIZE - int "ESP to Host SPI queue size" - default 20 - help - Very small tx queue will lower ESP -- SPI --> Host data rate - - config ESP_HOSTED_SPI_RX_Q_SIZE - int "Host to ESP SPI queue size" - default 20 - help - Very small RX queue will lower ESP <-- SPI -- Host data rate - - endmenu - - menu "Hosted SDIO Configuration" - depends on ESP_HOSTED_SDIO_HOST_INTERFACE - - choice ESP_HOSTED_SDIO_RESET_GPIO_CONFIG - bool "RESET GPIO Config" - default ESP_HOSTED_SDIO_RESET_ACTIVE_HIGH - help - "If Active High, High->Low->High will trigger reset (Low will trigger reset) - If Active Low, Low->High->Low will trigger reset (High will trigger reset)" - - config ESP_HOSTED_SDIO_RESET_ACTIVE_HIGH - bool "RESET: Active High" - config ESP_HOSTED_SDIO_RESET_ACTIVE_LOW - bool "RESET: Active Low" - endchoice - - choice ESP_HOSTED_SDIO_RX_OPTIMIZATION - bool "SDIO Receive Optimization" - default ESP_HOSTED_SDIO_OPTIMIZATION_RX_STREAMING_MODE - - config ESP_HOSTED_SDIO_OPTIMIZATION_RX_NONE - bool "No optimization" - help - Use SDIO as is, with no optimizations. - - config ESP_HOSTED_SDIO_OPTIMIZATION_RX_MAX_SIZE - bool "Always Rx Max Packet size" - help - Always read max Rx Packet Size (512 * 3 bytes). This saves one SDIO - transaction (get Rx Packet Size) when reading data from slave by - always transferring a fixed amount of data. Extra data at end of valid - packet data is discarded. - - config ESP_HOSTED_SDIO_OPTIMIZATION_RX_STREAMING_MODE - bool "Use Streaming Mode" - help - Receive a stream of queued data from the slave, made up of one or more - packets of data. Host extracts packets from the stream. This improves - SDIO read performance by doing one large read transaction instead of - many smaller read transactions for each packet. - (Note: requires slave to support streaming mode.) - - endchoice - - choice - prompt "SDIO Slot To Use" - default ESP_HOSTED_SDIO_SLOT_1 - help - On the ESP32-P4 EV Board: - - Slot 0 connects to the MicroSD Card slot - - Slot 1 connects to the on-board ESP32-C6 - For the ESP32, Slot 0 is usually occupied by SPI Flash and not usable for SDIO. - For the ESP32-P4, Slot 0 is IOMUXed and GPIO values cannot be changed - - config ESP_HOSTED_SDIO_SLOT_0 - depends on IDF_TARGET_ESP32P4 || IDF_TARGET_ESP32S3 - bool "Slot 0" - - config ESP_HOSTED_SDIO_SLOT_1 - bool "Slot 1" - endchoice - - config ESP_HOSTED_SDIO_SLOT - int - default 0 if ESP_HOSTED_SDIO_SLOT_0 - default 1 if ESP_HOSTED_SDIO_SLOT_1 - - config ESP_HOSTED_SD_PWR_CTRL_LDO_INTERNAL_IO - depends on SOC_SDMMC_IO_POWER_EXTERNAL - bool "SDIO power supply comes from internal LDO IO (READ HELP!)" - default n - help - Only needed when the SDIO module is connected to specific IO pins which can be used for high-speed SDIO. - Please read the schematic first and check if the SD VDD is connected to any internal LDO output. - Unselect this option if the SDIO is powered by an external power supply. - For ESP32-P4 EV Board, SDMMC slot 0 may require internal LDO output. - - config ESP_HOSTED_SD_PWR_CTRL_LDO_IO_ID - depends on SOC_SDMMC_IO_POWER_EXTERNAL && ESP_HOSTED_SD_PWR_CTRL_LDO_INTERNAL_IO - int "LDO ID" - default 4 if IDF_TARGET_ESP32P4 - help - Please check your schematic first and input your LDO ID. - - choice - prompt "SDIO Bus Width" - default ESP_HOSTED_SDIO_4_BIT_BUS - help - Select the SDIO Bus Width to use - - config ESP_HOSTED_SDIO_4_BIT_BUS - bool "4 Bits" - - config ESP_HOSTED_SDIO_1_BIT_BUS - bool "1 Bit" - endchoice - - config ESP_HOSTED_SDIO_BUS_WIDTH - int - default 1 if ESP_HOSTED_SDIO_1_BIT_BUS - default 4 - -ESP32_SDIO_CLK_FREQ_KHZ_RANGE_MIN := 400 -ESP32_SDIO_CLK_FREQ_KHZ_RANGE_MAX := 40000 -ESP32XX_SDIO_CLK_FREQ_KHZ_RANGE_MIN := 400 -ESP32XX_SDIO_CLK_FREQ_KHZ_RANGE_MAX := 50000 - - config ESP_HOSTED_SDIO_CLOCK_FREQ_KHZ - int "SDIO Clock Freq (in kHz)" - default 40000 - range $(ESP32_SDIO_CLK_FREQ_KHZ_RANGE_MIN) $(ESP32_SDIO_CLK_FREQ_KHZ_RANGE_MAX) if IDF_TARGET_ESP32 - range $(ESP32XX_SDIO_CLK_FREQ_KHZ_RANGE_MIN) $(ESP32XX_SDIO_CLK_FREQ_KHZ_RANGE_MAX) if IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32P4 - help - "Optimize SDIO CLK by increasing till host practically can support. Clock frequency for ESP32-P4 as host <= 40MHz" - - config ESP_HOSTED_CUSTOM_SDIO_PINS - bool "Use custom SDIO GPIO pins" - default n - help - Enable this to use custom GPIO pins for SDIO on ESP32-P4 and ESP32-S3. - ESP32 has fixed GPIOs for SDIO host (Do not use custom GPIOs) - ESP32-P4 slot 0 is fixed GPIOs for SDIO host (Do not use custom GPIOs) - ESP32-P4 slot 1, ESP32-S3 slot 0/1 is flexible GPIOs for SDIO host (Flexible GPIOs) - - config ESP_HOSTED_SDIO_CMD_GPIO_RANGE_MIN - int - default 4 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 - default 19 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 - default 15 if IDF_TARGET_ESP32 - default 0 - - config ESP_HOSTED_SDIO_CMD_GPIO_RANGE_MAX - int - default 4 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 - default 19 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 - default 15 if IDF_TARGET_ESP32 - default 100 - - config ESP_HOSTED_SDIO_CLK_GPIO_RANGE_MIN - int - default 33 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 - default 18 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 - default 14 if IDF_TARGET_ESP32 - default 0 - - config ESP_HOSTED_SDIO_CLK_GPIO_RANGE_MAX - int - default 33 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 - default 18 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 - default 14 if IDF_TARGET_ESP32 - default 100 - - config ESP_HOSTED_SDIO_D0_GPIO_RANGE_MIN - int - default 20 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 - default 14 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 - default 2 if IDF_TARGET_ESP32 - default 0 - - config ESP_HOSTED_SDIO_D0_GPIO_RANGE_MAX - int - default 20 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 - default 14 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 - default 2 if IDF_TARGET_ESP32 - default 100 - - config ESP_HOSTED_SDIO_D1_GPIO_RANGE_MIN - int - default 23 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 - default 15 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 - default 4 if IDF_TARGET_ESP32 - default 0 - - config ESP_HOSTED_SDIO_D1_GPIO_RANGE_MAX - int - default 23 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 - default 15 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 - default 4 if IDF_TARGET_ESP32 - default 100 - - config ESP_HOSTED_SDIO_D2_GPIO_RANGE_MIN - int - default 21 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 - default 16 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 - default 12 if IDF_TARGET_ESP32 - default 0 - - config ESP_HOSTED_SDIO_D2_GPIO_RANGE_MAX - int - default 21 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 - default 16 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 - default 12 if IDF_TARGET_ESP32 - default 100 - - config ESP_HOSTED_SDIO_D3_GPIO_RANGE_MIN - int - default 22 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 - default 17 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 - default 13 if IDF_TARGET_ESP32 - default 0 - - config ESP_HOSTED_SDIO_D3_GPIO_RANGE_MAX - int - default 22 if !ESP_HOSTED_CUSTOM_SDIO_PINS && SLAVE_IDF_TARGET_ESP32C5 && IDF_TARGET_ESP32P4 - default 17 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 - default 13 if IDF_TARGET_ESP32 - default 100 - - config ESP_HOSTED_SDIO_RESET_SLAVE_GPIO_MIN - int - default 53 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 - default 54 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 - default 42 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32S3 - default 5 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32 - default 0 - help - GPIO pin for Resetting ESP SDIO slave device. Should be connected to RST/EN of ESP SDIO slave device. - - config ESP_HOSTED_SDIO_RESET_SLAVE_GPIO_MAX - int - default 53 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 - default 54 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32P4 - default 42 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32S3 - default 5 if !ESP_HOSTED_CUSTOM_SDIO_PINS && IDF_TARGET_ESP32 - default 100 - -### *START* GPIO SDIO pin configurations for Slot 0 and 1 - config ESP_HOSTED_PRIV_SDIO_PIN_CMD_SLOT_0 - depends on ESP_HOSTED_SDIO_SLOT_0 - int "CMD GPIO number" - default 47 if IDF_TARGET_ESP32S3 - range 44 44 if IDF_TARGET_ESP32P4 - range 15 15 if IDF_TARGET_ESP32 - help - "Value can only be configured for some targets. Displayed always for reference." - - config ESP_HOSTED_PRIV_SDIO_PIN_CMD_SLOT_1 - depends on ESP_HOSTED_SDIO_SLOT_1 - int "CMD GPIO number" - default 47 if IDF_TARGET_ESP32S3 - default 4 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 - default 19 if IDF_TARGET_ESP32P4 - default 15 if IDF_TARGET_ESP32 - range ESP_HOSTED_SDIO_CMD_GPIO_RANGE_MIN ESP_HOSTED_SDIO_CMD_GPIO_RANGE_MAX - help - CMD GPIO pin for SDIO. Range enforced dynamically based on slave target to ensure IOMUX compliance. - Enable 'Use custom SDIO GPIO pins' to disable range restrictions. - - config ESP_HOSTED_PRIV_SDIO_PIN_CLK_SLOT_0 - depends on ESP_HOSTED_SDIO_SLOT_0 - int "CLK GPIO number" - default 19 if IDF_TARGET_ESP32S3 - range 43 43 if IDF_TARGET_ESP32P4 - range 14 14 if IDF_TARGET_ESP32 - help - "Value can only be configured for some targets. Displayed always for reference." - - config ESP_HOSTED_PRIV_SDIO_PIN_CLK_SLOT_1 - depends on ESP_HOSTED_SDIO_SLOT_1 - int "CLK GPIO number" - default 19 if IDF_TARGET_ESP32S3 - default 33 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 - default 18 if IDF_TARGET_ESP32P4 - default 14 if IDF_TARGET_ESP32 - range ESP_HOSTED_SDIO_CLK_GPIO_RANGE_MIN ESP_HOSTED_SDIO_CLK_GPIO_RANGE_MAX - help - CLK GPIO pin for SDIO. Range enforced dynamically based on slave target to ensure IOMUX compliance. - Enable 'Use custom SDIO GPIO pins' to disable range restrictions. - - config ESP_HOSTED_PRIV_SDIO_PIN_D0_SLOT_0 - depends on ESP_HOSTED_SDIO_SLOT_0 - int "D0 GPIO number" - default 13 if IDF_TARGET_ESP32S3 - range 39 39 if IDF_TARGET_ESP32P4 - range 2 2 if IDF_TARGET_ESP32 - help - "Value can only be configured for some targets. Displayed always for reference." - - config ESP_HOSTED_PRIV_SDIO_PIN_D0_SLOT_1 - depends on ESP_HOSTED_SDIO_SLOT_1 - int "D0 GPIO number" - default 13 if IDF_TARGET_ESP32S3 - default 20 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 - default 14 if IDF_TARGET_ESP32P4 - default 2 if IDF_TARGET_ESP32 - range ESP_HOSTED_SDIO_D0_GPIO_RANGE_MIN ESP_HOSTED_SDIO_D0_GPIO_RANGE_MAX - help - D0 GPIO pin for SDIO. Range enforced dynamically based on slave target to ensure IOMUX compliance. - Enable 'Use custom SDIO GPIO pins' to disable range restrictions. - - if ESP_HOSTED_SDIO_4_BIT_BUS - config ESP_HOSTED_PRIV_SDIO_PIN_D1_4BIT_BUS_SLOT_0 - depends on ESP_HOSTED_SDIO_SLOT_0 - int "D1 GPIO number" - default 35 if IDF_TARGET_ESP32S3 - range 40 40 if IDF_TARGET_ESP32P4 - range 4 4 if IDF_TARGET_ESP32 - help - "Value can only be configured for some targets. Displayed always for reference." - - config ESP_HOSTED_PRIV_SDIO_PIN_D1_4BIT_BUS_SLOT_1 - depends on ESP_HOSTED_SDIO_SLOT_1 - int "D1 GPIO number" - default 35 if IDF_TARGET_ESP32S3 - default 23 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 - default 15 if IDF_TARGET_ESP32P4 - default 4 if IDF_TARGET_ESP32 - range ESP_HOSTED_SDIO_D1_GPIO_RANGE_MIN ESP_HOSTED_SDIO_D1_GPIO_RANGE_MAX - help - D1 GPIO pin for SDIO. Range enforced dynamically based on slave target to ensure IOMUX compliance. - Enable 'Use custom SDIO GPIO pins' to disable range restrictions. - - config ESP_HOSTED_PRIV_SDIO_PIN_D2_4BIT_BUS_SLOT_0 - depends on ESP_HOSTED_SDIO_SLOT_0 - int "D2 GPIO number" - default 20 if IDF_TARGET_ESP32S3 - range 41 41 if IDF_TARGET_ESP32P4 - range 12 12 if IDF_TARGET_ESP32 - help - "Value can only be configured for some targets. Displayed always for reference." - - config ESP_HOSTED_PRIV_SDIO_PIN_D2_4BIT_BUS_SLOT_1 - depends on ESP_HOSTED_SDIO_SLOT_1 - int "D2 GPIO number" - default 20 if IDF_TARGET_ESP32S3 - default 21 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 - default 16 if IDF_TARGET_ESP32P4 - default 12 if IDF_TARGET_ESP32 - range ESP_HOSTED_SDIO_D2_GPIO_RANGE_MIN ESP_HOSTED_SDIO_D2_GPIO_RANGE_MAX - help - D2 GPIO pin for SDIO. Range enforced dynamically based on slave target to ensure IOMUX compliance. - Enable 'Use custom SDIO GPIO pins' to disable range restrictions. - - config ESP_HOSTED_PRIV_SDIO_PIN_D3_4BIT_BUS_SLOT_0 - depends on ESP_HOSTED_SDIO_SLOT_0 - int "D3 GPIO number" - default 9 if IDF_TARGET_ESP32S3 - range 42 42 if IDF_TARGET_ESP32P4 - range 13 13 if IDF_TARGET_ESP32 - help - "Value can only be configured for some targets. Displayed always for reference." - - config ESP_HOSTED_PRIV_SDIO_PIN_D3_4BIT_BUS_SLOT_1 - depends on ESP_HOSTED_SDIO_SLOT_1 - int "D3 GPIO number" - default 9 if IDF_TARGET_ESP32S3 - default 22 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 - default 17 if IDF_TARGET_ESP32P4 - default 13 if IDF_TARGET_ESP32 - range ESP_HOSTED_SDIO_D3_GPIO_RANGE_MIN ESP_HOSTED_SDIO_D3_GPIO_RANGE_MAX - help - D3 GPIO pin for SDIO. Range enforced dynamically based on slave target to ensure IOMUX compliance. - Enable 'Use custom SDIO GPIO pins' to disable range restrictions. - endif - - if !ESP_HOSTED_SDIO_4_BIT_BUS - config ESP_HOSTED_PRIV_SDIO_PIN_D1_1BIT_BUS_SLOT_0 - depends on ESP_HOSTED_SDIO_SLOT_0 - int "D1 GPIO number (Interrupt Line)" - default 35 if IDF_TARGET_ESP32S3 - range 40 40 if IDF_TARGET_ESP32P4 - range 4 4 if IDF_TARGET_ESP32 - help - "Value can only be configured for some targets. Displayed always for reference." - config ESP_HOSTED_PRIV_SDIO_PIN_D1_1BIT_BUS_SLOT_1 - depends on ESP_HOSTED_SDIO_SLOT_1 - int "D1 GPIO number (Interrupt Line)" - default 35 if IDF_TARGET_ESP32S3 - default 23 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 - default 15 if IDF_TARGET_ESP32P4 - default 4 if IDF_TARGET_ESP32 - range ESP_HOSTED_SDIO_D1_GPIO_RANGE_MIN ESP_HOSTED_SDIO_D1_GPIO_RANGE_MAX - help - D1 GPIO pin for SDIO. Range enforced dynamically based on slave target to ensure IOMUX compliance. - Enable 'Use custom SDIO GPIO pins' to disable range restrictions. - endif - - config ESP_HOSTED_SDIO_GPIO_RESET_SLAVE - int "GPIO pin for Reseting slave ESP" - range ESP_HOSTED_SDIO_RESET_SLAVE_GPIO_MIN ESP_HOSTED_SDIO_RESET_SLAVE_GPIO_MAX - default 53 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 - default 54 if IDF_TARGET_ESP32P4 - default 42 if IDF_TARGET_ESP32S3 - default 5 if IDF_TARGET_ESP32 - help - GPIO pin for Resetting ESP SDIO slave device. Should be connected to RST/EN of ESP SDIO slave device. - -### *END* GPIO SDIO pin configurations for Slot 0 and 1 - - config ESP_HOSTED_SDIO_PIN_CMD - int - default ESP_HOSTED_PRIV_SDIO_PIN_CMD_SLOT_0 if ESP_HOSTED_SDIO_SLOT_0 - default ESP_HOSTED_PRIV_SDIO_PIN_CMD_SLOT_1 if ESP_HOSTED_SDIO_SLOT_1 - - config ESP_HOSTED_SDIO_PIN_CLK - int - default ESP_HOSTED_PRIV_SDIO_PIN_CLK_SLOT_0 if ESP_HOSTED_SDIO_SLOT_0 - default ESP_HOSTED_PRIV_SDIO_PIN_CLK_SLOT_1 if ESP_HOSTED_SDIO_SLOT_1 - - config ESP_HOSTED_SDIO_PIN_D0 - int - default ESP_HOSTED_PRIV_SDIO_PIN_D0_SLOT_0 if ESP_HOSTED_SDIO_SLOT_0 - default ESP_HOSTED_PRIV_SDIO_PIN_D0_SLOT_1 if ESP_HOSTED_SDIO_SLOT_1 - - if ESP_HOSTED_SDIO_4_BIT_BUS - config ESP_HOSTED_SDIO_PRIV_PIN_D1_4BIT_BUS - int - default ESP_HOSTED_PRIV_SDIO_PIN_D1_4BIT_BUS_SLOT_0 if ESP_HOSTED_SDIO_SLOT_0 - default ESP_HOSTED_PRIV_SDIO_PIN_D1_4BIT_BUS_SLOT_1 if ESP_HOSTED_SDIO_SLOT_1 - - config ESP_HOSTED_SDIO_PIN_D2 - int - default ESP_HOSTED_PRIV_SDIO_PIN_D2_4BIT_BUS_SLOT_0 if ESP_HOSTED_SDIO_SLOT_0 - default ESP_HOSTED_PRIV_SDIO_PIN_D2_4BIT_BUS_SLOT_1 if ESP_HOSTED_SDIO_SLOT_1 - - config ESP_HOSTED_SDIO_PIN_D3 - int - default ESP_HOSTED_PRIV_SDIO_PIN_D3_4BIT_BUS_SLOT_0 if ESP_HOSTED_SDIO_SLOT_0 - default ESP_HOSTED_PRIV_SDIO_PIN_D3_4BIT_BUS_SLOT_1 if ESP_HOSTED_SDIO_SLOT_1 - endif - - if !ESP_HOSTED_SDIO_4_BIT_BUS - config ESP_HOSTED_SDIO_PRIV_PIN_D1_1BIT_BUS - int - default ESP_HOSTED_PRIV_SDIO_PIN_D1_1BIT_BUS_SLOT_0 if ESP_HOSTED_SDIO_SLOT_0 - default ESP_HOSTED_PRIV_SDIO_PIN_D1_1BIT_BUS_SLOT_1 if ESP_HOSTED_SDIO_SLOT_1 - endif - - config ESP_HOSTED_SDIO_PIN_D1 - int - default ESP_HOSTED_SDIO_PRIV_PIN_D1_4BIT_BUS if ESP_HOSTED_SDIO_4_BIT_BUS - default ESP_HOSTED_SDIO_PRIV_PIN_D1_1BIT_BUS if !ESP_HOSTED_SDIO_4_BIT_BUS - - config ESP_HOSTED_SDIO_TX_Q_SIZE - int "Host SDIO Tx queue size" - default 20 - help - Very small tx queue will lower data rate - - config ESP_HOSTED_SDIO_RX_Q_SIZE - int "Host SDIO Rx queue size" - default 20 - help - Very small RX queue will lower data rate - - config ESP_HOSTED_SDIO_CHECKSUM - bool "SDIO checksum ENABLE/DISABLE" - help - ENABLE/DISABLE software SDIO checksum - endmenu - - menu "SPI Half-duplex Configuration" - depends on ESP_HOSTED_SPI_HD_HOST_INTERFACE - - config ESP_HOSTED_SPI_HD_MODE - int "SPI Mode to use" - default 3 - range 0 3 - help - SPI Mode to use. The same mode must be used on both host and slave. - - choice ESP_HOSTED_SPI_HD_PRIV_INTERFACE_NUM_DATA_LINES - bool "Num Data Lines to use" - default ESP_HOSTED_SPI_HD_PRIV_INTERFACE_4_DATA_LINES - help - Number of Data Lines to use in the SPI HD interface - - config ESP_HOSTED_SPI_HD_PRIV_INTERFACE_4_DATA_LINES - bool "4 data lines" - - config ESP_HOSTED_SPI_HD_PRIV_INTERFACE_2_DATA_LINES - bool "2 data lines" - endchoice - - config ESP_HOSTED_SPI_HD_INTERFACE_NUM_DATA_LINES - int - default 4 if ESP_HOSTED_SPI_HD_PRIV_INTERFACE_4_DATA_LINES - default 2 if ESP_HOSTED_SPI_HD_PRIV_INTERFACE_2_DATA_LINES - - choice ESP_HOSTED_SPI_HD_RESET_GPIO_CONFIG - bool "RESET GPIO Config" - default ESP_HOSTED_SPI_HD_RESET_ACTIVE_HIGH - help - "If Active High, High->Low->High will trigger reset (Low will trigger reset) - If Active Low, Low->High->Low will trigger reset (High will trigger reset)" - - config ESP_HOSTED_SPI_HD_RESET_ACTIVE_HIGH - bool "RESET: Active High" - config ESP_HOSTED_SPI_HD_RESET_ACTIVE_LOW - bool "RESET: Active Low" - endchoice - - choice ESP_HOSTED_SPI_HD_DATAREADY_GPIO_CONFIG - bool "DataReady GPIO Config" - default ESP_HOSTED_SPI_HD_DR_ACTIVE_HIGH - - config ESP_HOSTED_SPI_HD_DR_ACTIVE_HIGH - bool "DR: Active High" - config ESP_HOSTED_SPI_HD_DR_ACTIVE_LOW - bool "DR: Active Low" - endchoice - - menu "Host GPIOs Config" - config ESP_HOSTED_SPI_HD_GPIO_CS - int "GPIO pin for Host CS" - default 10 if IDF_TARGET_ESP32S3 - default 4 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 - default 19 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 - default 1 if IDF_TARGET_ESP32H2 - default 15 - help - SPI Half-duplex controller Host CS - - config ESP_HOSTED_SPI_HD_GPIO_CLK - int "GPIO pin for Host CLK" - default 12 if IDF_TARGET_ESP32S3 - default 33 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 - default 18 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 - default 4 if IDF_TARGET_ESP32H2 - default 18 - help - SPI Half-duplex controller Host CLK - - config ESP_HOSTED_SPI_HD_GPIO_D0 - int "GPIO pin for Host D0" - default 11 if IDF_TARGET_ESP32S3 - default 23 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 - default 14 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 - default 5 if IDF_TARGET_ESP32H2 - default 2 - help - SPI Half-duplex controller Host D0 - - config ESP_HOSTED_SPI_HD_GPIO_D1 - int "GPIO pin for Host D1" - default 13 if IDF_TARGET_ESP32S3 - default 22 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 - default 15 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 - default 0 if IDF_TARGET_ESP32H2 - default 4 - help - SPI Half-duplex controller Host D1 - - config ESP_HOSTED_SPI_HD_GPIO_D2 - depends on ESP_HOSTED_SPI_HD_PRIV_INTERFACE_4_DATA_LINES - int "GPIO pin for Host D2" - default 14 if IDF_TARGET_ESP32S3 - default 20 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 - default 16 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 - default 2 if IDF_TARGET_ESP32H2 - default 12 - help - SPI Half-duplex controller Host D2 - - config ESP_HOSTED_SPI_HD_GPIO_D3 - depends on ESP_HOSTED_SPI_HD_PRIV_INTERFACE_4_DATA_LINES - int "GPIO pin for Host D3" - default 9 if IDF_TARGET_ESP32S3 - default 21 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 - default 17 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 - default 3 if IDF_TARGET_ESP32H2 - default 13 - help - SPI Half-duplex controller Host D3 - - config ESP_HOSTED_SPI_HD_GPIO_DATA_READY - int "GPIO pin for data ready interrupt" - default 4 if IDF_TARGET_ESP32S3 - default 32 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 - default 6 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 - default 12 if IDF_TARGET_ESP32H2 - default 8 - help - GPIO pin for indicating host that slave has data to be read by host - - config ESP_HOSTED_SPI_HD_GPIO_RESET_SLAVE - int "GPIO pin for Reseting slave ESP" - default 5 if IDF_TARGET_ESP32S3 - default 53 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C5 - default 54 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6 - default 10 if IDF_TARGET_ESP32H2 - default 5 - help - GPIO pin for Resetting ESP slave device. Should be connected to RST/EN of ESP SPI slave device. - endmenu - -ESP32XX_SPI_HD_CLK_FREQ_RANGE_MIN := 1 -ESP32_SPI_HD_CLK_FREQ_RANGE_MAX := 10 -ESP32C6_SPI_HD_CLK_FREQ_RANGE_MAX := 40 -ESP32XX_SPI_HD_CLK_FREQ_RANGE_MAX := 40 - - config ESP_HOSTED_SPI_HD_FREQ_ESP32C6 - depends on SLAVE_IDF_TARGET_ESP32C6 - int "SPI HD Clock Freq (MHz)" - default 40 if IDF_TARGET_ESP32P4 #config for ESP32-P4 Function_EV_Board - default 10 - range $(ESP32XX_SPI_HD_CLK_FREQ_RANGE_MIN) $(ESP32C6_SPI_HD_CLK_FREQ_RANGE_MAX) - help - "Optimize CLK by increasing till host practically can support" - - config ESP_HOSTED_SPI_HD_FREQ_ESP32XX - depends on SLAVE_IDF_TARGET_ESP32C2 || SLAVE_IDF_TARGET_ESP32C3 || SLAVE_IDF_TARGET_ESP32S2 || SLAVE_IDF_TARGET_ESP32S3 || SLAVE_IDF_TARGET_ESP32C5 - int "SPI HD Clock Freq (MHz)" - default 40 if SLAVE_IDF_TARGET_ESP32C2 || SLAVE_IDF_TARGET_ESP32C3 || SLAVE_IDF_TARGET_ESP32S2 || SLAVE_IDF_TARGET_ESP32S3 || SLAVE_IDF_TARGET_ESP32C5 - range $(ESP32XX_SPI_HD_CLK_FREQ_RANGE_MIN) $(ESP32XX_SPI_HD_CLK_FREQ_RANGE_MAX) - help - "Optimize CLK by increasing till host practically can support" - - config ESP_HOSTED_SPI_HD_CLK_FREQ - int - default ESP_HOSTED_SPI_HD_FREQ_ESP32C6 if SLAVE_IDF_TARGET_ESP32C6 - default ESP_HOSTED_SPI_HD_FREQ_ESP32XX if SLAVE_IDF_TARGET_ESP32C2 || SLAVE_IDF_TARGET_ESP32C3 || SLAVE_IDF_TARGET_ESP32S2 || SLAVE_IDF_TARGET_ESP32S3 || SLAVE_IDF_TARGET_ESP32C5 - help - "Optimize CLK by increasing till host practically can support" - - config ESP_HOSTED_SPI_HD_TX_Q_SIZE - int "ESP to Host queue size" - default 20 - help - Very small tx queue will lower ESP -- SPI Half-duplex --> Host data rate - - config ESP_HOSTED_SPI_HD_RX_Q_SIZE - int "Host to ESP queue size" - default 20 - help - Very small RX queue will lower ESP <-- SPI Half-duplex -- Host data rate - - config ESP_HOSTED_SPI_HD_CHECKSUM - bool "Checksum ENABLE/DISABLE" - default y - help - ENABLE/DISABLE software checksum - endmenu - - menu "UART Configuration" - depends on ESP_HOSTED_UART_HOST_INTERFACE - - choice ESP_HOSTED_UART_RESET_GPIO_CONFIG - bool "RESET GPIO Config" - default ESP_HOSTED_UART_RESET_ACTIVE_HIGH - help - "If Active High, High->Low->High will trigger reset (Low will trigger reset) - If Active Low, Low->High->Low will trigger reset (High will trigger reset)" - - config ESP_HOSTED_UART_RESET_ACTIVE_HIGH - bool "RESET: Active High" - config ESP_HOSTED_UART_RESET_ACTIVE_LOW - bool "RESET: Active Low" - endchoice - - config ESP_HOSTED_UART_PORT - int "UART Port to Use" - default 1 - range 0 2 if IDF_TARGET_ESP32 - range 0 1 if IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C5 || IDF_TARGET_ESP32C6 - range 0 2 if IDF_TARGET_ESP32C61 - range 0 1 if IDF_TARGET_ESP32S2 - range 0 2 if IDF_TARGET_ESP32S3 - range 0 4 if IDF_TARGET_ESP32P4 - help - Select UART Port to Use. Do not select the UART Port used for console output (if enabled) - - config ESP_HOSTED_UART_PIN_TX - int "TX GPIO number" - default 13 if IDF_TARGET_ESP32 - default 5 if IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C3 - default 14 if IDF_TARGET_ESP32C5 - default 21 if IDF_TARGET_ESP32C6 - default 5 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 - default 14 if IDF_TARGET_ESP32P4 - help - GPIO used for UART TX - - config ESP_HOSTED_UART_PIN_RX - int "RX GPIO number" - default 12 if IDF_TARGET_ESP32 - default 4 if IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C3 - default 13 if IDF_TARGET_ESP32C5 - default 20 if IDF_TARGET_ESP32C6 - default 4 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 - default 15 if IDF_TARGET_ESP32P4 - help - GPIO used for UART RX - - config ESP_HOSTED_UART_BAUDRATE - int "Baud Rate" - default 921600 - range 9600 3500000 - help - Baud Rate to Use. Make sure Hardware supports the rate. Standard rates are 9600, 19200, 38400, 57600, 115200, 460800, 921600 - - config ESP_HOSTED_UART_NUM_DATA_BITS - int "Number of Data Bits" - default 8 - range 5 8 - help - Number of Data Bits to use - - choice ESP_HOSTED_UART_PRIV_PARITY - bool "Parity" - - config ESP_HOSTED_UART_PRIV_PARITY_NONE - bool "None" - - config ESP_HOSTED_UART_PRIV_PARITY_EVEN - bool "Even" - - config ESP_HOSTED_UART_PRIV_PARITY_ODD - bool "Odd" - endchoice - - config ESP_HOSTED_UART_PARITY - int - default 0 if ESP_HOSTED_UART_PRIV_PARITY_NONE - default 1 if ESP_HOSTED_UART_PRIV_PARITY_EVEN - default 2 if ESP_HOSTED_UART_PRIV_PARITY_ODD - - choice ESP_HOSTED_UART_PRIV_STOP_BITS - bool "Number of Stop Bits" - - config ESP_HOSTED_UART_PRIV_STOP_BITS_1 - bool "1" - - config ESP_HOSTED_UART_PRIV_STOP_BITS_1_5 - bool "1.5" - - config ESP_HOSTED_UART_PRIV_STOP_BITS_2 - bool "2" - endchoice - - config ESP_HOSTED_UART_STOP_BITS - int - default 0 if ESP_HOSTED_UART_PRIV_STOP_BITS_1 - default 1 if ESP_HOSTED_UART_PRIV_STOP_BITS_1_5 - default 2 if ESP_HOSTED_UART_PRIV_STOP_BITS_2 - - config ESP_HOSTED_UART_GPIO_RESET_SLAVE - int "GPIO pin for Reseting slave ESP" - default 54 if IDF_TARGET_ESP32P4 - default 42 if IDF_TARGET_ESP32S3 - default 5 - help - GPIO pin for Resetting ESP SDIO slave device. Should be connected to RST/EN of ESP SDIO slave device. - - config ESP_HOSTED_UART_TX_Q_SIZE - int "Tx Queue Size" - default 5 - help - UART rates are low, so large queue sizes are not required - - config ESP_HOSTED_UART_RX_Q_SIZE - int "Rx Queue Size" - default 5 - help - UART rates are low, so large queue sizes are not required - - config ESP_HOSTED_UART_CHECKSUM - bool "UART checksum ENABLE/DISABLE" - default y - help - ENABLE/DISABLE software UART checksum - endmenu - - config ESP_HOSTED_GPIO_SLAVE_RESET_SLAVE - int - default ESP_HOSTED_SPI_GPIO_RESET_SLAVE if ESP_HOSTED_SPI_HOST_INTERFACE - default ESP_HOSTED_SDIO_GPIO_RESET_SLAVE if ESP_HOSTED_SDIO_HOST_INTERFACE - default ESP_HOSTED_SPI_HD_GPIO_RESET_SLAVE if ESP_HOSTED_SPI_HD_HOST_INTERFACE - default ESP_HOSTED_UART_GPIO_RESET_SLAVE if ESP_HOSTED_UART_HOST_INTERFACE - - config ESP_HOSTED_RESET_GPIO_ACTIVE_LOW - bool - default n if ESP_HOSTED_SDIO_RESET_ACTIVE_HIGH || ESP_HOSTED_SPI_RESET_ACTIVE_HIGH || ESP_HOSTED_SPI_HD_RESET_ACTIVE_HIGH || ESP_HOSTED_UART_RESET_ACTIVE_HIGH - default y if ESP_HOSTED_SDIO_RESET_ACTIVE_LOW || ESP_HOSTED_SPI_RESET_ACTIVE_LOW || ESP_HOSTED_SPI_HD_RESET_ACTIVE_LOW || ESP_HOSTED_UART_RESET_ACTIVE_LOW - - menu "Bluetooth Support" - - comment "Following options must be set before this option can be enabled" - depends on !BT_ENABLED || BT_CONTROLLER_ONLY || (BT_NIMBLE_ENABLED && (BT_NIMBLE_TRANSPORT_UART || BT_CONTROLLER_ENABLED)) || (BT_BLUEDROID_ENABLED && BT_CONTROLLER_ENABLED) - - comment "'Component config->Bluetooth' must be enabled" - depends on !BT_ENABLED - - comment "'Component config->Bluetooth->Host' must be enabled" - depends on BT_ENABLED && BT_CONTROLLER_ONLY - - comment "'Component config->Bluetooth->Controller' must be disabled" - depends on BT_ENABLED && BT_CONTROLLER_ENABLED - - comment "'Component config->Bluetooth->NimBLE Options->Host-controller Transport->Uart Transport' must be disabled" - depends on BT_NIMBLE_ENABLED && BT_NIMBLE_TRANSPORT_UART - - if BT_ENABLED && BT_BLUEDROID_ENABLED && !BT_CONTROLLER_ENABLED - config ESP_HOSTED_ENABLE_BT_BLUEDROID - bool "Enable Hosted Bluedroid Bluetooth support" - default n - help - Enable Bluetooth Support for Bluedroid via Hosted - - choice ESP_HOSTED_BLUEDROID_HCI_TYPE - bool "BT Bluedroid HCI Type" - default ESP_HOSTED_BLUEDROID_HCI_VHCI - depends on ESP_HOSTED_ENABLE_BT_BLUEDROID - help - Selects the HCI to use - - config ESP_HOSTED_BLUEDROID_HCI_VHCI - bool "VHCI" - help - Bluetooth data is sent through the selected transport layer - endchoice - endif - - if BT_ENABLED && BT_NIMBLE_ENABLED && !BT_CONTROLLER_ENABLED && !BT_NIMBLE_TRANSPORT_UART - config ESP_HOSTED_ENABLE_BT_NIMBLE - bool "Enable Hosted Nimble Bluetooth support" - default n - help - Enable Bluetooth Support via Hosted - - choice ESP_HOSTED_NIMBLE_HCI_TYPE - bool "BT Nimble HCI Type" - default ESP_HOSTED_NIMBLE_HCI_VHCI - depends on ESP_HOSTED_ENABLE_BT_NIMBLE - help - Selects the HCI to use - - config ESP_HOSTED_NIMBLE_HCI_VHCI - bool "VHCI" - help - Bluetooth data is sent through the selected transport layer - endchoice - endif - endmenu - - menu "Task defaults" - config ESP_HOSTED_RPC_TASK_STACK - int "RPC task stack size" - default 4096 - - config ESP_HOSTED_DFLT_TASK_STACK - int "Hosted default task size" - default 3072 - endmenu - - config ESP_HOSTED_USE_MEMPOOL - bool "Cache allocated memory like mempool - helps to reduce malloc calls" - default y - help - Cache allocated memory - reduces number of malloc calls - - config ESP_HOSTED_MAX_SIMULTANEOUS_SYNC_RPC_REQUESTS - int "Maximum number of simultaneous synchronous RPC Request" - default 5 - help - Sets the maximum number of simultaneous synchronous RPC Requests. - (Synchronous RPC Request: each sending task waits for the response.) - Usually, the host application may send up to 3 simultaneous RPC requests to the slave. - Increase this number if you need to send more simultaneous RPC requests. - Note: the slave will only process one RPC request (sync and async) at a time - - config ESP_HOSTED_MAX_SIMULTANEOUS_ASYNC_RPC_REQUESTS - int "Maximum number of simultaneous asynchronous RPC Request" - default 5 - help - Sets the maximum number of simultaneous asynchronous RPC Requests. - (Asynchronous RPC Request: each sending task registers a callback to get the response.) - Usually, the host application may send up to 3 simultaneous RPC requests to the slave. - Increase this number if you need to send more simultaneous RPC requests. - Note: the slave will only process one RPC request (sync and async) at a time - - menu "Debug Settings" - - config ESP_HOSTED_RAW_THROUGHPUT_TRANSPORT - bool "RawTP: Transport level throughput debug test" - default n - help - Find max transport performance which helps to assess stability of porting done - - choice ESP_HOSTED_RAW_THROUGHPUT_DIRECTION - bool "RawTP: Send data from:" - depends on ESP_HOSTED_RAW_THROUGHPUT_TRANSPORT - - config ESP_HOSTED_RAW_THROUGHPUT_TX_TO_SLAVE - bool "Host to Slave" - help - Sends data from Host to Slave - - config ESP_HOSTED_RAW_THROUGHPUT_RX_FROM_SLAVE - bool "Slave to Host" - help - Sends data from Slave to Slave - - config ESP_HOSTED_RAW_THROUGHPUT_BIDIRECTIONAL - bool "Bidirectional" - help - Sends data in both directions - endchoice - - config ESP_HOSTED_RAW_TP_HOST_TO_ESP_PKT_LEN - depends on ESP_HOSTED_RAW_THROUGHPUT_TRANSPORT - int "RawTP: Host to ESP packet size" - range 1 1500 - default 1460 - - config ESP_HOSTED_RAW_TP_REPORT_INTERVAL - depends on ESP_HOSTED_RAW_THROUGHPUT_TRANSPORT - int "RawTP: periodic duration to report stats accumulated" - default 5 - - config ESP_HOSTED_PKT_STATS - bool "Transport level packet stats" - default n - help - On comparing with slave packet stats helps to understand any packet loss at hosted - - endmenu - - menu "Data path options" - config ESP_HOSTED_HOST_TO_ESP_WIFI_DATA_THROTTLE - bool "Report WiFi queue utilization to host" - default y - help - Proactively drop Host->slave Wi-Fi data when Slave Wi-Fi is under load - Slave Wi-Fi may drop ingress bursty or higher than capacity packets. - To have synchronous way of packet dropped for application, - Host will throttle incoming data if the slave datapath Rx load is high - - config ESP_HOSTED_PRIV_WIFI_TX_SPI_HIGH_THRESHOLD - depends on ESP_HOSTED_HOST_TO_ESP_WIFI_DATA_THROTTLE && ESP_HOSTED_SPI_HOST_INTERFACE - int "High threshold to report host to drop data when wifi highly loaded" - range 0 100 - default 90 - help - Host will throttle incoming data if the slave datapath Rx load goes beyond this threshold - 0 value will disable this function - - config ESP_HOSTED_PRIV_WIFI_TX_SDIO_HIGH_THRESHOLD - depends on ESP_HOSTED_HOST_TO_ESP_WIFI_DATA_THROTTLE && ESP_HOSTED_SDIO_HOST_INTERFACE - int "High threshold to report host to drop data when wifi highly loaded" - range 0 100 - default 80 - help - Host will throttle incoming data if the slave datapath Rx load goes beyond this threshold - 0 value will disable this function - - config ESP_HOSTED_PRIV_WIFI_TX_SPI_HD_HIGH_THRESHOLD - depends on ESP_HOSTED_HOST_TO_ESP_WIFI_DATA_THROTTLE && ESP_HOSTED_SPI_HD_HOST_INTERFACE - int "High threshold to report host to drop data when wifi highly loaded" - range 0 100 - default 80 - help - Host will throttle incoming data if the slave datapath Rx load goes beyond this threshold - 0 value will disable this function - - config ESP_HOSTED_PRIV_WIFI_TX_UART_HIGH_THRESHOLD - depends on ESP_HOSTED_HOST_TO_ESP_WIFI_DATA_THROTTLE && ESP_HOSTED_UART_HOST_INTERFACE - int "High threshold to report host to drop data when wifi highly loaded" - range 0 100 - default 80 - help - Host will throttle incoming data if the slave datapath Rx load goes beyond this threshold - 0 value will disable this function - - config ESP_HOSTED_TO_WIFI_DATA_THROTTLE_HIGH_THRESHOLD - depends on ESP_HOSTED_HOST_TO_ESP_WIFI_DATA_THROTTLE - int - default ESP_HOSTED_PRIV_WIFI_TX_SPI_HIGH_THRESHOLD if ESP_HOSTED_SPI_HOST_INTERFACE - default ESP_HOSTED_PRIV_WIFI_TX_SDIO_HIGH_THRESHOLD if ESP_HOSTED_SDIO_HOST_INTERFACE - default ESP_HOSTED_PRIV_WIFI_TX_SPI_HD_HIGH_THRESHOLD if ESP_HOSTED_SPI_HD_HOST_INTERFACE - default ESP_HOSTED_PRIV_WIFI_TX_UART_HIGH_THRESHOLD if ESP_HOSTED_UART_HOST_INTERFACE - - config ESP_HOSTED_TO_WIFI_DATA_THROTTLE_LOW_THRESHOLD - depends on ESP_HOSTED_HOST_TO_ESP_WIFI_DATA_THROTTLE - int "Low threshold to report host to stop dropping data" - range 0 ESP_HOSTED_TO_WIFI_DATA_THROTTLE_HIGH_THRESHOLD - default 60 - help - Once the Wi-Fi is no more stressed, data throttling would be stopped, once slave Wi-Fi load - is lower than this threshold - endmenu - - config ESP_HOSTED_DECODE_WIFI_RESERVED_FIELD - bool "Copy Wi-Fi configuration reserved field values" - default n - help - ESP-IDF Wi-Fi structures contain reserved bitmask values. - Enable this option if you want to copy these values between host and co-processor. - It is usually safe to ignore these reserved values. - -endmenu diff --git a/resources/espressif__esp_hosted/LICENSE b/resources/espressif__esp_hosted/LICENSE deleted file mode 100644 index d645695..0000000 --- a/resources/espressif__esp_hosted/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/resources/espressif__esp_hosted/README.md b/resources/espressif__esp_hosted/README.md deleted file mode 100644 index 72695cd..0000000 --- a/resources/espressif__esp_hosted/README.md +++ /dev/null @@ -1,280 +0,0 @@ -# ESP-Hosted-MCU: Espressif SoCs as Communication Co-Processors - -[![Component Registry](https://components.espressif.com/components/espressif/esp_hosted/badge.svg)](https://components.espressif.com/components/espressif/esp_hosted) - -## 1 Introduction - -ESP-Hosted-MCU is an open-source solution that allows you to use Espressif Chipsets and modules as a communication co-processor. This solution provides wireless connectivity (Wi-Fi and Bluetooth) to the host microprocessor or microcontroller, enabling it to communicate with other devices. Additionally, the user has complete control over the co-processor's resources. - -This high-level block diagram shows ESP-Hosted's relationship with the host MCU and slave co-processor. - -ESP-Hosted - -For detailed design diagrams in Wi-Fi and Bluetooth, refer to the following design documents: - -- [WiFi Design](https://github.com/espressif/esp-hosted-mcu/blob/main/docs/wifi_design.md) -- [Bluetooth Design](https://github.com/espressif/esp-hosted-mcu/blob/main/docs/bluetooth_design.md) - -`esp-hosted-mcu` is dedicated for any host as MCU support. If you are interested in Linux as host, please refer to the [`esp-hosted`](https://github.com/espressif/esp-hosted) repository. - -## 2 Architecture - -##### Hosted Co-Processor -This is an ESP chip that provides Wi-Fi, Bluetooth, and other capabilities. It is also referred as `hosted-slave` interchangeably. - -##### Host MCU -This can be any generic microcontroller (MCU). We demonstrate any ESP as host. Using port layer, any host can act as host MCU. - -##### Communication -- Host extends the capabilities of the Hosted co-processor through Remote Procedure Calls (RPCs). The Host MCU sends these RPC commands to the Hosted co-processor using a reliable communication bus, like SPI, SDIO, or UART. The Hosted co-processor then handles the RPC and provides the requested functionality to the Host MCU. -- The data (network or Bluetooth) is packaged efficiently at the transport layer to minimize overhead and delays when passing between the Host and co-processor. -- This modular design allows any MCU to be used as the Host, and any ESP chip with Wi-Fi and/or Bluetooth to be used as the Hosted co-processor. The RPC calls can also be extended to provide any function required by the Host, as long as the co-processor can support it. - -## 3 Solution Flexibility - -- **Any MCU can be the host** - - You can evaluate ESP as an example host and then port ESP-Hosted to your desired MCU. -- **Any ESP chip can be the co-processor** - - Any Wi-Fi and/or Bluetooth capable ESP chipset can be chosen as co-processor - - Choose the co-processor device based on your product requirements. The [ESP Product Selector](https://www.espressif.com/en/products/socs) can help in this. -- **Flexible transport layer (SDIO, SPI, UART)** - - ESP-Hosted supports various communication interfaces between the host and the co-processor, allowing you to choose the most suitable one for your application. - - Any other new transport also could be added to the open source code -- **Complete control over co-processor's resources** - - The user is not limited to just using the co-processor for wireless connectivity. They have complete control over the co-processor's resources, allowing for a more flexible and powerful system. -- **Extensible RPC library** - - The Remote Procedure Call (RPC) used by ESP-Hosted can be extended to provide any function required by the Host, as long as the co-processor can support it. Currently, the essential [ESP-IDF](https://github.com/espressif/esp-idf) Wi-Fi functions have been implemented. - -## 4 Quick Demo with ESP32-P4-Function-EV-Board - -Impatient to test? We've got you covered! -The [ESP32-P4-Function-EV-Board](https://www.espressif.com/en/products/socs/esp32-p4) can be used as a host MCU with an on-board [ESP32-C6](https://www.espressif.com/en/products/socs/esp32-c6) as co-processor, already connected via SDIO as transport. -Prerequisite: You need to have an ESP32-P4-Function-EV-Board` - -> [!NOTE] -> If you have already set up ESP-IDF (version 5.3 or later), you can skip to [5 Source Code and Dependencies](#5-source-code-and-dependencies). - -### 4.1 Set-Up ESP-IDF - -- Windows - - Install and setup ESP-IDF on Windows as documented in the [Standard Setup of Toolchain for Windows](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/windows-setup.html). - - Use the ESP-IDF [Powershell Command Prompt](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/windows-setup.html#using-the-command-prompt) to move to expected - -- Linux or MacOS - - bash -```bash -bash docs/setup_esp_idf__latest_stable__linux_macos.sh -``` - - fish -```fish -fish docs/setup_esp_idf__latest_stable__linux_macos.fish -``` - -### 4.2 Set-Up P4 with C6 -The host, ESP32-P4, lacks native Wi-Fi/Bluetooth support. Our [Quick Demo](docs/esp32_p4_function_ev_board.md) will help you run iperf over P4--SDIO--C6. - -### 4.3 Don't Have ESP32-P4-Function-EV-Board? - -No worries if you don't have an ESP32-P4. In fact, most users don't. You can choose and use any two ESP chipsets/SoCs/Modules/DevKits. DevKits are convenient to use as they have GPIO headers already in place. From these two ESP chipsets, one would act as host and another as slave/co-processor. However, as these are not connected directly, you would need to manually connect some transport, which is explained later in the section [`Detailed Setup`](#7-detailed-setup). - -## 5 Source Code and Dependencies - -### 5.1 ESP-Hosted-MCU Source Code - -- ESP-Hosted-MCU code can be found at Espressif Registry Component [`esp_hosted` (ESP-Hosted)](https://components.espressif.com/components/espressif/esp_hosted) or GitHub repo at [`esp-hosted-mcu`](https://github.com/espressif/esp-hosted-mcu/) - -- ESP-Hosted repo clone is **not** required if you have ESP as host. - - Reason: [ESP component manager](https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-guides/tools/idf-component-manager.html) automatically clones esp-hosted component while building. -- However, For non-ESP host development, you can clone the repo using command: -```bash -git clone --recurse-submodules --depth 1 https://github.com/espressif/esp-hosted-mcu.git -``` - -### 5.2 Dependencies - -ESP-Hosted-MCU Solution is dependent on `ESP-IDF`, `esp_wifi_remote` and `protobuf-c` - -###### ESP-IDF - - [`ESP-IDF`](https://github.com/espressif/esp-idf) is the development framework for Espressif SoCs supported on Windows, Linux and macOS - - ESP-Hosted-MCU solution is based on ESP-IDF as base software. ESP chipsets as host and slave always tried to design such a way that ESP-IDF components are re-used. - - Although, We totally understand, host MCUs in case of non-ESP chipset may not desire to be dependent on ESP-IDF. The port layer is written to avoid suc dependencies. Some crucial ESP-IDF components could also be just copy-pasted to fast-track the non-ESP host development. - -###### Wi-Fi Remote - - [`esp_wifi_remote`](https://components.espressif.com/components/espressif/esp_wifi_remote) i.e. 'Wi-Fi Remote' is very thin interface made up of ESP-IDF Wi-Fi APIs with empty weak definitions. Real definitions for these APIs are provided by ESP-Hosted-MCU - - Wi-Fi Remote Code can be found at either [GitHub Repo](https://github.com/espressif/esp-wifi-remote/) or [Espressif Registry Component](https://components.espressif.com/components/espressif/esp_wifi_remote) - -###### Protobuf - - [`protobuf-c`](https://github.com/protobuf-c/protobuf-c) is data serialization framework provided by Google. RPC messages communicated in host and slave are protobuf encoded. - - It helps to avoid manual serialization or endien-ness conversion. - - Provides Flexibility for users to port the ESP-Hosted-MCU RPC framework in any protobuf supported programming language - - Code is checked-out as submodule at `common/protobuf-c` - -##### 5.2.1 How Dependencies Work Together (short explanation) -- RPC Request - Response - - Wi-Fi Remote is an API layer or interface that provides the standard ESP-IDF Wi-Fi calls to the application (`esp_wifi_init()`, etc.) - - Wi-Fi Remote forwards the Wi-Fi calls to ESP-Hosted, as ESP-Hosted 'implements' tha APIs provided by Wi-Fi Remote interface. - - ESP-Hosted host MCU creates RPC requests which are protobuf encoded and sends over the transport (SPI/SDIO etc) to the slave. - - Slave de-serialize the protobuf RPC request and response send back to host over transport, again with protobuf serialised. - - Responses received at transport returned to Wi-Fi Remote, which returns the reponses to the calling app at host - - To the app, it is as if it made a standard ESP-IDF Wi-Fi API call. -- RPC Event - - Asynchronous Wi-Fi events when subscribed, are sent by slave to host. - - These events terminate in standard ESP-IDF event loop on the host -- Please note, Only RPC i.e. control packets are serialised. Data Packets are never serialised as they do not need endien conversion. - -## 6 Decide the communication bus in between host and slave - -The communication bus is required to be setup correctly between host and slave. -We refer this as `transport medium` or simply `transport`. - -ESP-Hosted-MCU supports SPI/SDIO/UART transports. User can choose which transport to use. Choosing specific transport depends on factors: high performance, easy and quick to test, number of GPIOs used, or simply co-processor preference - -Below is chart for the transport medium comparison. - -Legends: - -- `FD` : Full duplex communication -- `HD` : Half duplex communication -- `BT` : Bluetooth -- `+2` in column `Num of GPIOs` - - There are two GPIOs additional applicable for all the transports - - (1) Co-Processor reset: Host needs one additional pin to connect to `RST`/`EN` pin of co-processor, to reset on bootup - - (2) Ground: Grounds of both chipsets need to be connected. - - If you use jumper cable connections, connect as many grounds as possible in between two boards for better noise cancellation. -- `Any_Slave` - - Co-processor suppored: ESP32, ESP32-C2, ESP32-C3, ESP32-C5, ESP32-C6, ESP32-S2, ESP32-S3 - - Classic ESP32 supports 'Classic BT', 'BLE 4.2' & 'BTDM' - - Rest all chipsets support BLE only. BLE version supported is 5.0+. Exact bluetooth versions could be refered from [ESP Product Selector Page](https://products.espressif.com/#/product-selector) -- `Dedicated platforms` - - Bluetooth uses dedicated platform, UART and Wi-Fi uses any other base transport - - In other platforms, Bluetooth and Wi-Fi re-use same platform and hence use less GPIOs and less complicated - - This transport combination allows Bluetooth to use dedicated uart transportt with additional 2 or 4 depending on hardware flow control. -- (S) : Shield box reading -- (O) : Over the air reading -- TBD : To be determined -- iperf : iperf2 with test resukts in mbps - -> [!NOTE] -> -> For the shield box readings maked with (S), full network set up explained in [Shield Box Test Setup](shield-box-test-setup.md) - -**Host can be any ESP chipset or any non-ESP MCU.** - -###### Hosted Transports table - -| Transport | Type | Num of GPIOs | Setup with | Co-processor supported | Host Tx iperf | Host Rx iperf | Remarks | -|:---------------:|:-----:|:------------:|:----------------:|:--------------:|:------------:|:-----------:|:--------------------------:| -| Standard SPI | FD | 6 | jumper or PCB | Any_Slave | udp: 24 tcp: 22 | udp: 25 tcp: 22| Simplest solution for quick test | -| Dual SPI | HD | 5 | jumper or PCB | Any_Slave [1] | udp: 32 tcp: 26 (O) | udp: 33 tcp: 25 (O) | Better throughput, but half duplex | -| Quad SPI | HD | 7 | PCB only | Any_Slave [1] | udp: 41 tcp: 29 (O) | udp: 42 tcp: 28 (O) | Due to signal integrity, PCB is mandatory | -| SDIO 1-Bit | HD | 4 | jumper or PCB | ESP32, ESP32-C6, ESP32-C5 [3] | TBD | TBD | Stepping stone for PCB based SDIO 4-bit | -| SDIO 4-Bit | HD | 6 | PCB only | ESP32, ESP32-C6, ESP32-C5 [3] | udp: 79.5 tcp: 53.4 (S) | udp: 68.1 tcp: 44 (S) | Highest performance | -| Only BT over UART | FD | 2 or 4 | jumper or PCB | Any_Slave | NA | NA | Dedicated Bluetooth over UART pins | -| UART | FD | 2 | jumper or PCB | Any_Slave | udp: 0.68 tcp: 0.67 (O) | udp: 0.68 tcp: 0.60 (O) | UART dedicated for BT & Wi-Fi [2] | -| Dedicated platforms | FD | Extra 2 or 4 | jumper or PCB | Any_Slave | NA | NA | UART dedicated for BT & Wi-Fi on any other transport | - -> [!NOTE] -> - [1] Dual/Quad SPI is not supported on ESP32 -> -> - [2] UART is only suitable for low throughput environments -> -> - [3] Currently in BETA support for ESP32-C5 (`--preview` in ESP-IDF master branch) - -With jumper cables, 'Standard SPI' and 'Dual SPI' solutions are easiest to evaluate, without much of hardware dependencies. SDIO 1-Bit can be tested with jumper cables, but it needs some additional hardware config, such as installation of external pull-up registers. - -In case case of dedicated platforms, Blutooth uses standard HCI over UART. In rest of cases, Bluetooth and Wi-Fi uses same transport and hence less GPIOs and less complicated. In shared mode, bluetooth runs as Hosted HCI (multiplexed mode) - -## 7 ESP-Hosted-MCU Header - -### 7.1 ESP Hosted header - -Host and slave always populate below header at the start of every frame, irrespective of actual or dummy data in payload. - -| Field | Type | Bits | Mandatory? | Description | -|----------------|----------|------|------------|-----------------------------------------------------------------------------| -| if_type | uint8_t | 4 | M | Interface type | -| if_num | uint8_t | 4 | M | Interface number | -| flags | uint8_t | 8 | M | Flags for additional information | -| len | uint16_t | 16 | M | Length of the payload | -| offset | uint16_t | 16 | M | Offset for the payload | -| checksum | uint16_t | 16 | M | Checksum for error detection (0 if checksum disabled) | -| seq_num | uint16_t | 16 | O | Sequence number for tracking packets (Useful in debugging) | -| throttle_cmd | uint8_t | 0 or 2 | O | Flow control command | -| reserved2 | uint8_t | 6 or 8 | M | Reserved bits | -| reserved3 | uint8_t | 8 | M | Reserved byte (union field) | -| hci\_pkt\_type or priv\_pkt\_type | uint8_t | 8 | M | Packet type for HCI interface (union field) | - -### 7.2 Interface Types - -Start of header states which type of frame is being carried. - -| Interface Type | Value | Description | -|----------------------|-------|--------------------------------------------------| -| ESP\_INVALID\_IF | 0 | Invalid interface | -| ESP\_STA\_IF | 1 | Station frame | -| ESP\_AP\_IF | 2 | SoftAP frame | -| ESP\_SERIAL\_IF | 3 | Control frame | -| ESP\_HCI\_IF | 4 | Bluetooth Hosted HCI frame | -| ESP\_PRIV\_IF | 5 | Private communication between slave and host | -| ESP\_TEST\_IF | 6 | Transport throughput test | -| ESP\_ETH\_IF | 7 | Invalid | -| ESP\_MAX\_IF | 8 | type mentioned in dummy or empty frame | - -## 8 Detailed Setup - -Once you decided the transport to use, this section should guide how to set this transport, with hardware connections, configurations and verification. Users can evaluate one transport first and then move to other. - -> [!IMPORTANT] -> -> [Design Considerations](https://github.com/espressif/esp-hosted-mcu/blob/main/docs/design_consideration.md) that could be referred to, before you stick to any transport option. Referring to these consideration would help to get you faster to solution, make your design stable and less error-prone. - - -Irrespective of transport chosen, following steps are needed, which are step-wise explained in each transport. - -1. Set-up the hosted-transport -2. Slave Flashing - - Slave project creation - - Slave configuration - - Slave flashing - - Slave logs -3. Host flashing - - Host project integration with ESP-IDF example - - Host configuration - - Host flashing - - Host logs - -- [**Standard SPI (Full duplex)**](https://github.com/espressif/esp-hosted-mcu/blob/main/docs/spi_full_duplex.md) - -- [**SPI - Dual / Quad Half Duplex**](https://github.com/espressif/esp-hosted-mcu/blob/main/docs/spi_half_duplex.md) - -- [**SDIO (1-Bit / 4-Bit)**](https://github.com/espressif/esp-hosted-mcu/blob/main/docs/sdio.md) - -- [**UART for Wi-Fi and Bluetooth**](https://github.com/espressif/esp-hosted-mcu/blob/main/docs/uart.md) - -## 9 Examples -Check [examples](https://github.com/espressif/esp-hosted-mcu/tree/main/examples) directory for sample applications using ESP-Hosted. - - `examples/host_bluedroid_ble_compatibility_test` - - host BlueDroid Bluetooth example to test the Bluetooth compatibility and mobile phones - - `examples/host_bluedroid_bt_hid_mouse_device` - - host BlueDroid Bluetooth example to show how to implement a Bluetooth HID device using the APIs provided by Classic Bluetooth HID profile - - `examples/host_bluedroid_host_only` - - host BlueDroid Bluetooth example Bluetooth Host using ESP-Hosted as HCI IO to the BT Controller - - `examples/host_nimble_bleprph_host_only_vhci` - - host NimBLE Bluetooth example without needing extra GPIOs for HCI transport - -## 10 Troubleshooting - -If you encounter issues with using ESP-Hosted, see the following guide: - -- [Troubleshooting Guide](https://github.com/espressif/esp-hosted-mcu/blob/main/docs/troubleshooting.md) - -## 11 References - -- [ESP Product Selector Page](https://products.espressif.com) -- [ESP-IDF Get Started Guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started) -- [ESP-IDF Wi-Fi API](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/network/esp_wifi.html) -- [ESP-IDF Iperf Example](https://github.com/espressif/esp-idf/tree/master/examples/wifi/iperf) -- [ESP-IDF NimBLE](https://github.com/espressif/esp-nimble) -- [ESP Component Registry](https://components.espressif.com) -- [Registry Component: esp\_wifi\_remote](https://components.espressif.com/components/espressif/esp_wifi_remote) -- [Registry Component: esp\_hosted](https://components.espressif.com/components/espressif/esp_hosted) diff --git a/resources/espressif__esp_hosted/common/esp_hosted_header.h b/resources/espressif__esp_hosted/common/esp_hosted_header.h deleted file mode 100644 index be13c3a..0000000 --- a/resources/espressif__esp_hosted/common/esp_hosted_header.h +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2025 Espressif Systems (Shanghai) PTE LTD -/* SPDX-License-Identifier: GPL-2.0-only OR Apache-2.0 */ - -#ifndef __ESP_HOSTED_HEADER__H -#define __ESP_HOSTED_HEADER__H - -struct esp_payload_header { - uint8_t if_type:4; - uint8_t if_num:4; - uint8_t flags; - uint16_t len; - uint16_t offset; - uint16_t checksum; - uint16_t seq_num; - uint8_t throttle_cmd:2; - uint8_t reserved2:6; - /* Position of union field has to always be last, - * this is required for hci_pkt_type */ - union { - uint8_t reserved3; - uint8_t hci_pkt_type; /* Packet type for HCI interface */ - uint8_t priv_pkt_type; /* Packet type for priv interface */ - }; - /* Do no add anything here */ -} __attribute__((packed)); - -/* ESP Payload Header Flags */ -#define MORE_FRAGMENT (1 << 0) - -#define H_ESP_PAYLOAD_HEADER_OFFSET sizeof(struct esp_payload_header) - -#endif diff --git a/resources/espressif__esp_hosted/common/esp_hosted_interface.h b/resources/espressif__esp_hosted/common/esp_hosted_interface.h deleted file mode 100644 index 7574a88..0000000 --- a/resources/espressif__esp_hosted/common/esp_hosted_interface.h +++ /dev/null @@ -1,30 +0,0 @@ -/* -* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD -* -* SPDX-License-Identifier: Apache-2.0 -*/ - -#ifndef __ESP_HOSTED_INTERFACE_H__ -#define __ESP_HOSTED_INTERFACE_H__ - -#ifdef __cplusplus -extern "C" { -#endif - -typedef enum { - ESP_INVALID_IF, - ESP_STA_IF, - ESP_AP_IF, - ESP_SERIAL_IF, - ESP_HCI_IF, - ESP_PRIV_IF, - ESP_TEST_IF, - ESP_ETH_IF, - ESP_MAX_IF, -} esp_hosted_if_type_t; - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/resources/espressif__esp_hosted/common/log/esp_hosted_log.h b/resources/espressif__esp_hosted/common/log/esp_hosted_log.h deleted file mode 100644 index 6ddc6cd..0000000 --- a/resources/espressif__esp_hosted/common/log/esp_hosted_log.h +++ /dev/null @@ -1,34 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -// Copyright 2015-2021 Espressif Systems (Shanghai) PTE LTD -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at - -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -#ifndef __ESP_HOSTED_LOG_H -#define __ESP_HOSTED_LOG_H -#include "esp_log.h" - -#define ESP_PRIV_HEXDUMP(tag1, tag2, buff, len, curr_level) \ - if ( LOG_LOCAL_LEVEL >= curr_level) { \ - ESP_LOG_LEVEL_LOCAL(curr_level, tag1, "%s: len[%d]", tag2, (int)len); \ - ESP_LOG_BUFFER_HEXDUMP(tag2, buff, len, curr_level); \ - } - -#define ESP_HEXLOGE(tag2, buff, len) ESP_PRIV_HEXDUMP(TAG, tag2, buff, len, ESP_LOG_ERROR) -#define ESP_HEXLOGW(tag2, buff, len) ESP_PRIV_HEXDUMP(TAG, tag2, buff, len, ESP_LOG_WARN) -#define ESP_HEXLOGI(tag2, buff, len) ESP_PRIV_HEXDUMP(TAG, tag2, buff, len, ESP_LOG_INFO) -#define ESP_HEXLOGD(tag2, buff, len) ESP_PRIV_HEXDUMP(TAG, tag2, buff, len, ESP_LOG_DEBUG) -#define ESP_HEXLOGV(tag2, buff, len) ESP_PRIV_HEXDUMP(TAG, tag2, buff, len, ESP_LOG_VERBOSE) - -#endif - diff --git a/resources/espressif__esp_hosted/common/proto/README.md b/resources/espressif__esp_hosted/common/proto/README.md deleted file mode 100644 index 57c0e94..0000000 --- a/resources/espressif__esp_hosted/common/proto/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# About Proto Files - - -## Protobuf Submodule - -[protobuf-c](https://github.com/protobuf-c/protobuf-c) is open source code used as submodule in ESP-Hosted-FG in directory `../protobuf-c/` -If this directory is empty, please run -```sh -$ cd esp-hosted -$ git submodule update --init --recursive -``` - -## Files - -- `esp_hosted_rpc.proto` - - This is Ready-To-Use protobuf file which has messages for Request / Response / Events to communicate between Host and ESP - - User can add his own message field in `.proto` file and generate respective C files using 'protoc' - -- `esp_hosted_rpc.pb-c.c` & `esp_hosted_rpc.pb-c.h` - - Ready-To-Use Source Generated files using `esp_hosted_rpc.proto` - - These files also cached which was generated with current `esp_hosted_rpc.proto` file for easy use (No need to generate again) - - If any addition or modifications `esp_hosted_rpc.proto` done, these files need to be re-generated - - -## Generate esp_hosted_rpc.pb-c.c & esp_hosted_rpc.pb-c.h - -If you want to add or modify existing set of RPC procedures supported, you need to modify `esp_hosted_rpc.proto` as needed and build it to generate new set of `esp_hosted_rpc.pb-c.c` & `esp_hosted_rpc.pb-c.h`. -For this, third party software for protobuf C compiler is needed to be installed -- Debian/Ubuntu - - sudo apt install protobuf-c-compiler -- Mac OS - - brew install protobuf -- Windows - - check https://github.com/protobuf-c/protobuf-c - -`protoc-c` command should be available once installed. - -This software might only be needed on development environment, Once esp_hosted_rpc.pb-c.c & esp_hosted_rpc.pb-c.h files are generated, could also be uninstalled. - -##### Steps to generate -```sh -$ cd /common/proto -$ protoc-c esp_hosted_rpc.proto --c_out=. -``` - -## Add new RPC message -To send an new RPC request/response - -1. Add C function in `host/host_common/commands.c` -2. Create python binding in `host/linux/host_control/python_support/commands_map_py_to_c.py` and its python function in `host/linux/host_control/python_support/commands_lib.py`. -3. Add ESP side C function in `esp/esp_driver/network_adapter/main/slave_commands.c`, respective to python function, to handle added message field. - -User can test added functionality using `host/linux/host_control/python_support/test.py`. diff --git a/resources/espressif__esp_hosted/common/proto/esp_hosted_rpc.pb-c.c b/resources/espressif__esp_hosted/common/proto/esp_hosted_rpc.pb-c.c deleted file mode 100644 index eb1a1e3..0000000 --- a/resources/espressif__esp_hosted/common/proto/esp_hosted_rpc.pb-c.c +++ /dev/null @@ -1,17767 +0,0 @@ -/* Generated by the protocol buffer compiler. DO NOT EDIT! */ -/* Generated from: esp_hosted_rpc.proto */ - -/* Do not generate deprecated warnings for self */ -#ifndef PROTOBUF_C__NO_DEPRECATED -#define PROTOBUF_C__NO_DEPRECATED -#endif - -#include "esp_hosted_rpc.pb-c.h" -void wifi_init_config__init - (WifiInitConfig *message) -{ - static const WifiInitConfig init_value = WIFI_INIT_CONFIG__INIT; - *message = init_value; -} -size_t wifi_init_config__get_packed_size - (const WifiInitConfig *message) -{ - assert(message->base.descriptor == &wifi_init_config__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_init_config__pack - (const WifiInitConfig *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_init_config__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_init_config__pack_to_buffer - (const WifiInitConfig *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_init_config__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiInitConfig * - wifi_init_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiInitConfig *) - protobuf_c_message_unpack (&wifi_init_config__descriptor, - allocator, len, data); -} -void wifi_init_config__free_unpacked - (WifiInitConfig *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_init_config__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_country__init - (WifiCountry *message) -{ - static const WifiCountry init_value = WIFI_COUNTRY__INIT; - *message = init_value; -} -size_t wifi_country__get_packed_size - (const WifiCountry *message) -{ - assert(message->base.descriptor == &wifi_country__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_country__pack - (const WifiCountry *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_country__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_country__pack_to_buffer - (const WifiCountry *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_country__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiCountry * - wifi_country__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiCountry *) - protobuf_c_message_unpack (&wifi_country__descriptor, - allocator, len, data); -} -void wifi_country__free_unpacked - (WifiCountry *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_country__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_active_scan_time__init - (WifiActiveScanTime *message) -{ - static const WifiActiveScanTime init_value = WIFI_ACTIVE_SCAN_TIME__INIT; - *message = init_value; -} -size_t wifi_active_scan_time__get_packed_size - (const WifiActiveScanTime *message) -{ - assert(message->base.descriptor == &wifi_active_scan_time__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_active_scan_time__pack - (const WifiActiveScanTime *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_active_scan_time__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_active_scan_time__pack_to_buffer - (const WifiActiveScanTime *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_active_scan_time__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiActiveScanTime * - wifi_active_scan_time__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiActiveScanTime *) - protobuf_c_message_unpack (&wifi_active_scan_time__descriptor, - allocator, len, data); -} -void wifi_active_scan_time__free_unpacked - (WifiActiveScanTime *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_active_scan_time__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_scan_time__init - (WifiScanTime *message) -{ - static const WifiScanTime init_value = WIFI_SCAN_TIME__INIT; - *message = init_value; -} -size_t wifi_scan_time__get_packed_size - (const WifiScanTime *message) -{ - assert(message->base.descriptor == &wifi_scan_time__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_scan_time__pack - (const WifiScanTime *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_scan_time__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_scan_time__pack_to_buffer - (const WifiScanTime *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_scan_time__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiScanTime * - wifi_scan_time__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiScanTime *) - protobuf_c_message_unpack (&wifi_scan_time__descriptor, - allocator, len, data); -} -void wifi_scan_time__free_unpacked - (WifiScanTime *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_scan_time__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_scan_config__init - (WifiScanConfig *message) -{ - static const WifiScanConfig init_value = WIFI_SCAN_CONFIG__INIT; - *message = init_value; -} -size_t wifi_scan_config__get_packed_size - (const WifiScanConfig *message) -{ - assert(message->base.descriptor == &wifi_scan_config__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_scan_config__pack - (const WifiScanConfig *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_scan_config__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_scan_config__pack_to_buffer - (const WifiScanConfig *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_scan_config__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiScanConfig * - wifi_scan_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiScanConfig *) - protobuf_c_message_unpack (&wifi_scan_config__descriptor, - allocator, len, data); -} -void wifi_scan_config__free_unpacked - (WifiScanConfig *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_scan_config__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_he_ap_info__init - (WifiHeApInfo *message) -{ - static const WifiHeApInfo init_value = WIFI_HE_AP_INFO__INIT; - *message = init_value; -} -size_t wifi_he_ap_info__get_packed_size - (const WifiHeApInfo *message) -{ - assert(message->base.descriptor == &wifi_he_ap_info__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_he_ap_info__pack - (const WifiHeApInfo *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_he_ap_info__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_he_ap_info__pack_to_buffer - (const WifiHeApInfo *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_he_ap_info__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiHeApInfo * - wifi_he_ap_info__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiHeApInfo *) - protobuf_c_message_unpack (&wifi_he_ap_info__descriptor, - allocator, len, data); -} -void wifi_he_ap_info__free_unpacked - (WifiHeApInfo *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_he_ap_info__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_ap_record__init - (WifiApRecord *message) -{ - static const WifiApRecord init_value = WIFI_AP_RECORD__INIT; - *message = init_value; -} -size_t wifi_ap_record__get_packed_size - (const WifiApRecord *message) -{ - assert(message->base.descriptor == &wifi_ap_record__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_ap_record__pack - (const WifiApRecord *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_ap_record__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_ap_record__pack_to_buffer - (const WifiApRecord *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_ap_record__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiApRecord * - wifi_ap_record__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiApRecord *) - protobuf_c_message_unpack (&wifi_ap_record__descriptor, - allocator, len, data); -} -void wifi_ap_record__free_unpacked - (WifiApRecord *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_ap_record__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_scan_threshold__init - (WifiScanThreshold *message) -{ - static const WifiScanThreshold init_value = WIFI_SCAN_THRESHOLD__INIT; - *message = init_value; -} -size_t wifi_scan_threshold__get_packed_size - (const WifiScanThreshold *message) -{ - assert(message->base.descriptor == &wifi_scan_threshold__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_scan_threshold__pack - (const WifiScanThreshold *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_scan_threshold__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_scan_threshold__pack_to_buffer - (const WifiScanThreshold *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_scan_threshold__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiScanThreshold * - wifi_scan_threshold__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiScanThreshold *) - protobuf_c_message_unpack (&wifi_scan_threshold__descriptor, - allocator, len, data); -} -void wifi_scan_threshold__free_unpacked - (WifiScanThreshold *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_scan_threshold__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_pmf_config__init - (WifiPmfConfig *message) -{ - static const WifiPmfConfig init_value = WIFI_PMF_CONFIG__INIT; - *message = init_value; -} -size_t wifi_pmf_config__get_packed_size - (const WifiPmfConfig *message) -{ - assert(message->base.descriptor == &wifi_pmf_config__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_pmf_config__pack - (const WifiPmfConfig *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_pmf_config__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_pmf_config__pack_to_buffer - (const WifiPmfConfig *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_pmf_config__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiPmfConfig * - wifi_pmf_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiPmfConfig *) - protobuf_c_message_unpack (&wifi_pmf_config__descriptor, - allocator, len, data); -} -void wifi_pmf_config__free_unpacked - (WifiPmfConfig *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_pmf_config__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_ap_config__init - (WifiApConfig *message) -{ - static const WifiApConfig init_value = WIFI_AP_CONFIG__INIT; - *message = init_value; -} -size_t wifi_ap_config__get_packed_size - (const WifiApConfig *message) -{ - assert(message->base.descriptor == &wifi_ap_config__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_ap_config__pack - (const WifiApConfig *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_ap_config__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_ap_config__pack_to_buffer - (const WifiApConfig *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_ap_config__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiApConfig * - wifi_ap_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiApConfig *) - protobuf_c_message_unpack (&wifi_ap_config__descriptor, - allocator, len, data); -} -void wifi_ap_config__free_unpacked - (WifiApConfig *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_ap_config__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_sta_config__init - (WifiStaConfig *message) -{ - static const WifiStaConfig init_value = WIFI_STA_CONFIG__INIT; - *message = init_value; -} -size_t wifi_sta_config__get_packed_size - (const WifiStaConfig *message) -{ - assert(message->base.descriptor == &wifi_sta_config__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_sta_config__pack - (const WifiStaConfig *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_sta_config__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_sta_config__pack_to_buffer - (const WifiStaConfig *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_sta_config__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiStaConfig * - wifi_sta_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiStaConfig *) - protobuf_c_message_unpack (&wifi_sta_config__descriptor, - allocator, len, data); -} -void wifi_sta_config__free_unpacked - (WifiStaConfig *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_sta_config__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_config__init - (WifiConfig *message) -{ - static const WifiConfig init_value = WIFI_CONFIG__INIT; - *message = init_value; -} -size_t wifi_config__get_packed_size - (const WifiConfig *message) -{ - assert(message->base.descriptor == &wifi_config__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_config__pack - (const WifiConfig *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_config__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_config__pack_to_buffer - (const WifiConfig *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_config__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiConfig * - wifi_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiConfig *) - protobuf_c_message_unpack (&wifi_config__descriptor, - allocator, len, data); -} -void wifi_config__free_unpacked - (WifiConfig *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_config__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_sta_info__init - (WifiStaInfo *message) -{ - static const WifiStaInfo init_value = WIFI_STA_INFO__INIT; - *message = init_value; -} -size_t wifi_sta_info__get_packed_size - (const WifiStaInfo *message) -{ - assert(message->base.descriptor == &wifi_sta_info__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_sta_info__pack - (const WifiStaInfo *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_sta_info__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_sta_info__pack_to_buffer - (const WifiStaInfo *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_sta_info__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiStaInfo * - wifi_sta_info__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiStaInfo *) - protobuf_c_message_unpack (&wifi_sta_info__descriptor, - allocator, len, data); -} -void wifi_sta_info__free_unpacked - (WifiStaInfo *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_sta_info__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_sta_list__init - (WifiStaList *message) -{ - static const WifiStaList init_value = WIFI_STA_LIST__INIT; - *message = init_value; -} -size_t wifi_sta_list__get_packed_size - (const WifiStaList *message) -{ - assert(message->base.descriptor == &wifi_sta_list__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_sta_list__pack - (const WifiStaList *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_sta_list__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_sta_list__pack_to_buffer - (const WifiStaList *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_sta_list__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiStaList * - wifi_sta_list__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiStaList *) - protobuf_c_message_unpack (&wifi_sta_list__descriptor, - allocator, len, data); -} -void wifi_sta_list__free_unpacked - (WifiStaList *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_sta_list__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_pkt_rx_ctrl__init - (WifiPktRxCtrl *message) -{ - static const WifiPktRxCtrl init_value = WIFI_PKT_RX_CTRL__INIT; - *message = init_value; -} -size_t wifi_pkt_rx_ctrl__get_packed_size - (const WifiPktRxCtrl *message) -{ - assert(message->base.descriptor == &wifi_pkt_rx_ctrl__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_pkt_rx_ctrl__pack - (const WifiPktRxCtrl *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_pkt_rx_ctrl__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_pkt_rx_ctrl__pack_to_buffer - (const WifiPktRxCtrl *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_pkt_rx_ctrl__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiPktRxCtrl * - wifi_pkt_rx_ctrl__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiPktRxCtrl *) - protobuf_c_message_unpack (&wifi_pkt_rx_ctrl__descriptor, - allocator, len, data); -} -void wifi_pkt_rx_ctrl__free_unpacked - (WifiPktRxCtrl *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_pkt_rx_ctrl__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_promiscuous_pkt__init - (WifiPromiscuousPkt *message) -{ - static const WifiPromiscuousPkt init_value = WIFI_PROMISCUOUS_PKT__INIT; - *message = init_value; -} -size_t wifi_promiscuous_pkt__get_packed_size - (const WifiPromiscuousPkt *message) -{ - assert(message->base.descriptor == &wifi_promiscuous_pkt__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_promiscuous_pkt__pack - (const WifiPromiscuousPkt *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_promiscuous_pkt__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_promiscuous_pkt__pack_to_buffer - (const WifiPromiscuousPkt *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_promiscuous_pkt__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiPromiscuousPkt * - wifi_promiscuous_pkt__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiPromiscuousPkt *) - protobuf_c_message_unpack (&wifi_promiscuous_pkt__descriptor, - allocator, len, data); -} -void wifi_promiscuous_pkt__free_unpacked - (WifiPromiscuousPkt *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_promiscuous_pkt__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_promiscuous_filter__init - (WifiPromiscuousFilter *message) -{ - static const WifiPromiscuousFilter init_value = WIFI_PROMISCUOUS_FILTER__INIT; - *message = init_value; -} -size_t wifi_promiscuous_filter__get_packed_size - (const WifiPromiscuousFilter *message) -{ - assert(message->base.descriptor == &wifi_promiscuous_filter__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_promiscuous_filter__pack - (const WifiPromiscuousFilter *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_promiscuous_filter__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_promiscuous_filter__pack_to_buffer - (const WifiPromiscuousFilter *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_promiscuous_filter__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiPromiscuousFilter * - wifi_promiscuous_filter__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiPromiscuousFilter *) - protobuf_c_message_unpack (&wifi_promiscuous_filter__descriptor, - allocator, len, data); -} -void wifi_promiscuous_filter__free_unpacked - (WifiPromiscuousFilter *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_promiscuous_filter__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_csi_config__init - (WifiCsiConfig *message) -{ - static const WifiCsiConfig init_value = WIFI_CSI_CONFIG__INIT; - *message = init_value; -} -size_t wifi_csi_config__get_packed_size - (const WifiCsiConfig *message) -{ - assert(message->base.descriptor == &wifi_csi_config__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_csi_config__pack - (const WifiCsiConfig *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_csi_config__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_csi_config__pack_to_buffer - (const WifiCsiConfig *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_csi_config__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiCsiConfig * - wifi_csi_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiCsiConfig *) - protobuf_c_message_unpack (&wifi_csi_config__descriptor, - allocator, len, data); -} -void wifi_csi_config__free_unpacked - (WifiCsiConfig *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_csi_config__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_csi_info__init - (WifiCsiInfo *message) -{ - static const WifiCsiInfo init_value = WIFI_CSI_INFO__INIT; - *message = init_value; -} -size_t wifi_csi_info__get_packed_size - (const WifiCsiInfo *message) -{ - assert(message->base.descriptor == &wifi_csi_info__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_csi_info__pack - (const WifiCsiInfo *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_csi_info__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_csi_info__pack_to_buffer - (const WifiCsiInfo *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_csi_info__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiCsiInfo * - wifi_csi_info__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiCsiInfo *) - protobuf_c_message_unpack (&wifi_csi_info__descriptor, - allocator, len, data); -} -void wifi_csi_info__free_unpacked - (WifiCsiInfo *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_csi_info__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_ant_gpio__init - (WifiAntGpio *message) -{ - static const WifiAntGpio init_value = WIFI_ANT_GPIO__INIT; - *message = init_value; -} -size_t wifi_ant_gpio__get_packed_size - (const WifiAntGpio *message) -{ - assert(message->base.descriptor == &wifi_ant_gpio__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_ant_gpio__pack - (const WifiAntGpio *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_ant_gpio__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_ant_gpio__pack_to_buffer - (const WifiAntGpio *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_ant_gpio__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiAntGpio * - wifi_ant_gpio__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiAntGpio *) - protobuf_c_message_unpack (&wifi_ant_gpio__descriptor, - allocator, len, data); -} -void wifi_ant_gpio__free_unpacked - (WifiAntGpio *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_ant_gpio__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_ant_gpio_config__init - (WifiAntGpioConfig *message) -{ - static const WifiAntGpioConfig init_value = WIFI_ANT_GPIO_CONFIG__INIT; - *message = init_value; -} -size_t wifi_ant_gpio_config__get_packed_size - (const WifiAntGpioConfig *message) -{ - assert(message->base.descriptor == &wifi_ant_gpio_config__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_ant_gpio_config__pack - (const WifiAntGpioConfig *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_ant_gpio_config__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_ant_gpio_config__pack_to_buffer - (const WifiAntGpioConfig *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_ant_gpio_config__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiAntGpioConfig * - wifi_ant_gpio_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiAntGpioConfig *) - protobuf_c_message_unpack (&wifi_ant_gpio_config__descriptor, - allocator, len, data); -} -void wifi_ant_gpio_config__free_unpacked - (WifiAntGpioConfig *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_ant_gpio_config__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_ant_config__init - (WifiAntConfig *message) -{ - static const WifiAntConfig init_value = WIFI_ANT_CONFIG__INIT; - *message = init_value; -} -size_t wifi_ant_config__get_packed_size - (const WifiAntConfig *message) -{ - assert(message->base.descriptor == &wifi_ant_config__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_ant_config__pack - (const WifiAntConfig *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_ant_config__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_ant_config__pack_to_buffer - (const WifiAntConfig *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_ant_config__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiAntConfig * - wifi_ant_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiAntConfig *) - protobuf_c_message_unpack (&wifi_ant_config__descriptor, - allocator, len, data); -} -void wifi_ant_config__free_unpacked - (WifiAntConfig *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_ant_config__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_action_tx_req__init - (WifiActionTxReq *message) -{ - static const WifiActionTxReq init_value = WIFI_ACTION_TX_REQ__INIT; - *message = init_value; -} -size_t wifi_action_tx_req__get_packed_size - (const WifiActionTxReq *message) -{ - assert(message->base.descriptor == &wifi_action_tx_req__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_action_tx_req__pack - (const WifiActionTxReq *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_action_tx_req__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_action_tx_req__pack_to_buffer - (const WifiActionTxReq *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_action_tx_req__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiActionTxReq * - wifi_action_tx_req__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiActionTxReq *) - protobuf_c_message_unpack (&wifi_action_tx_req__descriptor, - allocator, len, data); -} -void wifi_action_tx_req__free_unpacked - (WifiActionTxReq *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_action_tx_req__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_ftm_initiator_cfg__init - (WifiFtmInitiatorCfg *message) -{ - static const WifiFtmInitiatorCfg init_value = WIFI_FTM_INITIATOR_CFG__INIT; - *message = init_value; -} -size_t wifi_ftm_initiator_cfg__get_packed_size - (const WifiFtmInitiatorCfg *message) -{ - assert(message->base.descriptor == &wifi_ftm_initiator_cfg__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_ftm_initiator_cfg__pack - (const WifiFtmInitiatorCfg *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_ftm_initiator_cfg__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_ftm_initiator_cfg__pack_to_buffer - (const WifiFtmInitiatorCfg *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_ftm_initiator_cfg__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiFtmInitiatorCfg * - wifi_ftm_initiator_cfg__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiFtmInitiatorCfg *) - protobuf_c_message_unpack (&wifi_ftm_initiator_cfg__descriptor, - allocator, len, data); -} -void wifi_ftm_initiator_cfg__free_unpacked - (WifiFtmInitiatorCfg *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_ftm_initiator_cfg__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_event_sta_scan_done__init - (WifiEventStaScanDone *message) -{ - static const WifiEventStaScanDone init_value = WIFI_EVENT_STA_SCAN_DONE__INIT; - *message = init_value; -} -size_t wifi_event_sta_scan_done__get_packed_size - (const WifiEventStaScanDone *message) -{ - assert(message->base.descriptor == &wifi_event_sta_scan_done__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_event_sta_scan_done__pack - (const WifiEventStaScanDone *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_event_sta_scan_done__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_event_sta_scan_done__pack_to_buffer - (const WifiEventStaScanDone *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_event_sta_scan_done__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiEventStaScanDone * - wifi_event_sta_scan_done__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiEventStaScanDone *) - protobuf_c_message_unpack (&wifi_event_sta_scan_done__descriptor, - allocator, len, data); -} -void wifi_event_sta_scan_done__free_unpacked - (WifiEventStaScanDone *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_event_sta_scan_done__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_event_sta_connected__init - (WifiEventStaConnected *message) -{ - static const WifiEventStaConnected init_value = WIFI_EVENT_STA_CONNECTED__INIT; - *message = init_value; -} -size_t wifi_event_sta_connected__get_packed_size - (const WifiEventStaConnected *message) -{ - assert(message->base.descriptor == &wifi_event_sta_connected__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_event_sta_connected__pack - (const WifiEventStaConnected *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_event_sta_connected__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_event_sta_connected__pack_to_buffer - (const WifiEventStaConnected *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_event_sta_connected__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiEventStaConnected * - wifi_event_sta_connected__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiEventStaConnected *) - protobuf_c_message_unpack (&wifi_event_sta_connected__descriptor, - allocator, len, data); -} -void wifi_event_sta_connected__free_unpacked - (WifiEventStaConnected *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_event_sta_connected__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_event_sta_disconnected__init - (WifiEventStaDisconnected *message) -{ - static const WifiEventStaDisconnected init_value = WIFI_EVENT_STA_DISCONNECTED__INIT; - *message = init_value; -} -size_t wifi_event_sta_disconnected__get_packed_size - (const WifiEventStaDisconnected *message) -{ - assert(message->base.descriptor == &wifi_event_sta_disconnected__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_event_sta_disconnected__pack - (const WifiEventStaDisconnected *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_event_sta_disconnected__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_event_sta_disconnected__pack_to_buffer - (const WifiEventStaDisconnected *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_event_sta_disconnected__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiEventStaDisconnected * - wifi_event_sta_disconnected__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiEventStaDisconnected *) - protobuf_c_message_unpack (&wifi_event_sta_disconnected__descriptor, - allocator, len, data); -} -void wifi_event_sta_disconnected__free_unpacked - (WifiEventStaDisconnected *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_event_sta_disconnected__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_event_sta_authmode_change__init - (WifiEventStaAuthmodeChange *message) -{ - static const WifiEventStaAuthmodeChange init_value = WIFI_EVENT_STA_AUTHMODE_CHANGE__INIT; - *message = init_value; -} -size_t wifi_event_sta_authmode_change__get_packed_size - (const WifiEventStaAuthmodeChange *message) -{ - assert(message->base.descriptor == &wifi_event_sta_authmode_change__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_event_sta_authmode_change__pack - (const WifiEventStaAuthmodeChange *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_event_sta_authmode_change__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_event_sta_authmode_change__pack_to_buffer - (const WifiEventStaAuthmodeChange *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_event_sta_authmode_change__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiEventStaAuthmodeChange * - wifi_event_sta_authmode_change__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiEventStaAuthmodeChange *) - protobuf_c_message_unpack (&wifi_event_sta_authmode_change__descriptor, - allocator, len, data); -} -void wifi_event_sta_authmode_change__free_unpacked - (WifiEventStaAuthmodeChange *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_event_sta_authmode_change__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_event_sta_wps_er_pin__init - (WifiEventStaWpsErPin *message) -{ - static const WifiEventStaWpsErPin init_value = WIFI_EVENT_STA_WPS_ER_PIN__INIT; - *message = init_value; -} -size_t wifi_event_sta_wps_er_pin__get_packed_size - (const WifiEventStaWpsErPin *message) -{ - assert(message->base.descriptor == &wifi_event_sta_wps_er_pin__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_event_sta_wps_er_pin__pack - (const WifiEventStaWpsErPin *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_event_sta_wps_er_pin__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_event_sta_wps_er_pin__pack_to_buffer - (const WifiEventStaWpsErPin *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_event_sta_wps_er_pin__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiEventStaWpsErPin * - wifi_event_sta_wps_er_pin__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiEventStaWpsErPin *) - protobuf_c_message_unpack (&wifi_event_sta_wps_er_pin__descriptor, - allocator, len, data); -} -void wifi_event_sta_wps_er_pin__free_unpacked - (WifiEventStaWpsErPin *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_event_sta_wps_er_pin__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void ap_cred__init - (ApCred *message) -{ - static const ApCred init_value = AP_CRED__INIT; - *message = init_value; -} -size_t ap_cred__get_packed_size - (const ApCred *message) -{ - assert(message->base.descriptor == &ap_cred__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t ap_cred__pack - (const ApCred *message, - uint8_t *out) -{ - assert(message->base.descriptor == &ap_cred__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t ap_cred__pack_to_buffer - (const ApCred *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &ap_cred__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -ApCred * - ap_cred__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (ApCred *) - protobuf_c_message_unpack (&ap_cred__descriptor, - allocator, len, data); -} -void ap_cred__free_unpacked - (ApCred *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &ap_cred__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_event_sta_wps_er_success__init - (WifiEventStaWpsErSuccess *message) -{ - static const WifiEventStaWpsErSuccess init_value = WIFI_EVENT_STA_WPS_ER_SUCCESS__INIT; - *message = init_value; -} -size_t wifi_event_sta_wps_er_success__get_packed_size - (const WifiEventStaWpsErSuccess *message) -{ - assert(message->base.descriptor == &wifi_event_sta_wps_er_success__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_event_sta_wps_er_success__pack - (const WifiEventStaWpsErSuccess *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_event_sta_wps_er_success__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_event_sta_wps_er_success__pack_to_buffer - (const WifiEventStaWpsErSuccess *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_event_sta_wps_er_success__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiEventStaWpsErSuccess * - wifi_event_sta_wps_er_success__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiEventStaWpsErSuccess *) - protobuf_c_message_unpack (&wifi_event_sta_wps_er_success__descriptor, - allocator, len, data); -} -void wifi_event_sta_wps_er_success__free_unpacked - (WifiEventStaWpsErSuccess *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_event_sta_wps_er_success__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_event_ap_probe_req_rx__init - (WifiEventApProbeReqRx *message) -{ - static const WifiEventApProbeReqRx init_value = WIFI_EVENT_AP_PROBE_REQ_RX__INIT; - *message = init_value; -} -size_t wifi_event_ap_probe_req_rx__get_packed_size - (const WifiEventApProbeReqRx *message) -{ - assert(message->base.descriptor == &wifi_event_ap_probe_req_rx__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_event_ap_probe_req_rx__pack - (const WifiEventApProbeReqRx *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_event_ap_probe_req_rx__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_event_ap_probe_req_rx__pack_to_buffer - (const WifiEventApProbeReqRx *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_event_ap_probe_req_rx__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiEventApProbeReqRx * - wifi_event_ap_probe_req_rx__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiEventApProbeReqRx *) - protobuf_c_message_unpack (&wifi_event_ap_probe_req_rx__descriptor, - allocator, len, data); -} -void wifi_event_ap_probe_req_rx__free_unpacked - (WifiEventApProbeReqRx *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_event_ap_probe_req_rx__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_event_bss_rssi_low__init - (WifiEventBssRssiLow *message) -{ - static const WifiEventBssRssiLow init_value = WIFI_EVENT_BSS_RSSI_LOW__INIT; - *message = init_value; -} -size_t wifi_event_bss_rssi_low__get_packed_size - (const WifiEventBssRssiLow *message) -{ - assert(message->base.descriptor == &wifi_event_bss_rssi_low__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_event_bss_rssi_low__pack - (const WifiEventBssRssiLow *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_event_bss_rssi_low__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_event_bss_rssi_low__pack_to_buffer - (const WifiEventBssRssiLow *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_event_bss_rssi_low__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiEventBssRssiLow * - wifi_event_bss_rssi_low__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiEventBssRssiLow *) - protobuf_c_message_unpack (&wifi_event_bss_rssi_low__descriptor, - allocator, len, data); -} -void wifi_event_bss_rssi_low__free_unpacked - (WifiEventBssRssiLow *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_event_bss_rssi_low__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_ftm_report_entry__init - (WifiFtmReportEntry *message) -{ - static const WifiFtmReportEntry init_value = WIFI_FTM_REPORT_ENTRY__INIT; - *message = init_value; -} -size_t wifi_ftm_report_entry__get_packed_size - (const WifiFtmReportEntry *message) -{ - assert(message->base.descriptor == &wifi_ftm_report_entry__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_ftm_report_entry__pack - (const WifiFtmReportEntry *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_ftm_report_entry__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_ftm_report_entry__pack_to_buffer - (const WifiFtmReportEntry *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_ftm_report_entry__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiFtmReportEntry * - wifi_ftm_report_entry__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiFtmReportEntry *) - protobuf_c_message_unpack (&wifi_ftm_report_entry__descriptor, - allocator, len, data); -} -void wifi_ftm_report_entry__free_unpacked - (WifiFtmReportEntry *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_ftm_report_entry__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_event_ftm_report__init - (WifiEventFtmReport *message) -{ - static const WifiEventFtmReport init_value = WIFI_EVENT_FTM_REPORT__INIT; - *message = init_value; -} -size_t wifi_event_ftm_report__get_packed_size - (const WifiEventFtmReport *message) -{ - assert(message->base.descriptor == &wifi_event_ftm_report__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_event_ftm_report__pack - (const WifiEventFtmReport *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_event_ftm_report__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_event_ftm_report__pack_to_buffer - (const WifiEventFtmReport *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_event_ftm_report__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiEventFtmReport * - wifi_event_ftm_report__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiEventFtmReport *) - protobuf_c_message_unpack (&wifi_event_ftm_report__descriptor, - allocator, len, data); -} -void wifi_event_ftm_report__free_unpacked - (WifiEventFtmReport *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_event_ftm_report__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_event_action_tx_status__init - (WifiEventActionTxStatus *message) -{ - static const WifiEventActionTxStatus init_value = WIFI_EVENT_ACTION_TX_STATUS__INIT; - *message = init_value; -} -size_t wifi_event_action_tx_status__get_packed_size - (const WifiEventActionTxStatus *message) -{ - assert(message->base.descriptor == &wifi_event_action_tx_status__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_event_action_tx_status__pack - (const WifiEventActionTxStatus *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_event_action_tx_status__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_event_action_tx_status__pack_to_buffer - (const WifiEventActionTxStatus *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_event_action_tx_status__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiEventActionTxStatus * - wifi_event_action_tx_status__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiEventActionTxStatus *) - protobuf_c_message_unpack (&wifi_event_action_tx_status__descriptor, - allocator, len, data); -} -void wifi_event_action_tx_status__free_unpacked - (WifiEventActionTxStatus *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_event_action_tx_status__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_event_roc_done__init - (WifiEventRocDone *message) -{ - static const WifiEventRocDone init_value = WIFI_EVENT_ROC_DONE__INIT; - *message = init_value; -} -size_t wifi_event_roc_done__get_packed_size - (const WifiEventRocDone *message) -{ - assert(message->base.descriptor == &wifi_event_roc_done__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_event_roc_done__pack - (const WifiEventRocDone *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_event_roc_done__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_event_roc_done__pack_to_buffer - (const WifiEventRocDone *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_event_roc_done__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiEventRocDone * - wifi_event_roc_done__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiEventRocDone *) - protobuf_c_message_unpack (&wifi_event_roc_done__descriptor, - allocator, len, data); -} -void wifi_event_roc_done__free_unpacked - (WifiEventRocDone *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_event_roc_done__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_event_ap_wps_rg_pin__init - (WifiEventApWpsRgPin *message) -{ - static const WifiEventApWpsRgPin init_value = WIFI_EVENT_AP_WPS_RG_PIN__INIT; - *message = init_value; -} -size_t wifi_event_ap_wps_rg_pin__get_packed_size - (const WifiEventApWpsRgPin *message) -{ - assert(message->base.descriptor == &wifi_event_ap_wps_rg_pin__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_event_ap_wps_rg_pin__pack - (const WifiEventApWpsRgPin *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_event_ap_wps_rg_pin__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_event_ap_wps_rg_pin__pack_to_buffer - (const WifiEventApWpsRgPin *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_event_ap_wps_rg_pin__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiEventApWpsRgPin * - wifi_event_ap_wps_rg_pin__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiEventApWpsRgPin *) - protobuf_c_message_unpack (&wifi_event_ap_wps_rg_pin__descriptor, - allocator, len, data); -} -void wifi_event_ap_wps_rg_pin__free_unpacked - (WifiEventApWpsRgPin *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_event_ap_wps_rg_pin__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_event_ap_wps_rg_fail_reason__init - (WifiEventApWpsRgFailReason *message) -{ - static const WifiEventApWpsRgFailReason init_value = WIFI_EVENT_AP_WPS_RG_FAIL_REASON__INIT; - *message = init_value; -} -size_t wifi_event_ap_wps_rg_fail_reason__get_packed_size - (const WifiEventApWpsRgFailReason *message) -{ - assert(message->base.descriptor == &wifi_event_ap_wps_rg_fail_reason__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_event_ap_wps_rg_fail_reason__pack - (const WifiEventApWpsRgFailReason *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_event_ap_wps_rg_fail_reason__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_event_ap_wps_rg_fail_reason__pack_to_buffer - (const WifiEventApWpsRgFailReason *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_event_ap_wps_rg_fail_reason__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiEventApWpsRgFailReason * - wifi_event_ap_wps_rg_fail_reason__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiEventApWpsRgFailReason *) - protobuf_c_message_unpack (&wifi_event_ap_wps_rg_fail_reason__descriptor, - allocator, len, data); -} -void wifi_event_ap_wps_rg_fail_reason__free_unpacked - (WifiEventApWpsRgFailReason *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_event_ap_wps_rg_fail_reason__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_event_ap_wps_rg_success__init - (WifiEventApWpsRgSuccess *message) -{ - static const WifiEventApWpsRgSuccess init_value = WIFI_EVENT_AP_WPS_RG_SUCCESS__INIT; - *message = init_value; -} -size_t wifi_event_ap_wps_rg_success__get_packed_size - (const WifiEventApWpsRgSuccess *message) -{ - assert(message->base.descriptor == &wifi_event_ap_wps_rg_success__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_event_ap_wps_rg_success__pack - (const WifiEventApWpsRgSuccess *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_event_ap_wps_rg_success__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_event_ap_wps_rg_success__pack_to_buffer - (const WifiEventApWpsRgSuccess *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_event_ap_wps_rg_success__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiEventApWpsRgSuccess * - wifi_event_ap_wps_rg_success__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiEventApWpsRgSuccess *) - protobuf_c_message_unpack (&wifi_event_ap_wps_rg_success__descriptor, - allocator, len, data); -} -void wifi_event_ap_wps_rg_success__free_unpacked - (WifiEventApWpsRgSuccess *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_event_ap_wps_rg_success__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_protocols__init - (WifiProtocols *message) -{ - static const WifiProtocols init_value = WIFI_PROTOCOLS__INIT; - *message = init_value; -} -size_t wifi_protocols__get_packed_size - (const WifiProtocols *message) -{ - assert(message->base.descriptor == &wifi_protocols__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_protocols__pack - (const WifiProtocols *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_protocols__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_protocols__pack_to_buffer - (const WifiProtocols *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_protocols__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiProtocols * - wifi_protocols__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiProtocols *) - protobuf_c_message_unpack (&wifi_protocols__descriptor, - allocator, len, data); -} -void wifi_protocols__free_unpacked - (WifiProtocols *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_protocols__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_bandwidths__init - (WifiBandwidths *message) -{ - static const WifiBandwidths init_value = WIFI_BANDWIDTHS__INIT; - *message = init_value; -} -size_t wifi_bandwidths__get_packed_size - (const WifiBandwidths *message) -{ - assert(message->base.descriptor == &wifi_bandwidths__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_bandwidths__pack - (const WifiBandwidths *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_bandwidths__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_bandwidths__pack_to_buffer - (const WifiBandwidths *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_bandwidths__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiBandwidths * - wifi_bandwidths__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiBandwidths *) - protobuf_c_message_unpack (&wifi_bandwidths__descriptor, - allocator, len, data); -} -void wifi_bandwidths__free_unpacked - (WifiBandwidths *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_bandwidths__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void connected_stalist__init - (ConnectedSTAList *message) -{ - static const ConnectedSTAList init_value = CONNECTED_STALIST__INIT; - *message = init_value; -} -size_t connected_stalist__get_packed_size - (const ConnectedSTAList *message) -{ - assert(message->base.descriptor == &connected_stalist__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t connected_stalist__pack - (const ConnectedSTAList *message, - uint8_t *out) -{ - assert(message->base.descriptor == &connected_stalist__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t connected_stalist__pack_to_buffer - (const ConnectedSTAList *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &connected_stalist__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -ConnectedSTAList * - connected_stalist__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (ConnectedSTAList *) - protobuf_c_message_unpack (&connected_stalist__descriptor, - allocator, len, data); -} -void connected_stalist__free_unpacked - (ConnectedSTAList *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &connected_stalist__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__get_mac_address__init - (RpcReqGetMacAddress *message) -{ - static const RpcReqGetMacAddress init_value = RPC__REQ__GET_MAC_ADDRESS__INIT; - *message = init_value; -} -size_t rpc__req__get_mac_address__get_packed_size - (const RpcReqGetMacAddress *message) -{ - assert(message->base.descriptor == &rpc__req__get_mac_address__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__get_mac_address__pack - (const RpcReqGetMacAddress *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__get_mac_address__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__get_mac_address__pack_to_buffer - (const RpcReqGetMacAddress *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__get_mac_address__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqGetMacAddress * - rpc__req__get_mac_address__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqGetMacAddress *) - protobuf_c_message_unpack (&rpc__req__get_mac_address__descriptor, - allocator, len, data); -} -void rpc__req__get_mac_address__free_unpacked - (RpcReqGetMacAddress *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__get_mac_address__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__get_mac_address__init - (RpcRespGetMacAddress *message) -{ - static const RpcRespGetMacAddress init_value = RPC__RESP__GET_MAC_ADDRESS__INIT; - *message = init_value; -} -size_t rpc__resp__get_mac_address__get_packed_size - (const RpcRespGetMacAddress *message) -{ - assert(message->base.descriptor == &rpc__resp__get_mac_address__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__get_mac_address__pack - (const RpcRespGetMacAddress *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__get_mac_address__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__get_mac_address__pack_to_buffer - (const RpcRespGetMacAddress *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__get_mac_address__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespGetMacAddress * - rpc__resp__get_mac_address__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespGetMacAddress *) - protobuf_c_message_unpack (&rpc__resp__get_mac_address__descriptor, - allocator, len, data); -} -void rpc__resp__get_mac_address__free_unpacked - (RpcRespGetMacAddress *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__get_mac_address__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__get_mode__init - (RpcReqGetMode *message) -{ - static const RpcReqGetMode init_value = RPC__REQ__GET_MODE__INIT; - *message = init_value; -} -size_t rpc__req__get_mode__get_packed_size - (const RpcReqGetMode *message) -{ - assert(message->base.descriptor == &rpc__req__get_mode__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__get_mode__pack - (const RpcReqGetMode *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__get_mode__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__get_mode__pack_to_buffer - (const RpcReqGetMode *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__get_mode__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqGetMode * - rpc__req__get_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqGetMode *) - protobuf_c_message_unpack (&rpc__req__get_mode__descriptor, - allocator, len, data); -} -void rpc__req__get_mode__free_unpacked - (RpcReqGetMode *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__get_mode__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__get_mode__init - (RpcRespGetMode *message) -{ - static const RpcRespGetMode init_value = RPC__RESP__GET_MODE__INIT; - *message = init_value; -} -size_t rpc__resp__get_mode__get_packed_size - (const RpcRespGetMode *message) -{ - assert(message->base.descriptor == &rpc__resp__get_mode__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__get_mode__pack - (const RpcRespGetMode *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__get_mode__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__get_mode__pack_to_buffer - (const RpcRespGetMode *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__get_mode__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespGetMode * - rpc__resp__get_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespGetMode *) - protobuf_c_message_unpack (&rpc__resp__get_mode__descriptor, - allocator, len, data); -} -void rpc__resp__get_mode__free_unpacked - (RpcRespGetMode *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__get_mode__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__set_mode__init - (RpcReqSetMode *message) -{ - static const RpcReqSetMode init_value = RPC__REQ__SET_MODE__INIT; - *message = init_value; -} -size_t rpc__req__set_mode__get_packed_size - (const RpcReqSetMode *message) -{ - assert(message->base.descriptor == &rpc__req__set_mode__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__set_mode__pack - (const RpcReqSetMode *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__set_mode__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__set_mode__pack_to_buffer - (const RpcReqSetMode *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__set_mode__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqSetMode * - rpc__req__set_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqSetMode *) - protobuf_c_message_unpack (&rpc__req__set_mode__descriptor, - allocator, len, data); -} -void rpc__req__set_mode__free_unpacked - (RpcReqSetMode *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__set_mode__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__set_mode__init - (RpcRespSetMode *message) -{ - static const RpcRespSetMode init_value = RPC__RESP__SET_MODE__INIT; - *message = init_value; -} -size_t rpc__resp__set_mode__get_packed_size - (const RpcRespSetMode *message) -{ - assert(message->base.descriptor == &rpc__resp__set_mode__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__set_mode__pack - (const RpcRespSetMode *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__set_mode__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__set_mode__pack_to_buffer - (const RpcRespSetMode *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__set_mode__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespSetMode * - rpc__resp__set_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespSetMode *) - protobuf_c_message_unpack (&rpc__resp__set_mode__descriptor, - allocator, len, data); -} -void rpc__resp__set_mode__free_unpacked - (RpcRespSetMode *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__set_mode__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__get_ps__init - (RpcReqGetPs *message) -{ - static const RpcReqGetPs init_value = RPC__REQ__GET_PS__INIT; - *message = init_value; -} -size_t rpc__req__get_ps__get_packed_size - (const RpcReqGetPs *message) -{ - assert(message->base.descriptor == &rpc__req__get_ps__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__get_ps__pack - (const RpcReqGetPs *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__get_ps__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__get_ps__pack_to_buffer - (const RpcReqGetPs *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__get_ps__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqGetPs * - rpc__req__get_ps__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqGetPs *) - protobuf_c_message_unpack (&rpc__req__get_ps__descriptor, - allocator, len, data); -} -void rpc__req__get_ps__free_unpacked - (RpcReqGetPs *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__get_ps__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__get_ps__init - (RpcRespGetPs *message) -{ - static const RpcRespGetPs init_value = RPC__RESP__GET_PS__INIT; - *message = init_value; -} -size_t rpc__resp__get_ps__get_packed_size - (const RpcRespGetPs *message) -{ - assert(message->base.descriptor == &rpc__resp__get_ps__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__get_ps__pack - (const RpcRespGetPs *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__get_ps__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__get_ps__pack_to_buffer - (const RpcRespGetPs *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__get_ps__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespGetPs * - rpc__resp__get_ps__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespGetPs *) - protobuf_c_message_unpack (&rpc__resp__get_ps__descriptor, - allocator, len, data); -} -void rpc__resp__get_ps__free_unpacked - (RpcRespGetPs *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__get_ps__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__set_ps__init - (RpcReqSetPs *message) -{ - static const RpcReqSetPs init_value = RPC__REQ__SET_PS__INIT; - *message = init_value; -} -size_t rpc__req__set_ps__get_packed_size - (const RpcReqSetPs *message) -{ - assert(message->base.descriptor == &rpc__req__set_ps__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__set_ps__pack - (const RpcReqSetPs *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__set_ps__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__set_ps__pack_to_buffer - (const RpcReqSetPs *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__set_ps__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqSetPs * - rpc__req__set_ps__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqSetPs *) - protobuf_c_message_unpack (&rpc__req__set_ps__descriptor, - allocator, len, data); -} -void rpc__req__set_ps__free_unpacked - (RpcReqSetPs *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__set_ps__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__set_ps__init - (RpcRespSetPs *message) -{ - static const RpcRespSetPs init_value = RPC__RESP__SET_PS__INIT; - *message = init_value; -} -size_t rpc__resp__set_ps__get_packed_size - (const RpcRespSetPs *message) -{ - assert(message->base.descriptor == &rpc__resp__set_ps__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__set_ps__pack - (const RpcRespSetPs *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__set_ps__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__set_ps__pack_to_buffer - (const RpcRespSetPs *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__set_ps__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespSetPs * - rpc__resp__set_ps__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespSetPs *) - protobuf_c_message_unpack (&rpc__resp__set_ps__descriptor, - allocator, len, data); -} -void rpc__resp__set_ps__free_unpacked - (RpcRespSetPs *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__set_ps__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__set_mac_address__init - (RpcReqSetMacAddress *message) -{ - static const RpcReqSetMacAddress init_value = RPC__REQ__SET_MAC_ADDRESS__INIT; - *message = init_value; -} -size_t rpc__req__set_mac_address__get_packed_size - (const RpcReqSetMacAddress *message) -{ - assert(message->base.descriptor == &rpc__req__set_mac_address__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__set_mac_address__pack - (const RpcReqSetMacAddress *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__set_mac_address__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__set_mac_address__pack_to_buffer - (const RpcReqSetMacAddress *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__set_mac_address__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqSetMacAddress * - rpc__req__set_mac_address__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqSetMacAddress *) - protobuf_c_message_unpack (&rpc__req__set_mac_address__descriptor, - allocator, len, data); -} -void rpc__req__set_mac_address__free_unpacked - (RpcReqSetMacAddress *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__set_mac_address__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__set_mac_address__init - (RpcRespSetMacAddress *message) -{ - static const RpcRespSetMacAddress init_value = RPC__RESP__SET_MAC_ADDRESS__INIT; - *message = init_value; -} -size_t rpc__resp__set_mac_address__get_packed_size - (const RpcRespSetMacAddress *message) -{ - assert(message->base.descriptor == &rpc__resp__set_mac_address__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__set_mac_address__pack - (const RpcRespSetMacAddress *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__set_mac_address__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__set_mac_address__pack_to_buffer - (const RpcRespSetMacAddress *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__set_mac_address__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespSetMacAddress * - rpc__resp__set_mac_address__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespSetMacAddress *) - protobuf_c_message_unpack (&rpc__resp__set_mac_address__descriptor, - allocator, len, data); -} -void rpc__resp__set_mac_address__free_unpacked - (RpcRespSetMacAddress *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__set_mac_address__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__otabegin__init - (RpcReqOTABegin *message) -{ - static const RpcReqOTABegin init_value = RPC__REQ__OTABEGIN__INIT; - *message = init_value; -} -size_t rpc__req__otabegin__get_packed_size - (const RpcReqOTABegin *message) -{ - assert(message->base.descriptor == &rpc__req__otabegin__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__otabegin__pack - (const RpcReqOTABegin *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__otabegin__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__otabegin__pack_to_buffer - (const RpcReqOTABegin *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__otabegin__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqOTABegin * - rpc__req__otabegin__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqOTABegin *) - protobuf_c_message_unpack (&rpc__req__otabegin__descriptor, - allocator, len, data); -} -void rpc__req__otabegin__free_unpacked - (RpcReqOTABegin *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__otabegin__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__otabegin__init - (RpcRespOTABegin *message) -{ - static const RpcRespOTABegin init_value = RPC__RESP__OTABEGIN__INIT; - *message = init_value; -} -size_t rpc__resp__otabegin__get_packed_size - (const RpcRespOTABegin *message) -{ - assert(message->base.descriptor == &rpc__resp__otabegin__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__otabegin__pack - (const RpcRespOTABegin *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__otabegin__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__otabegin__pack_to_buffer - (const RpcRespOTABegin *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__otabegin__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespOTABegin * - rpc__resp__otabegin__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespOTABegin *) - protobuf_c_message_unpack (&rpc__resp__otabegin__descriptor, - allocator, len, data); -} -void rpc__resp__otabegin__free_unpacked - (RpcRespOTABegin *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__otabegin__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__otawrite__init - (RpcReqOTAWrite *message) -{ - static const RpcReqOTAWrite init_value = RPC__REQ__OTAWRITE__INIT; - *message = init_value; -} -size_t rpc__req__otawrite__get_packed_size - (const RpcReqOTAWrite *message) -{ - assert(message->base.descriptor == &rpc__req__otawrite__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__otawrite__pack - (const RpcReqOTAWrite *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__otawrite__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__otawrite__pack_to_buffer - (const RpcReqOTAWrite *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__otawrite__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqOTAWrite * - rpc__req__otawrite__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqOTAWrite *) - protobuf_c_message_unpack (&rpc__req__otawrite__descriptor, - allocator, len, data); -} -void rpc__req__otawrite__free_unpacked - (RpcReqOTAWrite *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__otawrite__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__otawrite__init - (RpcRespOTAWrite *message) -{ - static const RpcRespOTAWrite init_value = RPC__RESP__OTAWRITE__INIT; - *message = init_value; -} -size_t rpc__resp__otawrite__get_packed_size - (const RpcRespOTAWrite *message) -{ - assert(message->base.descriptor == &rpc__resp__otawrite__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__otawrite__pack - (const RpcRespOTAWrite *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__otawrite__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__otawrite__pack_to_buffer - (const RpcRespOTAWrite *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__otawrite__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespOTAWrite * - rpc__resp__otawrite__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespOTAWrite *) - protobuf_c_message_unpack (&rpc__resp__otawrite__descriptor, - allocator, len, data); -} -void rpc__resp__otawrite__free_unpacked - (RpcRespOTAWrite *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__otawrite__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__otaend__init - (RpcReqOTAEnd *message) -{ - static const RpcReqOTAEnd init_value = RPC__REQ__OTAEND__INIT; - *message = init_value; -} -size_t rpc__req__otaend__get_packed_size - (const RpcReqOTAEnd *message) -{ - assert(message->base.descriptor == &rpc__req__otaend__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__otaend__pack - (const RpcReqOTAEnd *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__otaend__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__otaend__pack_to_buffer - (const RpcReqOTAEnd *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__otaend__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqOTAEnd * - rpc__req__otaend__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqOTAEnd *) - protobuf_c_message_unpack (&rpc__req__otaend__descriptor, - allocator, len, data); -} -void rpc__req__otaend__free_unpacked - (RpcReqOTAEnd *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__otaend__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__otaend__init - (RpcRespOTAEnd *message) -{ - static const RpcRespOTAEnd init_value = RPC__RESP__OTAEND__INIT; - *message = init_value; -} -size_t rpc__resp__otaend__get_packed_size - (const RpcRespOTAEnd *message) -{ - assert(message->base.descriptor == &rpc__resp__otaend__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__otaend__pack - (const RpcRespOTAEnd *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__otaend__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__otaend__pack_to_buffer - (const RpcRespOTAEnd *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__otaend__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespOTAEnd * - rpc__resp__otaend__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespOTAEnd *) - protobuf_c_message_unpack (&rpc__resp__otaend__descriptor, - allocator, len, data); -} -void rpc__resp__otaend__free_unpacked - (RpcRespOTAEnd *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__otaend__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_set_max_tx_power__init - (RpcReqWifiSetMaxTxPower *message) -{ - static const RpcReqWifiSetMaxTxPower init_value = RPC__REQ__WIFI_SET_MAX_TX_POWER__INIT; - *message = init_value; -} -size_t rpc__req__wifi_set_max_tx_power__get_packed_size - (const RpcReqWifiSetMaxTxPower *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_max_tx_power__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_set_max_tx_power__pack - (const RpcReqWifiSetMaxTxPower *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_max_tx_power__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_set_max_tx_power__pack_to_buffer - (const RpcReqWifiSetMaxTxPower *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_max_tx_power__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiSetMaxTxPower * - rpc__req__wifi_set_max_tx_power__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiSetMaxTxPower *) - protobuf_c_message_unpack (&rpc__req__wifi_set_max_tx_power__descriptor, - allocator, len, data); -} -void rpc__req__wifi_set_max_tx_power__free_unpacked - (RpcReqWifiSetMaxTxPower *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_set_max_tx_power__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_set_max_tx_power__init - (RpcRespWifiSetMaxTxPower *message) -{ - static const RpcRespWifiSetMaxTxPower init_value = RPC__RESP__WIFI_SET_MAX_TX_POWER__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_set_max_tx_power__get_packed_size - (const RpcRespWifiSetMaxTxPower *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_max_tx_power__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_set_max_tx_power__pack - (const RpcRespWifiSetMaxTxPower *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_max_tx_power__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_set_max_tx_power__pack_to_buffer - (const RpcRespWifiSetMaxTxPower *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_max_tx_power__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiSetMaxTxPower * - rpc__resp__wifi_set_max_tx_power__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiSetMaxTxPower *) - protobuf_c_message_unpack (&rpc__resp__wifi_set_max_tx_power__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_set_max_tx_power__free_unpacked - (RpcRespWifiSetMaxTxPower *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_set_max_tx_power__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_get_max_tx_power__init - (RpcReqWifiGetMaxTxPower *message) -{ - static const RpcReqWifiGetMaxTxPower init_value = RPC__REQ__WIFI_GET_MAX_TX_POWER__INIT; - *message = init_value; -} -size_t rpc__req__wifi_get_max_tx_power__get_packed_size - (const RpcReqWifiGetMaxTxPower *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_max_tx_power__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_get_max_tx_power__pack - (const RpcReqWifiGetMaxTxPower *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_max_tx_power__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_get_max_tx_power__pack_to_buffer - (const RpcReqWifiGetMaxTxPower *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_max_tx_power__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiGetMaxTxPower * - rpc__req__wifi_get_max_tx_power__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiGetMaxTxPower *) - protobuf_c_message_unpack (&rpc__req__wifi_get_max_tx_power__descriptor, - allocator, len, data); -} -void rpc__req__wifi_get_max_tx_power__free_unpacked - (RpcReqWifiGetMaxTxPower *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_get_max_tx_power__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_get_max_tx_power__init - (RpcRespWifiGetMaxTxPower *message) -{ - static const RpcRespWifiGetMaxTxPower init_value = RPC__RESP__WIFI_GET_MAX_TX_POWER__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_get_max_tx_power__get_packed_size - (const RpcRespWifiGetMaxTxPower *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_max_tx_power__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_get_max_tx_power__pack - (const RpcRespWifiGetMaxTxPower *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_max_tx_power__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_get_max_tx_power__pack_to_buffer - (const RpcRespWifiGetMaxTxPower *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_max_tx_power__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiGetMaxTxPower * - rpc__resp__wifi_get_max_tx_power__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiGetMaxTxPower *) - protobuf_c_message_unpack (&rpc__resp__wifi_get_max_tx_power__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_get_max_tx_power__free_unpacked - (RpcRespWifiGetMaxTxPower *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_get_max_tx_power__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__config_heartbeat__init - (RpcReqConfigHeartbeat *message) -{ - static const RpcReqConfigHeartbeat init_value = RPC__REQ__CONFIG_HEARTBEAT__INIT; - *message = init_value; -} -size_t rpc__req__config_heartbeat__get_packed_size - (const RpcReqConfigHeartbeat *message) -{ - assert(message->base.descriptor == &rpc__req__config_heartbeat__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__config_heartbeat__pack - (const RpcReqConfigHeartbeat *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__config_heartbeat__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__config_heartbeat__pack_to_buffer - (const RpcReqConfigHeartbeat *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__config_heartbeat__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqConfigHeartbeat * - rpc__req__config_heartbeat__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqConfigHeartbeat *) - protobuf_c_message_unpack (&rpc__req__config_heartbeat__descriptor, - allocator, len, data); -} -void rpc__req__config_heartbeat__free_unpacked - (RpcReqConfigHeartbeat *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__config_heartbeat__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__config_heartbeat__init - (RpcRespConfigHeartbeat *message) -{ - static const RpcRespConfigHeartbeat init_value = RPC__RESP__CONFIG_HEARTBEAT__INIT; - *message = init_value; -} -size_t rpc__resp__config_heartbeat__get_packed_size - (const RpcRespConfigHeartbeat *message) -{ - assert(message->base.descriptor == &rpc__resp__config_heartbeat__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__config_heartbeat__pack - (const RpcRespConfigHeartbeat *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__config_heartbeat__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__config_heartbeat__pack_to_buffer - (const RpcRespConfigHeartbeat *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__config_heartbeat__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespConfigHeartbeat * - rpc__resp__config_heartbeat__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespConfigHeartbeat *) - protobuf_c_message_unpack (&rpc__resp__config_heartbeat__descriptor, - allocator, len, data); -} -void rpc__resp__config_heartbeat__free_unpacked - (RpcRespConfigHeartbeat *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__config_heartbeat__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_init__init - (RpcReqWifiInit *message) -{ - static const RpcReqWifiInit init_value = RPC__REQ__WIFI_INIT__INIT; - *message = init_value; -} -size_t rpc__req__wifi_init__get_packed_size - (const RpcReqWifiInit *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_init__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_init__pack - (const RpcReqWifiInit *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_init__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_init__pack_to_buffer - (const RpcReqWifiInit *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_init__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiInit * - rpc__req__wifi_init__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiInit *) - protobuf_c_message_unpack (&rpc__req__wifi_init__descriptor, - allocator, len, data); -} -void rpc__req__wifi_init__free_unpacked - (RpcReqWifiInit *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_init__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_init__init - (RpcRespWifiInit *message) -{ - static const RpcRespWifiInit init_value = RPC__RESP__WIFI_INIT__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_init__get_packed_size - (const RpcRespWifiInit *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_init__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_init__pack - (const RpcRespWifiInit *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_init__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_init__pack_to_buffer - (const RpcRespWifiInit *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_init__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiInit * - rpc__resp__wifi_init__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiInit *) - protobuf_c_message_unpack (&rpc__resp__wifi_init__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_init__free_unpacked - (RpcRespWifiInit *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_init__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_deinit__init - (RpcReqWifiDeinit *message) -{ - static const RpcReqWifiDeinit init_value = RPC__REQ__WIFI_DEINIT__INIT; - *message = init_value; -} -size_t rpc__req__wifi_deinit__get_packed_size - (const RpcReqWifiDeinit *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_deinit__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_deinit__pack - (const RpcReqWifiDeinit *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_deinit__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_deinit__pack_to_buffer - (const RpcReqWifiDeinit *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_deinit__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiDeinit * - rpc__req__wifi_deinit__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiDeinit *) - protobuf_c_message_unpack (&rpc__req__wifi_deinit__descriptor, - allocator, len, data); -} -void rpc__req__wifi_deinit__free_unpacked - (RpcReqWifiDeinit *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_deinit__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_deinit__init - (RpcRespWifiDeinit *message) -{ - static const RpcRespWifiDeinit init_value = RPC__RESP__WIFI_DEINIT__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_deinit__get_packed_size - (const RpcRespWifiDeinit *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_deinit__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_deinit__pack - (const RpcRespWifiDeinit *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_deinit__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_deinit__pack_to_buffer - (const RpcRespWifiDeinit *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_deinit__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiDeinit * - rpc__resp__wifi_deinit__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiDeinit *) - protobuf_c_message_unpack (&rpc__resp__wifi_deinit__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_deinit__free_unpacked - (RpcRespWifiDeinit *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_deinit__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_set_config__init - (RpcReqWifiSetConfig *message) -{ - static const RpcReqWifiSetConfig init_value = RPC__REQ__WIFI_SET_CONFIG__INIT; - *message = init_value; -} -size_t rpc__req__wifi_set_config__get_packed_size - (const RpcReqWifiSetConfig *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_config__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_set_config__pack - (const RpcReqWifiSetConfig *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_config__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_set_config__pack_to_buffer - (const RpcReqWifiSetConfig *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_config__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiSetConfig * - rpc__req__wifi_set_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiSetConfig *) - protobuf_c_message_unpack (&rpc__req__wifi_set_config__descriptor, - allocator, len, data); -} -void rpc__req__wifi_set_config__free_unpacked - (RpcReqWifiSetConfig *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_set_config__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_set_config__init - (RpcRespWifiSetConfig *message) -{ - static const RpcRespWifiSetConfig init_value = RPC__RESP__WIFI_SET_CONFIG__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_set_config__get_packed_size - (const RpcRespWifiSetConfig *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_config__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_set_config__pack - (const RpcRespWifiSetConfig *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_config__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_set_config__pack_to_buffer - (const RpcRespWifiSetConfig *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_config__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiSetConfig * - rpc__resp__wifi_set_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiSetConfig *) - protobuf_c_message_unpack (&rpc__resp__wifi_set_config__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_set_config__free_unpacked - (RpcRespWifiSetConfig *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_set_config__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_get_config__init - (RpcReqWifiGetConfig *message) -{ - static const RpcReqWifiGetConfig init_value = RPC__REQ__WIFI_GET_CONFIG__INIT; - *message = init_value; -} -size_t rpc__req__wifi_get_config__get_packed_size - (const RpcReqWifiGetConfig *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_config__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_get_config__pack - (const RpcReqWifiGetConfig *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_config__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_get_config__pack_to_buffer - (const RpcReqWifiGetConfig *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_config__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiGetConfig * - rpc__req__wifi_get_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiGetConfig *) - protobuf_c_message_unpack (&rpc__req__wifi_get_config__descriptor, - allocator, len, data); -} -void rpc__req__wifi_get_config__free_unpacked - (RpcReqWifiGetConfig *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_get_config__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_get_config__init - (RpcRespWifiGetConfig *message) -{ - static const RpcRespWifiGetConfig init_value = RPC__RESP__WIFI_GET_CONFIG__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_get_config__get_packed_size - (const RpcRespWifiGetConfig *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_config__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_get_config__pack - (const RpcRespWifiGetConfig *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_config__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_get_config__pack_to_buffer - (const RpcRespWifiGetConfig *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_config__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiGetConfig * - rpc__resp__wifi_get_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiGetConfig *) - protobuf_c_message_unpack (&rpc__resp__wifi_get_config__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_get_config__free_unpacked - (RpcRespWifiGetConfig *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_get_config__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_connect__init - (RpcReqWifiConnect *message) -{ - static const RpcReqWifiConnect init_value = RPC__REQ__WIFI_CONNECT__INIT; - *message = init_value; -} -size_t rpc__req__wifi_connect__get_packed_size - (const RpcReqWifiConnect *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_connect__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_connect__pack - (const RpcReqWifiConnect *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_connect__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_connect__pack_to_buffer - (const RpcReqWifiConnect *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_connect__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiConnect * - rpc__req__wifi_connect__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiConnect *) - protobuf_c_message_unpack (&rpc__req__wifi_connect__descriptor, - allocator, len, data); -} -void rpc__req__wifi_connect__free_unpacked - (RpcReqWifiConnect *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_connect__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_connect__init - (RpcRespWifiConnect *message) -{ - static const RpcRespWifiConnect init_value = RPC__RESP__WIFI_CONNECT__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_connect__get_packed_size - (const RpcRespWifiConnect *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_connect__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_connect__pack - (const RpcRespWifiConnect *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_connect__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_connect__pack_to_buffer - (const RpcRespWifiConnect *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_connect__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiConnect * - rpc__resp__wifi_connect__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiConnect *) - protobuf_c_message_unpack (&rpc__resp__wifi_connect__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_connect__free_unpacked - (RpcRespWifiConnect *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_connect__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_disconnect__init - (RpcReqWifiDisconnect *message) -{ - static const RpcReqWifiDisconnect init_value = RPC__REQ__WIFI_DISCONNECT__INIT; - *message = init_value; -} -size_t rpc__req__wifi_disconnect__get_packed_size - (const RpcReqWifiDisconnect *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_disconnect__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_disconnect__pack - (const RpcReqWifiDisconnect *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_disconnect__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_disconnect__pack_to_buffer - (const RpcReqWifiDisconnect *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_disconnect__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiDisconnect * - rpc__req__wifi_disconnect__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiDisconnect *) - protobuf_c_message_unpack (&rpc__req__wifi_disconnect__descriptor, - allocator, len, data); -} -void rpc__req__wifi_disconnect__free_unpacked - (RpcReqWifiDisconnect *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_disconnect__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_disconnect__init - (RpcRespWifiDisconnect *message) -{ - static const RpcRespWifiDisconnect init_value = RPC__RESP__WIFI_DISCONNECT__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_disconnect__get_packed_size - (const RpcRespWifiDisconnect *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_disconnect__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_disconnect__pack - (const RpcRespWifiDisconnect *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_disconnect__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_disconnect__pack_to_buffer - (const RpcRespWifiDisconnect *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_disconnect__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiDisconnect * - rpc__resp__wifi_disconnect__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiDisconnect *) - protobuf_c_message_unpack (&rpc__resp__wifi_disconnect__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_disconnect__free_unpacked - (RpcRespWifiDisconnect *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_disconnect__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_start__init - (RpcReqWifiStart *message) -{ - static const RpcReqWifiStart init_value = RPC__REQ__WIFI_START__INIT; - *message = init_value; -} -size_t rpc__req__wifi_start__get_packed_size - (const RpcReqWifiStart *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_start__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_start__pack - (const RpcReqWifiStart *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_start__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_start__pack_to_buffer - (const RpcReqWifiStart *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_start__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiStart * - rpc__req__wifi_start__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiStart *) - protobuf_c_message_unpack (&rpc__req__wifi_start__descriptor, - allocator, len, data); -} -void rpc__req__wifi_start__free_unpacked - (RpcReqWifiStart *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_start__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_start__init - (RpcRespWifiStart *message) -{ - static const RpcRespWifiStart init_value = RPC__RESP__WIFI_START__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_start__get_packed_size - (const RpcRespWifiStart *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_start__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_start__pack - (const RpcRespWifiStart *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_start__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_start__pack_to_buffer - (const RpcRespWifiStart *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_start__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiStart * - rpc__resp__wifi_start__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiStart *) - protobuf_c_message_unpack (&rpc__resp__wifi_start__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_start__free_unpacked - (RpcRespWifiStart *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_start__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_stop__init - (RpcReqWifiStop *message) -{ - static const RpcReqWifiStop init_value = RPC__REQ__WIFI_STOP__INIT; - *message = init_value; -} -size_t rpc__req__wifi_stop__get_packed_size - (const RpcReqWifiStop *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_stop__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_stop__pack - (const RpcReqWifiStop *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_stop__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_stop__pack_to_buffer - (const RpcReqWifiStop *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_stop__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiStop * - rpc__req__wifi_stop__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiStop *) - protobuf_c_message_unpack (&rpc__req__wifi_stop__descriptor, - allocator, len, data); -} -void rpc__req__wifi_stop__free_unpacked - (RpcReqWifiStop *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_stop__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_stop__init - (RpcRespWifiStop *message) -{ - static const RpcRespWifiStop init_value = RPC__RESP__WIFI_STOP__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_stop__get_packed_size - (const RpcRespWifiStop *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_stop__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_stop__pack - (const RpcRespWifiStop *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_stop__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_stop__pack_to_buffer - (const RpcRespWifiStop *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_stop__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiStop * - rpc__resp__wifi_stop__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiStop *) - protobuf_c_message_unpack (&rpc__resp__wifi_stop__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_stop__free_unpacked - (RpcRespWifiStop *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_stop__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_scan_start__init - (RpcReqWifiScanStart *message) -{ - static const RpcReqWifiScanStart init_value = RPC__REQ__WIFI_SCAN_START__INIT; - *message = init_value; -} -size_t rpc__req__wifi_scan_start__get_packed_size - (const RpcReqWifiScanStart *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_scan_start__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_scan_start__pack - (const RpcReqWifiScanStart *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_scan_start__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_scan_start__pack_to_buffer - (const RpcReqWifiScanStart *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_scan_start__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiScanStart * - rpc__req__wifi_scan_start__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiScanStart *) - protobuf_c_message_unpack (&rpc__req__wifi_scan_start__descriptor, - allocator, len, data); -} -void rpc__req__wifi_scan_start__free_unpacked - (RpcReqWifiScanStart *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_scan_start__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_scan_start__init - (RpcRespWifiScanStart *message) -{ - static const RpcRespWifiScanStart init_value = RPC__RESP__WIFI_SCAN_START__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_scan_start__get_packed_size - (const RpcRespWifiScanStart *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_scan_start__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_scan_start__pack - (const RpcRespWifiScanStart *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_scan_start__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_scan_start__pack_to_buffer - (const RpcRespWifiScanStart *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_scan_start__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiScanStart * - rpc__resp__wifi_scan_start__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiScanStart *) - protobuf_c_message_unpack (&rpc__resp__wifi_scan_start__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_scan_start__free_unpacked - (RpcRespWifiScanStart *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_scan_start__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_scan_stop__init - (RpcReqWifiScanStop *message) -{ - static const RpcReqWifiScanStop init_value = RPC__REQ__WIFI_SCAN_STOP__INIT; - *message = init_value; -} -size_t rpc__req__wifi_scan_stop__get_packed_size - (const RpcReqWifiScanStop *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_scan_stop__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_scan_stop__pack - (const RpcReqWifiScanStop *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_scan_stop__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_scan_stop__pack_to_buffer - (const RpcReqWifiScanStop *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_scan_stop__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiScanStop * - rpc__req__wifi_scan_stop__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiScanStop *) - protobuf_c_message_unpack (&rpc__req__wifi_scan_stop__descriptor, - allocator, len, data); -} -void rpc__req__wifi_scan_stop__free_unpacked - (RpcReqWifiScanStop *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_scan_stop__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_scan_stop__init - (RpcRespWifiScanStop *message) -{ - static const RpcRespWifiScanStop init_value = RPC__RESP__WIFI_SCAN_STOP__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_scan_stop__get_packed_size - (const RpcRespWifiScanStop *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_scan_stop__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_scan_stop__pack - (const RpcRespWifiScanStop *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_scan_stop__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_scan_stop__pack_to_buffer - (const RpcRespWifiScanStop *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_scan_stop__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiScanStop * - rpc__resp__wifi_scan_stop__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiScanStop *) - protobuf_c_message_unpack (&rpc__resp__wifi_scan_stop__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_scan_stop__free_unpacked - (RpcRespWifiScanStop *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_scan_stop__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_scan_get_ap_num__init - (RpcReqWifiScanGetApNum *message) -{ - static const RpcReqWifiScanGetApNum init_value = RPC__REQ__WIFI_SCAN_GET_AP_NUM__INIT; - *message = init_value; -} -size_t rpc__req__wifi_scan_get_ap_num__get_packed_size - (const RpcReqWifiScanGetApNum *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_num__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_scan_get_ap_num__pack - (const RpcReqWifiScanGetApNum *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_num__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_scan_get_ap_num__pack_to_buffer - (const RpcReqWifiScanGetApNum *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_num__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiScanGetApNum * - rpc__req__wifi_scan_get_ap_num__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiScanGetApNum *) - protobuf_c_message_unpack (&rpc__req__wifi_scan_get_ap_num__descriptor, - allocator, len, data); -} -void rpc__req__wifi_scan_get_ap_num__free_unpacked - (RpcReqWifiScanGetApNum *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_num__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_scan_get_ap_num__init - (RpcRespWifiScanGetApNum *message) -{ - static const RpcRespWifiScanGetApNum init_value = RPC__RESP__WIFI_SCAN_GET_AP_NUM__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_scan_get_ap_num__get_packed_size - (const RpcRespWifiScanGetApNum *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_num__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_scan_get_ap_num__pack - (const RpcRespWifiScanGetApNum *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_num__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_scan_get_ap_num__pack_to_buffer - (const RpcRespWifiScanGetApNum *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_num__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiScanGetApNum * - rpc__resp__wifi_scan_get_ap_num__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiScanGetApNum *) - protobuf_c_message_unpack (&rpc__resp__wifi_scan_get_ap_num__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_scan_get_ap_num__free_unpacked - (RpcRespWifiScanGetApNum *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_num__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_scan_get_ap_records__init - (RpcReqWifiScanGetApRecords *message) -{ - static const RpcReqWifiScanGetApRecords init_value = RPC__REQ__WIFI_SCAN_GET_AP_RECORDS__INIT; - *message = init_value; -} -size_t rpc__req__wifi_scan_get_ap_records__get_packed_size - (const RpcReqWifiScanGetApRecords *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_records__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_scan_get_ap_records__pack - (const RpcReqWifiScanGetApRecords *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_records__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_scan_get_ap_records__pack_to_buffer - (const RpcReqWifiScanGetApRecords *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_records__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiScanGetApRecords * - rpc__req__wifi_scan_get_ap_records__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiScanGetApRecords *) - protobuf_c_message_unpack (&rpc__req__wifi_scan_get_ap_records__descriptor, - allocator, len, data); -} -void rpc__req__wifi_scan_get_ap_records__free_unpacked - (RpcReqWifiScanGetApRecords *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_records__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_scan_get_ap_records__init - (RpcRespWifiScanGetApRecords *message) -{ - static const RpcRespWifiScanGetApRecords init_value = RPC__RESP__WIFI_SCAN_GET_AP_RECORDS__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_scan_get_ap_records__get_packed_size - (const RpcRespWifiScanGetApRecords *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_records__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_scan_get_ap_records__pack - (const RpcRespWifiScanGetApRecords *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_records__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_scan_get_ap_records__pack_to_buffer - (const RpcRespWifiScanGetApRecords *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_records__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiScanGetApRecords * - rpc__resp__wifi_scan_get_ap_records__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiScanGetApRecords *) - protobuf_c_message_unpack (&rpc__resp__wifi_scan_get_ap_records__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_scan_get_ap_records__free_unpacked - (RpcRespWifiScanGetApRecords *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_records__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_scan_get_ap_record__init - (RpcReqWifiScanGetApRecord *message) -{ - static const RpcReqWifiScanGetApRecord init_value = RPC__REQ__WIFI_SCAN_GET_AP_RECORD__INIT; - *message = init_value; -} -size_t rpc__req__wifi_scan_get_ap_record__get_packed_size - (const RpcReqWifiScanGetApRecord *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_record__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_scan_get_ap_record__pack - (const RpcReqWifiScanGetApRecord *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_record__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_scan_get_ap_record__pack_to_buffer - (const RpcReqWifiScanGetApRecord *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_record__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiScanGetApRecord * - rpc__req__wifi_scan_get_ap_record__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiScanGetApRecord *) - protobuf_c_message_unpack (&rpc__req__wifi_scan_get_ap_record__descriptor, - allocator, len, data); -} -void rpc__req__wifi_scan_get_ap_record__free_unpacked - (RpcReqWifiScanGetApRecord *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_record__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_scan_get_ap_record__init - (RpcRespWifiScanGetApRecord *message) -{ - static const RpcRespWifiScanGetApRecord init_value = RPC__RESP__WIFI_SCAN_GET_AP_RECORD__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_scan_get_ap_record__get_packed_size - (const RpcRespWifiScanGetApRecord *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_record__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_scan_get_ap_record__pack - (const RpcRespWifiScanGetApRecord *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_record__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_scan_get_ap_record__pack_to_buffer - (const RpcRespWifiScanGetApRecord *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_record__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiScanGetApRecord * - rpc__resp__wifi_scan_get_ap_record__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiScanGetApRecord *) - protobuf_c_message_unpack (&rpc__resp__wifi_scan_get_ap_record__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_scan_get_ap_record__free_unpacked - (RpcRespWifiScanGetApRecord *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_record__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_clear_ap_list__init - (RpcReqWifiClearApList *message) -{ - static const RpcReqWifiClearApList init_value = RPC__REQ__WIFI_CLEAR_AP_LIST__INIT; - *message = init_value; -} -size_t rpc__req__wifi_clear_ap_list__get_packed_size - (const RpcReqWifiClearApList *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_clear_ap_list__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_clear_ap_list__pack - (const RpcReqWifiClearApList *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_clear_ap_list__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_clear_ap_list__pack_to_buffer - (const RpcReqWifiClearApList *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_clear_ap_list__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiClearApList * - rpc__req__wifi_clear_ap_list__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiClearApList *) - protobuf_c_message_unpack (&rpc__req__wifi_clear_ap_list__descriptor, - allocator, len, data); -} -void rpc__req__wifi_clear_ap_list__free_unpacked - (RpcReqWifiClearApList *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_clear_ap_list__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_clear_ap_list__init - (RpcRespWifiClearApList *message) -{ - static const RpcRespWifiClearApList init_value = RPC__RESP__WIFI_CLEAR_AP_LIST__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_clear_ap_list__get_packed_size - (const RpcRespWifiClearApList *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_clear_ap_list__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_clear_ap_list__pack - (const RpcRespWifiClearApList *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_clear_ap_list__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_clear_ap_list__pack_to_buffer - (const RpcRespWifiClearApList *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_clear_ap_list__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiClearApList * - rpc__resp__wifi_clear_ap_list__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiClearApList *) - protobuf_c_message_unpack (&rpc__resp__wifi_clear_ap_list__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_clear_ap_list__free_unpacked - (RpcRespWifiClearApList *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_clear_ap_list__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_restore__init - (RpcReqWifiRestore *message) -{ - static const RpcReqWifiRestore init_value = RPC__REQ__WIFI_RESTORE__INIT; - *message = init_value; -} -size_t rpc__req__wifi_restore__get_packed_size - (const RpcReqWifiRestore *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_restore__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_restore__pack - (const RpcReqWifiRestore *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_restore__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_restore__pack_to_buffer - (const RpcReqWifiRestore *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_restore__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiRestore * - rpc__req__wifi_restore__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiRestore *) - protobuf_c_message_unpack (&rpc__req__wifi_restore__descriptor, - allocator, len, data); -} -void rpc__req__wifi_restore__free_unpacked - (RpcReqWifiRestore *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_restore__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_restore__init - (RpcRespWifiRestore *message) -{ - static const RpcRespWifiRestore init_value = RPC__RESP__WIFI_RESTORE__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_restore__get_packed_size - (const RpcRespWifiRestore *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_restore__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_restore__pack - (const RpcRespWifiRestore *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_restore__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_restore__pack_to_buffer - (const RpcRespWifiRestore *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_restore__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiRestore * - rpc__resp__wifi_restore__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiRestore *) - protobuf_c_message_unpack (&rpc__resp__wifi_restore__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_restore__free_unpacked - (RpcRespWifiRestore *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_restore__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_clear_fast_connect__init - (RpcReqWifiClearFastConnect *message) -{ - static const RpcReqWifiClearFastConnect init_value = RPC__REQ__WIFI_CLEAR_FAST_CONNECT__INIT; - *message = init_value; -} -size_t rpc__req__wifi_clear_fast_connect__get_packed_size - (const RpcReqWifiClearFastConnect *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_clear_fast_connect__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_clear_fast_connect__pack - (const RpcReqWifiClearFastConnect *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_clear_fast_connect__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_clear_fast_connect__pack_to_buffer - (const RpcReqWifiClearFastConnect *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_clear_fast_connect__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiClearFastConnect * - rpc__req__wifi_clear_fast_connect__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiClearFastConnect *) - protobuf_c_message_unpack (&rpc__req__wifi_clear_fast_connect__descriptor, - allocator, len, data); -} -void rpc__req__wifi_clear_fast_connect__free_unpacked - (RpcReqWifiClearFastConnect *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_clear_fast_connect__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_clear_fast_connect__init - (RpcRespWifiClearFastConnect *message) -{ - static const RpcRespWifiClearFastConnect init_value = RPC__RESP__WIFI_CLEAR_FAST_CONNECT__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_clear_fast_connect__get_packed_size - (const RpcRespWifiClearFastConnect *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_clear_fast_connect__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_clear_fast_connect__pack - (const RpcRespWifiClearFastConnect *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_clear_fast_connect__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_clear_fast_connect__pack_to_buffer - (const RpcRespWifiClearFastConnect *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_clear_fast_connect__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiClearFastConnect * - rpc__resp__wifi_clear_fast_connect__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiClearFastConnect *) - protobuf_c_message_unpack (&rpc__resp__wifi_clear_fast_connect__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_clear_fast_connect__free_unpacked - (RpcRespWifiClearFastConnect *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_clear_fast_connect__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_deauth_sta__init - (RpcReqWifiDeauthSta *message) -{ - static const RpcReqWifiDeauthSta init_value = RPC__REQ__WIFI_DEAUTH_STA__INIT; - *message = init_value; -} -size_t rpc__req__wifi_deauth_sta__get_packed_size - (const RpcReqWifiDeauthSta *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_deauth_sta__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_deauth_sta__pack - (const RpcReqWifiDeauthSta *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_deauth_sta__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_deauth_sta__pack_to_buffer - (const RpcReqWifiDeauthSta *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_deauth_sta__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiDeauthSta * - rpc__req__wifi_deauth_sta__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiDeauthSta *) - protobuf_c_message_unpack (&rpc__req__wifi_deauth_sta__descriptor, - allocator, len, data); -} -void rpc__req__wifi_deauth_sta__free_unpacked - (RpcReqWifiDeauthSta *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_deauth_sta__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_deauth_sta__init - (RpcRespWifiDeauthSta *message) -{ - static const RpcRespWifiDeauthSta init_value = RPC__RESP__WIFI_DEAUTH_STA__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_deauth_sta__get_packed_size - (const RpcRespWifiDeauthSta *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_deauth_sta__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_deauth_sta__pack - (const RpcRespWifiDeauthSta *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_deauth_sta__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_deauth_sta__pack_to_buffer - (const RpcRespWifiDeauthSta *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_deauth_sta__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiDeauthSta * - rpc__resp__wifi_deauth_sta__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiDeauthSta *) - protobuf_c_message_unpack (&rpc__resp__wifi_deauth_sta__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_deauth_sta__free_unpacked - (RpcRespWifiDeauthSta *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_deauth_sta__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_sta_get_ap_info__init - (RpcReqWifiStaGetApInfo *message) -{ - static const RpcReqWifiStaGetApInfo init_value = RPC__REQ__WIFI_STA_GET_AP_INFO__INIT; - *message = init_value; -} -size_t rpc__req__wifi_sta_get_ap_info__get_packed_size - (const RpcReqWifiStaGetApInfo *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_sta_get_ap_info__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_sta_get_ap_info__pack - (const RpcReqWifiStaGetApInfo *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_sta_get_ap_info__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_sta_get_ap_info__pack_to_buffer - (const RpcReqWifiStaGetApInfo *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_sta_get_ap_info__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiStaGetApInfo * - rpc__req__wifi_sta_get_ap_info__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiStaGetApInfo *) - protobuf_c_message_unpack (&rpc__req__wifi_sta_get_ap_info__descriptor, - allocator, len, data); -} -void rpc__req__wifi_sta_get_ap_info__free_unpacked - (RpcReqWifiStaGetApInfo *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_sta_get_ap_info__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_sta_get_ap_info__init - (RpcRespWifiStaGetApInfo *message) -{ - static const RpcRespWifiStaGetApInfo init_value = RPC__RESP__WIFI_STA_GET_AP_INFO__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_sta_get_ap_info__get_packed_size - (const RpcRespWifiStaGetApInfo *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_ap_info__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_sta_get_ap_info__pack - (const RpcRespWifiStaGetApInfo *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_ap_info__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_sta_get_ap_info__pack_to_buffer - (const RpcRespWifiStaGetApInfo *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_ap_info__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiStaGetApInfo * - rpc__resp__wifi_sta_get_ap_info__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiStaGetApInfo *) - protobuf_c_message_unpack (&rpc__resp__wifi_sta_get_ap_info__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_sta_get_ap_info__free_unpacked - (RpcRespWifiStaGetApInfo *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_ap_info__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_set_protocol__init - (RpcReqWifiSetProtocol *message) -{ - static const RpcReqWifiSetProtocol init_value = RPC__REQ__WIFI_SET_PROTOCOL__INIT; - *message = init_value; -} -size_t rpc__req__wifi_set_protocol__get_packed_size - (const RpcReqWifiSetProtocol *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_protocol__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_set_protocol__pack - (const RpcReqWifiSetProtocol *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_protocol__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_set_protocol__pack_to_buffer - (const RpcReqWifiSetProtocol *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_protocol__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiSetProtocol * - rpc__req__wifi_set_protocol__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiSetProtocol *) - protobuf_c_message_unpack (&rpc__req__wifi_set_protocol__descriptor, - allocator, len, data); -} -void rpc__req__wifi_set_protocol__free_unpacked - (RpcReqWifiSetProtocol *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_set_protocol__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_set_protocol__init - (RpcRespWifiSetProtocol *message) -{ - static const RpcRespWifiSetProtocol init_value = RPC__RESP__WIFI_SET_PROTOCOL__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_set_protocol__get_packed_size - (const RpcRespWifiSetProtocol *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_protocol__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_set_protocol__pack - (const RpcRespWifiSetProtocol *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_protocol__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_set_protocol__pack_to_buffer - (const RpcRespWifiSetProtocol *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_protocol__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiSetProtocol * - rpc__resp__wifi_set_protocol__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiSetProtocol *) - protobuf_c_message_unpack (&rpc__resp__wifi_set_protocol__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_set_protocol__free_unpacked - (RpcRespWifiSetProtocol *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_set_protocol__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_get_protocol__init - (RpcReqWifiGetProtocol *message) -{ - static const RpcReqWifiGetProtocol init_value = RPC__REQ__WIFI_GET_PROTOCOL__INIT; - *message = init_value; -} -size_t rpc__req__wifi_get_protocol__get_packed_size - (const RpcReqWifiGetProtocol *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_protocol__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_get_protocol__pack - (const RpcReqWifiGetProtocol *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_protocol__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_get_protocol__pack_to_buffer - (const RpcReqWifiGetProtocol *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_protocol__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiGetProtocol * - rpc__req__wifi_get_protocol__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiGetProtocol *) - protobuf_c_message_unpack (&rpc__req__wifi_get_protocol__descriptor, - allocator, len, data); -} -void rpc__req__wifi_get_protocol__free_unpacked - (RpcReqWifiGetProtocol *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_get_protocol__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_get_protocol__init - (RpcRespWifiGetProtocol *message) -{ - static const RpcRespWifiGetProtocol init_value = RPC__RESP__WIFI_GET_PROTOCOL__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_get_protocol__get_packed_size - (const RpcRespWifiGetProtocol *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_protocol__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_get_protocol__pack - (const RpcRespWifiGetProtocol *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_protocol__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_get_protocol__pack_to_buffer - (const RpcRespWifiGetProtocol *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_protocol__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiGetProtocol * - rpc__resp__wifi_get_protocol__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiGetProtocol *) - protobuf_c_message_unpack (&rpc__resp__wifi_get_protocol__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_get_protocol__free_unpacked - (RpcRespWifiGetProtocol *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_get_protocol__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_set_bandwidth__init - (RpcReqWifiSetBandwidth *message) -{ - static const RpcReqWifiSetBandwidth init_value = RPC__REQ__WIFI_SET_BANDWIDTH__INIT; - *message = init_value; -} -size_t rpc__req__wifi_set_bandwidth__get_packed_size - (const RpcReqWifiSetBandwidth *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_bandwidth__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_set_bandwidth__pack - (const RpcReqWifiSetBandwidth *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_bandwidth__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_set_bandwidth__pack_to_buffer - (const RpcReqWifiSetBandwidth *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_bandwidth__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiSetBandwidth * - rpc__req__wifi_set_bandwidth__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiSetBandwidth *) - protobuf_c_message_unpack (&rpc__req__wifi_set_bandwidth__descriptor, - allocator, len, data); -} -void rpc__req__wifi_set_bandwidth__free_unpacked - (RpcReqWifiSetBandwidth *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_set_bandwidth__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_set_bandwidth__init - (RpcRespWifiSetBandwidth *message) -{ - static const RpcRespWifiSetBandwidth init_value = RPC__RESP__WIFI_SET_BANDWIDTH__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_set_bandwidth__get_packed_size - (const RpcRespWifiSetBandwidth *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidth__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_set_bandwidth__pack - (const RpcRespWifiSetBandwidth *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidth__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_set_bandwidth__pack_to_buffer - (const RpcRespWifiSetBandwidth *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidth__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiSetBandwidth * - rpc__resp__wifi_set_bandwidth__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiSetBandwidth *) - protobuf_c_message_unpack (&rpc__resp__wifi_set_bandwidth__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_set_bandwidth__free_unpacked - (RpcRespWifiSetBandwidth *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidth__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_get_bandwidth__init - (RpcReqWifiGetBandwidth *message) -{ - static const RpcReqWifiGetBandwidth init_value = RPC__REQ__WIFI_GET_BANDWIDTH__INIT; - *message = init_value; -} -size_t rpc__req__wifi_get_bandwidth__get_packed_size - (const RpcReqWifiGetBandwidth *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_bandwidth__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_get_bandwidth__pack - (const RpcReqWifiGetBandwidth *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_bandwidth__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_get_bandwidth__pack_to_buffer - (const RpcReqWifiGetBandwidth *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_bandwidth__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiGetBandwidth * - rpc__req__wifi_get_bandwidth__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiGetBandwidth *) - protobuf_c_message_unpack (&rpc__req__wifi_get_bandwidth__descriptor, - allocator, len, data); -} -void rpc__req__wifi_get_bandwidth__free_unpacked - (RpcReqWifiGetBandwidth *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_get_bandwidth__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_get_bandwidth__init - (RpcRespWifiGetBandwidth *message) -{ - static const RpcRespWifiGetBandwidth init_value = RPC__RESP__WIFI_GET_BANDWIDTH__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_get_bandwidth__get_packed_size - (const RpcRespWifiGetBandwidth *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidth__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_get_bandwidth__pack - (const RpcRespWifiGetBandwidth *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidth__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_get_bandwidth__pack_to_buffer - (const RpcRespWifiGetBandwidth *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidth__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiGetBandwidth * - rpc__resp__wifi_get_bandwidth__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiGetBandwidth *) - protobuf_c_message_unpack (&rpc__resp__wifi_get_bandwidth__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_get_bandwidth__free_unpacked - (RpcRespWifiGetBandwidth *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidth__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_set_channel__init - (RpcReqWifiSetChannel *message) -{ - static const RpcReqWifiSetChannel init_value = RPC__REQ__WIFI_SET_CHANNEL__INIT; - *message = init_value; -} -size_t rpc__req__wifi_set_channel__get_packed_size - (const RpcReqWifiSetChannel *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_channel__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_set_channel__pack - (const RpcReqWifiSetChannel *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_channel__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_set_channel__pack_to_buffer - (const RpcReqWifiSetChannel *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_channel__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiSetChannel * - rpc__req__wifi_set_channel__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiSetChannel *) - protobuf_c_message_unpack (&rpc__req__wifi_set_channel__descriptor, - allocator, len, data); -} -void rpc__req__wifi_set_channel__free_unpacked - (RpcReqWifiSetChannel *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_set_channel__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_set_channel__init - (RpcRespWifiSetChannel *message) -{ - static const RpcRespWifiSetChannel init_value = RPC__RESP__WIFI_SET_CHANNEL__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_set_channel__get_packed_size - (const RpcRespWifiSetChannel *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_channel__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_set_channel__pack - (const RpcRespWifiSetChannel *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_channel__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_set_channel__pack_to_buffer - (const RpcRespWifiSetChannel *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_channel__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiSetChannel * - rpc__resp__wifi_set_channel__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiSetChannel *) - protobuf_c_message_unpack (&rpc__resp__wifi_set_channel__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_set_channel__free_unpacked - (RpcRespWifiSetChannel *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_set_channel__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_get_channel__init - (RpcReqWifiGetChannel *message) -{ - static const RpcReqWifiGetChannel init_value = RPC__REQ__WIFI_GET_CHANNEL__INIT; - *message = init_value; -} -size_t rpc__req__wifi_get_channel__get_packed_size - (const RpcReqWifiGetChannel *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_channel__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_get_channel__pack - (const RpcReqWifiGetChannel *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_channel__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_get_channel__pack_to_buffer - (const RpcReqWifiGetChannel *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_channel__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiGetChannel * - rpc__req__wifi_get_channel__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiGetChannel *) - protobuf_c_message_unpack (&rpc__req__wifi_get_channel__descriptor, - allocator, len, data); -} -void rpc__req__wifi_get_channel__free_unpacked - (RpcReqWifiGetChannel *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_get_channel__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_get_channel__init - (RpcRespWifiGetChannel *message) -{ - static const RpcRespWifiGetChannel init_value = RPC__RESP__WIFI_GET_CHANNEL__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_get_channel__get_packed_size - (const RpcRespWifiGetChannel *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_channel__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_get_channel__pack - (const RpcRespWifiGetChannel *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_channel__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_get_channel__pack_to_buffer - (const RpcRespWifiGetChannel *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_channel__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiGetChannel * - rpc__resp__wifi_get_channel__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiGetChannel *) - protobuf_c_message_unpack (&rpc__resp__wifi_get_channel__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_get_channel__free_unpacked - (RpcRespWifiGetChannel *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_get_channel__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_set_storage__init - (RpcReqWifiSetStorage *message) -{ - static const RpcReqWifiSetStorage init_value = RPC__REQ__WIFI_SET_STORAGE__INIT; - *message = init_value; -} -size_t rpc__req__wifi_set_storage__get_packed_size - (const RpcReqWifiSetStorage *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_storage__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_set_storage__pack - (const RpcReqWifiSetStorage *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_storage__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_set_storage__pack_to_buffer - (const RpcReqWifiSetStorage *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_storage__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiSetStorage * - rpc__req__wifi_set_storage__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiSetStorage *) - protobuf_c_message_unpack (&rpc__req__wifi_set_storage__descriptor, - allocator, len, data); -} -void rpc__req__wifi_set_storage__free_unpacked - (RpcReqWifiSetStorage *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_set_storage__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_set_storage__init - (RpcRespWifiSetStorage *message) -{ - static const RpcRespWifiSetStorage init_value = RPC__RESP__WIFI_SET_STORAGE__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_set_storage__get_packed_size - (const RpcRespWifiSetStorage *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_storage__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_set_storage__pack - (const RpcRespWifiSetStorage *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_storage__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_set_storage__pack_to_buffer - (const RpcRespWifiSetStorage *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_storage__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiSetStorage * - rpc__resp__wifi_set_storage__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiSetStorage *) - protobuf_c_message_unpack (&rpc__resp__wifi_set_storage__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_set_storage__free_unpacked - (RpcRespWifiSetStorage *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_set_storage__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_set_country_code__init - (RpcReqWifiSetCountryCode *message) -{ - static const RpcReqWifiSetCountryCode init_value = RPC__REQ__WIFI_SET_COUNTRY_CODE__INIT; - *message = init_value; -} -size_t rpc__req__wifi_set_country_code__get_packed_size - (const RpcReqWifiSetCountryCode *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_country_code__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_set_country_code__pack - (const RpcReqWifiSetCountryCode *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_country_code__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_set_country_code__pack_to_buffer - (const RpcReqWifiSetCountryCode *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_country_code__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiSetCountryCode * - rpc__req__wifi_set_country_code__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiSetCountryCode *) - protobuf_c_message_unpack (&rpc__req__wifi_set_country_code__descriptor, - allocator, len, data); -} -void rpc__req__wifi_set_country_code__free_unpacked - (RpcReqWifiSetCountryCode *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_set_country_code__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_set_country_code__init - (RpcRespWifiSetCountryCode *message) -{ - static const RpcRespWifiSetCountryCode init_value = RPC__RESP__WIFI_SET_COUNTRY_CODE__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_set_country_code__get_packed_size - (const RpcRespWifiSetCountryCode *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_country_code__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_set_country_code__pack - (const RpcRespWifiSetCountryCode *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_country_code__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_set_country_code__pack_to_buffer - (const RpcRespWifiSetCountryCode *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_country_code__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiSetCountryCode * - rpc__resp__wifi_set_country_code__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiSetCountryCode *) - protobuf_c_message_unpack (&rpc__resp__wifi_set_country_code__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_set_country_code__free_unpacked - (RpcRespWifiSetCountryCode *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_set_country_code__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_get_country_code__init - (RpcReqWifiGetCountryCode *message) -{ - static const RpcReqWifiGetCountryCode init_value = RPC__REQ__WIFI_GET_COUNTRY_CODE__INIT; - *message = init_value; -} -size_t rpc__req__wifi_get_country_code__get_packed_size - (const RpcReqWifiGetCountryCode *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_country_code__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_get_country_code__pack - (const RpcReqWifiGetCountryCode *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_country_code__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_get_country_code__pack_to_buffer - (const RpcReqWifiGetCountryCode *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_country_code__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiGetCountryCode * - rpc__req__wifi_get_country_code__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiGetCountryCode *) - protobuf_c_message_unpack (&rpc__req__wifi_get_country_code__descriptor, - allocator, len, data); -} -void rpc__req__wifi_get_country_code__free_unpacked - (RpcReqWifiGetCountryCode *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_get_country_code__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_get_country_code__init - (RpcRespWifiGetCountryCode *message) -{ - static const RpcRespWifiGetCountryCode init_value = RPC__RESP__WIFI_GET_COUNTRY_CODE__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_get_country_code__get_packed_size - (const RpcRespWifiGetCountryCode *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_country_code__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_get_country_code__pack - (const RpcRespWifiGetCountryCode *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_country_code__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_get_country_code__pack_to_buffer - (const RpcRespWifiGetCountryCode *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_country_code__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiGetCountryCode * - rpc__resp__wifi_get_country_code__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiGetCountryCode *) - protobuf_c_message_unpack (&rpc__resp__wifi_get_country_code__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_get_country_code__free_unpacked - (RpcRespWifiGetCountryCode *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_get_country_code__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_set_country__init - (RpcReqWifiSetCountry *message) -{ - static const RpcReqWifiSetCountry init_value = RPC__REQ__WIFI_SET_COUNTRY__INIT; - *message = init_value; -} -size_t rpc__req__wifi_set_country__get_packed_size - (const RpcReqWifiSetCountry *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_country__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_set_country__pack - (const RpcReqWifiSetCountry *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_country__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_set_country__pack_to_buffer - (const RpcReqWifiSetCountry *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_country__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiSetCountry * - rpc__req__wifi_set_country__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiSetCountry *) - protobuf_c_message_unpack (&rpc__req__wifi_set_country__descriptor, - allocator, len, data); -} -void rpc__req__wifi_set_country__free_unpacked - (RpcReqWifiSetCountry *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_set_country__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_set_country__init - (RpcRespWifiSetCountry *message) -{ - static const RpcRespWifiSetCountry init_value = RPC__RESP__WIFI_SET_COUNTRY__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_set_country__get_packed_size - (const RpcRespWifiSetCountry *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_country__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_set_country__pack - (const RpcRespWifiSetCountry *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_country__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_set_country__pack_to_buffer - (const RpcRespWifiSetCountry *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_country__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiSetCountry * - rpc__resp__wifi_set_country__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiSetCountry *) - protobuf_c_message_unpack (&rpc__resp__wifi_set_country__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_set_country__free_unpacked - (RpcRespWifiSetCountry *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_set_country__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_get_country__init - (RpcReqWifiGetCountry *message) -{ - static const RpcReqWifiGetCountry init_value = RPC__REQ__WIFI_GET_COUNTRY__INIT; - *message = init_value; -} -size_t rpc__req__wifi_get_country__get_packed_size - (const RpcReqWifiGetCountry *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_country__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_get_country__pack - (const RpcReqWifiGetCountry *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_country__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_get_country__pack_to_buffer - (const RpcReqWifiGetCountry *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_country__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiGetCountry * - rpc__req__wifi_get_country__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiGetCountry *) - protobuf_c_message_unpack (&rpc__req__wifi_get_country__descriptor, - allocator, len, data); -} -void rpc__req__wifi_get_country__free_unpacked - (RpcReqWifiGetCountry *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_get_country__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_get_country__init - (RpcRespWifiGetCountry *message) -{ - static const RpcRespWifiGetCountry init_value = RPC__RESP__WIFI_GET_COUNTRY__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_get_country__get_packed_size - (const RpcRespWifiGetCountry *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_country__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_get_country__pack - (const RpcRespWifiGetCountry *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_country__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_get_country__pack_to_buffer - (const RpcRespWifiGetCountry *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_country__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiGetCountry * - rpc__resp__wifi_get_country__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiGetCountry *) - protobuf_c_message_unpack (&rpc__resp__wifi_get_country__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_get_country__free_unpacked - (RpcRespWifiGetCountry *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_get_country__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_ap_get_sta_list__init - (RpcReqWifiApGetStaList *message) -{ - static const RpcReqWifiApGetStaList init_value = RPC__REQ__WIFI_AP_GET_STA_LIST__INIT; - *message = init_value; -} -size_t rpc__req__wifi_ap_get_sta_list__get_packed_size - (const RpcReqWifiApGetStaList *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_list__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_ap_get_sta_list__pack - (const RpcReqWifiApGetStaList *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_list__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_ap_get_sta_list__pack_to_buffer - (const RpcReqWifiApGetStaList *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_list__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiApGetStaList * - rpc__req__wifi_ap_get_sta_list__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiApGetStaList *) - protobuf_c_message_unpack (&rpc__req__wifi_ap_get_sta_list__descriptor, - allocator, len, data); -} -void rpc__req__wifi_ap_get_sta_list__free_unpacked - (RpcReqWifiApGetStaList *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_list__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_ap_get_sta_list__init - (RpcRespWifiApGetStaList *message) -{ - static const RpcRespWifiApGetStaList init_value = RPC__RESP__WIFI_AP_GET_STA_LIST__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_ap_get_sta_list__get_packed_size - (const RpcRespWifiApGetStaList *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_list__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_ap_get_sta_list__pack - (const RpcRespWifiApGetStaList *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_list__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_ap_get_sta_list__pack_to_buffer - (const RpcRespWifiApGetStaList *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_list__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiApGetStaList * - rpc__resp__wifi_ap_get_sta_list__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiApGetStaList *) - protobuf_c_message_unpack (&rpc__resp__wifi_ap_get_sta_list__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_ap_get_sta_list__free_unpacked - (RpcRespWifiApGetStaList *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_list__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_ap_get_sta_aid__init - (RpcReqWifiApGetStaAid *message) -{ - static const RpcReqWifiApGetStaAid init_value = RPC__REQ__WIFI_AP_GET_STA_AID__INIT; - *message = init_value; -} -size_t rpc__req__wifi_ap_get_sta_aid__get_packed_size - (const RpcReqWifiApGetStaAid *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_aid__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_ap_get_sta_aid__pack - (const RpcReqWifiApGetStaAid *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_aid__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_ap_get_sta_aid__pack_to_buffer - (const RpcReqWifiApGetStaAid *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_aid__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiApGetStaAid * - rpc__req__wifi_ap_get_sta_aid__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiApGetStaAid *) - protobuf_c_message_unpack (&rpc__req__wifi_ap_get_sta_aid__descriptor, - allocator, len, data); -} -void rpc__req__wifi_ap_get_sta_aid__free_unpacked - (RpcReqWifiApGetStaAid *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_aid__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_sta_get_negotiated_phymode__init - (RpcReqWifiStaGetNegotiatedPhymode *message) -{ - static const RpcReqWifiStaGetNegotiatedPhymode init_value = RPC__REQ__WIFI_STA_GET_NEGOTIATED_PHYMODE__INIT; - *message = init_value; -} -size_t rpc__req__wifi_sta_get_negotiated_phymode__get_packed_size - (const RpcReqWifiStaGetNegotiatedPhymode *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_sta_get_negotiated_phymode__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_sta_get_negotiated_phymode__pack - (const RpcReqWifiStaGetNegotiatedPhymode *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_sta_get_negotiated_phymode__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_sta_get_negotiated_phymode__pack_to_buffer - (const RpcReqWifiStaGetNegotiatedPhymode *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_sta_get_negotiated_phymode__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiStaGetNegotiatedPhymode * - rpc__req__wifi_sta_get_negotiated_phymode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiStaGetNegotiatedPhymode *) - protobuf_c_message_unpack (&rpc__req__wifi_sta_get_negotiated_phymode__descriptor, - allocator, len, data); -} -void rpc__req__wifi_sta_get_negotiated_phymode__free_unpacked - (RpcReqWifiStaGetNegotiatedPhymode *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_sta_get_negotiated_phymode__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_sta_get_negotiated_phymode__init - (RpcRespWifiStaGetNegotiatedPhymode *message) -{ - static const RpcRespWifiStaGetNegotiatedPhymode init_value = RPC__RESP__WIFI_STA_GET_NEGOTIATED_PHYMODE__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_sta_get_negotiated_phymode__get_packed_size - (const RpcRespWifiStaGetNegotiatedPhymode *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_negotiated_phymode__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_sta_get_negotiated_phymode__pack - (const RpcRespWifiStaGetNegotiatedPhymode *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_negotiated_phymode__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_sta_get_negotiated_phymode__pack_to_buffer - (const RpcRespWifiStaGetNegotiatedPhymode *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_negotiated_phymode__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiStaGetNegotiatedPhymode * - rpc__resp__wifi_sta_get_negotiated_phymode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiStaGetNegotiatedPhymode *) - protobuf_c_message_unpack (&rpc__resp__wifi_sta_get_negotiated_phymode__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_sta_get_negotiated_phymode__free_unpacked - (RpcRespWifiStaGetNegotiatedPhymode *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_negotiated_phymode__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_ap_get_sta_aid__init - (RpcRespWifiApGetStaAid *message) -{ - static const RpcRespWifiApGetStaAid init_value = RPC__RESP__WIFI_AP_GET_STA_AID__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_ap_get_sta_aid__get_packed_size - (const RpcRespWifiApGetStaAid *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_aid__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_ap_get_sta_aid__pack - (const RpcRespWifiApGetStaAid *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_aid__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_ap_get_sta_aid__pack_to_buffer - (const RpcRespWifiApGetStaAid *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_aid__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiApGetStaAid * - rpc__resp__wifi_ap_get_sta_aid__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiApGetStaAid *) - protobuf_c_message_unpack (&rpc__resp__wifi_ap_get_sta_aid__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_ap_get_sta_aid__free_unpacked - (RpcRespWifiApGetStaAid *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_aid__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_sta_get_rssi__init - (RpcReqWifiStaGetRssi *message) -{ - static const RpcReqWifiStaGetRssi init_value = RPC__REQ__WIFI_STA_GET_RSSI__INIT; - *message = init_value; -} -size_t rpc__req__wifi_sta_get_rssi__get_packed_size - (const RpcReqWifiStaGetRssi *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_sta_get_rssi__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_sta_get_rssi__pack - (const RpcReqWifiStaGetRssi *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_sta_get_rssi__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_sta_get_rssi__pack_to_buffer - (const RpcReqWifiStaGetRssi *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_sta_get_rssi__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiStaGetRssi * - rpc__req__wifi_sta_get_rssi__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiStaGetRssi *) - protobuf_c_message_unpack (&rpc__req__wifi_sta_get_rssi__descriptor, - allocator, len, data); -} -void rpc__req__wifi_sta_get_rssi__free_unpacked - (RpcReqWifiStaGetRssi *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_sta_get_rssi__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_sta_get_rssi__init - (RpcRespWifiStaGetRssi *message) -{ - static const RpcRespWifiStaGetRssi init_value = RPC__RESP__WIFI_STA_GET_RSSI__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_sta_get_rssi__get_packed_size - (const RpcRespWifiStaGetRssi *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_rssi__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_sta_get_rssi__pack - (const RpcRespWifiStaGetRssi *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_rssi__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_sta_get_rssi__pack_to_buffer - (const RpcRespWifiStaGetRssi *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_rssi__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiStaGetRssi * - rpc__resp__wifi_sta_get_rssi__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiStaGetRssi *) - protobuf_c_message_unpack (&rpc__resp__wifi_sta_get_rssi__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_sta_get_rssi__free_unpacked - (RpcRespWifiStaGetRssi *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_rssi__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_sta_get_aid__init - (RpcReqWifiStaGetAid *message) -{ - static const RpcReqWifiStaGetAid init_value = RPC__REQ__WIFI_STA_GET_AID__INIT; - *message = init_value; -} -size_t rpc__req__wifi_sta_get_aid__get_packed_size - (const RpcReqWifiStaGetAid *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_sta_get_aid__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_sta_get_aid__pack - (const RpcReqWifiStaGetAid *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_sta_get_aid__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_sta_get_aid__pack_to_buffer - (const RpcReqWifiStaGetAid *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_sta_get_aid__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiStaGetAid * - rpc__req__wifi_sta_get_aid__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiStaGetAid *) - protobuf_c_message_unpack (&rpc__req__wifi_sta_get_aid__descriptor, - allocator, len, data); -} -void rpc__req__wifi_sta_get_aid__free_unpacked - (RpcReqWifiStaGetAid *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_sta_get_aid__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_sta_get_aid__init - (RpcRespWifiStaGetAid *message) -{ - static const RpcRespWifiStaGetAid init_value = RPC__RESP__WIFI_STA_GET_AID__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_sta_get_aid__get_packed_size - (const RpcRespWifiStaGetAid *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_aid__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_sta_get_aid__pack - (const RpcRespWifiStaGetAid *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_aid__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_sta_get_aid__pack_to_buffer - (const RpcRespWifiStaGetAid *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_aid__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiStaGetAid * - rpc__resp__wifi_sta_get_aid__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiStaGetAid *) - protobuf_c_message_unpack (&rpc__resp__wifi_sta_get_aid__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_sta_get_aid__free_unpacked - (RpcRespWifiStaGetAid *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_aid__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_set_protocols__init - (RpcReqWifiSetProtocols *message) -{ - static const RpcReqWifiSetProtocols init_value = RPC__REQ__WIFI_SET_PROTOCOLS__INIT; - *message = init_value; -} -size_t rpc__req__wifi_set_protocols__get_packed_size - (const RpcReqWifiSetProtocols *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_protocols__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_set_protocols__pack - (const RpcReqWifiSetProtocols *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_protocols__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_set_protocols__pack_to_buffer - (const RpcReqWifiSetProtocols *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_protocols__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiSetProtocols * - rpc__req__wifi_set_protocols__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiSetProtocols *) - protobuf_c_message_unpack (&rpc__req__wifi_set_protocols__descriptor, - allocator, len, data); -} -void rpc__req__wifi_set_protocols__free_unpacked - (RpcReqWifiSetProtocols *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_set_protocols__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_set_protocols__init - (RpcRespWifiSetProtocols *message) -{ - static const RpcRespWifiSetProtocols init_value = RPC__RESP__WIFI_SET_PROTOCOLS__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_set_protocols__get_packed_size - (const RpcRespWifiSetProtocols *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_protocols__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_set_protocols__pack - (const RpcRespWifiSetProtocols *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_protocols__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_set_protocols__pack_to_buffer - (const RpcRespWifiSetProtocols *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_protocols__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiSetProtocols * - rpc__resp__wifi_set_protocols__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiSetProtocols *) - protobuf_c_message_unpack (&rpc__resp__wifi_set_protocols__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_set_protocols__free_unpacked - (RpcRespWifiSetProtocols *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_set_protocols__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_get_protocols__init - (RpcReqWifiGetProtocols *message) -{ - static const RpcReqWifiGetProtocols init_value = RPC__REQ__WIFI_GET_PROTOCOLS__INIT; - *message = init_value; -} -size_t rpc__req__wifi_get_protocols__get_packed_size - (const RpcReqWifiGetProtocols *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_protocols__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_get_protocols__pack - (const RpcReqWifiGetProtocols *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_protocols__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_get_protocols__pack_to_buffer - (const RpcReqWifiGetProtocols *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_protocols__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiGetProtocols * - rpc__req__wifi_get_protocols__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiGetProtocols *) - protobuf_c_message_unpack (&rpc__req__wifi_get_protocols__descriptor, - allocator, len, data); -} -void rpc__req__wifi_get_protocols__free_unpacked - (RpcReqWifiGetProtocols *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_get_protocols__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_get_protocols__init - (RpcRespWifiGetProtocols *message) -{ - static const RpcRespWifiGetProtocols init_value = RPC__RESP__WIFI_GET_PROTOCOLS__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_get_protocols__get_packed_size - (const RpcRespWifiGetProtocols *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_protocols__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_get_protocols__pack - (const RpcRespWifiGetProtocols *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_protocols__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_get_protocols__pack_to_buffer - (const RpcRespWifiGetProtocols *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_protocols__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiGetProtocols * - rpc__resp__wifi_get_protocols__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiGetProtocols *) - protobuf_c_message_unpack (&rpc__resp__wifi_get_protocols__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_get_protocols__free_unpacked - (RpcRespWifiGetProtocols *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_get_protocols__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_set_bandwidths__init - (RpcReqWifiSetBandwidths *message) -{ - static const RpcReqWifiSetBandwidths init_value = RPC__REQ__WIFI_SET_BANDWIDTHS__INIT; - *message = init_value; -} -size_t rpc__req__wifi_set_bandwidths__get_packed_size - (const RpcReqWifiSetBandwidths *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_bandwidths__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_set_bandwidths__pack - (const RpcReqWifiSetBandwidths *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_bandwidths__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_set_bandwidths__pack_to_buffer - (const RpcReqWifiSetBandwidths *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_bandwidths__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiSetBandwidths * - rpc__req__wifi_set_bandwidths__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiSetBandwidths *) - protobuf_c_message_unpack (&rpc__req__wifi_set_bandwidths__descriptor, - allocator, len, data); -} -void rpc__req__wifi_set_bandwidths__free_unpacked - (RpcReqWifiSetBandwidths *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_set_bandwidths__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_set_bandwidths__init - (RpcRespWifiSetBandwidths *message) -{ - static const RpcRespWifiSetBandwidths init_value = RPC__RESP__WIFI_SET_BANDWIDTHS__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_set_bandwidths__get_packed_size - (const RpcRespWifiSetBandwidths *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidths__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_set_bandwidths__pack - (const RpcRespWifiSetBandwidths *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidths__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_set_bandwidths__pack_to_buffer - (const RpcRespWifiSetBandwidths *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidths__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiSetBandwidths * - rpc__resp__wifi_set_bandwidths__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiSetBandwidths *) - protobuf_c_message_unpack (&rpc__resp__wifi_set_bandwidths__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_set_bandwidths__free_unpacked - (RpcRespWifiSetBandwidths *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidths__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_get_bandwidths__init - (RpcReqWifiGetBandwidths *message) -{ - static const RpcReqWifiGetBandwidths init_value = RPC__REQ__WIFI_GET_BANDWIDTHS__INIT; - *message = init_value; -} -size_t rpc__req__wifi_get_bandwidths__get_packed_size - (const RpcReqWifiGetBandwidths *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_bandwidths__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_get_bandwidths__pack - (const RpcReqWifiGetBandwidths *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_bandwidths__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_get_bandwidths__pack_to_buffer - (const RpcReqWifiGetBandwidths *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_bandwidths__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiGetBandwidths * - rpc__req__wifi_get_bandwidths__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiGetBandwidths *) - protobuf_c_message_unpack (&rpc__req__wifi_get_bandwidths__descriptor, - allocator, len, data); -} -void rpc__req__wifi_get_bandwidths__free_unpacked - (RpcReqWifiGetBandwidths *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_get_bandwidths__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_get_bandwidths__init - (RpcRespWifiGetBandwidths *message) -{ - static const RpcRespWifiGetBandwidths init_value = RPC__RESP__WIFI_GET_BANDWIDTHS__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_get_bandwidths__get_packed_size - (const RpcRespWifiGetBandwidths *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidths__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_get_bandwidths__pack - (const RpcRespWifiGetBandwidths *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidths__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_get_bandwidths__pack_to_buffer - (const RpcRespWifiGetBandwidths *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidths__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiGetBandwidths * - rpc__resp__wifi_get_bandwidths__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiGetBandwidths *) - protobuf_c_message_unpack (&rpc__resp__wifi_get_bandwidths__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_get_bandwidths__free_unpacked - (RpcRespWifiGetBandwidths *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidths__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_set_band__init - (RpcReqWifiSetBand *message) -{ - static const RpcReqWifiSetBand init_value = RPC__REQ__WIFI_SET_BAND__INIT; - *message = init_value; -} -size_t rpc__req__wifi_set_band__get_packed_size - (const RpcReqWifiSetBand *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_band__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_set_band__pack - (const RpcReqWifiSetBand *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_band__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_set_band__pack_to_buffer - (const RpcReqWifiSetBand *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_band__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiSetBand * - rpc__req__wifi_set_band__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiSetBand *) - protobuf_c_message_unpack (&rpc__req__wifi_set_band__descriptor, - allocator, len, data); -} -void rpc__req__wifi_set_band__free_unpacked - (RpcReqWifiSetBand *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_set_band__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_set_band__init - (RpcRespWifiSetBand *message) -{ - static const RpcRespWifiSetBand init_value = RPC__RESP__WIFI_SET_BAND__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_set_band__get_packed_size - (const RpcRespWifiSetBand *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_band__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_set_band__pack - (const RpcRespWifiSetBand *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_band__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_set_band__pack_to_buffer - (const RpcRespWifiSetBand *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_band__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiSetBand * - rpc__resp__wifi_set_band__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiSetBand *) - protobuf_c_message_unpack (&rpc__resp__wifi_set_band__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_set_band__free_unpacked - (RpcRespWifiSetBand *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_set_band__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_get_band__init - (RpcReqWifiGetBand *message) -{ - static const RpcReqWifiGetBand init_value = RPC__REQ__WIFI_GET_BAND__INIT; - *message = init_value; -} -size_t rpc__req__wifi_get_band__get_packed_size - (const RpcReqWifiGetBand *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_band__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_get_band__pack - (const RpcReqWifiGetBand *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_band__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_get_band__pack_to_buffer - (const RpcReqWifiGetBand *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_band__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiGetBand * - rpc__req__wifi_get_band__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiGetBand *) - protobuf_c_message_unpack (&rpc__req__wifi_get_band__descriptor, - allocator, len, data); -} -void rpc__req__wifi_get_band__free_unpacked - (RpcReqWifiGetBand *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_get_band__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_get_band__init - (RpcRespWifiGetBand *message) -{ - static const RpcRespWifiGetBand init_value = RPC__RESP__WIFI_GET_BAND__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_get_band__get_packed_size - (const RpcRespWifiGetBand *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_band__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_get_band__pack - (const RpcRespWifiGetBand *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_band__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_get_band__pack_to_buffer - (const RpcRespWifiGetBand *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_band__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiGetBand * - rpc__resp__wifi_get_band__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiGetBand *) - protobuf_c_message_unpack (&rpc__resp__wifi_get_band__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_get_band__free_unpacked - (RpcRespWifiGetBand *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_get_band__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_set_band_mode__init - (RpcReqWifiSetBandMode *message) -{ - static const RpcReqWifiSetBandMode init_value = RPC__REQ__WIFI_SET_BAND_MODE__INIT; - *message = init_value; -} -size_t rpc__req__wifi_set_band_mode__get_packed_size - (const RpcReqWifiSetBandMode *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_band_mode__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_set_band_mode__pack - (const RpcReqWifiSetBandMode *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_band_mode__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_set_band_mode__pack_to_buffer - (const RpcReqWifiSetBandMode *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_band_mode__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiSetBandMode * - rpc__req__wifi_set_band_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiSetBandMode *) - protobuf_c_message_unpack (&rpc__req__wifi_set_band_mode__descriptor, - allocator, len, data); -} -void rpc__req__wifi_set_band_mode__free_unpacked - (RpcReqWifiSetBandMode *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_set_band_mode__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_set_band_mode__init - (RpcRespWifiSetBandMode *message) -{ - static const RpcRespWifiSetBandMode init_value = RPC__RESP__WIFI_SET_BAND_MODE__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_set_band_mode__get_packed_size - (const RpcRespWifiSetBandMode *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_band_mode__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_set_band_mode__pack - (const RpcRespWifiSetBandMode *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_band_mode__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_set_band_mode__pack_to_buffer - (const RpcRespWifiSetBandMode *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_band_mode__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiSetBandMode * - rpc__resp__wifi_set_band_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiSetBandMode *) - protobuf_c_message_unpack (&rpc__resp__wifi_set_band_mode__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_set_band_mode__free_unpacked - (RpcRespWifiSetBandMode *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_set_band_mode__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_get_band_mode__init - (RpcReqWifiGetBandMode *message) -{ - static const RpcReqWifiGetBandMode init_value = RPC__REQ__WIFI_GET_BAND_MODE__INIT; - *message = init_value; -} -size_t rpc__req__wifi_get_band_mode__get_packed_size - (const RpcReqWifiGetBandMode *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_band_mode__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_get_band_mode__pack - (const RpcReqWifiGetBandMode *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_band_mode__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_get_band_mode__pack_to_buffer - (const RpcReqWifiGetBandMode *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_band_mode__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiGetBandMode * - rpc__req__wifi_get_band_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiGetBandMode *) - protobuf_c_message_unpack (&rpc__req__wifi_get_band_mode__descriptor, - allocator, len, data); -} -void rpc__req__wifi_get_band_mode__free_unpacked - (RpcReqWifiGetBandMode *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_get_band_mode__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_get_band_mode__init - (RpcRespWifiGetBandMode *message) -{ - static const RpcRespWifiGetBandMode init_value = RPC__RESP__WIFI_GET_BAND_MODE__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_get_band_mode__get_packed_size - (const RpcRespWifiGetBandMode *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_band_mode__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_get_band_mode__pack - (const RpcRespWifiGetBandMode *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_band_mode__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_get_band_mode__pack_to_buffer - (const RpcRespWifiGetBandMode *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_band_mode__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiGetBandMode * - rpc__resp__wifi_get_band_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiGetBandMode *) - protobuf_c_message_unpack (&rpc__resp__wifi_get_band_mode__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_get_band_mode__free_unpacked - (RpcRespWifiGetBandMode *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_get_band_mode__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__get_coprocessor_fw_version__init - (RpcReqGetCoprocessorFwVersion *message) -{ - static const RpcReqGetCoprocessorFwVersion init_value = RPC__REQ__GET_COPROCESSOR_FW_VERSION__INIT; - *message = init_value; -} -size_t rpc__req__get_coprocessor_fw_version__get_packed_size - (const RpcReqGetCoprocessorFwVersion *message) -{ - assert(message->base.descriptor == &rpc__req__get_coprocessor_fw_version__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__get_coprocessor_fw_version__pack - (const RpcReqGetCoprocessorFwVersion *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__get_coprocessor_fw_version__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__get_coprocessor_fw_version__pack_to_buffer - (const RpcReqGetCoprocessorFwVersion *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__get_coprocessor_fw_version__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqGetCoprocessorFwVersion * - rpc__req__get_coprocessor_fw_version__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqGetCoprocessorFwVersion *) - protobuf_c_message_unpack (&rpc__req__get_coprocessor_fw_version__descriptor, - allocator, len, data); -} -void rpc__req__get_coprocessor_fw_version__free_unpacked - (RpcReqGetCoprocessorFwVersion *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__get_coprocessor_fw_version__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__get_coprocessor_fw_version__init - (RpcRespGetCoprocessorFwVersion *message) -{ - static const RpcRespGetCoprocessorFwVersion init_value = RPC__RESP__GET_COPROCESSOR_FW_VERSION__INIT; - *message = init_value; -} -size_t rpc__resp__get_coprocessor_fw_version__get_packed_size - (const RpcRespGetCoprocessorFwVersion *message) -{ - assert(message->base.descriptor == &rpc__resp__get_coprocessor_fw_version__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__get_coprocessor_fw_version__pack - (const RpcRespGetCoprocessorFwVersion *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__get_coprocessor_fw_version__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__get_coprocessor_fw_version__pack_to_buffer - (const RpcRespGetCoprocessorFwVersion *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__get_coprocessor_fw_version__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespGetCoprocessorFwVersion * - rpc__resp__get_coprocessor_fw_version__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespGetCoprocessorFwVersion *) - protobuf_c_message_unpack (&rpc__resp__get_coprocessor_fw_version__descriptor, - allocator, len, data); -} -void rpc__resp__get_coprocessor_fw_version__free_unpacked - (RpcRespGetCoprocessorFwVersion *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__get_coprocessor_fw_version__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__event__wifi_event_no_args__init - (RpcEventWifiEventNoArgs *message) -{ - static const RpcEventWifiEventNoArgs init_value = RPC__EVENT__WIFI_EVENT_NO_ARGS__INIT; - *message = init_value; -} -size_t rpc__event__wifi_event_no_args__get_packed_size - (const RpcEventWifiEventNoArgs *message) -{ - assert(message->base.descriptor == &rpc__event__wifi_event_no_args__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__event__wifi_event_no_args__pack - (const RpcEventWifiEventNoArgs *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__event__wifi_event_no_args__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__event__wifi_event_no_args__pack_to_buffer - (const RpcEventWifiEventNoArgs *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__event__wifi_event_no_args__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcEventWifiEventNoArgs * - rpc__event__wifi_event_no_args__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcEventWifiEventNoArgs *) - protobuf_c_message_unpack (&rpc__event__wifi_event_no_args__descriptor, - allocator, len, data); -} -void rpc__event__wifi_event_no_args__free_unpacked - (RpcEventWifiEventNoArgs *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__event__wifi_event_no_args__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__event__espinit__init - (RpcEventESPInit *message) -{ - static const RpcEventESPInit init_value = RPC__EVENT__ESPINIT__INIT; - *message = init_value; -} -size_t rpc__event__espinit__get_packed_size - (const RpcEventESPInit *message) -{ - assert(message->base.descriptor == &rpc__event__espinit__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__event__espinit__pack - (const RpcEventESPInit *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__event__espinit__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__event__espinit__pack_to_buffer - (const RpcEventESPInit *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__event__espinit__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcEventESPInit * - rpc__event__espinit__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcEventESPInit *) - protobuf_c_message_unpack (&rpc__event__espinit__descriptor, - allocator, len, data); -} -void rpc__event__espinit__free_unpacked - (RpcEventESPInit *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__event__espinit__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__event__heartbeat__init - (RpcEventHeartbeat *message) -{ - static const RpcEventHeartbeat init_value = RPC__EVENT__HEARTBEAT__INIT; - *message = init_value; -} -size_t rpc__event__heartbeat__get_packed_size - (const RpcEventHeartbeat *message) -{ - assert(message->base.descriptor == &rpc__event__heartbeat__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__event__heartbeat__pack - (const RpcEventHeartbeat *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__event__heartbeat__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__event__heartbeat__pack_to_buffer - (const RpcEventHeartbeat *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__event__heartbeat__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcEventHeartbeat * - rpc__event__heartbeat__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcEventHeartbeat *) - protobuf_c_message_unpack (&rpc__event__heartbeat__descriptor, - allocator, len, data); -} -void rpc__event__heartbeat__free_unpacked - (RpcEventHeartbeat *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__event__heartbeat__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__event__ap__sta_disconnected__init - (RpcEventAPStaDisconnected *message) -{ - static const RpcEventAPStaDisconnected init_value = RPC__EVENT__AP__STA_DISCONNECTED__INIT; - *message = init_value; -} -size_t rpc__event__ap__sta_disconnected__get_packed_size - (const RpcEventAPStaDisconnected *message) -{ - assert(message->base.descriptor == &rpc__event__ap__sta_disconnected__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__event__ap__sta_disconnected__pack - (const RpcEventAPStaDisconnected *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__event__ap__sta_disconnected__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__event__ap__sta_disconnected__pack_to_buffer - (const RpcEventAPStaDisconnected *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__event__ap__sta_disconnected__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcEventAPStaDisconnected * - rpc__event__ap__sta_disconnected__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcEventAPStaDisconnected *) - protobuf_c_message_unpack (&rpc__event__ap__sta_disconnected__descriptor, - allocator, len, data); -} -void rpc__event__ap__sta_disconnected__free_unpacked - (RpcEventAPStaDisconnected *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__event__ap__sta_disconnected__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__event__ap__sta_connected__init - (RpcEventAPStaConnected *message) -{ - static const RpcEventAPStaConnected init_value = RPC__EVENT__AP__STA_CONNECTED__INIT; - *message = init_value; -} -size_t rpc__event__ap__sta_connected__get_packed_size - (const RpcEventAPStaConnected *message) -{ - assert(message->base.descriptor == &rpc__event__ap__sta_connected__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__event__ap__sta_connected__pack - (const RpcEventAPStaConnected *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__event__ap__sta_connected__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__event__ap__sta_connected__pack_to_buffer - (const RpcEventAPStaConnected *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__event__ap__sta_connected__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcEventAPStaConnected * - rpc__event__ap__sta_connected__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcEventAPStaConnected *) - protobuf_c_message_unpack (&rpc__event__ap__sta_connected__descriptor, - allocator, len, data); -} -void rpc__event__ap__sta_connected__free_unpacked - (RpcEventAPStaConnected *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__event__ap__sta_connected__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__event__sta_scan_done__init - (RpcEventStaScanDone *message) -{ - static const RpcEventStaScanDone init_value = RPC__EVENT__STA_SCAN_DONE__INIT; - *message = init_value; -} -size_t rpc__event__sta_scan_done__get_packed_size - (const RpcEventStaScanDone *message) -{ - assert(message->base.descriptor == &rpc__event__sta_scan_done__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__event__sta_scan_done__pack - (const RpcEventStaScanDone *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__event__sta_scan_done__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__event__sta_scan_done__pack_to_buffer - (const RpcEventStaScanDone *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__event__sta_scan_done__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcEventStaScanDone * - rpc__event__sta_scan_done__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcEventStaScanDone *) - protobuf_c_message_unpack (&rpc__event__sta_scan_done__descriptor, - allocator, len, data); -} -void rpc__event__sta_scan_done__free_unpacked - (RpcEventStaScanDone *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__event__sta_scan_done__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__event__sta_connected__init - (RpcEventStaConnected *message) -{ - static const RpcEventStaConnected init_value = RPC__EVENT__STA_CONNECTED__INIT; - *message = init_value; -} -size_t rpc__event__sta_connected__get_packed_size - (const RpcEventStaConnected *message) -{ - assert(message->base.descriptor == &rpc__event__sta_connected__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__event__sta_connected__pack - (const RpcEventStaConnected *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__event__sta_connected__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__event__sta_connected__pack_to_buffer - (const RpcEventStaConnected *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__event__sta_connected__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcEventStaConnected * - rpc__event__sta_connected__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcEventStaConnected *) - protobuf_c_message_unpack (&rpc__event__sta_connected__descriptor, - allocator, len, data); -} -void rpc__event__sta_connected__free_unpacked - (RpcEventStaConnected *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__event__sta_connected__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__event__sta_disconnected__init - (RpcEventStaDisconnected *message) -{ - static const RpcEventStaDisconnected init_value = RPC__EVENT__STA_DISCONNECTED__INIT; - *message = init_value; -} -size_t rpc__event__sta_disconnected__get_packed_size - (const RpcEventStaDisconnected *message) -{ - assert(message->base.descriptor == &rpc__event__sta_disconnected__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__event__sta_disconnected__pack - (const RpcEventStaDisconnected *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__event__sta_disconnected__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__event__sta_disconnected__pack_to_buffer - (const RpcEventStaDisconnected *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__event__sta_disconnected__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcEventStaDisconnected * - rpc__event__sta_disconnected__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcEventStaDisconnected *) - protobuf_c_message_unpack (&rpc__event__sta_disconnected__descriptor, - allocator, len, data); -} -void rpc__event__sta_disconnected__free_unpacked - (RpcEventStaDisconnected *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__event__sta_disconnected__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__init - (Rpc *message) -{ - static const Rpc init_value = RPC__INIT; - *message = init_value; -} -size_t rpc__get_packed_size - (const Rpc *message) -{ - assert(message->base.descriptor == &rpc__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__pack - (const Rpc *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__pack_to_buffer - (const Rpc *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -Rpc * - rpc__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (Rpc *) - protobuf_c_message_unpack (&rpc__descriptor, - allocator, len, data); -} -void rpc__free_unpacked - (Rpc *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -static const ProtobufCFieldDescriptor wifi_init_config__field_descriptors[20] = -{ - { - "static_rx_buf_num", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, static_rx_buf_num), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "dynamic_rx_buf_num", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, dynamic_rx_buf_num), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "tx_buf_type", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, tx_buf_type), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "static_tx_buf_num", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, static_tx_buf_num), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "dynamic_tx_buf_num", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, dynamic_tx_buf_num), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "cache_tx_buf_num", - 6, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, cache_tx_buf_num), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "csi_enable", - 7, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, csi_enable), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ampdu_rx_enable", - 8, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, ampdu_rx_enable), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ampdu_tx_enable", - 9, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, ampdu_tx_enable), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "amsdu_tx_enable", - 10, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, amsdu_tx_enable), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "nvs_enable", - 11, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, nvs_enable), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "nano_enable", - 12, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, nano_enable), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "rx_ba_win", - 13, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, rx_ba_win), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "wifi_task_core_id", - 14, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, wifi_task_core_id), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "beacon_max_len", - 15, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, beacon_max_len), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "mgmt_sbuf_num", - 16, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, mgmt_sbuf_num), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "feature_caps", - 17, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT64, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, feature_caps), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "sta_disconnected_pm", - 18, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, sta_disconnected_pm), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "espnow_max_encrypt_num", - 19, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, espnow_max_encrypt_num), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "magic", - 20, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, magic), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_init_config__field_indices_by_name[] = { - 7, /* field[7] = ampdu_rx_enable */ - 8, /* field[8] = ampdu_tx_enable */ - 9, /* field[9] = amsdu_tx_enable */ - 14, /* field[14] = beacon_max_len */ - 5, /* field[5] = cache_tx_buf_num */ - 6, /* field[6] = csi_enable */ - 1, /* field[1] = dynamic_rx_buf_num */ - 4, /* field[4] = dynamic_tx_buf_num */ - 18, /* field[18] = espnow_max_encrypt_num */ - 16, /* field[16] = feature_caps */ - 19, /* field[19] = magic */ - 15, /* field[15] = mgmt_sbuf_num */ - 11, /* field[11] = nano_enable */ - 10, /* field[10] = nvs_enable */ - 12, /* field[12] = rx_ba_win */ - 17, /* field[17] = sta_disconnected_pm */ - 0, /* field[0] = static_rx_buf_num */ - 3, /* field[3] = static_tx_buf_num */ - 2, /* field[2] = tx_buf_type */ - 13, /* field[13] = wifi_task_core_id */ -}; -static const ProtobufCIntRange wifi_init_config__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 20 } -}; -const ProtobufCMessageDescriptor wifi_init_config__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_init_config", - "WifiInitConfig", - "WifiInitConfig", - "", - sizeof(WifiInitConfig), - 20, - wifi_init_config__field_descriptors, - wifi_init_config__field_indices_by_name, - 1, wifi_init_config__number_ranges, - (ProtobufCMessageInit) wifi_init_config__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_country__field_descriptors[5] = -{ - { - "cc", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiCountry, cc), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "schan", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiCountry, schan), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "nchan", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiCountry, nchan), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "max_tx_power", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiCountry, max_tx_power), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "policy", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiCountry, policy), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_country__field_indices_by_name[] = { - 0, /* field[0] = cc */ - 3, /* field[3] = max_tx_power */ - 2, /* field[2] = nchan */ - 4, /* field[4] = policy */ - 1, /* field[1] = schan */ -}; -static const ProtobufCIntRange wifi_country__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 5 } -}; -const ProtobufCMessageDescriptor wifi_country__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_country", - "WifiCountry", - "WifiCountry", - "", - sizeof(WifiCountry), - 5, - wifi_country__field_descriptors, - wifi_country__field_indices_by_name, - 1, wifi_country__number_ranges, - (ProtobufCMessageInit) wifi_country__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_active_scan_time__field_descriptors[2] = -{ - { - "min", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiActiveScanTime, min), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "max", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiActiveScanTime, max), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_active_scan_time__field_indices_by_name[] = { - 1, /* field[1] = max */ - 0, /* field[0] = min */ -}; -static const ProtobufCIntRange wifi_active_scan_time__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor wifi_active_scan_time__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_active_scan_time", - "WifiActiveScanTime", - "WifiActiveScanTime", - "", - sizeof(WifiActiveScanTime), - 2, - wifi_active_scan_time__field_descriptors, - wifi_active_scan_time__field_indices_by_name, - 1, wifi_active_scan_time__number_ranges, - (ProtobufCMessageInit) wifi_active_scan_time__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_scan_time__field_descriptors[2] = -{ - { - "active", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(WifiScanTime, active), - &wifi_active_scan_time__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "passive", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiScanTime, passive), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_scan_time__field_indices_by_name[] = { - 0, /* field[0] = active */ - 1, /* field[1] = passive */ -}; -static const ProtobufCIntRange wifi_scan_time__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor wifi_scan_time__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_scan_time", - "WifiScanTime", - "WifiScanTime", - "", - sizeof(WifiScanTime), - 2, - wifi_scan_time__field_descriptors, - wifi_scan_time__field_indices_by_name, - 1, wifi_scan_time__number_ranges, - (ProtobufCMessageInit) wifi_scan_time__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_scan_config__field_descriptors[7] = -{ - { - "ssid", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiScanConfig, ssid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "bssid", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiScanConfig, bssid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "channel", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiScanConfig, channel), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "show_hidden", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(WifiScanConfig, show_hidden), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "scan_type", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiScanConfig, scan_type), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "scan_time", - 6, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(WifiScanConfig, scan_time), - &wifi_scan_time__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "home_chan_dwell_time", - 7, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiScanConfig, home_chan_dwell_time), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_scan_config__field_indices_by_name[] = { - 1, /* field[1] = bssid */ - 2, /* field[2] = channel */ - 6, /* field[6] = home_chan_dwell_time */ - 5, /* field[5] = scan_time */ - 4, /* field[4] = scan_type */ - 3, /* field[3] = show_hidden */ - 0, /* field[0] = ssid */ -}; -static const ProtobufCIntRange wifi_scan_config__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 7 } -}; -const ProtobufCMessageDescriptor wifi_scan_config__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_scan_config", - "WifiScanConfig", - "WifiScanConfig", - "", - sizeof(WifiScanConfig), - 7, - wifi_scan_config__field_descriptors, - wifi_scan_config__field_indices_by_name, - 1, wifi_scan_config__number_ranges, - (ProtobufCMessageInit) wifi_scan_config__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_he_ap_info__field_descriptors[2] = -{ - { - "bitmask", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiHeApInfo, bitmask), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "bssid_index", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiHeApInfo, bssid_index), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_he_ap_info__field_indices_by_name[] = { - 0, /* field[0] = bitmask */ - 1, /* field[1] = bssid_index */ -}; -static const ProtobufCIntRange wifi_he_ap_info__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor wifi_he_ap_info__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_he_ap_info", - "WifiHeApInfo", - "WifiHeApInfo", - "", - sizeof(WifiHeApInfo), - 2, - wifi_he_ap_info__field_descriptors, - wifi_he_ap_info__field_indices_by_name, - 1, wifi_he_ap_info__number_ranges, - (ProtobufCMessageInit) wifi_he_ap_info__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_ap_record__field_descriptors[15] = -{ - { - "bssid", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiApRecord, bssid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ssid", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiApRecord, ssid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "primary", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiApRecord, primary), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "second", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiApRecord, second), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "rssi", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiApRecord, rssi), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "authmode", - 6, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiApRecord, authmode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "pairwise_cipher", - 7, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiApRecord, pairwise_cipher), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "group_cipher", - 8, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiApRecord, group_cipher), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ant", - 9, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiApRecord, ant), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "bitmask", - 10, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiApRecord, bitmask), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "country", - 11, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(WifiApRecord, country), - &wifi_country__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "he_ap", - 12, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(WifiApRecord, he_ap), - &wifi_he_ap_info__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "bandwidth", - 13, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiApRecord, bandwidth), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "vht_ch_freq1", - 14, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiApRecord, vht_ch_freq1), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "vht_ch_freq2", - 15, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiApRecord, vht_ch_freq2), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_ap_record__field_indices_by_name[] = { - 8, /* field[8] = ant */ - 5, /* field[5] = authmode */ - 12, /* field[12] = bandwidth */ - 9, /* field[9] = bitmask */ - 0, /* field[0] = bssid */ - 10, /* field[10] = country */ - 7, /* field[7] = group_cipher */ - 11, /* field[11] = he_ap */ - 6, /* field[6] = pairwise_cipher */ - 2, /* field[2] = primary */ - 4, /* field[4] = rssi */ - 3, /* field[3] = second */ - 1, /* field[1] = ssid */ - 13, /* field[13] = vht_ch_freq1 */ - 14, /* field[14] = vht_ch_freq2 */ -}; -static const ProtobufCIntRange wifi_ap_record__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 15 } -}; -const ProtobufCMessageDescriptor wifi_ap_record__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_ap_record", - "WifiApRecord", - "WifiApRecord", - "", - sizeof(WifiApRecord), - 15, - wifi_ap_record__field_descriptors, - wifi_ap_record__field_indices_by_name, - 1, wifi_ap_record__number_ranges, - (ProtobufCMessageInit) wifi_ap_record__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_scan_threshold__field_descriptors[2] = -{ - { - "rssi", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiScanThreshold, rssi), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "authmode", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiScanThreshold, authmode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_scan_threshold__field_indices_by_name[] = { - 1, /* field[1] = authmode */ - 0, /* field[0] = rssi */ -}; -static const ProtobufCIntRange wifi_scan_threshold__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor wifi_scan_threshold__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_scan_threshold", - "WifiScanThreshold", - "WifiScanThreshold", - "", - sizeof(WifiScanThreshold), - 2, - wifi_scan_threshold__field_descriptors, - wifi_scan_threshold__field_indices_by_name, - 1, wifi_scan_threshold__number_ranges, - (ProtobufCMessageInit) wifi_scan_threshold__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_pmf_config__field_descriptors[2] = -{ - { - "capable", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(WifiPmfConfig, capable), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "required", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(WifiPmfConfig, required), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_pmf_config__field_indices_by_name[] = { - 0, /* field[0] = capable */ - 1, /* field[1] = required */ -}; -static const ProtobufCIntRange wifi_pmf_config__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor wifi_pmf_config__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_pmf_config", - "WifiPmfConfig", - "WifiPmfConfig", - "", - sizeof(WifiPmfConfig), - 2, - wifi_pmf_config__field_descriptors, - wifi_pmf_config__field_indices_by_name, - 1, wifi_pmf_config__number_ranges, - (ProtobufCMessageInit) wifi_pmf_config__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_ap_config__field_descriptors[12] = -{ - { - "ssid", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiApConfig, ssid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "password", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiApConfig, password), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ssid_len", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiApConfig, ssid_len), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "channel", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiApConfig, channel), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "authmode", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiApConfig, authmode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ssid_hidden", - 6, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiApConfig, ssid_hidden), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "max_connection", - 7, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiApConfig, max_connection), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "beacon_interval", - 8, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiApConfig, beacon_interval), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "pairwise_cipher", - 9, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiApConfig, pairwise_cipher), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ftm_responder", - 10, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(WifiApConfig, ftm_responder), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "pmf_cfg", - 11, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(WifiApConfig, pmf_cfg), - &wifi_pmf_config__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "sae_pwe_h2e", - 12, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiApConfig, sae_pwe_h2e), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_ap_config__field_indices_by_name[] = { - 4, /* field[4] = authmode */ - 7, /* field[7] = beacon_interval */ - 3, /* field[3] = channel */ - 9, /* field[9] = ftm_responder */ - 6, /* field[6] = max_connection */ - 8, /* field[8] = pairwise_cipher */ - 1, /* field[1] = password */ - 10, /* field[10] = pmf_cfg */ - 11, /* field[11] = sae_pwe_h2e */ - 0, /* field[0] = ssid */ - 5, /* field[5] = ssid_hidden */ - 2, /* field[2] = ssid_len */ -}; -static const ProtobufCIntRange wifi_ap_config__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 12 } -}; -const ProtobufCMessageDescriptor wifi_ap_config__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_ap_config", - "WifiApConfig", - "WifiApConfig", - "", - sizeof(WifiApConfig), - 12, - wifi_ap_config__field_descriptors, - wifi_ap_config__field_indices_by_name, - 1, wifi_ap_config__number_ranges, - (ProtobufCMessageInit) wifi_ap_config__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_sta_config__field_descriptors[15] = -{ - { - "ssid", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiStaConfig, ssid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "password", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiStaConfig, password), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "scan_method", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiStaConfig, scan_method), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "bssid_set", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(WifiStaConfig, bssid_set), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "bssid", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiStaConfig, bssid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "channel", - 6, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiStaConfig, channel), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "listen_interval", - 7, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiStaConfig, listen_interval), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "sort_method", - 8, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiStaConfig, sort_method), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "threshold", - 9, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(WifiStaConfig, threshold), - &wifi_scan_threshold__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "pmf_cfg", - 10, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(WifiStaConfig, pmf_cfg), - &wifi_pmf_config__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "bitmask", - 11, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiStaConfig, bitmask), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "sae_pwe_h2e", - 12, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiStaConfig, sae_pwe_h2e), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "failure_retry_cnt", - 13, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiStaConfig, failure_retry_cnt), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "he_bitmask", - 14, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiStaConfig, he_bitmask), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "sae_h2e_identifier", - 15, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiStaConfig, sae_h2e_identifier), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_sta_config__field_indices_by_name[] = { - 10, /* field[10] = bitmask */ - 4, /* field[4] = bssid */ - 3, /* field[3] = bssid_set */ - 5, /* field[5] = channel */ - 12, /* field[12] = failure_retry_cnt */ - 13, /* field[13] = he_bitmask */ - 6, /* field[6] = listen_interval */ - 1, /* field[1] = password */ - 9, /* field[9] = pmf_cfg */ - 14, /* field[14] = sae_h2e_identifier */ - 11, /* field[11] = sae_pwe_h2e */ - 2, /* field[2] = scan_method */ - 7, /* field[7] = sort_method */ - 0, /* field[0] = ssid */ - 8, /* field[8] = threshold */ -}; -static const ProtobufCIntRange wifi_sta_config__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 15 } -}; -const ProtobufCMessageDescriptor wifi_sta_config__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_sta_config", - "WifiStaConfig", - "WifiStaConfig", - "", - sizeof(WifiStaConfig), - 15, - wifi_sta_config__field_descriptors, - wifi_sta_config__field_indices_by_name, - 1, wifi_sta_config__number_ranges, - (ProtobufCMessageInit) wifi_sta_config__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_config__field_descriptors[2] = -{ - { - "ap", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(WifiConfig, u_case), - offsetof(WifiConfig, ap), - &wifi_ap_config__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "sta", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(WifiConfig, u_case), - offsetof(WifiConfig, sta), - &wifi_sta_config__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_config__field_indices_by_name[] = { - 0, /* field[0] = ap */ - 1, /* field[1] = sta */ -}; -static const ProtobufCIntRange wifi_config__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor wifi_config__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_config", - "WifiConfig", - "WifiConfig", - "", - sizeof(WifiConfig), - 2, - wifi_config__field_descriptors, - wifi_config__field_indices_by_name, - 1, wifi_config__number_ranges, - (ProtobufCMessageInit) wifi_config__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_sta_info__field_descriptors[3] = -{ - { - "mac", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiStaInfo, mac), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "rssi", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiStaInfo, rssi), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "bitmask", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiStaInfo, bitmask), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_sta_info__field_indices_by_name[] = { - 2, /* field[2] = bitmask */ - 0, /* field[0] = mac */ - 1, /* field[1] = rssi */ -}; -static const ProtobufCIntRange wifi_sta_info__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 3 } -}; -const ProtobufCMessageDescriptor wifi_sta_info__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_sta_info", - "WifiStaInfo", - "WifiStaInfo", - "", - sizeof(WifiStaInfo), - 3, - wifi_sta_info__field_descriptors, - wifi_sta_info__field_indices_by_name, - 1, wifi_sta_info__number_ranges, - (ProtobufCMessageInit) wifi_sta_info__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_sta_list__field_descriptors[2] = -{ - { - "sta", - 1, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(WifiStaList, n_sta), - offsetof(WifiStaList, sta), - &wifi_sta_info__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "num", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiStaList, num), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_sta_list__field_indices_by_name[] = { - 1, /* field[1] = num */ - 0, /* field[0] = sta */ -}; -static const ProtobufCIntRange wifi_sta_list__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor wifi_sta_list__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_sta_list", - "WifiStaList", - "WifiStaList", - "", - sizeof(WifiStaList), - 2, - wifi_sta_list__field_descriptors, - wifi_sta_list__field_indices_by_name, - 1, wifi_sta_list__number_ranges, - (ProtobufCMessageInit) wifi_sta_list__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_pkt_rx_ctrl__field_descriptors[19] = -{ - { - "rssi", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, rssi), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "rate", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, rate), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "sig_mode", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, sig_mode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "mcs", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, mcs), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "cwb", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, cwb), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "smoothing", - 6, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, smoothing), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "not_sounding", - 7, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, not_sounding), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "aggregation", - 8, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, aggregation), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "stbc", - 9, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, stbc), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "fec_coding", - 10, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, fec_coding), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "sgi", - 11, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, sgi), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "noise_floor", - 12, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, noise_floor), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ampdu_cnt", - 13, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, ampdu_cnt), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "channel", - 14, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, channel), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "secondary_channel", - 15, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, secondary_channel), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "timestamp", - 16, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, timestamp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ant", - 17, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, ant), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "sig_len", - 18, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, sig_len), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "rx_state", - 19, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, rx_state), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_pkt_rx_ctrl__field_indices_by_name[] = { - 7, /* field[7] = aggregation */ - 12, /* field[12] = ampdu_cnt */ - 16, /* field[16] = ant */ - 13, /* field[13] = channel */ - 4, /* field[4] = cwb */ - 9, /* field[9] = fec_coding */ - 3, /* field[3] = mcs */ - 11, /* field[11] = noise_floor */ - 6, /* field[6] = not_sounding */ - 1, /* field[1] = rate */ - 0, /* field[0] = rssi */ - 18, /* field[18] = rx_state */ - 14, /* field[14] = secondary_channel */ - 10, /* field[10] = sgi */ - 17, /* field[17] = sig_len */ - 2, /* field[2] = sig_mode */ - 5, /* field[5] = smoothing */ - 8, /* field[8] = stbc */ - 15, /* field[15] = timestamp */ -}; -static const ProtobufCIntRange wifi_pkt_rx_ctrl__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 19 } -}; -const ProtobufCMessageDescriptor wifi_pkt_rx_ctrl__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_pkt_rx_ctrl", - "WifiPktRxCtrl", - "WifiPktRxCtrl", - "", - sizeof(WifiPktRxCtrl), - 19, - wifi_pkt_rx_ctrl__field_descriptors, - wifi_pkt_rx_ctrl__field_indices_by_name, - 1, wifi_pkt_rx_ctrl__number_ranges, - (ProtobufCMessageInit) wifi_pkt_rx_ctrl__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_promiscuous_pkt__field_descriptors[2] = -{ - { - "rx_ctrl", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(WifiPromiscuousPkt, rx_ctrl), - &wifi_pkt_rx_ctrl__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "payload", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiPromiscuousPkt, payload), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_promiscuous_pkt__field_indices_by_name[] = { - 1, /* field[1] = payload */ - 0, /* field[0] = rx_ctrl */ -}; -static const ProtobufCIntRange wifi_promiscuous_pkt__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor wifi_promiscuous_pkt__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_promiscuous_pkt", - "WifiPromiscuousPkt", - "WifiPromiscuousPkt", - "", - sizeof(WifiPromiscuousPkt), - 2, - wifi_promiscuous_pkt__field_descriptors, - wifi_promiscuous_pkt__field_indices_by_name, - 1, wifi_promiscuous_pkt__number_ranges, - (ProtobufCMessageInit) wifi_promiscuous_pkt__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_promiscuous_filter__field_descriptors[1] = -{ - { - "filter_mask", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPromiscuousFilter, filter_mask), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_promiscuous_filter__field_indices_by_name[] = { - 0, /* field[0] = filter_mask */ -}; -static const ProtobufCIntRange wifi_promiscuous_filter__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor wifi_promiscuous_filter__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_promiscuous_filter", - "WifiPromiscuousFilter", - "WifiPromiscuousFilter", - "", - sizeof(WifiPromiscuousFilter), - 1, - wifi_promiscuous_filter__field_descriptors, - wifi_promiscuous_filter__field_indices_by_name, - 1, wifi_promiscuous_filter__number_ranges, - (ProtobufCMessageInit) wifi_promiscuous_filter__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_csi_config__field_descriptors[7] = -{ - { - "lltf_en", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(WifiCsiConfig, lltf_en), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "htltf_en", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(WifiCsiConfig, htltf_en), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "stbc_htltf2_en", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(WifiCsiConfig, stbc_htltf2_en), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ltf_merge_en", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(WifiCsiConfig, ltf_merge_en), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "channel_filter_en", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(WifiCsiConfig, channel_filter_en), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "manu_scale", - 6, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(WifiCsiConfig, manu_scale), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "shift", - 7, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiCsiConfig, shift), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_csi_config__field_indices_by_name[] = { - 4, /* field[4] = channel_filter_en */ - 1, /* field[1] = htltf_en */ - 0, /* field[0] = lltf_en */ - 3, /* field[3] = ltf_merge_en */ - 5, /* field[5] = manu_scale */ - 6, /* field[6] = shift */ - 2, /* field[2] = stbc_htltf2_en */ -}; -static const ProtobufCIntRange wifi_csi_config__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 7 } -}; -const ProtobufCMessageDescriptor wifi_csi_config__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_csi_config", - "WifiCsiConfig", - "WifiCsiConfig", - "", - sizeof(WifiCsiConfig), - 7, - wifi_csi_config__field_descriptors, - wifi_csi_config__field_indices_by_name, - 1, wifi_csi_config__number_ranges, - (ProtobufCMessageInit) wifi_csi_config__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_csi_info__field_descriptors[6] = -{ - { - "rx_ctrl", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(WifiCsiInfo, rx_ctrl), - &wifi_pkt_rx_ctrl__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "mac", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiCsiInfo, mac), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "dmac", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiCsiInfo, dmac), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "first_word_invalid", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(WifiCsiInfo, first_word_invalid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "buf", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiCsiInfo, buf), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "len", - 6, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiCsiInfo, len), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_csi_info__field_indices_by_name[] = { - 4, /* field[4] = buf */ - 2, /* field[2] = dmac */ - 3, /* field[3] = first_word_invalid */ - 5, /* field[5] = len */ - 1, /* field[1] = mac */ - 0, /* field[0] = rx_ctrl */ -}; -static const ProtobufCIntRange wifi_csi_info__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 6 } -}; -const ProtobufCMessageDescriptor wifi_csi_info__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_csi_info", - "WifiCsiInfo", - "WifiCsiInfo", - "", - sizeof(WifiCsiInfo), - 6, - wifi_csi_info__field_descriptors, - wifi_csi_info__field_indices_by_name, - 1, wifi_csi_info__number_ranges, - (ProtobufCMessageInit) wifi_csi_info__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_ant_gpio__field_descriptors[2] = -{ - { - "gpio_select", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiAntGpio, gpio_select), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "gpio_num", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiAntGpio, gpio_num), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_ant_gpio__field_indices_by_name[] = { - 1, /* field[1] = gpio_num */ - 0, /* field[0] = gpio_select */ -}; -static const ProtobufCIntRange wifi_ant_gpio__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor wifi_ant_gpio__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_ant_gpio", - "WifiAntGpio", - "WifiAntGpio", - "", - sizeof(WifiAntGpio), - 2, - wifi_ant_gpio__field_descriptors, - wifi_ant_gpio__field_indices_by_name, - 1, wifi_ant_gpio__number_ranges, - (ProtobufCMessageInit) wifi_ant_gpio__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_ant_gpio_config__field_descriptors[1] = -{ - { - "gpio_cfgs", - 1, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(WifiAntGpioConfig, n_gpio_cfgs), - offsetof(WifiAntGpioConfig, gpio_cfgs), - &wifi_ant_gpio__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_ant_gpio_config__field_indices_by_name[] = { - 0, /* field[0] = gpio_cfgs */ -}; -static const ProtobufCIntRange wifi_ant_gpio_config__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor wifi_ant_gpio_config__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_ant_gpio_config", - "WifiAntGpioConfig", - "WifiAntGpioConfig", - "", - sizeof(WifiAntGpioConfig), - 1, - wifi_ant_gpio_config__field_descriptors, - wifi_ant_gpio_config__field_indices_by_name, - 1, wifi_ant_gpio_config__number_ranges, - (ProtobufCMessageInit) wifi_ant_gpio_config__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_ant_config__field_descriptors[5] = -{ - { - "rx_ant_mode", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiAntConfig, rx_ant_mode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "rx_ant_default", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiAntConfig, rx_ant_default), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "tx_ant_mode", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiAntConfig, tx_ant_mode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "enabled_ant0", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiAntConfig, enabled_ant0), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "enabled_ant1", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiAntConfig, enabled_ant1), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_ant_config__field_indices_by_name[] = { - 3, /* field[3] = enabled_ant0 */ - 4, /* field[4] = enabled_ant1 */ - 1, /* field[1] = rx_ant_default */ - 0, /* field[0] = rx_ant_mode */ - 2, /* field[2] = tx_ant_mode */ -}; -static const ProtobufCIntRange wifi_ant_config__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 5 } -}; -const ProtobufCMessageDescriptor wifi_ant_config__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_ant_config", - "WifiAntConfig", - "WifiAntConfig", - "", - sizeof(WifiAntConfig), - 5, - wifi_ant_config__field_descriptors, - wifi_ant_config__field_indices_by_name, - 1, wifi_ant_config__number_ranges, - (ProtobufCMessageInit) wifi_ant_config__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_action_tx_req__field_descriptors[5] = -{ - { - "ifx", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiActionTxReq, ifx), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "dest_mac", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiActionTxReq, dest_mac), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "no_ack", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(WifiActionTxReq, no_ack), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "data_len", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiActionTxReq, data_len), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "data", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiActionTxReq, data), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_action_tx_req__field_indices_by_name[] = { - 4, /* field[4] = data */ - 3, /* field[3] = data_len */ - 1, /* field[1] = dest_mac */ - 0, /* field[0] = ifx */ - 2, /* field[2] = no_ack */ -}; -static const ProtobufCIntRange wifi_action_tx_req__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 5 } -}; -const ProtobufCMessageDescriptor wifi_action_tx_req__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_action_tx_req", - "WifiActionTxReq", - "WifiActionTxReq", - "", - sizeof(WifiActionTxReq), - 5, - wifi_action_tx_req__field_descriptors, - wifi_action_tx_req__field_indices_by_name, - 1, wifi_action_tx_req__number_ranges, - (ProtobufCMessageInit) wifi_action_tx_req__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_ftm_initiator_cfg__field_descriptors[4] = -{ - { - "resp_mac", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiFtmInitiatorCfg, resp_mac), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "channel", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiFtmInitiatorCfg, channel), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "frm_count", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiFtmInitiatorCfg, frm_count), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "burst_period", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiFtmInitiatorCfg, burst_period), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_ftm_initiator_cfg__field_indices_by_name[] = { - 3, /* field[3] = burst_period */ - 1, /* field[1] = channel */ - 2, /* field[2] = frm_count */ - 0, /* field[0] = resp_mac */ -}; -static const ProtobufCIntRange wifi_ftm_initiator_cfg__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 4 } -}; -const ProtobufCMessageDescriptor wifi_ftm_initiator_cfg__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_ftm_initiator_cfg", - "WifiFtmInitiatorCfg", - "WifiFtmInitiatorCfg", - "", - sizeof(WifiFtmInitiatorCfg), - 4, - wifi_ftm_initiator_cfg__field_descriptors, - wifi_ftm_initiator_cfg__field_indices_by_name, - 1, wifi_ftm_initiator_cfg__number_ranges, - (ProtobufCMessageInit) wifi_ftm_initiator_cfg__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_event_sta_scan_done__field_descriptors[3] = -{ - { - "status", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventStaScanDone, status), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "number", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventStaScanDone, number), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "scan_id", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventStaScanDone, scan_id), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_event_sta_scan_done__field_indices_by_name[] = { - 1, /* field[1] = number */ - 2, /* field[2] = scan_id */ - 0, /* field[0] = status */ -}; -static const ProtobufCIntRange wifi_event_sta_scan_done__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 3 } -}; -const ProtobufCMessageDescriptor wifi_event_sta_scan_done__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_event_sta_scan_done", - "WifiEventStaScanDone", - "WifiEventStaScanDone", - "", - sizeof(WifiEventStaScanDone), - 3, - wifi_event_sta_scan_done__field_descriptors, - wifi_event_sta_scan_done__field_indices_by_name, - 1, wifi_event_sta_scan_done__number_ranges, - (ProtobufCMessageInit) wifi_event_sta_scan_done__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_event_sta_connected__field_descriptors[6] = -{ - { - "ssid", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiEventStaConnected, ssid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ssid_len", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventStaConnected, ssid_len), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "bssid", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiEventStaConnected, bssid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "channel", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventStaConnected, channel), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "authmode", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiEventStaConnected, authmode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "aid", - 6, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiEventStaConnected, aid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_event_sta_connected__field_indices_by_name[] = { - 5, /* field[5] = aid */ - 4, /* field[4] = authmode */ - 2, /* field[2] = bssid */ - 3, /* field[3] = channel */ - 0, /* field[0] = ssid */ - 1, /* field[1] = ssid_len */ -}; -static const ProtobufCIntRange wifi_event_sta_connected__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 6 } -}; -const ProtobufCMessageDescriptor wifi_event_sta_connected__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_event_sta_connected", - "WifiEventStaConnected", - "WifiEventStaConnected", - "", - sizeof(WifiEventStaConnected), - 6, - wifi_event_sta_connected__field_descriptors, - wifi_event_sta_connected__field_indices_by_name, - 1, wifi_event_sta_connected__number_ranges, - (ProtobufCMessageInit) wifi_event_sta_connected__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_event_sta_disconnected__field_descriptors[5] = -{ - { - "ssid", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiEventStaDisconnected, ssid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ssid_len", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventStaDisconnected, ssid_len), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "bssid", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiEventStaDisconnected, bssid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "reason", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventStaDisconnected, reason), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "rssi", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiEventStaDisconnected, rssi), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_event_sta_disconnected__field_indices_by_name[] = { - 2, /* field[2] = bssid */ - 3, /* field[3] = reason */ - 4, /* field[4] = rssi */ - 0, /* field[0] = ssid */ - 1, /* field[1] = ssid_len */ -}; -static const ProtobufCIntRange wifi_event_sta_disconnected__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 5 } -}; -const ProtobufCMessageDescriptor wifi_event_sta_disconnected__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_event_sta_disconnected", - "WifiEventStaDisconnected", - "WifiEventStaDisconnected", - "", - sizeof(WifiEventStaDisconnected), - 5, - wifi_event_sta_disconnected__field_descriptors, - wifi_event_sta_disconnected__field_indices_by_name, - 1, wifi_event_sta_disconnected__number_ranges, - (ProtobufCMessageInit) wifi_event_sta_disconnected__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_event_sta_authmode_change__field_descriptors[2] = -{ - { - "old_mode", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiEventStaAuthmodeChange, old_mode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "new_mode", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiEventStaAuthmodeChange, new_mode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_event_sta_authmode_change__field_indices_by_name[] = { - 1, /* field[1] = new_mode */ - 0, /* field[0] = old_mode */ -}; -static const ProtobufCIntRange wifi_event_sta_authmode_change__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor wifi_event_sta_authmode_change__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_event_sta_authmode_change", - "WifiEventStaAuthmodeChange", - "WifiEventStaAuthmodeChange", - "", - sizeof(WifiEventStaAuthmodeChange), - 2, - wifi_event_sta_authmode_change__field_descriptors, - wifi_event_sta_authmode_change__field_indices_by_name, - 1, wifi_event_sta_authmode_change__number_ranges, - (ProtobufCMessageInit) wifi_event_sta_authmode_change__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_event_sta_wps_er_pin__field_descriptors[1] = -{ - { - "pin_code", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiEventStaWpsErPin, pin_code), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_event_sta_wps_er_pin__field_indices_by_name[] = { - 0, /* field[0] = pin_code */ -}; -static const ProtobufCIntRange wifi_event_sta_wps_er_pin__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor wifi_event_sta_wps_er_pin__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_event_sta_wps_er_pin", - "WifiEventStaWpsErPin", - "WifiEventStaWpsErPin", - "", - sizeof(WifiEventStaWpsErPin), - 1, - wifi_event_sta_wps_er_pin__field_descriptors, - wifi_event_sta_wps_er_pin__field_indices_by_name, - 1, wifi_event_sta_wps_er_pin__number_ranges, - (ProtobufCMessageInit) wifi_event_sta_wps_er_pin__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor ap_cred__field_descriptors[2] = -{ - { - "ssid", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(ApCred, ssid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "passphrase", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(ApCred, passphrase), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned ap_cred__field_indices_by_name[] = { - 1, /* field[1] = passphrase */ - 0, /* field[0] = ssid */ -}; -static const ProtobufCIntRange ap_cred__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor ap_cred__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "ap_cred", - "ApCred", - "ApCred", - "", - sizeof(ApCred), - 2, - ap_cred__field_descriptors, - ap_cred__field_indices_by_name, - 1, ap_cred__number_ranges, - (ProtobufCMessageInit) ap_cred__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_event_sta_wps_er_success__field_descriptors[2] = -{ - { - "ap_cred_cnt", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventStaWpsErSuccess, ap_cred_cnt), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ap_creds", - 2, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(WifiEventStaWpsErSuccess, n_ap_creds), - offsetof(WifiEventStaWpsErSuccess, ap_creds), - &ap_cred__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_event_sta_wps_er_success__field_indices_by_name[] = { - 0, /* field[0] = ap_cred_cnt */ - 1, /* field[1] = ap_creds */ -}; -static const ProtobufCIntRange wifi_event_sta_wps_er_success__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor wifi_event_sta_wps_er_success__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_event_sta_wps_er_success", - "WifiEventStaWpsErSuccess", - "WifiEventStaWpsErSuccess", - "", - sizeof(WifiEventStaWpsErSuccess), - 2, - wifi_event_sta_wps_er_success__field_descriptors, - wifi_event_sta_wps_er_success__field_indices_by_name, - 1, wifi_event_sta_wps_er_success__number_ranges, - (ProtobufCMessageInit) wifi_event_sta_wps_er_success__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_event_ap_probe_req_rx__field_descriptors[2] = -{ - { - "rssi", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiEventApProbeReqRx, rssi), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "mac", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventApProbeReqRx, mac), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_event_ap_probe_req_rx__field_indices_by_name[] = { - 1, /* field[1] = mac */ - 0, /* field[0] = rssi */ -}; -static const ProtobufCIntRange wifi_event_ap_probe_req_rx__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor wifi_event_ap_probe_req_rx__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_event_ap_probe_req_rx", - "WifiEventApProbeReqRx", - "WifiEventApProbeReqRx", - "", - sizeof(WifiEventApProbeReqRx), - 2, - wifi_event_ap_probe_req_rx__field_descriptors, - wifi_event_ap_probe_req_rx__field_indices_by_name, - 1, wifi_event_ap_probe_req_rx__number_ranges, - (ProtobufCMessageInit) wifi_event_ap_probe_req_rx__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_event_bss_rssi_low__field_descriptors[1] = -{ - { - "rssi", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiEventBssRssiLow, rssi), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_event_bss_rssi_low__field_indices_by_name[] = { - 0, /* field[0] = rssi */ -}; -static const ProtobufCIntRange wifi_event_bss_rssi_low__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor wifi_event_bss_rssi_low__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_event_bss_rssi_low", - "WifiEventBssRssiLow", - "WifiEventBssRssiLow", - "", - sizeof(WifiEventBssRssiLow), - 1, - wifi_event_bss_rssi_low__field_descriptors, - wifi_event_bss_rssi_low__field_indices_by_name, - 1, wifi_event_bss_rssi_low__number_ranges, - (ProtobufCMessageInit) wifi_event_bss_rssi_low__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_ftm_report_entry__field_descriptors[7] = -{ - { - "dlog_token", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiFtmReportEntry, dlog_token), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "rssi", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiFtmReportEntry, rssi), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "rtt", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiFtmReportEntry, rtt), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "t1", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT64, - 0, /* quantifier_offset */ - offsetof(WifiFtmReportEntry, t1), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "t2", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT64, - 0, /* quantifier_offset */ - offsetof(WifiFtmReportEntry, t2), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "t3", - 6, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT64, - 0, /* quantifier_offset */ - offsetof(WifiFtmReportEntry, t3), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "t4", - 7, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT64, - 0, /* quantifier_offset */ - offsetof(WifiFtmReportEntry, t4), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_ftm_report_entry__field_indices_by_name[] = { - 0, /* field[0] = dlog_token */ - 1, /* field[1] = rssi */ - 2, /* field[2] = rtt */ - 3, /* field[3] = t1 */ - 4, /* field[4] = t2 */ - 5, /* field[5] = t3 */ - 6, /* field[6] = t4 */ -}; -static const ProtobufCIntRange wifi_ftm_report_entry__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 7 } -}; -const ProtobufCMessageDescriptor wifi_ftm_report_entry__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_ftm_report_entry", - "WifiFtmReportEntry", - "WifiFtmReportEntry", - "", - sizeof(WifiFtmReportEntry), - 7, - wifi_ftm_report_entry__field_descriptors, - wifi_ftm_report_entry__field_indices_by_name, - 1, wifi_ftm_report_entry__number_ranges, - (ProtobufCMessageInit) wifi_ftm_report_entry__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_event_ftm_report__field_descriptors[7] = -{ - { - "peer_mac", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiEventFtmReport, peer_mac), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "status", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiEventFtmReport, status), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "rtt_raw", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventFtmReport, rtt_raw), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "rtt_est", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventFtmReport, rtt_est), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "dist_est", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventFtmReport, dist_est), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ftm_report_data", - 6, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(WifiEventFtmReport, n_ftm_report_data), - offsetof(WifiEventFtmReport, ftm_report_data), - &wifi_ftm_report_entry__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ftm_report_num_entries", - 7, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventFtmReport, ftm_report_num_entries), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_event_ftm_report__field_indices_by_name[] = { - 4, /* field[4] = dist_est */ - 5, /* field[5] = ftm_report_data */ - 6, /* field[6] = ftm_report_num_entries */ - 0, /* field[0] = peer_mac */ - 3, /* field[3] = rtt_est */ - 2, /* field[2] = rtt_raw */ - 1, /* field[1] = status */ -}; -static const ProtobufCIntRange wifi_event_ftm_report__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 7 } -}; -const ProtobufCMessageDescriptor wifi_event_ftm_report__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_event_ftm_report", - "WifiEventFtmReport", - "WifiEventFtmReport", - "", - sizeof(WifiEventFtmReport), - 7, - wifi_event_ftm_report__field_descriptors, - wifi_event_ftm_report__field_indices_by_name, - 1, wifi_event_ftm_report__number_ranges, - (ProtobufCMessageInit) wifi_event_ftm_report__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_event_action_tx_status__field_descriptors[4] = -{ - { - "ifx", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiEventActionTxStatus, ifx), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "context", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventActionTxStatus, context), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "da", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiEventActionTxStatus, da), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "status", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventActionTxStatus, status), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_event_action_tx_status__field_indices_by_name[] = { - 1, /* field[1] = context */ - 2, /* field[2] = da */ - 0, /* field[0] = ifx */ - 3, /* field[3] = status */ -}; -static const ProtobufCIntRange wifi_event_action_tx_status__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 4 } -}; -const ProtobufCMessageDescriptor wifi_event_action_tx_status__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_event_action_tx_status", - "WifiEventActionTxStatus", - "WifiEventActionTxStatus", - "", - sizeof(WifiEventActionTxStatus), - 4, - wifi_event_action_tx_status__field_descriptors, - wifi_event_action_tx_status__field_indices_by_name, - 1, wifi_event_action_tx_status__number_ranges, - (ProtobufCMessageInit) wifi_event_action_tx_status__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_event_roc_done__field_descriptors[1] = -{ - { - "context", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventRocDone, context), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_event_roc_done__field_indices_by_name[] = { - 0, /* field[0] = context */ -}; -static const ProtobufCIntRange wifi_event_roc_done__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor wifi_event_roc_done__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_event_roc_done", - "WifiEventRocDone", - "WifiEventRocDone", - "", - sizeof(WifiEventRocDone), - 1, - wifi_event_roc_done__field_descriptors, - wifi_event_roc_done__field_indices_by_name, - 1, wifi_event_roc_done__number_ranges, - (ProtobufCMessageInit) wifi_event_roc_done__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_event_ap_wps_rg_pin__field_descriptors[1] = -{ - { - "pin_code", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiEventApWpsRgPin, pin_code), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_event_ap_wps_rg_pin__field_indices_by_name[] = { - 0, /* field[0] = pin_code */ -}; -static const ProtobufCIntRange wifi_event_ap_wps_rg_pin__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor wifi_event_ap_wps_rg_pin__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_event_ap_wps_rg_pin", - "WifiEventApWpsRgPin", - "WifiEventApWpsRgPin", - "", - sizeof(WifiEventApWpsRgPin), - 1, - wifi_event_ap_wps_rg_pin__field_descriptors, - wifi_event_ap_wps_rg_pin__field_indices_by_name, - 1, wifi_event_ap_wps_rg_pin__number_ranges, - (ProtobufCMessageInit) wifi_event_ap_wps_rg_pin__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_event_ap_wps_rg_fail_reason__field_descriptors[2] = -{ - { - "reason", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiEventApWpsRgFailReason, reason), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "peer_macaddr", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiEventApWpsRgFailReason, peer_macaddr), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_event_ap_wps_rg_fail_reason__field_indices_by_name[] = { - 1, /* field[1] = peer_macaddr */ - 0, /* field[0] = reason */ -}; -static const ProtobufCIntRange wifi_event_ap_wps_rg_fail_reason__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor wifi_event_ap_wps_rg_fail_reason__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_event_ap_wps_rg_fail_reason", - "WifiEventApWpsRgFailReason", - "WifiEventApWpsRgFailReason", - "", - sizeof(WifiEventApWpsRgFailReason), - 2, - wifi_event_ap_wps_rg_fail_reason__field_descriptors, - wifi_event_ap_wps_rg_fail_reason__field_indices_by_name, - 1, wifi_event_ap_wps_rg_fail_reason__number_ranges, - (ProtobufCMessageInit) wifi_event_ap_wps_rg_fail_reason__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_event_ap_wps_rg_success__field_descriptors[1] = -{ - { - "peer_macaddr", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiEventApWpsRgSuccess, peer_macaddr), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_event_ap_wps_rg_success__field_indices_by_name[] = { - 0, /* field[0] = peer_macaddr */ -}; -static const ProtobufCIntRange wifi_event_ap_wps_rg_success__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor wifi_event_ap_wps_rg_success__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_event_ap_wps_rg_success", - "WifiEventApWpsRgSuccess", - "WifiEventApWpsRgSuccess", - "", - sizeof(WifiEventApWpsRgSuccess), - 1, - wifi_event_ap_wps_rg_success__field_descriptors, - wifi_event_ap_wps_rg_success__field_indices_by_name, - 1, wifi_event_ap_wps_rg_success__number_ranges, - (ProtobufCMessageInit) wifi_event_ap_wps_rg_success__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_protocols__field_descriptors[2] = -{ - { - "ghz_2g", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiProtocols, ghz_2g), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ghz_5g", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiProtocols, ghz_5g), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_protocols__field_indices_by_name[] = { - 0, /* field[0] = ghz_2g */ - 1, /* field[1] = ghz_5g */ -}; -static const ProtobufCIntRange wifi_protocols__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor wifi_protocols__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_protocols", - "WifiProtocols", - "WifiProtocols", - "", - sizeof(WifiProtocols), - 2, - wifi_protocols__field_descriptors, - wifi_protocols__field_indices_by_name, - 1, wifi_protocols__number_ranges, - (ProtobufCMessageInit) wifi_protocols__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_bandwidths__field_descriptors[2] = -{ - { - "ghz_2g", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiBandwidths, ghz_2g), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ghz_5g", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiBandwidths, ghz_5g), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_bandwidths__field_indices_by_name[] = { - 0, /* field[0] = ghz_2g */ - 1, /* field[1] = ghz_5g */ -}; -static const ProtobufCIntRange wifi_bandwidths__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor wifi_bandwidths__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_bandwidths", - "WifiBandwidths", - "WifiBandwidths", - "", - sizeof(WifiBandwidths), - 2, - wifi_bandwidths__field_descriptors, - wifi_bandwidths__field_indices_by_name, - 1, wifi_bandwidths__number_ranges, - (ProtobufCMessageInit) wifi_bandwidths__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor connected_stalist__field_descriptors[2] = -{ - { - "mac", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(ConnectedSTAList, mac), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "rssi", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(ConnectedSTAList, rssi), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned connected_stalist__field_indices_by_name[] = { - 0, /* field[0] = mac */ - 1, /* field[1] = rssi */ -}; -static const ProtobufCIntRange connected_stalist__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor connected_stalist__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "ConnectedSTAList", - "ConnectedSTAList", - "ConnectedSTAList", - "", - sizeof(ConnectedSTAList), - 2, - connected_stalist__field_descriptors, - connected_stalist__field_indices_by_name, - 1, connected_stalist__number_ranges, - (ProtobufCMessageInit) connected_stalist__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__get_mac_address__field_descriptors[1] = -{ - { - "mode", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqGetMacAddress, mode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__get_mac_address__field_indices_by_name[] = { - 0, /* field[0] = mode */ -}; -static const ProtobufCIntRange rpc__req__get_mac_address__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__get_mac_address__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_GetMacAddress", - "RpcReqGetMacAddress", - "RpcReqGetMacAddress", - "", - sizeof(RpcReqGetMacAddress), - 1, - rpc__req__get_mac_address__field_descriptors, - rpc__req__get_mac_address__field_indices_by_name, - 1, rpc__req__get_mac_address__number_ranges, - (ProtobufCMessageInit) rpc__req__get_mac_address__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__get_mac_address__field_descriptors[2] = -{ - { - "mac", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(RpcRespGetMacAddress, mac), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespGetMacAddress, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__get_mac_address__field_indices_by_name[] = { - 0, /* field[0] = mac */ - 1, /* field[1] = resp */ -}; -static const ProtobufCIntRange rpc__resp__get_mac_address__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__get_mac_address__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_GetMacAddress", - "RpcRespGetMacAddress", - "RpcRespGetMacAddress", - "", - sizeof(RpcRespGetMacAddress), - 2, - rpc__resp__get_mac_address__field_descriptors, - rpc__resp__get_mac_address__field_indices_by_name, - 1, rpc__resp__get_mac_address__number_ranges, - (ProtobufCMessageInit) rpc__resp__get_mac_address__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__get_mode__field_descriptors NULL -#define rpc__req__get_mode__field_indices_by_name NULL -#define rpc__req__get_mode__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__get_mode__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_GetMode", - "RpcReqGetMode", - "RpcReqGetMode", - "", - sizeof(RpcReqGetMode), - 0, - rpc__req__get_mode__field_descriptors, - rpc__req__get_mode__field_indices_by_name, - 0, rpc__req__get_mode__number_ranges, - (ProtobufCMessageInit) rpc__req__get_mode__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__get_mode__field_descriptors[2] = -{ - { - "mode", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespGetMode, mode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespGetMode, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__get_mode__field_indices_by_name[] = { - 0, /* field[0] = mode */ - 1, /* field[1] = resp */ -}; -static const ProtobufCIntRange rpc__resp__get_mode__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__get_mode__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_GetMode", - "RpcRespGetMode", - "RpcRespGetMode", - "", - sizeof(RpcRespGetMode), - 2, - rpc__resp__get_mode__field_descriptors, - rpc__resp__get_mode__field_indices_by_name, - 1, rpc__resp__get_mode__number_ranges, - (ProtobufCMessageInit) rpc__resp__get_mode__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__set_mode__field_descriptors[1] = -{ - { - "mode", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqSetMode, mode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__set_mode__field_indices_by_name[] = { - 0, /* field[0] = mode */ -}; -static const ProtobufCIntRange rpc__req__set_mode__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__set_mode__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_SetMode", - "RpcReqSetMode", - "RpcReqSetMode", - "", - sizeof(RpcReqSetMode), - 1, - rpc__req__set_mode__field_descriptors, - rpc__req__set_mode__field_indices_by_name, - 1, rpc__req__set_mode__number_ranges, - (ProtobufCMessageInit) rpc__req__set_mode__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__set_mode__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespSetMode, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__set_mode__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__set_mode__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__set_mode__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_SetMode", - "RpcRespSetMode", - "RpcRespSetMode", - "", - sizeof(RpcRespSetMode), - 1, - rpc__resp__set_mode__field_descriptors, - rpc__resp__set_mode__field_indices_by_name, - 1, rpc__resp__set_mode__number_ranges, - (ProtobufCMessageInit) rpc__resp__set_mode__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__get_ps__field_descriptors NULL -#define rpc__req__get_ps__field_indices_by_name NULL -#define rpc__req__get_ps__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__get_ps__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_GetPs", - "RpcReqGetPs", - "RpcReqGetPs", - "", - sizeof(RpcReqGetPs), - 0, - rpc__req__get_ps__field_descriptors, - rpc__req__get_ps__field_indices_by_name, - 0, rpc__req__get_ps__number_ranges, - (ProtobufCMessageInit) rpc__req__get_ps__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__get_ps__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespGetPs, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "type", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespGetPs, type), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__get_ps__field_indices_by_name[] = { - 0, /* field[0] = resp */ - 1, /* field[1] = type */ -}; -static const ProtobufCIntRange rpc__resp__get_ps__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__get_ps__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_GetPs", - "RpcRespGetPs", - "RpcRespGetPs", - "", - sizeof(RpcRespGetPs), - 2, - rpc__resp__get_ps__field_descriptors, - rpc__resp__get_ps__field_indices_by_name, - 1, rpc__resp__get_ps__number_ranges, - (ProtobufCMessageInit) rpc__resp__get_ps__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__set_ps__field_descriptors[1] = -{ - { - "type", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqSetPs, type), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__set_ps__field_indices_by_name[] = { - 0, /* field[0] = type */ -}; -static const ProtobufCIntRange rpc__req__set_ps__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__set_ps__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_SetPs", - "RpcReqSetPs", - "RpcReqSetPs", - "", - sizeof(RpcReqSetPs), - 1, - rpc__req__set_ps__field_descriptors, - rpc__req__set_ps__field_indices_by_name, - 1, rpc__req__set_ps__number_ranges, - (ProtobufCMessageInit) rpc__req__set_ps__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__set_ps__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespSetPs, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__set_ps__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__set_ps__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__set_ps__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_SetPs", - "RpcRespSetPs", - "RpcRespSetPs", - "", - sizeof(RpcRespSetPs), - 1, - rpc__resp__set_ps__field_descriptors, - rpc__resp__set_ps__field_indices_by_name, - 1, rpc__resp__set_ps__number_ranges, - (ProtobufCMessageInit) rpc__resp__set_ps__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__set_mac_address__field_descriptors[2] = -{ - { - "mac", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(RpcReqSetMacAddress, mac), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "mode", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqSetMacAddress, mode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__set_mac_address__field_indices_by_name[] = { - 0, /* field[0] = mac */ - 1, /* field[1] = mode */ -}; -static const ProtobufCIntRange rpc__req__set_mac_address__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__req__set_mac_address__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_SetMacAddress", - "RpcReqSetMacAddress", - "RpcReqSetMacAddress", - "", - sizeof(RpcReqSetMacAddress), - 2, - rpc__req__set_mac_address__field_descriptors, - rpc__req__set_mac_address__field_indices_by_name, - 1, rpc__req__set_mac_address__number_ranges, - (ProtobufCMessageInit) rpc__req__set_mac_address__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__set_mac_address__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespSetMacAddress, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__set_mac_address__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__set_mac_address__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__set_mac_address__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_SetMacAddress", - "RpcRespSetMacAddress", - "RpcRespSetMacAddress", - "", - sizeof(RpcRespSetMacAddress), - 1, - rpc__resp__set_mac_address__field_descriptors, - rpc__resp__set_mac_address__field_indices_by_name, - 1, rpc__resp__set_mac_address__number_ranges, - (ProtobufCMessageInit) rpc__resp__set_mac_address__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__otabegin__field_descriptors NULL -#define rpc__req__otabegin__field_indices_by_name NULL -#define rpc__req__otabegin__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__otabegin__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_OTABegin", - "RpcReqOTABegin", - "RpcReqOTABegin", - "", - sizeof(RpcReqOTABegin), - 0, - rpc__req__otabegin__field_descriptors, - rpc__req__otabegin__field_indices_by_name, - 0, rpc__req__otabegin__number_ranges, - (ProtobufCMessageInit) rpc__req__otabegin__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__otabegin__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespOTABegin, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__otabegin__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__otabegin__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__otabegin__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_OTABegin", - "RpcRespOTABegin", - "RpcRespOTABegin", - "", - sizeof(RpcRespOTABegin), - 1, - rpc__resp__otabegin__field_descriptors, - rpc__resp__otabegin__field_indices_by_name, - 1, rpc__resp__otabegin__number_ranges, - (ProtobufCMessageInit) rpc__resp__otabegin__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__otawrite__field_descriptors[1] = -{ - { - "ota_data", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(RpcReqOTAWrite, ota_data), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__otawrite__field_indices_by_name[] = { - 0, /* field[0] = ota_data */ -}; -static const ProtobufCIntRange rpc__req__otawrite__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__otawrite__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_OTAWrite", - "RpcReqOTAWrite", - "RpcReqOTAWrite", - "", - sizeof(RpcReqOTAWrite), - 1, - rpc__req__otawrite__field_descriptors, - rpc__req__otawrite__field_indices_by_name, - 1, rpc__req__otawrite__number_ranges, - (ProtobufCMessageInit) rpc__req__otawrite__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__otawrite__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespOTAWrite, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__otawrite__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__otawrite__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__otawrite__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_OTAWrite", - "RpcRespOTAWrite", - "RpcRespOTAWrite", - "", - sizeof(RpcRespOTAWrite), - 1, - rpc__resp__otawrite__field_descriptors, - rpc__resp__otawrite__field_indices_by_name, - 1, rpc__resp__otawrite__number_ranges, - (ProtobufCMessageInit) rpc__resp__otawrite__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__otaend__field_descriptors NULL -#define rpc__req__otaend__field_indices_by_name NULL -#define rpc__req__otaend__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__otaend__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_OTAEnd", - "RpcReqOTAEnd", - "RpcReqOTAEnd", - "", - sizeof(RpcReqOTAEnd), - 0, - rpc__req__otaend__field_descriptors, - rpc__req__otaend__field_indices_by_name, - 0, rpc__req__otaend__number_ranges, - (ProtobufCMessageInit) rpc__req__otaend__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__otaend__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespOTAEnd, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__otaend__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__otaend__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__otaend__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_OTAEnd", - "RpcRespOTAEnd", - "RpcRespOTAEnd", - "", - sizeof(RpcRespOTAEnd), - 1, - rpc__resp__otaend__field_descriptors, - rpc__resp__otaend__field_indices_by_name, - 1, rpc__resp__otaend__number_ranges, - (ProtobufCMessageInit) rpc__resp__otaend__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_set_max_tx_power__field_descriptors[1] = -{ - { - "power", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetMaxTxPower, power), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_set_max_tx_power__field_indices_by_name[] = { - 0, /* field[0] = power */ -}; -static const ProtobufCIntRange rpc__req__wifi_set_max_tx_power__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_set_max_tx_power__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiSetMaxTxPower", - "RpcReqWifiSetMaxTxPower", - "RpcReqWifiSetMaxTxPower", - "", - sizeof(RpcReqWifiSetMaxTxPower), - 1, - rpc__req__wifi_set_max_tx_power__field_descriptors, - rpc__req__wifi_set_max_tx_power__field_indices_by_name, - 1, rpc__req__wifi_set_max_tx_power__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_set_max_tx_power__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_set_max_tx_power__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiSetMaxTxPower, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_set_max_tx_power__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_set_max_tx_power__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_set_max_tx_power__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiSetMaxTxPower", - "RpcRespWifiSetMaxTxPower", - "RpcRespWifiSetMaxTxPower", - "", - sizeof(RpcRespWifiSetMaxTxPower), - 1, - rpc__resp__wifi_set_max_tx_power__field_descriptors, - rpc__resp__wifi_set_max_tx_power__field_indices_by_name, - 1, rpc__resp__wifi_set_max_tx_power__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_set_max_tx_power__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_get_max_tx_power__field_descriptors NULL -#define rpc__req__wifi_get_max_tx_power__field_indices_by_name NULL -#define rpc__req__wifi_get_max_tx_power__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_get_max_tx_power__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiGetMaxTxPower", - "RpcReqWifiGetMaxTxPower", - "RpcReqWifiGetMaxTxPower", - "", - sizeof(RpcReqWifiGetMaxTxPower), - 0, - rpc__req__wifi_get_max_tx_power__field_descriptors, - rpc__req__wifi_get_max_tx_power__field_indices_by_name, - 0, rpc__req__wifi_get_max_tx_power__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_get_max_tx_power__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_get_max_tx_power__field_descriptors[2] = -{ - { - "power", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetMaxTxPower, power), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetMaxTxPower, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_get_max_tx_power__field_indices_by_name[] = { - 0, /* field[0] = power */ - 1, /* field[1] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_get_max_tx_power__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_get_max_tx_power__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiGetMaxTxPower", - "RpcRespWifiGetMaxTxPower", - "RpcRespWifiGetMaxTxPower", - "", - sizeof(RpcRespWifiGetMaxTxPower), - 2, - rpc__resp__wifi_get_max_tx_power__field_descriptors, - rpc__resp__wifi_get_max_tx_power__field_indices_by_name, - 1, rpc__resp__wifi_get_max_tx_power__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_get_max_tx_power__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__config_heartbeat__field_descriptors[2] = -{ - { - "enable", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(RpcReqConfigHeartbeat, enable), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "duration", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqConfigHeartbeat, duration), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__config_heartbeat__field_indices_by_name[] = { - 1, /* field[1] = duration */ - 0, /* field[0] = enable */ -}; -static const ProtobufCIntRange rpc__req__config_heartbeat__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__req__config_heartbeat__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_ConfigHeartbeat", - "RpcReqConfigHeartbeat", - "RpcReqConfigHeartbeat", - "", - sizeof(RpcReqConfigHeartbeat), - 2, - rpc__req__config_heartbeat__field_descriptors, - rpc__req__config_heartbeat__field_indices_by_name, - 1, rpc__req__config_heartbeat__number_ranges, - (ProtobufCMessageInit) rpc__req__config_heartbeat__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__config_heartbeat__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespConfigHeartbeat, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__config_heartbeat__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__config_heartbeat__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__config_heartbeat__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_ConfigHeartbeat", - "RpcRespConfigHeartbeat", - "RpcRespConfigHeartbeat", - "", - sizeof(RpcRespConfigHeartbeat), - 1, - rpc__resp__config_heartbeat__field_descriptors, - rpc__resp__config_heartbeat__field_indices_by_name, - 1, rpc__resp__config_heartbeat__number_ranges, - (ProtobufCMessageInit) rpc__resp__config_heartbeat__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_init__field_descriptors[1] = -{ - { - "cfg", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiInit, cfg), - &wifi_init_config__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_init__field_indices_by_name[] = { - 0, /* field[0] = cfg */ -}; -static const ProtobufCIntRange rpc__req__wifi_init__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_init__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiInit", - "RpcReqWifiInit", - "RpcReqWifiInit", - "", - sizeof(RpcReqWifiInit), - 1, - rpc__req__wifi_init__field_descriptors, - rpc__req__wifi_init__field_indices_by_name, - 1, rpc__req__wifi_init__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_init__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_init__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiInit, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_init__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_init__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_init__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiInit", - "RpcRespWifiInit", - "RpcRespWifiInit", - "", - sizeof(RpcRespWifiInit), - 1, - rpc__resp__wifi_init__field_descriptors, - rpc__resp__wifi_init__field_indices_by_name, - 1, rpc__resp__wifi_init__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_init__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_deinit__field_descriptors NULL -#define rpc__req__wifi_deinit__field_indices_by_name NULL -#define rpc__req__wifi_deinit__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_deinit__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiDeinit", - "RpcReqWifiDeinit", - "RpcReqWifiDeinit", - "", - sizeof(RpcReqWifiDeinit), - 0, - rpc__req__wifi_deinit__field_descriptors, - rpc__req__wifi_deinit__field_indices_by_name, - 0, rpc__req__wifi_deinit__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_deinit__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_deinit__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiDeinit, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_deinit__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_deinit__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_deinit__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiDeinit", - "RpcRespWifiDeinit", - "RpcRespWifiDeinit", - "", - sizeof(RpcRespWifiDeinit), - 1, - rpc__resp__wifi_deinit__field_descriptors, - rpc__resp__wifi_deinit__field_indices_by_name, - 1, rpc__resp__wifi_deinit__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_deinit__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_set_config__field_descriptors[2] = -{ - { - "iface", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetConfig, iface), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "cfg", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetConfig, cfg), - &wifi_config__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_set_config__field_indices_by_name[] = { - 1, /* field[1] = cfg */ - 0, /* field[0] = iface */ -}; -static const ProtobufCIntRange rpc__req__wifi_set_config__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_set_config__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiSetConfig", - "RpcReqWifiSetConfig", - "RpcReqWifiSetConfig", - "", - sizeof(RpcReqWifiSetConfig), - 2, - rpc__req__wifi_set_config__field_descriptors, - rpc__req__wifi_set_config__field_indices_by_name, - 1, rpc__req__wifi_set_config__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_set_config__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_set_config__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiSetConfig, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_set_config__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_set_config__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_set_config__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiSetConfig", - "RpcRespWifiSetConfig", - "RpcRespWifiSetConfig", - "", - sizeof(RpcRespWifiSetConfig), - 1, - rpc__resp__wifi_set_config__field_descriptors, - rpc__resp__wifi_set_config__field_indices_by_name, - 1, rpc__resp__wifi_set_config__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_set_config__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_get_config__field_descriptors[1] = -{ - { - "iface", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiGetConfig, iface), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_get_config__field_indices_by_name[] = { - 0, /* field[0] = iface */ -}; -static const ProtobufCIntRange rpc__req__wifi_get_config__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_get_config__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiGetConfig", - "RpcReqWifiGetConfig", - "RpcReqWifiGetConfig", - "", - sizeof(RpcReqWifiGetConfig), - 1, - rpc__req__wifi_get_config__field_descriptors, - rpc__req__wifi_get_config__field_indices_by_name, - 1, rpc__req__wifi_get_config__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_get_config__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_get_config__field_descriptors[3] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetConfig, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "iface", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetConfig, iface), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "cfg", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetConfig, cfg), - &wifi_config__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_get_config__field_indices_by_name[] = { - 2, /* field[2] = cfg */ - 1, /* field[1] = iface */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_get_config__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 3 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_get_config__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiGetConfig", - "RpcRespWifiGetConfig", - "RpcRespWifiGetConfig", - "", - sizeof(RpcRespWifiGetConfig), - 3, - rpc__resp__wifi_get_config__field_descriptors, - rpc__resp__wifi_get_config__field_indices_by_name, - 1, rpc__resp__wifi_get_config__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_get_config__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_connect__field_descriptors NULL -#define rpc__req__wifi_connect__field_indices_by_name NULL -#define rpc__req__wifi_connect__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_connect__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiConnect", - "RpcReqWifiConnect", - "RpcReqWifiConnect", - "", - sizeof(RpcReqWifiConnect), - 0, - rpc__req__wifi_connect__field_descriptors, - rpc__req__wifi_connect__field_indices_by_name, - 0, rpc__req__wifi_connect__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_connect__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_connect__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiConnect, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_connect__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_connect__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_connect__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiConnect", - "RpcRespWifiConnect", - "RpcRespWifiConnect", - "", - sizeof(RpcRespWifiConnect), - 1, - rpc__resp__wifi_connect__field_descriptors, - rpc__resp__wifi_connect__field_indices_by_name, - 1, rpc__resp__wifi_connect__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_connect__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_disconnect__field_descriptors NULL -#define rpc__req__wifi_disconnect__field_indices_by_name NULL -#define rpc__req__wifi_disconnect__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_disconnect__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiDisconnect", - "RpcReqWifiDisconnect", - "RpcReqWifiDisconnect", - "", - sizeof(RpcReqWifiDisconnect), - 0, - rpc__req__wifi_disconnect__field_descriptors, - rpc__req__wifi_disconnect__field_indices_by_name, - 0, rpc__req__wifi_disconnect__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_disconnect__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_disconnect__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiDisconnect, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_disconnect__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_disconnect__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_disconnect__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiDisconnect", - "RpcRespWifiDisconnect", - "RpcRespWifiDisconnect", - "", - sizeof(RpcRespWifiDisconnect), - 1, - rpc__resp__wifi_disconnect__field_descriptors, - rpc__resp__wifi_disconnect__field_indices_by_name, - 1, rpc__resp__wifi_disconnect__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_disconnect__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_start__field_descriptors NULL -#define rpc__req__wifi_start__field_indices_by_name NULL -#define rpc__req__wifi_start__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_start__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiStart", - "RpcReqWifiStart", - "RpcReqWifiStart", - "", - sizeof(RpcReqWifiStart), - 0, - rpc__req__wifi_start__field_descriptors, - rpc__req__wifi_start__field_indices_by_name, - 0, rpc__req__wifi_start__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_start__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_start__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiStart, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_start__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_start__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_start__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiStart", - "RpcRespWifiStart", - "RpcRespWifiStart", - "", - sizeof(RpcRespWifiStart), - 1, - rpc__resp__wifi_start__field_descriptors, - rpc__resp__wifi_start__field_indices_by_name, - 1, rpc__resp__wifi_start__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_start__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_stop__field_descriptors NULL -#define rpc__req__wifi_stop__field_indices_by_name NULL -#define rpc__req__wifi_stop__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_stop__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiStop", - "RpcReqWifiStop", - "RpcReqWifiStop", - "", - sizeof(RpcReqWifiStop), - 0, - rpc__req__wifi_stop__field_descriptors, - rpc__req__wifi_stop__field_indices_by_name, - 0, rpc__req__wifi_stop__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_stop__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_stop__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiStop, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_stop__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_stop__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_stop__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiStop", - "RpcRespWifiStop", - "RpcRespWifiStop", - "", - sizeof(RpcRespWifiStop), - 1, - rpc__resp__wifi_stop__field_descriptors, - rpc__resp__wifi_stop__field_indices_by_name, - 1, rpc__resp__wifi_stop__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_stop__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_scan_start__field_descriptors[3] = -{ - { - "config", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiScanStart, config), - &wifi_scan_config__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "block", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiScanStart, block), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "config_set", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiScanStart, config_set), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_scan_start__field_indices_by_name[] = { - 1, /* field[1] = block */ - 0, /* field[0] = config */ - 2, /* field[2] = config_set */ -}; -static const ProtobufCIntRange rpc__req__wifi_scan_start__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 3 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_scan_start__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiScanStart", - "RpcReqWifiScanStart", - "RpcReqWifiScanStart", - "", - sizeof(RpcReqWifiScanStart), - 3, - rpc__req__wifi_scan_start__field_descriptors, - rpc__req__wifi_scan_start__field_indices_by_name, - 1, rpc__req__wifi_scan_start__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_scan_start__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_scan_start__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiScanStart, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_scan_start__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_scan_start__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_scan_start__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiScanStart", - "RpcRespWifiScanStart", - "RpcRespWifiScanStart", - "", - sizeof(RpcRespWifiScanStart), - 1, - rpc__resp__wifi_scan_start__field_descriptors, - rpc__resp__wifi_scan_start__field_indices_by_name, - 1, rpc__resp__wifi_scan_start__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_scan_start__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_scan_stop__field_descriptors NULL -#define rpc__req__wifi_scan_stop__field_indices_by_name NULL -#define rpc__req__wifi_scan_stop__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_scan_stop__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiScanStop", - "RpcReqWifiScanStop", - "RpcReqWifiScanStop", - "", - sizeof(RpcReqWifiScanStop), - 0, - rpc__req__wifi_scan_stop__field_descriptors, - rpc__req__wifi_scan_stop__field_indices_by_name, - 0, rpc__req__wifi_scan_stop__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_scan_stop__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_scan_stop__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiScanStop, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_scan_stop__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_scan_stop__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_scan_stop__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiScanStop", - "RpcRespWifiScanStop", - "RpcRespWifiScanStop", - "", - sizeof(RpcRespWifiScanStop), - 1, - rpc__resp__wifi_scan_stop__field_descriptors, - rpc__resp__wifi_scan_stop__field_indices_by_name, - 1, rpc__resp__wifi_scan_stop__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_scan_stop__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_scan_get_ap_num__field_descriptors NULL -#define rpc__req__wifi_scan_get_ap_num__field_indices_by_name NULL -#define rpc__req__wifi_scan_get_ap_num__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_scan_get_ap_num__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiScanGetApNum", - "RpcReqWifiScanGetApNum", - "RpcReqWifiScanGetApNum", - "", - sizeof(RpcReqWifiScanGetApNum), - 0, - rpc__req__wifi_scan_get_ap_num__field_descriptors, - rpc__req__wifi_scan_get_ap_num__field_indices_by_name, - 0, rpc__req__wifi_scan_get_ap_num__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_scan_get_ap_num__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_scan_get_ap_num__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiScanGetApNum, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "number", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiScanGetApNum, number), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_scan_get_ap_num__field_indices_by_name[] = { - 1, /* field[1] = number */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_scan_get_ap_num__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_scan_get_ap_num__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiScanGetApNum", - "RpcRespWifiScanGetApNum", - "RpcRespWifiScanGetApNum", - "", - sizeof(RpcRespWifiScanGetApNum), - 2, - rpc__resp__wifi_scan_get_ap_num__field_descriptors, - rpc__resp__wifi_scan_get_ap_num__field_indices_by_name, - 1, rpc__resp__wifi_scan_get_ap_num__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_scan_get_ap_num__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_scan_get_ap_records__field_descriptors[1] = -{ - { - "number", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiScanGetApRecords, number), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_scan_get_ap_records__field_indices_by_name[] = { - 0, /* field[0] = number */ -}; -static const ProtobufCIntRange rpc__req__wifi_scan_get_ap_records__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_scan_get_ap_records__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiScanGetApRecords", - "RpcReqWifiScanGetApRecords", - "RpcReqWifiScanGetApRecords", - "", - sizeof(RpcReqWifiScanGetApRecords), - 1, - rpc__req__wifi_scan_get_ap_records__field_descriptors, - rpc__req__wifi_scan_get_ap_records__field_indices_by_name, - 1, rpc__req__wifi_scan_get_ap_records__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_scan_get_ap_records__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_scan_get_ap_records__field_descriptors[3] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiScanGetApRecords, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "number", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiScanGetApRecords, number), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ap_records", - 3, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(RpcRespWifiScanGetApRecords, n_ap_records), - offsetof(RpcRespWifiScanGetApRecords, ap_records), - &wifi_ap_record__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_scan_get_ap_records__field_indices_by_name[] = { - 2, /* field[2] = ap_records */ - 1, /* field[1] = number */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_scan_get_ap_records__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 3 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_scan_get_ap_records__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiScanGetApRecords", - "RpcRespWifiScanGetApRecords", - "RpcRespWifiScanGetApRecords", - "", - sizeof(RpcRespWifiScanGetApRecords), - 3, - rpc__resp__wifi_scan_get_ap_records__field_descriptors, - rpc__resp__wifi_scan_get_ap_records__field_indices_by_name, - 1, rpc__resp__wifi_scan_get_ap_records__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_scan_get_ap_records__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_scan_get_ap_record__field_descriptors NULL -#define rpc__req__wifi_scan_get_ap_record__field_indices_by_name NULL -#define rpc__req__wifi_scan_get_ap_record__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_scan_get_ap_record__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiScanGetApRecord", - "RpcReqWifiScanGetApRecord", - "RpcReqWifiScanGetApRecord", - "", - sizeof(RpcReqWifiScanGetApRecord), - 0, - rpc__req__wifi_scan_get_ap_record__field_descriptors, - rpc__req__wifi_scan_get_ap_record__field_indices_by_name, - 0, rpc__req__wifi_scan_get_ap_record__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_scan_get_ap_record__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_scan_get_ap_record__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiScanGetApRecord, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ap_record", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiScanGetApRecord, ap_record), - &wifi_ap_record__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_scan_get_ap_record__field_indices_by_name[] = { - 1, /* field[1] = ap_record */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_scan_get_ap_record__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_scan_get_ap_record__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiScanGetApRecord", - "RpcRespWifiScanGetApRecord", - "RpcRespWifiScanGetApRecord", - "", - sizeof(RpcRespWifiScanGetApRecord), - 2, - rpc__resp__wifi_scan_get_ap_record__field_descriptors, - rpc__resp__wifi_scan_get_ap_record__field_indices_by_name, - 1, rpc__resp__wifi_scan_get_ap_record__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_scan_get_ap_record__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_clear_ap_list__field_descriptors NULL -#define rpc__req__wifi_clear_ap_list__field_indices_by_name NULL -#define rpc__req__wifi_clear_ap_list__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_clear_ap_list__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiClearApList", - "RpcReqWifiClearApList", - "RpcReqWifiClearApList", - "", - sizeof(RpcReqWifiClearApList), - 0, - rpc__req__wifi_clear_ap_list__field_descriptors, - rpc__req__wifi_clear_ap_list__field_indices_by_name, - 0, rpc__req__wifi_clear_ap_list__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_clear_ap_list__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_clear_ap_list__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiClearApList, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_clear_ap_list__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_clear_ap_list__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_clear_ap_list__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiClearApList", - "RpcRespWifiClearApList", - "RpcRespWifiClearApList", - "", - sizeof(RpcRespWifiClearApList), - 1, - rpc__resp__wifi_clear_ap_list__field_descriptors, - rpc__resp__wifi_clear_ap_list__field_indices_by_name, - 1, rpc__resp__wifi_clear_ap_list__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_clear_ap_list__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_restore__field_descriptors NULL -#define rpc__req__wifi_restore__field_indices_by_name NULL -#define rpc__req__wifi_restore__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_restore__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiRestore", - "RpcReqWifiRestore", - "RpcReqWifiRestore", - "", - sizeof(RpcReqWifiRestore), - 0, - rpc__req__wifi_restore__field_descriptors, - rpc__req__wifi_restore__field_indices_by_name, - 0, rpc__req__wifi_restore__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_restore__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_restore__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiRestore, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_restore__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_restore__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_restore__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiRestore", - "RpcRespWifiRestore", - "RpcRespWifiRestore", - "", - sizeof(RpcRespWifiRestore), - 1, - rpc__resp__wifi_restore__field_descriptors, - rpc__resp__wifi_restore__field_indices_by_name, - 1, rpc__resp__wifi_restore__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_restore__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_clear_fast_connect__field_descriptors NULL -#define rpc__req__wifi_clear_fast_connect__field_indices_by_name NULL -#define rpc__req__wifi_clear_fast_connect__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_clear_fast_connect__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiClearFastConnect", - "RpcReqWifiClearFastConnect", - "RpcReqWifiClearFastConnect", - "", - sizeof(RpcReqWifiClearFastConnect), - 0, - rpc__req__wifi_clear_fast_connect__field_descriptors, - rpc__req__wifi_clear_fast_connect__field_indices_by_name, - 0, rpc__req__wifi_clear_fast_connect__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_clear_fast_connect__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_clear_fast_connect__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiClearFastConnect, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_clear_fast_connect__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_clear_fast_connect__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_clear_fast_connect__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiClearFastConnect", - "RpcRespWifiClearFastConnect", - "RpcRespWifiClearFastConnect", - "", - sizeof(RpcRespWifiClearFastConnect), - 1, - rpc__resp__wifi_clear_fast_connect__field_descriptors, - rpc__resp__wifi_clear_fast_connect__field_indices_by_name, - 1, rpc__resp__wifi_clear_fast_connect__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_clear_fast_connect__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_deauth_sta__field_descriptors[1] = -{ - { - "aid", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiDeauthSta, aid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_deauth_sta__field_indices_by_name[] = { - 0, /* field[0] = aid */ -}; -static const ProtobufCIntRange rpc__req__wifi_deauth_sta__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_deauth_sta__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiDeauthSta", - "RpcReqWifiDeauthSta", - "RpcReqWifiDeauthSta", - "", - sizeof(RpcReqWifiDeauthSta), - 1, - rpc__req__wifi_deauth_sta__field_descriptors, - rpc__req__wifi_deauth_sta__field_indices_by_name, - 1, rpc__req__wifi_deauth_sta__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_deauth_sta__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_deauth_sta__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiDeauthSta, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "aid", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiDeauthSta, aid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_deauth_sta__field_indices_by_name[] = { - 1, /* field[1] = aid */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_deauth_sta__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_deauth_sta__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiDeauthSta", - "RpcRespWifiDeauthSta", - "RpcRespWifiDeauthSta", - "", - sizeof(RpcRespWifiDeauthSta), - 2, - rpc__resp__wifi_deauth_sta__field_descriptors, - rpc__resp__wifi_deauth_sta__field_indices_by_name, - 1, rpc__resp__wifi_deauth_sta__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_deauth_sta__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_sta_get_ap_info__field_descriptors NULL -#define rpc__req__wifi_sta_get_ap_info__field_indices_by_name NULL -#define rpc__req__wifi_sta_get_ap_info__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_ap_info__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiStaGetApInfo", - "RpcReqWifiStaGetApInfo", - "RpcReqWifiStaGetApInfo", - "", - sizeof(RpcReqWifiStaGetApInfo), - 0, - rpc__req__wifi_sta_get_ap_info__field_descriptors, - rpc__req__wifi_sta_get_ap_info__field_indices_by_name, - 0, rpc__req__wifi_sta_get_ap_info__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_sta_get_ap_info__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_sta_get_ap_info__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiStaGetApInfo, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ap_record", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiStaGetApInfo, ap_record), - &wifi_ap_record__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_sta_get_ap_info__field_indices_by_name[] = { - 1, /* field[1] = ap_record */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_sta_get_ap_info__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_ap_info__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiStaGetApInfo", - "RpcRespWifiStaGetApInfo", - "RpcRespWifiStaGetApInfo", - "", - sizeof(RpcRespWifiStaGetApInfo), - 2, - rpc__resp__wifi_sta_get_ap_info__field_descriptors, - rpc__resp__wifi_sta_get_ap_info__field_indices_by_name, - 1, rpc__resp__wifi_sta_get_ap_info__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_sta_get_ap_info__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_set_protocol__field_descriptors[2] = -{ - { - "ifx", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetProtocol, ifx), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "protocol_bitmap", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetProtocol, protocol_bitmap), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_set_protocol__field_indices_by_name[] = { - 0, /* field[0] = ifx */ - 1, /* field[1] = protocol_bitmap */ -}; -static const ProtobufCIntRange rpc__req__wifi_set_protocol__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_set_protocol__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiSetProtocol", - "RpcReqWifiSetProtocol", - "RpcReqWifiSetProtocol", - "", - sizeof(RpcReqWifiSetProtocol), - 2, - rpc__req__wifi_set_protocol__field_descriptors, - rpc__req__wifi_set_protocol__field_indices_by_name, - 1, rpc__req__wifi_set_protocol__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_set_protocol__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_set_protocol__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiSetProtocol, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_set_protocol__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_set_protocol__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_set_protocol__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiSetProtocol", - "RpcRespWifiSetProtocol", - "RpcRespWifiSetProtocol", - "", - sizeof(RpcRespWifiSetProtocol), - 1, - rpc__resp__wifi_set_protocol__field_descriptors, - rpc__resp__wifi_set_protocol__field_indices_by_name, - 1, rpc__resp__wifi_set_protocol__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_set_protocol__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_get_protocol__field_descriptors[1] = -{ - { - "ifx", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiGetProtocol, ifx), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_get_protocol__field_indices_by_name[] = { - 0, /* field[0] = ifx */ -}; -static const ProtobufCIntRange rpc__req__wifi_get_protocol__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_get_protocol__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiGetProtocol", - "RpcReqWifiGetProtocol", - "RpcReqWifiGetProtocol", - "", - sizeof(RpcReqWifiGetProtocol), - 1, - rpc__req__wifi_get_protocol__field_descriptors, - rpc__req__wifi_get_protocol__field_indices_by_name, - 1, rpc__req__wifi_get_protocol__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_get_protocol__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_get_protocol__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetProtocol, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "protocol_bitmap", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetProtocol, protocol_bitmap), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_get_protocol__field_indices_by_name[] = { - 1, /* field[1] = protocol_bitmap */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_get_protocol__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_get_protocol__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiGetProtocol", - "RpcRespWifiGetProtocol", - "RpcRespWifiGetProtocol", - "", - sizeof(RpcRespWifiGetProtocol), - 2, - rpc__resp__wifi_get_protocol__field_descriptors, - rpc__resp__wifi_get_protocol__field_indices_by_name, - 1, rpc__resp__wifi_get_protocol__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_get_protocol__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_set_bandwidth__field_descriptors[2] = -{ - { - "ifx", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetBandwidth, ifx), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "bw", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetBandwidth, bw), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_set_bandwidth__field_indices_by_name[] = { - 1, /* field[1] = bw */ - 0, /* field[0] = ifx */ -}; -static const ProtobufCIntRange rpc__req__wifi_set_bandwidth__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_set_bandwidth__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiSetBandwidth", - "RpcReqWifiSetBandwidth", - "RpcReqWifiSetBandwidth", - "", - sizeof(RpcReqWifiSetBandwidth), - 2, - rpc__req__wifi_set_bandwidth__field_descriptors, - rpc__req__wifi_set_bandwidth__field_indices_by_name, - 1, rpc__req__wifi_set_bandwidth__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_set_bandwidth__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_set_bandwidth__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiSetBandwidth, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_set_bandwidth__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_set_bandwidth__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_set_bandwidth__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiSetBandwidth", - "RpcRespWifiSetBandwidth", - "RpcRespWifiSetBandwidth", - "", - sizeof(RpcRespWifiSetBandwidth), - 1, - rpc__resp__wifi_set_bandwidth__field_descriptors, - rpc__resp__wifi_set_bandwidth__field_indices_by_name, - 1, rpc__resp__wifi_set_bandwidth__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_set_bandwidth__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_get_bandwidth__field_descriptors[1] = -{ - { - "ifx", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiGetBandwidth, ifx), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_get_bandwidth__field_indices_by_name[] = { - 0, /* field[0] = ifx */ -}; -static const ProtobufCIntRange rpc__req__wifi_get_bandwidth__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_get_bandwidth__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiGetBandwidth", - "RpcReqWifiGetBandwidth", - "RpcReqWifiGetBandwidth", - "", - sizeof(RpcReqWifiGetBandwidth), - 1, - rpc__req__wifi_get_bandwidth__field_descriptors, - rpc__req__wifi_get_bandwidth__field_indices_by_name, - 1, rpc__req__wifi_get_bandwidth__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_get_bandwidth__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_get_bandwidth__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetBandwidth, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "bw", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetBandwidth, bw), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_get_bandwidth__field_indices_by_name[] = { - 1, /* field[1] = bw */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_get_bandwidth__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_get_bandwidth__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiGetBandwidth", - "RpcRespWifiGetBandwidth", - "RpcRespWifiGetBandwidth", - "", - sizeof(RpcRespWifiGetBandwidth), - 2, - rpc__resp__wifi_get_bandwidth__field_descriptors, - rpc__resp__wifi_get_bandwidth__field_indices_by_name, - 1, rpc__resp__wifi_get_bandwidth__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_get_bandwidth__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_set_channel__field_descriptors[2] = -{ - { - "primary", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetChannel, primary), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "second", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetChannel, second), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_set_channel__field_indices_by_name[] = { - 0, /* field[0] = primary */ - 1, /* field[1] = second */ -}; -static const ProtobufCIntRange rpc__req__wifi_set_channel__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_set_channel__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiSetChannel", - "RpcReqWifiSetChannel", - "RpcReqWifiSetChannel", - "", - sizeof(RpcReqWifiSetChannel), - 2, - rpc__req__wifi_set_channel__field_descriptors, - rpc__req__wifi_set_channel__field_indices_by_name, - 1, rpc__req__wifi_set_channel__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_set_channel__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_set_channel__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiSetChannel, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_set_channel__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_set_channel__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_set_channel__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiSetChannel", - "RpcRespWifiSetChannel", - "RpcRespWifiSetChannel", - "", - sizeof(RpcRespWifiSetChannel), - 1, - rpc__resp__wifi_set_channel__field_descriptors, - rpc__resp__wifi_set_channel__field_indices_by_name, - 1, rpc__resp__wifi_set_channel__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_set_channel__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_get_channel__field_descriptors NULL -#define rpc__req__wifi_get_channel__field_indices_by_name NULL -#define rpc__req__wifi_get_channel__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_get_channel__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiGetChannel", - "RpcReqWifiGetChannel", - "RpcReqWifiGetChannel", - "", - sizeof(RpcReqWifiGetChannel), - 0, - rpc__req__wifi_get_channel__field_descriptors, - rpc__req__wifi_get_channel__field_indices_by_name, - 0, rpc__req__wifi_get_channel__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_get_channel__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_get_channel__field_descriptors[3] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetChannel, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "primary", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetChannel, primary), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "second", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetChannel, second), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_get_channel__field_indices_by_name[] = { - 1, /* field[1] = primary */ - 0, /* field[0] = resp */ - 2, /* field[2] = second */ -}; -static const ProtobufCIntRange rpc__resp__wifi_get_channel__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 3 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_get_channel__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiGetChannel", - "RpcRespWifiGetChannel", - "RpcRespWifiGetChannel", - "", - sizeof(RpcRespWifiGetChannel), - 3, - rpc__resp__wifi_get_channel__field_descriptors, - rpc__resp__wifi_get_channel__field_indices_by_name, - 1, rpc__resp__wifi_get_channel__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_get_channel__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_set_storage__field_descriptors[1] = -{ - { - "storage", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetStorage, storage), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_set_storage__field_indices_by_name[] = { - 0, /* field[0] = storage */ -}; -static const ProtobufCIntRange rpc__req__wifi_set_storage__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_set_storage__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiSetStorage", - "RpcReqWifiSetStorage", - "RpcReqWifiSetStorage", - "", - sizeof(RpcReqWifiSetStorage), - 1, - rpc__req__wifi_set_storage__field_descriptors, - rpc__req__wifi_set_storage__field_indices_by_name, - 1, rpc__req__wifi_set_storage__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_set_storage__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_set_storage__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiSetStorage, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_set_storage__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_set_storage__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_set_storage__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiSetStorage", - "RpcRespWifiSetStorage", - "RpcRespWifiSetStorage", - "", - sizeof(RpcRespWifiSetStorage), - 1, - rpc__resp__wifi_set_storage__field_descriptors, - rpc__resp__wifi_set_storage__field_indices_by_name, - 1, rpc__resp__wifi_set_storage__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_set_storage__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_set_country_code__field_descriptors[2] = -{ - { - "country", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetCountryCode, country), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ieee80211d_enabled", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetCountryCode, ieee80211d_enabled), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_set_country_code__field_indices_by_name[] = { - 0, /* field[0] = country */ - 1, /* field[1] = ieee80211d_enabled */ -}; -static const ProtobufCIntRange rpc__req__wifi_set_country_code__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_set_country_code__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiSetCountryCode", - "RpcReqWifiSetCountryCode", - "RpcReqWifiSetCountryCode", - "", - sizeof(RpcReqWifiSetCountryCode), - 2, - rpc__req__wifi_set_country_code__field_descriptors, - rpc__req__wifi_set_country_code__field_indices_by_name, - 1, rpc__req__wifi_set_country_code__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_set_country_code__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_set_country_code__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiSetCountryCode, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_set_country_code__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_set_country_code__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_set_country_code__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiSetCountryCode", - "RpcRespWifiSetCountryCode", - "RpcRespWifiSetCountryCode", - "", - sizeof(RpcRespWifiSetCountryCode), - 1, - rpc__resp__wifi_set_country_code__field_descriptors, - rpc__resp__wifi_set_country_code__field_indices_by_name, - 1, rpc__resp__wifi_set_country_code__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_set_country_code__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_get_country_code__field_descriptors NULL -#define rpc__req__wifi_get_country_code__field_indices_by_name NULL -#define rpc__req__wifi_get_country_code__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_get_country_code__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiGetCountryCode", - "RpcReqWifiGetCountryCode", - "RpcReqWifiGetCountryCode", - "", - sizeof(RpcReqWifiGetCountryCode), - 0, - rpc__req__wifi_get_country_code__field_descriptors, - rpc__req__wifi_get_country_code__field_indices_by_name, - 0, rpc__req__wifi_get_country_code__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_get_country_code__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_get_country_code__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetCountryCode, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "country", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetCountryCode, country), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_get_country_code__field_indices_by_name[] = { - 1, /* field[1] = country */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_get_country_code__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_get_country_code__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiGetCountryCode", - "RpcRespWifiGetCountryCode", - "RpcRespWifiGetCountryCode", - "", - sizeof(RpcRespWifiGetCountryCode), - 2, - rpc__resp__wifi_get_country_code__field_descriptors, - rpc__resp__wifi_get_country_code__field_indices_by_name, - 1, rpc__resp__wifi_get_country_code__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_get_country_code__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_set_country__field_descriptors[1] = -{ - { - "country", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetCountry, country), - &wifi_country__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_set_country__field_indices_by_name[] = { - 0, /* field[0] = country */ -}; -static const ProtobufCIntRange rpc__req__wifi_set_country__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_set_country__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiSetCountry", - "RpcReqWifiSetCountry", - "RpcReqWifiSetCountry", - "", - sizeof(RpcReqWifiSetCountry), - 1, - rpc__req__wifi_set_country__field_descriptors, - rpc__req__wifi_set_country__field_indices_by_name, - 1, rpc__req__wifi_set_country__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_set_country__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_set_country__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiSetCountry, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_set_country__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_set_country__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_set_country__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiSetCountry", - "RpcRespWifiSetCountry", - "RpcRespWifiSetCountry", - "", - sizeof(RpcRespWifiSetCountry), - 1, - rpc__resp__wifi_set_country__field_descriptors, - rpc__resp__wifi_set_country__field_indices_by_name, - 1, rpc__resp__wifi_set_country__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_set_country__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_get_country__field_descriptors NULL -#define rpc__req__wifi_get_country__field_indices_by_name NULL -#define rpc__req__wifi_get_country__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_get_country__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiGetCountry", - "RpcReqWifiGetCountry", - "RpcReqWifiGetCountry", - "", - sizeof(RpcReqWifiGetCountry), - 0, - rpc__req__wifi_get_country__field_descriptors, - rpc__req__wifi_get_country__field_indices_by_name, - 0, rpc__req__wifi_get_country__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_get_country__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_get_country__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetCountry, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "country", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetCountry, country), - &wifi_country__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_get_country__field_indices_by_name[] = { - 1, /* field[1] = country */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_get_country__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_get_country__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiGetCountry", - "RpcRespWifiGetCountry", - "RpcRespWifiGetCountry", - "", - sizeof(RpcRespWifiGetCountry), - 2, - rpc__resp__wifi_get_country__field_descriptors, - rpc__resp__wifi_get_country__field_indices_by_name, - 1, rpc__resp__wifi_get_country__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_get_country__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_ap_get_sta_list__field_descriptors NULL -#define rpc__req__wifi_ap_get_sta_list__field_indices_by_name NULL -#define rpc__req__wifi_ap_get_sta_list__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_ap_get_sta_list__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiApGetStaList", - "RpcReqWifiApGetStaList", - "RpcReqWifiApGetStaList", - "", - sizeof(RpcReqWifiApGetStaList), - 0, - rpc__req__wifi_ap_get_sta_list__field_descriptors, - rpc__req__wifi_ap_get_sta_list__field_indices_by_name, - 0, rpc__req__wifi_ap_get_sta_list__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_ap_get_sta_list__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_ap_get_sta_list__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiApGetStaList, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "sta_list", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiApGetStaList, sta_list), - &wifi_sta_list__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_ap_get_sta_list__field_indices_by_name[] = { - 0, /* field[0] = resp */ - 1, /* field[1] = sta_list */ -}; -static const ProtobufCIntRange rpc__resp__wifi_ap_get_sta_list__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_ap_get_sta_list__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiApGetStaList", - "RpcRespWifiApGetStaList", - "RpcRespWifiApGetStaList", - "", - sizeof(RpcRespWifiApGetStaList), - 2, - rpc__resp__wifi_ap_get_sta_list__field_descriptors, - rpc__resp__wifi_ap_get_sta_list__field_indices_by_name, - 1, rpc__resp__wifi_ap_get_sta_list__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_ap_get_sta_list__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_ap_get_sta_aid__field_descriptors[1] = -{ - { - "mac", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiApGetStaAid, mac), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_ap_get_sta_aid__field_indices_by_name[] = { - 0, /* field[0] = mac */ -}; -static const ProtobufCIntRange rpc__req__wifi_ap_get_sta_aid__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_ap_get_sta_aid__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiApGetStaAid", - "RpcReqWifiApGetStaAid", - "RpcReqWifiApGetStaAid", - "", - sizeof(RpcReqWifiApGetStaAid), - 1, - rpc__req__wifi_ap_get_sta_aid__field_descriptors, - rpc__req__wifi_ap_get_sta_aid__field_indices_by_name, - 1, rpc__req__wifi_ap_get_sta_aid__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_ap_get_sta_aid__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_sta_get_negotiated_phymode__field_descriptors NULL -#define rpc__req__wifi_sta_get_negotiated_phymode__field_indices_by_name NULL -#define rpc__req__wifi_sta_get_negotiated_phymode__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_negotiated_phymode__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiStaGetNegotiatedPhymode", - "RpcReqWifiStaGetNegotiatedPhymode", - "RpcReqWifiStaGetNegotiatedPhymode", - "", - sizeof(RpcReqWifiStaGetNegotiatedPhymode), - 0, - rpc__req__wifi_sta_get_negotiated_phymode__field_descriptors, - rpc__req__wifi_sta_get_negotiated_phymode__field_indices_by_name, - 0, rpc__req__wifi_sta_get_negotiated_phymode__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_sta_get_negotiated_phymode__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_sta_get_negotiated_phymode__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiStaGetNegotiatedPhymode, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "phymode", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiStaGetNegotiatedPhymode, phymode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_sta_get_negotiated_phymode__field_indices_by_name[] = { - 1, /* field[1] = phymode */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_sta_get_negotiated_phymode__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_negotiated_phymode__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiStaGetNegotiatedPhymode", - "RpcRespWifiStaGetNegotiatedPhymode", - "RpcRespWifiStaGetNegotiatedPhymode", - "", - sizeof(RpcRespWifiStaGetNegotiatedPhymode), - 2, - rpc__resp__wifi_sta_get_negotiated_phymode__field_descriptors, - rpc__resp__wifi_sta_get_negotiated_phymode__field_indices_by_name, - 1, rpc__resp__wifi_sta_get_negotiated_phymode__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_sta_get_negotiated_phymode__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_ap_get_sta_aid__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiApGetStaAid, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "aid", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiApGetStaAid, aid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_ap_get_sta_aid__field_indices_by_name[] = { - 1, /* field[1] = aid */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_ap_get_sta_aid__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_ap_get_sta_aid__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiApGetStaAid", - "RpcRespWifiApGetStaAid", - "RpcRespWifiApGetStaAid", - "", - sizeof(RpcRespWifiApGetStaAid), - 2, - rpc__resp__wifi_ap_get_sta_aid__field_descriptors, - rpc__resp__wifi_ap_get_sta_aid__field_indices_by_name, - 1, rpc__resp__wifi_ap_get_sta_aid__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_ap_get_sta_aid__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_sta_get_rssi__field_descriptors NULL -#define rpc__req__wifi_sta_get_rssi__field_indices_by_name NULL -#define rpc__req__wifi_sta_get_rssi__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_rssi__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiStaGetRssi", - "RpcReqWifiStaGetRssi", - "RpcReqWifiStaGetRssi", - "", - sizeof(RpcReqWifiStaGetRssi), - 0, - rpc__req__wifi_sta_get_rssi__field_descriptors, - rpc__req__wifi_sta_get_rssi__field_indices_by_name, - 0, rpc__req__wifi_sta_get_rssi__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_sta_get_rssi__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_sta_get_rssi__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiStaGetRssi, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "rssi", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiStaGetRssi, rssi), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_sta_get_rssi__field_indices_by_name[] = { - 0, /* field[0] = resp */ - 1, /* field[1] = rssi */ -}; -static const ProtobufCIntRange rpc__resp__wifi_sta_get_rssi__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_rssi__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiStaGetRssi", - "RpcRespWifiStaGetRssi", - "RpcRespWifiStaGetRssi", - "", - sizeof(RpcRespWifiStaGetRssi), - 2, - rpc__resp__wifi_sta_get_rssi__field_descriptors, - rpc__resp__wifi_sta_get_rssi__field_indices_by_name, - 1, rpc__resp__wifi_sta_get_rssi__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_sta_get_rssi__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_sta_get_aid__field_descriptors NULL -#define rpc__req__wifi_sta_get_aid__field_indices_by_name NULL -#define rpc__req__wifi_sta_get_aid__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_aid__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiStaGetAid", - "RpcReqWifiStaGetAid", - "RpcReqWifiStaGetAid", - "", - sizeof(RpcReqWifiStaGetAid), - 0, - rpc__req__wifi_sta_get_aid__field_descriptors, - rpc__req__wifi_sta_get_aid__field_indices_by_name, - 0, rpc__req__wifi_sta_get_aid__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_sta_get_aid__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_sta_get_aid__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiStaGetAid, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "aid", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiStaGetAid, aid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_sta_get_aid__field_indices_by_name[] = { - 1, /* field[1] = aid */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_sta_get_aid__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_aid__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiStaGetAid", - "RpcRespWifiStaGetAid", - "RpcRespWifiStaGetAid", - "", - sizeof(RpcRespWifiStaGetAid), - 2, - rpc__resp__wifi_sta_get_aid__field_descriptors, - rpc__resp__wifi_sta_get_aid__field_indices_by_name, - 1, rpc__resp__wifi_sta_get_aid__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_sta_get_aid__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_set_protocols__field_descriptors[2] = -{ - { - "ifx", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetProtocols, ifx), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "protocols", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetProtocols, protocols), - &wifi_protocols__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_set_protocols__field_indices_by_name[] = { - 0, /* field[0] = ifx */ - 1, /* field[1] = protocols */ -}; -static const ProtobufCIntRange rpc__req__wifi_set_protocols__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_set_protocols__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiSetProtocols", - "RpcReqWifiSetProtocols", - "RpcReqWifiSetProtocols", - "", - sizeof(RpcReqWifiSetProtocols), - 2, - rpc__req__wifi_set_protocols__field_descriptors, - rpc__req__wifi_set_protocols__field_indices_by_name, - 1, rpc__req__wifi_set_protocols__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_set_protocols__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_set_protocols__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiSetProtocols, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ifx", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiSetProtocols, ifx), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_set_protocols__field_indices_by_name[] = { - 1, /* field[1] = ifx */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_set_protocols__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_set_protocols__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiSetProtocols", - "RpcRespWifiSetProtocols", - "RpcRespWifiSetProtocols", - "", - sizeof(RpcRespWifiSetProtocols), - 2, - rpc__resp__wifi_set_protocols__field_descriptors, - rpc__resp__wifi_set_protocols__field_indices_by_name, - 1, rpc__resp__wifi_set_protocols__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_set_protocols__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_get_protocols__field_descriptors[1] = -{ - { - "ifx", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiGetProtocols, ifx), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_get_protocols__field_indices_by_name[] = { - 0, /* field[0] = ifx */ -}; -static const ProtobufCIntRange rpc__req__wifi_get_protocols__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_get_protocols__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiGetProtocols", - "RpcReqWifiGetProtocols", - "RpcReqWifiGetProtocols", - "", - sizeof(RpcReqWifiGetProtocols), - 1, - rpc__req__wifi_get_protocols__field_descriptors, - rpc__req__wifi_get_protocols__field_indices_by_name, - 1, rpc__req__wifi_get_protocols__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_get_protocols__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_get_protocols__field_descriptors[3] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetProtocols, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ifx", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetProtocols, ifx), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "protocols", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetProtocols, protocols), - &wifi_protocols__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_get_protocols__field_indices_by_name[] = { - 1, /* field[1] = ifx */ - 2, /* field[2] = protocols */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_get_protocols__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 3 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_get_protocols__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiGetProtocols", - "RpcRespWifiGetProtocols", - "RpcRespWifiGetProtocols", - "", - sizeof(RpcRespWifiGetProtocols), - 3, - rpc__resp__wifi_get_protocols__field_descriptors, - rpc__resp__wifi_get_protocols__field_indices_by_name, - 1, rpc__resp__wifi_get_protocols__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_get_protocols__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_set_bandwidths__field_descriptors[2] = -{ - { - "ifx", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetBandwidths, ifx), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "bandwidths", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetBandwidths, bandwidths), - &wifi_bandwidths__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_set_bandwidths__field_indices_by_name[] = { - 1, /* field[1] = bandwidths */ - 0, /* field[0] = ifx */ -}; -static const ProtobufCIntRange rpc__req__wifi_set_bandwidths__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_set_bandwidths__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiSetBandwidths", - "RpcReqWifiSetBandwidths", - "RpcReqWifiSetBandwidths", - "", - sizeof(RpcReqWifiSetBandwidths), - 2, - rpc__req__wifi_set_bandwidths__field_descriptors, - rpc__req__wifi_set_bandwidths__field_indices_by_name, - 1, rpc__req__wifi_set_bandwidths__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_set_bandwidths__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_set_bandwidths__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiSetBandwidths, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ifx", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiSetBandwidths, ifx), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_set_bandwidths__field_indices_by_name[] = { - 1, /* field[1] = ifx */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_set_bandwidths__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_set_bandwidths__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiSetBandwidths", - "RpcRespWifiSetBandwidths", - "RpcRespWifiSetBandwidths", - "", - sizeof(RpcRespWifiSetBandwidths), - 2, - rpc__resp__wifi_set_bandwidths__field_descriptors, - rpc__resp__wifi_set_bandwidths__field_indices_by_name, - 1, rpc__resp__wifi_set_bandwidths__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_set_bandwidths__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_get_bandwidths__field_descriptors[1] = -{ - { - "ifx", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiGetBandwidths, ifx), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_get_bandwidths__field_indices_by_name[] = { - 0, /* field[0] = ifx */ -}; -static const ProtobufCIntRange rpc__req__wifi_get_bandwidths__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_get_bandwidths__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiGetBandwidths", - "RpcReqWifiGetBandwidths", - "RpcReqWifiGetBandwidths", - "", - sizeof(RpcReqWifiGetBandwidths), - 1, - rpc__req__wifi_get_bandwidths__field_descriptors, - rpc__req__wifi_get_bandwidths__field_indices_by_name, - 1, rpc__req__wifi_get_bandwidths__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_get_bandwidths__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_get_bandwidths__field_descriptors[3] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetBandwidths, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ifx", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetBandwidths, ifx), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "bandwidths", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetBandwidths, bandwidths), - &wifi_bandwidths__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_get_bandwidths__field_indices_by_name[] = { - 2, /* field[2] = bandwidths */ - 1, /* field[1] = ifx */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_get_bandwidths__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 3 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_get_bandwidths__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiGetBandwidths", - "RpcRespWifiGetBandwidths", - "RpcRespWifiGetBandwidths", - "", - sizeof(RpcRespWifiGetBandwidths), - 3, - rpc__resp__wifi_get_bandwidths__field_descriptors, - rpc__resp__wifi_get_bandwidths__field_indices_by_name, - 1, rpc__resp__wifi_get_bandwidths__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_get_bandwidths__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_set_band__field_descriptors[1] = -{ - { - "band", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetBand, band), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_set_band__field_indices_by_name[] = { - 0, /* field[0] = band */ -}; -static const ProtobufCIntRange rpc__req__wifi_set_band__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_set_band__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiSetBand", - "RpcReqWifiSetBand", - "RpcReqWifiSetBand", - "", - sizeof(RpcReqWifiSetBand), - 1, - rpc__req__wifi_set_band__field_descriptors, - rpc__req__wifi_set_band__field_indices_by_name, - 1, rpc__req__wifi_set_band__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_set_band__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_set_band__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiSetBand, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_set_band__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_set_band__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_set_band__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiSetBand", - "RpcRespWifiSetBand", - "RpcRespWifiSetBand", - "", - sizeof(RpcRespWifiSetBand), - 1, - rpc__resp__wifi_set_band__field_descriptors, - rpc__resp__wifi_set_band__field_indices_by_name, - 1, rpc__resp__wifi_set_band__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_set_band__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_get_band__field_descriptors NULL -#define rpc__req__wifi_get_band__field_indices_by_name NULL -#define rpc__req__wifi_get_band__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_get_band__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiGetBand", - "RpcReqWifiGetBand", - "RpcReqWifiGetBand", - "", - sizeof(RpcReqWifiGetBand), - 0, - rpc__req__wifi_get_band__field_descriptors, - rpc__req__wifi_get_band__field_indices_by_name, - 0, rpc__req__wifi_get_band__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_get_band__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_get_band__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetBand, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "band", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetBand, band), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_get_band__field_indices_by_name[] = { - 1, /* field[1] = band */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_get_band__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_get_band__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiGetBand", - "RpcRespWifiGetBand", - "RpcRespWifiGetBand", - "", - sizeof(RpcRespWifiGetBand), - 2, - rpc__resp__wifi_get_band__field_descriptors, - rpc__resp__wifi_get_band__field_indices_by_name, - 1, rpc__resp__wifi_get_band__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_get_band__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_set_band_mode__field_descriptors[1] = -{ - { - "bandmode", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetBandMode, bandmode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_set_band_mode__field_indices_by_name[] = { - 0, /* field[0] = bandmode */ -}; -static const ProtobufCIntRange rpc__req__wifi_set_band_mode__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_set_band_mode__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiSetBandMode", - "RpcReqWifiSetBandMode", - "RpcReqWifiSetBandMode", - "", - sizeof(RpcReqWifiSetBandMode), - 1, - rpc__req__wifi_set_band_mode__field_descriptors, - rpc__req__wifi_set_band_mode__field_indices_by_name, - 1, rpc__req__wifi_set_band_mode__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_set_band_mode__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_set_band_mode__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiSetBandMode, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_set_band_mode__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_set_band_mode__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_set_band_mode__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiSetBandMode", - "RpcRespWifiSetBandMode", - "RpcRespWifiSetBandMode", - "", - sizeof(RpcRespWifiSetBandMode), - 1, - rpc__resp__wifi_set_band_mode__field_descriptors, - rpc__resp__wifi_set_band_mode__field_indices_by_name, - 1, rpc__resp__wifi_set_band_mode__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_set_band_mode__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_get_band_mode__field_descriptors NULL -#define rpc__req__wifi_get_band_mode__field_indices_by_name NULL -#define rpc__req__wifi_get_band_mode__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_get_band_mode__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiGetBandMode", - "RpcReqWifiGetBandMode", - "RpcReqWifiGetBandMode", - "", - sizeof(RpcReqWifiGetBandMode), - 0, - rpc__req__wifi_get_band_mode__field_descriptors, - rpc__req__wifi_get_band_mode__field_indices_by_name, - 0, rpc__req__wifi_get_band_mode__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_get_band_mode__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_get_band_mode__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetBandMode, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "bandmode", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetBandMode, bandmode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_get_band_mode__field_indices_by_name[] = { - 1, /* field[1] = bandmode */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_get_band_mode__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_get_band_mode__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiGetBandMode", - "RpcRespWifiGetBandMode", - "RpcRespWifiGetBandMode", - "", - sizeof(RpcRespWifiGetBandMode), - 2, - rpc__resp__wifi_get_band_mode__field_descriptors, - rpc__resp__wifi_get_band_mode__field_indices_by_name, - 1, rpc__resp__wifi_get_band_mode__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_get_band_mode__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__get_coprocessor_fw_version__field_descriptors NULL -#define rpc__req__get_coprocessor_fw_version__field_indices_by_name NULL -#define rpc__req__get_coprocessor_fw_version__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__get_coprocessor_fw_version__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_GetCoprocessorFwVersion", - "RpcReqGetCoprocessorFwVersion", - "RpcReqGetCoprocessorFwVersion", - "", - sizeof(RpcReqGetCoprocessorFwVersion), - 0, - rpc__req__get_coprocessor_fw_version__field_descriptors, - rpc__req__get_coprocessor_fw_version__field_indices_by_name, - 0, rpc__req__get_coprocessor_fw_version__number_ranges, - (ProtobufCMessageInit) rpc__req__get_coprocessor_fw_version__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__get_coprocessor_fw_version__field_descriptors[4] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespGetCoprocessorFwVersion, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "major1", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(RpcRespGetCoprocessorFwVersion, major1), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "minor1", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(RpcRespGetCoprocessorFwVersion, minor1), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "patch1", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(RpcRespGetCoprocessorFwVersion, patch1), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__get_coprocessor_fw_version__field_indices_by_name[] = { - 1, /* field[1] = major1 */ - 2, /* field[2] = minor1 */ - 3, /* field[3] = patch1 */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__get_coprocessor_fw_version__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 4 } -}; -const ProtobufCMessageDescriptor rpc__resp__get_coprocessor_fw_version__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_GetCoprocessorFwVersion", - "RpcRespGetCoprocessorFwVersion", - "RpcRespGetCoprocessorFwVersion", - "", - sizeof(RpcRespGetCoprocessorFwVersion), - 4, - rpc__resp__get_coprocessor_fw_version__field_descriptors, - rpc__resp__get_coprocessor_fw_version__field_indices_by_name, - 1, rpc__resp__get_coprocessor_fw_version__number_ranges, - (ProtobufCMessageInit) rpc__resp__get_coprocessor_fw_version__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__event__wifi_event_no_args__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcEventWifiEventNoArgs, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "event_id", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcEventWifiEventNoArgs, event_id), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__event__wifi_event_no_args__field_indices_by_name[] = { - 1, /* field[1] = event_id */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__event__wifi_event_no_args__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__event__wifi_event_no_args__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Event_WifiEventNoArgs", - "RpcEventWifiEventNoArgs", - "RpcEventWifiEventNoArgs", - "", - sizeof(RpcEventWifiEventNoArgs), - 2, - rpc__event__wifi_event_no_args__field_descriptors, - rpc__event__wifi_event_no_args__field_indices_by_name, - 1, rpc__event__wifi_event_no_args__number_ranges, - (ProtobufCMessageInit) rpc__event__wifi_event_no_args__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__event__espinit__field_descriptors[1] = -{ - { - "init_data", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(RpcEventESPInit, init_data), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__event__espinit__field_indices_by_name[] = { - 0, /* field[0] = init_data */ -}; -static const ProtobufCIntRange rpc__event__espinit__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__event__espinit__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Event_ESPInit", - "RpcEventESPInit", - "RpcEventESPInit", - "", - sizeof(RpcEventESPInit), - 1, - rpc__event__espinit__field_descriptors, - rpc__event__espinit__field_indices_by_name, - 1, rpc__event__espinit__number_ranges, - (ProtobufCMessageInit) rpc__event__espinit__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__event__heartbeat__field_descriptors[1] = -{ - { - "hb_num", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcEventHeartbeat, hb_num), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__event__heartbeat__field_indices_by_name[] = { - 0, /* field[0] = hb_num */ -}; -static const ProtobufCIntRange rpc__event__heartbeat__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__event__heartbeat__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Event_Heartbeat", - "RpcEventHeartbeat", - "RpcEventHeartbeat", - "", - sizeof(RpcEventHeartbeat), - 1, - rpc__event__heartbeat__field_descriptors, - rpc__event__heartbeat__field_indices_by_name, - 1, rpc__event__heartbeat__number_ranges, - (ProtobufCMessageInit) rpc__event__heartbeat__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__event__ap__sta_disconnected__field_descriptors[5] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcEventAPStaDisconnected, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "mac", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(RpcEventAPStaDisconnected, mac), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "aid", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(RpcEventAPStaDisconnected, aid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "is_mesh_child", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(RpcEventAPStaDisconnected, is_mesh_child), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "reason", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(RpcEventAPStaDisconnected, reason), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__event__ap__sta_disconnected__field_indices_by_name[] = { - 2, /* field[2] = aid */ - 3, /* field[3] = is_mesh_child */ - 1, /* field[1] = mac */ - 4, /* field[4] = reason */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__event__ap__sta_disconnected__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 5 } -}; -const ProtobufCMessageDescriptor rpc__event__ap__sta_disconnected__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Event_AP_StaDisconnected", - "RpcEventAPStaDisconnected", - "RpcEventAPStaDisconnected", - "", - sizeof(RpcEventAPStaDisconnected), - 5, - rpc__event__ap__sta_disconnected__field_descriptors, - rpc__event__ap__sta_disconnected__field_indices_by_name, - 1, rpc__event__ap__sta_disconnected__number_ranges, - (ProtobufCMessageInit) rpc__event__ap__sta_disconnected__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__event__ap__sta_connected__field_descriptors[4] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcEventAPStaConnected, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "mac", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(RpcEventAPStaConnected, mac), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "aid", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(RpcEventAPStaConnected, aid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "is_mesh_child", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(RpcEventAPStaConnected, is_mesh_child), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__event__ap__sta_connected__field_indices_by_name[] = { - 2, /* field[2] = aid */ - 3, /* field[3] = is_mesh_child */ - 1, /* field[1] = mac */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__event__ap__sta_connected__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 4 } -}; -const ProtobufCMessageDescriptor rpc__event__ap__sta_connected__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Event_AP_StaConnected", - "RpcEventAPStaConnected", - "RpcEventAPStaConnected", - "", - sizeof(RpcEventAPStaConnected), - 4, - rpc__event__ap__sta_connected__field_descriptors, - rpc__event__ap__sta_connected__field_indices_by_name, - 1, rpc__event__ap__sta_connected__number_ranges, - (ProtobufCMessageInit) rpc__event__ap__sta_connected__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__event__sta_scan_done__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcEventStaScanDone, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "scan_done", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcEventStaScanDone, scan_done), - &wifi_event_sta_scan_done__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__event__sta_scan_done__field_indices_by_name[] = { - 0, /* field[0] = resp */ - 1, /* field[1] = scan_done */ -}; -static const ProtobufCIntRange rpc__event__sta_scan_done__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__event__sta_scan_done__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Event_StaScanDone", - "RpcEventStaScanDone", - "RpcEventStaScanDone", - "", - sizeof(RpcEventStaScanDone), - 2, - rpc__event__sta_scan_done__field_descriptors, - rpc__event__sta_scan_done__field_indices_by_name, - 1, rpc__event__sta_scan_done__number_ranges, - (ProtobufCMessageInit) rpc__event__sta_scan_done__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__event__sta_connected__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcEventStaConnected, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "sta_connected", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcEventStaConnected, sta_connected), - &wifi_event_sta_connected__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__event__sta_connected__field_indices_by_name[] = { - 0, /* field[0] = resp */ - 1, /* field[1] = sta_connected */ -}; -static const ProtobufCIntRange rpc__event__sta_connected__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__event__sta_connected__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Event_StaConnected", - "RpcEventStaConnected", - "RpcEventStaConnected", - "", - sizeof(RpcEventStaConnected), - 2, - rpc__event__sta_connected__field_descriptors, - rpc__event__sta_connected__field_indices_by_name, - 1, rpc__event__sta_connected__number_ranges, - (ProtobufCMessageInit) rpc__event__sta_connected__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__event__sta_disconnected__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcEventStaDisconnected, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "sta_disconnected", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcEventStaDisconnected, sta_disconnected), - &wifi_event_sta_disconnected__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__event__sta_disconnected__field_indices_by_name[] = { - 0, /* field[0] = resp */ - 1, /* field[1] = sta_disconnected */ -}; -static const ProtobufCIntRange rpc__event__sta_disconnected__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__event__sta_disconnected__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Event_StaDisconnected", - "RpcEventStaDisconnected", - "RpcEventStaDisconnected", - "", - sizeof(RpcEventStaDisconnected), - 2, - rpc__event__sta_disconnected__field_descriptors, - rpc__event__sta_disconnected__field_indices_by_name, - 1, rpc__event__sta_disconnected__number_ranges, - (ProtobufCMessageInit) rpc__event__sta_disconnected__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__field_descriptors[121] = -{ - { - "msg_type", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_ENUM, - 0, /* quantifier_offset */ - offsetof(Rpc, msg_type), - &rpc_type__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "msg_id", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_ENUM, - 0, /* quantifier_offset */ - offsetof(Rpc, msg_id), - &rpc_id__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "uid", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(Rpc, uid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_get_mac_address", - 257, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_get_mac_address), - &rpc__req__get_mac_address__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_set_mac_address", - 258, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_set_mac_address), - &rpc__req__set_mac_address__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_get_wifi_mode", - 259, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_get_wifi_mode), - &rpc__req__get_mode__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_set_wifi_mode", - 260, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_set_wifi_mode), - &rpc__req__set_mode__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_set_ps", - 270, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_set_ps), - &rpc__req__set_ps__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_get_ps", - 271, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_get_ps), - &rpc__req__get_ps__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_ota_begin", - 272, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_ota_begin), - &rpc__req__otabegin__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_ota_write", - 273, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_ota_write), - &rpc__req__otawrite__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_ota_end", - 274, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_ota_end), - &rpc__req__otaend__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_set_wifi_max_tx_power", - 275, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_set_wifi_max_tx_power), - &rpc__req__wifi_set_max_tx_power__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_get_wifi_max_tx_power", - 276, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_get_wifi_max_tx_power), - &rpc__req__wifi_get_max_tx_power__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_config_heartbeat", - 277, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_config_heartbeat), - &rpc__req__config_heartbeat__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_init", - 278, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_init), - &rpc__req__wifi_init__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_deinit", - 279, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_deinit), - &rpc__req__wifi_deinit__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_start", - 280, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_start), - &rpc__req__wifi_start__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_stop", - 281, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_stop), - &rpc__req__wifi_stop__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_connect", - 282, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_connect), - &rpc__req__wifi_connect__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_disconnect", - 283, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_disconnect), - &rpc__req__wifi_disconnect__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_set_config", - 284, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_set_config), - &rpc__req__wifi_set_config__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_get_config", - 285, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_get_config), - &rpc__req__wifi_get_config__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_scan_start", - 286, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_scan_start), - &rpc__req__wifi_scan_start__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_scan_stop", - 287, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_scan_stop), - &rpc__req__wifi_scan_stop__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_scan_get_ap_num", - 288, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_scan_get_ap_num), - &rpc__req__wifi_scan_get_ap_num__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_scan_get_ap_records", - 289, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_scan_get_ap_records), - &rpc__req__wifi_scan_get_ap_records__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_clear_ap_list", - 290, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_clear_ap_list), - &rpc__req__wifi_clear_ap_list__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_restore", - 291, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_restore), - &rpc__req__wifi_restore__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_clear_fast_connect", - 292, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_clear_fast_connect), - &rpc__req__wifi_clear_fast_connect__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_deauth_sta", - 293, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_deauth_sta), - &rpc__req__wifi_deauth_sta__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_sta_get_ap_info", - 294, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_sta_get_ap_info), - &rpc__req__wifi_sta_get_ap_info__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_set_protocol", - 297, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_set_protocol), - &rpc__req__wifi_set_protocol__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_get_protocol", - 298, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_get_protocol), - &rpc__req__wifi_get_protocol__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_set_bandwidth", - 299, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_set_bandwidth), - &rpc__req__wifi_set_bandwidth__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_get_bandwidth", - 300, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_get_bandwidth), - &rpc__req__wifi_get_bandwidth__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_set_channel", - 301, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_set_channel), - &rpc__req__wifi_set_channel__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_get_channel", - 302, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_get_channel), - &rpc__req__wifi_get_channel__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_set_country", - 303, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_set_country), - &rpc__req__wifi_set_country__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_get_country", - 304, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_get_country), - &rpc__req__wifi_get_country__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_ap_get_sta_list", - 311, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_ap_get_sta_list), - &rpc__req__wifi_ap_get_sta_list__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_ap_get_sta_aid", - 312, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_ap_get_sta_aid), - &rpc__req__wifi_ap_get_sta_aid__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_set_storage", - 313, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_set_storage), - &rpc__req__wifi_set_storage__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_set_country_code", - 334, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_set_country_code), - &rpc__req__wifi_set_country_code__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_get_country_code", - 335, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_get_country_code), - &rpc__req__wifi_get_country_code__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_sta_get_aid", - 338, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_sta_get_aid), - &rpc__req__wifi_sta_get_aid__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_sta_get_negotiated_phymode", - 339, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_sta_get_negotiated_phymode), - &rpc__req__wifi_sta_get_negotiated_phymode__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_sta_get_rssi", - 341, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_sta_get_rssi), - &rpc__req__wifi_sta_get_rssi__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_set_protocols", - 342, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_set_protocols), - &rpc__req__wifi_set_protocols__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_get_protocols", - 343, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_get_protocols), - &rpc__req__wifi_get_protocols__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_set_bandwidths", - 344, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_set_bandwidths), - &rpc__req__wifi_set_bandwidths__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_get_bandwidths", - 345, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_get_bandwidths), - &rpc__req__wifi_get_bandwidths__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_set_band", - 346, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_set_band), - &rpc__req__wifi_set_band__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_get_band", - 347, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_get_band), - &rpc__req__wifi_get_band__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_set_bandmode", - 348, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_set_bandmode), - &rpc__req__wifi_set_band_mode__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_get_bandmode", - 349, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_get_bandmode), - &rpc__req__wifi_get_band_mode__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_get_coprocessor_fwversion", - 350, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_get_coprocessor_fwversion), - &rpc__req__get_coprocessor_fw_version__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_scan_get_ap_record", - 351, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_scan_get_ap_record), - &rpc__req__wifi_scan_get_ap_record__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_get_mac_address", - 513, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_get_mac_address), - &rpc__resp__get_mac_address__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_set_mac_address", - 514, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_set_mac_address), - &rpc__resp__set_mac_address__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_get_wifi_mode", - 515, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_get_wifi_mode), - &rpc__resp__get_mode__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_set_wifi_mode", - 516, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_set_wifi_mode), - &rpc__resp__set_mode__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_set_ps", - 526, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_set_ps), - &rpc__resp__set_ps__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_get_ps", - 527, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_get_ps), - &rpc__resp__get_ps__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_ota_begin", - 528, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_ota_begin), - &rpc__resp__otabegin__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_ota_write", - 529, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_ota_write), - &rpc__resp__otawrite__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_ota_end", - 530, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_ota_end), - &rpc__resp__otaend__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_set_wifi_max_tx_power", - 531, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_set_wifi_max_tx_power), - &rpc__resp__wifi_set_max_tx_power__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_get_wifi_max_tx_power", - 532, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_get_wifi_max_tx_power), - &rpc__resp__wifi_get_max_tx_power__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_config_heartbeat", - 533, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_config_heartbeat), - &rpc__resp__config_heartbeat__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_init", - 534, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_init), - &rpc__resp__wifi_init__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_deinit", - 535, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_deinit), - &rpc__resp__wifi_deinit__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_start", - 536, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_start), - &rpc__resp__wifi_start__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_stop", - 537, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_stop), - &rpc__resp__wifi_stop__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_connect", - 538, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_connect), - &rpc__resp__wifi_connect__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_disconnect", - 539, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_disconnect), - &rpc__resp__wifi_disconnect__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_set_config", - 540, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_set_config), - &rpc__resp__wifi_set_config__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_get_config", - 541, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_get_config), - &rpc__resp__wifi_get_config__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_scan_start", - 542, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_scan_start), - &rpc__resp__wifi_scan_start__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_scan_stop", - 543, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_scan_stop), - &rpc__resp__wifi_scan_stop__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_scan_get_ap_num", - 544, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_scan_get_ap_num), - &rpc__resp__wifi_scan_get_ap_num__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_scan_get_ap_records", - 545, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_scan_get_ap_records), - &rpc__resp__wifi_scan_get_ap_records__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_clear_ap_list", - 546, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_clear_ap_list), - &rpc__resp__wifi_clear_ap_list__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_restore", - 547, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_restore), - &rpc__resp__wifi_restore__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_clear_fast_connect", - 548, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_clear_fast_connect), - &rpc__resp__wifi_clear_fast_connect__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_deauth_sta", - 549, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_deauth_sta), - &rpc__resp__wifi_deauth_sta__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_sta_get_ap_info", - 550, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_sta_get_ap_info), - &rpc__resp__wifi_sta_get_ap_info__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_set_protocol", - 553, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_set_protocol), - &rpc__resp__wifi_set_protocol__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_get_protocol", - 554, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_get_protocol), - &rpc__resp__wifi_get_protocol__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_set_bandwidth", - 555, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_set_bandwidth), - &rpc__resp__wifi_set_bandwidth__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_get_bandwidth", - 556, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_get_bandwidth), - &rpc__resp__wifi_get_bandwidth__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_set_channel", - 557, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_set_channel), - &rpc__resp__wifi_set_channel__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_get_channel", - 558, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_get_channel), - &rpc__resp__wifi_get_channel__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_set_country", - 559, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_set_country), - &rpc__resp__wifi_set_country__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_get_country", - 560, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_get_country), - &rpc__resp__wifi_get_country__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_ap_get_sta_list", - 567, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_ap_get_sta_list), - &rpc__resp__wifi_ap_get_sta_list__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_ap_get_sta_aid", - 568, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_ap_get_sta_aid), - &rpc__resp__wifi_ap_get_sta_aid__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_set_storage", - 569, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_set_storage), - &rpc__resp__wifi_set_storage__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_set_country_code", - 590, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_set_country_code), - &rpc__resp__wifi_set_country_code__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_get_country_code", - 591, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_get_country_code), - &rpc__resp__wifi_get_country_code__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_sta_get_aid", - 594, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_sta_get_aid), - &rpc__resp__wifi_sta_get_aid__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_sta_get_negotiated_phymode", - 595, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_sta_get_negotiated_phymode), - &rpc__resp__wifi_sta_get_negotiated_phymode__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_sta_get_rssi", - 597, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_sta_get_rssi), - &rpc__resp__wifi_sta_get_rssi__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_set_protocols", - 598, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_set_protocols), - &rpc__resp__wifi_set_protocols__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_get_protocols", - 599, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_get_protocols), - &rpc__resp__wifi_get_protocols__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_set_bandwidths", - 600, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_set_bandwidths), - &rpc__resp__wifi_set_bandwidths__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_get_bandwidths", - 601, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_get_bandwidths), - &rpc__resp__wifi_get_bandwidths__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_set_band", - 602, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_set_band), - &rpc__resp__wifi_set_band__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_get_band", - 603, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_get_band), - &rpc__resp__wifi_get_band__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_set_bandmode", - 604, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_set_bandmode), - &rpc__resp__wifi_set_band_mode__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_get_bandmode", - 605, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_get_bandmode), - &rpc__resp__wifi_get_band_mode__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_get_coprocessor_fwversion", - 606, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_get_coprocessor_fwversion), - &rpc__resp__get_coprocessor_fw_version__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_scan_get_ap_record", - 607, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_scan_get_ap_record), - &rpc__resp__wifi_scan_get_ap_record__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "event_esp_init", - 769, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, event_esp_init), - &rpc__event__espinit__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "event_heartbeat", - 770, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, event_heartbeat), - &rpc__event__heartbeat__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "event_ap_sta_connected", - 771, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, event_ap_sta_connected), - &rpc__event__ap__sta_connected__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "event_ap_sta_disconnected", - 772, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, event_ap_sta_disconnected), - &rpc__event__ap__sta_disconnected__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "event_wifi_event_no_args", - 773, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, event_wifi_event_no_args), - &rpc__event__wifi_event_no_args__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "event_sta_scan_done", - 774, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, event_sta_scan_done), - &rpc__event__sta_scan_done__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "event_sta_connected", - 775, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, event_sta_connected), - &rpc__event__sta_connected__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "event_sta_disconnected", - 776, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, event_sta_disconnected), - &rpc__event__sta_disconnected__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__field_indices_by_name[] = { - 115, /* field[115] = event_ap_sta_connected */ - 116, /* field[116] = event_ap_sta_disconnected */ - 113, /* field[113] = event_esp_init */ - 114, /* field[114] = event_heartbeat */ - 119, /* field[119] = event_sta_connected */ - 120, /* field[120] = event_sta_disconnected */ - 118, /* field[118] = event_sta_scan_done */ - 117, /* field[117] = event_wifi_event_no_args */ - 1, /* field[1] = msg_id */ - 0, /* field[0] = msg_type */ - 14, /* field[14] = req_config_heartbeat */ - 56, /* field[56] = req_get_coprocessor_fwversion */ - 3, /* field[3] = req_get_mac_address */ - 13, /* field[13] = req_get_wifi_max_tx_power */ - 5, /* field[5] = req_get_wifi_mode */ - 9, /* field[9] = req_ota_begin */ - 11, /* field[11] = req_ota_end */ - 10, /* field[10] = req_ota_write */ - 4, /* field[4] = req_set_mac_address */ - 12, /* field[12] = req_set_wifi_max_tx_power */ - 6, /* field[6] = req_set_wifi_mode */ - 41, /* field[41] = req_wifi_ap_get_sta_aid */ - 40, /* field[40] = req_wifi_ap_get_sta_list */ - 27, /* field[27] = req_wifi_clear_ap_list */ - 29, /* field[29] = req_wifi_clear_fast_connect */ - 19, /* field[19] = req_wifi_connect */ - 30, /* field[30] = req_wifi_deauth_sta */ - 16, /* field[16] = req_wifi_deinit */ - 20, /* field[20] = req_wifi_disconnect */ - 53, /* field[53] = req_wifi_get_band */ - 55, /* field[55] = req_wifi_get_bandmode */ - 35, /* field[35] = req_wifi_get_bandwidth */ - 51, /* field[51] = req_wifi_get_bandwidths */ - 37, /* field[37] = req_wifi_get_channel */ - 22, /* field[22] = req_wifi_get_config */ - 39, /* field[39] = req_wifi_get_country */ - 44, /* field[44] = req_wifi_get_country_code */ - 33, /* field[33] = req_wifi_get_protocol */ - 49, /* field[49] = req_wifi_get_protocols */ - 8, /* field[8] = req_wifi_get_ps */ - 15, /* field[15] = req_wifi_init */ - 28, /* field[28] = req_wifi_restore */ - 25, /* field[25] = req_wifi_scan_get_ap_num */ - 57, /* field[57] = req_wifi_scan_get_ap_record */ - 26, /* field[26] = req_wifi_scan_get_ap_records */ - 23, /* field[23] = req_wifi_scan_start */ - 24, /* field[24] = req_wifi_scan_stop */ - 52, /* field[52] = req_wifi_set_band */ - 54, /* field[54] = req_wifi_set_bandmode */ - 34, /* field[34] = req_wifi_set_bandwidth */ - 50, /* field[50] = req_wifi_set_bandwidths */ - 36, /* field[36] = req_wifi_set_channel */ - 21, /* field[21] = req_wifi_set_config */ - 38, /* field[38] = req_wifi_set_country */ - 43, /* field[43] = req_wifi_set_country_code */ - 32, /* field[32] = req_wifi_set_protocol */ - 48, /* field[48] = req_wifi_set_protocols */ - 7, /* field[7] = req_wifi_set_ps */ - 42, /* field[42] = req_wifi_set_storage */ - 45, /* field[45] = req_wifi_sta_get_aid */ - 31, /* field[31] = req_wifi_sta_get_ap_info */ - 46, /* field[46] = req_wifi_sta_get_negotiated_phymode */ - 47, /* field[47] = req_wifi_sta_get_rssi */ - 17, /* field[17] = req_wifi_start */ - 18, /* field[18] = req_wifi_stop */ - 69, /* field[69] = resp_config_heartbeat */ - 111, /* field[111] = resp_get_coprocessor_fwversion */ - 58, /* field[58] = resp_get_mac_address */ - 68, /* field[68] = resp_get_wifi_max_tx_power */ - 60, /* field[60] = resp_get_wifi_mode */ - 64, /* field[64] = resp_ota_begin */ - 66, /* field[66] = resp_ota_end */ - 65, /* field[65] = resp_ota_write */ - 59, /* field[59] = resp_set_mac_address */ - 67, /* field[67] = resp_set_wifi_max_tx_power */ - 61, /* field[61] = resp_set_wifi_mode */ - 96, /* field[96] = resp_wifi_ap_get_sta_aid */ - 95, /* field[95] = resp_wifi_ap_get_sta_list */ - 82, /* field[82] = resp_wifi_clear_ap_list */ - 84, /* field[84] = resp_wifi_clear_fast_connect */ - 74, /* field[74] = resp_wifi_connect */ - 85, /* field[85] = resp_wifi_deauth_sta */ - 71, /* field[71] = resp_wifi_deinit */ - 75, /* field[75] = resp_wifi_disconnect */ - 108, /* field[108] = resp_wifi_get_band */ - 110, /* field[110] = resp_wifi_get_bandmode */ - 90, /* field[90] = resp_wifi_get_bandwidth */ - 106, /* field[106] = resp_wifi_get_bandwidths */ - 92, /* field[92] = resp_wifi_get_channel */ - 77, /* field[77] = resp_wifi_get_config */ - 94, /* field[94] = resp_wifi_get_country */ - 99, /* field[99] = resp_wifi_get_country_code */ - 88, /* field[88] = resp_wifi_get_protocol */ - 104, /* field[104] = resp_wifi_get_protocols */ - 63, /* field[63] = resp_wifi_get_ps */ - 70, /* field[70] = resp_wifi_init */ - 83, /* field[83] = resp_wifi_restore */ - 80, /* field[80] = resp_wifi_scan_get_ap_num */ - 112, /* field[112] = resp_wifi_scan_get_ap_record */ - 81, /* field[81] = resp_wifi_scan_get_ap_records */ - 78, /* field[78] = resp_wifi_scan_start */ - 79, /* field[79] = resp_wifi_scan_stop */ - 107, /* field[107] = resp_wifi_set_band */ - 109, /* field[109] = resp_wifi_set_bandmode */ - 89, /* field[89] = resp_wifi_set_bandwidth */ - 105, /* field[105] = resp_wifi_set_bandwidths */ - 91, /* field[91] = resp_wifi_set_channel */ - 76, /* field[76] = resp_wifi_set_config */ - 93, /* field[93] = resp_wifi_set_country */ - 98, /* field[98] = resp_wifi_set_country_code */ - 87, /* field[87] = resp_wifi_set_protocol */ - 103, /* field[103] = resp_wifi_set_protocols */ - 62, /* field[62] = resp_wifi_set_ps */ - 97, /* field[97] = resp_wifi_set_storage */ - 100, /* field[100] = resp_wifi_sta_get_aid */ - 86, /* field[86] = resp_wifi_sta_get_ap_info */ - 101, /* field[101] = resp_wifi_sta_get_negotiated_phymode */ - 102, /* field[102] = resp_wifi_sta_get_rssi */ - 72, /* field[72] = resp_wifi_start */ - 73, /* field[73] = resp_wifi_stop */ - 2, /* field[2] = uid */ -}; -static const ProtobufCIntRange rpc__number_ranges[16 + 1] = -{ - { 1, 0 }, - { 257, 3 }, - { 270, 7 }, - { 297, 32 }, - { 311, 40 }, - { 334, 43 }, - { 338, 45 }, - { 341, 47 }, - { 513, 58 }, - { 526, 62 }, - { 553, 87 }, - { 567, 95 }, - { 590, 98 }, - { 594, 100 }, - { 597, 102 }, - { 769, 113 }, - { 0, 121 } -}; -const ProtobufCMessageDescriptor rpc__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc", - "Rpc", - "Rpc", - "", - sizeof(Rpc), - 121, - rpc__field_descriptors, - rpc__field_indices_by_name, - 16, rpc__number_ranges, - (ProtobufCMessageInit) rpc__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCEnumValue rpc__wifi_bw__enum_values_by_number[3] = -{ - { "BW_Invalid", "RPC__WIFI_BW__BW_Invalid", 0 }, - { "HT20", "RPC__WIFI_BW__HT20", 1 }, - { "HT40", "RPC__WIFI_BW__HT40", 2 }, -}; -static const ProtobufCIntRange rpc__wifi_bw__value_ranges[] = { -{0, 0},{0, 3} -}; -static const ProtobufCEnumValueIndex rpc__wifi_bw__enum_values_by_name[3] = -{ - { "BW_Invalid", 0 }, - { "HT20", 1 }, - { "HT40", 2 }, -}; -const ProtobufCEnumDescriptor rpc__wifi_bw__descriptor = -{ - PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, - "Rpc_WifiBw", - "Rpc_WifiBw", - "RpcWifiBw", - "", - 3, - rpc__wifi_bw__enum_values_by_number, - 3, - rpc__wifi_bw__enum_values_by_name, - 1, - rpc__wifi_bw__value_ranges, - NULL,NULL,NULL,NULL /* reserved[1234] */ -}; -static const ProtobufCEnumValue rpc__wifi_power_save__enum_values_by_number[3] = -{ - { "PS_Invalid", "RPC__WIFI_POWER_SAVE__PS_Invalid", 0 }, - { "MIN_MODEM", "RPC__WIFI_POWER_SAVE__MIN_MODEM", 1 }, - { "MAX_MODEM", "RPC__WIFI_POWER_SAVE__MAX_MODEM", 2 }, -}; -static const ProtobufCIntRange rpc__wifi_power_save__value_ranges[] = { -{0, 0},{0, 3} -}; -static const ProtobufCEnumValueIndex rpc__wifi_power_save__enum_values_by_name[3] = -{ - { "MAX_MODEM", 2 }, - { "MIN_MODEM", 1 }, - { "PS_Invalid", 0 }, -}; -const ProtobufCEnumDescriptor rpc__wifi_power_save__descriptor = -{ - PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, - "Rpc_WifiPowerSave", - "Rpc_WifiPowerSave", - "RpcWifiPowerSave", - "", - 3, - rpc__wifi_power_save__enum_values_by_number, - 3, - rpc__wifi_power_save__enum_values_by_name, - 1, - rpc__wifi_power_save__value_ranges, - NULL,NULL,NULL,NULL /* reserved[1234] */ -}; -static const ProtobufCEnumValue rpc__wifi_sec_prot__enum_values_by_number[8] = -{ - { "Open", "RPC__WIFI_SEC_PROT__Open", 0 }, - { "WEP", "RPC__WIFI_SEC_PROT__WEP", 1 }, - { "WPA_PSK", "RPC__WIFI_SEC_PROT__WPA_PSK", 2 }, - { "WPA2_PSK", "RPC__WIFI_SEC_PROT__WPA2_PSK", 3 }, - { "WPA_WPA2_PSK", "RPC__WIFI_SEC_PROT__WPA_WPA2_PSK", 4 }, - { "WPA2_ENTERPRISE", "RPC__WIFI_SEC_PROT__WPA2_ENTERPRISE", 5 }, - { "WPA3_PSK", "RPC__WIFI_SEC_PROT__WPA3_PSK", 6 }, - { "WPA2_WPA3_PSK", "RPC__WIFI_SEC_PROT__WPA2_WPA3_PSK", 7 }, -}; -static const ProtobufCIntRange rpc__wifi_sec_prot__value_ranges[] = { -{0, 0},{0, 8} -}; -static const ProtobufCEnumValueIndex rpc__wifi_sec_prot__enum_values_by_name[8] = -{ - { "Open", 0 }, - { "WEP", 1 }, - { "WPA2_ENTERPRISE", 5 }, - { "WPA2_PSK", 3 }, - { "WPA2_WPA3_PSK", 7 }, - { "WPA3_PSK", 6 }, - { "WPA_PSK", 2 }, - { "WPA_WPA2_PSK", 4 }, -}; -const ProtobufCEnumDescriptor rpc__wifi_sec_prot__descriptor = -{ - PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, - "Rpc_WifiSecProt", - "Rpc_WifiSecProt", - "RpcWifiSecProt", - "", - 8, - rpc__wifi_sec_prot__enum_values_by_number, - 8, - rpc__wifi_sec_prot__enum_values_by_name, - 1, - rpc__wifi_sec_prot__value_ranges, - NULL,NULL,NULL,NULL /* reserved[1234] */ -}; -static const ProtobufCEnumValue rpc__status__enum_values_by_number[6] = -{ - { "Connected", "RPC__STATUS__Connected", 0 }, - { "Not_Connected", "RPC__STATUS__Not_Connected", 1 }, - { "No_AP_Found", "RPC__STATUS__No_AP_Found", 2 }, - { "Connection_Fail", "RPC__STATUS__Connection_Fail", 3 }, - { "Invalid_Argument", "RPC__STATUS__Invalid_Argument", 4 }, - { "Out_Of_Range", "RPC__STATUS__Out_Of_Range", 5 }, -}; -static const ProtobufCIntRange rpc__status__value_ranges[] = { -{0, 0},{0, 6} -}; -static const ProtobufCEnumValueIndex rpc__status__enum_values_by_name[6] = -{ - { "Connected", 0 }, - { "Connection_Fail", 3 }, - { "Invalid_Argument", 4 }, - { "No_AP_Found", 2 }, - { "Not_Connected", 1 }, - { "Out_Of_Range", 5 }, -}; -const ProtobufCEnumDescriptor rpc__status__descriptor = -{ - PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, - "Rpc_Status", - "Rpc_Status", - "RpcStatus", - "", - 6, - rpc__status__enum_values_by_number, - 6, - rpc__status__enum_values_by_name, - 1, - rpc__status__value_ranges, - NULL,NULL,NULL,NULL /* reserved[1234] */ -}; -static const ProtobufCEnumValue rpc_type__enum_values_by_number[5] = -{ - { "MsgType_Invalid", "RPC_TYPE__MsgType_Invalid", 0 }, - { "Req", "RPC_TYPE__Req", 1 }, - { "Resp", "RPC_TYPE__Resp", 2 }, - { "Event", "RPC_TYPE__Event", 3 }, - { "MsgType_Max", "RPC_TYPE__MsgType_Max", 4 }, -}; -static const ProtobufCIntRange rpc_type__value_ranges[] = { -{0, 0},{0, 5} -}; -static const ProtobufCEnumValueIndex rpc_type__enum_values_by_name[5] = -{ - { "Event", 3 }, - { "MsgType_Invalid", 0 }, - { "MsgType_Max", 4 }, - { "Req", 1 }, - { "Resp", 2 }, -}; -const ProtobufCEnumDescriptor rpc_type__descriptor = -{ - PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, - "RpcType", - "RpcType", - "RpcType", - "", - 5, - rpc_type__enum_values_by_number, - 5, - rpc_type__enum_values_by_name, - 1, - rpc_type__value_ranges, - NULL,NULL,NULL,NULL /* reserved[1234] */ -}; -static const ProtobufCEnumValue rpc_id__enum_values_by_number[183] = -{ - { "MsgId_Invalid", "RPC_ID__MsgId_Invalid", 0 }, - { "Req_Base", "RPC_ID__Req_Base", 256 }, - { "Req_GetMACAddress", "RPC_ID__Req_GetMACAddress", 257 }, - { "Req_SetMacAddress", "RPC_ID__Req_SetMacAddress", 258 }, - { "Req_GetWifiMode", "RPC_ID__Req_GetWifiMode", 259 }, - { "Req_SetWifiMode", "RPC_ID__Req_SetWifiMode", 260 }, - { "Req_WifiSetPs", "RPC_ID__Req_WifiSetPs", 270 }, - { "Req_WifiGetPs", "RPC_ID__Req_WifiGetPs", 271 }, - { "Req_OTABegin", "RPC_ID__Req_OTABegin", 272 }, - { "Req_OTAWrite", "RPC_ID__Req_OTAWrite", 273 }, - { "Req_OTAEnd", "RPC_ID__Req_OTAEnd", 274 }, - { "Req_WifiSetMaxTxPower", "RPC_ID__Req_WifiSetMaxTxPower", 275 }, - { "Req_WifiGetMaxTxPower", "RPC_ID__Req_WifiGetMaxTxPower", 276 }, - { "Req_ConfigHeartbeat", "RPC_ID__Req_ConfigHeartbeat", 277 }, - { "Req_WifiInit", "RPC_ID__Req_WifiInit", 278 }, - { "Req_WifiDeinit", "RPC_ID__Req_WifiDeinit", 279 }, - { "Req_WifiStart", "RPC_ID__Req_WifiStart", 280 }, - { "Req_WifiStop", "RPC_ID__Req_WifiStop", 281 }, - { "Req_WifiConnect", "RPC_ID__Req_WifiConnect", 282 }, - { "Req_WifiDisconnect", "RPC_ID__Req_WifiDisconnect", 283 }, - { "Req_WifiSetConfig", "RPC_ID__Req_WifiSetConfig", 284 }, - { "Req_WifiGetConfig", "RPC_ID__Req_WifiGetConfig", 285 }, - { "Req_WifiScanStart", "RPC_ID__Req_WifiScanStart", 286 }, - { "Req_WifiScanStop", "RPC_ID__Req_WifiScanStop", 287 }, - { "Req_WifiScanGetApNum", "RPC_ID__Req_WifiScanGetApNum", 288 }, - { "Req_WifiScanGetApRecords", "RPC_ID__Req_WifiScanGetApRecords", 289 }, - { "Req_WifiClearApList", "RPC_ID__Req_WifiClearApList", 290 }, - { "Req_WifiRestore", "RPC_ID__Req_WifiRestore", 291 }, - { "Req_WifiClearFastConnect", "RPC_ID__Req_WifiClearFastConnect", 292 }, - { "Req_WifiDeauthSta", "RPC_ID__Req_WifiDeauthSta", 293 }, - { "Req_WifiStaGetApInfo", "RPC_ID__Req_WifiStaGetApInfo", 294 }, - { "Req_WifiSetProtocol", "RPC_ID__Req_WifiSetProtocol", 297 }, - { "Req_WifiGetProtocol", "RPC_ID__Req_WifiGetProtocol", 298 }, - { "Req_WifiSetBandwidth", "RPC_ID__Req_WifiSetBandwidth", 299 }, - { "Req_WifiGetBandwidth", "RPC_ID__Req_WifiGetBandwidth", 300 }, - { "Req_WifiSetChannel", "RPC_ID__Req_WifiSetChannel", 301 }, - { "Req_WifiGetChannel", "RPC_ID__Req_WifiGetChannel", 302 }, - { "Req_WifiSetCountry", "RPC_ID__Req_WifiSetCountry", 303 }, - { "Req_WifiGetCountry", "RPC_ID__Req_WifiGetCountry", 304 }, - { "Req_WifiSetPromiscuous", "RPC_ID__Req_WifiSetPromiscuous", 305 }, - { "Req_WifiGetPromiscuous", "RPC_ID__Req_WifiGetPromiscuous", 306 }, - { "Req_WifiSetPromiscuousFilter", "RPC_ID__Req_WifiSetPromiscuousFilter", 307 }, - { "Req_WifiGetPromiscuousFilter", "RPC_ID__Req_WifiGetPromiscuousFilter", 308 }, - { "Req_WifiSetPromiscuousCtrlFilter", "RPC_ID__Req_WifiSetPromiscuousCtrlFilter", 309 }, - { "Req_WifiGetPromiscuousCtrlFilter", "RPC_ID__Req_WifiGetPromiscuousCtrlFilter", 310 }, - { "Req_WifiApGetStaList", "RPC_ID__Req_WifiApGetStaList", 311 }, - { "Req_WifiApGetStaAid", "RPC_ID__Req_WifiApGetStaAid", 312 }, - { "Req_WifiSetStorage", "RPC_ID__Req_WifiSetStorage", 313 }, - { "Req_WifiSetVendorIe", "RPC_ID__Req_WifiSetVendorIe", 314 }, - { "Req_WifiSetEventMask", "RPC_ID__Req_WifiSetEventMask", 315 }, - { "Req_WifiGetEventMask", "RPC_ID__Req_WifiGetEventMask", 316 }, - { "Req_Wifi80211Tx", "RPC_ID__Req_Wifi80211Tx", 317 }, - { "Req_WifiSetCsiConfig", "RPC_ID__Req_WifiSetCsiConfig", 318 }, - { "Req_WifiSetCsi", "RPC_ID__Req_WifiSetCsi", 319 }, - { "Req_WifiSetAntGpio", "RPC_ID__Req_WifiSetAntGpio", 320 }, - { "Req_WifiGetAntGpio", "RPC_ID__Req_WifiGetAntGpio", 321 }, - { "Req_WifiSetAnt", "RPC_ID__Req_WifiSetAnt", 322 }, - { "Req_WifiGetAnt", "RPC_ID__Req_WifiGetAnt", 323 }, - { "Req_WifiGetTsfTime", "RPC_ID__Req_WifiGetTsfTime", 324 }, - { "Req_WifiSetInactiveTime", "RPC_ID__Req_WifiSetInactiveTime", 325 }, - { "Req_WifiGetInactiveTime", "RPC_ID__Req_WifiGetInactiveTime", 326 }, - { "Req_WifiStatisDump", "RPC_ID__Req_WifiStatisDump", 327 }, - { "Req_WifiSetRssiThreshold", "RPC_ID__Req_WifiSetRssiThreshold", 328 }, - { "Req_WifiFtmInitiateSession", "RPC_ID__Req_WifiFtmInitiateSession", 329 }, - { "Req_WifiFtmEndSession", "RPC_ID__Req_WifiFtmEndSession", 330 }, - { "Req_WifiFtmRespSetOffset", "RPC_ID__Req_WifiFtmRespSetOffset", 331 }, - { "Req_WifiConfig11bRate", "RPC_ID__Req_WifiConfig11bRate", 332 }, - { "Req_WifiConnectionlessModuleSetWakeInterval", "RPC_ID__Req_WifiConnectionlessModuleSetWakeInterval", 333 }, - { "Req_WifiSetCountryCode", "RPC_ID__Req_WifiSetCountryCode", 334 }, - { "Req_WifiGetCountryCode", "RPC_ID__Req_WifiGetCountryCode", 335 }, - { "Req_WifiConfig80211TxRate", "RPC_ID__Req_WifiConfig80211TxRate", 336 }, - { "Req_WifiDisablePmfConfig", "RPC_ID__Req_WifiDisablePmfConfig", 337 }, - { "Req_WifiStaGetAid", "RPC_ID__Req_WifiStaGetAid", 338 }, - { "Req_WifiStaGetNegotiatedPhymode", "RPC_ID__Req_WifiStaGetNegotiatedPhymode", 339 }, - { "Req_WifiSetDynamicCs", "RPC_ID__Req_WifiSetDynamicCs", 340 }, - { "Req_WifiStaGetRssi", "RPC_ID__Req_WifiStaGetRssi", 341 }, - { "Req_WifiSetProtocols", "RPC_ID__Req_WifiSetProtocols", 342 }, - { "Req_WifiGetProtocols", "RPC_ID__Req_WifiGetProtocols", 343 }, - { "Req_WifiSetBandwidths", "RPC_ID__Req_WifiSetBandwidths", 344 }, - { "Req_WifiGetBandwidths", "RPC_ID__Req_WifiGetBandwidths", 345 }, - { "Req_WifiSetBand", "RPC_ID__Req_WifiSetBand", 346 }, - { "Req_WifiGetBand", "RPC_ID__Req_WifiGetBand", 347 }, - { "Req_WifiSetBandMode", "RPC_ID__Req_WifiSetBandMode", 348 }, - { "Req_WifiGetBandMode", "RPC_ID__Req_WifiGetBandMode", 349 }, - { "Req_GetCoprocessorFwVersion", "RPC_ID__Req_GetCoprocessorFwVersion", 350 }, - { "Req_WifiScanGetApRecord", "RPC_ID__Req_WifiScanGetApRecord", 351 }, - { "Req_Max", "RPC_ID__Req_Max", 352 }, - { "Resp_Base", "RPC_ID__Resp_Base", 512 }, - { "Resp_GetMACAddress", "RPC_ID__Resp_GetMACAddress", 513 }, - { "Resp_SetMacAddress", "RPC_ID__Resp_SetMacAddress", 514 }, - { "Resp_GetWifiMode", "RPC_ID__Resp_GetWifiMode", 515 }, - { "Resp_SetWifiMode", "RPC_ID__Resp_SetWifiMode", 516 }, - { "Resp_WifiSetPs", "RPC_ID__Resp_WifiSetPs", 526 }, - { "Resp_WifiGetPs", "RPC_ID__Resp_WifiGetPs", 527 }, - { "Resp_OTABegin", "RPC_ID__Resp_OTABegin", 528 }, - { "Resp_OTAWrite", "RPC_ID__Resp_OTAWrite", 529 }, - { "Resp_OTAEnd", "RPC_ID__Resp_OTAEnd", 530 }, - { "Resp_WifiSetMaxTxPower", "RPC_ID__Resp_WifiSetMaxTxPower", 531 }, - { "Resp_WifiGetMaxTxPower", "RPC_ID__Resp_WifiGetMaxTxPower", 532 }, - { "Resp_ConfigHeartbeat", "RPC_ID__Resp_ConfigHeartbeat", 533 }, - { "Resp_WifiInit", "RPC_ID__Resp_WifiInit", 534 }, - { "Resp_WifiDeinit", "RPC_ID__Resp_WifiDeinit", 535 }, - { "Resp_WifiStart", "RPC_ID__Resp_WifiStart", 536 }, - { "Resp_WifiStop", "RPC_ID__Resp_WifiStop", 537 }, - { "Resp_WifiConnect", "RPC_ID__Resp_WifiConnect", 538 }, - { "Resp_WifiDisconnect", "RPC_ID__Resp_WifiDisconnect", 539 }, - { "Resp_WifiSetConfig", "RPC_ID__Resp_WifiSetConfig", 540 }, - { "Resp_WifiGetConfig", "RPC_ID__Resp_WifiGetConfig", 541 }, - { "Resp_WifiScanStart", "RPC_ID__Resp_WifiScanStart", 542 }, - { "Resp_WifiScanStop", "RPC_ID__Resp_WifiScanStop", 543 }, - { "Resp_WifiScanGetApNum", "RPC_ID__Resp_WifiScanGetApNum", 544 }, - { "Resp_WifiScanGetApRecords", "RPC_ID__Resp_WifiScanGetApRecords", 545 }, - { "Resp_WifiClearApList", "RPC_ID__Resp_WifiClearApList", 546 }, - { "Resp_WifiRestore", "RPC_ID__Resp_WifiRestore", 547 }, - { "Resp_WifiClearFastConnect", "RPC_ID__Resp_WifiClearFastConnect", 548 }, - { "Resp_WifiDeauthSta", "RPC_ID__Resp_WifiDeauthSta", 549 }, - { "Resp_WifiStaGetApInfo", "RPC_ID__Resp_WifiStaGetApInfo", 550 }, - { "Resp_WifiSetProtocol", "RPC_ID__Resp_WifiSetProtocol", 553 }, - { "Resp_WifiGetProtocol", "RPC_ID__Resp_WifiGetProtocol", 554 }, - { "Resp_WifiSetBandwidth", "RPC_ID__Resp_WifiSetBandwidth", 555 }, - { "Resp_WifiGetBandwidth", "RPC_ID__Resp_WifiGetBandwidth", 556 }, - { "Resp_WifiSetChannel", "RPC_ID__Resp_WifiSetChannel", 557 }, - { "Resp_WifiGetChannel", "RPC_ID__Resp_WifiGetChannel", 558 }, - { "Resp_WifiSetCountry", "RPC_ID__Resp_WifiSetCountry", 559 }, - { "Resp_WifiGetCountry", "RPC_ID__Resp_WifiGetCountry", 560 }, - { "Resp_WifiSetPromiscuous", "RPC_ID__Resp_WifiSetPromiscuous", 561 }, - { "Resp_WifiGetPromiscuous", "RPC_ID__Resp_WifiGetPromiscuous", 562 }, - { "Resp_WifiSetPromiscuousFilter", "RPC_ID__Resp_WifiSetPromiscuousFilter", 563 }, - { "Resp_WifiGetPromiscuousFilter", "RPC_ID__Resp_WifiGetPromiscuousFilter", 564 }, - { "Resp_WifiSetPromiscuousCtrlFilter", "RPC_ID__Resp_WifiSetPromiscuousCtrlFilter", 565 }, - { "Resp_WifiGetPromiscuousCtrlFilter", "RPC_ID__Resp_WifiGetPromiscuousCtrlFilter", 566 }, - { "Resp_WifiApGetStaList", "RPC_ID__Resp_WifiApGetStaList", 567 }, - { "Resp_WifiApGetStaAid", "RPC_ID__Resp_WifiApGetStaAid", 568 }, - { "Resp_WifiSetStorage", "RPC_ID__Resp_WifiSetStorage", 569 }, - { "Resp_WifiSetVendorIe", "RPC_ID__Resp_WifiSetVendorIe", 570 }, - { "Resp_WifiSetEventMask", "RPC_ID__Resp_WifiSetEventMask", 571 }, - { "Resp_WifiGetEventMask", "RPC_ID__Resp_WifiGetEventMask", 572 }, - { "Resp_Wifi80211Tx", "RPC_ID__Resp_Wifi80211Tx", 573 }, - { "Resp_WifiSetCsiConfig", "RPC_ID__Resp_WifiSetCsiConfig", 574 }, - { "Resp_WifiSetCsi", "RPC_ID__Resp_WifiSetCsi", 575 }, - { "Resp_WifiSetAntGpio", "RPC_ID__Resp_WifiSetAntGpio", 576 }, - { "Resp_WifiGetAntGpio", "RPC_ID__Resp_WifiGetAntGpio", 577 }, - { "Resp_WifiSetAnt", "RPC_ID__Resp_WifiSetAnt", 578 }, - { "Resp_WifiGetAnt", "RPC_ID__Resp_WifiGetAnt", 579 }, - { "Resp_WifiGetTsfTime", "RPC_ID__Resp_WifiGetTsfTime", 580 }, - { "Resp_WifiSetInactiveTime", "RPC_ID__Resp_WifiSetInactiveTime", 581 }, - { "Resp_WifiGetInactiveTime", "RPC_ID__Resp_WifiGetInactiveTime", 582 }, - { "Resp_WifiStatisDump", "RPC_ID__Resp_WifiStatisDump", 583 }, - { "Resp_WifiSetRssiThreshold", "RPC_ID__Resp_WifiSetRssiThreshold", 584 }, - { "Resp_WifiFtmInitiateSession", "RPC_ID__Resp_WifiFtmInitiateSession", 585 }, - { "Resp_WifiFtmEndSession", "RPC_ID__Resp_WifiFtmEndSession", 586 }, - { "Resp_WifiFtmRespSetOffset", "RPC_ID__Resp_WifiFtmRespSetOffset", 587 }, - { "Resp_WifiConfig11bRate", "RPC_ID__Resp_WifiConfig11bRate", 588 }, - { "Resp_WifiConnectionlessModuleSetWakeInterval", "RPC_ID__Resp_WifiConnectionlessModuleSetWakeInterval", 589 }, - { "Resp_WifiSetCountryCode", "RPC_ID__Resp_WifiSetCountryCode", 590 }, - { "Resp_WifiGetCountryCode", "RPC_ID__Resp_WifiGetCountryCode", 591 }, - { "Resp_WifiConfig80211TxRate", "RPC_ID__Resp_WifiConfig80211TxRate", 592 }, - { "Resp_WifiDisablePmfConfig", "RPC_ID__Resp_WifiDisablePmfConfig", 593 }, - { "Resp_WifiStaGetAid", "RPC_ID__Resp_WifiStaGetAid", 594 }, - { "Resp_WifiStaGetNegotiatedPhymode", "RPC_ID__Resp_WifiStaGetNegotiatedPhymode", 595 }, - { "Resp_WifiSetDynamicCs", "RPC_ID__Resp_WifiSetDynamicCs", 596 }, - { "Resp_WifiStaGetRssi", "RPC_ID__Resp_WifiStaGetRssi", 597 }, - { "Resp_WifiSetProtocols", "RPC_ID__Resp_WifiSetProtocols", 598 }, - { "Resp_WifiGetProtocols", "RPC_ID__Resp_WifiGetProtocols", 599 }, - { "Resp_WifiSetBandwidths", "RPC_ID__Resp_WifiSetBandwidths", 600 }, - { "Resp_WifiGetBandwidths", "RPC_ID__Resp_WifiGetBandwidths", 601 }, - { "Resp_WifiSetBand", "RPC_ID__Resp_WifiSetBand", 602 }, - { "Resp_WifiGetBand", "RPC_ID__Resp_WifiGetBand", 603 }, - { "Resp_WifiSetBandMode", "RPC_ID__Resp_WifiSetBandMode", 604 }, - { "Resp_WifiGetBandMode", "RPC_ID__Resp_WifiGetBandMode", 605 }, - { "Resp_GetCoprocessorFwVersion", "RPC_ID__Resp_GetCoprocessorFwVersion", 606 }, - { "Resp_WifiScanGetApRecord", "RPC_ID__Resp_WifiScanGetApRecord", 607 }, - { "Resp_Max", "RPC_ID__Resp_Max", 608 }, - { "Event_Base", "RPC_ID__Event_Base", 768 }, - { "Event_ESPInit", "RPC_ID__Event_ESPInit", 769 }, - { "Event_Heartbeat", "RPC_ID__Event_Heartbeat", 770 }, - { "Event_AP_StaConnected", "RPC_ID__Event_AP_StaConnected", 771 }, - { "Event_AP_StaDisconnected", "RPC_ID__Event_AP_StaDisconnected", 772 }, - { "Event_WifiEventNoArgs", "RPC_ID__Event_WifiEventNoArgs", 773 }, - { "Event_StaScanDone", "RPC_ID__Event_StaScanDone", 774 }, - { "Event_StaConnected", "RPC_ID__Event_StaConnected", 775 }, - { "Event_StaDisconnected", "RPC_ID__Event_StaDisconnected", 776 }, - { "Event_Max", "RPC_ID__Event_Max", 777 }, -}; -static const ProtobufCIntRange rpc_id__value_ranges[] = { -{0, 0},{256, 1},{270, 6},{297, 31},{512, 87},{526, 92},{553, 117},{768, 173},{0, 183} -}; -static const ProtobufCEnumValueIndex rpc_id__enum_values_by_name[183] = -{ - { "Event_AP_StaConnected", 176 }, - { "Event_AP_StaDisconnected", 177 }, - { "Event_Base", 173 }, - { "Event_ESPInit", 174 }, - { "Event_Heartbeat", 175 }, - { "Event_Max", 182 }, - { "Event_StaConnected", 180 }, - { "Event_StaDisconnected", 181 }, - { "Event_StaScanDone", 179 }, - { "Event_WifiEventNoArgs", 178 }, - { "MsgId_Invalid", 0 }, - { "Req_Base", 1 }, - { "Req_ConfigHeartbeat", 13 }, - { "Req_GetCoprocessorFwVersion", 84 }, - { "Req_GetMACAddress", 2 }, - { "Req_GetWifiMode", 4 }, - { "Req_Max", 86 }, - { "Req_OTABegin", 8 }, - { "Req_OTAEnd", 10 }, - { "Req_OTAWrite", 9 }, - { "Req_SetMacAddress", 3 }, - { "Req_SetWifiMode", 5 }, - { "Req_Wifi80211Tx", 51 }, - { "Req_WifiApGetStaAid", 46 }, - { "Req_WifiApGetStaList", 45 }, - { "Req_WifiClearApList", 26 }, - { "Req_WifiClearFastConnect", 28 }, - { "Req_WifiConfig11bRate", 66 }, - { "Req_WifiConfig80211TxRate", 70 }, - { "Req_WifiConnect", 18 }, - { "Req_WifiConnectionlessModuleSetWakeInterval", 67 }, - { "Req_WifiDeauthSta", 29 }, - { "Req_WifiDeinit", 15 }, - { "Req_WifiDisablePmfConfig", 71 }, - { "Req_WifiDisconnect", 19 }, - { "Req_WifiFtmEndSession", 64 }, - { "Req_WifiFtmInitiateSession", 63 }, - { "Req_WifiFtmRespSetOffset", 65 }, - { "Req_WifiGetAnt", 57 }, - { "Req_WifiGetAntGpio", 55 }, - { "Req_WifiGetBand", 81 }, - { "Req_WifiGetBandMode", 83 }, - { "Req_WifiGetBandwidth", 34 }, - { "Req_WifiGetBandwidths", 79 }, - { "Req_WifiGetChannel", 36 }, - { "Req_WifiGetConfig", 21 }, - { "Req_WifiGetCountry", 38 }, - { "Req_WifiGetCountryCode", 69 }, - { "Req_WifiGetEventMask", 50 }, - { "Req_WifiGetInactiveTime", 60 }, - { "Req_WifiGetMaxTxPower", 12 }, - { "Req_WifiGetPromiscuous", 40 }, - { "Req_WifiGetPromiscuousCtrlFilter", 44 }, - { "Req_WifiGetPromiscuousFilter", 42 }, - { "Req_WifiGetProtocol", 32 }, - { "Req_WifiGetProtocols", 77 }, - { "Req_WifiGetPs", 7 }, - { "Req_WifiGetTsfTime", 58 }, - { "Req_WifiInit", 14 }, - { "Req_WifiRestore", 27 }, - { "Req_WifiScanGetApNum", 24 }, - { "Req_WifiScanGetApRecord", 85 }, - { "Req_WifiScanGetApRecords", 25 }, - { "Req_WifiScanStart", 22 }, - { "Req_WifiScanStop", 23 }, - { "Req_WifiSetAnt", 56 }, - { "Req_WifiSetAntGpio", 54 }, - { "Req_WifiSetBand", 80 }, - { "Req_WifiSetBandMode", 82 }, - { "Req_WifiSetBandwidth", 33 }, - { "Req_WifiSetBandwidths", 78 }, - { "Req_WifiSetChannel", 35 }, - { "Req_WifiSetConfig", 20 }, - { "Req_WifiSetCountry", 37 }, - { "Req_WifiSetCountryCode", 68 }, - { "Req_WifiSetCsi", 53 }, - { "Req_WifiSetCsiConfig", 52 }, - { "Req_WifiSetDynamicCs", 74 }, - { "Req_WifiSetEventMask", 49 }, - { "Req_WifiSetInactiveTime", 59 }, - { "Req_WifiSetMaxTxPower", 11 }, - { "Req_WifiSetPromiscuous", 39 }, - { "Req_WifiSetPromiscuousCtrlFilter", 43 }, - { "Req_WifiSetPromiscuousFilter", 41 }, - { "Req_WifiSetProtocol", 31 }, - { "Req_WifiSetProtocols", 76 }, - { "Req_WifiSetPs", 6 }, - { "Req_WifiSetRssiThreshold", 62 }, - { "Req_WifiSetStorage", 47 }, - { "Req_WifiSetVendorIe", 48 }, - { "Req_WifiStaGetAid", 72 }, - { "Req_WifiStaGetApInfo", 30 }, - { "Req_WifiStaGetNegotiatedPhymode", 73 }, - { "Req_WifiStaGetRssi", 75 }, - { "Req_WifiStart", 16 }, - { "Req_WifiStatisDump", 61 }, - { "Req_WifiStop", 17 }, - { "Resp_Base", 87 }, - { "Resp_ConfigHeartbeat", 99 }, - { "Resp_GetCoprocessorFwVersion", 170 }, - { "Resp_GetMACAddress", 88 }, - { "Resp_GetWifiMode", 90 }, - { "Resp_Max", 172 }, - { "Resp_OTABegin", 94 }, - { "Resp_OTAEnd", 96 }, - { "Resp_OTAWrite", 95 }, - { "Resp_SetMacAddress", 89 }, - { "Resp_SetWifiMode", 91 }, - { "Resp_Wifi80211Tx", 137 }, - { "Resp_WifiApGetStaAid", 132 }, - { "Resp_WifiApGetStaList", 131 }, - { "Resp_WifiClearApList", 112 }, - { "Resp_WifiClearFastConnect", 114 }, - { "Resp_WifiConfig11bRate", 152 }, - { "Resp_WifiConfig80211TxRate", 156 }, - { "Resp_WifiConnect", 104 }, - { "Resp_WifiConnectionlessModuleSetWakeInterval", 153 }, - { "Resp_WifiDeauthSta", 115 }, - { "Resp_WifiDeinit", 101 }, - { "Resp_WifiDisablePmfConfig", 157 }, - { "Resp_WifiDisconnect", 105 }, - { "Resp_WifiFtmEndSession", 150 }, - { "Resp_WifiFtmInitiateSession", 149 }, - { "Resp_WifiFtmRespSetOffset", 151 }, - { "Resp_WifiGetAnt", 143 }, - { "Resp_WifiGetAntGpio", 141 }, - { "Resp_WifiGetBand", 167 }, - { "Resp_WifiGetBandMode", 169 }, - { "Resp_WifiGetBandwidth", 120 }, - { "Resp_WifiGetBandwidths", 165 }, - { "Resp_WifiGetChannel", 122 }, - { "Resp_WifiGetConfig", 107 }, - { "Resp_WifiGetCountry", 124 }, - { "Resp_WifiGetCountryCode", 155 }, - { "Resp_WifiGetEventMask", 136 }, - { "Resp_WifiGetInactiveTime", 146 }, - { "Resp_WifiGetMaxTxPower", 98 }, - { "Resp_WifiGetPromiscuous", 126 }, - { "Resp_WifiGetPromiscuousCtrlFilter", 130 }, - { "Resp_WifiGetPromiscuousFilter", 128 }, - { "Resp_WifiGetProtocol", 118 }, - { "Resp_WifiGetProtocols", 163 }, - { "Resp_WifiGetPs", 93 }, - { "Resp_WifiGetTsfTime", 144 }, - { "Resp_WifiInit", 100 }, - { "Resp_WifiRestore", 113 }, - { "Resp_WifiScanGetApNum", 110 }, - { "Resp_WifiScanGetApRecord", 171 }, - { "Resp_WifiScanGetApRecords", 111 }, - { "Resp_WifiScanStart", 108 }, - { "Resp_WifiScanStop", 109 }, - { "Resp_WifiSetAnt", 142 }, - { "Resp_WifiSetAntGpio", 140 }, - { "Resp_WifiSetBand", 166 }, - { "Resp_WifiSetBandMode", 168 }, - { "Resp_WifiSetBandwidth", 119 }, - { "Resp_WifiSetBandwidths", 164 }, - { "Resp_WifiSetChannel", 121 }, - { "Resp_WifiSetConfig", 106 }, - { "Resp_WifiSetCountry", 123 }, - { "Resp_WifiSetCountryCode", 154 }, - { "Resp_WifiSetCsi", 139 }, - { "Resp_WifiSetCsiConfig", 138 }, - { "Resp_WifiSetDynamicCs", 160 }, - { "Resp_WifiSetEventMask", 135 }, - { "Resp_WifiSetInactiveTime", 145 }, - { "Resp_WifiSetMaxTxPower", 97 }, - { "Resp_WifiSetPromiscuous", 125 }, - { "Resp_WifiSetPromiscuousCtrlFilter", 129 }, - { "Resp_WifiSetPromiscuousFilter", 127 }, - { "Resp_WifiSetProtocol", 117 }, - { "Resp_WifiSetProtocols", 162 }, - { "Resp_WifiSetPs", 92 }, - { "Resp_WifiSetRssiThreshold", 148 }, - { "Resp_WifiSetStorage", 133 }, - { "Resp_WifiSetVendorIe", 134 }, - { "Resp_WifiStaGetAid", 158 }, - { "Resp_WifiStaGetApInfo", 116 }, - { "Resp_WifiStaGetNegotiatedPhymode", 159 }, - { "Resp_WifiStaGetRssi", 161 }, - { "Resp_WifiStart", 102 }, - { "Resp_WifiStatisDump", 147 }, - { "Resp_WifiStop", 103 }, -}; -const ProtobufCEnumDescriptor rpc_id__descriptor = -{ - PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, - "RpcId", - "RpcId", - "RpcId", - "", - 183, - rpc_id__enum_values_by_number, - 183, - rpc_id__enum_values_by_name, - 8, - rpc_id__value_ranges, - NULL,NULL,NULL,NULL /* reserved[1234] */ -}; diff --git a/resources/espressif__esp_hosted/common/proto/esp_hosted_rpc.pb-c.h b/resources/espressif__esp_hosted/common/proto/esp_hosted_rpc.pb-c.h deleted file mode 100644 index 03a11fc..0000000 --- a/resources/espressif__esp_hosted/common/proto/esp_hosted_rpc.pb-c.h +++ /dev/null @@ -1,7219 +0,0 @@ -/* Generated by the protocol buffer compiler. DO NOT EDIT! */ -/* Generated from: esp_hosted_rpc.proto */ - -#ifndef PROTOBUF_C_esp_5fhosted_5frpc_2eproto__INCLUDED -#define PROTOBUF_C_esp_5fhosted_5frpc_2eproto__INCLUDED - -#include - -PROTOBUF_C__BEGIN_DECLS - -#if PROTOBUF_C_VERSION_NUMBER < 1003000 -# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers. -#elif 1004001 < PROTOBUF_C_MIN_COMPILER_VERSION -# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c. -#endif - - -typedef struct WifiInitConfig WifiInitConfig; -typedef struct WifiCountry WifiCountry; -typedef struct WifiActiveScanTime WifiActiveScanTime; -typedef struct WifiScanTime WifiScanTime; -typedef struct WifiScanConfig WifiScanConfig; -typedef struct WifiHeApInfo WifiHeApInfo; -typedef struct WifiApRecord WifiApRecord; -typedef struct WifiScanThreshold WifiScanThreshold; -typedef struct WifiPmfConfig WifiPmfConfig; -typedef struct WifiApConfig WifiApConfig; -typedef struct WifiStaConfig WifiStaConfig; -typedef struct WifiConfig WifiConfig; -typedef struct WifiStaInfo WifiStaInfo; -typedef struct WifiStaList WifiStaList; -typedef struct WifiPktRxCtrl WifiPktRxCtrl; -typedef struct WifiPromiscuousPkt WifiPromiscuousPkt; -typedef struct WifiPromiscuousFilter WifiPromiscuousFilter; -typedef struct WifiCsiConfig WifiCsiConfig; -typedef struct WifiCsiInfo WifiCsiInfo; -typedef struct WifiAntGpio WifiAntGpio; -typedef struct WifiAntGpioConfig WifiAntGpioConfig; -typedef struct WifiAntConfig WifiAntConfig; -typedef struct WifiActionTxReq WifiActionTxReq; -typedef struct WifiFtmInitiatorCfg WifiFtmInitiatorCfg; -typedef struct WifiEventStaScanDone WifiEventStaScanDone; -typedef struct WifiEventStaConnected WifiEventStaConnected; -typedef struct WifiEventStaDisconnected WifiEventStaDisconnected; -typedef struct WifiEventStaAuthmodeChange WifiEventStaAuthmodeChange; -typedef struct WifiEventStaWpsErPin WifiEventStaWpsErPin; -typedef struct ApCred ApCred; -typedef struct WifiEventStaWpsErSuccess WifiEventStaWpsErSuccess; -typedef struct WifiEventApProbeReqRx WifiEventApProbeReqRx; -typedef struct WifiEventBssRssiLow WifiEventBssRssiLow; -typedef struct WifiFtmReportEntry WifiFtmReportEntry; -typedef struct WifiEventFtmReport WifiEventFtmReport; -typedef struct WifiEventActionTxStatus WifiEventActionTxStatus; -typedef struct WifiEventRocDone WifiEventRocDone; -typedef struct WifiEventApWpsRgPin WifiEventApWpsRgPin; -typedef struct WifiEventApWpsRgFailReason WifiEventApWpsRgFailReason; -typedef struct WifiEventApWpsRgSuccess WifiEventApWpsRgSuccess; -typedef struct WifiProtocols WifiProtocols; -typedef struct WifiBandwidths WifiBandwidths; -typedef struct ConnectedSTAList ConnectedSTAList; -typedef struct RpcReqGetMacAddress RpcReqGetMacAddress; -typedef struct RpcRespGetMacAddress RpcRespGetMacAddress; -typedef struct RpcReqGetMode RpcReqGetMode; -typedef struct RpcRespGetMode RpcRespGetMode; -typedef struct RpcReqSetMode RpcReqSetMode; -typedef struct RpcRespSetMode RpcRespSetMode; -typedef struct RpcReqGetPs RpcReqGetPs; -typedef struct RpcRespGetPs RpcRespGetPs; -typedef struct RpcReqSetPs RpcReqSetPs; -typedef struct RpcRespSetPs RpcRespSetPs; -typedef struct RpcReqSetMacAddress RpcReqSetMacAddress; -typedef struct RpcRespSetMacAddress RpcRespSetMacAddress; -typedef struct RpcReqOTABegin RpcReqOTABegin; -typedef struct RpcRespOTABegin RpcRespOTABegin; -typedef struct RpcReqOTAWrite RpcReqOTAWrite; -typedef struct RpcRespOTAWrite RpcRespOTAWrite; -typedef struct RpcReqOTAEnd RpcReqOTAEnd; -typedef struct RpcRespOTAEnd RpcRespOTAEnd; -typedef struct RpcReqWifiSetMaxTxPower RpcReqWifiSetMaxTxPower; -typedef struct RpcRespWifiSetMaxTxPower RpcRespWifiSetMaxTxPower; -typedef struct RpcReqWifiGetMaxTxPower RpcReqWifiGetMaxTxPower; -typedef struct RpcRespWifiGetMaxTxPower RpcRespWifiGetMaxTxPower; -typedef struct RpcReqConfigHeartbeat RpcReqConfigHeartbeat; -typedef struct RpcRespConfigHeartbeat RpcRespConfigHeartbeat; -typedef struct RpcReqWifiInit RpcReqWifiInit; -typedef struct RpcRespWifiInit RpcRespWifiInit; -typedef struct RpcReqWifiDeinit RpcReqWifiDeinit; -typedef struct RpcRespWifiDeinit RpcRespWifiDeinit; -typedef struct RpcReqWifiSetConfig RpcReqWifiSetConfig; -typedef struct RpcRespWifiSetConfig RpcRespWifiSetConfig; -typedef struct RpcReqWifiGetConfig RpcReqWifiGetConfig; -typedef struct RpcRespWifiGetConfig RpcRespWifiGetConfig; -typedef struct RpcReqWifiConnect RpcReqWifiConnect; -typedef struct RpcRespWifiConnect RpcRespWifiConnect; -typedef struct RpcReqWifiDisconnect RpcReqWifiDisconnect; -typedef struct RpcRespWifiDisconnect RpcRespWifiDisconnect; -typedef struct RpcReqWifiStart RpcReqWifiStart; -typedef struct RpcRespWifiStart RpcRespWifiStart; -typedef struct RpcReqWifiStop RpcReqWifiStop; -typedef struct RpcRespWifiStop RpcRespWifiStop; -typedef struct RpcReqWifiScanStart RpcReqWifiScanStart; -typedef struct RpcRespWifiScanStart RpcRespWifiScanStart; -typedef struct RpcReqWifiScanStop RpcReqWifiScanStop; -typedef struct RpcRespWifiScanStop RpcRespWifiScanStop; -typedef struct RpcReqWifiScanGetApNum RpcReqWifiScanGetApNum; -typedef struct RpcRespWifiScanGetApNum RpcRespWifiScanGetApNum; -typedef struct RpcReqWifiScanGetApRecords RpcReqWifiScanGetApRecords; -typedef struct RpcRespWifiScanGetApRecords RpcRespWifiScanGetApRecords; -typedef struct RpcReqWifiScanGetApRecord RpcReqWifiScanGetApRecord; -typedef struct RpcRespWifiScanGetApRecord RpcRespWifiScanGetApRecord; -typedef struct RpcReqWifiClearApList RpcReqWifiClearApList; -typedef struct RpcRespWifiClearApList RpcRespWifiClearApList; -typedef struct RpcReqWifiRestore RpcReqWifiRestore; -typedef struct RpcRespWifiRestore RpcRespWifiRestore; -typedef struct RpcReqWifiClearFastConnect RpcReqWifiClearFastConnect; -typedef struct RpcRespWifiClearFastConnect RpcRespWifiClearFastConnect; -typedef struct RpcReqWifiDeauthSta RpcReqWifiDeauthSta; -typedef struct RpcRespWifiDeauthSta RpcRespWifiDeauthSta; -typedef struct RpcReqWifiStaGetApInfo RpcReqWifiStaGetApInfo; -typedef struct RpcRespWifiStaGetApInfo RpcRespWifiStaGetApInfo; -typedef struct RpcReqWifiSetProtocol RpcReqWifiSetProtocol; -typedef struct RpcRespWifiSetProtocol RpcRespWifiSetProtocol; -typedef struct RpcReqWifiGetProtocol RpcReqWifiGetProtocol; -typedef struct RpcRespWifiGetProtocol RpcRespWifiGetProtocol; -typedef struct RpcReqWifiSetBandwidth RpcReqWifiSetBandwidth; -typedef struct RpcRespWifiSetBandwidth RpcRespWifiSetBandwidth; -typedef struct RpcReqWifiGetBandwidth RpcReqWifiGetBandwidth; -typedef struct RpcRespWifiGetBandwidth RpcRespWifiGetBandwidth; -typedef struct RpcReqWifiSetChannel RpcReqWifiSetChannel; -typedef struct RpcRespWifiSetChannel RpcRespWifiSetChannel; -typedef struct RpcReqWifiGetChannel RpcReqWifiGetChannel; -typedef struct RpcRespWifiGetChannel RpcRespWifiGetChannel; -typedef struct RpcReqWifiSetStorage RpcReqWifiSetStorage; -typedef struct RpcRespWifiSetStorage RpcRespWifiSetStorage; -typedef struct RpcReqWifiSetCountryCode RpcReqWifiSetCountryCode; -typedef struct RpcRespWifiSetCountryCode RpcRespWifiSetCountryCode; -typedef struct RpcReqWifiGetCountryCode RpcReqWifiGetCountryCode; -typedef struct RpcRespWifiGetCountryCode RpcRespWifiGetCountryCode; -typedef struct RpcReqWifiSetCountry RpcReqWifiSetCountry; -typedef struct RpcRespWifiSetCountry RpcRespWifiSetCountry; -typedef struct RpcReqWifiGetCountry RpcReqWifiGetCountry; -typedef struct RpcRespWifiGetCountry RpcRespWifiGetCountry; -typedef struct RpcReqWifiApGetStaList RpcReqWifiApGetStaList; -typedef struct RpcRespWifiApGetStaList RpcRespWifiApGetStaList; -typedef struct RpcReqWifiApGetStaAid RpcReqWifiApGetStaAid; -typedef struct RpcReqWifiStaGetNegotiatedPhymode RpcReqWifiStaGetNegotiatedPhymode; -typedef struct RpcRespWifiStaGetNegotiatedPhymode RpcRespWifiStaGetNegotiatedPhymode; -typedef struct RpcRespWifiApGetStaAid RpcRespWifiApGetStaAid; -typedef struct RpcReqWifiStaGetRssi RpcReqWifiStaGetRssi; -typedef struct RpcRespWifiStaGetRssi RpcRespWifiStaGetRssi; -typedef struct RpcReqWifiStaGetAid RpcReqWifiStaGetAid; -typedef struct RpcRespWifiStaGetAid RpcRespWifiStaGetAid; -typedef struct RpcReqWifiSetProtocols RpcReqWifiSetProtocols; -typedef struct RpcRespWifiSetProtocols RpcRespWifiSetProtocols; -typedef struct RpcReqWifiGetProtocols RpcReqWifiGetProtocols; -typedef struct RpcRespWifiGetProtocols RpcRespWifiGetProtocols; -typedef struct RpcReqWifiSetBandwidths RpcReqWifiSetBandwidths; -typedef struct RpcRespWifiSetBandwidths RpcRespWifiSetBandwidths; -typedef struct RpcReqWifiGetBandwidths RpcReqWifiGetBandwidths; -typedef struct RpcRespWifiGetBandwidths RpcRespWifiGetBandwidths; -typedef struct RpcReqWifiSetBand RpcReqWifiSetBand; -typedef struct RpcRespWifiSetBand RpcRespWifiSetBand; -typedef struct RpcReqWifiGetBand RpcReqWifiGetBand; -typedef struct RpcRespWifiGetBand RpcRespWifiGetBand; -typedef struct RpcReqWifiSetBandMode RpcReqWifiSetBandMode; -typedef struct RpcRespWifiSetBandMode RpcRespWifiSetBandMode; -typedef struct RpcReqWifiGetBandMode RpcReqWifiGetBandMode; -typedef struct RpcRespWifiGetBandMode RpcRespWifiGetBandMode; -typedef struct RpcReqGetCoprocessorFwVersion RpcReqGetCoprocessorFwVersion; -typedef struct RpcRespGetCoprocessorFwVersion RpcRespGetCoprocessorFwVersion; -typedef struct RpcEventWifiEventNoArgs RpcEventWifiEventNoArgs; -typedef struct RpcEventESPInit RpcEventESPInit; -typedef struct RpcEventHeartbeat RpcEventHeartbeat; -typedef struct RpcEventAPStaDisconnected RpcEventAPStaDisconnected; -typedef struct RpcEventAPStaConnected RpcEventAPStaConnected; -typedef struct RpcEventStaScanDone RpcEventStaScanDone; -typedef struct RpcEventStaConnected RpcEventStaConnected; -typedef struct RpcEventStaDisconnected RpcEventStaDisconnected; -typedef struct Rpc Rpc; - - -/* --- enums --- */ - -typedef enum _RpcWifiBw { - RPC__WIFI_BW__BW_Invalid = 0, - RPC__WIFI_BW__HT20 = 1, - RPC__WIFI_BW__HT40 = 2 - PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RPC__WIFI_BW) -} RpcWifiBw; -typedef enum _RpcWifiPowerSave { - RPC__WIFI_POWER_SAVE__PS_Invalid = 0, - RPC__WIFI_POWER_SAVE__MIN_MODEM = 1, - RPC__WIFI_POWER_SAVE__MAX_MODEM = 2 - PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RPC__WIFI_POWER_SAVE) -} RpcWifiPowerSave; -typedef enum _RpcWifiSecProt { - RPC__WIFI_SEC_PROT__Open = 0, - RPC__WIFI_SEC_PROT__WEP = 1, - RPC__WIFI_SEC_PROT__WPA_PSK = 2, - RPC__WIFI_SEC_PROT__WPA2_PSK = 3, - RPC__WIFI_SEC_PROT__WPA_WPA2_PSK = 4, - RPC__WIFI_SEC_PROT__WPA2_ENTERPRISE = 5, - RPC__WIFI_SEC_PROT__WPA3_PSK = 6, - RPC__WIFI_SEC_PROT__WPA2_WPA3_PSK = 7 - PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RPC__WIFI_SEC_PROT) -} RpcWifiSecProt; -/* - * enums for Control path - */ -typedef enum _RpcStatus { - RPC__STATUS__Connected = 0, - RPC__STATUS__Not_Connected = 1, - RPC__STATUS__No_AP_Found = 2, - RPC__STATUS__Connection_Fail = 3, - RPC__STATUS__Invalid_Argument = 4, - RPC__STATUS__Out_Of_Range = 5 - PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RPC__STATUS) -} RpcStatus; -typedef enum _RpcType { - RPC_TYPE__MsgType_Invalid = 0, - RPC_TYPE__Req = 1, - RPC_TYPE__Resp = 2, - RPC_TYPE__Event = 3, - RPC_TYPE__MsgType_Max = 4 - PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RPC_TYPE) -} RpcType; -typedef enum _RpcId { - RPC_ID__MsgId_Invalid = 0, - /* - ** Request Msgs * - */ - /* - *0x100 - */ - RPC_ID__Req_Base = 256, - /* - *0x101 - */ - RPC_ID__Req_GetMACAddress = 257, - /* - *0x102 - */ - RPC_ID__Req_SetMacAddress = 258, - /* - *0x103 - */ - RPC_ID__Req_GetWifiMode = 259, - /* - *0x104 - */ - RPC_ID__Req_SetWifiMode = 260, - /* - *0x10e - */ - RPC_ID__Req_WifiSetPs = 270, - /* - *0x10f - */ - RPC_ID__Req_WifiGetPs = 271, - /* - *0x110 - */ - RPC_ID__Req_OTABegin = 272, - /* - *0x111 - */ - RPC_ID__Req_OTAWrite = 273, - /* - *0x112 - */ - RPC_ID__Req_OTAEnd = 274, - /* - *0x113 - */ - RPC_ID__Req_WifiSetMaxTxPower = 275, - /* - *0x114 - */ - RPC_ID__Req_WifiGetMaxTxPower = 276, - /* - *0x115 - */ - RPC_ID__Req_ConfigHeartbeat = 277, - /* - *0x116 - */ - RPC_ID__Req_WifiInit = 278, - /* - *0x117 - */ - RPC_ID__Req_WifiDeinit = 279, - /* - *0x118 - */ - RPC_ID__Req_WifiStart = 280, - /* - *0x119 - */ - RPC_ID__Req_WifiStop = 281, - /* - *0x11a - */ - RPC_ID__Req_WifiConnect = 282, - /* - *0x11b - */ - RPC_ID__Req_WifiDisconnect = 283, - /* - *0x11c - */ - RPC_ID__Req_WifiSetConfig = 284, - /* - *0x11d - */ - RPC_ID__Req_WifiGetConfig = 285, - /* - *0x11e - */ - RPC_ID__Req_WifiScanStart = 286, - /* - *0x11f - */ - RPC_ID__Req_WifiScanStop = 287, - /* - *0x120 - */ - RPC_ID__Req_WifiScanGetApNum = 288, - /* - *0x121 - */ - RPC_ID__Req_WifiScanGetApRecords = 289, - /* - *0x122 - */ - RPC_ID__Req_WifiClearApList = 290, - /* - *0x123 - */ - RPC_ID__Req_WifiRestore = 291, - /* - *0x124 - */ - RPC_ID__Req_WifiClearFastConnect = 292, - /* - *0x125 - */ - RPC_ID__Req_WifiDeauthSta = 293, - /* - *0x126 - */ - RPC_ID__Req_WifiStaGetApInfo = 294, - /* - *Req_WifiSetPs = 295; //0x127 - *Req_WifiGetPs = 296; //0x128 - */ - /* - *0x129 - */ - RPC_ID__Req_WifiSetProtocol = 297, - /* - *0x12a - */ - RPC_ID__Req_WifiGetProtocol = 298, - /* - *0x12b - */ - RPC_ID__Req_WifiSetBandwidth = 299, - /* - *0x12c - */ - RPC_ID__Req_WifiGetBandwidth = 300, - /* - *0x12d - */ - RPC_ID__Req_WifiSetChannel = 301, - /* - *0x12e - */ - RPC_ID__Req_WifiGetChannel = 302, - /* - *0x12f - */ - RPC_ID__Req_WifiSetCountry = 303, - /* - *0x130 - */ - RPC_ID__Req_WifiGetCountry = 304, - /* - * Req_WifiSetPromiscuousRxCb = 305; //0x131 - */ - /* - *0x131 - */ - RPC_ID__Req_WifiSetPromiscuous = 305, - /* - *0x132 - */ - RPC_ID__Req_WifiGetPromiscuous = 306, - /* - *0x133 - */ - RPC_ID__Req_WifiSetPromiscuousFilter = 307, - /* - *0x134 - */ - RPC_ID__Req_WifiGetPromiscuousFilter = 308, - /* - *0x135 - */ - RPC_ID__Req_WifiSetPromiscuousCtrlFilter = 309, - /* - *0x136 - */ - RPC_ID__Req_WifiGetPromiscuousCtrlFilter = 310, - /* - *0x137 - */ - RPC_ID__Req_WifiApGetStaList = 311, - /* - *0x138 - */ - RPC_ID__Req_WifiApGetStaAid = 312, - /* - *0x139 - */ - RPC_ID__Req_WifiSetStorage = 313, - /* - *0x13a - */ - RPC_ID__Req_WifiSetVendorIe = 314, - /* - * Req_WifiSetVendorIeCb = 315; //0x13b - */ - /* - *0x13b - */ - RPC_ID__Req_WifiSetEventMask = 315, - /* - *0x13c - */ - RPC_ID__Req_WifiGetEventMask = 316, - /* - *0x13d - */ - RPC_ID__Req_Wifi80211Tx = 317, - /* - * Req_WifiSetCsiRxCb = 318; //0x13e - */ - /* - *0x13e - */ - RPC_ID__Req_WifiSetCsiConfig = 318, - /* - *0x13f - */ - RPC_ID__Req_WifiSetCsi = 319, - /* - *0x140 - */ - RPC_ID__Req_WifiSetAntGpio = 320, - /* - *0x141 - */ - RPC_ID__Req_WifiGetAntGpio = 321, - /* - *0x142 - */ - RPC_ID__Req_WifiSetAnt = 322, - /* - *0x143 - */ - RPC_ID__Req_WifiGetAnt = 323, - /* - *0x144 - */ - RPC_ID__Req_WifiGetTsfTime = 324, - /* - *0x145 - */ - RPC_ID__Req_WifiSetInactiveTime = 325, - /* - *0x146 - */ - RPC_ID__Req_WifiGetInactiveTime = 326, - /* - *0x147 - */ - RPC_ID__Req_WifiStatisDump = 327, - /* - *0x148 - */ - RPC_ID__Req_WifiSetRssiThreshold = 328, - /* - *0x149 - */ - RPC_ID__Req_WifiFtmInitiateSession = 329, - /* - *0x14a - */ - RPC_ID__Req_WifiFtmEndSession = 330, - /* - *0x14b - */ - RPC_ID__Req_WifiFtmRespSetOffset = 331, - /* - *0x14c - */ - RPC_ID__Req_WifiConfig11bRate = 332, - /* - *0x14d - */ - RPC_ID__Req_WifiConnectionlessModuleSetWakeInterval = 333, - /* - *0x14e - */ - RPC_ID__Req_WifiSetCountryCode = 334, - /* - *0x14f - */ - RPC_ID__Req_WifiGetCountryCode = 335, - /* - *0x150 - */ - RPC_ID__Req_WifiConfig80211TxRate = 336, - /* - *0x151 - */ - RPC_ID__Req_WifiDisablePmfConfig = 337, - /* - *0x152 - */ - RPC_ID__Req_WifiStaGetAid = 338, - /* - *0x153 - */ - RPC_ID__Req_WifiStaGetNegotiatedPhymode = 339, - /* - *0x154 - */ - RPC_ID__Req_WifiSetDynamicCs = 340, - /* - *0x155 - */ - RPC_ID__Req_WifiStaGetRssi = 341, - /* - *0x156 - */ - RPC_ID__Req_WifiSetProtocols = 342, - /* - *0x157 - */ - RPC_ID__Req_WifiGetProtocols = 343, - /* - *0x158 - */ - RPC_ID__Req_WifiSetBandwidths = 344, - /* - *0x159 - */ - RPC_ID__Req_WifiGetBandwidths = 345, - /* - *0x15a - */ - RPC_ID__Req_WifiSetBand = 346, - /* - *0x15b - */ - RPC_ID__Req_WifiGetBand = 347, - /* - *0x15c - */ - RPC_ID__Req_WifiSetBandMode = 348, - /* - *0x15d - */ - RPC_ID__Req_WifiGetBandMode = 349, - /* - *0x15e - */ - RPC_ID__Req_GetCoprocessorFwVersion = 350, - /* - *0x15f - */ - RPC_ID__Req_WifiScanGetApRecord = 351, - /* - * Add new control path command response before Req_Max - * and update Req_Max - */ - /* - *0x160 - */ - RPC_ID__Req_Max = 352, - /* - ** Response Msgs * - */ - RPC_ID__Resp_Base = 512, - RPC_ID__Resp_GetMACAddress = 513, - RPC_ID__Resp_SetMacAddress = 514, - RPC_ID__Resp_GetWifiMode = 515, - RPC_ID__Resp_SetWifiMode = 516, - RPC_ID__Resp_WifiSetPs = 526, - RPC_ID__Resp_WifiGetPs = 527, - RPC_ID__Resp_OTABegin = 528, - RPC_ID__Resp_OTAWrite = 529, - RPC_ID__Resp_OTAEnd = 530, - RPC_ID__Resp_WifiSetMaxTxPower = 531, - RPC_ID__Resp_WifiGetMaxTxPower = 532, - RPC_ID__Resp_ConfigHeartbeat = 533, - RPC_ID__Resp_WifiInit = 534, - RPC_ID__Resp_WifiDeinit = 535, - RPC_ID__Resp_WifiStart = 536, - RPC_ID__Resp_WifiStop = 537, - RPC_ID__Resp_WifiConnect = 538, - RPC_ID__Resp_WifiDisconnect = 539, - RPC_ID__Resp_WifiSetConfig = 540, - RPC_ID__Resp_WifiGetConfig = 541, - RPC_ID__Resp_WifiScanStart = 542, - RPC_ID__Resp_WifiScanStop = 543, - RPC_ID__Resp_WifiScanGetApNum = 544, - RPC_ID__Resp_WifiScanGetApRecords = 545, - RPC_ID__Resp_WifiClearApList = 546, - RPC_ID__Resp_WifiRestore = 547, - RPC_ID__Resp_WifiClearFastConnect = 548, - RPC_ID__Resp_WifiDeauthSta = 549, - RPC_ID__Resp_WifiStaGetApInfo = 550, - /* - *Resp_WifiSetPs = 551; - *Resp_WifiGetPs = 552; - */ - RPC_ID__Resp_WifiSetProtocol = 553, - RPC_ID__Resp_WifiGetProtocol = 554, - RPC_ID__Resp_WifiSetBandwidth = 555, - RPC_ID__Resp_WifiGetBandwidth = 556, - RPC_ID__Resp_WifiSetChannel = 557, - RPC_ID__Resp_WifiGetChannel = 558, - RPC_ID__Resp_WifiSetCountry = 559, - RPC_ID__Resp_WifiGetCountry = 560, - /* - * Resp_WifiSetPromiscuousRxCb = 561; - */ - RPC_ID__Resp_WifiSetPromiscuous = 561, - RPC_ID__Resp_WifiGetPromiscuous = 562, - RPC_ID__Resp_WifiSetPromiscuousFilter = 563, - RPC_ID__Resp_WifiGetPromiscuousFilter = 564, - RPC_ID__Resp_WifiSetPromiscuousCtrlFilter = 565, - RPC_ID__Resp_WifiGetPromiscuousCtrlFilter = 566, - RPC_ID__Resp_WifiApGetStaList = 567, - RPC_ID__Resp_WifiApGetStaAid = 568, - RPC_ID__Resp_WifiSetStorage = 569, - RPC_ID__Resp_WifiSetVendorIe = 570, - /* - * Resp_WifiSetVendorIeCb = 571; - */ - RPC_ID__Resp_WifiSetEventMask = 571, - RPC_ID__Resp_WifiGetEventMask = 572, - RPC_ID__Resp_Wifi80211Tx = 573, - /* - * Resp_WifiSetCsiRxCb = 573; - */ - RPC_ID__Resp_WifiSetCsiConfig = 574, - RPC_ID__Resp_WifiSetCsi = 575, - RPC_ID__Resp_WifiSetAntGpio = 576, - RPC_ID__Resp_WifiGetAntGpio = 577, - RPC_ID__Resp_WifiSetAnt = 578, - RPC_ID__Resp_WifiGetAnt = 579, - RPC_ID__Resp_WifiGetTsfTime = 580, - RPC_ID__Resp_WifiSetInactiveTime = 581, - RPC_ID__Resp_WifiGetInactiveTime = 582, - RPC_ID__Resp_WifiStatisDump = 583, - RPC_ID__Resp_WifiSetRssiThreshold = 584, - RPC_ID__Resp_WifiFtmInitiateSession = 585, - RPC_ID__Resp_WifiFtmEndSession = 586, - RPC_ID__Resp_WifiFtmRespSetOffset = 587, - RPC_ID__Resp_WifiConfig11bRate = 588, - RPC_ID__Resp_WifiConnectionlessModuleSetWakeInterval = 589, - RPC_ID__Resp_WifiSetCountryCode = 590, - RPC_ID__Resp_WifiGetCountryCode = 591, - RPC_ID__Resp_WifiConfig80211TxRate = 592, - RPC_ID__Resp_WifiDisablePmfConfig = 593, - RPC_ID__Resp_WifiStaGetAid = 594, - RPC_ID__Resp_WifiStaGetNegotiatedPhymode = 595, - RPC_ID__Resp_WifiSetDynamicCs = 596, - RPC_ID__Resp_WifiStaGetRssi = 597, - RPC_ID__Resp_WifiSetProtocols = 598, - RPC_ID__Resp_WifiGetProtocols = 599, - RPC_ID__Resp_WifiSetBandwidths = 600, - RPC_ID__Resp_WifiGetBandwidths = 601, - RPC_ID__Resp_WifiSetBand = 602, - RPC_ID__Resp_WifiGetBand = 603, - RPC_ID__Resp_WifiSetBandMode = 604, - RPC_ID__Resp_WifiGetBandMode = 605, - RPC_ID__Resp_GetCoprocessorFwVersion = 606, - RPC_ID__Resp_WifiScanGetApRecord = 607, - /* - * Add new control path command response before Resp_Max - * and update Resp_Max - */ - RPC_ID__Resp_Max = 608, - /* - ** Event Msgs * - */ - RPC_ID__Event_Base = 768, - RPC_ID__Event_ESPInit = 769, - RPC_ID__Event_Heartbeat = 770, - RPC_ID__Event_AP_StaConnected = 771, - RPC_ID__Event_AP_StaDisconnected = 772, - RPC_ID__Event_WifiEventNoArgs = 773, - RPC_ID__Event_StaScanDone = 774, - RPC_ID__Event_StaConnected = 775, - RPC_ID__Event_StaDisconnected = 776, - /* - * Add new control path command notification before Event_Max - * and update Event_Max - */ - RPC_ID__Event_Max = 777 - PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RPC_ID) -} RpcId; - -/* --- messages --- */ - -struct WifiInitConfig -{ - ProtobufCMessage base; - /* - **< WiFi static RX buffer number - */ - int32_t static_rx_buf_num; - /* - **< WiFi dynamic RX buffer number - */ - int32_t dynamic_rx_buf_num; - /* - **< WiFi TX buffer type - */ - int32_t tx_buf_type; - /* - **< WiFi static TX buffer number - */ - int32_t static_tx_buf_num; - /* - **< WiFi dynamic TX buffer number - */ - int32_t dynamic_tx_buf_num; - /* - **< WiFi TX cache buffer number - */ - int32_t cache_tx_buf_num; - /* - **< WiFi channel state information enable flag - */ - int32_t csi_enable; - /* - **< WiFi AMPDU RX feature enable flag - */ - int32_t ampdu_rx_enable; - /* - **< WiFi AMPDU TX feature enable flag - */ - int32_t ampdu_tx_enable; - /* - **< WiFi AMSDU TX feature enable flag - */ - int32_t amsdu_tx_enable; - /* - **< WiFi NVS flash enable flag - */ - int32_t nvs_enable; - /* - **< Nano option for printf/scan family enable flag - */ - int32_t nano_enable; - /* - **< WiFi Block Ack RX window size - */ - int32_t rx_ba_win; - /* - **< WiFi Task Core ID - */ - int32_t wifi_task_core_id; - /* - **< WiFi softAP maximum length of the beacon - */ - int32_t beacon_max_len; - /* - **< WiFi management short buffer number, the minimum value is 6, the maximum value is 32 - */ - int32_t mgmt_sbuf_num; - /* - **< Enables additional WiFi features and capabilities - */ - uint64_t feature_caps; - /* - **< WiFi Power Management for station at disconnected status - */ - protobuf_c_boolean sta_disconnected_pm; - /* - **< Maximum encrypt number of peers supported by espnow - */ - int32_t espnow_max_encrypt_num; - /* - **< WiFi init magic number, it should be the last field - */ - int32_t magic; -}; -#define WIFI_INIT_CONFIG__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_init_config__descriptor) \ - , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } - - -struct WifiCountry -{ - ProtobufCMessage base; - /* - **< country code string of 3 chars - */ - ProtobufCBinaryData cc; - /* - **< start channel - */ - uint32_t schan; - /* - **< total channel number - */ - uint32_t nchan; - /* - **< This field is used for getting WiFi maximum transmitting power, - *call esp_wifi_set_max_tx_power to set the maximum transmitting power. - */ - int32_t max_tx_power; - /* - **< country policy - */ - int32_t policy; -}; -#define WIFI_COUNTRY__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_country__descriptor) \ - , {0,NULL}, 0, 0, 0, 0 } - - -struct WifiActiveScanTime -{ - ProtobufCMessage base; - /* - **< minimum active scan time per channel, units: millisecond - */ - uint32_t min; - /* - **< maximum active scan time per channel, units: millisecond, values above 1500ms may - *cause station to disconnect from AP and are not recommended. - */ - uint32_t max; -}; -#define WIFI_ACTIVE_SCAN_TIME__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_active_scan_time__descriptor) \ - , 0, 0 } - - -struct WifiScanTime -{ - ProtobufCMessage base; - /* - **< active scan time per channel, units: millisecond. - */ - WifiActiveScanTime *active; - /* - **< passive scan time per channel, units: millisecond, values above 1500ms may - *cause station to disconnect from AP and are not recommended. - */ - uint32_t passive; -}; -#define WIFI_SCAN_TIME__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_scan_time__descriptor) \ - , NULL, 0 } - - -struct WifiScanConfig -{ - ProtobufCMessage base; - /* - **< SSID of AP 33char - */ - ProtobufCBinaryData ssid; - /* - **< MAC address of AP 6char - */ - ProtobufCBinaryData bssid; - /* - **< channel, scan the specific channel - */ - uint32_t channel; - /* - **< enable to scan AP whose SSID is hidden - */ - protobuf_c_boolean show_hidden; - /* - **< scan type, active or passive - */ - int32_t scan_type; - /* - **< scan time per channel - */ - WifiScanTime *scan_time; - /* - **< time spent at home channel between scanning consecutive channels. - */ - uint32_t home_chan_dwell_time; -}; -#define WIFI_SCAN_CONFIG__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_scan_config__descriptor) \ - , {0,NULL}, {0,NULL}, 0, 0, 0, NULL, 0 } - - -struct WifiHeApInfo -{ - ProtobufCMessage base; - /* - *uint8_t bss_color:6; **< an unsigned integer whose value is the BSS Color of the BSS corresponding to the AP * - *uint8_t partial_bss_color:1; **< indicate if an AID assignment rule based on the BSS color * - *uint8_t bss_color_disabled:1; **< indicate if the use of BSS color is disabled * - */ - /* - * Manually have to parse for above bits - */ - uint32_t bitmask; - /* - **< in M-BSSID set, identifies the nontransmitted BSSID - */ - uint32_t bssid_index; -}; -#define WIFI_HE_AP_INFO__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_he_ap_info__descriptor) \ - , 0, 0 } - - -struct WifiApRecord -{ - ProtobufCMessage base; - /* - **< MAC address of AP 6char - */ - ProtobufCBinaryData bssid; - /* - **< SSID of AP 33char - */ - ProtobufCBinaryData ssid; - /* - **< channel of AP - */ - uint32_t primary; - /* - **< secondary channel of AP - */ - int32_t second; - /* - **< signal strength of AP - */ - int32_t rssi; - /* - **< authmode of AP - */ - int32_t authmode; - /* - **< pairwise cipher of AP - */ - int32_t pairwise_cipher; - /* - **< group cipher of AP - */ - int32_t group_cipher; - /* - **< antenna used to receive beacon from AP - */ - int32_t ant; - /* - *uint32_t phy_11b:1; **< bit: 0 flag to identify if 11b mode is enabled or not * - *uint32_t phy_11g:1; **< bit: 1 flag to identify if 11g mode is enabled or not * - *uint32_t phy_11n:1; **< bit: 2 flag to identify if 11n mode is enabled or not * - *uint32_t phy_lr:1; **< bit: 3 flag to identify if low rate is enabled or not * - *uint32_t wps:1; **< bit: 4 flag to identify if WPS is supported or not * - *uint32_t ftm_responder:1; **< bit: 5 flag to identify if FTM is supported in responder mode * - *uint32_t ftm_initiator:1; **< bit: 6 flag to identify if FTM is supported in initiator mode * - *uint32_t reserved:25; **< bit: 7..31 reserved * - */ - /* - * Manually have to parse for above bits - */ - uint32_t bitmask; - /* - **< country information of AP - */ - WifiCountry *country; - WifiHeApInfo *he_ap; - /* - **< For AP 20 MHz this value is set to 1. For AP 40 MHz this value is set to 2. - *For AP 80 MHz this value is set to 3. For AP 160MHz this value is set to 4. - *For AP 80+80MHz this value is set to 5 - */ - uint32_t bandwidth; - /* - **< This fields are used only AP bandwidth is 80 and 160 MHz, to transmit the center channel - *frequency of the BSS. For AP bandwidth is 80 + 80 MHz, it is the center channel frequency - *of the lower frequency segment. - */ - uint32_t vht_ch_freq1; - /* - **< This fields are used only AP bandwidth is 80 + 80 MHz, and is used to transmit the center - *channel frequency of the second segment. - */ - uint32_t vht_ch_freq2; -}; -#define WIFI_AP_RECORD__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_ap_record__descriptor) \ - , {0,NULL}, {0,NULL}, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0 } - - -struct WifiScanThreshold -{ - ProtobufCMessage base; - /* - **< The minimum rssi to accept in the fast scan mode - */ - int32_t rssi; - /* - **< The weakest authmode to accept in the fast scan mode - *Note: Incase this value is not set and password is set as per WPA2 standards(password len >= 8), - *it will be defaulted to WPA2 and device won't connect to deprecated WEP/WPA networks. - *Please set authmode threshold as WIFI_AUTH_WEP/WIFI_AUTH_WPA_PSK to connect to WEP/WPA networks - */ - int32_t authmode; -}; -#define WIFI_SCAN_THRESHOLD__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_scan_threshold__descriptor) \ - , 0, 0 } - - -struct WifiPmfConfig -{ - ProtobufCMessage base; - /* - **< Deprecated variable. Device will always connect in PMF mode if other device also advertizes PMF capability. - */ - protobuf_c_boolean capable; - /* - **< Advertizes that Protected Management Frame is required. Device will not associate to non-PMF capable devices. - */ - protobuf_c_boolean required; -}; -#define WIFI_PMF_CONFIG__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_pmf_config__descriptor) \ - , 0, 0 } - - -struct WifiApConfig -{ - ProtobufCMessage base; - /* - **< SSID of ESP32 soft-AP. If ssid_len field is 0, this must be a Null terminated string. Otherwise, length is set according to ssid_len. 32 char - */ - ProtobufCBinaryData ssid; - /* - **< Password of ESP32 soft-AP. 64 char - */ - ProtobufCBinaryData password; - /* - **< Optional length of SSID field. - */ - uint32_t ssid_len; - /* - **< Channel of ESP32 soft-AP - */ - uint32_t channel; - /* - **< Auth mode of ESP32 soft-AP. Do not support AUTH_WEP in soft-AP mode - */ - int32_t authmode; - /* - **< Broadcast SSID or not, default 0, broadcast the SSID - */ - uint32_t ssid_hidden; - /* - **< Max number of stations allowed to connect in - */ - uint32_t max_connection; - /* - **< Beacon interval which should be multiples of 100. Unit: TU(time unit, 1 TU = 1024 us). Range: 100 ~ 60000. Default value: 100 - */ - uint32_t beacon_interval; - /* - **< pairwise cipher of SoftAP, group cipher will be derived using this. - *cipher values are valid starting from WIFI_CIPHER_TYPE_TKIP, enum values before that will be considered as invalid and default cipher suites(TKIP+CCMP) will be used. - *Valid cipher suites in softAP mode are WIFI_CIPHER_TYPE_TKIP, WIFI_CIPHER_TYPE_CCMP and WIFI_CIPHER_TYPE_TKIP_CCMP. - */ - int32_t pairwise_cipher; - /* - **< Enable FTM Responder mode - */ - protobuf_c_boolean ftm_responder; - /* - **< Configuration for Protected Management Frame - */ - WifiPmfConfig *pmf_cfg; - /* - **< Configuration for SAE PWE derivation method - */ - int32_t sae_pwe_h2e; -}; -#define WIFI_AP_CONFIG__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_ap_config__descriptor) \ - , {0,NULL}, {0,NULL}, 0, 0, 0, 0, 0, 0, 0, 0, NULL, 0 } - - -struct WifiStaConfig -{ - ProtobufCMessage base; - /* - **< SSID of target AP. 32char - */ - ProtobufCBinaryData ssid; - /* - **< Password of target AP. 64char - */ - ProtobufCBinaryData password; - /* - **< do all channel scan or fast scan - */ - int32_t scan_method; - /* - **< whether set MAC address of target AP or not. Generally, station_config.bssid_set needs to be 0, - *and it needs to be 1 only when users need to check the MAC address of the AP. - */ - protobuf_c_boolean bssid_set; - /* - **< MAC address of target AP 6char - */ - ProtobufCBinaryData bssid; - /* - **< channel of target AP. Set to 1~13 to scan starting from the specified channel - *before connecting to AP. If the channel of AP is unknown, set it to 0. - */ - uint32_t channel; - /* - **< Listen interval for ESP32 station to receive beacon when WIFI_PS_MAX_MODEM is set. - *Units: AP beacon intervals. Defaults to 3 if set to 0. - */ - uint32_t listen_interval; - /* - **< sort the connect AP in the list by rssi or security mode - */ - int32_t sort_method; - /* - **< When sort_method is set, only APs which have an auth mode that is more secure - *than the selected auth mode and a signal stronger than the minimum RSSI will be used. - */ - WifiScanThreshold *threshold; - /* - **< Configuration for Protected Management Frame. Will be advertized in RSN Capabilities in RSN IE. - */ - WifiPmfConfig *pmf_cfg; - /* - *uint32_t rm_enabled:1; **< Whether Radio Measurements are enabled for the connection * - *uint32_t btm_enabled:1; **< Whether BSS Transition Management is enabled for the connection * - *uint32_t mbo_enabled:1; **< Whether MBO is enabled for the connection * - *uint32_t ft_enabled:1; **< Whether FT is enabled for the connection * - *uint32_t owe_enabled:1; **< Whether OWE is enabled for the connection * - *uint32_t transition_disable:1; **< Whether to enable transition disable feature * - *uint32_t reserved:26; **< Reserved for future feature set * - */ - uint32_t bitmask; - /* - **< Whether SAE hash to element is enabled - */ - int32_t sae_pwe_h2e; - /* - **< Number of connection retries station will do before moving to next AP. - *scan_method should be set as WIFI_ALL_CHANNEL_SCAN to use this config. - *Note: Enabling this may cause connection time to increase incase best AP doesn't behave properly. - */ - uint32_t failure_retry_cnt; - /* - *uint32_t he_dcm_set:1; **< Whether DCM max.constellation for transmission and reception is set. * - *uint32_t he_dcm_max_constellation_tx:2; **< Indicate the max.constellation for DCM in TB PPDU the STA supported. 0: not supported. 1: BPSK, 2: QPSK, 3: 16-QAM. The default value is 3. * - *uint32_t he_dcm_max_constellation_rx:2; **< Indicate the max.constellation for DCM in both Data field and HE-SIG-B field the STA supported. 0: not supported. 1: BPSK, 2: QPSK, 3: 16-QAM. The default value is 3. * - *uint32_t he_mcs9_enabled:1; **< Whether to support HE-MCS 0 to 9. The default value is 0. * - *uint32_t he_su_beamformee_disabled:1; **< Whether to disable support for operation as an SU beamformee. * - *uint32_t he_trig_su_bmforming_feedback_disabled:1; **< Whether to disable support the transmission of SU feedback in an HE TB sounding sequence. * - *uint32_t he_trig_mu_bmforming_partial_feedback_disabled:1; **< Whether to disable support the transmission of partial-bandwidth MU feedback in an HE TB sounding sequence. * - * uint32_t he_trig_cqi_feedback_disabled:1; **< Whether to disable support the transmission of CQI feedback in an HE TB sounding sequence. * - * uint32_t he_reserved:22; **< Reserved for future feature set * - */ - uint32_t he_bitmask; - /* - **< Password identifier for H2E. this needs to be null terminated string. SAE_H2E_IDENTIFIER_LEN chars - */ - ProtobufCBinaryData sae_h2e_identifier; -}; -#define WIFI_STA_CONFIG__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_sta_config__descriptor) \ - , {0,NULL}, {0,NULL}, 0, 0, {0,NULL}, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, {0,NULL} } - - -typedef enum { - WIFI_CONFIG__U__NOT_SET = 0, - WIFI_CONFIG__U_AP = 1, - WIFI_CONFIG__U_STA = 2 - PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(WIFI_CONFIG__U__CASE) -} WifiConfig__UCase; - -struct WifiConfig -{ - ProtobufCMessage base; - WifiConfig__UCase u_case; - union { - /* - **< configuration of AP - */ - WifiApConfig *ap; - /* - **< configuration of STA - */ - WifiStaConfig *sta; - }; -}; -#define WIFI_CONFIG__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_config__descriptor) \ - , WIFI_CONFIG__U__NOT_SET, {0} } - - -struct WifiStaInfo -{ - ProtobufCMessage base; - /* - **< mac address 6 char - */ - ProtobufCBinaryData mac; - /* - **< current average rssi of sta connected - */ - int32_t rssi; - /* - *uint32_t phy_11b:1; **< bit: 0 flag to identify if 11b mode is enabled or not * - *uint32_t phy_11g:1; **< bit: 1 flag to identify if 11g mode is enabled or not * - *uint32_t phy_11n:1; **< bit: 2 flag to identify if 11n mode is enabled or not * - *uint32_t phy_lr:1; **< bit: 3 flag to identify if low rate is enabled or not * - *uint32_t phy_11x:1; **< bit: 4 flag to identify identify if 11ax mode is enabled or not * - *uint32_t is_mesh_child:1; **< bit: 5 flag to identify mesh child * - *uint32_t reserved:26; **< bit: 6..31 reserved * - */ - uint32_t bitmask; -}; -#define WIFI_STA_INFO__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_sta_info__descriptor) \ - , {0,NULL}, 0, 0 } - - -struct WifiStaList -{ - ProtobufCMessage base; - /* - **< station list - */ - size_t n_sta; - WifiStaInfo **sta; - /* - **< number of stations in the list (other entries are invalid) - */ - int32_t num; -}; -#define WIFI_STA_LIST__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_sta_list__descriptor) \ - , 0,NULL, 0 } - - -struct WifiPktRxCtrl -{ - ProtobufCMessage base; - /* - **< 8bits Received Signal Strength Indicator(RSSI) of packet. unit: dBm - */ - int32_t rssi; - /* - **< 5bits PHY rate encoding of the packet. Only valid for non HT(11bg) packet - */ - uint32_t rate; - /* - *uint32 :1; **< reserved * - */ - /* - **< 2bits 0: non HT(11bg) packet; 1: HT(11n) packet; 3: VHT(11ac) packet - */ - uint32_t sig_mode; - /* - *uint32 :16; **< reserved * - */ - /* - **< 7bits Modulation Coding Scheme. If is HT(11n) packet, shows the modulation, range from 0 to 76(MSC0 ~ MCS76) - */ - uint32_t mcs; - /* - **< 1bit Channel Bandwidth of the packet. 0: 20MHz; 1: 40MHz - */ - uint32_t cwb; - /* - *uint32 :16; **< reserved * - */ - /* - **< 1bit reserved - */ - uint32_t smoothing; - /* - **< 1bit reserved - */ - uint32_t not_sounding; - /* - *uint32 :1; **< reserved * - */ - /* - **< 1bit Aggregation. 0: MPDU packet; 1: AMPDU packet - */ - uint32_t aggregation; - /* - **< 2bits Space Time Block Code(STBC). 0: non STBC packet; 1: STBC packet - */ - uint32_t stbc; - /* - **< 1bit Flag is set for 11n packets which are LDPC - */ - uint32_t fec_coding; - /* - **< 1bit Short Guide Interval(SGI). 0: Long GI; 1: Short GI - */ - uint32_t sgi; - /* - **< 8bits noise floor of Radio Frequency Module(RF). unit: dBm - */ - int32_t noise_floor; - /* - **< 8bits ampdu cnt - */ - uint32_t ampdu_cnt; - /* - **< 4bits primary channel on which this packet is received - */ - uint32_t channel; - /* - **< 4bits secondary channel on which this packet is received. 0: none; 1: above; 2: below - */ - uint32_t secondary_channel; - /* - *uint32 :8; **< reserved * - */ - /* - **< 32bit timestamp. The local time when this packet is received. It is precise only if modem sleep or light sleep is not enabled. unit: microsecond - */ - uint32_t timestamp; - /* - *uint32 :32; **< reserved * - *unsigned :32; **< reserved * - *unsigned :31; **< reserved * - */ - /* - **< 1bit antenna number from which this packet is received. 0: WiFi antenna 0; 1: WiFi antenna 1 - */ - uint32_t ant; - /* - **< 12bits length of packet including Frame Check Sequence(FCS) - */ - uint32_t sig_len; - /* - *unsigned :12; **< reserved * - */ - /* - **< 8bits state of the packet. 0: no error; others: error numbers which are not public - */ - uint32_t rx_state; -}; -#define WIFI_PKT_RX_CTRL__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_pkt_rx_ctrl__descriptor) \ - , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } - - -struct WifiPromiscuousPkt -{ - ProtobufCMessage base; - /* - **< metadata header - */ - WifiPktRxCtrl *rx_ctrl; - /* - **< Note: variable length. Data or management payload. Length of payload is described by rx_ctrl.sig_len. Type of content determined by packet type argument of callback. - */ - ProtobufCBinaryData payload; -}; -#define WIFI_PROMISCUOUS_PKT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_promiscuous_pkt__descriptor) \ - , NULL, {0,NULL} } - - -struct WifiPromiscuousFilter -{ - ProtobufCMessage base; - /* - **< OR of one or more filter values WIFI_PROMIS_FILTER_* - */ - uint32_t filter_mask; -}; -#define WIFI_PROMISCUOUS_FILTER__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_promiscuous_filter__descriptor) \ - , 0 } - - -struct WifiCsiConfig -{ - ProtobufCMessage base; - /* - **< enable to receive legacy long training field(lltf) data. Default enabled - */ - protobuf_c_boolean lltf_en; - /* - **< enable to receive HT long training field(htltf) data. Default enabled - */ - protobuf_c_boolean htltf_en; - /* - **< enable to receive space time block code HT long training field(stbc-htltf2) data. Default enabled - */ - protobuf_c_boolean stbc_htltf2_en; - /* - **< enable to generate htlft data by averaging lltf and ht_ltf data when receiving HT packet. Otherwise, use ht_ltf data directly. Default enabled - */ - protobuf_c_boolean ltf_merge_en; - /* - **< enable to turn on channel filter to smooth adjacent sub-carrier. Disable it to keep independence of adjacent sub-carrier. Default enabled - */ - protobuf_c_boolean channel_filter_en; - /* - **< manually scale the CSI data by left shifting or automatically scale the CSI data. - *If set true, please set the shift bits. false: automatically. true: manually. Default false - */ - protobuf_c_boolean manu_scale; - /* - **< manually left shift bits of the scale of the CSI data. The range of the left shift bits is 0~15 - */ - uint32_t shift; -}; -#define WIFI_CSI_CONFIG__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_csi_config__descriptor) \ - , 0, 0, 0, 0, 0, 0, 0 } - - -struct WifiCsiInfo -{ - ProtobufCMessage base; - /* - **< received packet radio metadata header of the CSI data - */ - WifiPktRxCtrl *rx_ctrl; - /* - **< 6bits source MAC address of the CSI data - */ - ProtobufCBinaryData mac; - /* - **< 6bits destination MAC address of the CSI data - */ - ProtobufCBinaryData dmac; - /* - **< first four bytes of the CSI data is invalid or not - */ - protobuf_c_boolean first_word_invalid; - /* - **< Note: variable length. buffer of CSI data - */ - ProtobufCBinaryData buf; - /* - **< length of CSI data - */ - uint32_t len; -}; -#define WIFI_CSI_INFO__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_csi_info__descriptor) \ - , NULL, {0,NULL}, {0,NULL}, 0, {0,NULL}, 0 } - - -struct WifiAntGpio -{ - ProtobufCMessage base; - /* - **< 1bit Whether this GPIO is connected to external antenna switch - */ - uint32_t gpio_select; - /* - **< 7bits The GPIO number that connects to external antenna switch - */ - uint32_t gpio_num; -}; -#define WIFI_ANT_GPIO__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_ant_gpio__descriptor) \ - , 0, 0 } - - -struct WifiAntGpioConfig -{ - ProtobufCMessage base; - /* - **< The configurations of GPIOs that connect to external antenna switch - */ - size_t n_gpio_cfgs; - WifiAntGpio **gpio_cfgs; -}; -#define WIFI_ANT_GPIO_CONFIG__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_ant_gpio_config__descriptor) \ - , 0,NULL } - - -struct WifiAntConfig -{ - ProtobufCMessage base; - /* - **< WiFi antenna mode for receiving - */ - int32_t rx_ant_mode; - /* - **< Default antenna mode for receiving, it's ignored if rx_ant_mode is not WIFI_ANT_MODE_AUTO - */ - int32_t rx_ant_default; - /* - **< WiFi antenna mode for transmission, it can be set to WIFI_ANT_MODE_AUTO only if rx_ant_mode is set to WIFI_ANT_MODE_AUTO - */ - int32_t tx_ant_mode; - /* - **< 4bits Index (in antenna GPIO configuration) of enabled WIFI_ANT_MODE_ANT0 - */ - uint32_t enabled_ant0; - /* - **< 4bits Index (in antenna GPIO configuration) of enabled WIFI_ANT_MODE_ANT1 - */ - uint32_t enabled_ant1; -}; -#define WIFI_ANT_CONFIG__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_ant_config__descriptor) \ - , 0, 0, 0, 0, 0 } - - -struct WifiActionTxReq -{ - ProtobufCMessage base; - /* - **< WiFi interface to send request to - */ - int32_t ifx; - /* - **< 6bits Destination MAC address - */ - ProtobufCBinaryData dest_mac; - /* - **< Indicates no ack required - */ - protobuf_c_boolean no_ack; - /* - *TODO - *wifi_action_rx_cb_t rx_cb; **< Rx Callback to receive any response * - */ - /* - **< Length of the appended Data - */ - uint32_t data_len; - /* - **< note: variable length. Appended Data payload - */ - ProtobufCBinaryData data; -}; -#define WIFI_ACTION_TX_REQ__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_action_tx_req__descriptor) \ - , 0, {0,NULL}, 0, 0, {0,NULL} } - - -struct WifiFtmInitiatorCfg -{ - ProtobufCMessage base; - /* - **< 6bits MAC address of the FTM Responder - */ - ProtobufCBinaryData resp_mac; - /* - **< Primary channel of the FTM Responder - */ - uint32_t channel; - /* - **< No. of FTM frames requested in terms of 4 or 8 bursts (allowed values - 0(No pref), 16, 24, 32, 64) - */ - uint32_t frm_count; - /* - **< Requested time period between consecutive FTM bursts in 100's of milliseconds (0 - No pref) - */ - uint32_t burst_period; -}; -#define WIFI_FTM_INITIATOR_CFG__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_ftm_initiator_cfg__descriptor) \ - , {0,NULL}, 0, 0, 0 } - - -struct WifiEventStaScanDone -{ - ProtobufCMessage base; - /* - **< status of scanning APs: 0 — success, 1 - failure - */ - uint32_t status; - /* - **< number of scan results - */ - uint32_t number; - /* - **< scan sequence number, used for block scan - */ - uint32_t scan_id; -}; -#define WIFI_EVENT_STA_SCAN_DONE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_event_sta_scan_done__descriptor) \ - , 0, 0, 0 } - - -struct WifiEventStaConnected -{ - ProtobufCMessage base; - /* - **< 32bytes SSID of connected AP - */ - ProtobufCBinaryData ssid; - /* - **< SSID length of connected AP - */ - uint32_t ssid_len; - /* - **< 6bytes BSSID of connected AP - */ - ProtobufCBinaryData bssid; - /* - **< channel of connected AP - */ - uint32_t channel; - /* - **< authentication mode used by AP - */ - int32_t authmode; - /* - **< authentication id assigned by the connected AP - */ - int32_t aid; -}; -#define WIFI_EVENT_STA_CONNECTED__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_event_sta_connected__descriptor) \ - , {0,NULL}, 0, {0,NULL}, 0, 0, 0 } - - -struct WifiEventStaDisconnected -{ - ProtobufCMessage base; - /* - **< SSID of disconnected AP - */ - ProtobufCBinaryData ssid; - /* - **< SSID length of disconnected AP - */ - uint32_t ssid_len; - /* - **< BSSID of disconnected AP - */ - ProtobufCBinaryData bssid; - /* - **< reason of disconnection - */ - uint32_t reason; - /* - **< rssi of disconnection - */ - int32_t rssi; -}; -#define WIFI_EVENT_STA_DISCONNECTED__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_event_sta_disconnected__descriptor) \ - , {0,NULL}, 0, {0,NULL}, 0, 0 } - - -struct WifiEventStaAuthmodeChange -{ - ProtobufCMessage base; - /* - **< the old auth mode of AP - */ - int32_t old_mode; - /* - **< the new auth mode of AP - */ - int32_t new_mode; -}; -#define WIFI_EVENT_STA_AUTHMODE_CHANGE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_event_sta_authmode_change__descriptor) \ - , 0, 0 } - - -struct WifiEventStaWpsErPin -{ - ProtobufCMessage base; - /* - **< 8bytes PIN code of station in enrollee mode - */ - ProtobufCBinaryData pin_code; -}; -#define WIFI_EVENT_STA_WPS_ER_PIN__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_event_sta_wps_er_pin__descriptor) \ - , {0,NULL} } - - -struct ApCred -{ - ProtobufCMessage base; - /* - **< 32bytes SSID of AP - */ - ProtobufCBinaryData ssid; - /* - **< 64bytes Passphrase for the AP - */ - ProtobufCBinaryData passphrase; -}; -#define AP_CRED__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&ap_cred__descriptor) \ - , {0,NULL}, {0,NULL} } - - -struct WifiEventStaWpsErSuccess -{ - ProtobufCMessage base; - /* - **< Number of AP credentials received - */ - uint32_t ap_cred_cnt; - /* - **< All AP credentials received from WPS handshake - */ - size_t n_ap_creds; - ApCred **ap_creds; -}; -#define WIFI_EVENT_STA_WPS_ER_SUCCESS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_event_sta_wps_er_success__descriptor) \ - , 0, 0,NULL } - - -/* - ** Argument structure for WIFI_EVENT_AP_PROBEREQRECVED event - */ -struct WifiEventApProbeReqRx -{ - ProtobufCMessage base; - /* - **< Received probe request signal strength - */ - int32_t rssi; - /* - **< MAC address of the station which send probe request - */ - uint32_t mac; -}; -#define WIFI_EVENT_AP_PROBE_REQ_RX__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_event_ap_probe_req_rx__descriptor) \ - , 0, 0 } - - -/* - ** Argument structure for WIFI_EVENT_STA_BSS_RSSI_LOW event - */ -struct WifiEventBssRssiLow -{ - ProtobufCMessage base; - /* - **< RSSI value of bss - */ - int32_t rssi; -}; -#define WIFI_EVENT_BSS_RSSI_LOW__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_event_bss_rssi_low__descriptor) \ - , 0 } - - -struct WifiFtmReportEntry -{ - ProtobufCMessage base; - /* - * *< Dialog Token of the FTM frame - */ - uint32_t dlog_token; - /* - * *< RSSI of the FTM frame received - */ - int32_t rssi; - /* - * *< Round Trip Time in pSec with a peer - */ - uint32_t rtt; - /* - * TODO: uint32 is supported by proto? - */ - /* - * *< Time of departure of FTM frame from FTM Responder in pSec - */ - uint64_t t1; - /* - * *< Time of arrival of FTM frame at FTM Initiator in pSec - */ - uint64_t t2; - /* - * *< Time of departure of ACK from FTM Initiator in pSec - */ - uint64_t t3; - /* - * *< Time of arrival of ACK at FTM Responder in pSec - */ - uint64_t t4; -}; -#define WIFI_FTM_REPORT_ENTRY__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_ftm_report_entry__descriptor) \ - , 0, 0, 0, 0, 0, 0, 0 } - - -struct WifiEventFtmReport -{ - ProtobufCMessage base; - /* - * *< 6bytes MAC address of the FTM Peer - */ - ProtobufCBinaryData peer_mac; - /* - * *< Status of the FTM operation - */ - int32_t status; - /* - * *< Raw average Round-Trip-Time with peer in Nano-Seconds - */ - uint32_t rtt_raw; - /* - * *< Estimated Round-Trip-Time with peer in Nano-Seconds - */ - uint32_t rtt_est; - /* - * *< Estimated one-way distance in Centi-Meters - */ - uint32_t dist_est; - /* - * *< Note var len Pointer to FTM Report with multiple entries, should be freed after use - */ - size_t n_ftm_report_data; - WifiFtmReportEntry **ftm_report_data; - /* - * *< Number of entries in the FTM Report data - */ - uint32_t ftm_report_num_entries; -}; -#define WIFI_EVENT_FTM_REPORT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_event_ftm_report__descriptor) \ - , {0,NULL}, 0, 0, 0, 0, 0,NULL, 0 } - - -struct WifiEventActionTxStatus -{ - ProtobufCMessage base; - /* - **< WiFi interface to send request to - */ - int32_t ifx; - /* - **< Context to identify the request - */ - uint32_t context; - /* - **< 6bytes Destination MAC address - */ - ProtobufCBinaryData da; - /* - **< Status of the operation - */ - uint32_t status; -}; -#define WIFI_EVENT_ACTION_TX_STATUS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_event_action_tx_status__descriptor) \ - , 0, 0, {0,NULL}, 0 } - - -struct WifiEventRocDone -{ - ProtobufCMessage base; - /* - **< Context to identify the request - */ - uint32_t context; -}; -#define WIFI_EVENT_ROC_DONE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_event_roc_done__descriptor) \ - , 0 } - - -struct WifiEventApWpsRgPin -{ - ProtobufCMessage base; - /* - **< 8bytes PIN code of station in enrollee mode - */ - ProtobufCBinaryData pin_code; -}; -#define WIFI_EVENT_AP_WPS_RG_PIN__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_event_ap_wps_rg_pin__descriptor) \ - , {0,NULL} } - - -struct WifiEventApWpsRgFailReason -{ - ProtobufCMessage base; - /* - **< WPS failure reason wps_fail_reason_t - */ - int32_t reason; - /* - **< 6bytes Enrollee mac address - */ - ProtobufCBinaryData peer_macaddr; -}; -#define WIFI_EVENT_AP_WPS_RG_FAIL_REASON__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_event_ap_wps_rg_fail_reason__descriptor) \ - , 0, {0,NULL} } - - -struct WifiEventApWpsRgSuccess -{ - ProtobufCMessage base; - /* - **< 6bytes Enrollee mac address - */ - ProtobufCBinaryData peer_macaddr; -}; -#define WIFI_EVENT_AP_WPS_RG_SUCCESS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_event_ap_wps_rg_success__descriptor) \ - , {0,NULL} } - - -struct WifiProtocols -{ - ProtobufCMessage base; - /* - **< Represents 2.4 GHz protocol, support 802.11b or 802.11g or 802.11n or 802.11ax or LR mode - */ - uint32_t ghz_2g; - /* - **< Represents 5 GHz protocol, support 802.11a or 802.11n or 802.11ac or 802.11ax - */ - uint32_t ghz_5g; -}; -#define WIFI_PROTOCOLS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_protocols__descriptor) \ - , 0, 0 } - - -struct WifiBandwidths -{ - ProtobufCMessage base; - /* - * Represents 2.4 GHz bandwidth - */ - uint32_t ghz_2g; - /* - * Represents 5 GHz bandwidth - */ - uint32_t ghz_5g; -}; -#define WIFI_BANDWIDTHS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_bandwidths__descriptor) \ - , 0, 0 } - - -struct ConnectedSTAList -{ - ProtobufCMessage base; - ProtobufCBinaryData mac; - int32_t rssi; -}; -#define CONNECTED_STALIST__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&connected_stalist__descriptor) \ - , {0,NULL}, 0 } - - -/* - ** Req/Resp structure * - */ -struct RpcReqGetMacAddress -{ - ProtobufCMessage base; - int32_t mode; -}; -#define RPC__REQ__GET_MAC_ADDRESS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__get_mac_address__descriptor) \ - , 0 } - - -struct RpcRespGetMacAddress -{ - ProtobufCMessage base; - ProtobufCBinaryData mac; - int32_t resp; -}; -#define RPC__RESP__GET_MAC_ADDRESS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__get_mac_address__descriptor) \ - , {0,NULL}, 0 } - - -struct RpcReqGetMode -{ - ProtobufCMessage base; -}; -#define RPC__REQ__GET_MODE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__get_mode__descriptor) \ - } - - -struct RpcRespGetMode -{ - ProtobufCMessage base; - int32_t mode; - int32_t resp; -}; -#define RPC__RESP__GET_MODE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__get_mode__descriptor) \ - , 0, 0 } - - -struct RpcReqSetMode -{ - ProtobufCMessage base; - int32_t mode; -}; -#define RPC__REQ__SET_MODE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__set_mode__descriptor) \ - , 0 } - - -struct RpcRespSetMode -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__SET_MODE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__set_mode__descriptor) \ - , 0 } - - -struct RpcReqGetPs -{ - ProtobufCMessage base; -}; -#define RPC__REQ__GET_PS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__get_ps__descriptor) \ - } - - -struct RpcRespGetPs -{ - ProtobufCMessage base; - int32_t resp; - int32_t type; -}; -#define RPC__RESP__GET_PS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__get_ps__descriptor) \ - , 0, 0 } - - -struct RpcReqSetPs -{ - ProtobufCMessage base; - int32_t type; -}; -#define RPC__REQ__SET_PS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__set_ps__descriptor) \ - , 0 } - - -struct RpcRespSetPs -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__SET_PS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__set_ps__descriptor) \ - , 0 } - - -struct RpcReqSetMacAddress -{ - ProtobufCMessage base; - ProtobufCBinaryData mac; - int32_t mode; -}; -#define RPC__REQ__SET_MAC_ADDRESS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__set_mac_address__descriptor) \ - , {0,NULL}, 0 } - - -struct RpcRespSetMacAddress -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__SET_MAC_ADDRESS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__set_mac_address__descriptor) \ - , 0 } - - -struct RpcReqOTABegin -{ - ProtobufCMessage base; -}; -#define RPC__REQ__OTABEGIN__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__otabegin__descriptor) \ - } - - -struct RpcRespOTABegin -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__OTABEGIN__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__otabegin__descriptor) \ - , 0 } - - -struct RpcReqOTAWrite -{ - ProtobufCMessage base; - ProtobufCBinaryData ota_data; -}; -#define RPC__REQ__OTAWRITE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__otawrite__descriptor) \ - , {0,NULL} } - - -struct RpcRespOTAWrite -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__OTAWRITE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__otawrite__descriptor) \ - , 0 } - - -struct RpcReqOTAEnd -{ - ProtobufCMessage base; -}; -#define RPC__REQ__OTAEND__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__otaend__descriptor) \ - } - - -struct RpcRespOTAEnd -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__OTAEND__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__otaend__descriptor) \ - , 0 } - - -struct RpcReqWifiSetMaxTxPower -{ - ProtobufCMessage base; - int32_t power; -}; -#define RPC__REQ__WIFI_SET_MAX_TX_POWER__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_max_tx_power__descriptor) \ - , 0 } - - -struct RpcRespWifiSetMaxTxPower -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_SET_MAX_TX_POWER__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_max_tx_power__descriptor) \ - , 0 } - - -struct RpcReqWifiGetMaxTxPower -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_GET_MAX_TX_POWER__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_max_tx_power__descriptor) \ - } - - -struct RpcRespWifiGetMaxTxPower -{ - ProtobufCMessage base; - int32_t power; - int32_t resp; -}; -#define RPC__RESP__WIFI_GET_MAX_TX_POWER__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_max_tx_power__descriptor) \ - , 0, 0 } - - -struct RpcReqConfigHeartbeat -{ - ProtobufCMessage base; - protobuf_c_boolean enable; - int32_t duration; -}; -#define RPC__REQ__CONFIG_HEARTBEAT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__config_heartbeat__descriptor) \ - , 0, 0 } - - -struct RpcRespConfigHeartbeat -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__CONFIG_HEARTBEAT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__config_heartbeat__descriptor) \ - , 0 } - - -struct RpcReqWifiInit -{ - ProtobufCMessage base; - WifiInitConfig *cfg; -}; -#define RPC__REQ__WIFI_INIT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_init__descriptor) \ - , NULL } - - -struct RpcRespWifiInit -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_INIT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_init__descriptor) \ - , 0 } - - -struct RpcReqWifiDeinit -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_DEINIT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_deinit__descriptor) \ - } - - -struct RpcRespWifiDeinit -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_DEINIT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_deinit__descriptor) \ - , 0 } - - -struct RpcReqWifiSetConfig -{ - ProtobufCMessage base; - int32_t iface; - WifiConfig *cfg; -}; -#define RPC__REQ__WIFI_SET_CONFIG__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_config__descriptor) \ - , 0, NULL } - - -struct RpcRespWifiSetConfig -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_SET_CONFIG__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_config__descriptor) \ - , 0 } - - -struct RpcReqWifiGetConfig -{ - ProtobufCMessage base; - int32_t iface; -}; -#define RPC__REQ__WIFI_GET_CONFIG__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_config__descriptor) \ - , 0 } - - -struct RpcRespWifiGetConfig -{ - ProtobufCMessage base; - int32_t resp; - int32_t iface; - WifiConfig *cfg; -}; -#define RPC__RESP__WIFI_GET_CONFIG__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_config__descriptor) \ - , 0, 0, NULL } - - -struct RpcReqWifiConnect -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_CONNECT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_connect__descriptor) \ - } - - -struct RpcRespWifiConnect -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_CONNECT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_connect__descriptor) \ - , 0 } - - -struct RpcReqWifiDisconnect -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_DISCONNECT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_disconnect__descriptor) \ - } - - -struct RpcRespWifiDisconnect -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_DISCONNECT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_disconnect__descriptor) \ - , 0 } - - -struct RpcReqWifiStart -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_START__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_start__descriptor) \ - } - - -struct RpcRespWifiStart -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_START__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_start__descriptor) \ - , 0 } - - -struct RpcReqWifiStop -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_STOP__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_stop__descriptor) \ - } - - -struct RpcRespWifiStop -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_STOP__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_stop__descriptor) \ - , 0 } - - -struct RpcReqWifiScanStart -{ - ProtobufCMessage base; - WifiScanConfig *config; - protobuf_c_boolean block; - int32_t config_set; -}; -#define RPC__REQ__WIFI_SCAN_START__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_scan_start__descriptor) \ - , NULL, 0, 0 } - - -struct RpcRespWifiScanStart -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_SCAN_START__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_scan_start__descriptor) \ - , 0 } - - -struct RpcReqWifiScanStop -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_SCAN_STOP__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_scan_stop__descriptor) \ - } - - -struct RpcRespWifiScanStop -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_SCAN_STOP__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_scan_stop__descriptor) \ - , 0 } - - -struct RpcReqWifiScanGetApNum -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_SCAN_GET_AP_NUM__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_scan_get_ap_num__descriptor) \ - } - - -struct RpcRespWifiScanGetApNum -{ - ProtobufCMessage base; - int32_t resp; - int32_t number; -}; -#define RPC__RESP__WIFI_SCAN_GET_AP_NUM__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_scan_get_ap_num__descriptor) \ - , 0, 0 } - - -struct RpcReqWifiScanGetApRecords -{ - ProtobufCMessage base; - int32_t number; -}; -#define RPC__REQ__WIFI_SCAN_GET_AP_RECORDS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_scan_get_ap_records__descriptor) \ - , 0 } - - -struct RpcRespWifiScanGetApRecords -{ - ProtobufCMessage base; - int32_t resp; - int32_t number; - size_t n_ap_records; - WifiApRecord **ap_records; -}; -#define RPC__RESP__WIFI_SCAN_GET_AP_RECORDS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_scan_get_ap_records__descriptor) \ - , 0, 0, 0,NULL } - - -struct RpcReqWifiScanGetApRecord -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_SCAN_GET_AP_RECORD__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_scan_get_ap_record__descriptor) \ - } - - -struct RpcRespWifiScanGetApRecord -{ - ProtobufCMessage base; - int32_t resp; - WifiApRecord *ap_record; -}; -#define RPC__RESP__WIFI_SCAN_GET_AP_RECORD__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_scan_get_ap_record__descriptor) \ - , 0, NULL } - - -struct RpcReqWifiClearApList -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_CLEAR_AP_LIST__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_clear_ap_list__descriptor) \ - } - - -struct RpcRespWifiClearApList -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_CLEAR_AP_LIST__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_clear_ap_list__descriptor) \ - , 0 } - - -struct RpcReqWifiRestore -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_RESTORE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_restore__descriptor) \ - } - - -struct RpcRespWifiRestore -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_RESTORE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_restore__descriptor) \ - , 0 } - - -struct RpcReqWifiClearFastConnect -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_CLEAR_FAST_CONNECT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_clear_fast_connect__descriptor) \ - } - - -struct RpcRespWifiClearFastConnect -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_CLEAR_FAST_CONNECT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_clear_fast_connect__descriptor) \ - , 0 } - - -struct RpcReqWifiDeauthSta -{ - ProtobufCMessage base; - int32_t aid; -}; -#define RPC__REQ__WIFI_DEAUTH_STA__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_deauth_sta__descriptor) \ - , 0 } - - -struct RpcRespWifiDeauthSta -{ - ProtobufCMessage base; - int32_t resp; - int32_t aid; -}; -#define RPC__RESP__WIFI_DEAUTH_STA__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_deauth_sta__descriptor) \ - , 0, 0 } - - -struct RpcReqWifiStaGetApInfo -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_STA_GET_AP_INFO__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_sta_get_ap_info__descriptor) \ - } - - -struct RpcRespWifiStaGetApInfo -{ - ProtobufCMessage base; - int32_t resp; - WifiApRecord *ap_record; -}; -#define RPC__RESP__WIFI_STA_GET_AP_INFO__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_sta_get_ap_info__descriptor) \ - , 0, NULL } - - -struct RpcReqWifiSetProtocol -{ - ProtobufCMessage base; - int32_t ifx; - int32_t protocol_bitmap; -}; -#define RPC__REQ__WIFI_SET_PROTOCOL__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_protocol__descriptor) \ - , 0, 0 } - - -struct RpcRespWifiSetProtocol -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_SET_PROTOCOL__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_protocol__descriptor) \ - , 0 } - - -struct RpcReqWifiGetProtocol -{ - ProtobufCMessage base; - int32_t ifx; -}; -#define RPC__REQ__WIFI_GET_PROTOCOL__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_protocol__descriptor) \ - , 0 } - - -struct RpcRespWifiGetProtocol -{ - ProtobufCMessage base; - int32_t resp; - int32_t protocol_bitmap; -}; -#define RPC__RESP__WIFI_GET_PROTOCOL__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_protocol__descriptor) \ - , 0, 0 } - - -struct RpcReqWifiSetBandwidth -{ - ProtobufCMessage base; - int32_t ifx; - int32_t bw; -}; -#define RPC__REQ__WIFI_SET_BANDWIDTH__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_bandwidth__descriptor) \ - , 0, 0 } - - -struct RpcRespWifiSetBandwidth -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_SET_BANDWIDTH__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_bandwidth__descriptor) \ - , 0 } - - -struct RpcReqWifiGetBandwidth -{ - ProtobufCMessage base; - int32_t ifx; -}; -#define RPC__REQ__WIFI_GET_BANDWIDTH__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_bandwidth__descriptor) \ - , 0 } - - -struct RpcRespWifiGetBandwidth -{ - ProtobufCMessage base; - int32_t resp; - int32_t bw; -}; -#define RPC__RESP__WIFI_GET_BANDWIDTH__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_bandwidth__descriptor) \ - , 0, 0 } - - -struct RpcReqWifiSetChannel -{ - ProtobufCMessage base; - int32_t primary; - int32_t second; -}; -#define RPC__REQ__WIFI_SET_CHANNEL__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_channel__descriptor) \ - , 0, 0 } - - -struct RpcRespWifiSetChannel -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_SET_CHANNEL__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_channel__descriptor) \ - , 0 } - - -struct RpcReqWifiGetChannel -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_GET_CHANNEL__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_channel__descriptor) \ - } - - -struct RpcRespWifiGetChannel -{ - ProtobufCMessage base; - int32_t resp; - int32_t primary; - int32_t second; -}; -#define RPC__RESP__WIFI_GET_CHANNEL__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_channel__descriptor) \ - , 0, 0, 0 } - - -struct RpcReqWifiSetStorage -{ - ProtobufCMessage base; - int32_t storage; -}; -#define RPC__REQ__WIFI_SET_STORAGE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_storage__descriptor) \ - , 0 } - - -struct RpcRespWifiSetStorage -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_SET_STORAGE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_storage__descriptor) \ - , 0 } - - -struct RpcReqWifiSetCountryCode -{ - ProtobufCMessage base; - ProtobufCBinaryData country; - protobuf_c_boolean ieee80211d_enabled; -}; -#define RPC__REQ__WIFI_SET_COUNTRY_CODE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_country_code__descriptor) \ - , {0,NULL}, 0 } - - -struct RpcRespWifiSetCountryCode -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_SET_COUNTRY_CODE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_country_code__descriptor) \ - , 0 } - - -struct RpcReqWifiGetCountryCode -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_GET_COUNTRY_CODE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_country_code__descriptor) \ - } - - -struct RpcRespWifiGetCountryCode -{ - ProtobufCMessage base; - int32_t resp; - ProtobufCBinaryData country; -}; -#define RPC__RESP__WIFI_GET_COUNTRY_CODE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_country_code__descriptor) \ - , 0, {0,NULL} } - - -struct RpcReqWifiSetCountry -{ - ProtobufCMessage base; - WifiCountry *country; -}; -#define RPC__REQ__WIFI_SET_COUNTRY__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_country__descriptor) \ - , NULL } - - -struct RpcRespWifiSetCountry -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_SET_COUNTRY__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_country__descriptor) \ - , 0 } - - -struct RpcReqWifiGetCountry -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_GET_COUNTRY__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_country__descriptor) \ - } - - -struct RpcRespWifiGetCountry -{ - ProtobufCMessage base; - int32_t resp; - WifiCountry *country; -}; -#define RPC__RESP__WIFI_GET_COUNTRY__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_country__descriptor) \ - , 0, NULL } - - -struct RpcReqWifiApGetStaList -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_AP_GET_STA_LIST__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_ap_get_sta_list__descriptor) \ - } - - -struct RpcRespWifiApGetStaList -{ - ProtobufCMessage base; - int32_t resp; - WifiStaList *sta_list; -}; -#define RPC__RESP__WIFI_AP_GET_STA_LIST__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_ap_get_sta_list__descriptor) \ - , 0, NULL } - - -struct RpcReqWifiApGetStaAid -{ - ProtobufCMessage base; - ProtobufCBinaryData mac; -}; -#define RPC__REQ__WIFI_AP_GET_STA_AID__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_ap_get_sta_aid__descriptor) \ - , {0,NULL} } - - -struct RpcReqWifiStaGetNegotiatedPhymode -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_STA_GET_NEGOTIATED_PHYMODE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_sta_get_negotiated_phymode__descriptor) \ - } - - -struct RpcRespWifiStaGetNegotiatedPhymode -{ - ProtobufCMessage base; - int32_t resp; - uint32_t phymode; -}; -#define RPC__RESP__WIFI_STA_GET_NEGOTIATED_PHYMODE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_sta_get_negotiated_phymode__descriptor) \ - , 0, 0 } - - -struct RpcRespWifiApGetStaAid -{ - ProtobufCMessage base; - int32_t resp; - uint32_t aid; -}; -#define RPC__RESP__WIFI_AP_GET_STA_AID__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_ap_get_sta_aid__descriptor) \ - , 0, 0 } - - -struct RpcReqWifiStaGetRssi -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_STA_GET_RSSI__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_sta_get_rssi__descriptor) \ - } - - -struct RpcRespWifiStaGetRssi -{ - ProtobufCMessage base; - int32_t resp; - int32_t rssi; -}; -#define RPC__RESP__WIFI_STA_GET_RSSI__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_sta_get_rssi__descriptor) \ - , 0, 0 } - - -struct RpcReqWifiStaGetAid -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_STA_GET_AID__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_sta_get_aid__descriptor) \ - } - - -struct RpcRespWifiStaGetAid -{ - ProtobufCMessage base; - int32_t resp; - uint32_t aid; -}; -#define RPC__RESP__WIFI_STA_GET_AID__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_sta_get_aid__descriptor) \ - , 0, 0 } - - -struct RpcReqWifiSetProtocols -{ - ProtobufCMessage base; - int32_t ifx; - WifiProtocols *protocols; -}; -#define RPC__REQ__WIFI_SET_PROTOCOLS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_protocols__descriptor) \ - , 0, NULL } - - -struct RpcRespWifiSetProtocols -{ - ProtobufCMessage base; - int32_t resp; - uint32_t ifx; -}; -#define RPC__RESP__WIFI_SET_PROTOCOLS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_protocols__descriptor) \ - , 0, 0 } - - -struct RpcReqWifiGetProtocols -{ - ProtobufCMessage base; - int32_t ifx; -}; -#define RPC__REQ__WIFI_GET_PROTOCOLS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_protocols__descriptor) \ - , 0 } - - -struct RpcRespWifiGetProtocols -{ - ProtobufCMessage base; - int32_t resp; - int32_t ifx; - WifiProtocols *protocols; -}; -#define RPC__RESP__WIFI_GET_PROTOCOLS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_protocols__descriptor) \ - , 0, 0, NULL } - - -struct RpcReqWifiSetBandwidths -{ - ProtobufCMessage base; - int32_t ifx; - WifiBandwidths *bandwidths; -}; -#define RPC__REQ__WIFI_SET_BANDWIDTHS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_bandwidths__descriptor) \ - , 0, NULL } - - -struct RpcRespWifiSetBandwidths -{ - ProtobufCMessage base; - int32_t resp; - int32_t ifx; -}; -#define RPC__RESP__WIFI_SET_BANDWIDTHS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_bandwidths__descriptor) \ - , 0, 0 } - - -struct RpcReqWifiGetBandwidths -{ - ProtobufCMessage base; - int32_t ifx; -}; -#define RPC__REQ__WIFI_GET_BANDWIDTHS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_bandwidths__descriptor) \ - , 0 } - - -struct RpcRespWifiGetBandwidths -{ - ProtobufCMessage base; - int32_t resp; - int32_t ifx; - WifiBandwidths *bandwidths; -}; -#define RPC__RESP__WIFI_GET_BANDWIDTHS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_bandwidths__descriptor) \ - , 0, 0, NULL } - - -struct RpcReqWifiSetBand -{ - ProtobufCMessage base; - uint32_t band; -}; -#define RPC__REQ__WIFI_SET_BAND__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_band__descriptor) \ - , 0 } - - -struct RpcRespWifiSetBand -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_SET_BAND__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_band__descriptor) \ - , 0 } - - -struct RpcReqWifiGetBand -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_GET_BAND__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_band__descriptor) \ - } - - -struct RpcRespWifiGetBand -{ - ProtobufCMessage base; - int32_t resp; - uint32_t band; -}; -#define RPC__RESP__WIFI_GET_BAND__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_band__descriptor) \ - , 0, 0 } - - -struct RpcReqWifiSetBandMode -{ - ProtobufCMessage base; - uint32_t bandmode; -}; -#define RPC__REQ__WIFI_SET_BAND_MODE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_band_mode__descriptor) \ - , 0 } - - -struct RpcRespWifiSetBandMode -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_SET_BAND_MODE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_band_mode__descriptor) \ - , 0 } - - -struct RpcReqWifiGetBandMode -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_GET_BAND_MODE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_band_mode__descriptor) \ - } - - -struct RpcRespWifiGetBandMode -{ - ProtobufCMessage base; - int32_t resp; - uint32_t bandmode; -}; -#define RPC__RESP__WIFI_GET_BAND_MODE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_band_mode__descriptor) \ - , 0, 0 } - - -struct RpcReqGetCoprocessorFwVersion -{ - ProtobufCMessage base; -}; -#define RPC__REQ__GET_COPROCESSOR_FW_VERSION__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__get_coprocessor_fw_version__descriptor) \ - } - - -struct RpcRespGetCoprocessorFwVersion -{ - ProtobufCMessage base; - int32_t resp; - uint32_t major1; - uint32_t minor1; - uint32_t patch1; -}; -#define RPC__RESP__GET_COPROCESSOR_FW_VERSION__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__get_coprocessor_fw_version__descriptor) \ - , 0, 0, 0, 0 } - - -struct RpcEventWifiEventNoArgs -{ - ProtobufCMessage base; - int32_t resp; - int32_t event_id; -}; -#define RPC__EVENT__WIFI_EVENT_NO_ARGS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__event__wifi_event_no_args__descriptor) \ - , 0, 0 } - - -struct RpcEventESPInit -{ - ProtobufCMessage base; - ProtobufCBinaryData init_data; -}; -#define RPC__EVENT__ESPINIT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__event__espinit__descriptor) \ - , {0,NULL} } - - -struct RpcEventHeartbeat -{ - ProtobufCMessage base; - int32_t hb_num; -}; -#define RPC__EVENT__HEARTBEAT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__event__heartbeat__descriptor) \ - , 0 } - - -struct RpcEventAPStaDisconnected -{ - ProtobufCMessage base; - int32_t resp; - ProtobufCBinaryData mac; - uint32_t aid; - protobuf_c_boolean is_mesh_child; - uint32_t reason; -}; -#define RPC__EVENT__AP__STA_DISCONNECTED__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__event__ap__sta_disconnected__descriptor) \ - , 0, {0,NULL}, 0, 0, 0 } - - -struct RpcEventAPStaConnected -{ - ProtobufCMessage base; - int32_t resp; - ProtobufCBinaryData mac; - uint32_t aid; - protobuf_c_boolean is_mesh_child; -}; -#define RPC__EVENT__AP__STA_CONNECTED__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__event__ap__sta_connected__descriptor) \ - , 0, {0,NULL}, 0, 0 } - - -struct RpcEventStaScanDone -{ - ProtobufCMessage base; - int32_t resp; - WifiEventStaScanDone *scan_done; -}; -#define RPC__EVENT__STA_SCAN_DONE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__event__sta_scan_done__descriptor) \ - , 0, NULL } - - -struct RpcEventStaConnected -{ - ProtobufCMessage base; - int32_t resp; - WifiEventStaConnected *sta_connected; -}; -#define RPC__EVENT__STA_CONNECTED__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__event__sta_connected__descriptor) \ - , 0, NULL } - - -struct RpcEventStaDisconnected -{ - ProtobufCMessage base; - int32_t resp; - WifiEventStaDisconnected *sta_disconnected; -}; -#define RPC__EVENT__STA_DISCONNECTED__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__event__sta_disconnected__descriptor) \ - , 0, NULL } - - -typedef enum { - RPC__PAYLOAD__NOT_SET = 0, - RPC__PAYLOAD_REQ_GET_MAC_ADDRESS = 257, - RPC__PAYLOAD_REQ_SET_MAC_ADDRESS = 258, - RPC__PAYLOAD_REQ_GET_WIFI_MODE = 259, - RPC__PAYLOAD_REQ_SET_WIFI_MODE = 260, - RPC__PAYLOAD_REQ_WIFI_SET_PS = 270, - RPC__PAYLOAD_REQ_WIFI_GET_PS = 271, - RPC__PAYLOAD_REQ_OTA_BEGIN = 272, - RPC__PAYLOAD_REQ_OTA_WRITE = 273, - RPC__PAYLOAD_REQ_OTA_END = 274, - RPC__PAYLOAD_REQ_SET_WIFI_MAX_TX_POWER = 275, - RPC__PAYLOAD_REQ_GET_WIFI_MAX_TX_POWER = 276, - RPC__PAYLOAD_REQ_CONFIG_HEARTBEAT = 277, - RPC__PAYLOAD_REQ_WIFI_INIT = 278, - RPC__PAYLOAD_REQ_WIFI_DEINIT = 279, - RPC__PAYLOAD_REQ_WIFI_START = 280, - RPC__PAYLOAD_REQ_WIFI_STOP = 281, - RPC__PAYLOAD_REQ_WIFI_CONNECT = 282, - RPC__PAYLOAD_REQ_WIFI_DISCONNECT = 283, - RPC__PAYLOAD_REQ_WIFI_SET_CONFIG = 284, - RPC__PAYLOAD_REQ_WIFI_GET_CONFIG = 285, - RPC__PAYLOAD_REQ_WIFI_SCAN_START = 286, - RPC__PAYLOAD_REQ_WIFI_SCAN_STOP = 287, - RPC__PAYLOAD_REQ_WIFI_SCAN_GET_AP_NUM = 288, - RPC__PAYLOAD_REQ_WIFI_SCAN_GET_AP_RECORDS = 289, - RPC__PAYLOAD_REQ_WIFI_CLEAR_AP_LIST = 290, - RPC__PAYLOAD_REQ_WIFI_RESTORE = 291, - RPC__PAYLOAD_REQ_WIFI_CLEAR_FAST_CONNECT = 292, - RPC__PAYLOAD_REQ_WIFI_DEAUTH_STA = 293, - RPC__PAYLOAD_REQ_WIFI_STA_GET_AP_INFO = 294, - RPC__PAYLOAD_REQ_WIFI_SET_PROTOCOL = 297, - RPC__PAYLOAD_REQ_WIFI_GET_PROTOCOL = 298, - RPC__PAYLOAD_REQ_WIFI_SET_BANDWIDTH = 299, - RPC__PAYLOAD_REQ_WIFI_GET_BANDWIDTH = 300, - RPC__PAYLOAD_REQ_WIFI_SET_CHANNEL = 301, - RPC__PAYLOAD_REQ_WIFI_GET_CHANNEL = 302, - RPC__PAYLOAD_REQ_WIFI_SET_COUNTRY = 303, - RPC__PAYLOAD_REQ_WIFI_GET_COUNTRY = 304, - RPC__PAYLOAD_REQ_WIFI_AP_GET_STA_LIST = 311, - RPC__PAYLOAD_REQ_WIFI_AP_GET_STA_AID = 312, - RPC__PAYLOAD_REQ_WIFI_SET_STORAGE = 313, - RPC__PAYLOAD_REQ_WIFI_SET_COUNTRY_CODE = 334, - RPC__PAYLOAD_REQ_WIFI_GET_COUNTRY_CODE = 335, - RPC__PAYLOAD_REQ_WIFI_STA_GET_AID = 338, - RPC__PAYLOAD_REQ_WIFI_STA_GET_NEGOTIATED_PHYMODE = 339, - RPC__PAYLOAD_REQ_WIFI_STA_GET_RSSI = 341, - RPC__PAYLOAD_REQ_WIFI_SET_PROTOCOLS = 342, - RPC__PAYLOAD_REQ_WIFI_GET_PROTOCOLS = 343, - RPC__PAYLOAD_REQ_WIFI_SET_BANDWIDTHS = 344, - RPC__PAYLOAD_REQ_WIFI_GET_BANDWIDTHS = 345, - RPC__PAYLOAD_REQ_WIFI_SET_BAND = 346, - RPC__PAYLOAD_REQ_WIFI_GET_BAND = 347, - RPC__PAYLOAD_REQ_WIFI_SET_BANDMODE = 348, - RPC__PAYLOAD_REQ_WIFI_GET_BANDMODE = 349, - RPC__PAYLOAD_REQ_GET_COPROCESSOR_FWVERSION = 350, - RPC__PAYLOAD_REQ_WIFI_SCAN_GET_AP_RECORD = 351, - RPC__PAYLOAD_RESP_GET_MAC_ADDRESS = 513, - RPC__PAYLOAD_RESP_SET_MAC_ADDRESS = 514, - RPC__PAYLOAD_RESP_GET_WIFI_MODE = 515, - RPC__PAYLOAD_RESP_SET_WIFI_MODE = 516, - RPC__PAYLOAD_RESP_WIFI_SET_PS = 526, - RPC__PAYLOAD_RESP_WIFI_GET_PS = 527, - RPC__PAYLOAD_RESP_OTA_BEGIN = 528, - RPC__PAYLOAD_RESP_OTA_WRITE = 529, - RPC__PAYLOAD_RESP_OTA_END = 530, - RPC__PAYLOAD_RESP_SET_WIFI_MAX_TX_POWER = 531, - RPC__PAYLOAD_RESP_GET_WIFI_MAX_TX_POWER = 532, - RPC__PAYLOAD_RESP_CONFIG_HEARTBEAT = 533, - RPC__PAYLOAD_RESP_WIFI_INIT = 534, - RPC__PAYLOAD_RESP_WIFI_DEINIT = 535, - RPC__PAYLOAD_RESP_WIFI_START = 536, - RPC__PAYLOAD_RESP_WIFI_STOP = 537, - RPC__PAYLOAD_RESP_WIFI_CONNECT = 538, - RPC__PAYLOAD_RESP_WIFI_DISCONNECT = 539, - RPC__PAYLOAD_RESP_WIFI_SET_CONFIG = 540, - RPC__PAYLOAD_RESP_WIFI_GET_CONFIG = 541, - RPC__PAYLOAD_RESP_WIFI_SCAN_START = 542, - RPC__PAYLOAD_RESP_WIFI_SCAN_STOP = 543, - RPC__PAYLOAD_RESP_WIFI_SCAN_GET_AP_NUM = 544, - RPC__PAYLOAD_RESP_WIFI_SCAN_GET_AP_RECORDS = 545, - RPC__PAYLOAD_RESP_WIFI_CLEAR_AP_LIST = 546, - RPC__PAYLOAD_RESP_WIFI_RESTORE = 547, - RPC__PAYLOAD_RESP_WIFI_CLEAR_FAST_CONNECT = 548, - RPC__PAYLOAD_RESP_WIFI_DEAUTH_STA = 549, - RPC__PAYLOAD_RESP_WIFI_STA_GET_AP_INFO = 550, - RPC__PAYLOAD_RESP_WIFI_SET_PROTOCOL = 553, - RPC__PAYLOAD_RESP_WIFI_GET_PROTOCOL = 554, - RPC__PAYLOAD_RESP_WIFI_SET_BANDWIDTH = 555, - RPC__PAYLOAD_RESP_WIFI_GET_BANDWIDTH = 556, - RPC__PAYLOAD_RESP_WIFI_SET_CHANNEL = 557, - RPC__PAYLOAD_RESP_WIFI_GET_CHANNEL = 558, - RPC__PAYLOAD_RESP_WIFI_SET_COUNTRY = 559, - RPC__PAYLOAD_RESP_WIFI_GET_COUNTRY = 560, - RPC__PAYLOAD_RESP_WIFI_AP_GET_STA_LIST = 567, - RPC__PAYLOAD_RESP_WIFI_AP_GET_STA_AID = 568, - RPC__PAYLOAD_RESP_WIFI_SET_STORAGE = 569, - RPC__PAYLOAD_RESP_WIFI_SET_COUNTRY_CODE = 590, - RPC__PAYLOAD_RESP_WIFI_GET_COUNTRY_CODE = 591, - RPC__PAYLOAD_RESP_WIFI_STA_GET_AID = 594, - RPC__PAYLOAD_RESP_WIFI_STA_GET_NEGOTIATED_PHYMODE = 595, - RPC__PAYLOAD_RESP_WIFI_STA_GET_RSSI = 597, - RPC__PAYLOAD_RESP_WIFI_SET_PROTOCOLS = 598, - RPC__PAYLOAD_RESP_WIFI_GET_PROTOCOLS = 599, - RPC__PAYLOAD_RESP_WIFI_SET_BANDWIDTHS = 600, - RPC__PAYLOAD_RESP_WIFI_GET_BANDWIDTHS = 601, - RPC__PAYLOAD_RESP_WIFI_SET_BAND = 602, - RPC__PAYLOAD_RESP_WIFI_GET_BAND = 603, - RPC__PAYLOAD_RESP_WIFI_SET_BANDMODE = 604, - RPC__PAYLOAD_RESP_WIFI_GET_BANDMODE = 605, - RPC__PAYLOAD_RESP_GET_COPROCESSOR_FWVERSION = 606, - RPC__PAYLOAD_RESP_WIFI_SCAN_GET_AP_RECORD = 607, - RPC__PAYLOAD_EVENT_ESP_INIT = 769, - RPC__PAYLOAD_EVENT_HEARTBEAT = 770, - RPC__PAYLOAD_EVENT_AP_STA_CONNECTED = 771, - RPC__PAYLOAD_EVENT_AP_STA_DISCONNECTED = 772, - RPC__PAYLOAD_EVENT_WIFI_EVENT_NO_ARGS = 773, - RPC__PAYLOAD_EVENT_STA_SCAN_DONE = 774, - RPC__PAYLOAD_EVENT_STA_CONNECTED = 775, - RPC__PAYLOAD_EVENT_STA_DISCONNECTED = 776 - PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RPC__PAYLOAD__CASE) -} Rpc__PayloadCase; - -struct Rpc -{ - ProtobufCMessage base; - /* - * msg_type could be req, resp or Event - */ - RpcType msg_type; - /* - * msg id - */ - RpcId msg_id; - /* - * UID of message - */ - uint32_t uid; - Rpc__PayloadCase payload_case; - union { - /* - ** Requests * - */ - RpcReqGetMacAddress *req_get_mac_address; - RpcReqSetMacAddress *req_set_mac_address; - RpcReqGetMode *req_get_wifi_mode; - RpcReqSetMode *req_set_wifi_mode; - RpcReqSetPs *req_wifi_set_ps; - RpcReqGetPs *req_wifi_get_ps; - RpcReqOTABegin *req_ota_begin; - RpcReqOTAWrite *req_ota_write; - RpcReqOTAEnd *req_ota_end; - RpcReqWifiSetMaxTxPower *req_set_wifi_max_tx_power; - RpcReqWifiGetMaxTxPower *req_get_wifi_max_tx_power; - RpcReqConfigHeartbeat *req_config_heartbeat; - RpcReqWifiInit *req_wifi_init; - RpcReqWifiDeinit *req_wifi_deinit; - RpcReqWifiStart *req_wifi_start; - RpcReqWifiStop *req_wifi_stop; - RpcReqWifiConnect *req_wifi_connect; - RpcReqWifiDisconnect *req_wifi_disconnect; - RpcReqWifiSetConfig *req_wifi_set_config; - RpcReqWifiGetConfig *req_wifi_get_config; - RpcReqWifiScanStart *req_wifi_scan_start; - RpcReqWifiScanStop *req_wifi_scan_stop; - RpcReqWifiScanGetApNum *req_wifi_scan_get_ap_num; - RpcReqWifiScanGetApRecords *req_wifi_scan_get_ap_records; - RpcReqWifiClearApList *req_wifi_clear_ap_list; - RpcReqWifiRestore *req_wifi_restore; - RpcReqWifiClearFastConnect *req_wifi_clear_fast_connect; - RpcReqWifiDeauthSta *req_wifi_deauth_sta; - RpcReqWifiStaGetApInfo *req_wifi_sta_get_ap_info; - RpcReqWifiSetProtocol *req_wifi_set_protocol; - RpcReqWifiGetProtocol *req_wifi_get_protocol; - RpcReqWifiSetBandwidth *req_wifi_set_bandwidth; - RpcReqWifiGetBandwidth *req_wifi_get_bandwidth; - RpcReqWifiSetChannel *req_wifi_set_channel; - RpcReqWifiGetChannel *req_wifi_get_channel; - RpcReqWifiSetCountry *req_wifi_set_country; - RpcReqWifiGetCountry *req_wifi_get_country; - RpcReqWifiApGetStaList *req_wifi_ap_get_sta_list; - RpcReqWifiApGetStaAid *req_wifi_ap_get_sta_aid; - RpcReqWifiSetStorage *req_wifi_set_storage; - RpcReqWifiSetCountryCode *req_wifi_set_country_code; - RpcReqWifiGetCountryCode *req_wifi_get_country_code; - RpcReqWifiStaGetAid *req_wifi_sta_get_aid; - RpcReqWifiStaGetNegotiatedPhymode *req_wifi_sta_get_negotiated_phymode; - RpcReqWifiStaGetRssi *req_wifi_sta_get_rssi; - RpcReqWifiSetProtocols *req_wifi_set_protocols; - RpcReqWifiGetProtocols *req_wifi_get_protocols; - RpcReqWifiSetBandwidths *req_wifi_set_bandwidths; - RpcReqWifiGetBandwidths *req_wifi_get_bandwidths; - RpcReqWifiSetBand *req_wifi_set_band; - RpcReqWifiGetBand *req_wifi_get_band; - RpcReqWifiSetBandMode *req_wifi_set_bandmode; - RpcReqWifiGetBandMode *req_wifi_get_bandmode; - RpcReqGetCoprocessorFwVersion *req_get_coprocessor_fwversion; - RpcReqWifiScanGetApRecord *req_wifi_scan_get_ap_record; - /* - ** Responses * - */ - RpcRespGetMacAddress *resp_get_mac_address; - RpcRespSetMacAddress *resp_set_mac_address; - RpcRespGetMode *resp_get_wifi_mode; - RpcRespSetMode *resp_set_wifi_mode; - RpcRespSetPs *resp_wifi_set_ps; - RpcRespGetPs *resp_wifi_get_ps; - RpcRespOTABegin *resp_ota_begin; - RpcRespOTAWrite *resp_ota_write; - RpcRespOTAEnd *resp_ota_end; - RpcRespWifiSetMaxTxPower *resp_set_wifi_max_tx_power; - RpcRespWifiGetMaxTxPower *resp_get_wifi_max_tx_power; - RpcRespConfigHeartbeat *resp_config_heartbeat; - RpcRespWifiInit *resp_wifi_init; - RpcRespWifiDeinit *resp_wifi_deinit; - RpcRespWifiStart *resp_wifi_start; - RpcRespWifiStop *resp_wifi_stop; - RpcRespWifiConnect *resp_wifi_connect; - RpcRespWifiDisconnect *resp_wifi_disconnect; - RpcRespWifiSetConfig *resp_wifi_set_config; - RpcRespWifiGetConfig *resp_wifi_get_config; - RpcRespWifiScanStart *resp_wifi_scan_start; - RpcRespWifiScanStop *resp_wifi_scan_stop; - RpcRespWifiScanGetApNum *resp_wifi_scan_get_ap_num; - RpcRespWifiScanGetApRecords *resp_wifi_scan_get_ap_records; - RpcRespWifiClearApList *resp_wifi_clear_ap_list; - RpcRespWifiRestore *resp_wifi_restore; - RpcRespWifiClearFastConnect *resp_wifi_clear_fast_connect; - RpcRespWifiDeauthSta *resp_wifi_deauth_sta; - RpcRespWifiStaGetApInfo *resp_wifi_sta_get_ap_info; - RpcRespWifiSetProtocol *resp_wifi_set_protocol; - RpcRespWifiGetProtocol *resp_wifi_get_protocol; - RpcRespWifiSetBandwidth *resp_wifi_set_bandwidth; - RpcRespWifiGetBandwidth *resp_wifi_get_bandwidth; - RpcRespWifiSetChannel *resp_wifi_set_channel; - RpcRespWifiGetChannel *resp_wifi_get_channel; - RpcRespWifiSetCountry *resp_wifi_set_country; - RpcRespWifiGetCountry *resp_wifi_get_country; - RpcRespWifiApGetStaList *resp_wifi_ap_get_sta_list; - RpcRespWifiApGetStaAid *resp_wifi_ap_get_sta_aid; - RpcRespWifiSetStorage *resp_wifi_set_storage; - RpcRespWifiSetCountryCode *resp_wifi_set_country_code; - RpcRespWifiGetCountryCode *resp_wifi_get_country_code; - RpcRespWifiStaGetAid *resp_wifi_sta_get_aid; - RpcRespWifiStaGetNegotiatedPhymode *resp_wifi_sta_get_negotiated_phymode; - RpcRespWifiStaGetRssi *resp_wifi_sta_get_rssi; - RpcRespWifiSetProtocols *resp_wifi_set_protocols; - RpcRespWifiGetProtocols *resp_wifi_get_protocols; - RpcRespWifiSetBandwidths *resp_wifi_set_bandwidths; - RpcRespWifiGetBandwidths *resp_wifi_get_bandwidths; - RpcRespWifiSetBand *resp_wifi_set_band; - RpcRespWifiGetBand *resp_wifi_get_band; - RpcRespWifiSetBandMode *resp_wifi_set_bandmode; - RpcRespWifiGetBandMode *resp_wifi_get_bandmode; - RpcRespGetCoprocessorFwVersion *resp_get_coprocessor_fwversion; - RpcRespWifiScanGetApRecord *resp_wifi_scan_get_ap_record; - /* - ** Notifications * - */ - RpcEventESPInit *event_esp_init; - RpcEventHeartbeat *event_heartbeat; - RpcEventAPStaConnected *event_ap_sta_connected; - RpcEventAPStaDisconnected *event_ap_sta_disconnected; - RpcEventWifiEventNoArgs *event_wifi_event_no_args; - RpcEventStaScanDone *event_sta_scan_done; - RpcEventStaConnected *event_sta_connected; - RpcEventStaDisconnected *event_sta_disconnected; - }; -}; -#define RPC__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__descriptor) \ - , RPC_TYPE__MsgType_Invalid, RPC_ID__MsgId_Invalid, 0, RPC__PAYLOAD__NOT_SET, {0} } - - -/* WifiInitConfig methods */ -void wifi_init_config__init - (WifiInitConfig *message); -size_t wifi_init_config__get_packed_size - (const WifiInitConfig *message); -size_t wifi_init_config__pack - (const WifiInitConfig *message, - uint8_t *out); -size_t wifi_init_config__pack_to_buffer - (const WifiInitConfig *message, - ProtobufCBuffer *buffer); -WifiInitConfig * - wifi_init_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_init_config__free_unpacked - (WifiInitConfig *message, - ProtobufCAllocator *allocator); -/* WifiCountry methods */ -void wifi_country__init - (WifiCountry *message); -size_t wifi_country__get_packed_size - (const WifiCountry *message); -size_t wifi_country__pack - (const WifiCountry *message, - uint8_t *out); -size_t wifi_country__pack_to_buffer - (const WifiCountry *message, - ProtobufCBuffer *buffer); -WifiCountry * - wifi_country__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_country__free_unpacked - (WifiCountry *message, - ProtobufCAllocator *allocator); -/* WifiActiveScanTime methods */ -void wifi_active_scan_time__init - (WifiActiveScanTime *message); -size_t wifi_active_scan_time__get_packed_size - (const WifiActiveScanTime *message); -size_t wifi_active_scan_time__pack - (const WifiActiveScanTime *message, - uint8_t *out); -size_t wifi_active_scan_time__pack_to_buffer - (const WifiActiveScanTime *message, - ProtobufCBuffer *buffer); -WifiActiveScanTime * - wifi_active_scan_time__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_active_scan_time__free_unpacked - (WifiActiveScanTime *message, - ProtobufCAllocator *allocator); -/* WifiScanTime methods */ -void wifi_scan_time__init - (WifiScanTime *message); -size_t wifi_scan_time__get_packed_size - (const WifiScanTime *message); -size_t wifi_scan_time__pack - (const WifiScanTime *message, - uint8_t *out); -size_t wifi_scan_time__pack_to_buffer - (const WifiScanTime *message, - ProtobufCBuffer *buffer); -WifiScanTime * - wifi_scan_time__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_scan_time__free_unpacked - (WifiScanTime *message, - ProtobufCAllocator *allocator); -/* WifiScanConfig methods */ -void wifi_scan_config__init - (WifiScanConfig *message); -size_t wifi_scan_config__get_packed_size - (const WifiScanConfig *message); -size_t wifi_scan_config__pack - (const WifiScanConfig *message, - uint8_t *out); -size_t wifi_scan_config__pack_to_buffer - (const WifiScanConfig *message, - ProtobufCBuffer *buffer); -WifiScanConfig * - wifi_scan_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_scan_config__free_unpacked - (WifiScanConfig *message, - ProtobufCAllocator *allocator); -/* WifiHeApInfo methods */ -void wifi_he_ap_info__init - (WifiHeApInfo *message); -size_t wifi_he_ap_info__get_packed_size - (const WifiHeApInfo *message); -size_t wifi_he_ap_info__pack - (const WifiHeApInfo *message, - uint8_t *out); -size_t wifi_he_ap_info__pack_to_buffer - (const WifiHeApInfo *message, - ProtobufCBuffer *buffer); -WifiHeApInfo * - wifi_he_ap_info__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_he_ap_info__free_unpacked - (WifiHeApInfo *message, - ProtobufCAllocator *allocator); -/* WifiApRecord methods */ -void wifi_ap_record__init - (WifiApRecord *message); -size_t wifi_ap_record__get_packed_size - (const WifiApRecord *message); -size_t wifi_ap_record__pack - (const WifiApRecord *message, - uint8_t *out); -size_t wifi_ap_record__pack_to_buffer - (const WifiApRecord *message, - ProtobufCBuffer *buffer); -WifiApRecord * - wifi_ap_record__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_ap_record__free_unpacked - (WifiApRecord *message, - ProtobufCAllocator *allocator); -/* WifiScanThreshold methods */ -void wifi_scan_threshold__init - (WifiScanThreshold *message); -size_t wifi_scan_threshold__get_packed_size - (const WifiScanThreshold *message); -size_t wifi_scan_threshold__pack - (const WifiScanThreshold *message, - uint8_t *out); -size_t wifi_scan_threshold__pack_to_buffer - (const WifiScanThreshold *message, - ProtobufCBuffer *buffer); -WifiScanThreshold * - wifi_scan_threshold__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_scan_threshold__free_unpacked - (WifiScanThreshold *message, - ProtobufCAllocator *allocator); -/* WifiPmfConfig methods */ -void wifi_pmf_config__init - (WifiPmfConfig *message); -size_t wifi_pmf_config__get_packed_size - (const WifiPmfConfig *message); -size_t wifi_pmf_config__pack - (const WifiPmfConfig *message, - uint8_t *out); -size_t wifi_pmf_config__pack_to_buffer - (const WifiPmfConfig *message, - ProtobufCBuffer *buffer); -WifiPmfConfig * - wifi_pmf_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_pmf_config__free_unpacked - (WifiPmfConfig *message, - ProtobufCAllocator *allocator); -/* WifiApConfig methods */ -void wifi_ap_config__init - (WifiApConfig *message); -size_t wifi_ap_config__get_packed_size - (const WifiApConfig *message); -size_t wifi_ap_config__pack - (const WifiApConfig *message, - uint8_t *out); -size_t wifi_ap_config__pack_to_buffer - (const WifiApConfig *message, - ProtobufCBuffer *buffer); -WifiApConfig * - wifi_ap_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_ap_config__free_unpacked - (WifiApConfig *message, - ProtobufCAllocator *allocator); -/* WifiStaConfig methods */ -void wifi_sta_config__init - (WifiStaConfig *message); -size_t wifi_sta_config__get_packed_size - (const WifiStaConfig *message); -size_t wifi_sta_config__pack - (const WifiStaConfig *message, - uint8_t *out); -size_t wifi_sta_config__pack_to_buffer - (const WifiStaConfig *message, - ProtobufCBuffer *buffer); -WifiStaConfig * - wifi_sta_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_sta_config__free_unpacked - (WifiStaConfig *message, - ProtobufCAllocator *allocator); -/* WifiConfig methods */ -void wifi_config__init - (WifiConfig *message); -size_t wifi_config__get_packed_size - (const WifiConfig *message); -size_t wifi_config__pack - (const WifiConfig *message, - uint8_t *out); -size_t wifi_config__pack_to_buffer - (const WifiConfig *message, - ProtobufCBuffer *buffer); -WifiConfig * - wifi_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_config__free_unpacked - (WifiConfig *message, - ProtobufCAllocator *allocator); -/* WifiStaInfo methods */ -void wifi_sta_info__init - (WifiStaInfo *message); -size_t wifi_sta_info__get_packed_size - (const WifiStaInfo *message); -size_t wifi_sta_info__pack - (const WifiStaInfo *message, - uint8_t *out); -size_t wifi_sta_info__pack_to_buffer - (const WifiStaInfo *message, - ProtobufCBuffer *buffer); -WifiStaInfo * - wifi_sta_info__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_sta_info__free_unpacked - (WifiStaInfo *message, - ProtobufCAllocator *allocator); -/* WifiStaList methods */ -void wifi_sta_list__init - (WifiStaList *message); -size_t wifi_sta_list__get_packed_size - (const WifiStaList *message); -size_t wifi_sta_list__pack - (const WifiStaList *message, - uint8_t *out); -size_t wifi_sta_list__pack_to_buffer - (const WifiStaList *message, - ProtobufCBuffer *buffer); -WifiStaList * - wifi_sta_list__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_sta_list__free_unpacked - (WifiStaList *message, - ProtobufCAllocator *allocator); -/* WifiPktRxCtrl methods */ -void wifi_pkt_rx_ctrl__init - (WifiPktRxCtrl *message); -size_t wifi_pkt_rx_ctrl__get_packed_size - (const WifiPktRxCtrl *message); -size_t wifi_pkt_rx_ctrl__pack - (const WifiPktRxCtrl *message, - uint8_t *out); -size_t wifi_pkt_rx_ctrl__pack_to_buffer - (const WifiPktRxCtrl *message, - ProtobufCBuffer *buffer); -WifiPktRxCtrl * - wifi_pkt_rx_ctrl__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_pkt_rx_ctrl__free_unpacked - (WifiPktRxCtrl *message, - ProtobufCAllocator *allocator); -/* WifiPromiscuousPkt methods */ -void wifi_promiscuous_pkt__init - (WifiPromiscuousPkt *message); -size_t wifi_promiscuous_pkt__get_packed_size - (const WifiPromiscuousPkt *message); -size_t wifi_promiscuous_pkt__pack - (const WifiPromiscuousPkt *message, - uint8_t *out); -size_t wifi_promiscuous_pkt__pack_to_buffer - (const WifiPromiscuousPkt *message, - ProtobufCBuffer *buffer); -WifiPromiscuousPkt * - wifi_promiscuous_pkt__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_promiscuous_pkt__free_unpacked - (WifiPromiscuousPkt *message, - ProtobufCAllocator *allocator); -/* WifiPromiscuousFilter methods */ -void wifi_promiscuous_filter__init - (WifiPromiscuousFilter *message); -size_t wifi_promiscuous_filter__get_packed_size - (const WifiPromiscuousFilter *message); -size_t wifi_promiscuous_filter__pack - (const WifiPromiscuousFilter *message, - uint8_t *out); -size_t wifi_promiscuous_filter__pack_to_buffer - (const WifiPromiscuousFilter *message, - ProtobufCBuffer *buffer); -WifiPromiscuousFilter * - wifi_promiscuous_filter__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_promiscuous_filter__free_unpacked - (WifiPromiscuousFilter *message, - ProtobufCAllocator *allocator); -/* WifiCsiConfig methods */ -void wifi_csi_config__init - (WifiCsiConfig *message); -size_t wifi_csi_config__get_packed_size - (const WifiCsiConfig *message); -size_t wifi_csi_config__pack - (const WifiCsiConfig *message, - uint8_t *out); -size_t wifi_csi_config__pack_to_buffer - (const WifiCsiConfig *message, - ProtobufCBuffer *buffer); -WifiCsiConfig * - wifi_csi_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_csi_config__free_unpacked - (WifiCsiConfig *message, - ProtobufCAllocator *allocator); -/* WifiCsiInfo methods */ -void wifi_csi_info__init - (WifiCsiInfo *message); -size_t wifi_csi_info__get_packed_size - (const WifiCsiInfo *message); -size_t wifi_csi_info__pack - (const WifiCsiInfo *message, - uint8_t *out); -size_t wifi_csi_info__pack_to_buffer - (const WifiCsiInfo *message, - ProtobufCBuffer *buffer); -WifiCsiInfo * - wifi_csi_info__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_csi_info__free_unpacked - (WifiCsiInfo *message, - ProtobufCAllocator *allocator); -/* WifiAntGpio methods */ -void wifi_ant_gpio__init - (WifiAntGpio *message); -size_t wifi_ant_gpio__get_packed_size - (const WifiAntGpio *message); -size_t wifi_ant_gpio__pack - (const WifiAntGpio *message, - uint8_t *out); -size_t wifi_ant_gpio__pack_to_buffer - (const WifiAntGpio *message, - ProtobufCBuffer *buffer); -WifiAntGpio * - wifi_ant_gpio__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_ant_gpio__free_unpacked - (WifiAntGpio *message, - ProtobufCAllocator *allocator); -/* WifiAntGpioConfig methods */ -void wifi_ant_gpio_config__init - (WifiAntGpioConfig *message); -size_t wifi_ant_gpio_config__get_packed_size - (const WifiAntGpioConfig *message); -size_t wifi_ant_gpio_config__pack - (const WifiAntGpioConfig *message, - uint8_t *out); -size_t wifi_ant_gpio_config__pack_to_buffer - (const WifiAntGpioConfig *message, - ProtobufCBuffer *buffer); -WifiAntGpioConfig * - wifi_ant_gpio_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_ant_gpio_config__free_unpacked - (WifiAntGpioConfig *message, - ProtobufCAllocator *allocator); -/* WifiAntConfig methods */ -void wifi_ant_config__init - (WifiAntConfig *message); -size_t wifi_ant_config__get_packed_size - (const WifiAntConfig *message); -size_t wifi_ant_config__pack - (const WifiAntConfig *message, - uint8_t *out); -size_t wifi_ant_config__pack_to_buffer - (const WifiAntConfig *message, - ProtobufCBuffer *buffer); -WifiAntConfig * - wifi_ant_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_ant_config__free_unpacked - (WifiAntConfig *message, - ProtobufCAllocator *allocator); -/* WifiActionTxReq methods */ -void wifi_action_tx_req__init - (WifiActionTxReq *message); -size_t wifi_action_tx_req__get_packed_size - (const WifiActionTxReq *message); -size_t wifi_action_tx_req__pack - (const WifiActionTxReq *message, - uint8_t *out); -size_t wifi_action_tx_req__pack_to_buffer - (const WifiActionTxReq *message, - ProtobufCBuffer *buffer); -WifiActionTxReq * - wifi_action_tx_req__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_action_tx_req__free_unpacked - (WifiActionTxReq *message, - ProtobufCAllocator *allocator); -/* WifiFtmInitiatorCfg methods */ -void wifi_ftm_initiator_cfg__init - (WifiFtmInitiatorCfg *message); -size_t wifi_ftm_initiator_cfg__get_packed_size - (const WifiFtmInitiatorCfg *message); -size_t wifi_ftm_initiator_cfg__pack - (const WifiFtmInitiatorCfg *message, - uint8_t *out); -size_t wifi_ftm_initiator_cfg__pack_to_buffer - (const WifiFtmInitiatorCfg *message, - ProtobufCBuffer *buffer); -WifiFtmInitiatorCfg * - wifi_ftm_initiator_cfg__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_ftm_initiator_cfg__free_unpacked - (WifiFtmInitiatorCfg *message, - ProtobufCAllocator *allocator); -/* WifiEventStaScanDone methods */ -void wifi_event_sta_scan_done__init - (WifiEventStaScanDone *message); -size_t wifi_event_sta_scan_done__get_packed_size - (const WifiEventStaScanDone *message); -size_t wifi_event_sta_scan_done__pack - (const WifiEventStaScanDone *message, - uint8_t *out); -size_t wifi_event_sta_scan_done__pack_to_buffer - (const WifiEventStaScanDone *message, - ProtobufCBuffer *buffer); -WifiEventStaScanDone * - wifi_event_sta_scan_done__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_event_sta_scan_done__free_unpacked - (WifiEventStaScanDone *message, - ProtobufCAllocator *allocator); -/* WifiEventStaConnected methods */ -void wifi_event_sta_connected__init - (WifiEventStaConnected *message); -size_t wifi_event_sta_connected__get_packed_size - (const WifiEventStaConnected *message); -size_t wifi_event_sta_connected__pack - (const WifiEventStaConnected *message, - uint8_t *out); -size_t wifi_event_sta_connected__pack_to_buffer - (const WifiEventStaConnected *message, - ProtobufCBuffer *buffer); -WifiEventStaConnected * - wifi_event_sta_connected__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_event_sta_connected__free_unpacked - (WifiEventStaConnected *message, - ProtobufCAllocator *allocator); -/* WifiEventStaDisconnected methods */ -void wifi_event_sta_disconnected__init - (WifiEventStaDisconnected *message); -size_t wifi_event_sta_disconnected__get_packed_size - (const WifiEventStaDisconnected *message); -size_t wifi_event_sta_disconnected__pack - (const WifiEventStaDisconnected *message, - uint8_t *out); -size_t wifi_event_sta_disconnected__pack_to_buffer - (const WifiEventStaDisconnected *message, - ProtobufCBuffer *buffer); -WifiEventStaDisconnected * - wifi_event_sta_disconnected__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_event_sta_disconnected__free_unpacked - (WifiEventStaDisconnected *message, - ProtobufCAllocator *allocator); -/* WifiEventStaAuthmodeChange methods */ -void wifi_event_sta_authmode_change__init - (WifiEventStaAuthmodeChange *message); -size_t wifi_event_sta_authmode_change__get_packed_size - (const WifiEventStaAuthmodeChange *message); -size_t wifi_event_sta_authmode_change__pack - (const WifiEventStaAuthmodeChange *message, - uint8_t *out); -size_t wifi_event_sta_authmode_change__pack_to_buffer - (const WifiEventStaAuthmodeChange *message, - ProtobufCBuffer *buffer); -WifiEventStaAuthmodeChange * - wifi_event_sta_authmode_change__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_event_sta_authmode_change__free_unpacked - (WifiEventStaAuthmodeChange *message, - ProtobufCAllocator *allocator); -/* WifiEventStaWpsErPin methods */ -void wifi_event_sta_wps_er_pin__init - (WifiEventStaWpsErPin *message); -size_t wifi_event_sta_wps_er_pin__get_packed_size - (const WifiEventStaWpsErPin *message); -size_t wifi_event_sta_wps_er_pin__pack - (const WifiEventStaWpsErPin *message, - uint8_t *out); -size_t wifi_event_sta_wps_er_pin__pack_to_buffer - (const WifiEventStaWpsErPin *message, - ProtobufCBuffer *buffer); -WifiEventStaWpsErPin * - wifi_event_sta_wps_er_pin__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_event_sta_wps_er_pin__free_unpacked - (WifiEventStaWpsErPin *message, - ProtobufCAllocator *allocator); -/* ApCred methods */ -void ap_cred__init - (ApCred *message); -size_t ap_cred__get_packed_size - (const ApCred *message); -size_t ap_cred__pack - (const ApCred *message, - uint8_t *out); -size_t ap_cred__pack_to_buffer - (const ApCred *message, - ProtobufCBuffer *buffer); -ApCred * - ap_cred__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void ap_cred__free_unpacked - (ApCred *message, - ProtobufCAllocator *allocator); -/* WifiEventStaWpsErSuccess methods */ -void wifi_event_sta_wps_er_success__init - (WifiEventStaWpsErSuccess *message); -size_t wifi_event_sta_wps_er_success__get_packed_size - (const WifiEventStaWpsErSuccess *message); -size_t wifi_event_sta_wps_er_success__pack - (const WifiEventStaWpsErSuccess *message, - uint8_t *out); -size_t wifi_event_sta_wps_er_success__pack_to_buffer - (const WifiEventStaWpsErSuccess *message, - ProtobufCBuffer *buffer); -WifiEventStaWpsErSuccess * - wifi_event_sta_wps_er_success__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_event_sta_wps_er_success__free_unpacked - (WifiEventStaWpsErSuccess *message, - ProtobufCAllocator *allocator); -/* WifiEventApProbeReqRx methods */ -void wifi_event_ap_probe_req_rx__init - (WifiEventApProbeReqRx *message); -size_t wifi_event_ap_probe_req_rx__get_packed_size - (const WifiEventApProbeReqRx *message); -size_t wifi_event_ap_probe_req_rx__pack - (const WifiEventApProbeReqRx *message, - uint8_t *out); -size_t wifi_event_ap_probe_req_rx__pack_to_buffer - (const WifiEventApProbeReqRx *message, - ProtobufCBuffer *buffer); -WifiEventApProbeReqRx * - wifi_event_ap_probe_req_rx__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_event_ap_probe_req_rx__free_unpacked - (WifiEventApProbeReqRx *message, - ProtobufCAllocator *allocator); -/* WifiEventBssRssiLow methods */ -void wifi_event_bss_rssi_low__init - (WifiEventBssRssiLow *message); -size_t wifi_event_bss_rssi_low__get_packed_size - (const WifiEventBssRssiLow *message); -size_t wifi_event_bss_rssi_low__pack - (const WifiEventBssRssiLow *message, - uint8_t *out); -size_t wifi_event_bss_rssi_low__pack_to_buffer - (const WifiEventBssRssiLow *message, - ProtobufCBuffer *buffer); -WifiEventBssRssiLow * - wifi_event_bss_rssi_low__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_event_bss_rssi_low__free_unpacked - (WifiEventBssRssiLow *message, - ProtobufCAllocator *allocator); -/* WifiFtmReportEntry methods */ -void wifi_ftm_report_entry__init - (WifiFtmReportEntry *message); -size_t wifi_ftm_report_entry__get_packed_size - (const WifiFtmReportEntry *message); -size_t wifi_ftm_report_entry__pack - (const WifiFtmReportEntry *message, - uint8_t *out); -size_t wifi_ftm_report_entry__pack_to_buffer - (const WifiFtmReportEntry *message, - ProtobufCBuffer *buffer); -WifiFtmReportEntry * - wifi_ftm_report_entry__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_ftm_report_entry__free_unpacked - (WifiFtmReportEntry *message, - ProtobufCAllocator *allocator); -/* WifiEventFtmReport methods */ -void wifi_event_ftm_report__init - (WifiEventFtmReport *message); -size_t wifi_event_ftm_report__get_packed_size - (const WifiEventFtmReport *message); -size_t wifi_event_ftm_report__pack - (const WifiEventFtmReport *message, - uint8_t *out); -size_t wifi_event_ftm_report__pack_to_buffer - (const WifiEventFtmReport *message, - ProtobufCBuffer *buffer); -WifiEventFtmReport * - wifi_event_ftm_report__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_event_ftm_report__free_unpacked - (WifiEventFtmReport *message, - ProtobufCAllocator *allocator); -/* WifiEventActionTxStatus methods */ -void wifi_event_action_tx_status__init - (WifiEventActionTxStatus *message); -size_t wifi_event_action_tx_status__get_packed_size - (const WifiEventActionTxStatus *message); -size_t wifi_event_action_tx_status__pack - (const WifiEventActionTxStatus *message, - uint8_t *out); -size_t wifi_event_action_tx_status__pack_to_buffer - (const WifiEventActionTxStatus *message, - ProtobufCBuffer *buffer); -WifiEventActionTxStatus * - wifi_event_action_tx_status__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_event_action_tx_status__free_unpacked - (WifiEventActionTxStatus *message, - ProtobufCAllocator *allocator); -/* WifiEventRocDone methods */ -void wifi_event_roc_done__init - (WifiEventRocDone *message); -size_t wifi_event_roc_done__get_packed_size - (const WifiEventRocDone *message); -size_t wifi_event_roc_done__pack - (const WifiEventRocDone *message, - uint8_t *out); -size_t wifi_event_roc_done__pack_to_buffer - (const WifiEventRocDone *message, - ProtobufCBuffer *buffer); -WifiEventRocDone * - wifi_event_roc_done__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_event_roc_done__free_unpacked - (WifiEventRocDone *message, - ProtobufCAllocator *allocator); -/* WifiEventApWpsRgPin methods */ -void wifi_event_ap_wps_rg_pin__init - (WifiEventApWpsRgPin *message); -size_t wifi_event_ap_wps_rg_pin__get_packed_size - (const WifiEventApWpsRgPin *message); -size_t wifi_event_ap_wps_rg_pin__pack - (const WifiEventApWpsRgPin *message, - uint8_t *out); -size_t wifi_event_ap_wps_rg_pin__pack_to_buffer - (const WifiEventApWpsRgPin *message, - ProtobufCBuffer *buffer); -WifiEventApWpsRgPin * - wifi_event_ap_wps_rg_pin__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_event_ap_wps_rg_pin__free_unpacked - (WifiEventApWpsRgPin *message, - ProtobufCAllocator *allocator); -/* WifiEventApWpsRgFailReason methods */ -void wifi_event_ap_wps_rg_fail_reason__init - (WifiEventApWpsRgFailReason *message); -size_t wifi_event_ap_wps_rg_fail_reason__get_packed_size - (const WifiEventApWpsRgFailReason *message); -size_t wifi_event_ap_wps_rg_fail_reason__pack - (const WifiEventApWpsRgFailReason *message, - uint8_t *out); -size_t wifi_event_ap_wps_rg_fail_reason__pack_to_buffer - (const WifiEventApWpsRgFailReason *message, - ProtobufCBuffer *buffer); -WifiEventApWpsRgFailReason * - wifi_event_ap_wps_rg_fail_reason__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_event_ap_wps_rg_fail_reason__free_unpacked - (WifiEventApWpsRgFailReason *message, - ProtobufCAllocator *allocator); -/* WifiEventApWpsRgSuccess methods */ -void wifi_event_ap_wps_rg_success__init - (WifiEventApWpsRgSuccess *message); -size_t wifi_event_ap_wps_rg_success__get_packed_size - (const WifiEventApWpsRgSuccess *message); -size_t wifi_event_ap_wps_rg_success__pack - (const WifiEventApWpsRgSuccess *message, - uint8_t *out); -size_t wifi_event_ap_wps_rg_success__pack_to_buffer - (const WifiEventApWpsRgSuccess *message, - ProtobufCBuffer *buffer); -WifiEventApWpsRgSuccess * - wifi_event_ap_wps_rg_success__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_event_ap_wps_rg_success__free_unpacked - (WifiEventApWpsRgSuccess *message, - ProtobufCAllocator *allocator); -/* WifiProtocols methods */ -void wifi_protocols__init - (WifiProtocols *message); -size_t wifi_protocols__get_packed_size - (const WifiProtocols *message); -size_t wifi_protocols__pack - (const WifiProtocols *message, - uint8_t *out); -size_t wifi_protocols__pack_to_buffer - (const WifiProtocols *message, - ProtobufCBuffer *buffer); -WifiProtocols * - wifi_protocols__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_protocols__free_unpacked - (WifiProtocols *message, - ProtobufCAllocator *allocator); -/* WifiBandwidths methods */ -void wifi_bandwidths__init - (WifiBandwidths *message); -size_t wifi_bandwidths__get_packed_size - (const WifiBandwidths *message); -size_t wifi_bandwidths__pack - (const WifiBandwidths *message, - uint8_t *out); -size_t wifi_bandwidths__pack_to_buffer - (const WifiBandwidths *message, - ProtobufCBuffer *buffer); -WifiBandwidths * - wifi_bandwidths__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_bandwidths__free_unpacked - (WifiBandwidths *message, - ProtobufCAllocator *allocator); -/* ConnectedSTAList methods */ -void connected_stalist__init - (ConnectedSTAList *message); -size_t connected_stalist__get_packed_size - (const ConnectedSTAList *message); -size_t connected_stalist__pack - (const ConnectedSTAList *message, - uint8_t *out); -size_t connected_stalist__pack_to_buffer - (const ConnectedSTAList *message, - ProtobufCBuffer *buffer); -ConnectedSTAList * - connected_stalist__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void connected_stalist__free_unpacked - (ConnectedSTAList *message, - ProtobufCAllocator *allocator); -/* RpcReqGetMacAddress methods */ -void rpc__req__get_mac_address__init - (RpcReqGetMacAddress *message); -size_t rpc__req__get_mac_address__get_packed_size - (const RpcReqGetMacAddress *message); -size_t rpc__req__get_mac_address__pack - (const RpcReqGetMacAddress *message, - uint8_t *out); -size_t rpc__req__get_mac_address__pack_to_buffer - (const RpcReqGetMacAddress *message, - ProtobufCBuffer *buffer); -RpcReqGetMacAddress * - rpc__req__get_mac_address__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__get_mac_address__free_unpacked - (RpcReqGetMacAddress *message, - ProtobufCAllocator *allocator); -/* RpcRespGetMacAddress methods */ -void rpc__resp__get_mac_address__init - (RpcRespGetMacAddress *message); -size_t rpc__resp__get_mac_address__get_packed_size - (const RpcRespGetMacAddress *message); -size_t rpc__resp__get_mac_address__pack - (const RpcRespGetMacAddress *message, - uint8_t *out); -size_t rpc__resp__get_mac_address__pack_to_buffer - (const RpcRespGetMacAddress *message, - ProtobufCBuffer *buffer); -RpcRespGetMacAddress * - rpc__resp__get_mac_address__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__get_mac_address__free_unpacked - (RpcRespGetMacAddress *message, - ProtobufCAllocator *allocator); -/* RpcReqGetMode methods */ -void rpc__req__get_mode__init - (RpcReqGetMode *message); -size_t rpc__req__get_mode__get_packed_size - (const RpcReqGetMode *message); -size_t rpc__req__get_mode__pack - (const RpcReqGetMode *message, - uint8_t *out); -size_t rpc__req__get_mode__pack_to_buffer - (const RpcReqGetMode *message, - ProtobufCBuffer *buffer); -RpcReqGetMode * - rpc__req__get_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__get_mode__free_unpacked - (RpcReqGetMode *message, - ProtobufCAllocator *allocator); -/* RpcRespGetMode methods */ -void rpc__resp__get_mode__init - (RpcRespGetMode *message); -size_t rpc__resp__get_mode__get_packed_size - (const RpcRespGetMode *message); -size_t rpc__resp__get_mode__pack - (const RpcRespGetMode *message, - uint8_t *out); -size_t rpc__resp__get_mode__pack_to_buffer - (const RpcRespGetMode *message, - ProtobufCBuffer *buffer); -RpcRespGetMode * - rpc__resp__get_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__get_mode__free_unpacked - (RpcRespGetMode *message, - ProtobufCAllocator *allocator); -/* RpcReqSetMode methods */ -void rpc__req__set_mode__init - (RpcReqSetMode *message); -size_t rpc__req__set_mode__get_packed_size - (const RpcReqSetMode *message); -size_t rpc__req__set_mode__pack - (const RpcReqSetMode *message, - uint8_t *out); -size_t rpc__req__set_mode__pack_to_buffer - (const RpcReqSetMode *message, - ProtobufCBuffer *buffer); -RpcReqSetMode * - rpc__req__set_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__set_mode__free_unpacked - (RpcReqSetMode *message, - ProtobufCAllocator *allocator); -/* RpcRespSetMode methods */ -void rpc__resp__set_mode__init - (RpcRespSetMode *message); -size_t rpc__resp__set_mode__get_packed_size - (const RpcRespSetMode *message); -size_t rpc__resp__set_mode__pack - (const RpcRespSetMode *message, - uint8_t *out); -size_t rpc__resp__set_mode__pack_to_buffer - (const RpcRespSetMode *message, - ProtobufCBuffer *buffer); -RpcRespSetMode * - rpc__resp__set_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__set_mode__free_unpacked - (RpcRespSetMode *message, - ProtobufCAllocator *allocator); -/* RpcReqGetPs methods */ -void rpc__req__get_ps__init - (RpcReqGetPs *message); -size_t rpc__req__get_ps__get_packed_size - (const RpcReqGetPs *message); -size_t rpc__req__get_ps__pack - (const RpcReqGetPs *message, - uint8_t *out); -size_t rpc__req__get_ps__pack_to_buffer - (const RpcReqGetPs *message, - ProtobufCBuffer *buffer); -RpcReqGetPs * - rpc__req__get_ps__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__get_ps__free_unpacked - (RpcReqGetPs *message, - ProtobufCAllocator *allocator); -/* RpcRespGetPs methods */ -void rpc__resp__get_ps__init - (RpcRespGetPs *message); -size_t rpc__resp__get_ps__get_packed_size - (const RpcRespGetPs *message); -size_t rpc__resp__get_ps__pack - (const RpcRespGetPs *message, - uint8_t *out); -size_t rpc__resp__get_ps__pack_to_buffer - (const RpcRespGetPs *message, - ProtobufCBuffer *buffer); -RpcRespGetPs * - rpc__resp__get_ps__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__get_ps__free_unpacked - (RpcRespGetPs *message, - ProtobufCAllocator *allocator); -/* RpcReqSetPs methods */ -void rpc__req__set_ps__init - (RpcReqSetPs *message); -size_t rpc__req__set_ps__get_packed_size - (const RpcReqSetPs *message); -size_t rpc__req__set_ps__pack - (const RpcReqSetPs *message, - uint8_t *out); -size_t rpc__req__set_ps__pack_to_buffer - (const RpcReqSetPs *message, - ProtobufCBuffer *buffer); -RpcReqSetPs * - rpc__req__set_ps__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__set_ps__free_unpacked - (RpcReqSetPs *message, - ProtobufCAllocator *allocator); -/* RpcRespSetPs methods */ -void rpc__resp__set_ps__init - (RpcRespSetPs *message); -size_t rpc__resp__set_ps__get_packed_size - (const RpcRespSetPs *message); -size_t rpc__resp__set_ps__pack - (const RpcRespSetPs *message, - uint8_t *out); -size_t rpc__resp__set_ps__pack_to_buffer - (const RpcRespSetPs *message, - ProtobufCBuffer *buffer); -RpcRespSetPs * - rpc__resp__set_ps__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__set_ps__free_unpacked - (RpcRespSetPs *message, - ProtobufCAllocator *allocator); -/* RpcReqSetMacAddress methods */ -void rpc__req__set_mac_address__init - (RpcReqSetMacAddress *message); -size_t rpc__req__set_mac_address__get_packed_size - (const RpcReqSetMacAddress *message); -size_t rpc__req__set_mac_address__pack - (const RpcReqSetMacAddress *message, - uint8_t *out); -size_t rpc__req__set_mac_address__pack_to_buffer - (const RpcReqSetMacAddress *message, - ProtobufCBuffer *buffer); -RpcReqSetMacAddress * - rpc__req__set_mac_address__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__set_mac_address__free_unpacked - (RpcReqSetMacAddress *message, - ProtobufCAllocator *allocator); -/* RpcRespSetMacAddress methods */ -void rpc__resp__set_mac_address__init - (RpcRespSetMacAddress *message); -size_t rpc__resp__set_mac_address__get_packed_size - (const RpcRespSetMacAddress *message); -size_t rpc__resp__set_mac_address__pack - (const RpcRespSetMacAddress *message, - uint8_t *out); -size_t rpc__resp__set_mac_address__pack_to_buffer - (const RpcRespSetMacAddress *message, - ProtobufCBuffer *buffer); -RpcRespSetMacAddress * - rpc__resp__set_mac_address__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__set_mac_address__free_unpacked - (RpcRespSetMacAddress *message, - ProtobufCAllocator *allocator); -/* RpcReqOTABegin methods */ -void rpc__req__otabegin__init - (RpcReqOTABegin *message); -size_t rpc__req__otabegin__get_packed_size - (const RpcReqOTABegin *message); -size_t rpc__req__otabegin__pack - (const RpcReqOTABegin *message, - uint8_t *out); -size_t rpc__req__otabegin__pack_to_buffer - (const RpcReqOTABegin *message, - ProtobufCBuffer *buffer); -RpcReqOTABegin * - rpc__req__otabegin__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__otabegin__free_unpacked - (RpcReqOTABegin *message, - ProtobufCAllocator *allocator); -/* RpcRespOTABegin methods */ -void rpc__resp__otabegin__init - (RpcRespOTABegin *message); -size_t rpc__resp__otabegin__get_packed_size - (const RpcRespOTABegin *message); -size_t rpc__resp__otabegin__pack - (const RpcRespOTABegin *message, - uint8_t *out); -size_t rpc__resp__otabegin__pack_to_buffer - (const RpcRespOTABegin *message, - ProtobufCBuffer *buffer); -RpcRespOTABegin * - rpc__resp__otabegin__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__otabegin__free_unpacked - (RpcRespOTABegin *message, - ProtobufCAllocator *allocator); -/* RpcReqOTAWrite methods */ -void rpc__req__otawrite__init - (RpcReqOTAWrite *message); -size_t rpc__req__otawrite__get_packed_size - (const RpcReqOTAWrite *message); -size_t rpc__req__otawrite__pack - (const RpcReqOTAWrite *message, - uint8_t *out); -size_t rpc__req__otawrite__pack_to_buffer - (const RpcReqOTAWrite *message, - ProtobufCBuffer *buffer); -RpcReqOTAWrite * - rpc__req__otawrite__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__otawrite__free_unpacked - (RpcReqOTAWrite *message, - ProtobufCAllocator *allocator); -/* RpcRespOTAWrite methods */ -void rpc__resp__otawrite__init - (RpcRespOTAWrite *message); -size_t rpc__resp__otawrite__get_packed_size - (const RpcRespOTAWrite *message); -size_t rpc__resp__otawrite__pack - (const RpcRespOTAWrite *message, - uint8_t *out); -size_t rpc__resp__otawrite__pack_to_buffer - (const RpcRespOTAWrite *message, - ProtobufCBuffer *buffer); -RpcRespOTAWrite * - rpc__resp__otawrite__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__otawrite__free_unpacked - (RpcRespOTAWrite *message, - ProtobufCAllocator *allocator); -/* RpcReqOTAEnd methods */ -void rpc__req__otaend__init - (RpcReqOTAEnd *message); -size_t rpc__req__otaend__get_packed_size - (const RpcReqOTAEnd *message); -size_t rpc__req__otaend__pack - (const RpcReqOTAEnd *message, - uint8_t *out); -size_t rpc__req__otaend__pack_to_buffer - (const RpcReqOTAEnd *message, - ProtobufCBuffer *buffer); -RpcReqOTAEnd * - rpc__req__otaend__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__otaend__free_unpacked - (RpcReqOTAEnd *message, - ProtobufCAllocator *allocator); -/* RpcRespOTAEnd methods */ -void rpc__resp__otaend__init - (RpcRespOTAEnd *message); -size_t rpc__resp__otaend__get_packed_size - (const RpcRespOTAEnd *message); -size_t rpc__resp__otaend__pack - (const RpcRespOTAEnd *message, - uint8_t *out); -size_t rpc__resp__otaend__pack_to_buffer - (const RpcRespOTAEnd *message, - ProtobufCBuffer *buffer); -RpcRespOTAEnd * - rpc__resp__otaend__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__otaend__free_unpacked - (RpcRespOTAEnd *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiSetMaxTxPower methods */ -void rpc__req__wifi_set_max_tx_power__init - (RpcReqWifiSetMaxTxPower *message); -size_t rpc__req__wifi_set_max_tx_power__get_packed_size - (const RpcReqWifiSetMaxTxPower *message); -size_t rpc__req__wifi_set_max_tx_power__pack - (const RpcReqWifiSetMaxTxPower *message, - uint8_t *out); -size_t rpc__req__wifi_set_max_tx_power__pack_to_buffer - (const RpcReqWifiSetMaxTxPower *message, - ProtobufCBuffer *buffer); -RpcReqWifiSetMaxTxPower * - rpc__req__wifi_set_max_tx_power__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_set_max_tx_power__free_unpacked - (RpcReqWifiSetMaxTxPower *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiSetMaxTxPower methods */ -void rpc__resp__wifi_set_max_tx_power__init - (RpcRespWifiSetMaxTxPower *message); -size_t rpc__resp__wifi_set_max_tx_power__get_packed_size - (const RpcRespWifiSetMaxTxPower *message); -size_t rpc__resp__wifi_set_max_tx_power__pack - (const RpcRespWifiSetMaxTxPower *message, - uint8_t *out); -size_t rpc__resp__wifi_set_max_tx_power__pack_to_buffer - (const RpcRespWifiSetMaxTxPower *message, - ProtobufCBuffer *buffer); -RpcRespWifiSetMaxTxPower * - rpc__resp__wifi_set_max_tx_power__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_set_max_tx_power__free_unpacked - (RpcRespWifiSetMaxTxPower *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiGetMaxTxPower methods */ -void rpc__req__wifi_get_max_tx_power__init - (RpcReqWifiGetMaxTxPower *message); -size_t rpc__req__wifi_get_max_tx_power__get_packed_size - (const RpcReqWifiGetMaxTxPower *message); -size_t rpc__req__wifi_get_max_tx_power__pack - (const RpcReqWifiGetMaxTxPower *message, - uint8_t *out); -size_t rpc__req__wifi_get_max_tx_power__pack_to_buffer - (const RpcReqWifiGetMaxTxPower *message, - ProtobufCBuffer *buffer); -RpcReqWifiGetMaxTxPower * - rpc__req__wifi_get_max_tx_power__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_get_max_tx_power__free_unpacked - (RpcReqWifiGetMaxTxPower *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiGetMaxTxPower methods */ -void rpc__resp__wifi_get_max_tx_power__init - (RpcRespWifiGetMaxTxPower *message); -size_t rpc__resp__wifi_get_max_tx_power__get_packed_size - (const RpcRespWifiGetMaxTxPower *message); -size_t rpc__resp__wifi_get_max_tx_power__pack - (const RpcRespWifiGetMaxTxPower *message, - uint8_t *out); -size_t rpc__resp__wifi_get_max_tx_power__pack_to_buffer - (const RpcRespWifiGetMaxTxPower *message, - ProtobufCBuffer *buffer); -RpcRespWifiGetMaxTxPower * - rpc__resp__wifi_get_max_tx_power__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_get_max_tx_power__free_unpacked - (RpcRespWifiGetMaxTxPower *message, - ProtobufCAllocator *allocator); -/* RpcReqConfigHeartbeat methods */ -void rpc__req__config_heartbeat__init - (RpcReqConfigHeartbeat *message); -size_t rpc__req__config_heartbeat__get_packed_size - (const RpcReqConfigHeartbeat *message); -size_t rpc__req__config_heartbeat__pack - (const RpcReqConfigHeartbeat *message, - uint8_t *out); -size_t rpc__req__config_heartbeat__pack_to_buffer - (const RpcReqConfigHeartbeat *message, - ProtobufCBuffer *buffer); -RpcReqConfigHeartbeat * - rpc__req__config_heartbeat__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__config_heartbeat__free_unpacked - (RpcReqConfigHeartbeat *message, - ProtobufCAllocator *allocator); -/* RpcRespConfigHeartbeat methods */ -void rpc__resp__config_heartbeat__init - (RpcRespConfigHeartbeat *message); -size_t rpc__resp__config_heartbeat__get_packed_size - (const RpcRespConfigHeartbeat *message); -size_t rpc__resp__config_heartbeat__pack - (const RpcRespConfigHeartbeat *message, - uint8_t *out); -size_t rpc__resp__config_heartbeat__pack_to_buffer - (const RpcRespConfigHeartbeat *message, - ProtobufCBuffer *buffer); -RpcRespConfigHeartbeat * - rpc__resp__config_heartbeat__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__config_heartbeat__free_unpacked - (RpcRespConfigHeartbeat *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiInit methods */ -void rpc__req__wifi_init__init - (RpcReqWifiInit *message); -size_t rpc__req__wifi_init__get_packed_size - (const RpcReqWifiInit *message); -size_t rpc__req__wifi_init__pack - (const RpcReqWifiInit *message, - uint8_t *out); -size_t rpc__req__wifi_init__pack_to_buffer - (const RpcReqWifiInit *message, - ProtobufCBuffer *buffer); -RpcReqWifiInit * - rpc__req__wifi_init__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_init__free_unpacked - (RpcReqWifiInit *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiInit methods */ -void rpc__resp__wifi_init__init - (RpcRespWifiInit *message); -size_t rpc__resp__wifi_init__get_packed_size - (const RpcRespWifiInit *message); -size_t rpc__resp__wifi_init__pack - (const RpcRespWifiInit *message, - uint8_t *out); -size_t rpc__resp__wifi_init__pack_to_buffer - (const RpcRespWifiInit *message, - ProtobufCBuffer *buffer); -RpcRespWifiInit * - rpc__resp__wifi_init__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_init__free_unpacked - (RpcRespWifiInit *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiDeinit methods */ -void rpc__req__wifi_deinit__init - (RpcReqWifiDeinit *message); -size_t rpc__req__wifi_deinit__get_packed_size - (const RpcReqWifiDeinit *message); -size_t rpc__req__wifi_deinit__pack - (const RpcReqWifiDeinit *message, - uint8_t *out); -size_t rpc__req__wifi_deinit__pack_to_buffer - (const RpcReqWifiDeinit *message, - ProtobufCBuffer *buffer); -RpcReqWifiDeinit * - rpc__req__wifi_deinit__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_deinit__free_unpacked - (RpcReqWifiDeinit *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiDeinit methods */ -void rpc__resp__wifi_deinit__init - (RpcRespWifiDeinit *message); -size_t rpc__resp__wifi_deinit__get_packed_size - (const RpcRespWifiDeinit *message); -size_t rpc__resp__wifi_deinit__pack - (const RpcRespWifiDeinit *message, - uint8_t *out); -size_t rpc__resp__wifi_deinit__pack_to_buffer - (const RpcRespWifiDeinit *message, - ProtobufCBuffer *buffer); -RpcRespWifiDeinit * - rpc__resp__wifi_deinit__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_deinit__free_unpacked - (RpcRespWifiDeinit *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiSetConfig methods */ -void rpc__req__wifi_set_config__init - (RpcReqWifiSetConfig *message); -size_t rpc__req__wifi_set_config__get_packed_size - (const RpcReqWifiSetConfig *message); -size_t rpc__req__wifi_set_config__pack - (const RpcReqWifiSetConfig *message, - uint8_t *out); -size_t rpc__req__wifi_set_config__pack_to_buffer - (const RpcReqWifiSetConfig *message, - ProtobufCBuffer *buffer); -RpcReqWifiSetConfig * - rpc__req__wifi_set_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_set_config__free_unpacked - (RpcReqWifiSetConfig *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiSetConfig methods */ -void rpc__resp__wifi_set_config__init - (RpcRespWifiSetConfig *message); -size_t rpc__resp__wifi_set_config__get_packed_size - (const RpcRespWifiSetConfig *message); -size_t rpc__resp__wifi_set_config__pack - (const RpcRespWifiSetConfig *message, - uint8_t *out); -size_t rpc__resp__wifi_set_config__pack_to_buffer - (const RpcRespWifiSetConfig *message, - ProtobufCBuffer *buffer); -RpcRespWifiSetConfig * - rpc__resp__wifi_set_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_set_config__free_unpacked - (RpcRespWifiSetConfig *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiGetConfig methods */ -void rpc__req__wifi_get_config__init - (RpcReqWifiGetConfig *message); -size_t rpc__req__wifi_get_config__get_packed_size - (const RpcReqWifiGetConfig *message); -size_t rpc__req__wifi_get_config__pack - (const RpcReqWifiGetConfig *message, - uint8_t *out); -size_t rpc__req__wifi_get_config__pack_to_buffer - (const RpcReqWifiGetConfig *message, - ProtobufCBuffer *buffer); -RpcReqWifiGetConfig * - rpc__req__wifi_get_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_get_config__free_unpacked - (RpcReqWifiGetConfig *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiGetConfig methods */ -void rpc__resp__wifi_get_config__init - (RpcRespWifiGetConfig *message); -size_t rpc__resp__wifi_get_config__get_packed_size - (const RpcRespWifiGetConfig *message); -size_t rpc__resp__wifi_get_config__pack - (const RpcRespWifiGetConfig *message, - uint8_t *out); -size_t rpc__resp__wifi_get_config__pack_to_buffer - (const RpcRespWifiGetConfig *message, - ProtobufCBuffer *buffer); -RpcRespWifiGetConfig * - rpc__resp__wifi_get_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_get_config__free_unpacked - (RpcRespWifiGetConfig *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiConnect methods */ -void rpc__req__wifi_connect__init - (RpcReqWifiConnect *message); -size_t rpc__req__wifi_connect__get_packed_size - (const RpcReqWifiConnect *message); -size_t rpc__req__wifi_connect__pack - (const RpcReqWifiConnect *message, - uint8_t *out); -size_t rpc__req__wifi_connect__pack_to_buffer - (const RpcReqWifiConnect *message, - ProtobufCBuffer *buffer); -RpcReqWifiConnect * - rpc__req__wifi_connect__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_connect__free_unpacked - (RpcReqWifiConnect *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiConnect methods */ -void rpc__resp__wifi_connect__init - (RpcRespWifiConnect *message); -size_t rpc__resp__wifi_connect__get_packed_size - (const RpcRespWifiConnect *message); -size_t rpc__resp__wifi_connect__pack - (const RpcRespWifiConnect *message, - uint8_t *out); -size_t rpc__resp__wifi_connect__pack_to_buffer - (const RpcRespWifiConnect *message, - ProtobufCBuffer *buffer); -RpcRespWifiConnect * - rpc__resp__wifi_connect__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_connect__free_unpacked - (RpcRespWifiConnect *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiDisconnect methods */ -void rpc__req__wifi_disconnect__init - (RpcReqWifiDisconnect *message); -size_t rpc__req__wifi_disconnect__get_packed_size - (const RpcReqWifiDisconnect *message); -size_t rpc__req__wifi_disconnect__pack - (const RpcReqWifiDisconnect *message, - uint8_t *out); -size_t rpc__req__wifi_disconnect__pack_to_buffer - (const RpcReqWifiDisconnect *message, - ProtobufCBuffer *buffer); -RpcReqWifiDisconnect * - rpc__req__wifi_disconnect__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_disconnect__free_unpacked - (RpcReqWifiDisconnect *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiDisconnect methods */ -void rpc__resp__wifi_disconnect__init - (RpcRespWifiDisconnect *message); -size_t rpc__resp__wifi_disconnect__get_packed_size - (const RpcRespWifiDisconnect *message); -size_t rpc__resp__wifi_disconnect__pack - (const RpcRespWifiDisconnect *message, - uint8_t *out); -size_t rpc__resp__wifi_disconnect__pack_to_buffer - (const RpcRespWifiDisconnect *message, - ProtobufCBuffer *buffer); -RpcRespWifiDisconnect * - rpc__resp__wifi_disconnect__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_disconnect__free_unpacked - (RpcRespWifiDisconnect *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiStart methods */ -void rpc__req__wifi_start__init - (RpcReqWifiStart *message); -size_t rpc__req__wifi_start__get_packed_size - (const RpcReqWifiStart *message); -size_t rpc__req__wifi_start__pack - (const RpcReqWifiStart *message, - uint8_t *out); -size_t rpc__req__wifi_start__pack_to_buffer - (const RpcReqWifiStart *message, - ProtobufCBuffer *buffer); -RpcReqWifiStart * - rpc__req__wifi_start__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_start__free_unpacked - (RpcReqWifiStart *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiStart methods */ -void rpc__resp__wifi_start__init - (RpcRespWifiStart *message); -size_t rpc__resp__wifi_start__get_packed_size - (const RpcRespWifiStart *message); -size_t rpc__resp__wifi_start__pack - (const RpcRespWifiStart *message, - uint8_t *out); -size_t rpc__resp__wifi_start__pack_to_buffer - (const RpcRespWifiStart *message, - ProtobufCBuffer *buffer); -RpcRespWifiStart * - rpc__resp__wifi_start__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_start__free_unpacked - (RpcRespWifiStart *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiStop methods */ -void rpc__req__wifi_stop__init - (RpcReqWifiStop *message); -size_t rpc__req__wifi_stop__get_packed_size - (const RpcReqWifiStop *message); -size_t rpc__req__wifi_stop__pack - (const RpcReqWifiStop *message, - uint8_t *out); -size_t rpc__req__wifi_stop__pack_to_buffer - (const RpcReqWifiStop *message, - ProtobufCBuffer *buffer); -RpcReqWifiStop * - rpc__req__wifi_stop__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_stop__free_unpacked - (RpcReqWifiStop *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiStop methods */ -void rpc__resp__wifi_stop__init - (RpcRespWifiStop *message); -size_t rpc__resp__wifi_stop__get_packed_size - (const RpcRespWifiStop *message); -size_t rpc__resp__wifi_stop__pack - (const RpcRespWifiStop *message, - uint8_t *out); -size_t rpc__resp__wifi_stop__pack_to_buffer - (const RpcRespWifiStop *message, - ProtobufCBuffer *buffer); -RpcRespWifiStop * - rpc__resp__wifi_stop__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_stop__free_unpacked - (RpcRespWifiStop *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiScanStart methods */ -void rpc__req__wifi_scan_start__init - (RpcReqWifiScanStart *message); -size_t rpc__req__wifi_scan_start__get_packed_size - (const RpcReqWifiScanStart *message); -size_t rpc__req__wifi_scan_start__pack - (const RpcReqWifiScanStart *message, - uint8_t *out); -size_t rpc__req__wifi_scan_start__pack_to_buffer - (const RpcReqWifiScanStart *message, - ProtobufCBuffer *buffer); -RpcReqWifiScanStart * - rpc__req__wifi_scan_start__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_scan_start__free_unpacked - (RpcReqWifiScanStart *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiScanStart methods */ -void rpc__resp__wifi_scan_start__init - (RpcRespWifiScanStart *message); -size_t rpc__resp__wifi_scan_start__get_packed_size - (const RpcRespWifiScanStart *message); -size_t rpc__resp__wifi_scan_start__pack - (const RpcRespWifiScanStart *message, - uint8_t *out); -size_t rpc__resp__wifi_scan_start__pack_to_buffer - (const RpcRespWifiScanStart *message, - ProtobufCBuffer *buffer); -RpcRespWifiScanStart * - rpc__resp__wifi_scan_start__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_scan_start__free_unpacked - (RpcRespWifiScanStart *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiScanStop methods */ -void rpc__req__wifi_scan_stop__init - (RpcReqWifiScanStop *message); -size_t rpc__req__wifi_scan_stop__get_packed_size - (const RpcReqWifiScanStop *message); -size_t rpc__req__wifi_scan_stop__pack - (const RpcReqWifiScanStop *message, - uint8_t *out); -size_t rpc__req__wifi_scan_stop__pack_to_buffer - (const RpcReqWifiScanStop *message, - ProtobufCBuffer *buffer); -RpcReqWifiScanStop * - rpc__req__wifi_scan_stop__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_scan_stop__free_unpacked - (RpcReqWifiScanStop *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiScanStop methods */ -void rpc__resp__wifi_scan_stop__init - (RpcRespWifiScanStop *message); -size_t rpc__resp__wifi_scan_stop__get_packed_size - (const RpcRespWifiScanStop *message); -size_t rpc__resp__wifi_scan_stop__pack - (const RpcRespWifiScanStop *message, - uint8_t *out); -size_t rpc__resp__wifi_scan_stop__pack_to_buffer - (const RpcRespWifiScanStop *message, - ProtobufCBuffer *buffer); -RpcRespWifiScanStop * - rpc__resp__wifi_scan_stop__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_scan_stop__free_unpacked - (RpcRespWifiScanStop *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiScanGetApNum methods */ -void rpc__req__wifi_scan_get_ap_num__init - (RpcReqWifiScanGetApNum *message); -size_t rpc__req__wifi_scan_get_ap_num__get_packed_size - (const RpcReqWifiScanGetApNum *message); -size_t rpc__req__wifi_scan_get_ap_num__pack - (const RpcReqWifiScanGetApNum *message, - uint8_t *out); -size_t rpc__req__wifi_scan_get_ap_num__pack_to_buffer - (const RpcReqWifiScanGetApNum *message, - ProtobufCBuffer *buffer); -RpcReqWifiScanGetApNum * - rpc__req__wifi_scan_get_ap_num__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_scan_get_ap_num__free_unpacked - (RpcReqWifiScanGetApNum *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiScanGetApNum methods */ -void rpc__resp__wifi_scan_get_ap_num__init - (RpcRespWifiScanGetApNum *message); -size_t rpc__resp__wifi_scan_get_ap_num__get_packed_size - (const RpcRespWifiScanGetApNum *message); -size_t rpc__resp__wifi_scan_get_ap_num__pack - (const RpcRespWifiScanGetApNum *message, - uint8_t *out); -size_t rpc__resp__wifi_scan_get_ap_num__pack_to_buffer - (const RpcRespWifiScanGetApNum *message, - ProtobufCBuffer *buffer); -RpcRespWifiScanGetApNum * - rpc__resp__wifi_scan_get_ap_num__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_scan_get_ap_num__free_unpacked - (RpcRespWifiScanGetApNum *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiScanGetApRecords methods */ -void rpc__req__wifi_scan_get_ap_records__init - (RpcReqWifiScanGetApRecords *message); -size_t rpc__req__wifi_scan_get_ap_records__get_packed_size - (const RpcReqWifiScanGetApRecords *message); -size_t rpc__req__wifi_scan_get_ap_records__pack - (const RpcReqWifiScanGetApRecords *message, - uint8_t *out); -size_t rpc__req__wifi_scan_get_ap_records__pack_to_buffer - (const RpcReqWifiScanGetApRecords *message, - ProtobufCBuffer *buffer); -RpcReqWifiScanGetApRecords * - rpc__req__wifi_scan_get_ap_records__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_scan_get_ap_records__free_unpacked - (RpcReqWifiScanGetApRecords *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiScanGetApRecords methods */ -void rpc__resp__wifi_scan_get_ap_records__init - (RpcRespWifiScanGetApRecords *message); -size_t rpc__resp__wifi_scan_get_ap_records__get_packed_size - (const RpcRespWifiScanGetApRecords *message); -size_t rpc__resp__wifi_scan_get_ap_records__pack - (const RpcRespWifiScanGetApRecords *message, - uint8_t *out); -size_t rpc__resp__wifi_scan_get_ap_records__pack_to_buffer - (const RpcRespWifiScanGetApRecords *message, - ProtobufCBuffer *buffer); -RpcRespWifiScanGetApRecords * - rpc__resp__wifi_scan_get_ap_records__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_scan_get_ap_records__free_unpacked - (RpcRespWifiScanGetApRecords *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiScanGetApRecord methods */ -void rpc__req__wifi_scan_get_ap_record__init - (RpcReqWifiScanGetApRecord *message); -size_t rpc__req__wifi_scan_get_ap_record__get_packed_size - (const RpcReqWifiScanGetApRecord *message); -size_t rpc__req__wifi_scan_get_ap_record__pack - (const RpcReqWifiScanGetApRecord *message, - uint8_t *out); -size_t rpc__req__wifi_scan_get_ap_record__pack_to_buffer - (const RpcReqWifiScanGetApRecord *message, - ProtobufCBuffer *buffer); -RpcReqWifiScanGetApRecord * - rpc__req__wifi_scan_get_ap_record__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_scan_get_ap_record__free_unpacked - (RpcReqWifiScanGetApRecord *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiScanGetApRecord methods */ -void rpc__resp__wifi_scan_get_ap_record__init - (RpcRespWifiScanGetApRecord *message); -size_t rpc__resp__wifi_scan_get_ap_record__get_packed_size - (const RpcRespWifiScanGetApRecord *message); -size_t rpc__resp__wifi_scan_get_ap_record__pack - (const RpcRespWifiScanGetApRecord *message, - uint8_t *out); -size_t rpc__resp__wifi_scan_get_ap_record__pack_to_buffer - (const RpcRespWifiScanGetApRecord *message, - ProtobufCBuffer *buffer); -RpcRespWifiScanGetApRecord * - rpc__resp__wifi_scan_get_ap_record__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_scan_get_ap_record__free_unpacked - (RpcRespWifiScanGetApRecord *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiClearApList methods */ -void rpc__req__wifi_clear_ap_list__init - (RpcReqWifiClearApList *message); -size_t rpc__req__wifi_clear_ap_list__get_packed_size - (const RpcReqWifiClearApList *message); -size_t rpc__req__wifi_clear_ap_list__pack - (const RpcReqWifiClearApList *message, - uint8_t *out); -size_t rpc__req__wifi_clear_ap_list__pack_to_buffer - (const RpcReqWifiClearApList *message, - ProtobufCBuffer *buffer); -RpcReqWifiClearApList * - rpc__req__wifi_clear_ap_list__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_clear_ap_list__free_unpacked - (RpcReqWifiClearApList *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiClearApList methods */ -void rpc__resp__wifi_clear_ap_list__init - (RpcRespWifiClearApList *message); -size_t rpc__resp__wifi_clear_ap_list__get_packed_size - (const RpcRespWifiClearApList *message); -size_t rpc__resp__wifi_clear_ap_list__pack - (const RpcRespWifiClearApList *message, - uint8_t *out); -size_t rpc__resp__wifi_clear_ap_list__pack_to_buffer - (const RpcRespWifiClearApList *message, - ProtobufCBuffer *buffer); -RpcRespWifiClearApList * - rpc__resp__wifi_clear_ap_list__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_clear_ap_list__free_unpacked - (RpcRespWifiClearApList *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiRestore methods */ -void rpc__req__wifi_restore__init - (RpcReqWifiRestore *message); -size_t rpc__req__wifi_restore__get_packed_size - (const RpcReqWifiRestore *message); -size_t rpc__req__wifi_restore__pack - (const RpcReqWifiRestore *message, - uint8_t *out); -size_t rpc__req__wifi_restore__pack_to_buffer - (const RpcReqWifiRestore *message, - ProtobufCBuffer *buffer); -RpcReqWifiRestore * - rpc__req__wifi_restore__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_restore__free_unpacked - (RpcReqWifiRestore *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiRestore methods */ -void rpc__resp__wifi_restore__init - (RpcRespWifiRestore *message); -size_t rpc__resp__wifi_restore__get_packed_size - (const RpcRespWifiRestore *message); -size_t rpc__resp__wifi_restore__pack - (const RpcRespWifiRestore *message, - uint8_t *out); -size_t rpc__resp__wifi_restore__pack_to_buffer - (const RpcRespWifiRestore *message, - ProtobufCBuffer *buffer); -RpcRespWifiRestore * - rpc__resp__wifi_restore__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_restore__free_unpacked - (RpcRespWifiRestore *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiClearFastConnect methods */ -void rpc__req__wifi_clear_fast_connect__init - (RpcReqWifiClearFastConnect *message); -size_t rpc__req__wifi_clear_fast_connect__get_packed_size - (const RpcReqWifiClearFastConnect *message); -size_t rpc__req__wifi_clear_fast_connect__pack - (const RpcReqWifiClearFastConnect *message, - uint8_t *out); -size_t rpc__req__wifi_clear_fast_connect__pack_to_buffer - (const RpcReqWifiClearFastConnect *message, - ProtobufCBuffer *buffer); -RpcReqWifiClearFastConnect * - rpc__req__wifi_clear_fast_connect__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_clear_fast_connect__free_unpacked - (RpcReqWifiClearFastConnect *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiClearFastConnect methods */ -void rpc__resp__wifi_clear_fast_connect__init - (RpcRespWifiClearFastConnect *message); -size_t rpc__resp__wifi_clear_fast_connect__get_packed_size - (const RpcRespWifiClearFastConnect *message); -size_t rpc__resp__wifi_clear_fast_connect__pack - (const RpcRespWifiClearFastConnect *message, - uint8_t *out); -size_t rpc__resp__wifi_clear_fast_connect__pack_to_buffer - (const RpcRespWifiClearFastConnect *message, - ProtobufCBuffer *buffer); -RpcRespWifiClearFastConnect * - rpc__resp__wifi_clear_fast_connect__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_clear_fast_connect__free_unpacked - (RpcRespWifiClearFastConnect *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiDeauthSta methods */ -void rpc__req__wifi_deauth_sta__init - (RpcReqWifiDeauthSta *message); -size_t rpc__req__wifi_deauth_sta__get_packed_size - (const RpcReqWifiDeauthSta *message); -size_t rpc__req__wifi_deauth_sta__pack - (const RpcReqWifiDeauthSta *message, - uint8_t *out); -size_t rpc__req__wifi_deauth_sta__pack_to_buffer - (const RpcReqWifiDeauthSta *message, - ProtobufCBuffer *buffer); -RpcReqWifiDeauthSta * - rpc__req__wifi_deauth_sta__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_deauth_sta__free_unpacked - (RpcReqWifiDeauthSta *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiDeauthSta methods */ -void rpc__resp__wifi_deauth_sta__init - (RpcRespWifiDeauthSta *message); -size_t rpc__resp__wifi_deauth_sta__get_packed_size - (const RpcRespWifiDeauthSta *message); -size_t rpc__resp__wifi_deauth_sta__pack - (const RpcRespWifiDeauthSta *message, - uint8_t *out); -size_t rpc__resp__wifi_deauth_sta__pack_to_buffer - (const RpcRespWifiDeauthSta *message, - ProtobufCBuffer *buffer); -RpcRespWifiDeauthSta * - rpc__resp__wifi_deauth_sta__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_deauth_sta__free_unpacked - (RpcRespWifiDeauthSta *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiStaGetApInfo methods */ -void rpc__req__wifi_sta_get_ap_info__init - (RpcReqWifiStaGetApInfo *message); -size_t rpc__req__wifi_sta_get_ap_info__get_packed_size - (const RpcReqWifiStaGetApInfo *message); -size_t rpc__req__wifi_sta_get_ap_info__pack - (const RpcReqWifiStaGetApInfo *message, - uint8_t *out); -size_t rpc__req__wifi_sta_get_ap_info__pack_to_buffer - (const RpcReqWifiStaGetApInfo *message, - ProtobufCBuffer *buffer); -RpcReqWifiStaGetApInfo * - rpc__req__wifi_sta_get_ap_info__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_sta_get_ap_info__free_unpacked - (RpcReqWifiStaGetApInfo *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiStaGetApInfo methods */ -void rpc__resp__wifi_sta_get_ap_info__init - (RpcRespWifiStaGetApInfo *message); -size_t rpc__resp__wifi_sta_get_ap_info__get_packed_size - (const RpcRespWifiStaGetApInfo *message); -size_t rpc__resp__wifi_sta_get_ap_info__pack - (const RpcRespWifiStaGetApInfo *message, - uint8_t *out); -size_t rpc__resp__wifi_sta_get_ap_info__pack_to_buffer - (const RpcRespWifiStaGetApInfo *message, - ProtobufCBuffer *buffer); -RpcRespWifiStaGetApInfo * - rpc__resp__wifi_sta_get_ap_info__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_sta_get_ap_info__free_unpacked - (RpcRespWifiStaGetApInfo *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiSetProtocol methods */ -void rpc__req__wifi_set_protocol__init - (RpcReqWifiSetProtocol *message); -size_t rpc__req__wifi_set_protocol__get_packed_size - (const RpcReqWifiSetProtocol *message); -size_t rpc__req__wifi_set_protocol__pack - (const RpcReqWifiSetProtocol *message, - uint8_t *out); -size_t rpc__req__wifi_set_protocol__pack_to_buffer - (const RpcReqWifiSetProtocol *message, - ProtobufCBuffer *buffer); -RpcReqWifiSetProtocol * - rpc__req__wifi_set_protocol__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_set_protocol__free_unpacked - (RpcReqWifiSetProtocol *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiSetProtocol methods */ -void rpc__resp__wifi_set_protocol__init - (RpcRespWifiSetProtocol *message); -size_t rpc__resp__wifi_set_protocol__get_packed_size - (const RpcRespWifiSetProtocol *message); -size_t rpc__resp__wifi_set_protocol__pack - (const RpcRespWifiSetProtocol *message, - uint8_t *out); -size_t rpc__resp__wifi_set_protocol__pack_to_buffer - (const RpcRespWifiSetProtocol *message, - ProtobufCBuffer *buffer); -RpcRespWifiSetProtocol * - rpc__resp__wifi_set_protocol__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_set_protocol__free_unpacked - (RpcRespWifiSetProtocol *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiGetProtocol methods */ -void rpc__req__wifi_get_protocol__init - (RpcReqWifiGetProtocol *message); -size_t rpc__req__wifi_get_protocol__get_packed_size - (const RpcReqWifiGetProtocol *message); -size_t rpc__req__wifi_get_protocol__pack - (const RpcReqWifiGetProtocol *message, - uint8_t *out); -size_t rpc__req__wifi_get_protocol__pack_to_buffer - (const RpcReqWifiGetProtocol *message, - ProtobufCBuffer *buffer); -RpcReqWifiGetProtocol * - rpc__req__wifi_get_protocol__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_get_protocol__free_unpacked - (RpcReqWifiGetProtocol *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiGetProtocol methods */ -void rpc__resp__wifi_get_protocol__init - (RpcRespWifiGetProtocol *message); -size_t rpc__resp__wifi_get_protocol__get_packed_size - (const RpcRespWifiGetProtocol *message); -size_t rpc__resp__wifi_get_protocol__pack - (const RpcRespWifiGetProtocol *message, - uint8_t *out); -size_t rpc__resp__wifi_get_protocol__pack_to_buffer - (const RpcRespWifiGetProtocol *message, - ProtobufCBuffer *buffer); -RpcRespWifiGetProtocol * - rpc__resp__wifi_get_protocol__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_get_protocol__free_unpacked - (RpcRespWifiGetProtocol *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiSetBandwidth methods */ -void rpc__req__wifi_set_bandwidth__init - (RpcReqWifiSetBandwidth *message); -size_t rpc__req__wifi_set_bandwidth__get_packed_size - (const RpcReqWifiSetBandwidth *message); -size_t rpc__req__wifi_set_bandwidth__pack - (const RpcReqWifiSetBandwidth *message, - uint8_t *out); -size_t rpc__req__wifi_set_bandwidth__pack_to_buffer - (const RpcReqWifiSetBandwidth *message, - ProtobufCBuffer *buffer); -RpcReqWifiSetBandwidth * - rpc__req__wifi_set_bandwidth__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_set_bandwidth__free_unpacked - (RpcReqWifiSetBandwidth *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiSetBandwidth methods */ -void rpc__resp__wifi_set_bandwidth__init - (RpcRespWifiSetBandwidth *message); -size_t rpc__resp__wifi_set_bandwidth__get_packed_size - (const RpcRespWifiSetBandwidth *message); -size_t rpc__resp__wifi_set_bandwidth__pack - (const RpcRespWifiSetBandwidth *message, - uint8_t *out); -size_t rpc__resp__wifi_set_bandwidth__pack_to_buffer - (const RpcRespWifiSetBandwidth *message, - ProtobufCBuffer *buffer); -RpcRespWifiSetBandwidth * - rpc__resp__wifi_set_bandwidth__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_set_bandwidth__free_unpacked - (RpcRespWifiSetBandwidth *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiGetBandwidth methods */ -void rpc__req__wifi_get_bandwidth__init - (RpcReqWifiGetBandwidth *message); -size_t rpc__req__wifi_get_bandwidth__get_packed_size - (const RpcReqWifiGetBandwidth *message); -size_t rpc__req__wifi_get_bandwidth__pack - (const RpcReqWifiGetBandwidth *message, - uint8_t *out); -size_t rpc__req__wifi_get_bandwidth__pack_to_buffer - (const RpcReqWifiGetBandwidth *message, - ProtobufCBuffer *buffer); -RpcReqWifiGetBandwidth * - rpc__req__wifi_get_bandwidth__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_get_bandwidth__free_unpacked - (RpcReqWifiGetBandwidth *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiGetBandwidth methods */ -void rpc__resp__wifi_get_bandwidth__init - (RpcRespWifiGetBandwidth *message); -size_t rpc__resp__wifi_get_bandwidth__get_packed_size - (const RpcRespWifiGetBandwidth *message); -size_t rpc__resp__wifi_get_bandwidth__pack - (const RpcRespWifiGetBandwidth *message, - uint8_t *out); -size_t rpc__resp__wifi_get_bandwidth__pack_to_buffer - (const RpcRespWifiGetBandwidth *message, - ProtobufCBuffer *buffer); -RpcRespWifiGetBandwidth * - rpc__resp__wifi_get_bandwidth__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_get_bandwidth__free_unpacked - (RpcRespWifiGetBandwidth *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiSetChannel methods */ -void rpc__req__wifi_set_channel__init - (RpcReqWifiSetChannel *message); -size_t rpc__req__wifi_set_channel__get_packed_size - (const RpcReqWifiSetChannel *message); -size_t rpc__req__wifi_set_channel__pack - (const RpcReqWifiSetChannel *message, - uint8_t *out); -size_t rpc__req__wifi_set_channel__pack_to_buffer - (const RpcReqWifiSetChannel *message, - ProtobufCBuffer *buffer); -RpcReqWifiSetChannel * - rpc__req__wifi_set_channel__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_set_channel__free_unpacked - (RpcReqWifiSetChannel *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiSetChannel methods */ -void rpc__resp__wifi_set_channel__init - (RpcRespWifiSetChannel *message); -size_t rpc__resp__wifi_set_channel__get_packed_size - (const RpcRespWifiSetChannel *message); -size_t rpc__resp__wifi_set_channel__pack - (const RpcRespWifiSetChannel *message, - uint8_t *out); -size_t rpc__resp__wifi_set_channel__pack_to_buffer - (const RpcRespWifiSetChannel *message, - ProtobufCBuffer *buffer); -RpcRespWifiSetChannel * - rpc__resp__wifi_set_channel__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_set_channel__free_unpacked - (RpcRespWifiSetChannel *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiGetChannel methods */ -void rpc__req__wifi_get_channel__init - (RpcReqWifiGetChannel *message); -size_t rpc__req__wifi_get_channel__get_packed_size - (const RpcReqWifiGetChannel *message); -size_t rpc__req__wifi_get_channel__pack - (const RpcReqWifiGetChannel *message, - uint8_t *out); -size_t rpc__req__wifi_get_channel__pack_to_buffer - (const RpcReqWifiGetChannel *message, - ProtobufCBuffer *buffer); -RpcReqWifiGetChannel * - rpc__req__wifi_get_channel__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_get_channel__free_unpacked - (RpcReqWifiGetChannel *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiGetChannel methods */ -void rpc__resp__wifi_get_channel__init - (RpcRespWifiGetChannel *message); -size_t rpc__resp__wifi_get_channel__get_packed_size - (const RpcRespWifiGetChannel *message); -size_t rpc__resp__wifi_get_channel__pack - (const RpcRespWifiGetChannel *message, - uint8_t *out); -size_t rpc__resp__wifi_get_channel__pack_to_buffer - (const RpcRespWifiGetChannel *message, - ProtobufCBuffer *buffer); -RpcRespWifiGetChannel * - rpc__resp__wifi_get_channel__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_get_channel__free_unpacked - (RpcRespWifiGetChannel *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiSetStorage methods */ -void rpc__req__wifi_set_storage__init - (RpcReqWifiSetStorage *message); -size_t rpc__req__wifi_set_storage__get_packed_size - (const RpcReqWifiSetStorage *message); -size_t rpc__req__wifi_set_storage__pack - (const RpcReqWifiSetStorage *message, - uint8_t *out); -size_t rpc__req__wifi_set_storage__pack_to_buffer - (const RpcReqWifiSetStorage *message, - ProtobufCBuffer *buffer); -RpcReqWifiSetStorage * - rpc__req__wifi_set_storage__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_set_storage__free_unpacked - (RpcReqWifiSetStorage *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiSetStorage methods */ -void rpc__resp__wifi_set_storage__init - (RpcRespWifiSetStorage *message); -size_t rpc__resp__wifi_set_storage__get_packed_size - (const RpcRespWifiSetStorage *message); -size_t rpc__resp__wifi_set_storage__pack - (const RpcRespWifiSetStorage *message, - uint8_t *out); -size_t rpc__resp__wifi_set_storage__pack_to_buffer - (const RpcRespWifiSetStorage *message, - ProtobufCBuffer *buffer); -RpcRespWifiSetStorage * - rpc__resp__wifi_set_storage__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_set_storage__free_unpacked - (RpcRespWifiSetStorage *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiSetCountryCode methods */ -void rpc__req__wifi_set_country_code__init - (RpcReqWifiSetCountryCode *message); -size_t rpc__req__wifi_set_country_code__get_packed_size - (const RpcReqWifiSetCountryCode *message); -size_t rpc__req__wifi_set_country_code__pack - (const RpcReqWifiSetCountryCode *message, - uint8_t *out); -size_t rpc__req__wifi_set_country_code__pack_to_buffer - (const RpcReqWifiSetCountryCode *message, - ProtobufCBuffer *buffer); -RpcReqWifiSetCountryCode * - rpc__req__wifi_set_country_code__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_set_country_code__free_unpacked - (RpcReqWifiSetCountryCode *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiSetCountryCode methods */ -void rpc__resp__wifi_set_country_code__init - (RpcRespWifiSetCountryCode *message); -size_t rpc__resp__wifi_set_country_code__get_packed_size - (const RpcRespWifiSetCountryCode *message); -size_t rpc__resp__wifi_set_country_code__pack - (const RpcRespWifiSetCountryCode *message, - uint8_t *out); -size_t rpc__resp__wifi_set_country_code__pack_to_buffer - (const RpcRespWifiSetCountryCode *message, - ProtobufCBuffer *buffer); -RpcRespWifiSetCountryCode * - rpc__resp__wifi_set_country_code__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_set_country_code__free_unpacked - (RpcRespWifiSetCountryCode *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiGetCountryCode methods */ -void rpc__req__wifi_get_country_code__init - (RpcReqWifiGetCountryCode *message); -size_t rpc__req__wifi_get_country_code__get_packed_size - (const RpcReqWifiGetCountryCode *message); -size_t rpc__req__wifi_get_country_code__pack - (const RpcReqWifiGetCountryCode *message, - uint8_t *out); -size_t rpc__req__wifi_get_country_code__pack_to_buffer - (const RpcReqWifiGetCountryCode *message, - ProtobufCBuffer *buffer); -RpcReqWifiGetCountryCode * - rpc__req__wifi_get_country_code__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_get_country_code__free_unpacked - (RpcReqWifiGetCountryCode *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiGetCountryCode methods */ -void rpc__resp__wifi_get_country_code__init - (RpcRespWifiGetCountryCode *message); -size_t rpc__resp__wifi_get_country_code__get_packed_size - (const RpcRespWifiGetCountryCode *message); -size_t rpc__resp__wifi_get_country_code__pack - (const RpcRespWifiGetCountryCode *message, - uint8_t *out); -size_t rpc__resp__wifi_get_country_code__pack_to_buffer - (const RpcRespWifiGetCountryCode *message, - ProtobufCBuffer *buffer); -RpcRespWifiGetCountryCode * - rpc__resp__wifi_get_country_code__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_get_country_code__free_unpacked - (RpcRespWifiGetCountryCode *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiSetCountry methods */ -void rpc__req__wifi_set_country__init - (RpcReqWifiSetCountry *message); -size_t rpc__req__wifi_set_country__get_packed_size - (const RpcReqWifiSetCountry *message); -size_t rpc__req__wifi_set_country__pack - (const RpcReqWifiSetCountry *message, - uint8_t *out); -size_t rpc__req__wifi_set_country__pack_to_buffer - (const RpcReqWifiSetCountry *message, - ProtobufCBuffer *buffer); -RpcReqWifiSetCountry * - rpc__req__wifi_set_country__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_set_country__free_unpacked - (RpcReqWifiSetCountry *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiSetCountry methods */ -void rpc__resp__wifi_set_country__init - (RpcRespWifiSetCountry *message); -size_t rpc__resp__wifi_set_country__get_packed_size - (const RpcRespWifiSetCountry *message); -size_t rpc__resp__wifi_set_country__pack - (const RpcRespWifiSetCountry *message, - uint8_t *out); -size_t rpc__resp__wifi_set_country__pack_to_buffer - (const RpcRespWifiSetCountry *message, - ProtobufCBuffer *buffer); -RpcRespWifiSetCountry * - rpc__resp__wifi_set_country__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_set_country__free_unpacked - (RpcRespWifiSetCountry *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiGetCountry methods */ -void rpc__req__wifi_get_country__init - (RpcReqWifiGetCountry *message); -size_t rpc__req__wifi_get_country__get_packed_size - (const RpcReqWifiGetCountry *message); -size_t rpc__req__wifi_get_country__pack - (const RpcReqWifiGetCountry *message, - uint8_t *out); -size_t rpc__req__wifi_get_country__pack_to_buffer - (const RpcReqWifiGetCountry *message, - ProtobufCBuffer *buffer); -RpcReqWifiGetCountry * - rpc__req__wifi_get_country__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_get_country__free_unpacked - (RpcReqWifiGetCountry *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiGetCountry methods */ -void rpc__resp__wifi_get_country__init - (RpcRespWifiGetCountry *message); -size_t rpc__resp__wifi_get_country__get_packed_size - (const RpcRespWifiGetCountry *message); -size_t rpc__resp__wifi_get_country__pack - (const RpcRespWifiGetCountry *message, - uint8_t *out); -size_t rpc__resp__wifi_get_country__pack_to_buffer - (const RpcRespWifiGetCountry *message, - ProtobufCBuffer *buffer); -RpcRespWifiGetCountry * - rpc__resp__wifi_get_country__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_get_country__free_unpacked - (RpcRespWifiGetCountry *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiApGetStaList methods */ -void rpc__req__wifi_ap_get_sta_list__init - (RpcReqWifiApGetStaList *message); -size_t rpc__req__wifi_ap_get_sta_list__get_packed_size - (const RpcReqWifiApGetStaList *message); -size_t rpc__req__wifi_ap_get_sta_list__pack - (const RpcReqWifiApGetStaList *message, - uint8_t *out); -size_t rpc__req__wifi_ap_get_sta_list__pack_to_buffer - (const RpcReqWifiApGetStaList *message, - ProtobufCBuffer *buffer); -RpcReqWifiApGetStaList * - rpc__req__wifi_ap_get_sta_list__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_ap_get_sta_list__free_unpacked - (RpcReqWifiApGetStaList *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiApGetStaList methods */ -void rpc__resp__wifi_ap_get_sta_list__init - (RpcRespWifiApGetStaList *message); -size_t rpc__resp__wifi_ap_get_sta_list__get_packed_size - (const RpcRespWifiApGetStaList *message); -size_t rpc__resp__wifi_ap_get_sta_list__pack - (const RpcRespWifiApGetStaList *message, - uint8_t *out); -size_t rpc__resp__wifi_ap_get_sta_list__pack_to_buffer - (const RpcRespWifiApGetStaList *message, - ProtobufCBuffer *buffer); -RpcRespWifiApGetStaList * - rpc__resp__wifi_ap_get_sta_list__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_ap_get_sta_list__free_unpacked - (RpcRespWifiApGetStaList *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiApGetStaAid methods */ -void rpc__req__wifi_ap_get_sta_aid__init - (RpcReqWifiApGetStaAid *message); -size_t rpc__req__wifi_ap_get_sta_aid__get_packed_size - (const RpcReqWifiApGetStaAid *message); -size_t rpc__req__wifi_ap_get_sta_aid__pack - (const RpcReqWifiApGetStaAid *message, - uint8_t *out); -size_t rpc__req__wifi_ap_get_sta_aid__pack_to_buffer - (const RpcReqWifiApGetStaAid *message, - ProtobufCBuffer *buffer); -RpcReqWifiApGetStaAid * - rpc__req__wifi_ap_get_sta_aid__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_ap_get_sta_aid__free_unpacked - (RpcReqWifiApGetStaAid *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiStaGetNegotiatedPhymode methods */ -void rpc__req__wifi_sta_get_negotiated_phymode__init - (RpcReqWifiStaGetNegotiatedPhymode *message); -size_t rpc__req__wifi_sta_get_negotiated_phymode__get_packed_size - (const RpcReqWifiStaGetNegotiatedPhymode *message); -size_t rpc__req__wifi_sta_get_negotiated_phymode__pack - (const RpcReqWifiStaGetNegotiatedPhymode *message, - uint8_t *out); -size_t rpc__req__wifi_sta_get_negotiated_phymode__pack_to_buffer - (const RpcReqWifiStaGetNegotiatedPhymode *message, - ProtobufCBuffer *buffer); -RpcReqWifiStaGetNegotiatedPhymode * - rpc__req__wifi_sta_get_negotiated_phymode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_sta_get_negotiated_phymode__free_unpacked - (RpcReqWifiStaGetNegotiatedPhymode *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiStaGetNegotiatedPhymode methods */ -void rpc__resp__wifi_sta_get_negotiated_phymode__init - (RpcRespWifiStaGetNegotiatedPhymode *message); -size_t rpc__resp__wifi_sta_get_negotiated_phymode__get_packed_size - (const RpcRespWifiStaGetNegotiatedPhymode *message); -size_t rpc__resp__wifi_sta_get_negotiated_phymode__pack - (const RpcRespWifiStaGetNegotiatedPhymode *message, - uint8_t *out); -size_t rpc__resp__wifi_sta_get_negotiated_phymode__pack_to_buffer - (const RpcRespWifiStaGetNegotiatedPhymode *message, - ProtobufCBuffer *buffer); -RpcRespWifiStaGetNegotiatedPhymode * - rpc__resp__wifi_sta_get_negotiated_phymode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_sta_get_negotiated_phymode__free_unpacked - (RpcRespWifiStaGetNegotiatedPhymode *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiApGetStaAid methods */ -void rpc__resp__wifi_ap_get_sta_aid__init - (RpcRespWifiApGetStaAid *message); -size_t rpc__resp__wifi_ap_get_sta_aid__get_packed_size - (const RpcRespWifiApGetStaAid *message); -size_t rpc__resp__wifi_ap_get_sta_aid__pack - (const RpcRespWifiApGetStaAid *message, - uint8_t *out); -size_t rpc__resp__wifi_ap_get_sta_aid__pack_to_buffer - (const RpcRespWifiApGetStaAid *message, - ProtobufCBuffer *buffer); -RpcRespWifiApGetStaAid * - rpc__resp__wifi_ap_get_sta_aid__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_ap_get_sta_aid__free_unpacked - (RpcRespWifiApGetStaAid *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiStaGetRssi methods */ -void rpc__req__wifi_sta_get_rssi__init - (RpcReqWifiStaGetRssi *message); -size_t rpc__req__wifi_sta_get_rssi__get_packed_size - (const RpcReqWifiStaGetRssi *message); -size_t rpc__req__wifi_sta_get_rssi__pack - (const RpcReqWifiStaGetRssi *message, - uint8_t *out); -size_t rpc__req__wifi_sta_get_rssi__pack_to_buffer - (const RpcReqWifiStaGetRssi *message, - ProtobufCBuffer *buffer); -RpcReqWifiStaGetRssi * - rpc__req__wifi_sta_get_rssi__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_sta_get_rssi__free_unpacked - (RpcReqWifiStaGetRssi *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiStaGetRssi methods */ -void rpc__resp__wifi_sta_get_rssi__init - (RpcRespWifiStaGetRssi *message); -size_t rpc__resp__wifi_sta_get_rssi__get_packed_size - (const RpcRespWifiStaGetRssi *message); -size_t rpc__resp__wifi_sta_get_rssi__pack - (const RpcRespWifiStaGetRssi *message, - uint8_t *out); -size_t rpc__resp__wifi_sta_get_rssi__pack_to_buffer - (const RpcRespWifiStaGetRssi *message, - ProtobufCBuffer *buffer); -RpcRespWifiStaGetRssi * - rpc__resp__wifi_sta_get_rssi__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_sta_get_rssi__free_unpacked - (RpcRespWifiStaGetRssi *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiStaGetAid methods */ -void rpc__req__wifi_sta_get_aid__init - (RpcReqWifiStaGetAid *message); -size_t rpc__req__wifi_sta_get_aid__get_packed_size - (const RpcReqWifiStaGetAid *message); -size_t rpc__req__wifi_sta_get_aid__pack - (const RpcReqWifiStaGetAid *message, - uint8_t *out); -size_t rpc__req__wifi_sta_get_aid__pack_to_buffer - (const RpcReqWifiStaGetAid *message, - ProtobufCBuffer *buffer); -RpcReqWifiStaGetAid * - rpc__req__wifi_sta_get_aid__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_sta_get_aid__free_unpacked - (RpcReqWifiStaGetAid *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiStaGetAid methods */ -void rpc__resp__wifi_sta_get_aid__init - (RpcRespWifiStaGetAid *message); -size_t rpc__resp__wifi_sta_get_aid__get_packed_size - (const RpcRespWifiStaGetAid *message); -size_t rpc__resp__wifi_sta_get_aid__pack - (const RpcRespWifiStaGetAid *message, - uint8_t *out); -size_t rpc__resp__wifi_sta_get_aid__pack_to_buffer - (const RpcRespWifiStaGetAid *message, - ProtobufCBuffer *buffer); -RpcRespWifiStaGetAid * - rpc__resp__wifi_sta_get_aid__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_sta_get_aid__free_unpacked - (RpcRespWifiStaGetAid *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiSetProtocols methods */ -void rpc__req__wifi_set_protocols__init - (RpcReqWifiSetProtocols *message); -size_t rpc__req__wifi_set_protocols__get_packed_size - (const RpcReqWifiSetProtocols *message); -size_t rpc__req__wifi_set_protocols__pack - (const RpcReqWifiSetProtocols *message, - uint8_t *out); -size_t rpc__req__wifi_set_protocols__pack_to_buffer - (const RpcReqWifiSetProtocols *message, - ProtobufCBuffer *buffer); -RpcReqWifiSetProtocols * - rpc__req__wifi_set_protocols__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_set_protocols__free_unpacked - (RpcReqWifiSetProtocols *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiSetProtocols methods */ -void rpc__resp__wifi_set_protocols__init - (RpcRespWifiSetProtocols *message); -size_t rpc__resp__wifi_set_protocols__get_packed_size - (const RpcRespWifiSetProtocols *message); -size_t rpc__resp__wifi_set_protocols__pack - (const RpcRespWifiSetProtocols *message, - uint8_t *out); -size_t rpc__resp__wifi_set_protocols__pack_to_buffer - (const RpcRespWifiSetProtocols *message, - ProtobufCBuffer *buffer); -RpcRespWifiSetProtocols * - rpc__resp__wifi_set_protocols__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_set_protocols__free_unpacked - (RpcRespWifiSetProtocols *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiGetProtocols methods */ -void rpc__req__wifi_get_protocols__init - (RpcReqWifiGetProtocols *message); -size_t rpc__req__wifi_get_protocols__get_packed_size - (const RpcReqWifiGetProtocols *message); -size_t rpc__req__wifi_get_protocols__pack - (const RpcReqWifiGetProtocols *message, - uint8_t *out); -size_t rpc__req__wifi_get_protocols__pack_to_buffer - (const RpcReqWifiGetProtocols *message, - ProtobufCBuffer *buffer); -RpcReqWifiGetProtocols * - rpc__req__wifi_get_protocols__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_get_protocols__free_unpacked - (RpcReqWifiGetProtocols *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiGetProtocols methods */ -void rpc__resp__wifi_get_protocols__init - (RpcRespWifiGetProtocols *message); -size_t rpc__resp__wifi_get_protocols__get_packed_size - (const RpcRespWifiGetProtocols *message); -size_t rpc__resp__wifi_get_protocols__pack - (const RpcRespWifiGetProtocols *message, - uint8_t *out); -size_t rpc__resp__wifi_get_protocols__pack_to_buffer - (const RpcRespWifiGetProtocols *message, - ProtobufCBuffer *buffer); -RpcRespWifiGetProtocols * - rpc__resp__wifi_get_protocols__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_get_protocols__free_unpacked - (RpcRespWifiGetProtocols *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiSetBandwidths methods */ -void rpc__req__wifi_set_bandwidths__init - (RpcReqWifiSetBandwidths *message); -size_t rpc__req__wifi_set_bandwidths__get_packed_size - (const RpcReqWifiSetBandwidths *message); -size_t rpc__req__wifi_set_bandwidths__pack - (const RpcReqWifiSetBandwidths *message, - uint8_t *out); -size_t rpc__req__wifi_set_bandwidths__pack_to_buffer - (const RpcReqWifiSetBandwidths *message, - ProtobufCBuffer *buffer); -RpcReqWifiSetBandwidths * - rpc__req__wifi_set_bandwidths__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_set_bandwidths__free_unpacked - (RpcReqWifiSetBandwidths *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiSetBandwidths methods */ -void rpc__resp__wifi_set_bandwidths__init - (RpcRespWifiSetBandwidths *message); -size_t rpc__resp__wifi_set_bandwidths__get_packed_size - (const RpcRespWifiSetBandwidths *message); -size_t rpc__resp__wifi_set_bandwidths__pack - (const RpcRespWifiSetBandwidths *message, - uint8_t *out); -size_t rpc__resp__wifi_set_bandwidths__pack_to_buffer - (const RpcRespWifiSetBandwidths *message, - ProtobufCBuffer *buffer); -RpcRespWifiSetBandwidths * - rpc__resp__wifi_set_bandwidths__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_set_bandwidths__free_unpacked - (RpcRespWifiSetBandwidths *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiGetBandwidths methods */ -void rpc__req__wifi_get_bandwidths__init - (RpcReqWifiGetBandwidths *message); -size_t rpc__req__wifi_get_bandwidths__get_packed_size - (const RpcReqWifiGetBandwidths *message); -size_t rpc__req__wifi_get_bandwidths__pack - (const RpcReqWifiGetBandwidths *message, - uint8_t *out); -size_t rpc__req__wifi_get_bandwidths__pack_to_buffer - (const RpcReqWifiGetBandwidths *message, - ProtobufCBuffer *buffer); -RpcReqWifiGetBandwidths * - rpc__req__wifi_get_bandwidths__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_get_bandwidths__free_unpacked - (RpcReqWifiGetBandwidths *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiGetBandwidths methods */ -void rpc__resp__wifi_get_bandwidths__init - (RpcRespWifiGetBandwidths *message); -size_t rpc__resp__wifi_get_bandwidths__get_packed_size - (const RpcRespWifiGetBandwidths *message); -size_t rpc__resp__wifi_get_bandwidths__pack - (const RpcRespWifiGetBandwidths *message, - uint8_t *out); -size_t rpc__resp__wifi_get_bandwidths__pack_to_buffer - (const RpcRespWifiGetBandwidths *message, - ProtobufCBuffer *buffer); -RpcRespWifiGetBandwidths * - rpc__resp__wifi_get_bandwidths__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_get_bandwidths__free_unpacked - (RpcRespWifiGetBandwidths *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiSetBand methods */ -void rpc__req__wifi_set_band__init - (RpcReqWifiSetBand *message); -size_t rpc__req__wifi_set_band__get_packed_size - (const RpcReqWifiSetBand *message); -size_t rpc__req__wifi_set_band__pack - (const RpcReqWifiSetBand *message, - uint8_t *out); -size_t rpc__req__wifi_set_band__pack_to_buffer - (const RpcReqWifiSetBand *message, - ProtobufCBuffer *buffer); -RpcReqWifiSetBand * - rpc__req__wifi_set_band__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_set_band__free_unpacked - (RpcReqWifiSetBand *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiSetBand methods */ -void rpc__resp__wifi_set_band__init - (RpcRespWifiSetBand *message); -size_t rpc__resp__wifi_set_band__get_packed_size - (const RpcRespWifiSetBand *message); -size_t rpc__resp__wifi_set_band__pack - (const RpcRespWifiSetBand *message, - uint8_t *out); -size_t rpc__resp__wifi_set_band__pack_to_buffer - (const RpcRespWifiSetBand *message, - ProtobufCBuffer *buffer); -RpcRespWifiSetBand * - rpc__resp__wifi_set_band__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_set_band__free_unpacked - (RpcRespWifiSetBand *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiGetBand methods */ -void rpc__req__wifi_get_band__init - (RpcReqWifiGetBand *message); -size_t rpc__req__wifi_get_band__get_packed_size - (const RpcReqWifiGetBand *message); -size_t rpc__req__wifi_get_band__pack - (const RpcReqWifiGetBand *message, - uint8_t *out); -size_t rpc__req__wifi_get_band__pack_to_buffer - (const RpcReqWifiGetBand *message, - ProtobufCBuffer *buffer); -RpcReqWifiGetBand * - rpc__req__wifi_get_band__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_get_band__free_unpacked - (RpcReqWifiGetBand *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiGetBand methods */ -void rpc__resp__wifi_get_band__init - (RpcRespWifiGetBand *message); -size_t rpc__resp__wifi_get_band__get_packed_size - (const RpcRespWifiGetBand *message); -size_t rpc__resp__wifi_get_band__pack - (const RpcRespWifiGetBand *message, - uint8_t *out); -size_t rpc__resp__wifi_get_band__pack_to_buffer - (const RpcRespWifiGetBand *message, - ProtobufCBuffer *buffer); -RpcRespWifiGetBand * - rpc__resp__wifi_get_band__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_get_band__free_unpacked - (RpcRespWifiGetBand *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiSetBandMode methods */ -void rpc__req__wifi_set_band_mode__init - (RpcReqWifiSetBandMode *message); -size_t rpc__req__wifi_set_band_mode__get_packed_size - (const RpcReqWifiSetBandMode *message); -size_t rpc__req__wifi_set_band_mode__pack - (const RpcReqWifiSetBandMode *message, - uint8_t *out); -size_t rpc__req__wifi_set_band_mode__pack_to_buffer - (const RpcReqWifiSetBandMode *message, - ProtobufCBuffer *buffer); -RpcReqWifiSetBandMode * - rpc__req__wifi_set_band_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_set_band_mode__free_unpacked - (RpcReqWifiSetBandMode *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiSetBandMode methods */ -void rpc__resp__wifi_set_band_mode__init - (RpcRespWifiSetBandMode *message); -size_t rpc__resp__wifi_set_band_mode__get_packed_size - (const RpcRespWifiSetBandMode *message); -size_t rpc__resp__wifi_set_band_mode__pack - (const RpcRespWifiSetBandMode *message, - uint8_t *out); -size_t rpc__resp__wifi_set_band_mode__pack_to_buffer - (const RpcRespWifiSetBandMode *message, - ProtobufCBuffer *buffer); -RpcRespWifiSetBandMode * - rpc__resp__wifi_set_band_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_set_band_mode__free_unpacked - (RpcRespWifiSetBandMode *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiGetBandMode methods */ -void rpc__req__wifi_get_band_mode__init - (RpcReqWifiGetBandMode *message); -size_t rpc__req__wifi_get_band_mode__get_packed_size - (const RpcReqWifiGetBandMode *message); -size_t rpc__req__wifi_get_band_mode__pack - (const RpcReqWifiGetBandMode *message, - uint8_t *out); -size_t rpc__req__wifi_get_band_mode__pack_to_buffer - (const RpcReqWifiGetBandMode *message, - ProtobufCBuffer *buffer); -RpcReqWifiGetBandMode * - rpc__req__wifi_get_band_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_get_band_mode__free_unpacked - (RpcReqWifiGetBandMode *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiGetBandMode methods */ -void rpc__resp__wifi_get_band_mode__init - (RpcRespWifiGetBandMode *message); -size_t rpc__resp__wifi_get_band_mode__get_packed_size - (const RpcRespWifiGetBandMode *message); -size_t rpc__resp__wifi_get_band_mode__pack - (const RpcRespWifiGetBandMode *message, - uint8_t *out); -size_t rpc__resp__wifi_get_band_mode__pack_to_buffer - (const RpcRespWifiGetBandMode *message, - ProtobufCBuffer *buffer); -RpcRespWifiGetBandMode * - rpc__resp__wifi_get_band_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_get_band_mode__free_unpacked - (RpcRespWifiGetBandMode *message, - ProtobufCAllocator *allocator); -/* RpcReqGetCoprocessorFwVersion methods */ -void rpc__req__get_coprocessor_fw_version__init - (RpcReqGetCoprocessorFwVersion *message); -size_t rpc__req__get_coprocessor_fw_version__get_packed_size - (const RpcReqGetCoprocessorFwVersion *message); -size_t rpc__req__get_coprocessor_fw_version__pack - (const RpcReqGetCoprocessorFwVersion *message, - uint8_t *out); -size_t rpc__req__get_coprocessor_fw_version__pack_to_buffer - (const RpcReqGetCoprocessorFwVersion *message, - ProtobufCBuffer *buffer); -RpcReqGetCoprocessorFwVersion * - rpc__req__get_coprocessor_fw_version__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__get_coprocessor_fw_version__free_unpacked - (RpcReqGetCoprocessorFwVersion *message, - ProtobufCAllocator *allocator); -/* RpcRespGetCoprocessorFwVersion methods */ -void rpc__resp__get_coprocessor_fw_version__init - (RpcRespGetCoprocessorFwVersion *message); -size_t rpc__resp__get_coprocessor_fw_version__get_packed_size - (const RpcRespGetCoprocessorFwVersion *message); -size_t rpc__resp__get_coprocessor_fw_version__pack - (const RpcRespGetCoprocessorFwVersion *message, - uint8_t *out); -size_t rpc__resp__get_coprocessor_fw_version__pack_to_buffer - (const RpcRespGetCoprocessorFwVersion *message, - ProtobufCBuffer *buffer); -RpcRespGetCoprocessorFwVersion * - rpc__resp__get_coprocessor_fw_version__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__get_coprocessor_fw_version__free_unpacked - (RpcRespGetCoprocessorFwVersion *message, - ProtobufCAllocator *allocator); -/* RpcEventWifiEventNoArgs methods */ -void rpc__event__wifi_event_no_args__init - (RpcEventWifiEventNoArgs *message); -size_t rpc__event__wifi_event_no_args__get_packed_size - (const RpcEventWifiEventNoArgs *message); -size_t rpc__event__wifi_event_no_args__pack - (const RpcEventWifiEventNoArgs *message, - uint8_t *out); -size_t rpc__event__wifi_event_no_args__pack_to_buffer - (const RpcEventWifiEventNoArgs *message, - ProtobufCBuffer *buffer); -RpcEventWifiEventNoArgs * - rpc__event__wifi_event_no_args__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__event__wifi_event_no_args__free_unpacked - (RpcEventWifiEventNoArgs *message, - ProtobufCAllocator *allocator); -/* RpcEventESPInit methods */ -void rpc__event__espinit__init - (RpcEventESPInit *message); -size_t rpc__event__espinit__get_packed_size - (const RpcEventESPInit *message); -size_t rpc__event__espinit__pack - (const RpcEventESPInit *message, - uint8_t *out); -size_t rpc__event__espinit__pack_to_buffer - (const RpcEventESPInit *message, - ProtobufCBuffer *buffer); -RpcEventESPInit * - rpc__event__espinit__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__event__espinit__free_unpacked - (RpcEventESPInit *message, - ProtobufCAllocator *allocator); -/* RpcEventHeartbeat methods */ -void rpc__event__heartbeat__init - (RpcEventHeartbeat *message); -size_t rpc__event__heartbeat__get_packed_size - (const RpcEventHeartbeat *message); -size_t rpc__event__heartbeat__pack - (const RpcEventHeartbeat *message, - uint8_t *out); -size_t rpc__event__heartbeat__pack_to_buffer - (const RpcEventHeartbeat *message, - ProtobufCBuffer *buffer); -RpcEventHeartbeat * - rpc__event__heartbeat__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__event__heartbeat__free_unpacked - (RpcEventHeartbeat *message, - ProtobufCAllocator *allocator); -/* RpcEventAPStaDisconnected methods */ -void rpc__event__ap__sta_disconnected__init - (RpcEventAPStaDisconnected *message); -size_t rpc__event__ap__sta_disconnected__get_packed_size - (const RpcEventAPStaDisconnected *message); -size_t rpc__event__ap__sta_disconnected__pack - (const RpcEventAPStaDisconnected *message, - uint8_t *out); -size_t rpc__event__ap__sta_disconnected__pack_to_buffer - (const RpcEventAPStaDisconnected *message, - ProtobufCBuffer *buffer); -RpcEventAPStaDisconnected * - rpc__event__ap__sta_disconnected__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__event__ap__sta_disconnected__free_unpacked - (RpcEventAPStaDisconnected *message, - ProtobufCAllocator *allocator); -/* RpcEventAPStaConnected methods */ -void rpc__event__ap__sta_connected__init - (RpcEventAPStaConnected *message); -size_t rpc__event__ap__sta_connected__get_packed_size - (const RpcEventAPStaConnected *message); -size_t rpc__event__ap__sta_connected__pack - (const RpcEventAPStaConnected *message, - uint8_t *out); -size_t rpc__event__ap__sta_connected__pack_to_buffer - (const RpcEventAPStaConnected *message, - ProtobufCBuffer *buffer); -RpcEventAPStaConnected * - rpc__event__ap__sta_connected__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__event__ap__sta_connected__free_unpacked - (RpcEventAPStaConnected *message, - ProtobufCAllocator *allocator); -/* RpcEventStaScanDone methods */ -void rpc__event__sta_scan_done__init - (RpcEventStaScanDone *message); -size_t rpc__event__sta_scan_done__get_packed_size - (const RpcEventStaScanDone *message); -size_t rpc__event__sta_scan_done__pack - (const RpcEventStaScanDone *message, - uint8_t *out); -size_t rpc__event__sta_scan_done__pack_to_buffer - (const RpcEventStaScanDone *message, - ProtobufCBuffer *buffer); -RpcEventStaScanDone * - rpc__event__sta_scan_done__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__event__sta_scan_done__free_unpacked - (RpcEventStaScanDone *message, - ProtobufCAllocator *allocator); -/* RpcEventStaConnected methods */ -void rpc__event__sta_connected__init - (RpcEventStaConnected *message); -size_t rpc__event__sta_connected__get_packed_size - (const RpcEventStaConnected *message); -size_t rpc__event__sta_connected__pack - (const RpcEventStaConnected *message, - uint8_t *out); -size_t rpc__event__sta_connected__pack_to_buffer - (const RpcEventStaConnected *message, - ProtobufCBuffer *buffer); -RpcEventStaConnected * - rpc__event__sta_connected__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__event__sta_connected__free_unpacked - (RpcEventStaConnected *message, - ProtobufCAllocator *allocator); -/* RpcEventStaDisconnected methods */ -void rpc__event__sta_disconnected__init - (RpcEventStaDisconnected *message); -size_t rpc__event__sta_disconnected__get_packed_size - (const RpcEventStaDisconnected *message); -size_t rpc__event__sta_disconnected__pack - (const RpcEventStaDisconnected *message, - uint8_t *out); -size_t rpc__event__sta_disconnected__pack_to_buffer - (const RpcEventStaDisconnected *message, - ProtobufCBuffer *buffer); -RpcEventStaDisconnected * - rpc__event__sta_disconnected__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__event__sta_disconnected__free_unpacked - (RpcEventStaDisconnected *message, - ProtobufCAllocator *allocator); -/* Rpc methods */ -void rpc__init - (Rpc *message); -size_t rpc__get_packed_size - (const Rpc *message); -size_t rpc__pack - (const Rpc *message, - uint8_t *out); -size_t rpc__pack_to_buffer - (const Rpc *message, - ProtobufCBuffer *buffer); -Rpc * - rpc__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__free_unpacked - (Rpc *message, - ProtobufCAllocator *allocator); -/* --- per-message closures --- */ - -typedef void (*WifiInitConfig_Closure) - (const WifiInitConfig *message, - void *closure_data); -typedef void (*WifiCountry_Closure) - (const WifiCountry *message, - void *closure_data); -typedef void (*WifiActiveScanTime_Closure) - (const WifiActiveScanTime *message, - void *closure_data); -typedef void (*WifiScanTime_Closure) - (const WifiScanTime *message, - void *closure_data); -typedef void (*WifiScanConfig_Closure) - (const WifiScanConfig *message, - void *closure_data); -typedef void (*WifiHeApInfo_Closure) - (const WifiHeApInfo *message, - void *closure_data); -typedef void (*WifiApRecord_Closure) - (const WifiApRecord *message, - void *closure_data); -typedef void (*WifiScanThreshold_Closure) - (const WifiScanThreshold *message, - void *closure_data); -typedef void (*WifiPmfConfig_Closure) - (const WifiPmfConfig *message, - void *closure_data); -typedef void (*WifiApConfig_Closure) - (const WifiApConfig *message, - void *closure_data); -typedef void (*WifiStaConfig_Closure) - (const WifiStaConfig *message, - void *closure_data); -typedef void (*WifiConfig_Closure) - (const WifiConfig *message, - void *closure_data); -typedef void (*WifiStaInfo_Closure) - (const WifiStaInfo *message, - void *closure_data); -typedef void (*WifiStaList_Closure) - (const WifiStaList *message, - void *closure_data); -typedef void (*WifiPktRxCtrl_Closure) - (const WifiPktRxCtrl *message, - void *closure_data); -typedef void (*WifiPromiscuousPkt_Closure) - (const WifiPromiscuousPkt *message, - void *closure_data); -typedef void (*WifiPromiscuousFilter_Closure) - (const WifiPromiscuousFilter *message, - void *closure_data); -typedef void (*WifiCsiConfig_Closure) - (const WifiCsiConfig *message, - void *closure_data); -typedef void (*WifiCsiInfo_Closure) - (const WifiCsiInfo *message, - void *closure_data); -typedef void (*WifiAntGpio_Closure) - (const WifiAntGpio *message, - void *closure_data); -typedef void (*WifiAntGpioConfig_Closure) - (const WifiAntGpioConfig *message, - void *closure_data); -typedef void (*WifiAntConfig_Closure) - (const WifiAntConfig *message, - void *closure_data); -typedef void (*WifiActionTxReq_Closure) - (const WifiActionTxReq *message, - void *closure_data); -typedef void (*WifiFtmInitiatorCfg_Closure) - (const WifiFtmInitiatorCfg *message, - void *closure_data); -typedef void (*WifiEventStaScanDone_Closure) - (const WifiEventStaScanDone *message, - void *closure_data); -typedef void (*WifiEventStaConnected_Closure) - (const WifiEventStaConnected *message, - void *closure_data); -typedef void (*WifiEventStaDisconnected_Closure) - (const WifiEventStaDisconnected *message, - void *closure_data); -typedef void (*WifiEventStaAuthmodeChange_Closure) - (const WifiEventStaAuthmodeChange *message, - void *closure_data); -typedef void (*WifiEventStaWpsErPin_Closure) - (const WifiEventStaWpsErPin *message, - void *closure_data); -typedef void (*ApCred_Closure) - (const ApCred *message, - void *closure_data); -typedef void (*WifiEventStaWpsErSuccess_Closure) - (const WifiEventStaWpsErSuccess *message, - void *closure_data); -typedef void (*WifiEventApProbeReqRx_Closure) - (const WifiEventApProbeReqRx *message, - void *closure_data); -typedef void (*WifiEventBssRssiLow_Closure) - (const WifiEventBssRssiLow *message, - void *closure_data); -typedef void (*WifiFtmReportEntry_Closure) - (const WifiFtmReportEntry *message, - void *closure_data); -typedef void (*WifiEventFtmReport_Closure) - (const WifiEventFtmReport *message, - void *closure_data); -typedef void (*WifiEventActionTxStatus_Closure) - (const WifiEventActionTxStatus *message, - void *closure_data); -typedef void (*WifiEventRocDone_Closure) - (const WifiEventRocDone *message, - void *closure_data); -typedef void (*WifiEventApWpsRgPin_Closure) - (const WifiEventApWpsRgPin *message, - void *closure_data); -typedef void (*WifiEventApWpsRgFailReason_Closure) - (const WifiEventApWpsRgFailReason *message, - void *closure_data); -typedef void (*WifiEventApWpsRgSuccess_Closure) - (const WifiEventApWpsRgSuccess *message, - void *closure_data); -typedef void (*WifiProtocols_Closure) - (const WifiProtocols *message, - void *closure_data); -typedef void (*WifiBandwidths_Closure) - (const WifiBandwidths *message, - void *closure_data); -typedef void (*ConnectedSTAList_Closure) - (const ConnectedSTAList *message, - void *closure_data); -typedef void (*RpcReqGetMacAddress_Closure) - (const RpcReqGetMacAddress *message, - void *closure_data); -typedef void (*RpcRespGetMacAddress_Closure) - (const RpcRespGetMacAddress *message, - void *closure_data); -typedef void (*RpcReqGetMode_Closure) - (const RpcReqGetMode *message, - void *closure_data); -typedef void (*RpcRespGetMode_Closure) - (const RpcRespGetMode *message, - void *closure_data); -typedef void (*RpcReqSetMode_Closure) - (const RpcReqSetMode *message, - void *closure_data); -typedef void (*RpcRespSetMode_Closure) - (const RpcRespSetMode *message, - void *closure_data); -typedef void (*RpcReqGetPs_Closure) - (const RpcReqGetPs *message, - void *closure_data); -typedef void (*RpcRespGetPs_Closure) - (const RpcRespGetPs *message, - void *closure_data); -typedef void (*RpcReqSetPs_Closure) - (const RpcReqSetPs *message, - void *closure_data); -typedef void (*RpcRespSetPs_Closure) - (const RpcRespSetPs *message, - void *closure_data); -typedef void (*RpcReqSetMacAddress_Closure) - (const RpcReqSetMacAddress *message, - void *closure_data); -typedef void (*RpcRespSetMacAddress_Closure) - (const RpcRespSetMacAddress *message, - void *closure_data); -typedef void (*RpcReqOTABegin_Closure) - (const RpcReqOTABegin *message, - void *closure_data); -typedef void (*RpcRespOTABegin_Closure) - (const RpcRespOTABegin *message, - void *closure_data); -typedef void (*RpcReqOTAWrite_Closure) - (const RpcReqOTAWrite *message, - void *closure_data); -typedef void (*RpcRespOTAWrite_Closure) - (const RpcRespOTAWrite *message, - void *closure_data); -typedef void (*RpcReqOTAEnd_Closure) - (const RpcReqOTAEnd *message, - void *closure_data); -typedef void (*RpcRespOTAEnd_Closure) - (const RpcRespOTAEnd *message, - void *closure_data); -typedef void (*RpcReqWifiSetMaxTxPower_Closure) - (const RpcReqWifiSetMaxTxPower *message, - void *closure_data); -typedef void (*RpcRespWifiSetMaxTxPower_Closure) - (const RpcRespWifiSetMaxTxPower *message, - void *closure_data); -typedef void (*RpcReqWifiGetMaxTxPower_Closure) - (const RpcReqWifiGetMaxTxPower *message, - void *closure_data); -typedef void (*RpcRespWifiGetMaxTxPower_Closure) - (const RpcRespWifiGetMaxTxPower *message, - void *closure_data); -typedef void (*RpcReqConfigHeartbeat_Closure) - (const RpcReqConfigHeartbeat *message, - void *closure_data); -typedef void (*RpcRespConfigHeartbeat_Closure) - (const RpcRespConfigHeartbeat *message, - void *closure_data); -typedef void (*RpcReqWifiInit_Closure) - (const RpcReqWifiInit *message, - void *closure_data); -typedef void (*RpcRespWifiInit_Closure) - (const RpcRespWifiInit *message, - void *closure_data); -typedef void (*RpcReqWifiDeinit_Closure) - (const RpcReqWifiDeinit *message, - void *closure_data); -typedef void (*RpcRespWifiDeinit_Closure) - (const RpcRespWifiDeinit *message, - void *closure_data); -typedef void (*RpcReqWifiSetConfig_Closure) - (const RpcReqWifiSetConfig *message, - void *closure_data); -typedef void (*RpcRespWifiSetConfig_Closure) - (const RpcRespWifiSetConfig *message, - void *closure_data); -typedef void (*RpcReqWifiGetConfig_Closure) - (const RpcReqWifiGetConfig *message, - void *closure_data); -typedef void (*RpcRespWifiGetConfig_Closure) - (const RpcRespWifiGetConfig *message, - void *closure_data); -typedef void (*RpcReqWifiConnect_Closure) - (const RpcReqWifiConnect *message, - void *closure_data); -typedef void (*RpcRespWifiConnect_Closure) - (const RpcRespWifiConnect *message, - void *closure_data); -typedef void (*RpcReqWifiDisconnect_Closure) - (const RpcReqWifiDisconnect *message, - void *closure_data); -typedef void (*RpcRespWifiDisconnect_Closure) - (const RpcRespWifiDisconnect *message, - void *closure_data); -typedef void (*RpcReqWifiStart_Closure) - (const RpcReqWifiStart *message, - void *closure_data); -typedef void (*RpcRespWifiStart_Closure) - (const RpcRespWifiStart *message, - void *closure_data); -typedef void (*RpcReqWifiStop_Closure) - (const RpcReqWifiStop *message, - void *closure_data); -typedef void (*RpcRespWifiStop_Closure) - (const RpcRespWifiStop *message, - void *closure_data); -typedef void (*RpcReqWifiScanStart_Closure) - (const RpcReqWifiScanStart *message, - void *closure_data); -typedef void (*RpcRespWifiScanStart_Closure) - (const RpcRespWifiScanStart *message, - void *closure_data); -typedef void (*RpcReqWifiScanStop_Closure) - (const RpcReqWifiScanStop *message, - void *closure_data); -typedef void (*RpcRespWifiScanStop_Closure) - (const RpcRespWifiScanStop *message, - void *closure_data); -typedef void (*RpcReqWifiScanGetApNum_Closure) - (const RpcReqWifiScanGetApNum *message, - void *closure_data); -typedef void (*RpcRespWifiScanGetApNum_Closure) - (const RpcRespWifiScanGetApNum *message, - void *closure_data); -typedef void (*RpcReqWifiScanGetApRecords_Closure) - (const RpcReqWifiScanGetApRecords *message, - void *closure_data); -typedef void (*RpcRespWifiScanGetApRecords_Closure) - (const RpcRespWifiScanGetApRecords *message, - void *closure_data); -typedef void (*RpcReqWifiScanGetApRecord_Closure) - (const RpcReqWifiScanGetApRecord *message, - void *closure_data); -typedef void (*RpcRespWifiScanGetApRecord_Closure) - (const RpcRespWifiScanGetApRecord *message, - void *closure_data); -typedef void (*RpcReqWifiClearApList_Closure) - (const RpcReqWifiClearApList *message, - void *closure_data); -typedef void (*RpcRespWifiClearApList_Closure) - (const RpcRespWifiClearApList *message, - void *closure_data); -typedef void (*RpcReqWifiRestore_Closure) - (const RpcReqWifiRestore *message, - void *closure_data); -typedef void (*RpcRespWifiRestore_Closure) - (const RpcRespWifiRestore *message, - void *closure_data); -typedef void (*RpcReqWifiClearFastConnect_Closure) - (const RpcReqWifiClearFastConnect *message, - void *closure_data); -typedef void (*RpcRespWifiClearFastConnect_Closure) - (const RpcRespWifiClearFastConnect *message, - void *closure_data); -typedef void (*RpcReqWifiDeauthSta_Closure) - (const RpcReqWifiDeauthSta *message, - void *closure_data); -typedef void (*RpcRespWifiDeauthSta_Closure) - (const RpcRespWifiDeauthSta *message, - void *closure_data); -typedef void (*RpcReqWifiStaGetApInfo_Closure) - (const RpcReqWifiStaGetApInfo *message, - void *closure_data); -typedef void (*RpcRespWifiStaGetApInfo_Closure) - (const RpcRespWifiStaGetApInfo *message, - void *closure_data); -typedef void (*RpcReqWifiSetProtocol_Closure) - (const RpcReqWifiSetProtocol *message, - void *closure_data); -typedef void (*RpcRespWifiSetProtocol_Closure) - (const RpcRespWifiSetProtocol *message, - void *closure_data); -typedef void (*RpcReqWifiGetProtocol_Closure) - (const RpcReqWifiGetProtocol *message, - void *closure_data); -typedef void (*RpcRespWifiGetProtocol_Closure) - (const RpcRespWifiGetProtocol *message, - void *closure_data); -typedef void (*RpcReqWifiSetBandwidth_Closure) - (const RpcReqWifiSetBandwidth *message, - void *closure_data); -typedef void (*RpcRespWifiSetBandwidth_Closure) - (const RpcRespWifiSetBandwidth *message, - void *closure_data); -typedef void (*RpcReqWifiGetBandwidth_Closure) - (const RpcReqWifiGetBandwidth *message, - void *closure_data); -typedef void (*RpcRespWifiGetBandwidth_Closure) - (const RpcRespWifiGetBandwidth *message, - void *closure_data); -typedef void (*RpcReqWifiSetChannel_Closure) - (const RpcReqWifiSetChannel *message, - void *closure_data); -typedef void (*RpcRespWifiSetChannel_Closure) - (const RpcRespWifiSetChannel *message, - void *closure_data); -typedef void (*RpcReqWifiGetChannel_Closure) - (const RpcReqWifiGetChannel *message, - void *closure_data); -typedef void (*RpcRespWifiGetChannel_Closure) - (const RpcRespWifiGetChannel *message, - void *closure_data); -typedef void (*RpcReqWifiSetStorage_Closure) - (const RpcReqWifiSetStorage *message, - void *closure_data); -typedef void (*RpcRespWifiSetStorage_Closure) - (const RpcRespWifiSetStorage *message, - void *closure_data); -typedef void (*RpcReqWifiSetCountryCode_Closure) - (const RpcReqWifiSetCountryCode *message, - void *closure_data); -typedef void (*RpcRespWifiSetCountryCode_Closure) - (const RpcRespWifiSetCountryCode *message, - void *closure_data); -typedef void (*RpcReqWifiGetCountryCode_Closure) - (const RpcReqWifiGetCountryCode *message, - void *closure_data); -typedef void (*RpcRespWifiGetCountryCode_Closure) - (const RpcRespWifiGetCountryCode *message, - void *closure_data); -typedef void (*RpcReqWifiSetCountry_Closure) - (const RpcReqWifiSetCountry *message, - void *closure_data); -typedef void (*RpcRespWifiSetCountry_Closure) - (const RpcRespWifiSetCountry *message, - void *closure_data); -typedef void (*RpcReqWifiGetCountry_Closure) - (const RpcReqWifiGetCountry *message, - void *closure_data); -typedef void (*RpcRespWifiGetCountry_Closure) - (const RpcRespWifiGetCountry *message, - void *closure_data); -typedef void (*RpcReqWifiApGetStaList_Closure) - (const RpcReqWifiApGetStaList *message, - void *closure_data); -typedef void (*RpcRespWifiApGetStaList_Closure) - (const RpcRespWifiApGetStaList *message, - void *closure_data); -typedef void (*RpcReqWifiApGetStaAid_Closure) - (const RpcReqWifiApGetStaAid *message, - void *closure_data); -typedef void (*RpcReqWifiStaGetNegotiatedPhymode_Closure) - (const RpcReqWifiStaGetNegotiatedPhymode *message, - void *closure_data); -typedef void (*RpcRespWifiStaGetNegotiatedPhymode_Closure) - (const RpcRespWifiStaGetNegotiatedPhymode *message, - void *closure_data); -typedef void (*RpcRespWifiApGetStaAid_Closure) - (const RpcRespWifiApGetStaAid *message, - void *closure_data); -typedef void (*RpcReqWifiStaGetRssi_Closure) - (const RpcReqWifiStaGetRssi *message, - void *closure_data); -typedef void (*RpcRespWifiStaGetRssi_Closure) - (const RpcRespWifiStaGetRssi *message, - void *closure_data); -typedef void (*RpcReqWifiStaGetAid_Closure) - (const RpcReqWifiStaGetAid *message, - void *closure_data); -typedef void (*RpcRespWifiStaGetAid_Closure) - (const RpcRespWifiStaGetAid *message, - void *closure_data); -typedef void (*RpcReqWifiSetProtocols_Closure) - (const RpcReqWifiSetProtocols *message, - void *closure_data); -typedef void (*RpcRespWifiSetProtocols_Closure) - (const RpcRespWifiSetProtocols *message, - void *closure_data); -typedef void (*RpcReqWifiGetProtocols_Closure) - (const RpcReqWifiGetProtocols *message, - void *closure_data); -typedef void (*RpcRespWifiGetProtocols_Closure) - (const RpcRespWifiGetProtocols *message, - void *closure_data); -typedef void (*RpcReqWifiSetBandwidths_Closure) - (const RpcReqWifiSetBandwidths *message, - void *closure_data); -typedef void (*RpcRespWifiSetBandwidths_Closure) - (const RpcRespWifiSetBandwidths *message, - void *closure_data); -typedef void (*RpcReqWifiGetBandwidths_Closure) - (const RpcReqWifiGetBandwidths *message, - void *closure_data); -typedef void (*RpcRespWifiGetBandwidths_Closure) - (const RpcRespWifiGetBandwidths *message, - void *closure_data); -typedef void (*RpcReqWifiSetBand_Closure) - (const RpcReqWifiSetBand *message, - void *closure_data); -typedef void (*RpcRespWifiSetBand_Closure) - (const RpcRespWifiSetBand *message, - void *closure_data); -typedef void (*RpcReqWifiGetBand_Closure) - (const RpcReqWifiGetBand *message, - void *closure_data); -typedef void (*RpcRespWifiGetBand_Closure) - (const RpcRespWifiGetBand *message, - void *closure_data); -typedef void (*RpcReqWifiSetBandMode_Closure) - (const RpcReqWifiSetBandMode *message, - void *closure_data); -typedef void (*RpcRespWifiSetBandMode_Closure) - (const RpcRespWifiSetBandMode *message, - void *closure_data); -typedef void (*RpcReqWifiGetBandMode_Closure) - (const RpcReqWifiGetBandMode *message, - void *closure_data); -typedef void (*RpcRespWifiGetBandMode_Closure) - (const RpcRespWifiGetBandMode *message, - void *closure_data); -typedef void (*RpcReqGetCoprocessorFwVersion_Closure) - (const RpcReqGetCoprocessorFwVersion *message, - void *closure_data); -typedef void (*RpcRespGetCoprocessorFwVersion_Closure) - (const RpcRespGetCoprocessorFwVersion *message, - void *closure_data); -typedef void (*RpcEventWifiEventNoArgs_Closure) - (const RpcEventWifiEventNoArgs *message, - void *closure_data); -typedef void (*RpcEventESPInit_Closure) - (const RpcEventESPInit *message, - void *closure_data); -typedef void (*RpcEventHeartbeat_Closure) - (const RpcEventHeartbeat *message, - void *closure_data); -typedef void (*RpcEventAPStaDisconnected_Closure) - (const RpcEventAPStaDisconnected *message, - void *closure_data); -typedef void (*RpcEventAPStaConnected_Closure) - (const RpcEventAPStaConnected *message, - void *closure_data); -typedef void (*RpcEventStaScanDone_Closure) - (const RpcEventStaScanDone *message, - void *closure_data); -typedef void (*RpcEventStaConnected_Closure) - (const RpcEventStaConnected *message, - void *closure_data); -typedef void (*RpcEventStaDisconnected_Closure) - (const RpcEventStaDisconnected *message, - void *closure_data); -typedef void (*Rpc_Closure) - (const Rpc *message, - void *closure_data); - -/* --- services --- */ - - -/* --- descriptors --- */ - -extern const ProtobufCEnumDescriptor rpc__wifi_bw__descriptor; -extern const ProtobufCEnumDescriptor rpc__wifi_power_save__descriptor; -extern const ProtobufCEnumDescriptor rpc__wifi_sec_prot__descriptor; -extern const ProtobufCEnumDescriptor rpc__status__descriptor; -extern const ProtobufCEnumDescriptor rpc_type__descriptor; -extern const ProtobufCEnumDescriptor rpc_id__descriptor; -extern const ProtobufCMessageDescriptor wifi_init_config__descriptor; -extern const ProtobufCMessageDescriptor wifi_country__descriptor; -extern const ProtobufCMessageDescriptor wifi_active_scan_time__descriptor; -extern const ProtobufCMessageDescriptor wifi_scan_time__descriptor; -extern const ProtobufCMessageDescriptor wifi_scan_config__descriptor; -extern const ProtobufCMessageDescriptor wifi_he_ap_info__descriptor; -extern const ProtobufCMessageDescriptor wifi_ap_record__descriptor; -extern const ProtobufCMessageDescriptor wifi_scan_threshold__descriptor; -extern const ProtobufCMessageDescriptor wifi_pmf_config__descriptor; -extern const ProtobufCMessageDescriptor wifi_ap_config__descriptor; -extern const ProtobufCMessageDescriptor wifi_sta_config__descriptor; -extern const ProtobufCMessageDescriptor wifi_config__descriptor; -extern const ProtobufCMessageDescriptor wifi_sta_info__descriptor; -extern const ProtobufCMessageDescriptor wifi_sta_list__descriptor; -extern const ProtobufCMessageDescriptor wifi_pkt_rx_ctrl__descriptor; -extern const ProtobufCMessageDescriptor wifi_promiscuous_pkt__descriptor; -extern const ProtobufCMessageDescriptor wifi_promiscuous_filter__descriptor; -extern const ProtobufCMessageDescriptor wifi_csi_config__descriptor; -extern const ProtobufCMessageDescriptor wifi_csi_info__descriptor; -extern const ProtobufCMessageDescriptor wifi_ant_gpio__descriptor; -extern const ProtobufCMessageDescriptor wifi_ant_gpio_config__descriptor; -extern const ProtobufCMessageDescriptor wifi_ant_config__descriptor; -extern const ProtobufCMessageDescriptor wifi_action_tx_req__descriptor; -extern const ProtobufCMessageDescriptor wifi_ftm_initiator_cfg__descriptor; -extern const ProtobufCMessageDescriptor wifi_event_sta_scan_done__descriptor; -extern const ProtobufCMessageDescriptor wifi_event_sta_connected__descriptor; -extern const ProtobufCMessageDescriptor wifi_event_sta_disconnected__descriptor; -extern const ProtobufCMessageDescriptor wifi_event_sta_authmode_change__descriptor; -extern const ProtobufCMessageDescriptor wifi_event_sta_wps_er_pin__descriptor; -extern const ProtobufCMessageDescriptor ap_cred__descriptor; -extern const ProtobufCMessageDescriptor wifi_event_sta_wps_er_success__descriptor; -extern const ProtobufCMessageDescriptor wifi_event_ap_probe_req_rx__descriptor; -extern const ProtobufCMessageDescriptor wifi_event_bss_rssi_low__descriptor; -extern const ProtobufCMessageDescriptor wifi_ftm_report_entry__descriptor; -extern const ProtobufCMessageDescriptor wifi_event_ftm_report__descriptor; -extern const ProtobufCMessageDescriptor wifi_event_action_tx_status__descriptor; -extern const ProtobufCMessageDescriptor wifi_event_roc_done__descriptor; -extern const ProtobufCMessageDescriptor wifi_event_ap_wps_rg_pin__descriptor; -extern const ProtobufCMessageDescriptor wifi_event_ap_wps_rg_fail_reason__descriptor; -extern const ProtobufCMessageDescriptor wifi_event_ap_wps_rg_success__descriptor; -extern const ProtobufCMessageDescriptor wifi_protocols__descriptor; -extern const ProtobufCMessageDescriptor wifi_bandwidths__descriptor; -extern const ProtobufCMessageDescriptor connected_stalist__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__get_mac_address__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__get_mac_address__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__get_mode__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__get_mode__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__set_mode__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__set_mode__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__get_ps__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__get_ps__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__set_ps__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__set_ps__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__set_mac_address__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__set_mac_address__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__otabegin__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__otabegin__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__otawrite__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__otawrite__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__otaend__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__otaend__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_set_max_tx_power__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_max_tx_power__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_get_max_tx_power__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_max_tx_power__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__config_heartbeat__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__config_heartbeat__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_init__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_init__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_deinit__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_deinit__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_set_config__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_config__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_get_config__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_config__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_connect__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_connect__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_disconnect__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_disconnect__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_start__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_start__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_stop__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_stop__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_scan_start__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_scan_start__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_scan_stop__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_scan_stop__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_scan_get_ap_num__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_scan_get_ap_num__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_scan_get_ap_records__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_scan_get_ap_records__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_scan_get_ap_record__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_scan_get_ap_record__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_clear_ap_list__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_clear_ap_list__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_restore__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_restore__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_clear_fast_connect__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_clear_fast_connect__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_deauth_sta__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_deauth_sta__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_ap_info__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_ap_info__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_set_protocol__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_protocol__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_get_protocol__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_protocol__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_set_bandwidth__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_bandwidth__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_get_bandwidth__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_bandwidth__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_set_channel__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_channel__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_get_channel__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_channel__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_set_storage__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_storage__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_set_country_code__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_country_code__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_get_country_code__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_country_code__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_set_country__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_country__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_get_country__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_country__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_ap_get_sta_list__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_ap_get_sta_list__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_ap_get_sta_aid__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_negotiated_phymode__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_negotiated_phymode__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_ap_get_sta_aid__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_rssi__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_rssi__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_aid__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_aid__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_set_protocols__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_protocols__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_get_protocols__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_protocols__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_set_bandwidths__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_bandwidths__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_get_bandwidths__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_bandwidths__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_set_band__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_band__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_get_band__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_band__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_set_band_mode__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_band_mode__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_get_band_mode__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_band_mode__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__get_coprocessor_fw_version__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__get_coprocessor_fw_version__descriptor; -extern const ProtobufCMessageDescriptor rpc__event__wifi_event_no_args__descriptor; -extern const ProtobufCMessageDescriptor rpc__event__espinit__descriptor; -extern const ProtobufCMessageDescriptor rpc__event__heartbeat__descriptor; -extern const ProtobufCMessageDescriptor rpc__event__ap__sta_disconnected__descriptor; -extern const ProtobufCMessageDescriptor rpc__event__ap__sta_connected__descriptor; -extern const ProtobufCMessageDescriptor rpc__event__sta_scan_done__descriptor; -extern const ProtobufCMessageDescriptor rpc__event__sta_connected__descriptor; -extern const ProtobufCMessageDescriptor rpc__event__sta_disconnected__descriptor; -extern const ProtobufCMessageDescriptor rpc__descriptor; - -PROTOBUF_C__END_DECLS - - -#endif /* PROTOBUF_C_esp_5fhosted_5frpc_2eproto__INCLUDED */ diff --git a/resources/espressif__esp_hosted/common/proto/esp_hosted_rpc.proto b/resources/espressif__esp_hosted/common/proto/esp_hosted_rpc.proto deleted file mode 100644 index db37ac4..0000000 --- a/resources/espressif__esp_hosted/common/proto/esp_hosted_rpc.proto +++ /dev/null @@ -1,1830 +0,0 @@ -/* Copyright (C) 2015-2023 Espressif Systems (Shanghai) PTE LTD */ -/* SPDX-License-Identifier: GPL-2.0-only OR Apache-2.0 */ - -syntax = "proto3"; - -/* Enums similar to ESP IDF */ -//enum Rpc_VendorIEType { -// Beacon = 0; -// Probe_req = 1; -// Probe_resp = 2; -// Assoc_req = 3; -// Assoc_resp = 4; -//} -// -//enum Rpc_VendorIEID { -// ID_0 = 0; -// ID_1 = 1; -//} - - -enum Rpc_WifiBw { - BW_Invalid = 0; - HT20 = 1; - HT40 = 2; -} - -enum Rpc_WifiPowerSave { - PS_Invalid = 0; - MIN_MODEM = 1; - MAX_MODEM = 2; -} - -enum Rpc_WifiSecProt { - Open = 0; - WEP = 1; - WPA_PSK = 2; - WPA2_PSK = 3; - WPA_WPA2_PSK = 4; - WPA2_ENTERPRISE = 5; - WPA3_PSK = 6; - WPA2_WPA3_PSK = 7; -} - -/* enums for Control path */ -enum Rpc_Status { - Connected = 0; - Not_Connected = 1; - No_AP_Found = 2; - Connection_Fail = 3; - Invalid_Argument = 4; - Out_Of_Range = 5; -} - - -enum RpcType { -MsgType_Invalid = 0; - Req = 1; - Resp = 2; - Event = 3; - MsgType_Max = 4; -} -// -//enum Rpc { -// ESP_ERR_WIFI_BASE = 0x3000; -// ESP_ERR_WIFI_NOT_INIT = 0x3001; -// ESP_ERR_WIFI_NOT_STARTED = 0x3002; -// ESP_ERR_WIFI_NOT_STOPPED = 0x3003; -// ESP_ERR_WIFI_IF = 0x3004; -// ESP_ERR_WIFI_MODE = 0x3005; -// ESP_ERR_WIFI_STATE = 0x3006; -// ESP_ERR_WIFI_CONN = 0x3007; -// ESP_ERR_WIFI_NVS = 0x3008; -// ESP_ERR_WIFI_MAC = 0x3009; -// ESP_ERR_WIFI_SSID = 0x300a; -// ESP_ERR_WIFI_PASSWORD = 0x300b; -// ESP_ERR_WIFI_TIMEOUT = 0x300c; -// ESP_ERR_WIFI_WAKE_FAIL = 0x300d; -// ESP_ERR_WIFI_WOULD_BLOCK = 0x300e; -// ESP_ERR_WIFI_NOT_CONNECT = 0x300f; -// /* 0x3010 0x3011 not present intentionally */ -// ESP_ERR_WIFI_POST = 0x3012; -// ESP_ERR_WIFI_INIT_STATE = 0x3013; -// ESP_ERR_WIFI_STOP_STATE = 0x3014; -// ESP_ERR_WIFI_NOT_ASSOC = 0x3015; -// ESP_ERR_WIFI_TX_DISALLOW = 0x3016; -//} - - -//enum ctrl_msg_type { -// invalid = 0; -// req = 1; -// resp = 2; -// event = 3; -// max = 4; -//} -// -//enum ctrl_msg_id { -// invalid = 0; -// req_base = 400; -// req_w_init = 401; -// req_w_deinit = 402; -// req_w_set_mode = 403; -// req_w_get_mode = 404; -// req_w_start = 405; -// req_w_stop = 406; -// req_w_restore = 407; -// req_w_connect = 408; -// req_w_disconnect = 409; -// req_w_clear_fast_connect = 410; -// req_w_deauth_sta = 411; -// req_w_scan_start = 412; -// req_w_scan_stop = 413; -// req_w_scan_get_ap_name = 414; -// req_w_scan_get_ap_records = 415; -// req_w_clear_ap_list = 416; -// req_w_sta_get_ap_info = 417; -// req_w_set_ps = 418; -// req_w_get_ps = 419; -// req_w_set_protocol = 420; -// req_w_get_protocol = 421; -// req_w_set_bandwidth = 422; -// req_w_get_bandwidth = 423; -// req_w_set_channel = 424; -// req_w_get_channel = 425; -// req_w_set_country = 426; -// req_w_get_country = 427; -// req_w_set_mac = 428; -// req_w_get_mac = 429; -// req_w_set_promiscuous_cb = 430; -// req_w_set_promiscuous = 431; -// req_w_get_promiscuous = 432; -// req_w_set_promiscuous_filter = 433; -// req_w_get_promiscuous_filter = 434; -// req_w_set_promiscuous_ctrl_filter = 435; -// req_w_get_promiscuous_ctrl_filter = 436; -// req_w_set_config = 437; -// req_w_get_config = 438; -// req_w_ap_get_sta_list = 439; -// req_w_ap_get_sta_aid = 440; -// req_w_set_storage = 441; -// req_w_set_vendor_ie = 442; -// req_w_set_vendor_ie_cb = 443; -// req_w_set_max_tx_power = 444; -// req_w_get_max_tx_power = 445; -// req_w_set_event_mask = 446; -// req_w_get_event_mask = 447; -// req_w_80211_tx = 448; -// req_w_set_csi_rx_cb = 449; -// req_w_set_csi_config = 450; -// req_w_set_csi = 451; -// req_w_set_ant_gpio = 452; -// req_w_get_ant_gpio = 453; -// req_w_set_ant = 454; -// req_w_get_ant = 455; -// req_w_get_tsf_time = 456; -// req_w_set_inactive_time = 457; -// req_w_get_inactive_time = 458; -// req_w_statis_dump = 459; -// req_w_set_rssi_threshold = 460; -// req_w_ftm_initiate_session = 461; -// req_w_ftm_end_session = 462; -// req_w_ftm_resp_set_offset = 463; -// req_w_config_11b_rate = 464; -// req_w_connectionless_module_set_wake_interval = 465; -// req_w_set_country_code = 466; -// req_w_get_country_code = 467; -// req_w_config_80211_tx_rate = 468; -// req_w_disable_pmf_config = 469; -// -// req_max = 470; -// -// -// rsp_base = 600; -// rsp_w_init = 601; -// rsp_w_deinit = 602; -// rsp_w_set_mode = 603; -// rsp_w_get_mode = 604; -// rsp_w_start = 605; -// rsp_w_stop = 606; -// rsp_w_restore = 607; -// rsp_w_connect = 608; -// rsp_w_disconnect = 609; -// rsp_w_clear_fast_connect = 610; -// rsp_w_deauth_sta = 611; -// rsp_w_scan_start = 612; -// rsp_w_scan_stop = 613; -// rsp_w_scan_get_ap_name = 614; -// rsp_w_scan_get_ap_records = 615; -// rsp_w_clear_ap_list = 616; -// rsp_w_sta_get_ap_info = 617; -// rsp_w_set_ps = 618; -// rsp_w_get_ps = 619; -// rsp_w_set_protocol = 620; -// rsp_w_get_protocol = 621; -// rsp_w_set_bandwidth = 622; -// rsp_w_get_bandwidth = 623; -// rsp_w_set_channel = 624; -// rsp_w_get_channel = 625; -// rsp_w_set_country = 626; -// rsp_w_get_country = 627; -// rsp_w_set_mac = 628; -// rsp_w_get_mac = 629; -// rsp_w_set_promiscuous_cb = 630; -// rsp_w_set_promiscuous = 631; -// rsp_w_get_promiscuous = 632; -// rsp_w_set_promiscuous_filter = 633; -// rsp_w_get_promiscuous_filter = 634; -// rsp_w_set_promiscuous_ctrl_filter = 635; -// rsp_w_get_promiscuous_ctrl_filter = 636; -// rsp_w_set_config = 637; -// rsp_w_get_config = 638; -// rsp_w_ap_get_sta_list = 639; -// rsp_w_ap_get_sta_aid = 640; -// rsp_w_set_storage = 641; -// rsp_w_set_vendor_ie = 642; -// rsp_w_set_vendor_ie_cb = 643; -// rsp_w_set_max_tx_power = 644; -// rsp_w_get_max_tx_power = 645; -// rsp_w_set_event_mask = 646; -// rsp_w_get_event_mask = 647; -// rsp_w_80211_tx = 648; -// rsp_w_set_csi_rx_cb = 649; -// rsp_w_set_csi_config = 650; -// rsp_w_set_csi = 651; -// rsp_w_set_ant_gpio = 652; -// rsp_w_get_ant_gpio = 653; -// rsp_w_set_ant = 654; -// rsp_w_get_ant = 655; -// rsp_w_get_tsf_time = 656; -// rsp_w_set_inactive_time = 657; -// rsp_w_get_inactive_time = 658; -// rsp_w_statis_dump = 659; -// rsp_w_set_rssi_threshold = 660; -// rsp_w_ftm_initiate_session = 661; -// rsp_w_ftm_end_session = 662; -// rsp_w_ftm_resp_set_offset = 663; -// rsp_w_config_11b_rate = 664; -// rsp_w_connectionless_module_set_wake_interval = 665; -// rsp_w_set_country_code = 666; -// rsp_w_get_country_code = 667; -// rsp_w_config_80211_tx_rate = 668; -// rsp_w_disable_pmf_config = 669; -// -// rsp_max = 670; -// -// -// evt_base = 800; -// evt_esp_started = 801; -// evt_heartbeat = 802; -// evt_w_ready = 803; /**< ESP32 WiFi ready */ -// evt_w_scan_done = 804; /**< ESP32 finish scanning AP */ -// evt_w_sta_start = 805; /**< ESP32 station start */ -// evt_w_sta_stop = 806; /**< ESP32 station stop */ -// evt_w_sta_connected = 807; /**< ESP32 station connected to AP */ -// evt_w_sta_disconnected = 808; /**< ESP32 station disconnected from AP */ -// evt_w_sta_authmode_change = 809; /**< the auth mode of AP connected by ESP32 station changed */ -// -// evt_w_sta_wps_er_success = 810; /**< ESP32 station wps succeeds in enrollee mode */ -// evt_w_sta_wps_er_failed = 811; /**< ESP32 station wps fails in enrollee mode */ -// evt_w_sta_wps_er_timeout = 812; /**< ESP32 station wps timeout in enrollee mode */ -// evt_w_sta_wps_er_pin = 813; /**< ESP32 station wps pin code in enrollee mode */ -// evt_w_sta_wps_er_pbc_overlap = 814; /**< ESP32 station wps overlap in enrollee mode */ -// -// evt_w_ap_start = 815; /**< ESP32 soft-AP start */ -// evt_w_ap_stop = 816; /**< ESP32 soft-AP stop */ -// evt_w_ap_staconnected = 817; /**< a station connected to ESP32 soft-AP */ -// evt_w_ap_stadisconnected = 818; /**< a station disconnected from ESP32 soft-AP */ -// evt_w_ap_probereqrecved = 819; /**< Receive probe request packet in soft-AP interface */ -// -// evt_w_ftm_report = 820; /**< Receive report of FTM procedure */ -// -// /* Add next events after this only */ -// evt_w_sta_bss_rssi_low = 821; /**< AP's RSSI crossed configured threshold */ -// evt_w_action_tx_status = 822; /**< Status indication of Action Tx operation */ -// evt_w_roc_done = 823; /**< Remain-on-Channel operation complete */ -// -// evt_w_sta_beacon_timeout = 824; /**< ESP32 station beacon timeout */ -// -// evt_w_connectionless_module_wake_interval_start = 825; /**< ESP32 connectionless module wake interval start */ -// -// evt_w_ap_wps_rg_success = 826; /**< Soft-AP wps succeeds in registrar mode */ -// evt_w_ap_wps_rg_failed = 827; /**< Soft-AP wps fails in registrar mode */ -// evt_w_ap_wps_rg_timeout = 828; /**< Soft-AP wps timeout in registrar mode */ -// evt_w_ap_wps_rg_pin = 829; /**< Soft-AP wps pin code in registrar mode */ -// evt_w_ap_wps_rg_pbc_overlap = 830; /**< Soft-AP wps overlap in registrar mode */ -// -// evt_max = 831; /**< Invalid WiFi event ID */ -// -//} - - -enum RpcId { - MsgId_Invalid = 0; - - /** Request Msgs **/ - Req_Base = 256; //0x100 - - Req_GetMACAddress = 257; //0x101 - Req_SetMacAddress = 258; //0x102 - Req_GetWifiMode = 259; //0x103 - Req_SetWifiMode = 260; //0x104 - - //Req_GetAPScanList = 261; //0x105 - //Req_GetAPConfig = 262; //0x106 - //Req_ConnectAP = 263; //0x107 - //Req_DisconnectAP = 264; //0x108 - - //Req_GetSoftAPConfig = 265; //0x109 - //Req_SetSoftAPVendorSpecificIE = 266; //0x10a - //Req_StartSoftAP = 267; //0x10b - //Req_GetSoftAPConnectedSTAList = 268; //0x10c - //Req_StopSoftAP = 269; //0x10d - - Req_WifiSetPs = 270; //0x10e - Req_WifiGetPs = 271; //0x10f - - Req_OTABegin = 272; //0x110 - Req_OTAWrite = 273; //0x111 - Req_OTAEnd = 274; //0x112 - - Req_WifiSetMaxTxPower = 275; //0x113 - Req_WifiGetMaxTxPower = 276; //0x114 - - Req_ConfigHeartbeat = 277; //0x115 - - Req_WifiInit = 278; //0x116 - Req_WifiDeinit = 279; //0x117 - Req_WifiStart = 280; //0x118 - Req_WifiStop = 281; //0x119 - Req_WifiConnect = 282; //0x11a - Req_WifiDisconnect = 283; //0x11b - Req_WifiSetConfig = 284; //0x11c - Req_WifiGetConfig = 285; //0x11d - - Req_WifiScanStart = 286; //0x11e - Req_WifiScanStop = 287; //0x11f - Req_WifiScanGetApNum = 288; //0x120 - Req_WifiScanGetApRecords = 289; //0x121 - Req_WifiClearApList = 290; //0x122 - - Req_WifiRestore = 291; //0x123 - Req_WifiClearFastConnect = 292; //0x124 - Req_WifiDeauthSta = 293; //0x125 - Req_WifiStaGetApInfo = 294; //0x126 - //Req_WifiSetPs = 295; //0x127 - //Req_WifiGetPs = 296; //0x128 - Req_WifiSetProtocol = 297; //0x129 - Req_WifiGetProtocol = 298; //0x12a - Req_WifiSetBandwidth = 299; //0x12b - Req_WifiGetBandwidth = 300; //0x12c - Req_WifiSetChannel = 301; //0x12d - Req_WifiGetChannel = 302; //0x12e - Req_WifiSetCountry = 303; //0x12f - Req_WifiGetCountry = 304; //0x130 - -// Req_WifiSetPromiscuousRxCb = 305; //0x131 - Req_WifiSetPromiscuous = 305; //0x131 - Req_WifiGetPromiscuous = 306; //0x132 - Req_WifiSetPromiscuousFilter = 307; //0x133 - Req_WifiGetPromiscuousFilter = 308; //0x134 - Req_WifiSetPromiscuousCtrlFilter = 309; //0x135 - Req_WifiGetPromiscuousCtrlFilter = 310; //0x136 - - Req_WifiApGetStaList = 311; //0x137 - Req_WifiApGetStaAid = 312; //0x138 - Req_WifiSetStorage = 313; //0x139 - Req_WifiSetVendorIe = 314; //0x13a -// Req_WifiSetVendorIeCb = 315; //0x13b - Req_WifiSetEventMask = 315; //0x13b - Req_WifiGetEventMask = 316; //0x13c - Req_Wifi80211Tx = 317; //0x13d - -// Req_WifiSetCsiRxCb = 318; //0x13e - Req_WifiSetCsiConfig = 318; //0x13e - Req_WifiSetCsi = 319; //0x13f - - Req_WifiSetAntGpio = 320; //0x140 - Req_WifiGetAntGpio = 321; //0x141 - Req_WifiSetAnt = 322; //0x142 - Req_WifiGetAnt = 323; //0x143 - - Req_WifiGetTsfTime = 324; //0x144 - Req_WifiSetInactiveTime = 325; //0x145 - Req_WifiGetInactiveTime = 326; //0x146 - Req_WifiStatisDump = 327; //0x147 - Req_WifiSetRssiThreshold = 328; //0x148 - - Req_WifiFtmInitiateSession = 329; //0x149 - Req_WifiFtmEndSession = 330; //0x14a - Req_WifiFtmRespSetOffset = 331; //0x14b - - Req_WifiConfig11bRate = 332; //0x14c - Req_WifiConnectionlessModuleSetWakeInterval = 333; //0x14d - Req_WifiSetCountryCode = 334; //0x14e - Req_WifiGetCountryCode = 335; //0x14f - Req_WifiConfig80211TxRate = 336; //0x150 - Req_WifiDisablePmfConfig = 337; //0x151 - Req_WifiStaGetAid = 338; //0x152 - Req_WifiStaGetNegotiatedPhymode = 339; //0x153 - Req_WifiSetDynamicCs = 340; //0x154 - Req_WifiStaGetRssi = 341; //0x155 - - Req_WifiSetProtocols = 342; //0x156 - Req_WifiGetProtocols = 343; //0x157 - Req_WifiSetBandwidths = 344; //0x158 - Req_WifiGetBandwidths = 345; //0x159 - - Req_WifiSetBand = 346; //0x15a - Req_WifiGetBand = 347; //0x15b - Req_WifiSetBandMode = 348; //0x15c - Req_WifiGetBandMode = 349; //0x15d - - Req_GetCoprocessorFwVersion = 350; //0x15e - - Req_WifiScanGetApRecord = 351; //0x15f - -/* Add new control path command response before Req_Max - * and update Req_Max */ - Req_Max = 352; //0x160 - - /** Response Msgs **/ - Resp_Base = 512; - - Resp_GetMACAddress = 513; - Resp_SetMacAddress = 514; - Resp_GetWifiMode = 515; - Resp_SetWifiMode = 516; - - //Resp_GetAPScanList = 517; - //Resp_GetAPConfig = 518; - //Resp_ConnectAP = 519; - //Resp_DisconnectAP = 520; - - //Resp_GetSoftAPConfig = 521; - //Resp_SetSoftAPVendorSpecificIE = 522; - //Resp_StartSoftAP = 523; - //Resp_GetSoftAPConnectedSTAList = 524; - //Resp_StopSoftAP = 525; - - Resp_WifiSetPs = 526; - Resp_WifiGetPs = 527; - - Resp_OTABegin = 528; - Resp_OTAWrite = 529; - Resp_OTAEnd = 530; - - Resp_WifiSetMaxTxPower = 531; - Resp_WifiGetMaxTxPower = 532; - - Resp_ConfigHeartbeat = 533; - - Resp_WifiInit = 534; - Resp_WifiDeinit = 535; - Resp_WifiStart = 536; - Resp_WifiStop = 537; - Resp_WifiConnect = 538; - Resp_WifiDisconnect = 539; - Resp_WifiSetConfig = 540; - Resp_WifiGetConfig = 541; - - Resp_WifiScanStart = 542; - Resp_WifiScanStop = 543; - Resp_WifiScanGetApNum = 544; - Resp_WifiScanGetApRecords = 545; - Resp_WifiClearApList = 546; - - Resp_WifiRestore = 547; - Resp_WifiClearFastConnect = 548; - Resp_WifiDeauthSta = 549; - Resp_WifiStaGetApInfo = 550; - //Resp_WifiSetPs = 551; - //Resp_WifiGetPs = 552; - Resp_WifiSetProtocol = 553; - Resp_WifiGetProtocol = 554; - Resp_WifiSetBandwidth = 555; - Resp_WifiGetBandwidth = 556; - Resp_WifiSetChannel = 557; - Resp_WifiGetChannel = 558; - Resp_WifiSetCountry = 559; - Resp_WifiGetCountry = 560; - -// Resp_WifiSetPromiscuousRxCb = 561; - Resp_WifiSetPromiscuous = 561; - Resp_WifiGetPromiscuous = 562; - Resp_WifiSetPromiscuousFilter = 563; - Resp_WifiGetPromiscuousFilter = 564; - Resp_WifiSetPromiscuousCtrlFilter = 565; - Resp_WifiGetPromiscuousCtrlFilter = 566; - - Resp_WifiApGetStaList = 567; - Resp_WifiApGetStaAid = 568; - Resp_WifiSetStorage = 569; - Resp_WifiSetVendorIe = 570; -// Resp_WifiSetVendorIeCb = 571; - Resp_WifiSetEventMask = 571; - Resp_WifiGetEventMask = 572; - Resp_Wifi80211Tx = 573; - -// Resp_WifiSetCsiRxCb = 573; - Resp_WifiSetCsiConfig = 574; - Resp_WifiSetCsi = 575; - - Resp_WifiSetAntGpio = 576; - Resp_WifiGetAntGpio = 577; - Resp_WifiSetAnt = 578; - Resp_WifiGetAnt = 579; - - Resp_WifiGetTsfTime = 580; - Resp_WifiSetInactiveTime = 581; - Resp_WifiGetInactiveTime = 582; - Resp_WifiStatisDump = 583; - Resp_WifiSetRssiThreshold = 584; - - Resp_WifiFtmInitiateSession = 585; - Resp_WifiFtmEndSession = 586; - Resp_WifiFtmRespSetOffset = 587; - - Resp_WifiConfig11bRate = 588; - Resp_WifiConnectionlessModuleSetWakeInterval = 589; - Resp_WifiSetCountryCode = 590; - Resp_WifiGetCountryCode = 591; - Resp_WifiConfig80211TxRate = 592; - Resp_WifiDisablePmfConfig = 593; - Resp_WifiStaGetAid = 594; - Resp_WifiStaGetNegotiatedPhymode = 595; - Resp_WifiSetDynamicCs = 596; - Resp_WifiStaGetRssi = 597; - - Resp_WifiSetProtocols = 598; - Resp_WifiGetProtocols = 599; - Resp_WifiSetBandwidths = 600; - Resp_WifiGetBandwidths = 601; - - Resp_WifiSetBand = 602; - Resp_WifiGetBand = 603; - Resp_WifiSetBandMode = 604; - Resp_WifiGetBandMode = 605; - - Resp_GetCoprocessorFwVersion = 606; - - Resp_WifiScanGetApRecord = 607; - - /* Add new control path command response before Resp_Max - * and update Resp_Max */ - Resp_Max = 608; - - /** Event Msgs **/ - Event_Base = 768; - Event_ESPInit = 769; - Event_Heartbeat = 770; - Event_AP_StaConnected = 771; - Event_AP_StaDisconnected = 772; - Event_WifiEventNoArgs = 773; - Event_StaScanDone = 774; - Event_StaConnected = 775; - Event_StaDisconnected = 776; - - /* Add new control path command notification before Event_Max - * and update Event_Max */ - Event_Max = 777; -} - -message wifi_init_config { - int32 static_rx_buf_num = 1; /**< WiFi static RX buffer number */ - int32 dynamic_rx_buf_num = 2; /**< WiFi dynamic RX buffer number */ - int32 tx_buf_type = 3; /**< WiFi TX buffer type */ - int32 static_tx_buf_num = 4; /**< WiFi static TX buffer number */ - int32 dynamic_tx_buf_num = 5; /**< WiFi dynamic TX buffer number */ - int32 cache_tx_buf_num = 6; /**< WiFi TX cache buffer number */ - int32 csi_enable = 7; /**< WiFi channel state information enable flag */ - int32 ampdu_rx_enable = 8; /**< WiFi AMPDU RX feature enable flag */ - int32 ampdu_tx_enable = 9; /**< WiFi AMPDU TX feature enable flag */ - int32 amsdu_tx_enable = 10; /**< WiFi AMSDU TX feature enable flag */ - int32 nvs_enable = 11; /**< WiFi NVS flash enable flag */ - int32 nano_enable = 12; /**< Nano option for printf/scan family enable flag */ - int32 rx_ba_win = 13; /**< WiFi Block Ack RX window size */ - int32 wifi_task_core_id = 14; /**< WiFi Task Core ID */ - int32 beacon_max_len = 15; /**< WiFi softAP maximum length of the beacon */ - int32 mgmt_sbuf_num = 16; /**< WiFi management short buffer number, the minimum value is 6, the maximum value is 32 */ - uint64 feature_caps = 17; /**< Enables additional WiFi features and capabilities */ - bool sta_disconnected_pm = 18; /**< WiFi Power Management for station at disconnected status */ - int32 espnow_max_encrypt_num = 19; /**< Maximum encrypt number of peers supported by espnow */ - int32 magic = 20; /**< WiFi init magic number, it should be the last field */ -} - -message wifi_country { - bytes cc = 1; /**< country code string of 3 chars*/ - uint32 schan = 2; /**< start channel */ - uint32 nchan = 3; /**< total channel number */ - int32 max_tx_power = 4; /**< This field is used for getting WiFi maximum transmitting power, - call esp_wifi_set_max_tx_power to set the maximum transmitting power. */ - int32 policy = 5; /**< country policy */ -} - - -message wifi_active_scan_time { - uint32 min = 1; /**< minimum active scan time per channel, units: millisecond */ - uint32 max = 2; /**< maximum active scan time per channel, units: millisecond, values above 1500ms may - cause station to disconnect from AP and are not recommended. */ -} ; - -message wifi_scan_time { - wifi_active_scan_time active = 1; /**< active scan time per channel, units: millisecond. */ - uint32 passive = 2; /**< passive scan time per channel, units: millisecond, values above 1500ms may - cause station to disconnect from AP and are not recommended. */ -} - -message wifi_scan_config { - bytes ssid = 1; /**< SSID of AP 33char*/ - bytes bssid = 2; /**< MAC address of AP 6char */ - uint32 channel = 3; /**< channel, scan the specific channel */ - bool show_hidden = 4; /**< enable to scan AP whose SSID is hidden */ - int32 scan_type = 5; /**< scan type, active or passive */ - wifi_scan_time scan_time = 6; /**< scan time per channel */ - uint32 home_chan_dwell_time = 7; /**< time spent at home channel between scanning consecutive channels.*/ -} - -message wifi_he_ap_info { - //uint8_t bss_color:6; /**< an unsigned integer whose value is the BSS Color of the BSS corresponding to the AP */ - //uint8_t partial_bss_color:1; /**< indicate if an AID assignment rule based on the BSS color */ - //uint8_t bss_color_disabled:1; /**< indicate if the use of BSS color is disabled */ - uint32 bitmask = 1; /* Manually have to parse for above bits */ - uint32 bssid_index = 2; /**< in M-BSSID set, identifies the nontransmitted BSSID */ -} - -message wifi_ap_record { - bytes bssid = 1; /**< MAC address of AP 6char */ - bytes ssid = 2; /**< SSID of AP 33char */ - uint32 primary = 3; /**< channel of AP */ - int32 second = 4; /**< secondary channel of AP */ - int32 rssi = 5; /**< signal strength of AP */ - int32 authmode = 6; /**< authmode of AP */ - int32 pairwise_cipher = 7; /**< pairwise cipher of AP */ - int32 group_cipher = 8; /**< group cipher of AP */ - int32 ant = 9; /**< antenna used to receive beacon from AP */ - //uint32_t phy_11b:1; /**< bit: 0 flag to identify if 11b mode is enabled or not */ - //uint32_t phy_11g:1; /**< bit: 1 flag to identify if 11g mode is enabled or not */ - //uint32_t phy_11n:1; /**< bit: 2 flag to identify if 11n mode is enabled or not */ - //uint32_t phy_lr:1; /**< bit: 3 flag to identify if low rate is enabled or not */ - //uint32_t wps:1; /**< bit: 4 flag to identify if WPS is supported or not */ - //uint32_t ftm_responder:1; /**< bit: 5 flag to identify if FTM is supported in responder mode */ - //uint32_t ftm_initiator:1; /**< bit: 6 flag to identify if FTM is supported in initiator mode */ - //uint32_t reserved:25; /**< bit: 7..31 reserved */ - uint32 bitmask = 10; /* Manually have to parse for above bits */ - - wifi_country country = 11; /**< country information of AP */ - wifi_he_ap_info he_ap = 12; - uint32 bandwidth = 13; /**< For AP 20 MHz this value is set to 1. For AP 40 MHz this value is set to 2. - For AP 80 MHz this value is set to 3. For AP 160MHz this value is set to 4. - For AP 80+80MHz this value is set to 5*/ - uint32 vht_ch_freq1 = 14; /**< This fields are used only AP bandwidth is 80 and 160 MHz, to transmit the center channel - frequency of the BSS. For AP bandwidth is 80 + 80 MHz, it is the center channel frequency - of the lower frequency segment.*/ - uint32 vht_ch_freq2 = 15; /**< This fields are used only AP bandwidth is 80 + 80 MHz, and is used to transmit the center - channel frequency of the second segment. */ -} - -message wifi_scan_threshold { - int32 rssi = 1; /**< The minimum rssi to accept in the fast scan mode */ - int32 authmode = 2; /**< The weakest authmode to accept in the fast scan mode -Note: Incase this value is not set and password is set as per WPA2 standards(password len >= 8), -it will be defaulted to WPA2 and device won't connect to deprecated WEP/WPA networks. -Please set authmode threshold as WIFI_AUTH_WEP/WIFI_AUTH_WPA_PSK to connect to WEP/WPA networks */ -} - -message wifi_pmf_config { - bool capable = 1; /**< Deprecated variable. Device will always connect in PMF mode if other device also advertizes PMF capability. */ - bool required = 2; /**< Advertizes that Protected Management Frame is required. Device will not associate to non-PMF capable devices. */ -} - -message wifi_ap_config { - bytes ssid = 1; /**< SSID of ESP32 soft-AP. If ssid_len field is 0, this must be a Null terminated string. Otherwise, length is set according to ssid_len. 32 char*/ - bytes password = 2; /**< Password of ESP32 soft-AP. 64 char*/ - uint32 ssid_len = 3; /**< Optional length of SSID field. */ - uint32 channel = 4; /**< Channel of ESP32 soft-AP */ - int32 authmode = 5; /**< Auth mode of ESP32 soft-AP. Do not support AUTH_WEP in soft-AP mode */ - uint32 ssid_hidden = 6; /**< Broadcast SSID or not, default 0, broadcast the SSID */ - uint32 max_connection = 7; /**< Max number of stations allowed to connect in */ - uint32 beacon_interval = 8; /**< Beacon interval which should be multiples of 100. Unit: TU(time unit, 1 TU = 1024 us). Range: 100 ~ 60000. Default value: 100 */ - int32 pairwise_cipher = 9; /**< pairwise cipher of SoftAP, group cipher will be derived using this. - cipher values are valid starting from WIFI_CIPHER_TYPE_TKIP, enum values before that will be considered as invalid and default cipher suites(TKIP+CCMP) will be used. - Valid cipher suites in softAP mode are WIFI_CIPHER_TYPE_TKIP, WIFI_CIPHER_TYPE_CCMP and WIFI_CIPHER_TYPE_TKIP_CCMP. */ - bool ftm_responder = 10; /**< Enable FTM Responder mode */ - wifi_pmf_config pmf_cfg = 11; /**< Configuration for Protected Management Frame */ - int32 sae_pwe_h2e = 12; /**< Configuration for SAE PWE derivation method */ -} - -message wifi_sta_config { - bytes ssid = 1; /**< SSID of target AP. 32char */ - bytes password = 2; /**< Password of target AP. 64char */ - int32 scan_method = 3; /**< do all channel scan or fast scan */ - bool bssid_set = 4; /**< whether set MAC address of target AP or not. Generally, station_config.bssid_set needs to be 0, - and it needs to be 1 only when users need to check the MAC address of the AP.*/ - bytes bssid = 5; /**< MAC address of target AP 6char */ - uint32 channel = 6; /**< channel of target AP. Set to 1~13 to scan starting from the specified channel - before connecting to AP. If the channel of AP is unknown, set it to 0.*/ - uint32 listen_interval = 7; /**< Listen interval for ESP32 station to receive beacon when WIFI_PS_MAX_MODEM is set. -Units: AP beacon intervals. Defaults to 3 if set to 0. */ - int32 sort_method = 8; /**< sort the connect AP in the list by rssi or security mode */ - wifi_scan_threshold threshold = 9; /**< When sort_method is set, only APs which have an auth mode that is more secure - than the selected auth mode and a signal stronger than the minimum RSSI will be used. */ - wifi_pmf_config pmf_cfg = 10; /**< Configuration for Protected Management Frame. Will be advertized in RSN Capabilities in RSN IE. */ - //uint32_t rm_enabled:1; /**< Whether Radio Measurements are enabled for the connection */ - //uint32_t btm_enabled:1; /**< Whether BSS Transition Management is enabled for the connection */ - //uint32_t mbo_enabled:1; /**< Whether MBO is enabled for the connection */ - //uint32_t ft_enabled:1; /**< Whether FT is enabled for the connection */ - //uint32_t owe_enabled:1; /**< Whether OWE is enabled for the connection */ - //uint32_t transition_disable:1; /**< Whether to enable transition disable feature */ - //uint32_t reserved:26; /**< Reserved for future feature set */ - uint32 bitmask = 11; - int32 sae_pwe_h2e = 12; /**< Whether SAE hash to element is enabled */ - uint32 failure_retry_cnt = 13; /**< Number of connection retries station will do before moving to next AP. - scan_method should be set as WIFI_ALL_CHANNEL_SCAN to use this config. - Note: Enabling this may cause connection time to increase incase best AP doesn't behave properly. */ - //uint32_t he_dcm_set:1; /**< Whether DCM max.constellation for transmission and reception is set. */ - //uint32_t he_dcm_max_constellation_tx:2; /**< Indicate the max.constellation for DCM in TB PPDU the STA supported. 0: not supported. 1: BPSK, 2: QPSK, 3: 16-QAM. The default value is 3. */ - //uint32_t he_dcm_max_constellation_rx:2; /**< Indicate the max.constellation for DCM in both Data field and HE-SIG-B field the STA supported. 0: not supported. 1: BPSK, 2: QPSK, 3: 16-QAM. The default value is 3. */ - //uint32_t he_mcs9_enabled:1; /**< Whether to support HE-MCS 0 to 9. The default value is 0. */ - //uint32_t he_su_beamformee_disabled:1; /**< Whether to disable support for operation as an SU beamformee. */ - //uint32_t he_trig_su_bmforming_feedback_disabled:1; /**< Whether to disable support the transmission of SU feedback in an HE TB sounding sequence. */ - //uint32_t he_trig_mu_bmforming_partial_feedback_disabled:1; /**< Whether to disable support the transmission of partial-bandwidth MU feedback in an HE TB sounding sequence. */ - // uint32_t he_trig_cqi_feedback_disabled:1; /**< Whether to disable support the transmission of CQI feedback in an HE TB sounding sequence. */ - // uint32_t he_reserved:22; /**< Reserved for future feature set */ - uint32 he_bitmask = 14; - bytes sae_h2e_identifier = 15; /**< Password identifier for H2E. this needs to be null terminated string. SAE_H2E_IDENTIFIER_LEN chars */ -} - -message wifi_config { - oneof u { - wifi_ap_config ap = 1; /**< configuration of AP */ - wifi_sta_config sta = 2; /**< configuration of STA */ - } -} - -message wifi_sta_info { - bytes mac = 1; /**< mac address 6 char */ - int32 rssi = 2; /**< current average rssi of sta connected */ - //uint32_t phy_11b:1; /**< bit: 0 flag to identify if 11b mode is enabled or not */ - //uint32_t phy_11g:1; /**< bit: 1 flag to identify if 11g mode is enabled or not */ - //uint32_t phy_11n:1; /**< bit: 2 flag to identify if 11n mode is enabled or not */ - //uint32_t phy_lr:1; /**< bit: 3 flag to identify if low rate is enabled or not */ - //uint32_t phy_11x:1; /**< bit: 4 flag to identify identify if 11ax mode is enabled or not */ - //uint32_t is_mesh_child:1; /**< bit: 5 flag to identify mesh child */ - //uint32_t reserved:26; /**< bit: 6..31 reserved */ - uint32 bitmask = 3; -} - -message wifi_sta_list { - repeated wifi_sta_info sta = 1; /**< station list */ - int32 num = 2; /**< number of stations in the list (other entries are invalid) */ -} - -//message vendor_ie_data { -// uint32 element_id = 1; /**< Should be set to WIFI_VENDOR_IE_ELEMENT_ID (0xDD) */ -// uint32 length = 2; /**< Length of all bytes in the element data following this field. Minimum 4. */ -// bytes vendor_oui = 3; /**< Vendor identifier (OUI). 3 chars */ -// uint32 vendor_oui_type = 4; /**< Vendor-specific OUI type. */ -// bytes payload = 5; /**< Payload. Length is equal to value in 'length' field, minus 4. Note: Variable size */ -//} - -message wifi_pkt_rx_ctrl { - int32 rssi = 1; /**< 8bits Received Signal Strength Indicator(RSSI) of packet. unit: dBm */ - uint32 rate = 2; /**< 5bits PHY rate encoding of the packet. Only valid for non HT(11bg) packet */ - //uint32 :1; /**< reserved */ - uint32 sig_mode = 3; /**< 2bits 0: non HT(11bg) packet; 1: HT(11n) packet; 3: VHT(11ac) packet */ - //uint32 :16; /**< reserved */ - uint32 mcs = 4; /**< 7bits Modulation Coding Scheme. If is HT(11n) packet, shows the modulation, range from 0 to 76(MSC0 ~ MCS76) */ - uint32 cwb = 5; /**< 1bit Channel Bandwidth of the packet. 0: 20MHz; 1: 40MHz */ - //uint32 :16; /**< reserved */ - uint32 smoothing = 6; /**< 1bit reserved */ - uint32 not_sounding = 7; /**< 1bit reserved */ - //uint32 :1; /**< reserved */ - uint32 aggregation = 8; /**< 1bit Aggregation. 0: MPDU packet; 1: AMPDU packet */ - uint32 stbc = 9; /**< 2bits Space Time Block Code(STBC). 0: non STBC packet; 1: STBC packet */ - uint32 fec_coding = 10; /**< 1bit Flag is set for 11n packets which are LDPC */ - uint32 sgi = 11; /**< 1bit Short Guide Interval(SGI). 0: Long GI; 1: Short GI */ - int32 noise_floor = 12; /**< 8bits noise floor of Radio Frequency Module(RF). unit: dBm*/ - uint32 ampdu_cnt = 13; /**< 8bits ampdu cnt */ - uint32 channel = 14; /**< 4bits primary channel on which this packet is received */ - uint32 secondary_channel = 15; /**< 4bits secondary channel on which this packet is received. 0: none; 1: above; 2: below */ - //uint32 :8; /**< reserved */ - uint32 timestamp = 16; /**< 32bit timestamp. The local time when this packet is received. It is precise only if modem sleep or light sleep is not enabled. unit: microsecond */ - //uint32 :32; /**< reserved */ - //unsigned :32; /**< reserved */ - //unsigned :31; /**< reserved */ - uint32 ant = 17; /**< 1bit antenna number from which this packet is received. 0: WiFi antenna 0; 1: WiFi antenna 1 */ - uint32 sig_len = 18; /**< 12bits length of packet including Frame Check Sequence(FCS) */ - //unsigned :12; /**< reserved */ - uint32 rx_state = 19; /**< 8bits state of the packet. 0: no error; others: error numbers which are not public */ -} - -message wifi_promiscuous_pkt { - wifi_pkt_rx_ctrl rx_ctrl = 1; /**< metadata header */ - bytes payload = 2; /**< Note: variable length. Data or management payload. Length of payload is described by rx_ctrl.sig_len. Type of content determined by packet type argument of callback. */ -} - -message wifi_promiscuous_filter { - uint32 filter_mask = 1; /**< OR of one or more filter values WIFI_PROMIS_FILTER_* */ -} - -message wifi_csi_config { - bool lltf_en = 1; /**< enable to receive legacy long training field(lltf) data. Default enabled */ - bool htltf_en = 2; /**< enable to receive HT long training field(htltf) data. Default enabled */ - bool stbc_htltf2_en = 3; /**< enable to receive space time block code HT long training field(stbc-htltf2) data. Default enabled */ - bool ltf_merge_en = 4; /**< enable to generate htlft data by averaging lltf and ht_ltf data when receiving HT packet. Otherwise, use ht_ltf data directly. Default enabled */ - bool channel_filter_en = 5; /**< enable to turn on channel filter to smooth adjacent sub-carrier. Disable it to keep independence of adjacent sub-carrier. Default enabled */ - bool manu_scale = 6; /**< manually scale the CSI data by left shifting or automatically scale the CSI data. - If set true, please set the shift bits. false: automatically. true: manually. Default false */ - uint32 shift = 7; /**< manually left shift bits of the scale of the CSI data. The range of the left shift bits is 0~15 */ -} - -message wifi_csi_info { - wifi_pkt_rx_ctrl rx_ctrl = 1; /**< received packet radio metadata header of the CSI data */ - bytes mac = 2; /**< 6bits source MAC address of the CSI data */ - bytes dmac = 3; /**< 6bits destination MAC address of the CSI data */ - bool first_word_invalid = 4; /**< first four bytes of the CSI data is invalid or not */ - bytes buf = 5; /**< Note: variable length. buffer of CSI data */ - uint32 len = 6; /**< length of CSI data */ -} - -message wifi_ant_gpio { - uint32 gpio_select = 1; /**< 1bit Whether this GPIO is connected to external antenna switch */ - uint32 gpio_num = 2; /**< 7bits The GPIO number that connects to external antenna switch */ -} - -message wifi_ant_gpio_config { - repeated wifi_ant_gpio gpio_cfgs = 1; /**< The configurations of GPIOs that connect to external antenna switch */ -} - -message wifi_ant_config { - int32 rx_ant_mode = 1; /**< WiFi antenna mode for receiving */ - int32 rx_ant_default = 2; /**< Default antenna mode for receiving, it's ignored if rx_ant_mode is not WIFI_ANT_MODE_AUTO */ - int32 tx_ant_mode = 3; /**< WiFi antenna mode for transmission, it can be set to WIFI_ANT_MODE_AUTO only if rx_ant_mode is set to WIFI_ANT_MODE_AUTO */ - uint32 enabled_ant0 = 4; /**< 4bits Index (in antenna GPIO configuration) of enabled WIFI_ANT_MODE_ANT0 */ - uint32 enabled_ant1 = 5; /**< 4bits Index (in antenna GPIO configuration) of enabled WIFI_ANT_MODE_ANT1 */ -} - -message wifi_action_tx_req { - int32 ifx = 1; /**< WiFi interface to send request to */ - bytes dest_mac = 2; /**< 6bits Destination MAC address */ - bool no_ack = 3; /**< Indicates no ack required */ - //TODO - //wifi_action_rx_cb_t rx_cb; /**< Rx Callback to receive any response */ - uint32 data_len = 4; /**< Length of the appended Data */ - bytes data = 5; /**< note: variable length. Appended Data payload */ -} - -message wifi_ftm_initiator_cfg { - bytes resp_mac = 1; /**< 6bits MAC address of the FTM Responder */ - uint32 channel = 2; /**< Primary channel of the FTM Responder */ - uint32 frm_count = 3; /**< No. of FTM frames requested in terms of 4 or 8 bursts (allowed values - 0(No pref), 16, 24, 32, 64) */ - uint32 burst_period = 4; /**< Requested time period between consecutive FTM bursts in 100's of milliseconds (0 - No pref) */ -} - -message wifi_event_sta_scan_done { - uint32 status = 1; /**< status of scanning APs: 0 — success, 1 - failure */ - uint32 number = 2; /**< number of scan results */ - uint32 scan_id = 3; /**< scan sequence number, used for block scan */ -} - -message wifi_event_sta_connected { - bytes ssid = 1; /**< 32bytes SSID of connected AP */ - uint32 ssid_len = 2; /**< SSID length of connected AP */ - bytes bssid = 3; /**< 6bytes BSSID of connected AP*/ - uint32 channel = 4; /**< channel of connected AP*/ - int32 authmode = 5; /**< authentication mode used by AP*/ - int32 aid = 6; /**< authentication id assigned by the connected AP*/ -} - -message wifi_event_sta_disconnected { - bytes ssid = 1; /**< SSID of disconnected AP */ - uint32 ssid_len = 2; /**< SSID length of disconnected AP */ - bytes bssid = 3; /**< BSSID of disconnected AP */ - uint32 reason = 4; /**< reason of disconnection */ - int32 rssi = 5; /**< rssi of disconnection */ -} - -message wifi_event_sta_authmode_change { - int32 old_mode = 1; /**< the old auth mode of AP */ - int32 new_mode = 2; /**< the new auth mode of AP */ -} - -message wifi_event_sta_wps_er_pin { - bytes pin_code = 1; /**< 8bytes PIN code of station in enrollee mode */ -} - -message ap_cred { - bytes ssid = 1; /**< 32bytes SSID of AP */ - bytes passphrase = 2; /**< 64bytes Passphrase for the AP */ -} - -message wifi_event_sta_wps_er_success { - uint32 ap_cred_cnt = 1; /**< Number of AP credentials received */ - repeated ap_cred ap_creds = 2; /**< All AP credentials received from WPS handshake */ -} - -/** Argument structure for WIFI_EVENT_AP_PROBEREQRECVED event */ -message wifi_event_ap_probe_req_rx { - int32 rssi = 1; /**< Received probe request signal strength */ - uint32 mac = 2; /**< MAC address of the station which send probe request */ -} - -/** Argument structure for WIFI_EVENT_STA_BSS_RSSI_LOW event */ -message wifi_event_bss_rssi_low { - int32 rssi = 1; /**< RSSI value of bss */ -} - -message wifi_ftm_report_entry { - uint32 dlog_token = 1; /* *< Dialog Token of the FTM frame */ - int32 rssi = 2; /* *< RSSI of the FTM frame received */ - uint32 rtt = 3; /* *< Round Trip Time in pSec with a peer */ - /* TODO: uint32 is supported by proto? */ - uint64 t1 = 4; /* *< Time of departure of FTM frame from FTM Responder in pSec */ - uint64 t2 = 5; /* *< Time of arrival of FTM frame at FTM Initiator in pSec */ - uint64 t3 = 6; /* *< Time of departure of ACK from FTM Initiator in pSec */ - uint64 t4 = 7; /* *< Time of arrival of ACK at FTM Responder in pSec */ -} - -message wifi_event_ftm_report { - bytes peer_mac = 1; /* *< 6bytes MAC address of the FTM Peer */ - int32 status = 2; /* *< Status of the FTM operation */ - uint32 rtt_raw = 3; /* *< Raw average Round-Trip-Time with peer in Nano-Seconds */ - uint32 rtt_est = 4; /* *< Estimated Round-Trip-Time with peer in Nano-Seconds */ - uint32 dist_est = 5; /* *< Estimated one-way distance in Centi-Meters */ - repeated wifi_ftm_report_entry ftm_report_data = 6; /* *< Note var len Pointer to FTM Report with multiple entries, should be freed after use */ - uint32 ftm_report_num_entries = 7; /* *< Number of entries in the FTM Report data */ -} - -message wifi_event_action_tx_status { - int32 ifx = 1; /**< WiFi interface to send request to */ - uint32 context = 2; /**< Context to identify the request */ - bytes da = 3; /**< 6bytes Destination MAC address */ - uint32 status = 4; /**< Status of the operation */ -} - -message wifi_event_roc_done { - uint32 context = 1; /**< Context to identify the request */ -} - -message wifi_event_ap_wps_rg_pin { - bytes pin_code = 1; /**< 8bytes PIN code of station in enrollee mode */ -} - -message wifi_event_ap_wps_rg_fail_reason { - int32 reason = 1; /**< WPS failure reason wps_fail_reason_t */ - bytes peer_macaddr = 2; /**< 6bytes Enrollee mac address */ -} - -message wifi_event_ap_wps_rg_success { - bytes peer_macaddr = 1; /**< 6bytes Enrollee mac address */ -} - -message wifi_protocols { - uint32 ghz_2g = 1; /**< Represents 2.4 GHz protocol, support 802.11b or 802.11g or 802.11n or 802.11ax or LR mode */ - uint32 ghz_5g = 2; /**< Represents 5 GHz protocol, support 802.11a or 802.11n or 802.11ac or 802.11ax */ -} - -message wifi_bandwidths { - uint32 ghz_2g = 1; /* Represents 2.4 GHz bandwidth */ - uint32 ghz_5g = 2; /* Represents 5 GHz bandwidth */ -} - -/* internal supporting structures for Rpc */ -//message ScanResult { -// bytes bssid = 1; -// bytes ssid = 2; -// uint32 chnl = 3; -// int32 rssi = 4; -// int32 sec_prot = 5; -//} - -message ConnectedSTAList { - bytes mac = 1; - int32 rssi = 2; -} - - -/* Control path structures */ -/** Req/Resp structure **/ -message Rpc_Req_GetMacAddress { - int32 mode = 1; -} - -message Rpc_Resp_GetMacAddress { - bytes mac = 1; - int32 resp = 2; -} - -message Rpc_Req_GetMode { -} - -message Rpc_Resp_GetMode { - int32 mode = 1; - int32 resp = 2; -} - -message Rpc_Req_SetMode { - int32 mode = 1; -} - -message Rpc_Resp_SetMode { - int32 resp = 1; -} - -message Rpc_Req_GetPs { -} - -message Rpc_Resp_GetPs { - int32 resp = 1; - int32 type = 2; -} - -message Rpc_Req_SetPs { - int32 type = 1; -} - -message Rpc_Resp_SetPs { - int32 resp = 1; -} - -message Rpc_Req_SetMacAddress { - bytes mac = 1; - int32 mode = 2; -} - -message Rpc_Resp_SetMacAddress { - int32 resp = 1; -} - - -//message Rpc_Req_GetAPConfig { -//} -// -///* To be deprecated */ -//message Rpc_Resp_GetAPConfig { -// bytes ssid = 1; -// bytes bssid = 2; -// int32 rssi = 3; -// int32 chnl = 4; -// int32 sec_prot = 5; -// int32 resp = 6; -//} - -/* To be deprecated */ -//message Rpc_Req_ConnectAP { -// string ssid = 1; -// string pwd = 2; -// string bssid = 3; -// bool is_wpa3_supported = 4; -// int32 listen_interval = 5; -//} -// -//message Rpc_Resp_ConnectAP { -// int32 resp = 1; -// bytes mac = 2; -//} - -//message Rpc_Req_GetSoftAPConfig { -//} -// -//message Rpc_Resp_GetSoftAPConfig { -// bytes ssid = 1; -// bytes pwd = 2; -// int32 chnl = 3; -// int32 sec_prot = 4; -// int32 max_conn = 5; -// bool ssid_hidden = 6; -// int32 bw = 7; -// int32 resp = 8; -//} - -//message Rpc_Req_StartSoftAP { -// string ssid = 1; -// string pwd = 2; -// int32 chnl = 3; -// int32 sec_prot = 4; -// int32 max_conn = 5; -// bool ssid_hidden = 6; -// int32 bw = 7; -//} -// -//message Rpc_Resp_StartSoftAP { -// int32 resp = 1; -// bytes mac = 2; -//} - -//message Rpc_Req_ScanResult { -//} -// -//message Rpc_Resp_ScanResult { -// uint32 count = 1; -// repeated ScanResult entries = 2; -// int32 resp = 3; -//} - -//message Rpc_Req_SoftAPConnectedSTA { -//} -// -//message Rpc_Resp_SoftAPConnectedSTA { -// uint32 num = 1; -// repeated ConnectedSTAList stations = 2; -// int32 resp = 3; -//} - -message Rpc_Req_OTABegin { -} - -message Rpc_Resp_OTABegin { - int32 resp = 1; -} - -message Rpc_Req_OTAWrite { - bytes ota_data = 1; -} - -message Rpc_Resp_OTAWrite { - int32 resp = 1; -} - -message Rpc_Req_OTAEnd { -} - -message Rpc_Resp_OTAEnd { - int32 resp = 1; -} - -//message Rpc_Req_VendorIEData { -// int32 element_id = 1; -// int32 length = 2; -// bytes vendor_oui = 3; -// int32 vendor_oui_type = 4; -// bytes payload = 5; -//} -// -//message Rpc_Req_SetSoftAPVendorSpecificIE { -// bool enable = 1; -// int32 type = 2; -// int32 idx = 3; -// Rpc_Req_VendorIEData vendor_ie_data = 4; -//} -// -//message Rpc_Resp_SetSoftAPVendorSpecificIE { -// int32 resp = 1; -//} - -message Rpc_Req_WifiSetMaxTxPower { - int32 power = 1; -} - -message Rpc_Resp_WifiSetMaxTxPower { - int32 resp = 1; -} - -message Rpc_Req_WifiGetMaxTxPower { -} - -message Rpc_Resp_WifiGetMaxTxPower { - int32 power = 1; - int32 resp = 2; -} - -message Rpc_Req_ConfigHeartbeat { - bool enable = 1; - int32 duration = 2; -} - -message Rpc_Resp_ConfigHeartbeat { - int32 resp = 1; -} - -message Rpc_Req_WifiInit { - wifi_init_config cfg = 1; -} - -message Rpc_Resp_WifiInit { - int32 resp = 1; -} - -message Rpc_Req_WifiDeinit { -} - -message Rpc_Resp_WifiDeinit { - int32 resp = 1; -} - -message Rpc_Req_WifiSetConfig { - int32 iface = 1; - wifi_config cfg = 2; -} - -message Rpc_Resp_WifiSetConfig { - int32 resp = 1; -} - -message Rpc_Req_WifiGetConfig { - int32 iface = 1; -} - -message Rpc_Resp_WifiGetConfig { - int32 resp = 1; - int32 iface = 2; - wifi_config cfg = 3; -} - -message Rpc_Req_WifiConnect { -} - -message Rpc_Resp_WifiConnect { - int32 resp = 1; -} - -message Rpc_Req_WifiDisconnect { -} - -message Rpc_Resp_WifiDisconnect { - int32 resp = 1; -} - -message Rpc_Req_WifiStart { -} - -message Rpc_Resp_WifiStart { - int32 resp = 1; -} - -message Rpc_Req_WifiStop { -} - -message Rpc_Resp_WifiStop { - int32 resp = 1; -} - -message Rpc_Req_WifiScanStart { - wifi_scan_config config = 1; - bool block = 2; - int32 config_set = 3; -} - -message Rpc_Resp_WifiScanStart { - int32 resp = 1; -} - -message Rpc_Req_WifiScanStop { -} - -message Rpc_Resp_WifiScanStop { - int32 resp = 1; -} - -message Rpc_Req_WifiScanGetApNum { -} - -message Rpc_Resp_WifiScanGetApNum { - int32 resp = 1; - int32 number = 2; -} - -message Rpc_Req_WifiScanGetApRecords { - int32 number = 1; -} - -message Rpc_Resp_WifiScanGetApRecords { - int32 resp = 1; - int32 number = 2; - repeated wifi_ap_record ap_records = 3; -} - -message Rpc_Req_WifiScanGetApRecord { -} - -message Rpc_Resp_WifiScanGetApRecord { - int32 resp = 1; - wifi_ap_record ap_record = 2; -} - -message Rpc_Req_WifiClearApList { -} - -message Rpc_Resp_WifiClearApList { - int32 resp = 1; -} - -message Rpc_Req_WifiRestore { -} - -message Rpc_Resp_WifiRestore { - int32 resp = 1; -} - -message Rpc_Req_WifiClearFastConnect{ -} - -message Rpc_Resp_WifiClearFastConnect { - int32 resp = 1; -} - -message Rpc_Req_WifiDeauthSta { - int32 aid = 1; -} - -message Rpc_Resp_WifiDeauthSta { - int32 resp = 1; - int32 aid = 2; -} - -message Rpc_Req_WifiStaGetApInfo { -} - -message Rpc_Resp_WifiStaGetApInfo { - int32 resp = 1; - wifi_ap_record ap_record = 2; -} - -message Rpc_Req_WifiSetProtocol { - int32 ifx = 1; - int32 protocol_bitmap = 2; -} - -message Rpc_Resp_WifiSetProtocol { - int32 resp = 1; -} - -message Rpc_Req_WifiGetProtocol { - int32 ifx = 1; -} - -message Rpc_Resp_WifiGetProtocol { - int32 resp = 1; - int32 protocol_bitmap = 2; -} - -message Rpc_Req_WifiSetBandwidth { - int32 ifx = 1; - int32 bw = 2; -} - -message Rpc_Resp_WifiSetBandwidth { - int32 resp = 1; -} - -message Rpc_Req_WifiGetBandwidth { - int32 ifx = 1; -} - -message Rpc_Resp_WifiGetBandwidth { - int32 resp = 1; - int32 bw = 2; -} - -message Rpc_Req_WifiSetChannel { - int32 primary = 1; - int32 second = 2; -} - -message Rpc_Resp_WifiSetChannel { - int32 resp = 1; -} - -message Rpc_Req_WifiGetChannel { -} - -message Rpc_Resp_WifiGetChannel { - int32 resp = 1; - int32 primary = 2; - int32 second = 3; -} - -message Rpc_Req_WifiSetStorage { - int32 storage = 1; -} - -message Rpc_Resp_WifiSetStorage { - int32 resp = 1; -} - -message Rpc_Req_WifiSetCountryCode { - bytes country = 1; - bool ieee80211d_enabled = 2; -} - -message Rpc_Resp_WifiSetCountryCode { - int32 resp = 1; -} - -message Rpc_Req_WifiGetCountryCode { -} - -message Rpc_Resp_WifiGetCountryCode { - int32 resp = 1; - bytes country = 2; -} - -message Rpc_Req_WifiSetCountry { - wifi_country country = 1; -} - -message Rpc_Resp_WifiSetCountry { - int32 resp = 1; -} - -message Rpc_Req_WifiGetCountry { -} - -message Rpc_Resp_WifiGetCountry { - int32 resp = 1; - wifi_country country = 2; -} - -message Rpc_Req_WifiApGetStaList { -} - -message Rpc_Resp_WifiApGetStaList { - int32 resp = 1; - wifi_sta_list sta_list = 2; -} - -message Rpc_Req_WifiApGetStaAid { - bytes mac = 1; -} - -message Rpc_Req_WifiStaGetNegotiatedPhymode { -} - -message Rpc_Resp_WifiStaGetNegotiatedPhymode { - int32 resp = 1; - uint32 phymode = 2; -} - -message Rpc_Resp_WifiApGetStaAid { - int32 resp = 1; - uint32 aid = 2; -} - -message Rpc_Req_WifiStaGetRssi { -} - -message Rpc_Resp_WifiStaGetRssi { - int32 resp = 1; - int32 rssi = 2; -} - -message Rpc_Req_WifiStaGetAid { -} - -message Rpc_Resp_WifiStaGetAid { - int32 resp = 1; - uint32 aid = 2; -} - -message Rpc_Req_WifiSetProtocols { - int32 ifx = 1; - wifi_protocols protocols = 2; -} - -message Rpc_Resp_WifiSetProtocols { - int32 resp = 1; - uint32 ifx = 2; -} - -message Rpc_Req_WifiGetProtocols { - int32 ifx = 1; -} - -message Rpc_Resp_WifiGetProtocols { - int32 resp = 1; - int32 ifx = 2; - wifi_protocols protocols = 3; -} - -message Rpc_Req_WifiSetBandwidths { - int32 ifx = 1; - wifi_bandwidths bandwidths = 2; -} - -message Rpc_Resp_WifiSetBandwidths { - int32 resp = 1; - int32 ifx = 2; -} - -message Rpc_Req_WifiGetBandwidths { - int32 ifx = 1; -} - -message Rpc_Resp_WifiGetBandwidths { - int32 resp = 1; - int32 ifx = 2; - wifi_bandwidths bandwidths = 3; -} - -message Rpc_Req_WifiSetBand { - uint32 band = 1; -} - -message Rpc_Resp_WifiSetBand { - int32 resp = 1; -} - -message Rpc_Req_WifiGetBand { -} - -message Rpc_Resp_WifiGetBand { - int32 resp = 1; - uint32 band = 2; -} - -message Rpc_Req_WifiSetBandMode { - uint32 bandmode = 1; -} - -message Rpc_Resp_WifiSetBandMode { - int32 resp = 1; -} - -message Rpc_Req_WifiGetBandMode { -} - -message Rpc_Resp_WifiGetBandMode { - int32 resp = 1; - uint32 bandmode = 2; -} - -message Rpc_Req_GetCoprocessorFwVersion { -} - -message Rpc_Resp_GetCoprocessorFwVersion { - int32 resp = 1; - uint32 major1 = 2; - uint32 minor1 = 3; - uint32 patch1 = 4; -} - -/** Event structure **/ - -message Rpc_Event_WifiEventNoArgs { - int32 resp = 1; - int32 event_id = 2; -} - -message Rpc_Event_ESPInit { - bytes init_data = 1; -} - -message Rpc_Event_Heartbeat { - int32 hb_num = 1; -} - -message Rpc_Event_AP_StaDisconnected { - int32 resp = 1; - bytes mac = 2; - uint32 aid = 3; - bool is_mesh_child = 4; - uint32 reason = 5; -} - -message Rpc_Event_AP_StaConnected { - int32 resp = 1; - bytes mac = 2; - uint32 aid = 3; - bool is_mesh_child = 4; -} - -message Rpc_Event_StaScanDone { - int32 resp = 1; - wifi_event_sta_scan_done scan_done = 2; -} - -message Rpc_Event_StaConnected { - int32 resp = 1; - wifi_event_sta_connected sta_connected = 2; -} - -message Rpc_Event_StaDisconnected { - int32 resp = 1; - wifi_event_sta_disconnected sta_disconnected = 2; -} - -message Rpc { - /* msg_type could be req, resp or Event */ - RpcType msg_type = 1; - - /* msg id */ - RpcId msg_id = 2; - - /* UID of message */ - uint32 uid = 3; - - /* union of all msg ids */ - oneof payload { - /** Requests **/ - Rpc_Req_GetMacAddress req_get_mac_address = 257; - Rpc_Req_SetMacAddress req_set_mac_address = 258; - Rpc_Req_GetMode req_get_wifi_mode = 259; - Rpc_Req_SetMode req_set_wifi_mode = 260; - - //Rpc_Req_ScanResult req_scan_ap_list = 261; - //Rpc_Req_GetAPConfig req_get_ap_config = 262; - //Rpc_Req_ConnectAP req_connect_ap = 263; - //Rpc_Req_GetStatus req_disconnect_ap = 264; - - //Rpc_Req_GetSoftAPConfig req_get_softap_config = 265; - //Rpc_Req_SetSoftAPVendorSpecificIE req_set_softap_vendor_specific_ie = 266; - //Rpc_Req_StartSoftAP req_start_softap = 267; - //Rpc_Req_SoftAPConnectedSTA req_softap_connected_stas_list = 268; - //Rpc_Req_GetStatus req_stop_softap = 269; - - Rpc_Req_SetPs req_wifi_set_ps = 270; - Rpc_Req_GetPs req_wifi_get_ps = 271; - - Rpc_Req_OTABegin req_ota_begin = 272; - Rpc_Req_OTAWrite req_ota_write = 273; - Rpc_Req_OTAEnd req_ota_end = 274; - - Rpc_Req_WifiSetMaxTxPower req_set_wifi_max_tx_power = 275; - Rpc_Req_WifiGetMaxTxPower req_get_wifi_max_tx_power = 276; - Rpc_Req_ConfigHeartbeat req_config_heartbeat = 277; - - Rpc_Req_WifiInit req_wifi_init = 278; - Rpc_Req_WifiDeinit req_wifi_deinit = 279; - Rpc_Req_WifiStart req_wifi_start = 280; - Rpc_Req_WifiStop req_wifi_stop = 281; - Rpc_Req_WifiConnect req_wifi_connect = 282; - Rpc_Req_WifiDisconnect req_wifi_disconnect = 283; - Rpc_Req_WifiSetConfig req_wifi_set_config = 284; - Rpc_Req_WifiGetConfig req_wifi_get_config = 285; - - Rpc_Req_WifiScanStart req_wifi_scan_start = 286; - Rpc_Req_WifiScanStop req_wifi_scan_stop = 287; - Rpc_Req_WifiScanGetApNum req_wifi_scan_get_ap_num = 288; - Rpc_Req_WifiScanGetApRecords req_wifi_scan_get_ap_records = 289; - Rpc_Req_WifiClearApList req_wifi_clear_ap_list = 290; - - Rpc_Req_WifiRestore req_wifi_restore = 291; - Rpc_Req_WifiClearFastConnect req_wifi_clear_fast_connect = 292; - Rpc_Req_WifiDeauthSta req_wifi_deauth_sta = 293; - Rpc_Req_WifiStaGetApInfo req_wifi_sta_get_ap_info = 294; - - Rpc_Req_WifiSetProtocol req_wifi_set_protocol = 297; - Rpc_Req_WifiGetProtocol req_wifi_get_protocol = 298; - Rpc_Req_WifiSetBandwidth req_wifi_set_bandwidth = 299; - Rpc_Req_WifiGetBandwidth req_wifi_get_bandwidth = 300; - Rpc_Req_WifiSetChannel req_wifi_set_channel = 301; - Rpc_Req_WifiGetChannel req_wifi_get_channel = 302; - Rpc_Req_WifiSetCountry req_wifi_set_country = 303; - Rpc_Req_WifiGetCountry req_wifi_get_country = 304; - - Rpc_Req_WifiApGetStaList req_wifi_ap_get_sta_list = 311; - Rpc_Req_WifiApGetStaAid req_wifi_ap_get_sta_aid = 312; - Rpc_Req_WifiSetStorage req_wifi_set_storage = 313; - - Rpc_Req_WifiSetCountryCode req_wifi_set_country_code = 334; - Rpc_Req_WifiGetCountryCode req_wifi_get_country_code = 335; - Rpc_Req_WifiStaGetAid req_wifi_sta_get_aid = 338; - Rpc_Req_WifiStaGetNegotiatedPhymode req_wifi_sta_get_negotiated_phymode = 339; - - Rpc_Req_WifiStaGetRssi req_wifi_sta_get_rssi = 341; - - Rpc_Req_WifiSetProtocols req_wifi_set_protocols = 342; - Rpc_Req_WifiGetProtocols req_wifi_get_protocols = 343; - Rpc_Req_WifiSetBandwidths req_wifi_set_bandwidths = 344; - Rpc_Req_WifiGetBandwidths req_wifi_get_bandwidths = 345; - - Rpc_Req_WifiSetBand req_wifi_set_band = 346; - Rpc_Req_WifiGetBand req_wifi_get_band = 347; - Rpc_Req_WifiSetBandMode req_wifi_set_bandmode = 348; - Rpc_Req_WifiGetBandMode req_wifi_get_bandmode = 349; - - Rpc_Req_GetCoprocessorFwVersion req_get_coprocessor_fwversion = 350; - - Rpc_Req_WifiScanGetApRecord req_wifi_scan_get_ap_record = 351; - - /** Responses **/ - Rpc_Resp_GetMacAddress resp_get_mac_address = 513; - Rpc_Resp_SetMacAddress resp_set_mac_address = 514; - Rpc_Resp_GetMode resp_get_wifi_mode = 515; - Rpc_Resp_SetMode resp_set_wifi_mode = 516; - - //Rpc_Resp_ScanResult resp_scan_ap_list = 517; - //Rpc_Resp_GetAPConfig resp_get_ap_config = 518; - //Rpc_Resp_ConnectAP resp_connect_ap = 519; - //Rpc_Resp_GetStatus resp_disconnect_ap = 520; - - //Rpc_Resp_GetSoftAPConfig resp_get_softap_config = 521; - //Rpc_Resp_SetSoftAPVendorSpecificIE resp_set_softap_vendor_specific_ie = 522; - //Rpc_Resp_StartSoftAP resp_start_softap = 523; - //Rpc_Resp_SoftAPConnectedSTA resp_softap_connected_stas_list = 524; - //Rpc_Resp_GetStatus resp_stop_softap = 525; - - Rpc_Resp_SetPs resp_wifi_set_ps = 526; - Rpc_Resp_GetPs resp_wifi_get_ps = 527; - - Rpc_Resp_OTABegin resp_ota_begin = 528; - Rpc_Resp_OTAWrite resp_ota_write = 529; - Rpc_Resp_OTAEnd resp_ota_end = 530; - Rpc_Resp_WifiSetMaxTxPower resp_set_wifi_max_tx_power = 531; - Rpc_Resp_WifiGetMaxTxPower resp_get_wifi_max_tx_power = 532; - Rpc_Resp_ConfigHeartbeat resp_config_heartbeat = 533; - - Rpc_Resp_WifiInit resp_wifi_init = 534; - Rpc_Resp_WifiDeinit resp_wifi_deinit = 535; - Rpc_Resp_WifiStart resp_wifi_start = 536; - Rpc_Resp_WifiStop resp_wifi_stop = 537; - Rpc_Resp_WifiConnect resp_wifi_connect = 538; - Rpc_Resp_WifiDisconnect resp_wifi_disconnect = 539; - Rpc_Resp_WifiSetConfig resp_wifi_set_config = 540; - Rpc_Resp_WifiGetConfig resp_wifi_get_config = 541; - - Rpc_Resp_WifiScanStart resp_wifi_scan_start = 542; - Rpc_Resp_WifiScanStop resp_wifi_scan_stop = 543; - Rpc_Resp_WifiScanGetApNum resp_wifi_scan_get_ap_num = 544; - Rpc_Resp_WifiScanGetApRecords resp_wifi_scan_get_ap_records = 545; - Rpc_Resp_WifiClearApList resp_wifi_clear_ap_list = 546; - - Rpc_Resp_WifiRestore resp_wifi_restore = 547; - Rpc_Resp_WifiClearFastConnect resp_wifi_clear_fast_connect = 548; - Rpc_Resp_WifiDeauthSta resp_wifi_deauth_sta = 549; - Rpc_Resp_WifiStaGetApInfo resp_wifi_sta_get_ap_info = 550; - - Rpc_Resp_WifiSetProtocol resp_wifi_set_protocol = 553; - Rpc_Resp_WifiGetProtocol resp_wifi_get_protocol = 554; - Rpc_Resp_WifiSetBandwidth resp_wifi_set_bandwidth = 555; - Rpc_Resp_WifiGetBandwidth resp_wifi_get_bandwidth = 556; - Rpc_Resp_WifiSetChannel resp_wifi_set_channel = 557; - Rpc_Resp_WifiGetChannel resp_wifi_get_channel = 558; - Rpc_Resp_WifiSetCountry resp_wifi_set_country = 559; - Rpc_Resp_WifiGetCountry resp_wifi_get_country = 560; - - Rpc_Resp_WifiApGetStaList resp_wifi_ap_get_sta_list = 567; - Rpc_Resp_WifiApGetStaAid resp_wifi_ap_get_sta_aid = 568; - Rpc_Resp_WifiSetStorage resp_wifi_set_storage = 569; - - Rpc_Resp_WifiSetCountryCode resp_wifi_set_country_code = 590; - Rpc_Resp_WifiGetCountryCode resp_wifi_get_country_code = 591; - Rpc_Resp_WifiStaGetAid resp_wifi_sta_get_aid = 594; - Rpc_Resp_WifiStaGetNegotiatedPhymode resp_wifi_sta_get_negotiated_phymode = 595; - - Rpc_Resp_WifiStaGetRssi resp_wifi_sta_get_rssi = 597; - - Rpc_Resp_WifiSetProtocols resp_wifi_set_protocols = 598; - Rpc_Resp_WifiGetProtocols resp_wifi_get_protocols = 599; - Rpc_Resp_WifiSetBandwidths resp_wifi_set_bandwidths = 600; - Rpc_Resp_WifiGetBandwidths resp_wifi_get_bandwidths = 601; - - Rpc_Resp_WifiSetBand resp_wifi_set_band = 602; - Rpc_Resp_WifiGetBand resp_wifi_get_band = 603; - Rpc_Resp_WifiSetBandMode resp_wifi_set_bandmode = 604; - Rpc_Resp_WifiGetBandMode resp_wifi_get_bandmode = 605; - - Rpc_Resp_GetCoprocessorFwVersion resp_get_coprocessor_fwversion = 606; - - Rpc_Resp_WifiScanGetApRecord resp_wifi_scan_get_ap_record = 607; - - /** Notifications **/ - Rpc_Event_ESPInit event_esp_init = 769; - Rpc_Event_Heartbeat event_heartbeat = 770; - Rpc_Event_AP_StaConnected event_ap_sta_connected = 771; - Rpc_Event_AP_StaDisconnected event_ap_sta_disconnected = 772; - Rpc_Event_WifiEventNoArgs event_wifi_event_no_args = 773; - Rpc_Event_StaScanDone event_sta_scan_done = 774; - Rpc_Event_StaConnected event_sta_connected = 775; - Rpc_Event_StaDisconnected event_sta_disconnected = 776; - } -} - - -//message req_w_set_config { -// int32 iface = 1; -// wifi_config cfg = 2; -//} -// -//message rsp_w_set_config { -// int32 resp = 1; -//} -// -//message req_w_get_config { -// int32 iface = 1; -//} -// -//message rsp_w_get_config { -// int32 resp = 1; -// wifi_config cfg = 2; -//} -// -//message req_w_start { -//} -// -//message rsp_w_start { -// int32 resp = 1; -//} -// -//message evt_w_sta_connected { -// int32 resp = 1; -//} -// -//message evt_w_sta_disconnected { -// int32 resp = 1; -//} -// -//message evt_w_sta_start { -// int32 resp = 1; -//} -// -//message evt_w_sta_stop { -// int32 resp = 1; -//} -// -//message evt_w_ready { -// int32 resp = 1; -//} - -//message { -// int32 resp = 1; -//} - - - - - - - -//message Rpc_Resp_GetMode { -// int32 mode = 1; -// int32 resp = 2; -//} -// -//message Rpc_Req_SetMode { -//} -// -//message Rpc_Resp_SetMode { -// int32 resp = 1; -//} diff --git a/resources/espressif__esp_hosted/common/protobuf-c/.commit_docs.sh b/resources/espressif__esp_hosted/common/protobuf-c/.commit_docs.sh deleted file mode 100644 index 048a81b..0000000 --- a/resources/espressif__esp_hosted/common/protobuf-c/.commit_docs.sh +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/bash -e - -# from git-sh-setup.sh -require_clean_work_tree () { - git rev-parse --verify HEAD >/dev/null || exit 1 - git update-index -q --ignore-submodules --refresh - err=0 - - if ! git diff-files --quiet --ignore-submodules - then - echo >&2 "Cannot $0: You have unstaged changes." - err=1 - fi - - if ! git diff-index --cached --quiet --ignore-submodules HEAD -- - then - if [ $err = 0 ] - then - echo >&2 "Cannot $0: Your index contains uncommitted changes." - else - echo >&2 "Additionally, your index contains uncommitted changes." - fi - err=1 - fi - - if [ $err = 1 ] - then - test -n "$2" && echo >&2 "$2" - exit 1 - fi -} - -require_clean_work_tree - -if ! which doxygen >/dev/null; then - echo "Error: doxygen is required" - exit 1 -fi - -DOXYGEN_VERSION="$(doxygen --version)" - -DOC_BRANCH="gh-pages" -ORIG_BRANCH="$(git rev-parse --abbrev-ref HEAD)" -ORIG_COMMIT="$(git describe --match=NeVeRmAtCh --always --abbrev=40 --dirty)" - -TOP="$(pwd)" -export GIT_DIR="$TOP/.git" - -TMPDIR="$(mktemp --tmpdir=$TOP -d)" -HTMLDIR="$TMPDIR/_build/html" -INDEX_FILE="$GIT_DIR/index.${DOC_BRANCH}" - -rm -f "$INDEX_FILE" - -trap "{ cd $TOP; git checkout --force ${ORIG_BRANCH}; rm -f $INDEX_FILE; rm -rf $TMPDIR; }" EXIT - -cd "$TMPDIR" -git reset --hard HEAD - -./autogen.sh -mkdir _build -cd _build -../configure -make html - -if ! git checkout "${DOC_BRANCH}"; then - git checkout --orphan "${DOC_BRANCH}" -fi - -touch "$HTMLDIR/.nojekyll" - -GIT_INDEX_FILE="$INDEX_FILE" GIT_WORK_TREE="$HTMLDIR" \ - git add --no-ignore-removal . -GIT_INDEX_FILE="$INDEX_FILE" GIT_WORK_TREE="$HTMLDIR" \ - git commit -m "Rebuild html documentation from commit ${ORIG_COMMIT} using Doxygen ${DOXYGEN_VERSION}" diff --git a/resources/espressif__esp_hosted/common/protobuf-c/.gitignore b/resources/espressif__esp_hosted/common/protobuf-c/.gitignore deleted file mode 100644 index 9733625..0000000 --- a/resources/espressif__esp_hosted/common/protobuf-c/.gitignore +++ /dev/null @@ -1,43 +0,0 @@ -*~ -.*swp -*.la -*.gcda -*.gcno -*.lo -*.log -*.o -*.tar.gz -*.trs -.deps/ -.dirstamp -.libs/ -/Doxyfile -/Makefile -/Makefile.in -/aclocal.m4 -/autom4te.cache -/build-aux -/config.* -/configure -/doxygen-doc -/html -/libtool -/protobuf-c-*-coverage.info -/protobuf-c-*-coverage/ -/stamp-h1 -/stamp-html -/test-suite.log -TAGS -protobuf-c/libprotobuf-c.pc -protoc-c/protoc-c -protoc-c/protoc-gen-c -t/generated-code/test-generated-code -t/generated-code2/cxx-generate-packed-data -t/generated-code2/test-full-cxx-output.inc -t/generated-code2/test-generated-code2 -t/generated-code3/test-generated-code3 -t/version/version -*.pb-c.c -*.pb-c.h -*.pb.cc -*.pb.h diff --git a/resources/espressif__esp_hosted/common/protobuf-c/CONTRIBUTING.md b/resources/espressif__esp_hosted/common/protobuf-c/CONTRIBUTING.md deleted file mode 100644 index ceaba8f..0000000 --- a/resources/espressif__esp_hosted/common/protobuf-c/CONTRIBUTING.md +++ /dev/null @@ -1,5 +0,0 @@ -## Contributing - -The most recently released `protobuf-c` version is kept on the `master` branch, while the `next` branch is used for commits targeted at the next release. Please base patches and pull requests against the `next` branch. __Do not open pull requests against master!__ - -Copyright to all contributions are retained by the original author, but must be licensed under the terms of the [BSD-2-Clause](http://opensource.org/licenses/BSD-2-Clause) license. diff --git a/resources/espressif__esp_hosted/common/protobuf-c/ChangeLog b/resources/espressif__esp_hosted/common/protobuf-c/ChangeLog deleted file mode 100644 index 91164dd..0000000 --- a/resources/espressif__esp_hosted/common/protobuf-c/ChangeLog +++ /dev/null @@ -1,564 +0,0 @@ -protobuf-c (1.4.1) - - [ Robert Edmonds ] - * Release 1.4.1 - - [ Todd C. Miller ] - * Only shift unsigned values to avoid implementation-specific behavior - (#506, #508). - * Fix regression with zero-length messages introduced in protobuf-c PR 500. - * Fix a clang analyzer 14 warning about a possible NULL deref (#512, #514). - - [ steed717 ] - * Fix unsigned integer overflow (#499, #513). - -protobuf-c (1.4.0) - - [ Robert Edmonds ] - * Release 1.4.0. - - [ Ilya Lipnitsky ] - * c_message.cc: Resolve name conflict between certain enums and oneofs - (#427). - * protobuf-c.h: Fix Windows DLL export issue with the - protobuf_c_empty_string symbol (#428). - * Standardize pkg-config for use by autotools and cmake, fix cmake tests - (#425). - * protobuf-c.c: Cast %lu args to unsigned long int (#429). - * protoc-c: Remove leading underscores from structs (#430). - * protoc-c: Fix shared lib build on windows, migrate from Travis CI to - GitHub Actions (#459). - * protobuf-c: Don't use ProtobufCWireType internally (#463). - * protoc-c: Add custom options support (#466). - * protobuf-c.c: Fix packed repeated bool parsing (#467). - - [ Markus Engel ] - * Pack nested messages inline (#431). - - [ Daniel Axtens ] - * Travis CI: Test on other platforms (#438). - - [ Adam Cozzette ] - * Update the generator to fully qualify std::string (#443). - - [ Piotr Pietraszkiewicz ] - * Install MSVC debug symbols alongside the protobuf-c.lib file (#456). - - [ ihsinme ] - * Fix invalid unsigned arithmetic (#455). - - [ Wolfram Rösler ] - * Avoid "unused function parameter" compiler warning (#453). - -protobuf-c (1.3.3) - - [ Robert Edmonds ] - * Release 1.3.3. - - * Fix build failure on protobuf 2.x (#398). - - [ msshapira ] - * CMake: Fix support for MSVC static build (#350). - - [ Adam Cozzette ] - * Fix some test assertions in test-generated-code2.c (#392). - - [ Ilya Lipnitskiy ] - * protobuf-c.c: Make zigzag encoding more compact (#400). - - [ Markus Engel ] - * CMake: Fix endianness check. - -protobuf-c (1.3.2) - - [ Robert Edmonds ] - * Release 1.3.2. - - * Use protobuf 3.7.1 in the Travis-CI environment (#368). - - * Fix test suite build failure on newer versions of protobuf (#369). - - [ Ilya Lipnitskiy ] - * Fix proto3 repeated scalar field default packing behavior (#330, #377). - - [ Adam Cozzette ] - * Fix out-of-bounds read in scan_length_prefixed_data() (#375, #376). - - [ Jurriaan Bremer ] - * Fix -Wdeclaration-after-statement warning in parse_oneof_member() (#360). - - [ Hayri Ugur Koltuk ] - * Fix SIGSEGV in protobuf_c_message_check() on messages with unpopulated - oneof members (#358). - - [ Italo Guerrieri ] - * Do not allow tag values of 0 in protobuf messages, as these are not - allowed by proto2 or proto3 (#299). - -protobuf-c (1.3.1) - - [ Robert Edmonds ] - * Release 1.3.1. - - * Restore protobuf-2.x compatibility (#284, #285). - - * Use xenial and protobuf 3.6.1 in the Travis-CI environment (#332). - - * Convert uses of protobuf's scoped_ptr.h to C++11 std::unique_ptr, needed - to compile against protobuf 3.6.1 (#320, #333). - - * Use AX_CXX_COMPILE_STDCXX macro to enable C++11 support in old compilers - (#312, #317, #327, #334). - - [ Fredrik Gustafsson ] - * Add std:: to some types (#294, #305, #309). - - [ Sam Collinson ] - * Check the return value of int_range_lookup before using as an array index; - it can return -1 (#315). - - [ Matthias Dittrich ] - * Fix compilation on mingw by using explicit protoc --plugin=NAME=PATH syntax - in Makefile.am (#289, #290). - -protobuf-c (1.3.0) - - [ Robert Edmonds ] - * Release 1.3.0. - - * Add test case for the issue in #220 (#254). - - * Fix issue #251, "Bad enums with multiple oneofs" (#256). - - * Add warning flags to my_CFLAGS (#257). - - * Fix namespace errors when compiled with latest protobuf (#280). - - * Bump minimum required header version for proto3 syntax (#282). - - [ Paolo Borelli ] - * Turn the compiler into a protoc plugin (#206). This allows the protobuf-c - compiler to be invoked as "protoc --c_out=...". For backwards - compatibility, we still ship a protoc-c command, but it's a symlink to the - protoc-gen-c binary. - - * proto3 support (#228). - - * Remove leftover FIXME comment (#258). - - * Fix proto3 "is zeroish" evaluation (#264). - - * Small cleanup in oneof handling (#265). - - * Rework is_zeroish one more time (#267). - - * proto3: make strings default to "" instead of NULL (#274). - - [ Tomek Wasilczyk ] - * Fix -Wsign-compare warnings (#213). - - * Fix ISO C90 -Wdeclaration-after-statement warnings (#214). - - * Fix bigendian -Wunused-label warning (#215). - - [ Ilya Lipnitsky ] - * protoc-c/c_message.cc: Force int size on oneof enums (#221). Fixes wrong - enum generation and handling for onceof cases (#220). - - [ Adnan ] - * Fix cmake build if built as part of an external project (#231). - - [ Gregory Detal ] - * Remove .pb.{cc,h} in distdir instead of top_distdir in order to prevent - removing files from other projects when protobuf-c is included as an - autotools subproject (#232). - - [ Ben Farnham ] - * Relax autoconf constraint from v2.64 to v2.63 so that it works on older - Linux distros (#233). - - [ Thomas Köckerbauer ] - * rm argument fix for Solaris (#234). - - * Add 'const' qualifier to 'init_value' variable in generated files (#236). - - [ Richard Kettlewell ] - * Document and extend the effect of passing NULL to ..._free_unpacked - functions (#255). - - [ Alex Milich ] - * CMake: Workaround for static builds that use MSVC (#243). - - [ Josh Junon ] - * CMake: Allow protobuf-c to be included via include_subdirectory (#245). - - [ Alexei Kasatkin ] - * CMake: Windows fixes (#266). - -protobuf-c (1.2.1) - - [ Robert Edmonds ] - * Release 1.2.1. - - [ Paolo Borelli ] - * protoc-c: Generate code that uses the universal zero initializer {0} when - initializing a oneof union (#187, #205). - -protobuf-c (1.2.0) - - [ Robert Edmonds ] - * Release 1.2.0. - - [ Ilya Lipnitsky ] - * Implement the "optimize_for = CODE_SIZE" option (#183). - - * Eliminate undefined behavior in zigzag functions (#198). - - * Pack negative enum values correctly (#199). - - [ Peter Leschev ] - * Fix protobuf_c_message_get_packed_size() on 16-bit systems (#196, #197). - - [ Diego Elio Pettenò ] - * Update link to Autotools Mythbuster to canonical site (#201). - - [ Zex Li ] - * Skip test suite when cross-compiling (#184). - -protobuf-c (1.1.1) - - [ Robert Edmonds ] - * Release 1.1.1. - - * Use protobuf 2.6.1 in the Travis-CI environment. - - [ Ilya Lipnitskiy ] - * Munge C block comment delimiters in protobuf comments, preventing syntax - errors in generated header files (Issue #180, #185). - - * Add static qualifier to ProtobufCEnumValue and ProtobufCEnumValueIndex - variables in generated output. - - [ Oleg Efimov ] - * Fix -Wpointer-sign compiler diagnostics in the test suite. - - * Check for NULL pointers in protobuf_c_message_free_unpacked() - (Issue #177). - - * Exclude protoc-c and downloaded protobuf sources from Coveralls report. - - [ Andrey Myznikov ] - * Fix incorrect 'short_name' field values in ProtobufCServiceDescriptor - variables in generated output. - -protobuf-c (1.1.0) - - [ Robert Edmonds ] - * Release 1.1.0. - - [ Ilya Lipnitskiy ] - * Fix a bug when merging optional byte fields. - - * Documentation updates. - - * Implement oneof support (Issue #174). Protobuf 2.6.0 or newer is now - required to build protobuf-c. - - * Print leading comments for enum, message, and field definitions into - generated header files (Issue #175). - -protobuf-c (1.0.2) - - [ Robert Edmonds ] - * Release 1.0.2. - - [ Ilya Lipnitskiy ] - * Fix a build failure with Protobuf 2.6.0 related to aliased enum constants - (Issue #163). - - * Protobuf 2.5.0 or newer is now required to build protobuf-c (Issue #166). - This is due to the fix for #163. - - [ Alexei Kasatkin ] - * Eliminate void pointer arithmetic (Issue #167). - - * Always define PROTOBUF_C__DEPRECATED, even on compilers that are not GCC - (Issue #167). - - * Work around the lack of the 'inline' keyword in Microsoft compilers - (Issue #167). - - * Add a CMakeLists.txt file as a fallback build system for Windows - (Issue #168). - - [ Natanael Copa ] - * Fix a build failure in the test suite that occurred with a parallel make - running on a system with a large number of CPUs (Issue #156, #169). - -protobuf-c (1.0.1) - - [ Robert Edmonds ] - * Explicitly set the .data field of ProtobufCBinaryData's to NULL when - unpacking a zero length byte string (Issue #157). - -protobuf-c (1.0.0) - - [ Andrei Nigmatulin ] - * Append "u", "ull", and "ll" integer literal suffixes for uint32, uint64, - and int64 default values in generated code, in order to avoid "integer - constant is so large that it is unsigned" compiler warnings. - (Issue #136.) - - * Revert the problematic hash-based required field detection. - (Related to Issue #60, #79, #137.) - - * Replace the 'packed' member of ProtobufCFieldDescriptor with a 'flags' - word. Define flags for packed and deprecated fields. (Issue #138.) - - [ Dave Benson ] - * Treat a "length-prefixed" wire-type message for a repeated field as - packed-repeated whenever it makes sense (for all types other than - messages, strings, and bytes). - - * Switch to New BSD license. - - * Add protobuf_c_message_check(). - - * Compile error in packing 64-bit versions on some platforms - (srobbins99: Issue #68 Comment 1). - - * Fix for memory error if the required-field check fails. See Issue #63 - for demo (w/ nice test case by dror.harari). - - * Add PROTOBUF_C_{MAJOR,MINOR} for compile-time checks and - protobuf_c_{major,minor} for checks about the running library - (Issue #53). - - * Use a small constant-size hash-table instead of alloca() for detecting - required fields, and it also prevents us from using too much stack, etc. - (Related to Issue #60, #79). - - * Add a macro to ensure enums are the size of ints (Issue #69). - - [ Ilya Lipnitskiy ] - * Travis-CI integration. - - * Add source .proto filename to generated files. - - * Add protobuf-c version to protoc-c --version output (Issue #52). - - * For embedded submessage fields, merge multiple instances of the same - field, per the protobuf documentation (Issue #91). - - * Don't print unpack errors by default. - - * Optionally allow running the test suite under valgrind with ./configure - --enable-valgrind-tests. (Based on valgrind-tests.m4 from gnulib.) - - [ Kevin Lyda ] - * Autoconf portability fixes. - - * Add doxygen detection and make targets to the build system. - - * Doxygen documentation for the libprotobuf-c public API (Issue #132). - - [ Nick Galbreath ] - * Prevent possible overflow on 64-bit systems (Issue #106). - - [ Robert Edmonds ] - * Remove CMake (Issue #87). - - * Modernize the build system. - - Don't generate any diagnostics when building the build system with - modern autotools (Issue #89). - - - Use the PKG_CHECK_MODULES macro to locate protobuf. - - - Use the AC_C_BIGENDIAN macro to detect endianness, rather than custom - code. - - - Use the automake silent-rules option so the build output is actually - readable. - - - Generate our own pkg-config .pc files. - - * Reorganize the source tree. This affects the public protobuf-c header - path, which is now . A compatibility symlink from - to has been installed so that existing - code will continue to compile. New code should at some point begin using - the new include path, i.e., "#include " rather - than "#include ". - - * The RPC code has been split out into a separate project, protobuf-c-rpc. - - * Fix a potential use of an unitialized value in protobuf_c_message_unpack() - and several memory leaks in protoc-c, discovered by a commercial static code - analysis tool. - - * Bump the libprotobuf-c SONAME. - - * Begin versioning the library's symbols. (Based on ld-version-script.m4 - from gnulib.) - - * Preserve case in enum value names generated by protoc-c (Issue #129). - Reported by Oleg Efimov. - - * Add library functions protobuf_c_version() and protobuf_c_version_string() - for retrieving the version of the compiled library, and header macros - PROTOBUF_C_VERSION and PROTOBUF_C_VERSION_STRING for retrieving the - version of the header file. This replaces the interfaces for retrieving - the protobuf-c version numbers in Issue #53. - - * Add a version guard that ensures that the output of protoc-c is only - compiled against a protobuf-c header file from the exact same protobuf-c - release. - - * Add a --enable-code-coverage option to configure, which enables a - "make check-code-coverage" build target. This generates a code coverage - report and requires the lcov tool to be installed. - - * Remove the old DocBook documentation in doc/c-code-generator.{html,xml}. - Relevant material has been updated and incorporated into the Doxygen - documentation in the protobuf-c header file. - - * Remove the protobuf_c_default_allocator and protobuf_c_system_allocator - global variables from the exported library interface. All exported library - functions that need to perform dynamic memory allocation receive a - user-provided ProtobufCAllocator* parameter. If this parameter is NULL, - the system's default memory allocator will be used. - - Client code that previously passed "&protobuf_c_system_allocator" to - protobuf-c library functions taking a ProtobufCAllocator* argument should - be updated to pass "NULL" instead. - - Client code that previously overrode protobuf_c_default_allocator with - custom allocation functions and passed NULL as the ProtobufCAllocator* - argument to protobuf-c library functions should be updated to instead - enclose the custom allocation functions in a ProtobufCAllocator struct and - pass this object to protobuf-c library functions taking a - ProtobufCAllocator* parameter. - - * Update copyright and license statements throughout. The original - protobuf code released by Google was relicensed from Apache-2.0 to - BSD-3-Clause. Dave Benson also converted his license from BSD-3-Clause - to BSD-2-Clause. - - [ Tomasz Wasilczyk ] - * Don't export protobuf_c_message_init_generic() as an external symbol. - - * Don't use C++ style comments in C code. - - * Fix -Wcast-align warnings when compiled with clang. - -protobuf-c (0.15) - - make protobuf_c_message_init() into a function (Issue #49, daveb) - - Fix for freeing memory after unpacking bytes w/o a default-value. - (Andrei Nigmatulin) - - minor windows portability issues (use ProtobufC_FD) (Pop Stelian) - - --with-endianness={little,big} (Pop Stelian) - - bug setting up values of has_idle in public dispatch, - make protobuf_c_dispatch_run() use only public members (daveb) - - provide cmake support and some Windows compatibility (Nikita Manovich) - -protobuf-c (0.14) - - build fix (missing dependency in test directory) - - add generation / installation of pkg-config files. (Bobby Powers) - - support for packed repeated fields (Dave Benson) - - bug in protobuf_c_dispatch_close_fd(), which usually only - showed up in later function calls. - - support for deprecated fields -- enable a GCC warning - if a field has the "deprecated" option enabled. (Andrei Nigmatulin) - - hackery to try to avoid touching inttypes.h on windows (Issue #41) - - fix for protobuf_c_message_unpack() to issue error if any - "required" field is missing in input stream. (Andrei Nigmatulin) - -protobuf-c (0.13) - - Fix for when the number of connections gets too great in RPC. - (Leszek Swirski) (issue #32) - - Add --disable-protoc to only build libprotobuf-c (daveb) - - Bug fixes for protobuf_c_enum_descriptor_get_value_by_name() - and protobuf_c_service_descriptor_get_method_by_name() - - if descriptor->message_init != NULL, use it from unpack() - as an optimization (daveb) - - implement protobuf_c_{client,server}_set_error_handler() - -protobuf-c (0.12) - - for field names which are reserved words, use the real name - given in the protobuf-c file, not the mangled name which - is the name of the member in the C structure. (Andrei Nigmatulin) - - add protobuf_c_message_init() function; add virtual function - that implements it efficiently. (Andrei Nigmatulin) - - bug fix for sfixed32, fixed32, float wire-types on - big-endian platforms (Robert Edmonds) - - compile with the latest protobuf (the header file wire_format_inl.h - is now wire_format.h) (Robert Edmonds) - -protobuf-c (0.11) - - allow CFLAGS=-DPRINT_UNPACK_ERRORS=0 to suppress - unpack warnings from being printed at compile time (Andrei Nigmatulin) - - give error if an unknown wire-type is encountered (Andrei Nigmatulin) - - fix technically possible overflows during unpack of very - large messages (Andrei Nigmatulin) - - [UNFINISHED] windows RPC work - - use automake's "foreign" mode from within configure.ac - and add version information to the library (Robert Edmonds) - - ProtobufCServiceDescriptor::method_indices_by_name: missing - const. (Issue 21) - - Update to support new UnknownFields API. (fix by dcreager) (Issue 20) - -protobuf-c (0.10) - - build issue on platforms which don't compute library dependencies - automatically. - - fix for certain types of corrupt messages (Landon Fuller) (issue 16) - -protobuf-c (0.9) - - build issue: needed $(EXEEXT) in dependency lists for cygwin - - bug fix: protobuf_c_service_get_method_by_name() was not correct b/c - the service's methods were not sorted by name (the header file - used to incorrectly state that they were). - Now we correctly implement protobuf_c_service_get_method_by_name() - (using a bsearch indexed by separate array). - - generated source incompatibility: we added a new - member to ProtobufCServiceDescriptor (method_indices_by_name). - You will have to run the latest protobuf - to generate those structures. - - rename rpc-client's "autoretry" mechanism to "autoreconnect". - - bug fixes using TCP clients with the RPC system. - - handle allocation failures more gracefully (Jason Lunz) (issue 15) - -protobuf-c (0.8) - - Destroy function typedef for Services was omitting a "*" - - service_machgen_invoke was broken. (issue 12) - - add RPC system (BETA) - - don't segfault when packing NULL strings and messages. (issue 13) - -protobuf-c (0.7) - - memory leak: unknown fields were not being freed by free_unpacked() - - lowercase field names consistently when composing - default_value names. (issue 11) - - remove spurious semicolon (issue 10) - -protobuf-c (0.6) - - Warning suppression for -Wcast-qual and -Wshadow. - - Support for default values of all types allowed by core protobuf. - - Generate message__init functions, for when the static initializer - isn't convenient. - - add some reserved fields at the end of the various descriptors - -protobuf-c (0.5) - - License now included in major files. - - Use little-endian optimizations; fix a bug therein. - - Include 'make deb' target. - -protobuf-c (0.4) - - Update to work with protobuf 2.0.1. - -protobuf-c (0.2) -protobuf-c (0.3) - - Minor pedantic concerns about generated code. - -protobuf-c (0.1) - - Lots of test code (and bug fixes). - -protobuf-c (0.0) - - Initial release. diff --git a/resources/espressif__esp_hosted/common/protobuf-c/Doxyfile.in b/resources/espressif__esp_hosted/common/protobuf-c/Doxyfile.in deleted file mode 100644 index 7d556ec..0000000 --- a/resources/espressif__esp_hosted/common/protobuf-c/Doxyfile.in +++ /dev/null @@ -1,2312 +0,0 @@ -# Doxyfile 1.8.7 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project. -# -# All text after a double hash (##) is considered a comment and is placed in -# front of the TAG it is preceding. -# -# All text after a single hash (#) is considered a comment and will be ignored. -# The format is: -# TAG = value [value, ...] -# For lists, items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (\" \"). - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the config file -# that follow. The default is UTF-8 which is also the encoding used for all text -# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv -# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv -# for the list of possible encodings. -# The default value is: UTF-8. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by -# double-quotes, unless you are using Doxywizard) that should identify the -# project for which the documentation is generated. This name is used in the -# title of most generated pages and in a few other places. -# The default value is: My Project. - -PROJECT_NAME = "@PACKAGE@" - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. This -# could be handy for archiving the generated documentation or if some version -# control system is used. - -PROJECT_NUMBER = @PACKAGE_VERSION@ - -# Using the PROJECT_BRIEF tag one can provide an optional one line description -# for a project that appears at the top of each page and should give viewer a -# quick idea about the purpose of the project. Keep the description short. - -PROJECT_BRIEF = "@PACKAGE_DESCRIPTION@" - -# With the PROJECT_LOGO tag one can specify an logo or icon that is included in -# the documentation. The maximum height of the logo should not exceed 55 pixels -# and the maximum width should not exceed 200 pixels. Doxygen will copy the logo -# to the output directory. - -PROJECT_LOGO = - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path -# into which the generated documentation will be written. If a relative path is -# entered, it will be relative to the location where doxygen was started. If -# left blank the current directory will be used. - -OUTPUT_DIRECTORY = - -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub- -# directories (in 2 levels) under the output directory of each output format and -# will distribute the generated files over these directories. Enabling this -# option can be useful when feeding doxygen a huge amount of source files, where -# putting all generated files in the same directory would otherwise causes -# performance problems for the file system. -# The default value is: NO. - -CREATE_SUBDIRS = NO - -# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII -# characters to appear in the names of generated files. If set to NO, non-ASCII -# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode -# U+3044. -# The default value is: NO. - -ALLOW_UNICODE_NAMES = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, -# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), -# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, -# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), -# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, -# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, -# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, -# Ukrainian and Vietnamese. -# The default value is: English. - -OUTPUT_LANGUAGE = English - -# If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member -# descriptions after the members that are listed in the file and class -# documentation (similar to Javadoc). Set to NO to disable this. -# The default value is: YES. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief -# description of a member or function before the detailed description -# -# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. -# The default value is: YES. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator that is -# used to form the text in various listings. Each string in this list, if found -# as the leading text of the brief description, will be stripped from the text -# and the result, after processing the whole list, is used as the annotated -# text. Otherwise, the brief description is used as-is. If left blank, the -# following values are used ($name is automatically replaced with the name of -# the entity):The $name class, The $name widget, The $name file, is, provides, -# specifies, contains, represents, a, an and the. - -ABBREVIATE_BRIEF = - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# doxygen will generate a detailed section even if there is only a brief -# description. -# The default value is: NO. - -ALWAYS_DETAILED_SEC = YES - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. -# The default value is: NO. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path -# before files name in the file list and in the header files. If set to NO the -# shortest path that makes the file name unique will be used -# The default value is: YES. - -FULL_PATH_NAMES = NO - -# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. -# Stripping is only done if one of the specified strings matches the left-hand -# part of the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the path to -# strip. -# -# Note that you can specify absolute paths here, but also relative paths, which -# will be relative from the directory where doxygen is started. -# This tag requires that the tag FULL_PATH_NAMES is set to YES. - -STRIP_FROM_PATH = @top_srcdir@ - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the -# path mentioned in the documentation of a class, which tells the reader which -# header file to include in order to use a class. If left blank only the name of -# the header file containing the class definition is used. Otherwise one should -# specify the list of include paths that are normally passed to the compiler -# using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but -# less readable) file names. This can be useful is your file systems doesn't -# support long names like on DOS, Mac, or CD-ROM. -# The default value is: NO. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the -# first line (until the first dot) of a Javadoc-style comment as the brief -# description. If set to NO, the Javadoc-style will behave just like regular Qt- -# style comments (thus requiring an explicit @brief command for a brief -# description.) -# The default value is: NO. - -JAVADOC_AUTOBRIEF = YES - -# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first -# line (until the first dot) of a Qt-style comment as the brief description. If -# set to NO, the Qt-style will behave just like regular Qt-style comments (thus -# requiring an explicit \brief command for a brief description.) -# The default value is: NO. - -QT_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a -# multi-line C++ special comment block (i.e. a block of //! or /// comments) as -# a brief description. This used to be the default behavior. The new default is -# to treat a multi-line C++ comment block as a detailed description. Set this -# tag to YES if you prefer the old behavior instead. -# -# Note that setting this tag to YES also means that rational rose comments are -# not recognized any more. -# The default value is: NO. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the -# documentation from any documented member that it re-implements. -# The default value is: YES. - -INHERIT_DOCS = YES - -# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a -# new page for each member. If set to NO, the documentation of a member will be -# part of the file/class/namespace that contains it. -# The default value is: NO. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen -# uses this value to replace tabs by spaces in code fragments. -# Minimum value: 1, maximum value: 16, default value: 4. - -TAB_SIZE = 8 - -# This tag can be used to specify a number of aliases that act as commands in -# the documentation. An alias has the form: -# name=value -# For example adding -# "sideeffect=@par Side Effects:\n" -# will allow you to put the command \sideeffect (or @sideeffect) in the -# documentation, which will result in a user-defined paragraph with heading -# "Side Effects:". You can put \n's in the value part of an alias to insert -# newlines. - -ALIASES = - -# This tag can be used to specify a number of word-keyword mappings (TCL only). -# A mapping has the form "name=value". For example adding "class=itcl::class" -# will allow you to use the command class in the itcl::class meaning. - -TCL_SUBST = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources -# only. Doxygen will then generate output that is more tailored for C. For -# instance, some of the names that are used will be different. The list of all -# members will be omitted, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_FOR_C = YES - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or -# Python sources only. Doxygen will then generate output that is more tailored -# for that language. For instance, namespaces will be presented as packages, -# qualified scopes will look different, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources. Doxygen will then generate output that is tailored for Fortran. -# The default value is: NO. - -OPTIMIZE_FOR_FORTRAN = NO - -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for VHDL. -# The default value is: NO. - -OPTIMIZE_OUTPUT_VHDL = NO - -# Doxygen selects the parser to use depending on the extension of the files it -# parses. With this tag you can assign which parser to use for a given -# extension. Doxygen has a built-in mapping, but you can override or extend it -# using this tag. The format is ext=language, where ext is a file extension, and -# language is one of the parsers supported by doxygen: IDL, Java, Javascript, -# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: -# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: -# Fortran. In the later case the parser tries to guess whether the code is fixed -# or free formatted code, this is the default for Fortran type files), VHDL. For -# instance to make doxygen treat .inc files as Fortran files (default is PHP), -# and .f files as C (default is Fortran), use: inc=Fortran f=C. -# -# Note For files without extension you can use no_extension as a placeholder. -# -# Note that for custom extensions you also need to set FILE_PATTERNS otherwise -# the files are not read by doxygen. - -EXTENSION_MAPPING = - -# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments -# according to the Markdown format, which allows for more readable -# documentation. See http://daringfireball.net/projects/markdown/ for details. -# The output of markdown processing is further processed by doxygen, so you can -# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in -# case of backward compatibilities issues. -# The default value is: YES. - -MARKDOWN_SUPPORT = YES - -# When enabled doxygen tries to link words that correspond to documented -# classes, or namespaces to their corresponding documentation. Such a link can -# be prevented in individual cases by by putting a % sign in front of the word -# or globally by setting AUTOLINK_SUPPORT to NO. -# The default value is: YES. - -AUTOLINK_SUPPORT = YES - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want -# to include (a tag file for) the STL sources as input, then you should set this -# tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); -# versus func(std::string) {}). This also make the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. -# The default value is: NO. - -BUILTIN_STL_SUPPORT = NO - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. -# The default value is: NO. - -CPP_CLI_SUPPORT = NO - -# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: -# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen -# will parse them like normal C++ but will assume all classes use public instead -# of private inheritance when no explicit protection keyword is present. -# The default value is: NO. - -SIP_SUPPORT = NO - -# For Microsoft's IDL there are propget and propput attributes to indicate -# getter and setter methods for a property. Setting this option to YES will make -# doxygen to replace the get and set methods by a property in the documentation. -# This will only work if the methods are indeed getting or setting a simple -# type. If this is not the case, or you want to show the methods anyway, you -# should set this option to NO. -# The default value is: YES. - -IDL_PROPERTY_SUPPORT = YES - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. -# The default value is: NO. - -DISTRIBUTE_GROUP_DOC = NO - -# Set the SUBGROUPING tag to YES to allow class member groups of the same type -# (for instance a group of public functions) to be put as a subgroup of that -# type (e.g. under the Public Functions section). Set it to NO to prevent -# subgrouping. Alternatively, this can be done per class using the -# \nosubgrouping command. -# The default value is: YES. - -SUBGROUPING = YES - -# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions -# are shown inside the group in which they are included (e.g. using \ingroup) -# instead of on a separate page (for HTML and Man pages) or section (for LaTeX -# and RTF). -# -# Note that this feature does not work in combination with -# SEPARATE_MEMBER_PAGES. -# The default value is: NO. - -INLINE_GROUPED_CLASSES = NO - -# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions -# with only public data fields or simple typedef fields will be shown inline in -# the documentation of the scope in which they are defined (i.e. file, -# namespace, or group documentation), provided this scope is documented. If set -# to NO, structs, classes, and unions are shown on a separate page (for HTML and -# Man pages) or section (for LaTeX and RTF). -# The default value is: NO. - -INLINE_SIMPLE_STRUCTS = NO - -# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or -# enum is documented as struct, union, or enum with the name of the typedef. So -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct -# with name TypeT. When disabled the typedef will appear as a member of a file, -# namespace, or class. And the struct will be named TypeS. This can typically be -# useful for C code in case the coding convention dictates that all compound -# types are typedef'ed and only the typedef is referenced, never the tag name. -# The default value is: NO. - -TYPEDEF_HIDES_STRUCT = YES - -# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This -# cache is used to resolve symbols given their name and scope. Since this can be -# an expensive process and often the same symbol appears multiple times in the -# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small -# doxygen will become slower. If the cache is too large, memory is wasted. The -# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range -# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 -# symbols. At the end of a run doxygen will report the cache usage and suggest -# the optimal cache size from a speed point of view. -# Minimum value: 0, maximum value: 9, default value: 0. - -LOOKUP_CACHE_SIZE = 0 - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in -# documentation are documented, even if no documentation was available. Private -# class members and static file members will be hidden unless the -# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. -# Note: This will also disable the warnings about undocumented members that are -# normally produced when WARNINGS is set to YES. -# The default value is: NO. - -EXTRACT_ALL = NO - -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class will -# be included in the documentation. -# The default value is: NO. - -EXTRACT_PRIVATE = NO - -# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal -# scope will be included in the documentation. -# The default value is: NO. - -EXTRACT_PACKAGE = NO - -# If the EXTRACT_STATIC tag is set to YES all static members of a file will be -# included in the documentation. -# The default value is: NO. - -EXTRACT_STATIC = NO - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined -# locally in source files will be included in the documentation. If set to NO -# only classes defined in header files are included. Does not have any effect -# for Java sources. -# The default value is: YES. - -EXTRACT_LOCAL_CLASSES = YES - -# This flag is only useful for Objective-C code. When set to YES local methods, -# which are defined in the implementation section but not in the interface are -# included in the documentation. If set to NO only methods in the interface are -# included. -# The default value is: NO. - -EXTRACT_LOCAL_METHODS = NO - -# If this flag is set to YES, the members of anonymous namespaces will be -# extracted and appear in the documentation as a namespace called -# 'anonymous_namespace{file}', where file will be replaced with the base name of -# the file that contains the anonymous namespace. By default anonymous namespace -# are hidden. -# The default value is: NO. - -EXTRACT_ANON_NSPACES = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all -# undocumented members inside documented classes or files. If set to NO these -# members will be included in the various overviews, but no documentation -# section is generated. This option has no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. If set -# to NO these classes will be included in the various overviews. This option has -# no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend -# (class|struct|union) declarations. If set to NO these declarations will be -# included in the documentation. -# The default value is: NO. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any -# documentation blocks found inside the body of a function. If set to NO these -# blocks will be appended to the function's detailed documentation block. -# The default value is: NO. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation that is typed after a -# \internal command is included. If the tag is set to NO then the documentation -# will be excluded. Set it to YES to include the internal documentation. -# The default value is: NO. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file -# names in lower-case letters. If set to YES upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. -# The default value is: system dependent. - -CASE_SENSE_NAMES = YES - -# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with -# their full class and namespace scopes in the documentation. If set to YES the -# scope will be hidden. -# The default value is: NO. - -HIDE_SCOPE_NAMES = NO - -# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of -# the files that are included by a file in the documentation of that file. -# The default value is: YES. - -SHOW_INCLUDE_FILES = NO - -# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each -# grouped member an include statement to the documentation, telling the reader -# which file to include in order to use the member. -# The default value is: NO. - -SHOW_GROUPED_MEMB_INC = NO - -# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include -# files with double quotes in the documentation rather than with sharp brackets. -# The default value is: NO. - -FORCE_LOCAL_INCLUDES = NO - -# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the -# documentation for inline members. -# The default value is: YES. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the -# (detailed) documentation of file and class members alphabetically by member -# name. If set to NO the members will appear in declaration order. -# The default value is: YES. - -SORT_MEMBER_DOCS = NO - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief -# descriptions of file, namespace and class members alphabetically by member -# name. If set to NO the members will appear in declaration order. Note that -# this will also influence the order of the classes in the class list. -# The default value is: NO. - -SORT_BRIEF_DOCS = NO - -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the -# (brief and detailed) documentation of class members so that constructors and -# destructors are listed first. If set to NO the constructors will appear in the -# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. -# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief -# member documentation. -# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting -# detailed member documentation. -# The default value is: NO. - -SORT_MEMBERS_CTORS_1ST = NO - -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy -# of group names into alphabetical order. If set to NO the group names will -# appear in their defined order. -# The default value is: NO. - -SORT_GROUP_NAMES = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by -# fully-qualified names, including namespaces. If set to NO, the class list will -# be sorted only by class name, not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the alphabetical -# list. -# The default value is: NO. - -SORT_BY_SCOPE_NAME = NO - -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper -# type resolution of all parameters of a function it will reject a match between -# the prototype and the implementation of a member function even if there is -# only one candidate or it is obvious which candidate to choose by doing a -# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still -# accept a match between prototype and implementation in such cases. -# The default value is: NO. - -STRICT_PROTO_MATCHING = NO - -# The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the -# todo list. This list is created by putting \todo commands in the -# documentation. -# The default value is: YES. - -GENERATE_TODOLIST = NO - -# The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the -# test list. This list is created by putting \test commands in the -# documentation. -# The default value is: YES. - -GENERATE_TESTLIST = NO - -# The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug -# list. This list is created by putting \bug commands in the documentation. -# The default value is: YES. - -GENERATE_BUGLIST = NO - -# The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO) -# the deprecated list. This list is created by putting \deprecated commands in -# the documentation. -# The default value is: YES. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional documentation -# sections, marked by \if ... \endif and \cond -# ... \endcond blocks. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the -# initial value of a variable or macro / define can have for it to appear in the -# documentation. If the initializer consists of more lines than specified here -# it will be hidden. Use a value of 0 to hide initializers completely. The -# appearance of the value of individual variables and macros / defines can be -# controlled using \showinitializer or \hideinitializer command in the -# documentation regardless of this setting. -# Minimum value: 0, maximum value: 10000, default value: 30. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at -# the bottom of the documentation of classes and structs. If set to YES the list -# will mention the files that were used to generate the documentation. -# The default value is: YES. - -SHOW_USED_FILES = NO - -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This -# will remove the Files entry from the Quick Index and from the Folder Tree View -# (if specified). -# The default value is: YES. - -SHOW_FILES = NO - -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces -# page. This will remove the Namespaces entry from the Quick Index and from the -# Folder Tree View (if specified). -# The default value is: YES. - -SHOW_NAMESPACES = NO - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from -# the version control system). Doxygen will invoke the program by executing (via -# popen()) the command command input-file, where command is the value of the -# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided -# by doxygen. Whatever the program writes to standard output is used as the file -# version. For an example see the documentation. - -FILE_VERSION_FILTER = - -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed -# by doxygen. The layout file controls the global structure of the generated -# output files in an output format independent way. To create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. You can -# optionally specify a file name after the option, if omitted DoxygenLayout.xml -# will be used as the name of the layout file. -# -# Note that if you run doxygen from a directory containing a file called -# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE -# tag is left empty. - -LAYOUT_FILE = @top_srcdir@/DoxygenLayout.xml - -# The CITE_BIB_FILES tag can be used to specify one or more bib files containing -# the reference definitions. This must be a list of .bib files. The .bib -# extension is automatically appended if omitted. This requires the bibtex tool -# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. -# For LaTeX the style of the bibliography can be controlled using -# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the -# search path. Do not use file names with spaces, bibtex cannot handle them. See -# also \cite for info how to create references. - -CITE_BIB_FILES = - -#--------------------------------------------------------------------------- -# Configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated to -# standard output by doxygen. If QUIET is set to YES this implies that the -# messages are off. -# The default value is: NO. - -QUIET = YES - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES -# this implies that the warnings are on. -# -# Tip: Turn warnings on while writing the documentation. -# The default value is: YES. - -WARNINGS = YES - -# If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate -# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag -# will automatically be disabled. -# The default value is: YES. - -WARN_IF_UNDOCUMENTED = YES - -# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some parameters -# in a documented function, or documenting parameters that don't exist or using -# markup commands wrongly. -# The default value is: YES. - -WARN_IF_DOC_ERROR = YES - -# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that -# are documented, but have no documentation for their parameters or return -# value. If set to NO doxygen will only warn about wrong or incomplete parameter -# documentation, but not about the absence of documentation. -# The default value is: NO. - -WARN_NO_PARAMDOC = YES - -# The WARN_FORMAT tag determines the format of the warning messages that doxygen -# can produce. The string should contain the $file, $line, and $text tags, which -# will be replaced by the file and line number from which the warning originated -# and the warning text. Optionally the format may contain $version, which will -# be replaced by the version of the file (if it could be obtained via -# FILE_VERSION_FILTER) -# The default value is: $file:$line: $text. - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning and error -# messages should be written. If left blank the output is written to standard -# error (stderr). - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# Configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag is used to specify the files and/or directories that contain -# documented source files. You may enter file names like myfile.cpp or -# directories like /usr/src/myproject. Separate the files or directories with -# spaces. -# Note: If this tag is empty the current directory is searched. - -INPUT = @DOXYGEN_INPUT@ - -# This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses -# libiconv (or the iconv built into libc) for the transcoding. See the libiconv -# documentation (see: http://www.gnu.org/software/libiconv) for the list of -# possible encodings. -# The default value is: UTF-8. - -INPUT_ENCODING = UTF-8 - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and -# *.h) to filter out the source-files in the directories. If left blank the -# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii, -# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, -# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, -# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, -# *.qsf, *.as and *.js. - -FILE_PATTERNS = *.h - -# The RECURSIVE tag can be used to specify whether or not subdirectories should -# be searched for input files as well. -# The default value is: NO. - -RECURSIVE = YES - -# The EXCLUDE tag can be used to specify files and/or directories that should be -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. -# -# Note that relative paths are relative to the directory from which doxygen is -# run. - -EXCLUDE = - -# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or -# directories that are symbolic links (a Unix file system feature) are excluded -# from the input. -# The default value is: NO. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories for example use the pattern */test/* - -EXCLUDE_PATTERNS = *private* - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the -# output. The symbol name can be a fully qualified name, a word, or if the -# wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories use the pattern */test/* - -EXCLUDE_SYMBOLS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or directories -# that contain example code fragments that are included (see the \include -# command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and -# *.h) to filter out the source-files in the directories. If left blank all -# files are included. - -EXAMPLE_PATTERNS = - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude commands -# irrespective of the value of the RECURSIVE tag. -# The default value is: NO. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or directories -# that contain images that are to be included in the documentation (see the -# \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command: -# -# -# -# where is the value of the INPUT_FILTER tag, and is the -# name of an input file. Doxygen will then use the output that the filter -# program writes to standard output. If FILTER_PATTERNS is specified, this tag -# will be ignored. -# -# Note that the filter must not add or remove lines; it is applied before the -# code is scanned, but not when the output code is generated. If lines are added -# or removed, the anchors will not be placed correctly. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: pattern=filter -# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how -# filters are used. If the FILTER_PATTERNS tag is empty or if none of the -# patterns match the file name, INPUT_FILTER is applied. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER ) will also be used to filter the input files that are used for -# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). -# The default value is: NO. - -FILTER_SOURCE_FILES = NO - -# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file -# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and -# it is also possible to disable source filtering for a specific pattern using -# *.ext= (so without naming a filter). -# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. - -FILTER_SOURCE_PATTERNS = - -# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that -# is part of the input, its contents will be placed on the main page -# (index.html). This can be useful if you have a project on for instance GitHub -# and want to reuse the introduction page also for the doxygen output. - -USE_MDFILE_AS_MAINPAGE = - -#--------------------------------------------------------------------------- -# Configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will be -# generated. Documented entities will be cross-referenced with these sources. -# -# Note: To get rid of all source code in the generated output, make sure that -# also VERBATIM_HEADERS is set to NO. -# The default value is: NO. - -SOURCE_BROWSER = NO - -# Setting the INLINE_SOURCES tag to YES will include the body of functions, -# classes and enums directly into the documentation. -# The default value is: NO. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any -# special comment blocks from generated source code fragments. Normal C, C++ and -# Fortran comments will always remain visible. -# The default value is: YES. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES then for each documented -# function all documented functions referencing it will be listed. -# The default value is: NO. - -REFERENCED_BY_RELATION = NO - -# If the REFERENCES_RELATION tag is set to YES then for each documented function -# all documented entities called/used by that function will be listed. -# The default value is: NO. - -REFERENCES_RELATION = NO - -# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set -# to YES, then the hyperlinks from functions in REFERENCES_RELATION and -# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will -# link to the documentation. -# The default value is: YES. - -REFERENCES_LINK_SOURCE = YES - -# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the -# source code will show a tooltip with additional information such as prototype, -# brief description and links to the definition and documentation. Since this -# will make the HTML file larger and loading of large files a bit slower, you -# can opt to disable this feature. -# The default value is: YES. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -SOURCE_TOOLTIPS = NO - -# If the USE_HTAGS tag is set to YES then the references to source code will -# point to the HTML generated by the htags(1) tool instead of doxygen built-in -# source browser. The htags tool is part of GNU's global source tagging system -# (see http://www.gnu.org/software/global/global.html). You will need version -# 4.8.6 or higher. -# -# To use it do the following: -# - Install the latest version of global -# - Enable SOURCE_BROWSER and USE_HTAGS in the config file -# - Make sure the INPUT points to the root of the source tree -# - Run doxygen as normal -# -# Doxygen will invoke htags (and that will in turn invoke gtags), so these -# tools must be available from the command line (i.e. in the search path). -# -# The result: instead of the source browser generated by doxygen, the links to -# source code will now point to the output of htags. -# The default value is: NO. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a -# verbatim copy of the header file for each class for which an include is -# specified. Set to NO to disable this. -# See also: Section \class. -# The default value is: YES. - -VERBATIM_HEADERS = NO - -#--------------------------------------------------------------------------- -# Configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all -# compounds will be generated. Enable this if the project contains a lot of -# classes, structs, unions or interfaces. -# The default value is: YES. - -ALPHABETICAL_INDEX = NO - -# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in -# which the alphabetical index list will be split. -# Minimum value: 1, maximum value: 20, default value: 5. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all classes will -# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag -# can be used to specify a prefix (or a list of prefixes) that should be ignored -# while generating the index headers. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES doxygen will generate HTML output -# The default value is: YES. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a -# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of -# it. -# The default directory is: html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each -# generated HTML page (for example: .htm, .php, .asp). -# The default value is: .html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a user-defined HTML header file for -# each generated HTML page. If the tag is left blank doxygen will generate a -# standard header. -# -# To get valid HTML the header file that includes any scripts and style sheets -# that doxygen needs, which is dependent on the configuration options used (e.g. -# the setting GENERATE_TREEVIEW). It is highly recommended to start with a -# default header using -# doxygen -w html new_header.html new_footer.html new_stylesheet.css -# YourConfigFile -# and then modify the file new_header.html. See also section "Doxygen usage" -# for information on how to generate the default header that doxygen normally -# uses. -# Note: The header is subject to change so you typically have to regenerate the -# default header when upgrading to a newer version of doxygen. For a description -# of the possible markers and block names see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each -# generated HTML page. If the tag is left blank doxygen will generate a standard -# footer. See HTML_HEADER for more information on how to generate a default -# footer and what special commands can be used inside the footer. See also -# section "Doxygen usage" for information on how to generate the default footer -# that doxygen normally uses. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FOOTER = - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style -# sheet that is used by each HTML page. It can be used to fine-tune the look of -# the HTML output. If left blank doxygen will generate a default style sheet. -# See also section "Doxygen usage" for information on how to generate the style -# sheet that doxygen normally uses. -# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as -# it is more robust and this tag (HTML_STYLESHEET) will in the future become -# obsolete. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_STYLESHEET = - -# The HTML_EXTRA_STYLESHEET tag can be used to specify an additional user- -# defined cascading style sheet that is included after the standard style sheets -# created by doxygen. Using this option one can overrule certain style aspects. -# This is preferred over using HTML_STYLESHEET since it does not replace the -# standard style sheet and is therefor more robust against future updates. -# Doxygen will copy the style sheet file to the output directory. For an example -# see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_STYLESHEET = - -# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or -# other source files which should be copied to the HTML output directory. Note -# that these files will be copied to the base HTML output directory. Use the -# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these -# files. In the HTML_STYLESHEET file, use the file name only. Also note that the -# files will be copied as-is; there are no commands or markers available. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_FILES = - -# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen -# will adjust the colors in the stylesheet and background images according to -# this color. Hue is specified as an angle on a colorwheel, see -# http://en.wikipedia.org/wiki/Hue for more information. For instance the value -# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 -# purple, and 360 is red again. -# Minimum value: 0, maximum value: 359, default value: 220. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_HUE = 220 - -# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors -# in the HTML output. For a value of 0 the output will use grayscales only. A -# value of 255 will produce the most vivid colors. -# Minimum value: 0, maximum value: 255, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_SAT = 100 - -# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the -# luminance component of the colors in the HTML output. Values below 100 -# gradually make the output lighter, whereas values above 100 make the output -# darker. The value divided by 100 is the actual gamma applied, so 80 represents -# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not -# change the gamma. -# Minimum value: 40, maximum value: 240, default value: 80. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_GAMMA = 80 - -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting this -# to NO can help when comparing the output of multiple runs. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_TIMESTAMP = NO - -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_DYNAMIC_SECTIONS = NO - -# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries -# shown in the various tree structured indices initially; the user can expand -# and collapse entries dynamically later on. Doxygen will expand the tree to -# such a level that at most the specified number of entries are visible (unless -# a fully collapsed tree already exceeds this amount). So setting the number of -# entries 1 will produce a full collapsed tree by default. 0 is a special value -# representing an infinite number of entries and will result in a full expanded -# tree by default. -# Minimum value: 0, maximum value: 9999, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_INDEX_NUM_ENTRIES = 100 - -# If the GENERATE_DOCSET tag is set to YES, additional index files will be -# generated that can be used as input for Apple's Xcode 3 integrated development -# environment (see: http://developer.apple.com/tools/xcode/), introduced with -# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a -# Makefile in the HTML output directory. Running make will produce the docset in -# that directory and running make install will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at -# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html -# for more information. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_DOCSET = NO - -# This tag determines the name of the docset feed. A documentation feed provides -# an umbrella under which multiple documentation sets from a single provider -# (such as a company or product suite) can be grouped. -# The default value is: Doxygen generated docs. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_FEEDNAME = "Doxygen generated docs" - -# This tag specifies a string that should uniquely identify the documentation -# set bundle. This should be a reverse domain-name style string, e.g. -# com.mycompany.MyDocSet. Doxygen will append .docset to the name. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_BUNDLE_ID = org.doxygen.Project - -# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify -# the documentation publisher. This should be a reverse domain-name style -# string, e.g. com.mycompany.MyDocSet.documentation. -# The default value is: org.doxygen.Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_ID = org.doxygen.Publisher - -# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. -# The default value is: Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_NAME = Publisher - -# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three -# additional HTML index files: index.hhp, index.hhc, and index.hhk. The -# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop -# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on -# Windows. -# -# The HTML Help Workshop contains a compiler that can convert all HTML output -# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML -# files are now used as the Windows 98 help format, and will replace the old -# Windows help format (.hlp) on all Windows platforms in the future. Compressed -# HTML files also contain an index, a table of contents, and you can search for -# words in the documentation. The HTML workshop also contains a viewer for -# compressed HTML files. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_HTMLHELP = NO - -# The CHM_FILE tag can be used to specify the file name of the resulting .chm -# file. You can add a path in front of the file if the result should not be -# written to the html output directory. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_FILE = - -# The HHC_LOCATION tag can be used to specify the location (absolute path -# including file name) of the HTML help compiler ( hhc.exe). If non-empty -# doxygen will try to run the HTML help compiler on the generated index.hhp. -# The file has to be specified with full path. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -HHC_LOCATION = - -# The GENERATE_CHI flag controls if a separate .chi index file is generated ( -# YES) or that it should be included in the master .chm file ( NO). -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -GENERATE_CHI = NO - -# The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc) -# and project file content. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_INDEX_ENCODING = - -# The BINARY_TOC flag controls whether a binary table of contents is generated ( -# YES) or a normal table of contents ( NO) in the .chm file. Furthermore it -# enables the Previous and Next buttons. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members to -# the table of contents of the HTML help documentation and to the tree view. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -TOC_EXPAND = NO - -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and -# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that -# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help -# (.qch) of the generated HTML documentation. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_QHP = NO - -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify -# the file name of the resulting .qch file. The path specified is relative to -# the HTML output folder. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QCH_FILE = - -# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help -# Project output. For more information please see Qt Help Project / Namespace -# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_NAMESPACE = org.doxygen.Project - -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt -# Help Project output. For more information please see Qt Help Project / Virtual -# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- -# folders). -# The default value is: doc. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_VIRTUAL_FOLDER = doc - -# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom -# filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- -# filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_NAME = - -# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the -# custom filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- -# filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_ATTRS = - -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this -# project's filter section matches. Qt Help Project / Filter Attributes (see: -# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_SECT_FILTER_ATTRS = - -# The QHG_LOCATION tag can be used to specify the location of Qt's -# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the -# generated .qhp file. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHG_LOCATION = - -# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be -# generated, together with the HTML files, they form an Eclipse help plugin. To -# install this plugin and make it available under the help contents menu in -# Eclipse, the contents of the directory containing the HTML and XML files needs -# to be copied into the plugins directory of eclipse. The name of the directory -# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. -# After copying Eclipse needs to be restarted before the help appears. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_ECLIPSEHELP = NO - -# A unique identifier for the Eclipse help plugin. When installing the plugin -# the directory name containing the HTML and XML files should also have this -# name. Each documentation set should have its own identifier. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. - -ECLIPSE_DOC_ID = org.doxygen.Project - -# If you want full control over the layout of the generated HTML pages it might -# be necessary to disable the index and replace it with your own. The -# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top -# of each HTML page. A value of NO enables the index and the value YES disables -# it. Since the tabs in the index contain the same information as the navigation -# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -DISABLE_INDEX = YES - -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. If the tag -# value is set to YES, a side panel will be generated containing a tree-like -# index structure (just like the one that is generated for HTML Help). For this -# to work a browser that supports JavaScript, DHTML, CSS and frames is required -# (i.e. any modern browser). Windows users are probably better off using the -# HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can -# further fine-tune the look of the index. As an example, the default style -# sheet generated by doxygen has an example that shows how to put an image at -# the root of the tree instead of the PROJECT_NAME. Since the tree basically has -# the same information as the tab index, you could consider setting -# DISABLE_INDEX to YES when enabling this option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_TREEVIEW = YES - -# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that -# doxygen will group on one line in the generated HTML documentation. -# -# Note that a value of 0 will completely suppress the enum values from appearing -# in the overview section. -# Minimum value: 0, maximum value: 20, default value: 4. -# This tag requires that the tag GENERATE_HTML is set to YES. - -ENUM_VALUES_PER_LINE = 0 - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used -# to set the initial width (in pixels) of the frame in which the tree is shown. -# Minimum value: 0, maximum value: 1500, default value: 250. -# This tag requires that the tag GENERATE_HTML is set to YES. - -TREEVIEW_WIDTH = 250 - -# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to -# external symbols imported via tag files in a separate window. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -EXT_LINKS_IN_WINDOW = NO - -# Use this tag to change the font size of LaTeX formulas included as images in -# the HTML documentation. When you change the font size after a successful -# doxygen run you need to manually remove any form_*.png images from the HTML -# output directory to force them to be regenerated. -# Minimum value: 8, maximum value: 50, default value: 10. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_FONTSIZE = 10 - -# Use the FORMULA_TRANPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are not -# supported properly for IE 6.0, but are supported on all modern browsers. -# -# Note that when changing this option you need to delete any form_*.png files in -# the HTML output directory before the changes have effect. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_TRANSPARENT = YES - -# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see -# http://www.mathjax.org) which uses client side Javascript for the rendering -# instead of using prerendered bitmaps. Use this if you do not have LaTeX -# installed or if you want to formulas look prettier in the HTML output. When -# enabled you may also need to install MathJax separately and configure the path -# to it using the MATHJAX_RELPATH option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -USE_MATHJAX = NO - -# When MathJax is enabled you can set the default output format to be used for -# the MathJax output. See the MathJax site (see: -# http://docs.mathjax.org/en/latest/output.html) for more details. -# Possible values are: HTML-CSS (which is slower, but has the best -# compatibility), NativeMML (i.e. MathML) and SVG. -# The default value is: HTML-CSS. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_FORMAT = HTML-CSS - -# When MathJax is enabled you need to specify the location relative to the HTML -# output directory using the MATHJAX_RELPATH option. The destination directory -# should contain the MathJax.js script. For instance, if the mathjax directory -# is located at the same level as the HTML output directory, then -# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax -# Content Delivery Network so you can quickly see the result without installing -# MathJax. However, it is strongly recommended to install a local copy of -# MathJax from http://www.mathjax.org before deployment. -# The default value is: http://cdn.mathjax.org/mathjax/latest. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest - -# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax -# extension names that should be enabled during MathJax rendering. For example -# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_EXTENSIONS = - -# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces -# of code that will be used on startup of the MathJax code. See the MathJax site -# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an -# example see the documentation. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_CODEFILE = - -# When the SEARCHENGINE tag is enabled doxygen will generate a search box for -# the HTML output. The underlying search engine uses javascript and DHTML and -# should work on any modern browser. Note that when using HTML help -# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) -# there is already a search function so this one should typically be disabled. -# For large projects the javascript based search engine can be slow, then -# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to -# search using the keyboard; to jump to the search box use + S -# (what the is depends on the OS and browser, but it is typically -# , /

-Table of Contents - -- [1. Introduction](#1-introduction) -- [2. Set-Up ESP-IDF](#2-set-up-esp-idf) -- [3. Building Host for the P4](#3-building-host-for-the-p4) - - [Adding Components](#31-adding-components) - - [Configuring Defaults](#32-configuring-defaults) - - [Building Firmware](#33-building-firmware) -- [4. Checking ESP-Hosted](#4-checking-esp-hosted) -- [5. Flashing ESP32-C6](#5-flashing-esp32-c6) - - [Using ESP-Prog](#51-using-esp-prog) - - [OTA Updates](#52-ota-updates) -- [6. Troubleshooting](#6-troubleshooting) -- [7. Flashing the On-board ESP32-P4 through the ESP-Prog](#7-flashing-esp32-p4) -- [8. Testing ESP-Hosted with SPI-FD with other MCUs](#8-testing-esp-hosted-with-spi-fd-with-other-mcus) -- [9. References](#10-references) -
- -## 1. Introduction - -This page documents using ESP-Hosted-MCU on the ESP32-P4-Function-EV-Board. The board comes with an on-board ESP32-C6 module, pre-flashed with ESP-Hosted-MCU slave code (v0.0.6). The board provides a Wi-Fi connection to the on-board ESP32-P4, which acts as the host. - -The image below shows the board. - -ESP32-P4-Function-EV-Board - -*ESP32-P4-Function-EV-Board* - -The ESP32-P4 communicates with the ESP32-C6 module using SDIO. - -## 2. Set-Up ESP-IDF - -As you have reached here, it is highly likely that you have already setup ESP-IDF. - -If not done, Please set up ESP-IDF: - -#### Option 1: Installer Way - -- **Windows** - - Install and setup ESP-IDF on Windows as documented in the [Standard Setup of Toolchain for Windows](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/windows-setup.html). - - Use the ESP-IDF [Powershell Command Prompt](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/windows-setup.html#using-the-command-prompt) for subsequent commands. - -- **Linux or MacOS** - - For bash: - ```bash - bash docs/setup_esp_idf__latest_stable__linux_macos.sh - ``` - - For fish: - ```fish - fish docs/setup_esp_idf__latest_stable__linux_macos.fish - ``` - -#### Option 2: Manual Way - -Please follow the [ESP-IDF Get Started Guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/index.html) for manual installation. - -## 3. Building Host for the P4 - -### 3.1. Adding Components - -Add `esp_wifi_remote` and `esp_hosted` components to the project: - -``` -idf.py add-dependency "espressif/esp_wifi_remote" -idf.py add-dependency "espressif/esp_hosted" -``` - -Remove 'esp-extconn' if present in `main/idf_component.yml`, as esp-extconn and esp-hosted cannot work together. -Open the `main/idf_component.yml` file and remove/comment the following block if present: - -``` -# ------- Delete or comment this block --------- -espressif/esp-extconn: - version: "~0.1.0" - rules: - - if: "target in [esp32p4]" -# ----------------------------------- -``` - -It is always good to use `esp_wifi_remote` as it provides all the Wi-Fi config and a wrapper abstraction layer. -But you can also evaluate without using it. - -> [!IMPORTANT] -> Co-processor selection is done by wifi-remote. Ensure the correct -> co-processor chip is selected in `Component config` -> `Wi-Fi -> Remote` -> `choose slave target`. The target selected will affect -> the ESP-Hosted transport options and default GPIOs used. - -### 3.2. Configuring Defaults - -Edit the `sdkconfig.defaults.esp32p4` file such that, it would have following content: - -``` -#### Comment below two lines if present: -# CONFIG_ESP_HOST_WIFI_ENABLED=y -# CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE=y - -#### Add Wi-Fi Remote config for better performance: -CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=16 -CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=64 -CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=64 -CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=y -CONFIG_ESP_WIFI_TX_BA_WIN=32 -CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=y -CONFIG_ESP_WIFI_RX_BA_WIN=32 - -CONFIG_LWIP_TCP_SND_BUF_DEFAULT=65534 -CONFIG_LWIP_TCP_WND_DEFAULT=65534 -CONFIG_LWIP_TCP_RECVMBOX_SIZE=64 -CONFIG_LWIP_UDP_RECVMBOX_SIZE=64 -CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=64 - -CONFIG_LWIP_TCP_SACK_OUT=y -``` - -### 3.3. Building Firmware - -Set the ESP32-P4 as the target, build, flash the firmware and -(optionally) monitor ESP32-P4 console output: - -```sh -idf.py set-target esp32p4 -idf.py build -idf.py -p flash monitor -``` - -## 4. Checking ESP-Hosted - -When the P4 is running with Hosted, you should see console output similar to this after start-up: - -``` -I (498) H_API: esp_wifi_remote_init -I (498) transport: Attempt connection with slave: retry[0] -I (498) transport: Reset slave using GPIO[54] -I (498) os_wrapper_esp: GPIO [54] configured -I (508) gpio: GPIO[54]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 -I (1678) sdio_wrapper: SDIO master: Data-Lines: 4-bit Freq(KHz)[40000 KHz] -I (1678) sdio_wrapper: GPIOs: CLK[18] CMD[19] D0[14] D1[15] D2[16] D3[17] Slave_Reset[54] -I (1678) H_SDIO_DRV: Starting SDIO process rx task -I (1678) sdio_wrapper: Queues: Tx[20] Rx[20] SDIO-Rx-Mode[3] -I (1718) gpio: GPIO[15]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 -I (1718) gpio: GPIO[17]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 -Name: -Type: SDIO -Speed: 40.00 MHz (limit: 40.00 MHz) -Size: 0MB -CSD: ver=1, sector_size=0, capacity=0 read_bl_len=0 -SCR: sd_spec=0, bus_width=0 -TUPLE: DEVICE, size: 3: D9 01 FF -TUPLE: MANFID, size: 4 - MANF: 0092, CARD: 6666 -TUPLE: FUNCID, size: 2: 0C 00 -TUPLE: FUNCE, size: 4: 00 00 02 32 -TUPLE: CONFIG, size: 5: 01 01 00 02 07 -TUPLE: CFTABLE_ENTRY, size: 8 - INDX: C1, Intface: 1, Default: 1, Conf-Entry-Num: 1 - IF: 41 - FS: 30, misc: 0, mem_space: 1, irq: 1, io_space: 0, timing: 0, power: 0 - IR: 30, mask: 1, IRQ: FF FF - LEN: FFFF -TUPLE: END -I (1768) sdio_wrapper: Function 0 Blocksize: 512 -I (1778) sdio_wrapper: Function 1 Blocksize: 512 -I (1778) H_SDIO_DRV: SDIO Host operating in PACKET MODE -I (1788) H_SDIO_DRV: generate slave intr -I (1798) transport: Received INIT event from ESP32 peripheral -I (1798) transport: EVENT: 12 -I (1798) transport: EVENT: 11 -I (1808) transport: capabilities: 0xd -I (1808) transport: Features supported are: -I (1818) transport: * WLAN -I (1818) transport: - HCI over SDIO -I (1818) transport: - BLE only -I (1828) transport: EVENT: 13 -I (1828) transport: ESP board type is : 13 - -I (1838) transport: Base transport is set-up - -I (1838) transport: Slave chip Id[12] -I (1848) hci_stub_drv: Host BT Support: Disabled -I (1848) H_SDIO_DRV: Received INIT event -I (1868) rpc_wrap: Received Slave ESP Init -``` - -## 5. Flashing ESP32-C6 -ESP32-C6 flashing is totally **optional**, as C6 is expected to be pre-flashed with ESP-Hosted slave firmware, 0.0.6. If you wish to get updated ESP-Hosted slave firmware, you can flash it using two ways, Either with ESP-Prog on ESP32-C6, or using OTA update configured using web server. - -### 5.1 OTA Updates - -To update the ESP32-C6 slave module using Over-The-Air (OTA) updates, follow these steps: - -1. Build the ESP-Hosted slave firmware for the ESP32-C6 module: - -``` -idf.py create-project-from-example "espressif/esp_hosted:slave" -``` - -2. Set the target and start `Menuconfig`: - -```sh -idf.py set-target esp32c6 -idf.py menuconfig -``` - -3. Under **Example Configuration**, ensure that the Hosted transport - selected is `SDIO`. - -4. Build the firmware: - -```sh -idf.py build -``` - -5. Upload the firmware (the build/network_adapter.bin file) to a server or a local directory accessible via HTTP. - -6. On the ESP32-P4 host, add the following code to your application to initiate the OTA update: - -``` -#include "esp_hosted.h" - -esp_err_t esp_hosted_slave_ota(const char *url); -``` - -7. Call the `esp_hosted_slave_ota` function with the URL of the firmware binary: - -``` -esp_err_t err = esp_hosted_slave_ota("http://example.com/path/to/network_adapter.bin"); -if (err != ESP_OK) { - ESP_LOGE(TAG, "Failed to start OTA update: %s", esp_err_to_name(err)); -} -``` - -8. Monitor the console output to see the OTA update progress. - -### 5.2 Using ESP-Prog - -> [!NOTE] -> ESP-Prog is only required if you want to flash firmware to the -> ESP32-C6 module using the standard ESP Tools. - -This step is optional, as C6 is expected to be pre-flashed with ESP-Hosted slave firmware, 0.0.6. - -The image below shows the board with an ESP-Prog connected to the -header to communicate with the on-board ESP32-C6.. - -ESP32-P4-Function-EV-Board with ESP-Prog Connected to ESP32-C6 - -*ESP32-P4-Function-EV-Board with ESP-Prog Connected to ESP32-C6* - -If you need to update the ESP-Hosted slave firmware on the on-board -ESP32-C6 module using ESP-Prog, follow these steps: - -1. Check out the ESP-Hosted slave example project: - -``` -idf.py create-project-from-example "espressif/esp_hosted:slave" -``` - -2. Set the target and start `Menuconfig`: - -```sh -idf.py set-target esp32c6 -idf.py menuconfig -``` - -3. Under **Example Configuration**, ensure that the Hosted transport - selected is `SDIO`. - -4. Build the firmware: - -```sh -idf.py build -``` - -5. Connect the Program Header on the ESP-Prog to the `PROG_C6` header - on the board. The connections are as follows: - -| ESP-Prog | PROG_C6 | Notes | -| --- | --- | --- | -| ESP\_EN | EN | | -| ESP\_TXD | TXD | | -| ESP\_RXD | RXD | | -| VDD | - | Do not connect | -| GND | GND | | -| ESP\_IO0 | IO0 | | - - -6. Flashing the firmware - -The on-board ESP32-P4 controls the reset signal for the ESP32-C6. To -prevent the P4 interfering with the C6 while flashing (by asserting -the C6 Reset signal during the firmware download), set the P4 into -Bootloader mode before flashing the firmware to the C6: - -###### Manual Way - 1. hold down the `BOOT` button on the board - 2. press and release the `RST` button on the board - 3. release the `BOOT` button - -###### Script Way - -```sh -esptool.py -p --before default_reset --after no_reset run -``` - -You can now flash the firmware to the C6 (and monitor the console -output): - -```sh -idf.py -p flash monitor -``` - -## 6. Troubleshooting - -If you encounter issues with using ESP-Hosted, see the following guide: - -- [Troubleshooting Guide](troubleshooting.md) - -
-Flashing the On-board ESP32-P4 through the Serial Interface - -## 7. Flashing the On-board ESP32-P4 through the ESP-Prog - -The USB connector on the board is the standard method for flashing the -firmware to the P4. An alternative method is to flash the P4 through -its serial interface using a ESP-Prog. - -The image below shows the connection between the ESP-Prog and the -serial port pins on the P4 header for programming. - -ESP32-P4 Serial Connection with ESP-Prog - -*ESP32-P4 Serial Connection with ESP-Prog* - -The connection between the ESP-Prog and the P4 header is as follows: - -| ESP-Prog | P4 Header | -| --- | --- | -| ESP\_TXD | U0TXD (GPIO 37) | -| ESP\_RXD | U0RXD (GPIO 38) | -| GND | GND | - -Leave the other ESP-Prog connected unconnected. - -To flash the P4: - -1. hold down the `BOOT` button on the board -2. press and release the `RST` button on the board -3. release the `BOOT` button - -You can now flash the firmware (and monitor the console output): - -```sh -idf.py -p flash monitor -``` - -To restart the P4 after flashing, press and release the `RST` button -on the board. - -
- -## 8. Testing ESP-Hosted with SPI-FD with other MCUs - -You can use SPI-FD (Full Duplex) on the ESP32-P4 to test ESP-Hosted with other ESP32s. Do this by connecting the ESP32 to the P4 through the J1 GPIO header on the ESP32-P4 DevKit. - -Use GPIOs 36 or lower on the P4 DevKit to avoid LDO power issues with high numbered GPIOs. Here is one combination on GPIOs that can be used on the P4: - -| Function | GPIO | -|------------|------| -| MOSI | 4 | -| MISO | 5 | -| CLK | 26 | -| CS | 6 | -| Handshake | 20 | -| Data Ready | 32 | -| Reset | 2 | - -> [!NOTE] -> Avoid using GPIO 35 and 36 as they affect the ESP32-P4 Bootloader Mode. See [ESP32-P4 Boot Mode Selection](https://docs.espressif.com/projects/esptool/en/latest/esp32p4/advanced-topics/boot-mode-selection.html#select-bootloader-mode) for more information. - -> [!TIP] -> -> To measure the optimal performance, check out the [Shield Box Test Setup](shield-box-test-setup.md). - -## 9. References - -- ESP32-P4-Function-EV-Board: https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32p4/esp32-p4-function-ev-board/ -- ESP-Prog: https://docs.espressif.com/projects/esp-iot-solution/en/latest/hw-reference/ESP-Prog_guide.html -- `esp_wifi_remote` component: https://components.espressif.com/components/espressif/esp_wifi_remote/ -- `esp_hosted` component: https://components.espressif.com/components/espressif/esp_hosted/ diff --git a/resources/espressif__esp_hosted/docs/images/ESP-Hosted-FG-MCU_design.svg b/resources/espressif__esp_hosted/docs/images/ESP-Hosted-FG-MCU_design.svg deleted file mode 100644 index f09bfbd..0000000 --- a/resources/espressif__esp_hosted/docs/images/ESP-Hosted-FG-MCU_design.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - -
SPI or SDIO
SPI or SDIO
Socket APIs
Socket APIs
Bluetooth App
Bluetooth A...
RPC APIs
(Req / Resp / Event)
RPC APIs...
User App
User App
Standard HCI over UART (Optional)

Standard HCI over UART (Optional)...
Bluetooth
Packets
Bluetooth...
Network
Packets
Network...
Control
Path
Control...
Transport host driver (SPI/SDIO)
Transport host driver (SPI/SDIO)
Protobuf
Protobuf
STA_IF or AP_IF
STA_IF or AP_IF
TCP/IP &
TLS stack
TCP/IP &...
Net If
Net If
SERIAL_IF
SERIAL_IF
vHCI
vHCI
Bluetooth Host Stack
Bluetooth Ho...
RPC Lib
RPC Lib
HCI_IF  (vHCI driver)
HCI_IF  (vHCI driver)
Host Driver
Host Driver
MCU SPI / SDIO driver
MCU SPI / SDIO driver
MCU UART driver (O)
MCU UART driver (...
IDF LWIP Dr.(O)
IDF LWIP Dr.(O)
IDF WiFi Dr.
IDF WiFi Dr.
MCU UART Ctrl (O)
MCU UART Ctrl (O)
MCU SPI/SDIO Ctrl
MCU SPI/SDIO Ctrl
User Code
User Code
Middle layer
Middle layer
ESP-Hosted-MCU driver
ESP-Hosted-MCU driver
HAL driver
HAL driver
Hardware
Hardware
Network
Driver
Network...
RPC server
RPC server
Transport slave driver (SPI/SDIO)
Transport slave driver (SPI/SDIO)
Slave Driver
Slave Driver
Host MCU
Host...
ESP Slave
ESP Slave
ESP UART Ctrl
ESP UART Ctrl
ESP BT Ctrl
ESP BT Ctrl
ESP WiFi Ctrl
ESP WiFi Ctrl
IDF SPI/SDIO Dr.
IDF SPI/SDIO Dr.
Protocomm Dr.
Protocomm Dr.
ESP SPI/SDIO Ctrl
ESP SPI/SDIO Ctrl
vHCI Driver
vHCI Driver
ESP-Hosted-MCU components
ESP-Hosted-MCU compon...
Ready-Made drivers or APIs
Ready-Made drivers...
ESP IDF components
ESP IDF components
Hardware Components
Hardware Componen...
(O) : Optional
(O) : Optional
Control
Path
Control...
Data
Path
Data...
Bluetooth:
Bluetooth:
HCI
HCI
vHCI
vHCI
SPI / SDIO
SPI / SDIO
Legends
Legends
Reset
Reset
UART (O)
UART (O)
\ No newline at end of file diff --git a/resources/espressif__esp_hosted/docs/images/PerformanceSetup-ShieldBox.png b/resources/espressif__esp_hosted/docs/images/PerformanceSetup-ShieldBox.png deleted file mode 100644 index 6fe02fa45a445f59435f02dd9da4b70c93aa23cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 114919 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

(ca$C^Bmh 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 i_y22#|0~UKg-4Ee>pE_ z5KvHBqyz!!ASDor^p2DppU3z6-u10}*Sg=mf8BLCYfWa)o_)^j^E-!`eTKDW@AvMH zda)SzVQv8c3MB`y006)b03a{`qDue=07x(}{wvcDL4Wm&+yHRwzx0y-B}@I64E-

_zX(Q4rHVeYsE93;&g)=<;JudZquD#RlWx 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 z zd6#FgU$rgEA80AMd`$-)O(XfNR=X~DieJYJ$=?;66mqR~d@8mL2OR%sXceM$9$6Wyneyp*7rs|!n(OR~6{`dx| z>hZy*^dXaBfrFyQ4UgL7Fo2vM4v#qwe-PslVaSrq&!P3Fg@4RUUj~U0=~CmEQbk;J z^S8g|*m|R57uvWZuT*8^xbZr}($fVK06<@R%+>$VVeatF~|acDcK!SjjA+8lGmXYTY@?D&(FMoE7C~gsba(p`?V{+?ECQzAjgBXasu6t9v};AJX~m$}1@2yf<_SGd1fE zAloOv<;@^$MP^lRk0;Ll2N|vQf4mBU7+d{fRI*yJ9*35xIJs#W0pz6#b?Q|YO=BO4 z`r{15k=Jdmcq>hn^~QS>FfrKqPA_rkJ^e{&78rRyB@NUCKuX`mXu#&cD0k<-UaFXl z$+d+e8`S^R^R8BZa2a5MXPwCo&Tw5^66F4Bu>M(3l0GLzhy<4BoMj%C@zGKC_-M{AQ-aPqxuFAIi zeoqct{SO_M;CI1iQd zOsEOk-a%7h#1H(e-pHL07lZRvU}k!G#8dUdZF}NeP)$hgXYP%DC1Z|0(|D)7YfiQp z=f+dlaRl;Ab%ktiSyqAI=*{+wi!kJ$VdN8C4G9K3+FbT~Y3)+`-}n$+1ob#ts^SVE zYP-pothDbVMU8XvZmDIp{=zj`vDO>C=6Ph>=iGwB{qLIRYSYN7Le*rg<&b-$nBg6Ak zOP{*%fTjWf?K;46v(JELbUb$UuKD}aFv>VzMa++!O$H3O>mxj*}ESkP0t79@HS&d?+{~5cdVBSnT-W5k4;`%5+{7b z{X0S%hFKOE%Zc+JTwv4-ukM`R8ErH%%R*Qr7`zV`Tf>sdB`%y{PjN5>uEr~4r(SDa zu{ilFXGb*g{b*qb8!bV7JoRT>b%dy2u=@e!P9OBN(tx>hC9MPw{w0`e%UMA6A`Vp!M$hJS+Mke(r3<{Z|2!{?%pVPPJ zXRv=m!o{LWk_iP9O#yd$bV&lriyLCl9RMVQ-JR(zHIvLtyMHn&eT9lo zOZEw}b?Lx9#)pd=fAoL4!Q`t>}w z0wqFNfAca|YQ6-P%MN=FA`;Yf04<|3NRG&S?upPdYl*|n6Mj}&^^SK)tfz$|eGElQ z^C?5fhvOO)2W$O1O~jcMlaAH9KNOEvgEg4kob5sdg#k_MV{0R8=EeqK?ch1#{I?ZGiA1>SNouQMpNq1ljV z{P(&OKHf4e-dVLI^n$xdp(Jee+2>4gAtM<)>o0s5caUYPA!sMHM3Ll#&C3M^-{22yE5^fUIdty;+NWj@Db?Kyq z?nujLg%mlsNYK4DSed-AY-LaY|vL{uv0^iStg84PcI_$I!cS%sZfvx?Ty%A!W% zU65c%Ip{ZWtyCCfFR2g-tBzHfvwzKAbQ5qg{YhZOvcP;$LM zP4b*B!bTcY#??Ht!mQYTJF?x$8u&fYrH;-r+LorVeb|%zxIo~|fiku{2PK{C-ZFJQ zXjqtEJ@{zo9nB-2yG=_5R7z56${#lCT%R zu;|kG8LqhAR#HiJ^B3HZ)M%&&p}AhnFA3-213ypfR%M_x=Ur$53^rD<{v zOlR+X*dOgA1?*3s&V6}=0-B_#yrqQsNEszBE`UUPMz0-5FFI6m;O@j}Z0pdYkY)&< zTk@m&$8Vdflk=c?TEMu;=@9gxeTdt=zT+w#%X4PJMEo}Q`<8qpKMRnyLJ^w_%_4Ji zrTnS~XXrQLyQP$f-rZ$bGq!*m@a5XrFs4Ul!y&&w6}5g5fdCXQ9 z$6o(4^69s$nck*5(AX~V^Iq#JCMdg0d+uei`F^X<%=XWg)Y$6pJrK;`(_tx;t<`IH zz!<^2DumkkOW<1HA_1o#+-|BQu$P4(zF33jWfiR(yX?ijfn-oG1kkAE@wRj1ZEte2 zMDwJ|HHSM0u%&c)zV-by-96qGKu^jlu^!HQXM340fJ-Ctc@f0`F%2n9;Xu$86|ulQ zd^A$4<(_-xaS7q*!|jJ9J{J}u*YZ}D>@EEyul6r)dYDV~JC@Y=Z&maSqfO-@2DP3u z26wb5rMCdU*TeSaCAN9pwz4w}#h)*ZM!)zerqvCjg2&9)jMHDiy4k*_>3y9!OYMl{ zjm>be`H!n&Ooq@S*j`$RJKO@hg+iHAQ(xa5XsL+Viu87!;Soy$yf=cu-)CQx2b*ni zFkft$r8E*DuX2k&_7gkwulUL3i*?LLx~tkHCfLjsI&k3YJC8PR+15fF2;7!^Sla}m zmBO9dcSq|*qjb!~79y9PkMMk*G0>(zx+iCrsc7bN(bG-~S8k}=)7PECN@$@_BjCCWm_ zUC}|%Q7V!9`?a`jW#Jw5(6P911GCnu%9KGhae}~JUYM~)Abu!*SLd~RZRH<8R5 zhn&!60Kd|(eSMiTaF8BOENBI!hR30Ef&ugPEEF&WRJPj(YT;qRss~n6I-7)KKhLA# zaLP}K`3r%A;*$Nx;aX3$Udi;&E=C4Rp@Cg536u4Wp4xu6v7jC9;}4`JjO-#P1qOyb znhz$zfCR~J5vrmvjs*Dx9d(RQKo3Uj0;c+aLg`Sl-A>2}qcAEORb5$>$*cZcc~}8F z3~xArEOZ;hPp8hBvsxw1-sSwB^2F@mli%7u3?m45U|x{-m6Z{{6|6%8sCgU25_lzv zbxN8eBf{+W_onrjlTOx?(;I8@U7)tSAt#Wo_u;PgK@7->YKy3r()RKn>1{&SyUuTI zm_KFq<5QTR?Nem6tvPMCghK00%<$_ag^h1k!c~%a%M)?^ChwO>z|@{A%BQCL>8v9C zDvUdTqBYB2LLLejRkSGS?M5s#r?Lnq09aFZPqH(-q{j3R1ORDREOAVxqN(+g`>Ci! zZ!4uy=J)m$YixuR8;S(Cu?~`jsuyI_7Rh595q?(kViaypX-t^}*nC4ohLim%>+hbZ z#6?;djRtHqSnpR!tg5y{sP`dm?$%)<&@*`yDOfFJWu zhX3(PFm39YfvQB$#vNfFv-gw4WvE4yFo;$Spx zfw!ThDSO5IPL#Cdv#eH7N5M-w`>BgquGLYs5gHL_aNx@gLD-}K&DDaWYrS3ZK6)9} z0dPq2Uus-Iya#8G-ItO3u$=N!GjU+>Q1w6x*b-b-PayNU$+{~mre)_@*suR|es-9y zRz<`l@TfM!4jdE$NRLbLzKJ|;0mY4i=FvQ^7Gh>!qFE}ZZL`p#Qi%eHy85c^6Nv{M zo+OJ?46)1LsCb}mcSzh0U`-D83Hvuh233b8;ypfQ8!WB949G7;!yf6E?X~ZSP6-v4aTWFO$Sh>8{)??w1GCXr}bo$y2!kIkNhk{)MuzK^S@g(_k72>W{l8F zEn&IgfAx}5U;Z3w+I&>{s(;QO#vFN1FpX@t9h-jR_hj~h5Z!O3#ijV9yFnKXw(aJb zSg((l%A`JmsPQo+0hY_a=~&~`WKf#PMuP>;jmf)#fM+-}xI=#>Yd5I4-Toq)AXPK} zgPeslLw{f2nJcmh%;HzIpy=Yf2In?4YMjkn>H7EwfcZN;QZsVgObWBI^ZwI1ImnM@ zh-i{)P?bf(t1<7HqcPS@j5kkUt7?i^^{~?K%2%hG&z56?9Yusfgmp28|%qLfw zhxIgW6t8nS=Cg(il1(mqQ@uc zalfe?E;?97AXGFFnIF5cKjCRBy znDM(h+^a+DCwTdU&5AuH92DRfnH8kPSbI5m*L$J?T-2v*^5uqb$-~e4HU190E4<;?L_mbZS7-v+J{V~wO9098VHK1o7L$(!hNycrq`Lo#TdE>*jh2Wp9g zs~aua*YwHyW}!JV{MrMo7qcR{lne2JxLvf1+I+k6sZb8f023?X(?)hEvW3;RZ=AG|#K zlIT^4jqN93BOpCZELg0@W2>$7MB9_Q*32I^Ywt!a_bV7h)=t|QgD*6Xz~pY%n~TXq zGbOEz;hSa@B~8v8W50tAk(u^&SEWhe^M(S>lGlrci=|l7+(VrsA^YR-)|HPurTo)X zr0?!N9oqaaaD;p1@-lH4EkkZWeQI?GZr0pc#*{j5dt;G(y8GaBenRZDeua_anS3Ww z*MVJL??~`4O2luzF`Lz=*L(N*>ze}*9?g9~?cWeW>Rjb*CsJN!Z1eCjFLY3vun%&u zzFv5y#FZ+sOE{pp`OVvi+6$=H0m;g0)joMkr^#BXHxk)_!wHf$vCTL8=c%R%k~$?m z^jN>$&GF!ST-rVLQxc#-SOu%QgXv9$;c+Z+LEzwdd?a_j?sfE}+LBdgvhNGair7$X7hTuaVRGG|b>Jgt+Yic$shSr>Z<_<77DVK*ol&&s0s`oWEA! zl?-46IU}{OpchqbPHQKdwI;jV62;4OJ5UHF(W~4YXb$5{kG2KsGCmDA1tcFY)f5UG zgMC+?>L>i_kM%eN5o=th9Sw76nnP+Y?W`@3vS|wC(o=gR)~>a?3)hBj&L7QM!uv+u zgsO#Ra))HI7%>F>B56~c!uwHLWL6I-h1SmLC=%KXXO!*Hnr3|vtz#&OSPDMkaW^~~ znIr0RzkPaddl&_`;2u*nK?p)G*sK2N$bvYdEetb@cz`hV2v%j#FXE}CKuR?(W0_MT~5P``D9+f zw5mMqukdnzT7>WO+p&4XY)JZlkWaH{0kiSECPXwxueXe8=hI38#4Q0{XP^SIr)5tI zA-$Y?@_O2o#$Ejif43DCa2yN13X7tmF@FZdovbvQF%(?+R`LHJ`vOH>1{2PJGxaz!;f^ zYwf3x^nmjbca%?s1<3&Y)&~ji=QFF(5ef3eGjRk91g;Uz$L2bQP2fjBq!^M*hM_7+ zwuQ)qPb(8YXSR+OYltg?jU9)f3g{VSaf)6s zNj)_(TNXZ)$yc$ebL1#HtkI|;^6rIrbw1DzEX~|NW0WHknrvdTGPv|ZS0wMiVh2D2 zYVYR~uCLD_N2*mYGcGb%L&F4=W%I4HPJAYyOXbJU?F#YVm%6C3?q+KH!{!;^f~05k zu_=t|0Ps0a;mtbvad>p4#Qwv2Ek2Bq>aj~U4xAa<)a~3d66Viv!NFhuAMGzNyKU>8 zBAR;`Movs8m0wdi6W*cuO|uZk_9p3*VKg!rgq3f^cl)=m_*Kze@Al^{t^f|0`~8G1>^$YU#tUvzlMb&PN_k zN)OFX1Bvp+kHxpyK29?|Az36qW#IquU^B2`-4bL$FsrPesNkoAIrvI}IS!$M&WTD<1@_TX-cQ5U(>ti0jF4Z^KY`0EH zcV?3|p9hja98u-cp|#@}AvFRy1&hXkZsfyD-6Lo$r&QeSvRuYk>Xb;GHU=jzM^hcTW&4&~FhB{d#j!g#v;%E(tA9phq08Slt$p|lB*$;_@wM7{Km zcsz$MLt|(@Yf&d^({SZ0e`Xnp;052iKzf$h44jvG#LOy$UDB@yQP+i<48R4=dxHTY zkd{jEPMhu4i;)$nK(mERE!I-i~Sjvd`^iet0ErZoM>$on%{SjND&s;6HO(a z*qJ^;|6Q$ng1=e+!pZ>E(&s8$(3oj5J<4dc|J0)SRq?ci(I6QX+oO^>sJbWb^DH*f zL2o8FCoh>`1>B0<5#z1|Y)H-prNAtgcR5V-;$f%g10Xy#N9#w15lfQq%IPWE^O-Hx z?!h-dI1%C^`g8+n!zlIY*?iNL*sQfdXuuXVmSFt8)IU|yG7I$L^3&d*S_UMzZY?D! z7M7hJE^c>Y8xvP<(C>m?`cM(xu`4!9ARt_m30#O0a5UD%=T!z8Uoy)JRiKnLChWhNr2CChck2&!k7o>`MLv>0sx=9{iOwDUwe$&4KVTM z<1|GF_ZHqxx^0~6OtzP_aqAfr7-#BTTk*eZ`}b#UYaw`{h>PsGMhFP4?pI9y5iVXw zyR8V}U_DHIbPzgiB8R@xyNs6u{n`EE5HVMdfIdc!YWKLOwS#Nsb z+3zN`AZ+>`<6Cgt(9#P}Sl(u@5`Zm#Hz-sahJ7$qnzFF_m9CML8d{}Z5k|G%X#Q2=4Pc1puD*2$q)pLPvIc

p~DUx=U0F`1cn>7C#=uehk)&JO0u;Dw06t@I2%{e`1 zmifDAk`Vz_137#tI6;Jef9cam0Qh#3ICTx8Rh(vEWR^c}+xWY8u^n(Y|3_4U+u-=ffBO(+ z`}!wnUH%8Pq!EmGbL#&72`wTZtoEKOCY)8r|*2EfVRn zd#>_!U%_OJW+^HjjGy6tQ(vD1*qL6#oR^;uLwwGjo0S|Gz4OcTWeg9_qd%VC!DVdD zJEl-3zv>?i+p{fHo`hnln5)gA*+)byK!gOoZ2CBliS3gpFh_3m^(X1ydGz2^>>9Td z4d}6;Q|_Wc>L##6z(Kr!o(Kd`)%RlvpCbxxX&$%j9GbN=!GNIxW%(TTAxX2+-r$hl*Iv?k~Z2B{YZ>&JW`~W z+3RuMlsZ0uX6aE5c^=eG9VyQx^fd_j_SolA8J3`r4Lx^#Ymc>N{9&ES7#UzfKEO|G!**8>Tgv@jmM}H>H0+ zu_Sc#Qeg}7FE|;gBQyy__oV#V;hfo_JZq6781mQbz8#kabXQ_Zv_~uD>--9flW(Hi z0dBKumr@G~MVFfRpMVJf>FzzUxe9zZ{%b~{sxLLk!~=uGslVGlqJJ)Zw zEjxO-2_QhtXDXiY!MjGTffom}%otAXD`Vo5>FP3SfxO`u7i;)0z(qLrtR4+*?vMCp z8o#t8@O)t1{};pr5pxPuKt)hqV@JHoomgFRKV!@l3cMB*Q7~lUYE>!XG5{ngi}Dp} z+Xh%&hWB<){10>rg@1?X--?;Mgk2Xp9J=}&tu#$@#i{H3MT)8u3)k}MDzN&efp;F< z!Z`)tShNqd5m5y#?wp;c_|;e(h2I5v$*aoXX`a{3ONXCi^u(}O!;TD+la+KbJ+pV(Zfu&d$> zRc!L`uSJPayIiN-;rCo_?@?znj4Aky+^_zG< zFs+l!lP&)jC>?I063jpt(reR1X|rsc^5kA;hY&Q zKszgkiObjpHU8!@Up(15feV%vv9=9kh6Ap6hDfvL!l5x89DpyPBz*LM+)D1Lg zp$)CTm{tySQKJ>tvfE&YJ zu^lEykI;AqiW&ww`MyFx`<7HPdOj#_cq6)Kzz08p7O-pdoroL`KifObq$vlq#&Qib zQ$!XTy$KsNgMa`1)uYx;AkwdHk8`>Z07*54f&e(x!)1QKRcvS5nb(74=aU~_;127sro!G(CTC3bs zi{9wlce~)`XR;Q_Zcm1w0M{6N8Q_E>wyqh^C)Zcenxg@yhrGwVSo{pC%>w`a10iUx z#1xbpxI&ssc8m4G1RY{kkpCYfL-X4~YFE?06@F+P@T(+uT|TCM$zJ+?3j%0x_DfLF zp#7_6i-UrTqcV~Jw;Cl&MJdM))EXSK0jBC*p>K1fdBdTnt!FmF#Y1K`rZyv9L?{*W z&NKzYfI1R6ErR;Pit>7tjJ!7BQ&NMm_GE)pu>XF^3}l*z%P#Luc~DG)9Gj8`QCUn;QwpawcxkeEHRR=cZJ29PaEUi}gGJbf3Twj0B8IlM3c&l^*= zB<9PY+MGJG7`zfZ_n!CkzW~yo`*=Jmw_RjT4$=Uc68(bPH}Y;}EZOT`7Sma$M}%}z z9AK)ZkfB6bFSN(f3rNFLgZkD zj$yw550QqTWo3c7!r|ti7$rQ>6Q0prKM*){J~W@L4#w(o?n_NNM1fy<^d+U`RQA-B z!lILTsaXQ|khkO0VBivLK~a>(h;)WEUDUNp0_t}@P?%tnBCnN6%b9M$M?RF;l^ymV zY_7t2GAk4NtvqxuyRHW5k#QLr%a|+L#@5+KCJMS-O;xr_-Ou7iTkLU>zWfQ}%GoKeUCk$9X`&(U0IoN=Eq?PeS zm~kEe&}bIkQ2?PObKcsYe3Br$GCEW~5vZn1BX2&UBJ-7w=ojDFc51c*Y|SFksJz8R ztxozt^YY=G*ahJuF&?Y`tnz=5&)bWm{)3qJkRT1(19z)>#~8P{n-$yUrp!uMLv=+k%PPY$;)(96sw7|MQQ_}b-TQH{ zD`+H-vgd$+J-WZ=3w$MgIr4YtiOnYIGj28l4hN&w4cYkfUgKf<`@aWX`20E+J(jg{ zd)GX$1h3Y`JoEOFbg_piOL;+>#}q$) z8Sr_;S6%D7pFRZ28&5E|_u^1x+k@?AmK*a9u8kV=yQZ%lEoi27Hf8SnEXirN2dv`8;N)r!F}EDnDG;v0{)~M!c0E>S0L3Uej%t> zTWLQhedR$*$I;yTR_o7_wUZ+MgFLmn(zp^v3vA5O+4vko`q_?N3fvr6Xf5lpJ+XDX zd!hGMGbCrW4mJA1wCUZc{OF?Df*huF#ea~CA&KOk!Fmai5rn;FF{votThtTwkr&TTo@3sxpwD04A00*ReVhdCXR{f7$*k*A+C0^Nf&XbC z>(?sR|I5Sk*;}tn8q&UXA?=!`s&qC5)2})>3hEr}enmVs<>=L}Pr53n+%MgzmVG-3 z(~RYEQLnZ#hxhwGyd*uy_lu)k(*OL=497>-!k|9 ztHfPBfeh-y*V;8PBR|%SOFAqm&9Sv6sWI-G*26C&_bE*N{Y5}0_3X*i5PfcHoc@4# zom?cfI|xB_GmVZ?jLqQG^^WN;KdHurEUQjju$FoH>G!u`*v984=l-HneTU0U*q>WR zX}_;UkEzX$KJR@2Z~ePiH~k+(K5=+9IbrqN%Yr{o?rntrcv_k9d890~RidfanY*n+ z5b!98@7{{eUewoUF?cN+aNVdJ2C?Or*+8huv0?N`roLb2Ro zUL;<}4zD}OZ0z&XB zDb$NI@-*fZ?agG$r^hmmaZ2c_vM)~?;3cDXQ2jCpt)F6neu0t(4mDMpTl|9m*#jHKharVM zr84(oY8vBFOFM~bpuykVqbe0AhN$w6IC7)_577RlQg2%NEtyJu{0IAvjjz_H(R>Q7 zk|&?@?>raMN?wdhi@v2I}Z zadm+6`X_I=tR%(|h6OKI_uVfpvQbOQ$-{$N%<@Lb#_YX3qj5EX{jGF=?f!d5_Z4^2 z<_~Wz9+#cSm~N9W_t4<+{;XEr-jbCCus_dV*h_?t()B~BPWa^P#1JDX`8Wmi>0m6b z$0$-Vs&Zj18hnMF@;0G;#8$V8yNoI30B=h}G|$QYd-9(V>y_L~Q0BwP@bQZm_Pr$z zz=y;W4Hc8M15UmP3uXR%r*}gL4dw$B$aS>MwSg12rpT(E(I_Tku6%OhjCo(DsNX^0 zKx+mHt5R`CHb%R~B7vDzb;KOF2pZTJpRycPbrh%vAF&Qx;IM(v;3z^l-u6l8Ne(34 zd=!d|ZKnKOT$FHd(WuX2R^Hg0*ebY*Xv1DUdKN@Ss+k^>af<&#xWFW>IcTKFoLY#2 z*2P7jGS$)WbFY}d%}r0ufvaM+3B1fh@P4HKnZF(~IAq}FVCki% z-bMn}$K!6R)Y-q1+5Z|kD*MKxBOyr$Yz$zy3$t%puZ(r@MCR@HrKI^SfW+2y`OP*U zV1|7B_yt8xpkuH~$mMAY8 ze=6j*5rE@BB9>(X7$z20N4m}C(+p(Z9i_a?MVN4Q1Fhqr1itIqF?29q(a=h_xgDw1 z_)FjD24b?ok9Xs;HIl|%9~95u--Xs$!BtjIJv7PsnAoPrSt-OUyADBh+YvmVbG3)TaHt5ppp$gn0%G@|CE!so}El?H|cD+!VUwiA1?}FpZ1ra`I1E_moIE zNNLfbpHIywA@=Vco9wp{RoE*n_5=ECDeQQ6*kn%FAJGFBay$qaC2>9Pmwe&_gKj%& znzdxFEWd@w06!i~sBT}vJ?CjooPpD`kGWQk1}g%+=8-Y~I$`BWC)YY~%XZ%AjS+~@ zRWg{jk8);ymP#1PJ|$9t;7s>A0FYkT%CgeUErOOLpQPF|LaQVOC8BThK#r{J+`=nL z%J6H(58NVY$$ceDnT-aJ4DoOTGWt|MOt64Iy~}MkPZ57$IQ?_53FrWfqo#8hv<`i; z+5lq(hw)kHm-;T8#?Bj0Eb9CK2iSr_bsc5m+MwjcbAp=!ujdz^I-o&Me7k#btxKL2D2bQD~NYx5dXC#>$8yaiM>==5OhkB+wR+9pcSuemj&McaX@8RFQX6 z?qn8K?cJD(*Gv-FZy!`>j>aePEey9dLf>;o9EU7-#H#(Q>e?-lbLx6bxcInS(~?l& zj=79R{~1p0mxD9nEmWFp{OVU`R=P98T*YU2IqO4a21w|8v_4CNYh)iMjhrhyEwlxk z|J71zf+LQNSnpzeHd%FLZl*=(cDTo@W4L!6kl?q8VM^*D4sSwV?3RF=fRBM@Jr!es z{O~{I)Vmi9VQ+gzcR|FTQ;7IO?8DtkfkT%(i4;6>$v%+c4?KjWshycYF~^^v_Pz#? zuc6SatmztyB#bgXWf0yI+m3`%{e>>|O^#I*u|Bi|ykH;!Gw9;zRsg&)Fx?t0hc%*T zF26doXK9r7cB0EUh-A(@vp81gnaupD%p1G3UyY@%DO1Te-KuV!C8~7&-Z^syMfbk} zOqY;w1vgzs2$3tC%1LAgAnZEL-m^+yC=L-bV`A+utGyOBy9!+qR6OXw(uo0uq5*@O(;M;iA?(Ec^GIdK!%zf z?a?BOt&VYJG^U3;Z%Yhm!E2*)3wUHM*vtFz#aggmje6Cu!b$@C+Bv5-fLnBrdWU-s z|2-XYv{|lrOnuSAWUq`hss%~g+?`XhC-wQCKY#zN|M>KkW(*OGn(dX#S^Y9mBJ&p~ zJH#58X!EOC8lgd(M7-?uBwEx3v`-Hm43p0wOI&?#G|z}If4I?)wVTty%zL@&VH7L( zbXE%hG8?C1!UQKbWZ8)J2=YJ<2?#Yp?hY042R8uk=&Nc=8{Vk&25V^Gs-=oqL6zRGh$*$ z=8}ztgP4V=-|ut&0*}XhZ=d)3^?E*SA##(<`I}Qu>E3`icipWiwwQ7&@J8QJh>QWQ z4}XOATJhsLT7i<}03^w&IeHfjQDU3@BIV|6T$f<^^vjFgiDXu)KXIjL<;S za9v!bN8IdH93Yf>?2@aLYSFcBmePuSvu8Z+#c0>^wk2lXRJ;CPOw=1=@O}f>=RIv9 za-6Ee^Ow>J6v&$c#t9P3f^v>`y1hwf-Xo_t>0Zi?&r$gRQV913@4WHWrRf;{#U7cm zyVqO?i?YKP*`mh0D&g7_n?&t4{*laXHfJQkU)E%Hn?Sa`Jens=Yeepm%^hv!)2P## zu1JqKHV=_{&v+kAmu9QRX+uz{=XL0`%Y2}eaef@!v4m$lFHT~92FGyWmvZ1g0HJo9 zO)1&CvK-Hu!?}rAs!x!~XtAVy50zF2S$kyod%Z*o`>hZxwEj8ZWzzaaP25#hP?(dr zi@-}9K>~!>N@=a9wNx3I;+dK87=h};nT0+~lEgCGklzo_%bVl^)ubfWSt!GGAi?#( z9sp>S`k41qpE&jRQF>v1F9QWcI0rj%W)UiH`|`EzNTr8;{f zIVNi}nO3;EE$U!mnV}MEXXlZKKiJ~YBqq-hbgcHAnHfV&R*BS?_g9iWSuqLcFKKh; zv4#3PL-2QYeM~R@4KlK~Q;o^L2?KHZk~IWhv0Rk3KI_4h${do_y`J3$?!z z^h76$z_+F*h#`fPpNQIFc~!|&>V$hhLh6=niUyo}+=1`g|2>1J~lbvEH&+XjVfxegxk z{a3E`6hAfa&qsbIzE{mqqo_(4o>Cy^g~iOxTQQhJ50)>kcDx?{Gk=D>umotvR#$^n zosfy(f3obLyYGFgePhvQx|sx`N(J84;W2J^tlMShOQ7R+(eVN5o>}VU$GdP;5FVgE zk@$v%r~3(sp#iu{k(Yz|4Ww>RT@V2w+lUF1bVj?7cO3WQ3i{%+h36K|HH@X-U$7D{ zF%*$pjdH9^FzXtp9fNzw=WMHMeYy%Xib7r{%Eow%oxeHj<$qG}ubc7AXkn_;IyI{< zP*AwTh87XFVDqEx$kZRgK+bW}$58e^7Akz|Z?Jxnzm{M`=oi1v8-6zN(X)x_^G_%W zBH*+VfC>7(A(~UA=k}O{|1BsaS^OJ@LLfVX%VrfV!Izk`F@2<>T(O}~91iZDYX+v; zhOi0p=RF^MF`>2)@gILAn89pHs847yi02s?H<~lnOGFa8z};I*l&NX{ zX?T+u0HIIk?dS630961? zXa<}B1b(fY27L^+{6^!kv=#=VP{M`?p5;@rwm0^S%%Zrd)qz3?oWdF);GDDG9+jJ) zs1rh8UYJDtw%F{|?wVSkt<)$uDmNdA+$eFIxa(EP&^#?c2sjkh5C#K?u&T5l|BvDKB`?e1lxYj=1oE6 z+|z7GZjMt^xCM5BY$M@> z(zv=D#Y!-LNo)Npa7JOfeUu1;Su3ka91PBC_Z}D!lc(3Esj<|pOt>s-9o;N|5IeW^ zmIp}$lGpI<{L$?>XR{(nY4_p_>O^_;(x>AP7apPpoXWKx<#4DRlE0I-IipLkSm=XmSDw%0{=yO`jc&c14|1AoGU2Z{8tE3V?(h=zyAJ!15yof z|L`I;mpgggQd@|8vW0YP-48Z-jZ2<*x|sbxNNY-I?jx{4nxgjaBnLldljvv#rz=kV zFXdZo&D&~y{+so98^x3CK@2=T_#-dEiBU#3YMoKcsJT+r+=eJ95fPZsO5;u(=f?cI zH)^0B!BbIony8dGmzdsKN~@hQ2}ewVPf)mYy-KE);kd>BAWs6h6IS(^lFDan`-|lkzz|sr4tm{XCy$E!egkp4+|E#<&K4Os z5|g}e3*TyIhN}*nBLB3mm~t)~{MD;{BZ6UhaEY`sfP<~|#FeCOK1zB7BnS&hxBQWn3mv!9^Sn*j&pQ23Z!g$(y6?gsJV`s;`hPsA*n7QGw!|*Q>LS9q!yWX zPcNOg#<9x_+NbMY&gkR??7&ZXHQe3%caWm^D9O7`@`IteW$)T-tK86E0uQ6Gn)3G>k>nNv1+OFuOMCi8J@BvZ z$b{~n+B<(xZmKL2R80NeQeaGcjn2xU#aHDMLG{VT_eEmXAi^8IdQ-#SPN$egU&`TX z2l_|ZO6;@DiIALn97JEKDSQ7j);bBhiZj*at)Lw!UP`1HcT3-zzk}Cg1g9o_tUR6P z+jRHFSRQFKu1T4c(UVZDMxTy2I3VwDY9I19ij`J$6&v`Pu1-BBo!ocH>v`kbw1}qC zek<^`X7uy;M9E_hzvHJU*I@L@C*J-|-9=lU83BUb6<4Njk&i#_F(#7?LAH3$31VJ~ z2q&|s;Wz7XtI9ytX_@Yi1&@}6Riy2!eCEO4tS;@?9`;-E>%d*^N94uInP_3R=9a8a zz11(q?pt{fFDyYf^Gr+CZ`N5mCfvv#s?C4iIJa0ZGSQGXnXVt+HLZy0yr4gmg{3Rv zE>j-Ut<#?8yn1b7VfN^H!(3v&(=S{AYMS8fH=Ma=)^)o%lUh)tr*Lg_-=5`AAx)jj zO~1o_)f{Zx7=1q8eLd}xQT}I}IGTFmw)3#flS6?|nGSr;WKG+`W}Bx&3d?4_l(ly0 zgDdm|D@eKdB+Z^POqqc7lV@*V*=r`B_gU;)Yh>d_!HaXx^c%8=uFXhI#d^eoarIL? zXDb(e;@5OuvYa;}o~jTsGH2^q{QLf!RTCoEuJJ#73Ca$;Sz`QFKv$7oS-3bdO-qsr zw>~WN@?UWkWqQrbH6w$xr5m=>*CV7?Ux9i^BBkPFnkF~$%gk9h$UA}DB5mlJ^N6$3 zu;suZQ#s^O&aDS2K4N~Vbg>^MZ>RH>uMt|6P>F z9mMupS;4nMb~m)KvVoIvs|xDMgrBM--Ouw23_$+?H5E2@=G_aDRY^9kf3E~{IHS_B zA?n=yHuIHv+3ra(*dB?T;AxnRCRaK{QuaTH zH_m7CQ2&F(2|gi`GD5a4D?6P0C@p0rmRlj2-FNAK5Yt$HRI|hPxvQbqgwvt-1vM1T z3cFi88|=Woh=jRfCJkgXmTav@4np<=GZ)_>rb)zHoa;6 zYf!bN4f^mAKVzFpI3!7ipNScaOjVpPY2D zAN8z<{(dBUZnn7yzIyl1g&)gk>ypR!?S?d;sz%(#KG|WCSaoyme-N3qTP3T-#tNMh z9u^aJ##@v-f8qUzT&1gzulvHAy~F$HDoTP!g~f|UC%Lzv-A0|xvgbBNR!l!+1tmJ+ zUnR+~W%?j=@C$8?IDBV*8=O{sc%OCP`mRXGqTXqn!8^7VFrA);jLn-98+5U~k@8L{ z^qgjG^i;^^KR>n6hq9*O-yS|(^?hZT%J;`2ZZtE$oRs`KWO8u$a&*r<%VSwb+OCxz zZ|ILjMP9q``BsgFeQjuQpYUD5!s@HL-?aw%Eu|Vm{-M446x^<9+R!r21aIE61IL{m^1tXM4Fd{=3b53vaeC6bpteJ2_trwfmPu z7>SE?`StSW(kr=Jc}zqcJ`=b0i6C~rRXZ~3@~*e_D^2yrHiZSTm|MJCQ!9oM{+YLi zl!lDfDv!U%(o&P4!LBh8j#To<$_tF{r-P3xo_yVFgzGZNzh$wz?un0~M$}Sucy2`y z$z;|Z=U`I=g<%-TS8RMnH!X5u;_>13;~iXp@Ko^{w=WCyqj?{OqtF73KNe5+*9;kc z(j_i-bLV{#ide`(@TG(348o}hDMp*gGDy;${<@aCCemQ`b)2`Z^YP zQo)(7{geU@Z_sZ4U_ujd%1C3y`5l+C(d*@&#%7Mvu{fv0h-Gc2S5&{%PdOZ! z_IK^!@jai*$ioz7CVullpLzKi>OHn)HGaR)@pBjL5hCj)$+yR&(*0|@s;zhvnKsyO zVqi74JASN4n?nixY=sh*o4YtfANTGw5)}1{#4LY4zw=36lfDE7TX___i6i%6pYPUO zvX6bE;gr8c<&#q(b>mo++_D47fS+);*)KVos(>4zq_JOpvxEcviq(Mc%;`R$5KHN_ zR-kcj6uTv*K!1}RtiJXQb4qQEo8s!WJwCgHTPd(oKZH-==z1Qz zfIGU*8t9kK9(ya2A%^h7?kp zqI>V7h7|>0REYo~Hi6_<4`3^d!lF}2SKnzLYFKGC zPYlC=(Eu;(WQU^VmF$a;!l3JVySP&M1d?B`CIReZAemi}Kr;iX%rmNeBPejbv5Dh_ zEU+m)x?*rmES;d(-k{c}Uq7x;OJLa__PQ*k3zm{pEl{#A;-=$ zHQDKA(Mn4hW6g<6>IQDTomfN#7%EE%so(}trC2rQX)=qJtqxhqQURd^oC8)gbjwbH zhlFf&WyYB^aTL((f3P@QStRr|!-?kaLyo?F2%JNOa4iWcKx0JR|2$`bv1lzvS6N@M z-%TIYB;&RUP*7U1rwD94w%|_UY71YtxUi|Q*)wMwokWM zz;TZ(OaPP1d_wC*2v`dYX;?@gXaaPo&prk^(_cnvn}-r$=Fg&F+c$;2ztkru0Acjb zdS5PDsmig-5Kf#56QlTBw)E`8;7^$C4m#9rVa%mu{VYiaLsLVGJP8j2->S36xd%^d zfPlS@75L~xZnRsBH&Fqnfnf+bz>b#R0sRXAsWo(|i%=-^_u#`t1p%VPMb~#<0%(E= z*P?vr?&e4#A8iuQSY$9atZw^uqqRGoP>ajmym^26q zY8P?xrI+8ulvASECEGK^shLA)e!-PY*|c#!b3df%_f~}3gKp)=m`%8&KE(9cIIZr? zSSGL$8ct~oBL<3m$JgVxZBJ^L+?cwfmcL)a1;OU_3qQ5Iv7Fz?D0|`ac5lIzti2T- zj#fORz=0u9*aA!=bWQ*%ihM5B-0-|1msR2-2Z+Q2d+DJZ@T3#=39Z%eN$RwaP%9rl zw~4~6V)a5pKZSEhC=}zx!fT6ICt7gS`9qD+M~95X*VSHp)91u}MbU>V)cyz2g-iVp zVo-IZKAQ}uW)1G&cf3k^ z+b}p~HS%DVR@tlg2K^UYMiV#P*4VxDCS!LvrKfVebHvUjw+;^$1CFn-W^Q%EHFtj7h~O?Nv8 zJh210(SNc_0)erwLczFA`+%}Y;DNF6vcCmx=G`#0taW|gx`GX zpo#5Au>BmM9+fx5*x4Eo695d(O!`C4X3Fo`;;Dn@ZBHqqf_Qe8QdaXg7O32dx@OJI zA5|ckf%osBzbaDZyag)-1rk_P3A3^?|C?tL@qM;O@;_iu%coZ9@U`V$Fr)VnLIBA9 zDf3Q(-~hsDl5$Hn9jM(O2s#ZxqP)#lbEb>I;J!hbg{%CYnk|(-MWs#&3dNlvSOoPq z-+pi46tC633VlpPX|vC-hwY0{;G69gf57F_t9IVK7lFufBJJX#xA+v>qBb-bJXhQg z`us{T?-$ZURKobXKsPU~b7!-h$h43zwPpvnDR~G(W_j;E6~v4fETifY2?@hU;lbpw zNaXc8Xo$fa=dteFv&BNeR>~=*i}0*;9(=t7YWk7z(-xwMg;R;Kbu(voXBw>|+sy*$ zv{G8N)G01!IPOrmvCr>8g|x5#39Md9ph2_6SP`vfd3=6WHfnIW_m^^5W;o+B*U8_9sL?}<|@ zw4oz9J1(}^gO4E7o8Ll4Ch{1IoBhl2q>zyXhvgvMn;1(ZWL@RhamG3_39l*v+=0bB z)!L1J+_?FvI$|vl$>&#ZqIswi_H(VP1+IKsxm^|$*iL|_gK(=kgJclq@O924*=hIr zP52u^-P|y}pST76Y%`ThmtHsrou?EDhqZ2~<2cN{f zxFiWkFS0g8%ZW@8peu((2rq}BNw{94Bl7U2g&qRSx{lb2$Jpz^t=a?ku=t5)(i5Rr z(=;OkcC2>}M%Q7fi{VNjp9__C2gItwj<|xnjBe^Hu4i)OEJ;F0?goNv=fJR!wS}ll zg-bh z{7eKl@e||<#5bN5>i7EC338wM(XX4nVkT=6@*B0_R)JW-7n!XfF^LwH&%jNTLcifg zSOYuZGM09mh2qe3jsu}MQ|I6cF7%MM>1W9!gcmFL8yXC z$I=T#-f-a^iE=5@oW^-mKMo*lR2{{}70)6YJ14saL{)?D>e|S^#0CP{BV<+; zprTu}nI0x(ia%h1mlA38;oNtpOgtw^d%*X!82s-W6@(uXIF=q7g4~yXwh%`h5bfZAJmJ6IT~K-pGUu;`U^c%+NB_U< z&w#dzLfGHB{q_4?q9WEb=v5%IdvbDlpG|apb2VnJeB<_KY2<#J63a%xCw1>?JX0-m zM-*?~@5KkPtV}$h)JbUsUkZ)sRRQ&msVGWf-{Eu#-bAUzjVYNJz;W>GoVG-O+tH># z)0~MptIg1iQoiP7>$dfz6t7eV;UD(}0_i{Hop!SU;2Cm3#tLMGE-LWKDvrb{w%tmC z{AbO0G8y?7wTOMG-D%Ys#Y3jabHohka0WIt zQ5%pTxD@Z}7k=8=UvXPZzpzCjeCg&Tg70oUA=F`e_j`jq-$Qu?{=`Zd2{=hN%WCWc zAifN>_~`}1WfWUI08S4n1XksVT8w#pU&|1+#ZSszs_Tyn%6f}&qZMJH>>&t;wKvlA2EpX;d2 z@wyDB;^_`96 z_l2vpfzER1Q5F-ISi+s&(dq&Nr&i`UqdN%5pMM7){m>@a5x%^P8CEH99T1X_P>H?s zez8l0H&NWB5XOU+KA>v=kR{}l%_K6_R0e0mZlBsmrji|V(3P~7Ifc+`L9BkD%_U0m z0OjvvVV_RSS?3$BYbfTmE0H%KQyg}`@WiQy*&segNx()A!y(euemuAg4?egnQ2qf1 zqL6uw=yef^kZ89m?HEEUPK87gYi064iP#Z&JHZT|Fp5240~pK5dWW0<&Jh(=)F6GX+#L&qc!1MiA$ zUAq+YC)H$$AGYXYvpNzOpr>Ed_{!ze1I0H=PgKt%$e;I zZ+qag#j-G9e-OzUsD5$XLYqjl-Ju#7=VRd7zf;MwH<7$xtD>b&ScebM-%OY|fhDs0 zn?t0IRu6kGIw0|h&qsm7;vG3}ko_*L5;sVrjr+ZNFC5)Vq;aYsm>uGb4wT{_zqDiq zoWI^!0S}0-1Qgk4s&=t~_5i$Ujf=a#P_R;d!`N3_-S_-CR>EgvCRy1b;lh zP@t0c?GiNX{gAxfAE^$+`CJuH{Ra zvznz@U6#9+3JZptUXF(A9y;!rco#-_tGnmEO9eb5VkjDa{kHt$-2LIIFYW!Ow=Gv{ zEC=iB$Fd(R!8w8&ax;GG3Iomz@*(xYc%Eq+B5R24|)N`H8e8f9WgB=3_kdI+$VtgYr%!{<=cLHgHW;aA5Xoo!S{ikXfHmJ(ZVz4)tSdQTYf z9jydOH~hdD{8@QC=$5dw$sA1RrCVN2p`N|tirD?S68w#p({zno)OO{3@CI66F?1lo z{lVsEyOaAKWY71uIb&}ZxtDJyHeg&K_8UVzwyIwPv%{0^Bm&EZ8yP0*eg`*lj=Aqx zj_WfY&v@GY`_~IwC(fNGwo??`T7z#A)Op@O{f=|$oQ;gfx-uJrNd`akuhiQFs zY8t7FIdS<$>qV77wp1ji3UAW5Lc8@OHYz)mu+wwXMY|%}rme;0+dW@l9Af}1@(e1Z zVlu7|wW`ex_vS?#j{U7wl!}^tB{)fZ=yNwLJgts5>wdrN`$V%p@8h~m*MKDo4t9Zk z!~cVzwion+_S(XN{4T$aqQZaOH95)v;#-SFf2OR4jr)Gj3N$%SO>% z>6dUHz<~OCtRB(x%a&17APf}b*`IHa^TqS&C~-U)LVTp?KlWbz9}_n`S0ztYV{TvwWMJ8my04kC~lcUFaFt$33I z_Z?hgdu!d@0_sW3INt>daUtswT++aSmhkGE%SDZ14*Cs(%7gx07yCwjUhPt= zr+oQQL#l2jstY-}7{M5?$GlB%yV4U8p?aR^o7VYAqb9y#)x`Ucy4wX)pPSV$xH9{F zBxB~!3|}JN-mK*t>QU@)dkvR+jgXNYz6|g&0{weY^L4|Y+-H;uv0d~U4fbHc`EY1E zf~w3PD9^*gGNJ^Ypb}N{?cO*N`VFhNm1sSdG3uKC=2(`FHgWqS&ML?U|1hPX+6>Nt zmAKqN!O9Ww^L{mwUnlE`+@%H5v8|9Tok4#bO6>D4_S&+b&>vU0FHpsYDnJkErOYUK zza0`Ip=POX2kk+jlw-(Ujr{l6mgknv)DU-!4=$JH$WHA!J2&jAIIdn%TCZFmhHz5M;+N1f?kfO4*8Pk@yGuRi)#+|d@Yv%&6{jJZgBIcrL!3I z%bOyNEnF6xZ$GwsRM+iI40rn@(c8F|S-3rK^(J%23&$Pyrxt%ZOXQdpg&tt^SuI#n ztpn9@P33~hU-h!ZcYLoHH!s)eY&TtsUw=hc&bK{SDd)P`s9`ucVj}pQ8_{{eDw4ay zZvn4mJQmWv*;x52;m+vLhbn!xg~NlbPtQH4rPb}n0mN>6qVYi69WV3iD0FgJzQxS- zBM7>jH~mO~5h5!;b%Qc}I9^lKv~6U2w(3gc>!Zxa@G-ZmGsnpVeGPXP^*eeRIbt|p zN`4p#>TLBBK&|fXimiG73)(&;`|%%wV;#FIPqB{RA-&=Bo5o+=47}uXN6xhS-CfDQUnch=p+(lCN!^J(uRMML2aa@!Q|&M^-;C@RwoCT? ztAN<(!J24PnZI=-1QEPP)7;d~h<1y-@7{Z_qMj=f`N)tbFOZEDwnd|8v8|vU-;` ztCVz;*_@1WwWeFjGINh}S2Zuwedmv_-g>XBWO5`j_UJRCxNL{b%eW@RpXPsVjhQIM zj+IJy)v*xo>aVLH$&0(Qi1B>fM*KDD++a1oq`(We^=29ck(wuZR*WvJU(5Y1UjL=_ z3{EuAvVp!@BI6T;ni61c&HfJ}^mq81REtdUdY8Riu+~-dPfO93TkqQrAl>i>3g2nm zon$JX+mv+PeJHWu#7)CCWQ?kUv$Cv`zoRW)u~ZAIP~hly`MxF=HE-)wH?$boxu4JC z4yA3q-pganHcCBe?|$04ZaRVNe6(cDr?2={p?7p&5FXCuHYwdBuJ5Nbx->l0^~Nbx zO;#Oy;$eV^+I7pUXAmvW+kJ4n15L9%uBD-IuX+~FX+bIG&2}ig*>7%+u{R}@Kr(gN z04GE^$5FY%^`T@3GTdtZl@Qb0@zF}7S0FX+ac1G^+}TRa z@0m_*2xQX}O?i{%{+$^HA>*_d`zrzIpYf^<<UsT%pT+2mIrcNF zAtylDQ5~|CvYW9?w$}_H5rU8I7|?ksW@->i7$_=4jU}=v<*ys2OdX>JTUmc3j57$3 z1|P_j0`Q^ezKIPDnYVQ|KpbxO3l4L*G(SllNLhkI@qa&LJs3&AwkD4!0 ztDTjH+EvKQy%@xY@8%Gitx)KxERgad1=|W;+M(TtTDBq0_@H-40}e7D3-kO<1<`Rv z@&zt$+wV*3cYgF|e?ykhl#KX~2>~2sdQ3PXywC=}O9%o&!8Ph!u4$}cr6hsFFNd#P z?+J(ZA3?{0a#xXRLxAtr_?(MKoCGr<^-ec#_8{DMqy(~0xUTFP&Q|hJk|Es@M8JJ7 z06xrS`RGG%P!2;1q3u4i;|0jsCrg~_7{X9kCM}BBV%i&^5Ua3OD1qip=xEt-{Uc3^@Mt*S=cT@XlI;4c&MGfL`mmqO$%G=^d`d60wv`&@Va2Ya^U8rxBn^( z4%ocf!$jl$BKz}W?4Oog>M3X;`jQu}2&ovS+%6OOiJh|}=6|;0y()Wt^dW?rF%5K` zdAF2-h~(yuQxTq)xRL!ch6s_Zp%7EkX3SRlqt`b3qZ^s)ugqlX3Us5{83f2 z8RtRIljGLY&R_zq<8XQQTXHtjP_5KOy+ODJiiAu*wYa1tedRt6u@lV6x2Jm=eC0ae z1V>|#4Ft*ExPLyN+UF+qBwx2))(VaK%_=^Lu{T_}Sgp`FrNF7a*&yyi?-t^bu5KUu z!r)(zTVov9tNP%ZkpS5Ux`OpcAy|`w;$$QaE1%87uQ5uaKT!WHyZhN$fix-KO!myb zOcEE&;m##~c8|ePk_<8ms&OQBs~%tPOsi$H9i1U0`-x6JO<-i`pik%>j#g^RKdt3< zUq!|q0fu^Y*Lz;Uh#Ye7<&>X!S4XPM%J*{tI908fVNUvE$um3nOy!j!LxALYmn?he+ zsf!y5)+?C8@<4Lcdr>N45sm9uv_B;0C`STrnZn&Wzoc~HChi4P9G|QP>Xd?fwr}|- ztJ=6mSAb}bL+AvG&CCa5F@8UK5)+fx^<4U3Z7`Cp3YDQYQ3MLH&G$tPE_`Jl2*2Ro!|98$dPAJRihvHG*odz2t%w8`uqg!>GeHLWU|?z zqDC(>o0Xvq!W)rfvrqRi<}Z3qt)c>`^$S;m6Q1jiG!{x+e#_;M*?dY6^}|!TyI=aI zTnA$KsZ5|oyMinOz^tHl@9#Qc55|FPI)n&E#KS;q>&N(VF&wWfyWt=1%nZN!e&by4_JUk%L6OaE}XrE zLVjtS1|d1n5>2an(DB*~MTfH-^68-!3O{YJuw=LAcIFIVn#nt)TECxxn)hq<-ihX> z7oT@y9tA|~biW1<=-XeNgxQ3vx6?u;P-tGo^ZMW-YAufS$A5x8w)#`dSx@2lE^jfF zKmR&3xaB?+hADnPZx=mA^~^wSg5M8uM}wvHPa;by4n4P*NA%Q>*GirQqN$|d{R%WYzb|YRjTiL9 zkvGDu*N{$YStj~|qZTi5j!~*N0^R;w*O{rDpQi$7qC(_fZ~=3oS5Jr9kRTBioKE zMIwh>M6&0lkqI}xhEUTt3X$GRT=3`>iAz$&FAOJ`aShyOpIv?%S~-$l_fT!tI0aDq z>x8aLnG3(#>U?w<^+6iv0EWc7q|6W$e6X1@VI54ti=dqZn(awv6jZq7%<41c8Wg5N zq=QceiIkqo2*kpvskaef^R~L5g&qWz`c-OqMZ(hm%&~Vn)ZgHe!xEV80D|X?VcoiXNwkWfZ^i9xu zzOMmTK*$l5lWGTPu(+6>M6^YkfkLV= zt06@2>gerI0eXA&rOj+{M76&eaa?z!|AG$@IEf%O9_tHfAHzx{dndENb%L5ok0A^g z?Pyf_b5p2FS9|LoF5Qno%#6BI-UrA9WNRhPD(yd}vXF}V#yozufNs}3a3opTpyrD5 z4C6c~y9&z)0UYVmy%7q6+1!R5r_!-JM3pVHo7})(Hj`^RDmFt0veCP$t3tf8{c(*u zt;AM(tvZg#5tUj9!#5J0Edn&LCar55vmT?q;1%)vLdX=!+JkJ?#l|t_%w(^(GZfz? z4rkp6mg4a5^c`zjl~9)uJT>!jf^sy#)gk%u;2tt48aq58jZX1Q1YWAdbZ>^B@Vy+h z8WUo+_bfdA0SY##r(;Dp*k=zAnlKA-lq*S^W4muA(oxEYwk8DYncWMhY~%%poYj|y zPzwcDyk*RwC(_IM`=$Ftcl(4D?v^l067j`!fsIN{k1z?uEGnUgS7?9EVkM?>z#K>e z%*MY(kk#9w&=hZ1Fry-$REWwpnv>DI~1}e z5y%Y-(WyyCTgWB;IZ0U{_OtlYCoRGS1VYa74jy8q#LS=^W$I)mbHLD;O8NlFvhfKM zhG9ZKq~@r|9m-T{!P$AZZkH)|8!nseJuYLi0yhAoNa%faQ4agd%%+b5k;=C_KYmU! zy);faoup) zC8_B)S}<>`{bG|FxP5H&HU5F)dAs4|iFjyc_K5<3&o*o1@;kA;>SH_G`$FiPvrjft zr}Z6(&x$bbt9SrfEkp4{R$YPWUtD2&?wKzMC=@(skI-P@m>#V9=(2I2BY)T)pn zVLwI}793tjf4UUL!2qHuagq2+DHn#M`Kjb5)?5j>7l&PF%IQ70qWI$6%7WP*$IGoN zFa^HtzT_oyGcL>kUOzTbrP>tPZI@-(!-_pT7Yy7?|;hdsU@=q>H-@& z?M=0NMRsX5OZk0({=hEzJ&*96fl(q63I&~U|IE~83_l~sQ`4IZ&QXa{p!Jbu=0t04 ztrLli2ID1L( zxkguuucC`TlqF+-xq6(e(eStG5S9}#kW-O7e&K7`pt{=~^L|&Dtv5Z(z+r8ql%g+)bN&y9S= zTH^OVK<}eJa!o@(cd}W{$}?0hAmlEl@M1$I@@9;{+uPB@Y=8WlJUJAz%0x@f2gRvr zK~3H00Hc>TjE;Ei3O8;GCw%Y3eHk z_Q+BxK1ruZz0Af1$Ag!3lR5-?lBt(dIU^JUp_S#JCvQU|%kGN+f#zz={M)$;K1+;c z8^3~Z18v10JGOD2Rw7~C*|PNM9b=ckY*hkxIDoqkNP71$&dO(SD4L?r*%l8ow+jLW zqd&qD>9GW7^C94u_ufda>v-N8>n8#Idzfss=LSii0iy~^4~j(7Q3uT2p=MqXV3D)@ z=F@jUhz3r-Wno-Vdc}f`?18R6{QMsCU-#LkBbL)2bs+OHI&cqoMZ$?>JBuvrgc0@NkvL_DWTRtf z=v6(hgOaGj%(KN*uA9@x1DzLVXbBW6K@I&MsY^NuIuTMYHi8_e>NMK=$CH{MT;tGptmI?Bx%v}BDTPAuec~_-wqoCypQEur zPu9BO0MmV^P=;|l%9IeNQH`q;2zt+Hv+jV<;pI#9k~#qC|EN?Vunt^oC-7`zL9d7; z2%Eb5)#zjavb(6dUI8A`7JF34hp452Bcb&6-YcK6i}63LZ+EDzO6kUu#4@8$R2}JW zFQqlbUhklL59b|`qH=&76Mio-9q7R=F3?&w)t(>pCVh}&a#HWOc*`Bm zXo0u}?8{2r{Ea{8mIIho{idw2h{=S9VVF!0<(N9{Ur_UQw>l41x)4x^ij&yK(oCDzx< zM%0ryNPpOhdGw9s}Wh2ze;&lB8F< z0ge>qbS`i+1xBm;o)l}YPt9N({;2NZWt-lrA%rpL_POVApfV-0@$Zj>z7r_=e| z?b_Js9DIMMo%M~h_5z$_LLsjLJ(~;vQhoUWRAKgIm@@S1rJ_gKSm@@HsXJ@E!R|U6 zBV}_Pqt)%-bS^dgz4*pRPrWBc{ofQ8@xWOBTAIE4>$;uau5&6}ejF#SNPpU6@_w9l z^^vPDluX_nVVdp(OOkwD%lP{F1jACV=UcnMk0!)e{MLM^^V*w3Dcknw%A%`rr}s&& zw!zqlpw8A>jj7KgN~|&^tIYz`lMp+%#4jekqsq>aW53b|10vqJS{#sqQUY-9h!y!? z&B?PfRd?_r%U>jM*DY&M3)e9I?ywb?2i3Nn6%|cQKgTje?#$7QhoWrJ_+)JIAp~Y& zO`|D(wHfAAx!m*9#6a=W#B@QQFUkg254bniINJWsNzW&@JP^rfzH~S1^tTVURs0NYvvofIK^^G!S3a~> z?ld#DTC?nC_q`!5vV+$W{CoM+7~qb(iKq01H|-tQ64x8th0D5EnsKFh#UksvthK_6 z*T*`QuC??@+eQAlCFZix{8l?*{k#vU@ED`h5`n1S?2TMpPOHhMg|YJUJ7>-qa$`+- zRbIB!Vk!BbK8WHP;zrNMEQFm6(+z!mnze1a5_^jyGy2{W61&NB$ib{Ig#~{v(ifEX zRjbM9T+_6J$XBMcuE1;L3v^Y0VV(F_?{Qc~t-?WPc<|M9Q%0o&(Y#D8%)sPW>t^nf z@D6DWosh-Nzu6Xd_pxnSPcs^xCp@eJdUL&=))yG z2HZBWrIlV3Zu7U1NIz9RjQ6|tmgwMQL$^|Sf_E560ylvHUm|9f0ztItl{>Z(yai_XRce`&zMacELfG}HZU zgb5bECXl)A*?e{8x$R{}iIdBu=IjKo-~T`id&^h!GUdhv&bG{jhEUn%_ZLbt?S7Z^ zqi@}2O?ID7l&!2uS-e#3+2VEY$?*P~Ic>A%`+Fy^$6(u%p`w=ha+|>xm+wE-Gj`|j z@4rv=bR2twspWerV#UA~&$;B;^}8_U3`lU*9s<`=yk`A4{N{JJi0>Vz@+Sb9=jmzikvE29V1O=!SO$u>LDfg2uJzr9{nqINvtp~5ne$N!o47x z5hJR~($)2~Ixu)eC4j!wUYDA0A>DU7;I~d|83aQqHv1pRnza5x*owxj9>r|?P_@f-E7n=9Mr`>3;?Z^ zCtCS*0ZufPKw1~q(<)8}@eL?%S!f)8`(u4>%egzVx3s)6fXQO0U_)1y5FHP4d!M(x zkQEi6qNa3wjxx9ZOwUD0An8|}eL?zeCopHKe7YIX&V7!T4ldxk!HH?9U$xr62@YnR zFbj8Znf`sa4a5r=a~PU?+acVSKc9yMyca&O^O5{}S+QHlHGUHsu3Ga~KMnI4+A1pg`lznsxkSFHbJwNHxyxZDyXD(VcyJHww&C2tfU8Vj5fwK4T31`s#YysWPgbD5X+Gm|OUk(Zc2F4X- zX0krdd}g>#z=(H6-U-uQ>zerOwdt65ynz}O2s4OUz;?Ay#Udo81lA}|O9B|nm8 zj%etHjg3xVUgQqV_9ipUtJ0DuYb{r*xdpUv=2d7OA%00IceSz1u`~Yvf993E4h!y{ zp&0G>o(XA5+gO zwwu+S+RQ$}sC!D+2BhSVln4VZQ`c7hoUw-rj*_4J1JOUk_ds;)L6?_DvyV>AZdpde z{Z$l~WaZa4U{e!$+RQcmC@-u9?dM?&g)#?rp5N$mnK`+gDtD0~PYdD_Qu3=+QBe_P zzWUMTQ+DgxgC%~Z{Cf)tMFKwYk=R%L!x6S>&yM0HPSdwrAJc{Y14*^2(RMZ--R)4E zohb}f8^1&vRD+kP@=tfcV<+TNOwQpo9cr%P(2DEY)+rYbgdS{nw0NSv}|SmvSsegjBxeSYPU>MmR|}uJ?{oaZ;gI! zcU?8*w-NOO_BLO{dusM8rT^iHkm{pu28{B~5Q^^{7MK)$JTAR{ArIsBCc$)?OS zuaBwCWzBMV03&eEs_-2;SFe5cja6Jz)sZ>tJZ3y?o+S-cq5BJ46*TR0J=P3T2F+E? z@hi7}!R549i?@-@EMl2A-uF|z$62e4c1nKj|8pj#R5ImnIv3GpNu}hs3g)lHmS;u~ z3uzhmu>vMblG4@#FIz3;9-~&JgK#)}5T?~pptjb-yj)l9`^uUjj6=r5L$w{{nt`F; z)(|2A)H@VeSFDQeTZnI9`Q63?;d!oUhcpe_hl#0)-no@+%h^7Z;I5JIYwp1g%4Fsq z?QZGV3tCEZyR?6xvB#UeQhU64a%V2QdKUwq+^pF~`ZZ)RpdkVD!^II;9-y|2Ikri8 z*tj{9>!A}glq%@UsuruVlK;iD*DiF#*4MYg`HQJzzl&z7v3Zuy00pIbpJW*ktw#&dAX{(YKym5G0=G~;sUu2 zvKnK)7HTeT&g47xi9ZYI{{I6VRasrJ%)Rh|MmW*!6z#Pfj#&y~2?;%w)~_aeyL@mx zLk&x83)LsrA9oE6e%W9-aT@z?-vqZ?>1Co*|64h+>`8~+Xxa614{r!0f$jP=t!lSK zyV+#^ba^TKSDd2w{l8m5{104bVG_4^uQ&UlQI*8xisa!k#=T{d7;r}U{iO_*V0Jr* zYt#9Uq9Wf+&2~yzJ^oVyjkkTj)Kj_hDrcGyxxuOX0a_2&oUwP-^yF&nV{Yq_J=M3b z+y7eTUzE8n7gh1xO4@5g>mR5s?UGbo?dO?*)JdSs#A@)hvG!{=_nxrp40?>|Mi)Vm z7sLf!QB$J~HcD@mV_Iyg+!YvkQY4mGfDRLDXFcsg@^33A&Ylw0rgv7QGik*b*H-*} zLO(RrZ}rIBZ_Z}IrHhZJ&Zfp$(@Inq!eOhy4QKDiuAQMyY9}~z&j&PWnLRzUZQWaK zExD@78twQfOXM{IuH39`5FDZQw7`3Q(*otGaADI3^F>+epx2D8NM58mOl9-+U+N1( zJG=MOtv3$UA7yknY3a01@5fOi4aBBT__uc2C&rETf1y1THZ-_V)M4|b=likc9<@3G z5B?JlYf+%^VJ%4OP3(rHHrvS*WQt%qBRq@G zKhD$(5E1t<2VV3R0FGTk-*bv};m3mdi})s>9N6LvQ8ppeEfzDZ-}zy?-enD#^Bl29 zCTrLB;Os;`5rLO%tpO6vubiF+oF8)9+d3 zZ!CFP8)PxWQ)`O|~+EnTB} zPUlrzbzX5_^-pbx@*MLP`vMU6aEwddBD+tz>7^NHTbSC(9O z9#RJalZucz=kYfXflsZQ+#DIGLau-)2Dj%a@nV)%eBy5C${f-V)3)vk;ckaT5$E4& zX7xIC(N4vTp4^t${!d^X4n#(EI4p>v)BSEMtsg47O^7toIZ@5$f9J}u=7NAU?+agZ z^$v(jG{*&r>=yy+h|qsx30txFlyAEoJpA0`96;L~8%;J)-QfD|3SQ>29XBR*4Bqvk z5Qw&?zHauuSMUHmSJd^V4ibTAQmzm^bYugmgbY7P=-46dWY&5^y^3b>q765_E!dNR zcC+=|IoqpZ*`XsrRrsL8`n_U*P(BGu(ie!*5sdpQ2L`i7>mUf^4c*H687WNIwEN&B zrx0kj^+e?B^!@FOwoY^o^YZoZ$DdSW+$z1q!2n^|e6flm`0{Bu)-X#?@q56^O>m`S zO9bGIiA#z7T7-%QuvTzs5DjSly#u!boHQ`s^s{7AJ$C_{3zC-=H8i1e*w)W#Wqi*j zP*MYc*A76g#0r8@zUVc~%mOovxb0TLemR8;*c~H_#5IGADJ_;DI8Pb@2zI@&+UR18E>HBj;S91AtlT>ug^*XiR?kHjFiZg^DC}&Wg{p6pGE*+bVhG?W@{d8 zn?n|r6OnQWY!%8;D3U8(qYhVS2X^>q9`6{|1u3;qG)}RW9?dl5A1e$3jGK985gDdc z>!Kb4R_9>2Q><r$= zxXVL2mU|a&@*ScesCF9uHBvBEZJwJ95GeB#CWXCqR@^(JJdxsoe~ZX;6|?b9RYclu z4s!+ouJ$$1k$;>c4#4UBuGb(UIXl~vv$N!l0c-}g4(Qme84{LE;k1ow%}r98n#?F# z056$CWWu!B-j(h)R3HkEUdSx_NsptUjz&@^4AWuBE27YZX$>woU;b{+dE*dAQW4JG z5gRW<8%Yp|B%vkxWnU$Gj+63(T}C50xQd<4REaw}gB4_c$|2B88Eh|Be7~45OsXdX za8nQb`Z@$l&=GdF{fUG*CuvQ_0sS8lQ%1ztP7c$B#eUHDoh+X81`VxJR zkRULkV)#6xg{Bx|yv1xK)gdutdCtwBl&6*r5_Q-eU+id}l!L%c-uexl3or0tiB?0c z?ZNm!2cv3G%o|E^p4U}(-1t)D^#Ir$F=jt5FUYQ14cXl%)>>M}0`RTqrYoeQ+w0}P zTuE1^uzj*VPD15PdO!Ywe5zvl*~ZFThH`S=&>+t|cXakJ-DZL7m`0}v_SM*_6sq7A$D@c%YGam<0V!uOC8`Q8@s zSfDL?p1U3Y;ZTt(CnSbmJl^j32NK2W8V;8MaW%M<$YDCnB^A*GQejjJ0Vvjj83UI< zf62=R(tM8-G4m?RxKcs!jH3tiPkqM~7l5z_n&{g~^wRqUM$oemikl}X6i zo@pFBKYr4l6udA%2Nkyf@>&;C9=*-?4WX4=3e|?yiBM{NFx#IF0gD2t)0g_x8v}f6 zr#dP_qkSmu6&1HPZb1|m2DzdP02VMH!i<*apGBfhsWSzy%(a7%&&15j-qE2pc+MAz6eNARkgfsmBc{!3YnkD(zpBinel?+?1t-(Ys59Xx*5k zu$6cZ-vB-X*}CDabM`u1ZIoZ?>{S)kV2a_)JGX~%ph)cUXqFg(uY<<@{o02enkbS6 zs9&wn6yXXLfaCbXp#K7UDzq$kd!sDy8niNBw*)DA|Gqmn9DuP?Ro4~fbutnWqt5w2ly)IVg%TVZ`gw@t{yqzD z;<&JbLH9Gda6{t<7~VjTKxv=!Oc~}9GdzM(3sfgC0K zZ$iCQhrxypU`(&hMogawIFR?zU|!tecZjjb#pA|HA(wo`Wbbe)*9j$0Win0#Fdt`I zzUj<8AgJAvE8&A)ki}Jl+18QtG!*U1?~WHy*;d0_T41Jx4wjt3^ww_i@O;4fIWK6w z1jPlZhh2c@vM~_YdQ)fVp3Iivl(TfQ0f1 z!etZ|w0gfX1>ry=au#3OssA#!18^*c&AW|>)aWo#O(B#^5qyX{Sal4JYYHmd^{hXv zBm*vqN0B)KE`*f`rL+ZbdPO%a#)N8bE)fs>c!|8fVzt6t!Tn$auZA4SGP%x0Wm&_p zdvztu?Rz9?VXsfF>_&HodUhitulv2%^wDTUeLl041_DxC6cdBPsJMUB^(5Q__Z<7l zi?(0Bo17h7-U5>b?k^t~oGjKU#+mlw1)rkoZF1K|R_Q{=L6s{$qaRACj*xhl;$qDK zJEGq@@b3pZUopb{R933Cy1h=1h874YIu_Z9T$e6b%+y})igJZBh{)_xFE_dv*B_>n zuNYbkCGBRtv;rS2<*q9xCO%;eKP={yLpeHC;oTYRSuit*Xtz~q;|BN=d;8ZSp&t#!?0Bj)m$s6<8?HSS01!(f2-jSY# ziO94%#vdj3A$o&}*~U5$B4O&JOAay|oLo!4a6~{4XIlZ7+8I71UlFqCn}8oYp@ZZq zSctCPBLj#OPZ)txBv;w2ZBynpE21U-H-btq?)vX$fTM;N@r7E6ruv%z+ zF0MBh?%AN0(I@Zi+m15*`vM}g1s|rn4om4|g=T8>$SZiZL8gX(d~2j4)b3kQPXlih z#Q%Z2s4hi6yA;bWqPp-3Z4ALpV~UGI`&)Nr28*8GAukk{STrw5p*EBZS3 zuTBrJug=6=zZ@O1?W2DAy$UO8+vhG8kizd=)&@+~L%xhC7nR@OSSgDIAU-xc+LJ>q z1Q&XV*H89i$vHZ~#r>?n8qD$Qg*iyJ@qV zenhjX*5|lz-ALcYH38;|z8|2^8r>=v0bmitYrPQ2;n7Av)Ep=pR#)!Hb2ZwHklW^B zhyx72su%b$;n@3=>Sy&I82#H`r%d;wi%diuKRicxk8Si6_KJ6=DHJ!$OZCzhWgu7Apxur zgh=$&R;0<5wc>RnOHypQ#+FUtjZ>4lzDh@c9~FJJ1#qwdmq?zt0UVC^IeMjTr8^E} zPuh^k4WohynRRQ7FM|u*U=0^ixnG=@u$4yTE0Sv+*fCeG1i~(o{5MOpjZO1}yqIo- zyX1ZW42n7c9n9BzJF}NpJT_eX$C7Avy6A+5ld4jNNyxf5ve4>GIHF8(F4E)n8SOblJ3xGyl`ZCyc!Z z-cOs2w5{t459ja+#69R}rUiczpT_&IoW4P1;9}FY5`21S1GLfTx%gC78V3yiY+{P| zS8nrJVj94Dzt~zS_`bVSdT%L{Oo5Vofy8Bg?B5)4mJ0$z(78ZN?GMT1Pp*lg*z0S) z#b4rbQCtSlz@}J=!NLz(05^qO9_C205r9xs+_;Yw)vN~SOMSS_=&7XLc5kE;1zIXi zHfxW@yf0L}!e&AEe`w5JIr7m4J88k>LtE@1qX1ASE$G*P)5=GS65?Zo>o+n%DbZ}< z&DFgZo1!Rkqi=HCgr+iaNc3?RaSw#;5uhF@l^UBRv>rt7~|DVs1TnLpNjQD#U_=2B` zyRf|m6v)=Rt>qT($EHqCM8eT&>onNj^#X09mc-x>+;1)!7zE0R1496G4nw^(Rbb77 zq#az`^rQA1bx0l+Z#73ufqV67RG*t}0B&ty=btz!Dc@j%am7@T07*?L_NR#ed}kO} z!*bB2BJ zrn_%$92J=EOKAml0|W^Mvpdo;*;%ERW3toY{q{>3bT^Ho1LfMejwinWj*`kqa|Vq) zxlVdE4HaK+w{DBD*$%?!n{r>}ZH=7syqH-sw77c}9jjtaJQ|*4I{h^jjV7zUky9r| zV@ZrCQ+Vq$gn1XQ(h%(JIEWNHlFRlh4OHtDJZ#jJn5CjYDSf~Qd(Oosdp7DS?o*BT z#oWjVO7R7}+(!B?HmiSAduKv>xdY)+XR)M@7ZvIqe_8mg1bsX{^%PIZpz#JWd@&cB zXMJ_e`7MMUP;<{+wMCW-9lSV3|30!;daJ=CA|T~+`lOaA@|y$V`~8b8LZoKNSU%JU z9IujSeelA;{!>uehxnpm0q4f=^UyVJr~LJYlEa|vklqFAvW?6M`t;*1c@g27K{GUe z_G|=e?uIpb9>WvZ@a+j=LO#yn;(n?^tI)vF*l%tOXtcy_e$i>Nc zf&J{4v!CzD9F9&{7uUBchvwF?leBqPI~w)38s?#|Zv+rbQ-41G9L0l8)Sqdla`d+q zML*}yZFSyTHZ$T95Z{hx;18tkln-ojbDF1V4HuW2m#7Ny5SJ8}t+D=psx{@S>l<8B zA6lC^FTVX`alA0{{v+qDnJfH(Y!Tu^$zy!bCO|v$aT3b9lGc)cc9ro$>M_brBmhwOm0Bo*i4>t>0TGFxE zcN7N5YzI*yIvZOaA0+q`_m8o=<9jsd<%+;zk-x<ciU1{9agNK5RQon`SA@h3k7OKC$~A25$o|6dEA^er!l^e|pR1?S3|Wgxa#z@v3-( zdc8#KVFr2kXoPz&$U@rfyWI=5U+CdV_j6N6E9APKZUdDd*a&w`_4Z@EJnvsxGc^R^ zUvGHJFsKFKVd9c?L*|1ld8sPJSW~b0sERD)!IK7JV?|+278}HKfa9LAUNj>0PH3-F zER~oz_;JFG&8pk*!9%M%CvI0xP<)MMmSN8^P^Ri7*qf_30fq!r+pGh zkr@9_3~vC*4!znd6`EUu^;cBuEW{>(d;=9BNZ!?VLuYJmUj=!;bZ@7AuS$aE_8egk z&rIj$1M?*EB&|b^++9S6bM{;k+-5)xnZhJpe|v|io;=0w(mv&1R5Z6u1u5sMNc@@K zpU?akjg;*_=30nQxyk=PduC0E(Q7$zkMj{?_>bwJQ?*mSor5yj{OSVEe;`O^p(@c| zo3N~QVdLSmiivl{&|c(}wl@$_Qlr)uok+ze`Cl@@cXZ(z&p4L1ev_e$^r0~RGc|#&#-PYED@&>yxg@ZZSOl zv*S+nk@5E={Qk?C>2aU4@9rg459aK@O(kgC+9?;;H<$Z2wZfFlLbQXL@}C5NPU`)k zIF;Yq2vHp<9K7Q~G^hV?-(ZbsRAOZCXQrAoI<3|9%V4U?Wr$Q0tO8htjA`9{b&kbc zD*r&GzCB}3>E9UPQBm=mDk8V1uV-*PG(b9xMJt&gxsm#BV$hcfRKZ=a;_~`3DLmxoP(GlywI5?BKCD21#elMeGmbZ@~}R zx!=+yHfq~^m%o0{{B6u#&q6G0?Vy!{3KQ#_c+~Vx|5!&wgO)s+bz1aaz0sg_SC3DU zG-dl-K||7ES+H;5yEgI-qk6C5-;IXM->j8Wxx@1vV7sa{i<|CO%cYpS0o7gdz|gm| z+)750MohxS_>Q(T3#~}uW%X*xl#}n>wQ15n(0!rdj|EBBtpJ2l0D_xiNqY6mt4dX` z`A0qo;40iF-E58oFR`Z_)-uz^ny%KrDWe#Eu8&=Szh79`d|08y!pdEox_yOzYcn@$ zF{4vPdJ<)xF&Wr1ulac3x%VN9O^ub!RSd{EDH^s@z17X@>o)z`cp!Y>M*1QI34H=W zF6-mJs>#SAj2IF8Lrva)!*Bb0QeMx>^Qvo zmARbf-dnRFwug`Z*#Df;M(~}kI_Mr`Q&kk%Y76!27Q2e51gn+VufOhj>CByj#q^<+ z`U|PONN99O@|v-PL8fA_^)>SXg{un_DolE(c_)~>UuAN2&Jx$pb^-Tl9`9*OslVmb zwXi&wYq1$YtjOt#%e!;Cs}qfa&JuVll9nz>q`QLd;r&`vEf>d|TyB2tXH-4FCArq0 zpN77*U3G%_7>YdBJGg2VuPgCY>rq0XVO{V7`?r8=3LWKiD>r%N$M3pCI&-VAI;@NR zGLO}yyLYG^T6?2(d1CBkb@ADl-A7%XTfKDTF0QqKQKNU0KeCNuwnVEvDzC7w57o{M zolpkEn5J1DoYNJ{3J_P_6d;^ok4EB9$h=uWh1-=q7$b9n4eRghYSzSEqULgiiHP*IHREkQd{KSfa-cC6 zrjN=>Wa)saDZPhowJp^@y%gR(%Y?e?ZmV?h3;WyNBoRbz+vyYKcK(`(*cyR2YzTX* zqWDL#foe=VANNR}*~7ogYs~91UAT1AkZDQV@{Po@cKZs&?wNS1@WRkZB6LgpguSHI zlAvrk*?t+hFyW;}d9^dk0jxr$?eLsRPbw$!Kjho_hDjNmFR%R=s*&$bAEY3FH;{>- ztXld^j8EYogK5gO0cAbNX4Th?&V7r|^9wguKHk$zAH|3&*60Yo{O6?hiQ{U99jR1zurfD-}vFat;jQzuK z&lL@>v!D;30-rv(CnN5pPJgoSca^+qQ}hpXNo_7;;!C^Wkbt)EOXFz_>K}+;4WTBE z+jLG`@txHFMb5IdgBNm&j?=vPQ^SI2nMa`r9;dn&&VMNEm)jLTL@?EF5hi=eD_jt8 zVoW!!Mxifo^1n!C9JFPyspVUCm1;v_f18As$=f!EHhLVIa(AZgZNS`8uA?-Ym`vCS zJ3ivtk%#J&=ilJVeX`#=oW@_V0C5%`jz2FO%&ay*uuRgdQIb-U#vgyun_3dr@Sg}j zxB-|f39>t6(R4vS4XpQk;fAW{z7R5&cP$O|b4a1oFVX=*X=8)Y@PQ?%N3$6xlB!n3 z+aY73@eaZjtcZguS;+Dc8OPk*Ch+@FF3W1$y_@ zVTATp-zc%`4^As+3fuO#?6^&h=hm+X$(4sN$yw=aiR5?}H`MN*C#iu!T^4`bKOpLV zPZY)SlM}9oE2J97Q$a3@^0%IcKACT!o673rHw^6Ny4mIHFy%6n^=mdRShf7PnAhIR zzmf}DWc|d*<@2zre*(+d$7kEh=E9cVC08#bfBDn5Jp2}k)%bbHSGigB_xtc}kVDm& z9@X`Ya&aBA=`y@XG=KdS zt$lf;YfJ61+{NH_^Ek)Pb!POAI>>XM?cf)?h@|{6T3Q?Hq>?A%LF{)klEtSSG)+}2 zn5}5)hzg`kH(UNjZqi;??=c2P8xG6P0Y{~h?cTBLy}of1)pEa&_;VHy%UETe|Nd@W zQoOSAi}1unks>#}cy5X^55vjP08|m@0Ho>NZ<{8x*3GkIDoB%F7ZwY=1WrUhq-{8zo z?IqYXv{q@h!Og^V&Z2}-ytU2l;0<*^o{kl{F% zKOVsTYxP0Ly@dLyIg=T$a3>0ieI}Ak9n%ZtK6M+=-gzp7T<*H>ycLN&BDtIR%2@a+ z0qu3B%f)2R=AUxg|3HGqvrU??hD3V8tX!<#g7m`i(%V*#*L9bG*!|l`AJ*%+^alzQ=nFtf{PoYF&MZO8I%`R$M=)xpd!OK)kLRG)vW8VLBfcTTL6Cq$ z{4QW-yF@2LZ7G$v3E)PMmhxXR@Vw*=vX3YLUDtYq6%isbXC@nT2+B50Ev4l5%*`DS zb{c!>z-fe4^~;}h%prtT9f<`Y27qw&@jWV@HT0S(#7i4N+Ffrg5NC!+-Tmz*@uq${ z9&3KXH2FLk3TW7d4YjKh>OBDXaD60Rz9TfTGqde&4@r7z_(KQIr$0!Z$M!ZCk%Y|* zsJqyj{28E?r|uTsk6Z*sH{mIw4#(f(5Cr`<$U`%OqQOWpx{n4!gaLvUwsRermPbnJ z-a-ryTwya%dlkuH@qD%)6FN9o(FG?^nnX*a+F1bmUZlAI4G<_@R$z`f1Q_F-TBaCY z^cAg_4{S-ncz1Il&^GqBD_vD`LLT7OWCArQ@f8+0t)R&iBX`*03pXUd#si;)151-3 z|HBLrY`+hELAm%aQaO>T&G6F57nn>7nax&l?-z9zkhypRq z;8!49_0nD<4ZigJE-@J>G5!MC$D(k3qe*l?+6EAlvO7NaJx`aM#}aNBPjXY|Ud0G4 zs@BgD)UlVE^<2bams8&dM|S`VI12(En{;CdZKnu{ z#+eC5`n`<658|$u=mXgCe56q3J$p38I)B7m(|JicdfNTFmaZdlj^v{!ZFk=jK>~_f zwpe_F@}{dEe-a)`a_f|hR!8~e1NoThn4#?)`hAKjCwwV|aa_!7FR>4k|6wO&ChuHd$C zhbRLBF3wgOL7yjalSqoq{CE}D`2UYx(J7#?{@aalx-Oa#2nLzUDzlZf#9dhc@IL{5 zh%1br%;G&Kxep`HgfjmFE2?xExkEGW1lhBWW-}>LgZgC&tC@_RpZ<8rNQEq=^^--r z5GuhV8rX556_{kuM>x!+w|p37Kgl{gH2RB&A%sBwcfiIqXEuS|GH``F z7B*jArO2(V)Jq%?9^Ot%s1rdsB*%}$D0J(1ENp#=l&F61tFaP1tgl3f-&q0F?lAW8 zaQTO2!Vwu+lcgY6p68C@WsHTOndW+ZzxUUo%0_gr1{7jK?lmdO6!OwA


ye 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%0DcnT6oz3KdFW6zD>nG6MajB$h(M3 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

@71p}2l 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%0D2o`UGQm0fh98D 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≺f0jWfAXG!fq}SRjpt7x)rR1SS0+8dG5C6w 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

XEJGO1(fUckDc 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

c&6aR?+quKo;9LD~zWPdk!TEzr1o+;t1njUA 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%0D^yb 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

?d*o%48lt5-Z7NbLN(A zer`7$XVSfk_H!O>?0ZsUmc_4+H?pUQEM~X)lm&8*M$|jI`e%&S zbKq@3HH{ox#{wjP24I99YtBAAO#^tI-rgtN-d<-L^W0c$7k@u?C6 z_kqbA_v=}^jU5E7D~+g6Cy-cwN{dsyodf60k|L)l4l($5spO2qCK-Wdap#9IRSb0uDI+=z09`_By;%+!X*Y!!qvqv&UYQoS4?<(q9ihYEOzkveRjw z5PlGNnp;b)KQY|J8RB4HcOZ_L$IbK|GoP`(8vg*n)_)tk9G3q8+aC+%n&t?VB{AyT zqmhRM?I;NRNw15(FKO1kGx&FP95K9XEWGF@jlNv2*4k7Yka3Pj8T|fR4t&OnPnDI3 zV0#hut{LGdSA5c1ov^P`3d>{kqy7pV{{RJh_=W!f1%=UcABKA0!<%gdd^arGg}7V) z05R^SE3rTXC_#oGBV+(iKuGP@vHm;V>$ZAq{v6dUgz#zz%M6h|QIz8ZjPQB< z$9}b6MARDU`E=HHV=A@@?}3_|SG~EN;;_|M?I{r(5=Py(AYhF9R;irrHqV`Jd>ePB zyD-b9{h+w%T3!^e5MC*|OsVG?1of|L@dtoBJK}3cOLcf;+w%}ObM)pj865HTtvRlRs%Ow&0A%oG}8yOOQH- z&MF)r-P+XBH7Cn!=z152zRTjRJIIlj?eL(%b>>wE`^TmS9OUs`AA@{Js`yjIHk$UF zOf$zO)&oB}oQ5Al4lB#NFRxu_w}#>uU`Xg&0Q&J=&ZVvHNcD?H1!h6HWB~0XbOW_F zs7c)WBf{Q4ypuw;y|cDxL5~DvG5U{M@z2^D;HQT^AnLb1EnO&ETu!;Ux`IEMm=C_d z9(oVTr2U`1D(Su@wr>YtMJyKz7}(7u+m=QPl7}C3@K2%Vzh6hRg{9ghJ9mBHTc#*i zPUa1}pAl={4DNJYMoUKlwlTw^;IKS{`4L*b53T0XyhR_`p)yKX6iu0IgVYZA=i0ry z;y-~crSVfs9KjOlSeNpF`GMqn_04cP&xUS19pc+b;kpz4@M2RJBw%E9C%OLsCbe>H z19v@Me--I|BhyyW=P_y#0KtYfx!OYxdIS1#Un~4u@WtPUJYRidbsj#|A-J?{+&pf_ zY0u_9qP_mpSV-@D_6ik_*(8ktCnB?cG59Y;_=VxOHmF}y)8Q{;Bz%|0CNewcoO&L8 zK_M$LPnM-)gOYRK)}k^ux#yEs^*EU(XJy)1jzR5IpMpU-=bGpgiBZRVcdujpk-jQi z{66@dVCL;2isDff!^zO8Va9t8dhvBVKmf>Zel9Y%At}#-9i3!&v=bpBa!^IB(GlI{c7O9Wj~F2U&LRBuxPjU=?Fy{xtz~1@s4EkSRKV> z$vb}bGupeq*mmw|zCPH*5dk(*r^+}yXV$o169|Ov#k0;7Fy#FY<6YnEFKsXUFZ*kW zwy}!dLZy9p91o^{I_`_mM z>(9TYYwM4PT7TO9A!+cV47I=yliR;PO7XF}*ItLAhkv_1gIz9rs9=Sdl`E17&MSAq znqBUfcF?rU(8x2ijO{q;Jt}9lx3LT5DSW8d#OAa#6C{@#fXjBrHIhXU*?4yL&h|-d zC3i<3GdCo6uEXKxG~YfwT}H_wbyZ=WPC3WtOtOHaO(8-ZkY$g0io?#imQx&qDEmk? zLUJ7pQeE9#+J+KE1joy4@<+exTiOE$hsrS!@v%L6)-ANDYct64{qvS1u4-lR6t*(3 z1(*_Xh3P>pwscdfO>nVEapjjeRy_&yH6m$ZDFwa3Ts}!`WPVl3TG#WLXNw1i$l zr*H8VAm*X9w!6N!`(!s885jZy>Upi3tJv3dl+u8O_68(l^{mT_3ymUfI7d84PI4%) z71HMQ8REHsxdY{tclzS0%WsUo(9rjA+epDcz&Qm@dG@V{JU43-;y|TH<+%o%2ZgO= znc{W;AG*M2*ON>P>pgN=e|IXAoaFbbh84MnOUq+}82#cmQa!&~u$~w$rbwL_uY6;U zohsy7F4$e*QW%ezZ|X$=WZc~8+YwcA(k?fDJk<%}zK$lJPC+nVytx@3^|5#G`|aww zt(@XMPnjE%dR4s>!*f|lAfF>E$31=M0|Ud?DXm({O6`(2!5OU!LedheoxpWIzLhqO zpw0G~TH4erNat|_8O2L=;j8OQwZ1~basA-xC<4`vpB2uYTqec@<;eXy)mGCkyu!lg zc2DtEg}gIHj4PsgcNT{ymx zx{cg=RQggZmxA8o<#M?%{p@tDC(|QA9l|J9R|K%jX9s%{B3XeP6 zObl*BZU{K_t6CN865PvSaK$$d-M)DA?^Wbk8JY>9E0RLBM{8{^!41;<;GK>;k6Hk? zYiX-#x6F@tUKabij(Pr-zhQBw$c78G!xj07Za)gdkk4&o&UZPFmF{urT+O$Pr`B~v ziqf20cn(ob%5zh=OCOs$Z^Rvf{u;iNNCK|no%q=5DCt%$_3bO?I zvskT-+R&DZHgwc6WVwZ_6@e5`}E4QA;Y>uWb}X>*+IJ5F*t zREem|(JlB=t3&KOnr zPu+Jp2ZM?LblzTe3-X32t`16{L+Mo@Yg^quO)f$? zIY%crJ?e&;B>owDjXr5uD`AwA@}AkC4GSGe?iP}sMn?xdJJX}o?d_##rao9L@-R3R zg!7AQvv&;S?`$69HFA3!ood!tl|etk$EOqle^Z7mCEdO@u{k50nwLttHaWT+4c{>% zJXbSieRd*ySCE&DxK}@z#co+#GuwvlcHWE&JH@(Zku5x%x2XH6Da%4I5_p72Tc!@!gvo}`K;^v zjX@o*qlMLP1>%@o)guqkOcdHt8tapXhc)i#*&)|VgM)C zKT3^l^sQnx({&ZkoQG_g!ABhksUO0P=E%`V5kvBQeGM&+jd2yrBDQvt53K-F@a?qP zF?(5Oc8*R5nb02fsK(w)Ijo-;-MTVQd{a$}ye%AuI3%l{YAAGjnV>EMHd}%P0A|lL zw(W!^dE|rEhP|3)T;!15O>W2Gd2VcE8-IMPHiCMCRWxl18;iMYFWHgM*^>0A-&qi z%tD9M^fdc>_~)DnW5NFM{Azi0Wu7*;o9_MM-jwg`xNT$r5JN5rCo};Ra@w?oC2yFM zgPypnkjn&97emxxj%zgOaq1H^X(kwC{YOJu3t&})A^L&M094mydGzLw2h3mfY&-K* z{5`2pd8t01c$-2PeyKsQoAcwcXG5 zc+I1b$k{tzp$4kzUMrb(fpc+g%q}7xU;{WKfJJCrcxO|J=4*oiVD4MxInH~EvHt)F z^lfb%^8mng+&UTnfwie@BZ~eQxsdE6A6}WOy4~u@VH{T~rJ-Qq!Rh!^Pib#8v53R~ zUPrO0F0EwLN0JvHt{D5!1R9Oqwah5&Mq}iT`K-NDT+(f0Epm>dyoGW(0O zLt5SswNEAV`;hE>zx9mS-Ht!4WLfF=+996K@ea|JN9;$fC#VgY(QUTPc5 ziD9m3etamtb-ILBKgNfUJ?XbHL9b|0z+47UQIELkSbiM)b;h482IYkCNJ2L5O8R@$ zy}-b=u(pd)md}L?bFrKIy}Q%=NAUJ9B756y&g2FX7s<#YIUhk*_1!LLqmxxo3p9YR z3Pw*uSLdEvs|JmfyNHSV+2j6ps0Dv+6hQ6BDbuTx>Q)%+CE9I3aG1ss4ubTe=Z?oroA<^CAEMnJJEIWSf$2E9w zN=)@ET3VMUN+f{ z#seyYlivj7j@)~S_UX>^w_}N?WA+>V4dGZdFW4^cO1VwZFNtqrP)FWY+DZJ+>0ep= zJNOZIt?9S+9}=RtjU%{tZI%f(`O%Sr`N89pj{g9re>H#Lg8u-vPlSFSe$QIh!T$gh z>Xy1y{*kRobsV>oC==)pj3jL$_KVu!HrG2Ko?X9aE{h^fn>;CyFa8F&_ z^d$aq=(?xv3x8{S;{N~*_{Mu#Eo56O#QQ;w*UQ>AvJ3(T9epeBAKS0?!|^Z0pV|*o z@mIsY5!=b(s|$l+q};8*mL`rc6v~CWJ8o_U-hOelEO7<(DGXHrt;-SC3rRmiW{5*ZsG= z4XaDyoiF1p&gIs4d$WyKv4MsH}vuW{^l19OrQr z)V4V!u2$1@sAusaEFj6akc6$*bHTfAoYfk<^{1k&gXG z<6jYIF={`w&&Jy;4JS^93yFvZCSXLKP-Ypm9&wFvo+qbHL>B zUIn6jQt+3KbWJy3gHJY(bs82~)Nh6OB}o~<8L!Y!2YE91dry&EKI>TU=y*RbTJvhk zTN@{IbhgeOUz^vdugpK&w%g-eKeX?ObWetQ?C?W1+Q>w16B$Jy?(2+_JwLDM#kl?8 z8L!Vj+rPwC{uceGH7l95A0a} z8MIqTCz94{sUBH^A#=hh7~{QG{ev`5h@Z6|?NQ*p2lk%T@BYc+twro%)aHOH767Dc z8)IwcKoh+-uwyGEaY`|Q#EhX~oRinvKbxK^{gw3lJy-1>AH9&;%@8rgB)p@H zf(hp%oR7!TpS(ZdtKYZZ!av%7_B}{^4XoJ9cckCx_w%K-@0jT;{_WM250ozQ2h2&y z^smkPZ;HCi${Iah;1Gr~b}&O(v^(dlinWZz4&kPv$sN@&!|l01eX} ztKlCL_~TQ$)S=biR+@W@c~)53d3Tjyaxf3SZk6`$?P-7GpN&7VuAizvCAz%6ipugx zVK`L|s!HR~Zts!-Jk_|#HFFs?&X1Bj1K=Go{5f~8X>;4CyMb2nC3EsTd$36-<@?$E ze?FV`Civ^&uY>;pwzq@Z#8(i-WqT#vq_&N*6&#*`Z@|et&!uwy6!7g@7?_JIyqLzImpK&JvjCJYG%2v zjTNqaDgOWki}>sCTjF<*yanQa3i!KA)M1Xo>KQKd`_#BnM2LTYo|*pu$E)M${A=J? zw@9~EF?`=7jzSK-f6uLUUj_aS{4%xphi75p9}d_{X@6@pS2Aj3${=8+l&EusY^WLQ z^B+-NKZ?I+?}7d@_8OY>%ns8i^Q3*b0bF}{e zf=>R`KMH;oe$=|`TK@oxEo|&{uL?^W-`qcy63q;exD4-renfl`k;(jTe$<{d@JGiV z+bdnX_<5_rsafjx7UDabDV3vOwy_BaU~q6%kKtY!eft4;*T`GVBg0?0l>;Q|?!|!_ z$pHMn;(rR<_*wfq{9O2Bs@m#lq1;C;l;P2~9nt~oj!3~E`xDls!}pFzPD!gDRs13N zZ)*qaSL2u@jg8HlTpQFUB1sWL7g5-3R3Cw_&i?=y`~ri-+Vq-^kFN`8B%De1Cy1S_ zI*sI#bIHy>i`u_KJTKyp6KQ|5w~nT0&~877y^B$7USsr?F1I{{vGHb2) zoA7VPUkWuNZQ_j*NLM5+$Wmi}WhWf>$Gvii=0>37oM406rQYMc$nNhXwS>y=l|zh? z_*6n$o7<5M!7UC+JI7DTq`b5ox8JQHn#DF-79)bV!ESSk%JF2M={g+6_LP{#CvtPs@ZJJ#FHT5M5eLIzr!MR}RU;1!2_wCaE#A>Yw-{FT=ef z_LjT&p{02DOOEREL({Ay)86YY5KPnW`ANY!g-AU{JqgdK{9*l$ejxY?>f-z0uZnH$ zqX zweK5zCW}#);zqbz$nGR8H!wR?D|63&pcB@<)$m{Z6070ehrv$|-D-adbW2P3@V%(i zZ(Q$aZoH)ufQoiA1_Txdlb>T>YW~`P6Fv`V{wSYLz41ny9Cw;Yf@wtRP~7E!KzbJ1 zSAps)$bJ_7+FuH^kJ%w_{9UP9i=7^Oy(()|y;&v~QOv{1E7eFsjgC&%2b_%KI+EEI zlV|4t0PT7I00iXH{vGKT{vw(rX&9-3<$6x1BWVYr0|(O>12yuk<;IWjUh7JOPgH_9 zRJYq12ID64o-vcu;2yt)ed+sme&4?bynFDURKC;hESBd?M_V-ecJ`Uvg)8NS&u@Hn z>CJv!c)P~8e;Ryw3tHwVp9vV3_&{8-IP1=FMK?Jo&9QP;KV(1PkYDgpFN7W$@E3@* zFCF|v(zK&x9AYbr>!gRw02~BYBXf22IPKFu<>C+cE62mD{V!G5yglM5mMcYKi9B0; zSLw;W{{;Bn4D$29$fX76%&tbUdL)?e^g4~9P$ zKW48M_+Q4JMZT=MfBGGw%-gRd-abH}a54r?P6li7!{Z;uJx9h?NvBH^MxnlCMkJN% z&!=kJ_|NgDO7XnSZKi3@3i;ej=kE@A#xvf$d&Cj6dbG&k6Q7p{wm7Y$Mlc5}iE*t? zq{M{?1mF>$&Y^vB>9VY=?Tm`4u)CH$N%f@iz$ZMM_04Hw8@V)^rP~|_Z2PupzuI@? z0G(rtFkwB}pAJDz7AT@5!NH zVh$HRv;i~fnu82|sPc16YwN$0TySIc~EDTY%ZGF9Q*B-rS0VCA!V$RE^wrNJ2;Pw)yy~$_NS-tcC|h>iBtYYh=Qt;iUqbQE{2W!_9~NoyX?`j2r->za207 z%LJ;&=3V5v^#o@FI6PJgF}}sOasL1kKWV*J_K*0TCbzD6u%*eB;Dw)WmWz|yIVTw> z`QpCG{{Vt+e$HA|pN6hJBTJ^qKBuk1$!bCeb$~fy6l1wupIi$3tF-YQ=9%L7bv-8c zA}f~i*kl$^ar1pgQI3YcK)+#M_$kkWei?j5(6pZ)%=TU#ut`>X>pMo5$ypJCqbh<% z9|wV)DaLpO$-C$$su;qwxj3zLg+~t@M6g^X4k;!!g~t#v60wmLw8SQ|1~6?E&zU_LKPa zd+}r8M~b1JOVKX0rntYBBNDTg0H59gw`ftFzz}~7{(<~L@u$My7JNX0_rm@y(=Xt> zNKvJ+xk;5rLc?xUU}BQHWH$CcKEL3g9}P5JKlWL-yV7k0Q|X$V3X`i5g<#6cK5wv=(<)LOiT#NvIxXuNB_WuCEMt^6YhZa8qZq1gO$qnSt$22BF%B5VnkOF%C zKAnYr9Qs`+*$^;~S{l4)W4uxP_zyx6Oim>O|meIXFCf(j}yJYUv9zWd8sa zMJ>c?q;2S)G`KY@GEzm78|bTo90s{2cA=zYjAQ}p-kz*Axm*~4VCNV)s<#(X zwCxmV7-N7(O#c8nS=`Ad+2b6M%M-`xR;;Z=F^6b@ko6>U&U#fK+>SdRDHc*mXOAcI zrIF*0a|Yx$>FHA3OC7udLd~9>57Mc|9_b6py9WM2Cp5rmnJyfeQy`oVsHWUBio7Wb zc)%I;r^*CtjDR`gAE~C>+ka@EoVL|`x6RjzO@;L%hR$o*uxpzU0o@#{_dLn4J@ zGuY;k7d+Glk;$eqhZ#;e!6u_@&5V}y^`OBbF~H#e z01-5gBz%0IR;Q5~{LJ3xngEJI1dWlAx2L5r%9}`b>*_rz_i?-s$#TI?M_t1w@atJu zHzCVJ3vh4-de8+si2znXslMmC)LIhl<*5GmUwTMnRF`rLo=Y)34Oj(j3$nIdl;G!+ zQR#L!mlv-!!A~b?MNPRSy5~QgUcgDE>F;?vNhabLaHMrP9M?ql3gP^O+!vN+YOQMu z!-6nLOcDiNh1)qs=RCLg(

GKNF(8veD+A-Bl(M@Wpv!&lSMR;%B*Tmo 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

4*FkN8x^t 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

X2?*$Takqi+tVV8IlMQrM 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%0DjByRZA;e4P!+uF5kk$=kUHZLlJbp&EXw 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

ts1~NF@h|1p5wMNM<4e+!*uP# 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%0D&2g&G>bgdGiRP} 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

|^wYTPSQmz`4n8Hi_tG5eLQus=MbVh+BdMOE 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

-73_>5i_A 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 z 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%0AgTuQ{zX{zKiw8O!Pm&_fIkr(>e-~L!Rffxjeu3 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�b)re_{telNm-P(#O`f-;Hiu>^vr;=$VG??esDi8K2$7B(Y?nc z-?jjkR1s^6ifWxToYO_WV?#f=0>%{_cLNIDNep$_Ep%~tP|gL< zuJyuKPsXxk^pQYhjlkqzz5=;|>*5f@BFR>7f0cXOeQ>DDU@ezXPU>YFE!(-me?F&@ zB@(!CVPe+c4|9bEn6HArD5Hv!SmtCU9g(kofAz$Y;DGP+JEyhXVe7X}x_gpq?IqHT z&oQYK!#vNb1vMoZBah}D3!Xx+7d96dxL=NUMml-nf5Jyb`dz2;&2g*s#%Cl0G}eZY zeh#iEhV8P-r{!j13XXUk@yY)HjK3IKv!hz4FX<*np|s9?9)&Avq^ynI%x+DBZ6Kp? zeqq}k0r&>^&E)x?gv|}opA$VGuj+SA(j}#&lQ2}Rr>BT<zOuHf!nS_(a<=9f zPDp7XHyzeAo+Ux{QG_#fhv11zR&@rQ@RQVO^LSZiK*>8hNI3+n)|79t1Y+4GC218y zT-VBudwQ?ZKNMOUM~y|)4-7qG(j7N+3r(J8xm8UqKbc}nD?ED$_UDn#8!rysMx)C0 zJT;5cZB^8jkQgbc^7=-cJjbxIgWQqY{{U=ubE1AToeRr)W0rJ2gTo(LGi@MeW=zjH zYHFvafta1C2vQk9;4bdmU=VWwI`U~nyxNChi0b4imY_6@M zbnH|C3x4>c&xo{s9=g%ge2SZ(a&;#^r>8(GE9j|>JuPDQ1w+}*jrl606-Oi5(<+6| zY0%kAl2F$cF-eyy_GU65zv>N!0%nUxOXe}#26 zSOZ>I{PhHVhpq&l4SHd%=jgt))&^3xY1D!~*W(#nKPO{tqFGWr(L#wWJquEi%)WYs zBj1yZAx$$^QRK^8mBx2iD$Kq9xQh{ZThOw}8bj00tSq*%4VeIcMZK^Qyf0)cP{NC* zJwm01)&i?Fk`muj{WtpJE-UPNQ7>OB%Hf$!K7W+bFLAbHBp-WU0xIh?zFx%D>zyn3 z!U1KHx+N#-L2vZLPHzcxlEe6!Izg$-YPQ~WAiEFL^ZH-Cfd%rdYDhtmu5UWZ-Yi;{k`*wl+ho^i5;_7L%&oJVB{EA!cft?xg6jp+%45($+qpUz3RZz8rFD zSj07*3F)OgU(_egC!O2q8DEdS15e@KMpR0X<$VU}%?zf%yqToZ#^3viH^W$?_8j>{ ziIb@v4pwOoQ#4&tH#ZgPNmKN`6S;?5IvGJ|SE(9OIa9KUgB&+U!woajupK4nmRs^| zdD^OJ8UBi(aDJqm5L0-0{5+q8{{XYjk-wL~lBOnhaqqZ-PwRy7#=9DBhXXe8VbQFu zR)bB|&91YS;8W7XLYw*qBj!JBHad4l>%OV#u{BOg?N?VJ6jXAsQB4^)yoTWM^&{+=Er=!xD1IRYYGOAFQ9@ir0`(i-pn%s}4qKaw|X^3sIIcvPP;F5hi;w?pV z6#S0((mfgIZi2{Zx~Z+SrkT$xTVqvJg>!rHwAc|C`kQ@lnd%;p%Vv)*)VeQF<+a&U z!Ws&^yoQRU3E{1KbM(b#{7(8wuC$vSL}nluLe zyJEP$2_sWvw9|eeY2pz_xB%+c7QlDQq@`JDX{#p@j>~hjpSCx&brkb?aY-bwj^$0i zwhTn+8WZJ$%sa5TTnX3+sR4n~DL{m&xv=5B_*2ux0EmF}vUfXJdSFcXWi?x*>oHc~ z8;gehFebAqg?y0=k-))17Tfv0_z>(Se4i_<*)3fxH4aI!bQeo|dtqUdehz;=fSD4a zz{V7lVS);p8oDSJPd-|OxCAQjqS!IgGs_)qWU&TvvGcroeK8q*Ap~`@xv7>pUB<#t z0z31Atd5C|R5H{jn@_kFP=7G}#sbyC(^bnmSyYlq?rd;LnCh7{>58VB&l0!JN|G&z z*AzMtz9PJR=?@HAk0#R8T`Q>8S%lGUtKB#P2(871t+@Wf-1fu4qdKRfy7kiBm#SJ% zE3VU#)oxmvN|(5ahj0!3J7OkvpQ4&Sulk!U>IR?c?oFUGVF;wmX)_2>jEVZSZ7 zGNkWw@`dO7;k@cEP$tt^Z7!b5X(r5b>c%m_3<_Djt_6+2z7;y}s(B8E%A(VnKPIis zx|LNH*ij-b68vsG&fi=hx^L6$+bXO70Gst)B}GoGn3iT^v_wesUte5P9CWRcYQt`w z^y0rHM$EIRYNXDp6d8VC$b|cGhlZ2L$>viutj`(09AEdqdTipNn7Hzz-dfIH`1F`vmU&uYjz8sZ=P-{JIYpe4LZ7HOpfM%6%v8yUuY;=kJPTXF=Uz{#8 zEce4tMJefec~jP%Hz!i67&TOkRGFNS^8WzRJ%KmDPMpm~okh!X=gR2jolJ7gHwI=r z07>oN6ra|w2)$;Dt+~y5XpH+eTI|hg;mjzYl4?|qp7&ykKm*^?7Gl7p`E)}gX<2qT zqEalM_iFk|)Q}kw;b6+Z`riKlTq9n#8Y!ZNUA)|}w(DRlv=llwBGbBdI{Iq-#wtkG zp(0xd+ixISj`zTN7?xn-W9xo-Uf!Wu1sZ3HeWKWirOF6;)Xfi~Eo7 zfDm~!m4#sfTZ?VC7X2_PrqW19n8<%Ew_3vzN`TPdGV!d#Md^x#r^PWM^Kb>q83Z=PS*6p17lQAEd#|1qK1sF@;Os%HhFS1 z2~e`grd48_hXCQn^OB&8J1?NP?e@b>5SFf7)`}^-qvtY-Kf}*^U;x`vRLLftfl@=e z&07$A5OBH4MD=-PD%Mn(T>erQi(w6zpqDWt3h84sn@3!mQ) zoVhMbA)htW*{w!bkkhF$To5Gs4)~5Eu00RPHH91zWm=%+Nm2y0k*g7F_u9w%j7>#} zjwWfCs56RJkR-Hhe<-m4k~ky`Uf`5>H_2C?2O~n~Ii7b)*?n76 z$kgf;WnuZ3)Ahp9>55ne-T^!tVL8(5nw@FYs@ha;<@%fd z0G=~Qn^c9jhwhkZzPNS6OLV_i^$RKKhEY@twqsn5P+R&gI1GCW@qAw`XNAv(4~HzE z(e)dx6}jBLX4xw93Wii>wXCeG$8H8FtHPX#7m2Q)<+WLR&*w|9b|Tlk{e7>CWcZ+K zYFx9X6n!{{r+O|~Yu=uD^LL0fMUn4s$~K-ml5h0KPf3D1T%UuFtjQ-O1n4O04})I_ z-Xrw3Wu166)zn&}ILiyX)T>tIO~(w#Kz{bIxCh+!#XD=>l64QIS+v@7US!|GC5eix zit5WJ*kAh|aPs&d*Ll}U{7>l?(e=iL49JRn!k#CxJVXvkgJW*}u_*o}y)xFhS5Wfp zXPedJgCNY;{_bh&{MU19-J<|(z3{SPQjX$S=O{@o3>Gp4x&O~(;@Y2;pt;Er@0kwzgi|6=`K(lmXNl36P5t-6rtIe*xkMD=1 z!xtMX)@77(DrE%JOp>)qhd?(Q*mK|O{+K}PSMq6~qNkajSx?RZ<7e3MhXQD6-Cf^g zY^L}3`{BLR)RMs^6p1M-ati@_FMM;Pmgn?#V=s>bv*8cJPIu!k#D0S4E?+^J$Dw19 za~)S#P4b$2x;qyowz8>j$}elN01=M%`fHPD&WmWxGt&N;X}S$7p>k?eprFgC5Jr&3 zqrYxgo3k;wW+a|T$0+{*0BqyQ@h9REhsdF6UrR^iPU(43zY>6iBb#lxBOO`MP-Ytg zJoYhwp@`+ayyN7ay`9fjD}8i*6Vr6?jtI25V(9Ct@J%dPM8*a?S-iqckA5wMJsxdR zS7@lH@|as;ZUFso*c{oZ(4>J&+Q9ZF8?v0vWSe1EsZ!S-!yMSQ`)1dTeJ}Vaui~fR zBP6S(o5UW3QO8c` zzOyf$k*Vq;1HF}njj)^1l|v!Smno%($)tHUgeLw=cCwFbHNGBvEcHi6^*1=zT9%vs zThhQyFEZ@hrP}sL`Tzv*C@-vAkG@fPVv{dt| z0T~uz+_odPU3_ur&Yb6ez_R@)x$9Gt6-Z?&_r1PX?Z@wj7LKx_h{HURFhv`O7q%l$ zRJtXgdX1X@01+C}t0M?YZz0sQnRHov zHLwYadE3ln`Wx8b%51(yD5zD4xf@#QKKH|YrcRL4)ER!B(&lkPO&Y0f#e=u25N~V! z?S}y;o~3soS0dwu#AOt^99wIU9ZXZe!3q3}$WB4V<0GsV5tX>%P6tUG(lR?0raJ(; z9{&KQH^)U3p@eK5fUsbD;vOAg?z?lGMf^Eg=53T^p`UP!^~W#JM*y_6mX z)#n;urd8a|`wwDH8XuD>mPqWLSXjvP=EDKyo>KZ7PT84Kgka^<*yon1lM(R_(J~ZhaIB?Fyj^JF|8X}y$ zTOvkVHHmI7`e6aB&e=&WOn$iaYH37L!kd}N^ceGF2^p1kM%-CXIMitZOeABmeH4q| z?}C8a4Fx+%=dYLgb#HHF9PgP5jTh_0J?BaxicN&1j2CUe z#Gv>RzbBK?#Rx7cjG?;_FkXv1A%t%uU%A1+pqiz3Ew+#Gdf+*vc+SU-EDeKmWBXvF z$v&(sB1svPw2|ANn;Acp6_u)4wu^T3z=>4>XO*2~wXUcAFd1n{GAZ*4`+>!&3NA8ZN}BuRhf%WgLMAJYKRnd5NfK2y!fz{I-PFbW48cf^pJHb+vQ6Zx%Qlje~ln8of$^u$c+hPkVzW~0jq6%I|EM&aJpw>;uQ z>Yp%DRLmU&YK$0O*A~Qd(3v(}M^l+=U1wfo%cFr^9q0JN#bJ(opK(vFVx4=yUR{~g znbCuWRoXX>)?V1Rex7FeFH$tCoa$ty)v!dXJTecGRU8Rak?ZY_M7>Mf%eH2?=~GsQ z>!$kdx~>T6tG}H*eOxR59~}TB3T5VBXS8K-}JPB0+MMyGb+{G1}x4zQa-oF5y-^t5)?kXTwpvkDBwmGG-2A@++bVA z;1;!s9qoVtPYRS)NehF;h`>gP_U%a7NIa0Z3bnP+y6u&f2g(T-=+pbq1lURB4zX z^^v;|pcru>)9;bODXLN_PN%3vQI3O&1)Ff zkZ{r>*9Va1RFKLeqo$m>Ha6||!PK>8VgCSll~OP}Fu`_T6GY7L)5|Tzxa5puS4hpe zM{=+J7Qn~?+LI|UnWT&a0`~^kP0b`8Ykv-v%5!ksi+wN$G^na9wCv^>t?B((*F#ZD zOB+2+L}AYZ(~KYuSIj6b)^Di7qfV_#xs_v3gYz>F^1@mwrKlmPK$MZe0Gs~+rVe7R z%~B+!co;%X&`R431J_BIm1SM0-x)=gQceVq7*_+h^}*4IxKhJuw`^*4bo`c8?ZCjy z=5%zl)MtDsLmyHvY#zl|PSLb;0OQp9;V~;ns4iUF-`5^NSdf+8LEY$mFn9nyZ&eg> zFr`KS5;l>}3m}A74br2l4@==eTRu@%6uXq14&&De>8hHTN#!==xv>}(0BQUIrie5~ zDA&-j=L8kBm9(;m;*f^71ddJx(q}b+ReZ?=WcuLbO$}Nf#2bx2RZN6jRWlYEkq z?6<+~24zo1ifU460PZc$7Id_9F#_>6>zmk~ZI3G`C~6^iNJZQ@APcS^fC(2-<#OF1 zr4B)1@+Odt_; z&mA~b+N|K56f0O2;a25JZk$cCMj`R=$!&m^d!Tu6iJFh2uGj6HwPCCGHv zdzg7|m_m^?;|FOVj%-djKGqehm}@O#T(OE}p1xKK-(W0FjlFT!2VY*29Uq?6JW|yZ zfys;uk}b`KIX%?%S$1Wtb#-P?B#$nZx<-!T#0!!BV;6c_ys|0Qzk;y8D@di8ATc{L zak!p;Y%Cg{nM2yj$K@CAgqBqR6WN`lKzOj^f4&sP2~|EuLW1P(z5f8dJqkI7gLP+B zJCm@+#F>EZ%Wr&m16dBj%YHui)gq}aw{`t~m|zJh6v$W)F|YG_TLJ>I*%_4>9^EcciTTpJGf(#shxptkNiV76SyL>kCuYw|e*_P_`;`f8?wzFg z9NTv!r?tnn3*=dRvE{qU1?~r~10^jW-k$go8#!I*v6UPH$3I*HppI;sIoc+c0Pp!#ZHGHaX-Zhu7nu?fes@~m zd?%@on8recI@sU+u;b);+GVK*?7EjRQY-_WFZCF*6?~LsUl&8urJ#x24z(t{&@?r))H;V(ohvQ&Gt@>(+uR!w`{B0fzJHgtbqZ!#Y*du85qMA*2cCKK z#JtqnAE9}^jLs_tfXnl&(inu7c^JH3^>-W&{qfU}TpS6$L@r^awf3!!uPEsrxTe*4 zRYYGbwRC7zkd8`$^AXQ{B(#=~*7`dzmm$>&m(XUg$Xj~dLnXV~#1E(Uz>O`hhJ(D> zE_+R-rVx~;QWT=`z~mk{!hbOFU9Rf$zrkzj9D_cBp3%IN@QB)E^kCk+5s6TeR7-55 zRJM|a9OUJcdWM2%e42o@D`o^(iyPn9+Yvj(wyM*bYoHxKq{!&xqn@%8Ei_T{_(c51 z=G=kE!itwJ=-*N*+c(n{IqpTO3i*LjM)KT%Nmd-FAE?A8@zX(=XB{%EtvY`?l9DK7 zjh>nO$cqDOGJ*|{d)xKJStDq=4CZ?~t)!^Vvuc`9o?MbK?0#ZR$+5vqH5Qa3ltlL! z**RFHtg`dwGLYiL5$-TcG{Eg;c8=Tveeqoz*G0Pc1d=D#`4rURDNL;uJFef#O99XC zkI^%vj+Fg3(ex`Q-3<&e{eVz0`KNdx)-Yrm(vZoRr5~8c0H zX;!4vbXlzcQ5&ps2^mNiJMGB*ap(P34(#dZ>6S?|s?(Em$maN_zly^>PKMI(z~*Su zxfrP&Td_E~x}Pnecz^&~+W4hUiq&h!orS%Cr}KlfAM=^F_qQ%FjK~)Yzxi!xx%uJr*o<)jTYy%u>@HzgSu?0 zp4L`{pWVAQ6f|0ThP#o<>Z&tvl8)wT3ZZ<*{ae@;NdGf&hBDR^jI zR5g{6uZ28aVXC45qpGWtKsZpuUjn)yfE`2lIi9=29W5VUDD?FmOhzgH02`OBMb!TQ zg*UCw-wl>s{{Rc#Q3#P2#r<_WY<$Zmn~!K??4O7N*mU!c9z&zlhcwMJeO|1NKbfe_ zN0a7#hy?z&!Xf@Qnhv?Vul=OV;ilm(x}(Vu3gDLpSNn8y! zU*RXuV7ESYsCOZKzG_y!1RslWf=6ND5`r3%EXdlR`uh*Uaf>Cb)Ok#YwFEA6uYw0w z`d6hj7NzM|iJX^M)=<*5SfH%PzX&H(7a?6|oL<1&<^8bj{6G5hs;V-&43|2}vb9Jj zG|e(ZFS!oaTQJo)zX-4HMYb`P< zUVC@;Bfc4b2A(VPE|Ti)H<9O>XEe<6+KR=JdxEUHyS>-~0pkAvsm1zNJd(L^SDKRG z?@LW)-7VDpJInO`r_fn$v#QJ^F~vbqK@`7;+_vub3*Wzdes`Z145KmWuf&V1T|bLX zWV%C1(#1;_U6s>_$)l$+h6>JvhGBN(l6!WxJ6-9wj+kh2Jf}u<^Fn1=mawR&+|}~t z8=}kOD|?1iV8jFYZa(L>I9d3YXPLII_?q~Ws@8d5+zk1GZh!dTBxls5^f?ewheCf?}NBeoo{pmfIj$4!i?&kLvij;f71ta z;zc%hc>%D!xEKJ&yC!OskU=a_NJl(hZV{ER=9yZO`J2YaZ5Snd*QCFo=onck`$6V6S$BH*!y4ro#}I2?xV>yoOgC4xA#4;yQQM1$+GV%7msS& zdF{C16ifI@e4iX&T1pgxhA%p;+l6j+@$H2sn$lfL&#Ect zs51PO!!^NkWBz!YQYw;Z2t40R=30&zsIzTRSyCa7WF|*05r6WNgk@JpXul3aYfRpq z>~=U%Hn+dq^~J(;JK?F{wZov0+uXpK z*OSzwby=2MQjfyR#lZI~U~ndh@RtE6{HAAuDr)^jn$^?C`BFw=yS?_GTsT@+L+ISb zIC8wpI+rhl&I8Qc08&pR?i^yryfyqhGJg;>^|^+l>SlkD=)PZYu z!|km8586tailusU;u|^1b43@9Ekg_~6wU3rB7`5%<5VBu=4O;b-w(b5d>eHWr-_;B zJzAN?d{eYAyxID|CL2MyNZD=qy}dBNc(m|^;ftbKFs;+szKDvTpXE}%qw}PiKE(NK z_a~eu^=F1`r%!Z8KguSUR8RJ|;z)R}~wMI7?Gw4{&#Zd+;ZVh8Jvbam03 z9HMn4fu^Ew=stPT9MwO8W_n9OKqY1pD?<}3iEeHWZ_^SMo5GibO?{bW8E^0mw=S8X zBsNb|FP9et-L@TyN3pRuM0`wqG4#X3zL@EDy6GmFT`fspRP@uq3~a?okAKehB=9?W zVU_Utr0R7aPqj98U8(cDq&y8JA3}^+>*Rn-RZHb<1A}4M*n%%$a7r^;jQYAvryzk|5o1wRGM%aP z1JvUT@1=G5rmD_n%e6LfE>N|ynEwC~KJ#nx&MX0LPoTq(PnBglc8(fq7}T?&sSL^W@r>RG_S=&GSr`FSX%HXDZe`uVc<4qho4`W2Ezq5}A@y zYi$#qYMhv*rGk!i5^VQa%K+!;d`fCB3?C0n?PAs$4~HJV>-_Gfh|2kY{Lh!=bd>Xu zZX7g=Cg6Fv+y@=`#basyg6NGyQBM}3>yEk6wemQO$TInAenZ`rRe?BlBlurvOwFFB zCh^$wQB(qA8HR_=gMsbxh6ff!QsL2`Bv9aWJEyrfPV+{KPiZ#M+GHSj=qJtL%qk!x z{#K}r0OWD#KVJCNr{SZi$P0En=s1Va+a%hD4!>oII;S6!;1XaQrp0HEVT5iA`vdp^4Sx&?}9k$ zb5S}=l}I)yB&bkt&!{-nC3Q^$m}*7k^>Qt7jN4Gl@+w4-#r`W^;|G!_*@kJE%OXLT zN>bc_5CSkRlQNQ>5;>>548NJ~Z~oXWoxc#Z8I;~tL~GcSYyB^SJg>^BilP*RMY%z^ zJAfEq3#LkX%81=(K?UwW>}}|9p?Wb{XwX3&I6Q1?oBgm7ni>i;SY0S%Vs2R5zBK0g zrzp~~#FNqj(x2s|ZZ6*E?SKNT!zPT>GQ!5_!?N&jZu+UIsM9KrIFhSyQMT-MeXWG$ zHl%|wr;?%+nw?yow*;_1d}Wa2Fc+IKsg`whJX+r{`rrXoM2QPEYgJRzo)*lc8+-jQ zoy}@$;*v_LTJJh34Y+Q@?Sa{fJnI}(-fPpSzXI1j#|f9oE6q@nP+>*vrMYY%217kG zAs(R`c>wu<7Y+Bm16I`0POlX;JSippfF*JC_0!bN9WUW&;R(m&xo@dB$uepz%40m! z)>BNYV#>fRzQ+sziIqz-{wg_QkIGw>^&{l=5zc3bC`h9SJ zQj`S8Ssb(Z#eP+5eB%DY39A9QI)71Rxu|riYPwQBX_$aW`ySXD$y-*fe9}l#)*(}$ z-wQ0RzE{j7sjNzQAXO@~?k*4C3HsU>N{JmJr-dbQRROqB{l^#`WzcoC;YuHmrY+=GrC;6*~^cn1SJWh2+uc|0H<(ZAEBweg-4&SdmuuGEW6`52mO*n$OcYCzKi$6bHMXmzH1#-WeJyUt5U5Q=8 z^4y;C*os zi76@Sgy2w<1P$`;C=IZyqNR8|vl7E3*0%fiKSAk+%8I)+sPn0kx$43V%2WY!heJha z%-W^}sI7IUgLduTnSuKKFbF!Yhce6ZlUo=P#k32W-| z@5W4Msu4H0EU)kHfSHXf^;9y;OPFL4y^Z|O{8k>r30$%osU7Gcp`KZXC4zD=G=Npt zQZms_)GlR^t*%I5a1SNOlQ4zpYinoA>kXM-XfcuMJ@5M9HbErxwbgP}J4HtrDQ1(6 z#QPpEgIvQz{{SDak3Y&aEiENjP=y*zsBQlMP`M|b);L>!hedLDvejDu0H*y>(|LA? zt*M4d;Ag1;?6oVnZQQr*`{K~N8vJMcYItDjUUSkei*%|jVXteW@@O|qm6OuEfQ!Qy z0Q0nkA+7C-&G8d9jb5#a4yETc^i;I8A{gd^?8S#X5;swvGt zrvQKyo_VPmL!f7z?W1VbK{4OvE9uS% zp){!^4d>LdZ&H2F?}aQ7JwBEYD!cCl5(fbNFv@FPOI4;RgUL?sN%@(={K}))af++x znCSJ-#TQMyJJMv)>nx8`XZ2Odc;cmq747{@c*1i+(RBX+#fFm3HMdErsx*$Rqoy@8 z&@OzR}7)Onl&m@Zox6wt^1E08%p!-4K`H40n2f@4#ndXcI6E1s*z3>n@+ z?`*>%tWV_0#fiWBe|#_cxu^0zqSBtDbhj)1ACXM4y>3+smQ22De9{KF7Qb)@A4{AX zYrQKLuCH4BzI9pEHWms9kx0WErnOG0=)Q4VQI;sH$~?`r^iB=@vUy-l_V(@u1=X&= za5PU@wjE=Y4S>GY?Gs%3nNpZFhEsi7jOjeum#03WCB zdGy0QqWXoax(%vxEjyjXJ!Xrkm7uSnt&91YbeHDCw;jP85&ghwZ6BNT-&0ZQe1fYq z%R*1TF0NSZ<|rn>n|HUi9s^gU{7K|_okdEDUZzn;X{kUT_q82}C%@Z^VWvV;u{YIz zmg%hj04a}K>0H8U?IPsV$Cy#smWFRpDjsdmZZMt6wZ3W89Wfq*&1v$gobsJN4^LaP zBi6(Tu{W>;iwl3A3$!0ovtJMTo}(wu>151wRat0r9KLwSYD3$8(l|W(aytwxdYRGe zs%kORZk%SY=6Xh`tnsBYA2OG5x#IqZ_QFr>ilGHh9=P!T0IcZsCZ3|H$+MWzKO2)U zym^cb+=8aVi=HoRNo?OwXipLPFFe;BHlfart5qX6$b$(7YdwJE5;+8M$6?MJ{Q=ax zv#JSA(k`ySPerKF3S`;bi{(uy=E}~0H>U@`)Zw_za=lZ~4SNoAmdR0+=IZ+{%a{%n&v8UAC_Dz_0-Q?nKn4S$%J$hP6na1I_`wDhY> z=D8+UtGacmS5awsj_OL7 zvY>gb-I0g}=iKq>h{2@u-A~ZW^|E^GvV7yG)lSh?QOt$rr)!(-vH3ve#BhDRFjKG{ zo|g4?r#UoTBI>4XBIYqDIc{MoP~`ShEZxuk^A9d*r}fsEpUcnm_IsXDJ=&JGh7UDl zkKMMOJNn_7*Zma8^`1dVsq$8;n@(3P>1rt$%Jc@`n6SC9JZ*2=43v5|#ulBX8CHYq zsjtXT5e#)wSgLv{4yV)D+uILfU`xp=wHrlx4w>}>GmHA9Os-9&eGje^l2m6ka_nsb z)EEL@=qMbp{{Y-=h{-NP@d%oY8}j7?+wfh*%pSC_PN({#(KQ$)w*FO@x;18FnbnjGIHeN&<}mPG&#LGivy zYNHahMGM4P3AZ4H{qKmbI!EJ9kycFK#8p*FwaYv?ok2(YF3>T$k3#jhpsiNw8>`LLs^-mc`{9`w(FT<bw$YRKZ@jz;<;mEjkCCdUE zoA%nfmqUhy*W2^rF?E4_kGECPmmX0dS(<_Rqrii`N`7O8<1RFK37;)=|{{XE$ z0MhwK!{aU0^xaMBl-bNwFjUPPnW1W0mMm=_kVe%&NcjN72=HUluMoXp*7=5>(R!+r zRYe5=nyoWRpTbhmgJ7p%xnpy0k#CEo1fs2&bltMiJ`s6NgrV`7s;VKQ$!4egC1Wf8 z6hH>{{ILOGy~qG|9AeS_A>JWJhH5PVpGA~0(z&K?a>-z!SdB}z#(SZYi<@^R6f@zg zR8n{p@n@;?UlAIgBFJ*Oc&3V3;LH|S3$Y9dAQtWD$_>ShuxIg5_>%Zg@k`T91JmsV z)M_YFn^3Jxm9>j#(LxnwxZTBx`{T}PbXjMb`KEU;Z5L z+vW!2{Q0`gddbpc&1y9EN7br)(@MoDQ&}3AqMdj&PqIdHxqoK13PMBm_9d?(@w6;YZbrccSNmD|RBzKGw##IUj zB=`H`UwF~@s`xtU=Y5Dt~dw75FZxuC0&+}2cisRAG%0D$q& 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

es2-;clF6sazp%k@@Oruuo+{-D?N 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

bpS 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

!*D&8h6JxI0iT~!=3 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

  • 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 OrOy)s-}JOolmB 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μK$hqSft=H4Gk7 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�ZGpp**XG^H!EEw0mR40f@=rL*DHMK9;lE*Q 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±yH~y*=^KCrE3WyGv2T3*90`JH4%rXQ)TX(9-_^ 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

    PmS;UoOok?jcMd__d~TJ4mUKb|uepbO6IK#c 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≷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�qa) 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�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

    ?x_0*;|dP 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ESP (Hosted Slave) + ESP Firmware + ESP HCI Driver + Standard ESP IDF + components + TCP/IP Stack + Host MCU/MPU + SPI/SDIO/UART + Application + ESP Host Driver + ESP Hosted + components + Bluetooth Stack + 3rd Party + components + ESP Wifi Driver + Legend + + \ No newline at end of file diff --git a/resources/espressif__esp_hosted/docs/images/hosted_diagram-ditaa.txt b/resources/espressif__esp_hosted/docs/images/hosted_diagram-ditaa.txt new file mode 100644 index 0000000..c8fde3c --- /dev/null +++ b/resources/espressif__esp_hosted/docs/images/hosted_diagram-ditaa.txt @@ -0,0 +1,48 @@ + /----------------------------------------\ + | | + | | + | /----------------------------------\ | + | | cEEE | | + | | Application | | + | | | | + | +----------------+-----------------+ | + | | cEEE |cEEE | | + | | TCP/IP Stack |Bluetooth Stack | | + | | | | | + | +----------------+-----------------+ | + | | | | + | | cAFF ESP Host Driver | | + | | | | + | \----------------------------------/ | + | | + | Host MCU/MPU | + | | + \----------------------------------------/ + ^ + | + |SPI/SDIO/UART + | + v + /----------------------------------------\ + | | + | ESP (Hosted Slave) | + | | + | /----------------------------------\ | + | | | | + | | cAFF ESP Firmware | | + | | | | + | +-----------------+----------------+ | + | |cBLU |cBLU | | + | |ESP Wifi Driver |ESP HCI Driver | | + | | | | | + | \-----------------+----------------/ | + | | + | | + \----------------------------------------/ + +---------------------------------------------------------- +Legend + +/----\ /----\ /----\ +|cEEE|3rd Party |cAFF|ESP Hosted |cBLU| Standard ESP IDF +\----/ components \----/components \----/ components diff --git a/resources/espressif__esp_hosted/docs/images/hosted_wifi_call.svg b/resources/espressif__esp_hosted/docs/images/hosted_wifi_call.svg new file mode 100644 index 0000000..11b54e3 --- /dev/null +++ b/resources/espressif__esp_hosted/docs/images/hosted_wifi_call.svg @@ -0,0 +1 @@ +Host with ESP-HostedSlave ESP-HostedApplicationApplicationWi-Fi RemoteWi-Fi RemoteESP HostedESP HostedHost TransportHost TransportSlave TransportSlave TransportSlave HostedSlave HostedESP-IDF Wi-Fi LibraryESP-IDF Wi-Fi LibraryWi-Fi HardwareWi-Fi Hardwareesp_wifi_xxx()esp_wifi_remote_xxx()SPI/SDIOesp_wifi_xxx()Wi-Fi actionresponsereturn value +data (if any)SPI/SDIOreturn value +data (if any) \ No newline at end of file diff --git a/resources/espressif__esp_hosted/docs/images/hosted_wifi_call.txt b/resources/espressif__esp_hosted/docs/images/hosted_wifi_call.txt new file mode 100644 index 0000000..7d16b97 --- /dev/null +++ b/resources/espressif__esp_hosted/docs/images/hosted_wifi_call.txt @@ -0,0 +1,49 @@ +@startuml + +skinparam BoxPadding 20 + +box "Host with ESP-Hosted" #LightBlue +participant Application as app +participant "Wi-Fi Remote" as remote +participant "ESP Hosted" as hostedh +participant "Host Transport" as transporth +end box + +box "Slave ESP-Hosted" #LightGrey +participant "Slave Transport" as transports +participant "Slave Hosted" as hosteds +participant "ESP-IDF Wi-Fi Library" as api +participant "Wi-Fi Hardware" as wifi +end box + +skinparam ArrowThickness 1 + +app -> remote : esp_wifi_xxx() +remote -> hostedh : esp_wifi_remote_xxx() +hostedh -> transporth + +skinparam ArrowThickness 5 + +transporth -> transports : SPI/SDIO + +skinparam ArrowThickness 1 + +transports -> hosteds +hosteds -> api : esp_wifi_xxx() +api -> wifi +wifi -> wifi : Wi-Fi action +wifi --> api : response +api --> hosteds : return value +\ndata (if any) +hosteds --> transports + +skinparam ArrowThickness 5 + +transports --> transporth : SPI/SDIO + +skinparam ArrowThickness 1 + +transporth --> hostedh +hostedh --> remote +remote --> app : return value +\ndata (if any) + +@enduml diff --git a/resources/espressif__esp_hosted/docs/images/native_wifi_call.svg b/resources/espressif__esp_hosted/docs/images/native_wifi_call.svg new file mode 100644 index 0000000..acbfb8d --- /dev/null +++ b/resources/espressif__esp_hosted/docs/images/native_wifi_call.svg @@ -0,0 +1 @@ +ApplicationApplicationESP-IDF Wi-Fi LibraryESP-IDF Wi-Fi LibraryWi-Fi HardwareWi-Fi Hardwareesp_wifi_xxx()Wi-Fi actionresponsereturn value +data (if any) \ No newline at end of file diff --git a/resources/espressif__esp_hosted/docs/images/native_wifi_call.txt b/resources/espressif__esp_hosted/docs/images/native_wifi_call.txt new file mode 100644 index 0000000..86cdcf5 --- /dev/null +++ b/resources/espressif__esp_hosted/docs/images/native_wifi_call.txt @@ -0,0 +1,13 @@ +@startuml + +participant Application as app +participant "ESP-IDF Wi-Fi Library" as api +participant "Wi-Fi Hardware" as wifi + +app -> api : esp_wifi_xxx() +api -> wifi +wifi -> wifi : Wi-Fi action +wifi --> api : response +api --> app : return value +\ndata (if any) + +@enduml diff --git a/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_init.svg b/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_init.svg new file mode 100644 index 0000000..0395c2b --- /dev/null +++ b/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_init.svg @@ -0,0 +1 @@ +SPI HD Host and Slave InitializationSlaveSlaveHostHostInitRead SLAVE_READY regNot Ready (!0xEE)(loop)Now Ready: SetSLAVE_READY = 0xEERead SLAVE_READY regReady (0xEE)Set SLAVE_CONTROL = 1Open Data PathPrepare Capability dataAssert Data_ReadyRead DataCapabilityConfigure basedon slave capabilities \ No newline at end of file diff --git a/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_init.txt b/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_init.txt new file mode 100644 index 0000000..6ff9a46 --- /dev/null +++ b/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_init.txt @@ -0,0 +1,34 @@ +@startuml + +Title SPI HD Host and Slave Initialization + +participant Slave +participant Host + +note across: Init + +Host -> Slave: Read SLAVE_READY reg +Slave -> Host: Not Ready (!0xEE) + +...(loop)... + +note over Slave: Now Ready: Set\nSLAVE_READY = 0xEE + +Host -> Slave: Read SLAVE_READY reg +Slave -> Host: Ready (0xEE) + +Host -> Slave: Set SLAVE_CONTROL = 1 + +note over Slave: Open Data Path + +note over Slave: Prepare Capability data + +Slave -> Host: Assert Data_Ready + +Host -> Slave: Read Data + +Slave -> Host: Capability + +note over Host: Configure based\non slave capabilities + +@enduml diff --git a/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_read.svg b/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_read.svg new file mode 100644 index 0000000..8a48a08 --- /dev/null +++ b/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_read.svg @@ -0,0 +1 @@ +SPI HD Host ReadSlaveSlaveHostHostPrepare data to sendAssert Data_ReadyRead TX_BUF_LENBytes to transfer =TX_BUF_LEN - (cached)TX_BUF_LENSend CMD9De-Assert Data_ReadySend RDDMATransfer DataCMD8(at end of transfer)update (cached)TX_BUF_LEN \ No newline at end of file diff --git a/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_read.txt b/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_read.txt new file mode 100644 index 0000000..b9e1385 --- /dev/null +++ b/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_read.txt @@ -0,0 +1,27 @@ +@startuml + +Title SPI HD Host Read + +participant Slave +participant Host + +note over Slave: Prepare data to send + +Slave -> Host: Assert Data_Ready + +Host -> Slave: Read TX_BUF_LEN +note over Host: Bytes to transfer =\nTX_BUF_LEN - (cached)TX_BUF_LEN + +Host -> Slave: Send CMD9 + +note over Slave: De-Assert Data_Ready + +Host -> Slave: Send RDDMA + +Slave -> Host: Transfer Data + +Host -> Slave: CMD8\n(at end of transfer) + +note over Host: update (cached)TX_BUF_LEN + +@enduml diff --git a/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_write.svg b/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_write.svg new file mode 100644 index 0000000..124dc12 --- /dev/null +++ b/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_write.svg @@ -0,0 +1 @@ +SPI HD Host WriteSlaveSlaveHostHostPrepare data to sendRead RX_BUF_LENavailable buffers =RX_BUF_LEN - (cached)RX_BUF_LENloop reading RX_BUF_LEN untilbuffers availableSend WRDMATranfer DataSend WR_DONE(at end of transfer)update (cached)RX_BUF_LEN \ No newline at end of file diff --git a/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_write.txt b/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_write.txt new file mode 100644 index 0000000..4919aca --- /dev/null +++ b/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_write.txt @@ -0,0 +1,24 @@ +@startuml + +Title SPI HD Host Write + +participant Slave +participant Host + +note over Host: Prepare data to send + +Host -> Slave: Read RX_BUF_LEN + +note over Host: available buffers =\nRX_BUF_LEN - (cached)RX_BUF_LEN + +note over Host: loop reading RX_BUF_LEN until\nbuffers available + +Host -> Slave: Send WRDMA + +Host -> Slave: Tranfer Data + +Host -> Slave: Send WR_DONE\n(at end of transfer) + +note over Host: update (cached)RX_BUF_LEN + +@enduml diff --git a/resources/espressif__esp_hosted/docs/images/spi_hd_timing_2_lines.svg b/resources/espressif__esp_hosted/docs/images/spi_hd_timing_2_lines.svg new file mode 100644 index 0000000..721d93e --- /dev/null +++ b/resources/espressif__esp_hosted/docs/images/spi_hd_timing_2_lines.svg @@ -0,0 +1 @@ +SPI HD Transaction Using Two Data LinesChip SelectClockData0-1Command (D0 only)Address (D0-1)DummyData (D0-1)...8 clk4 clk8 clk4 clk4 clkOptional for SPI Transactionswithout data \ No newline at end of file diff --git a/resources/espressif__esp_hosted/docs/images/spi_hd_timing_2_lines.txt b/resources/espressif__esp_hosted/docs/images/spi_hd_timing_2_lines.txt new file mode 100644 index 0000000..e96f1e7 --- /dev/null +++ b/resources/espressif__esp_hosted/docs/images/spi_hd_timing_2_lines.txt @@ -0,0 +1,42 @@ +@startuml +hide time-axis + +binary "Chip Select" as cs +clock "Clock" as clk with period 1 +concise "Data0-1" as data + +Title SPI HD Transaction Using Two Data Lines + +@0 +cs is high +data is {-} + +@+1 +cs is low +data is "Command (D0 only)" + +@+8 +data is "Address (D0-1)" + +@+4 +data is "Dummy" + +@+8 +data is "Data (D0-1)" + +@+4 +data is "..." + +@+4 +cs is high +data is {-} + +@1 <-> @9 : 8 clk +@9 <-> @13 : 4 clk +@13 <-> @21 : 8 clk +@21 <-> @25 : 4 clk +@25 <-> @29 : 4 clk + +highlight 21 to 29 : Optional for SPI Transactions\nwithout data + +@enduml diff --git a/resources/espressif__esp_hosted/docs/images/spi_hd_timing_4_lines.svg b/resources/espressif__esp_hosted/docs/images/spi_hd_timing_4_lines.svg new file mode 100644 index 0000000..dcd45a7 --- /dev/null +++ b/resources/espressif__esp_hosted/docs/images/spi_hd_timing_4_lines.svg @@ -0,0 +1 @@ +SPI HD Transaction Using Four Data LinesChip SelectClockData0-3Command (D0 only)Address (D0-3)DummyData (D0-3)...8 clk2 clk8 clk2 clk2 clkOptional for SPI Transactionswithout data \ No newline at end of file diff --git a/resources/espressif__esp_hosted/docs/images/spi_hd_timing_4_lines.txt b/resources/espressif__esp_hosted/docs/images/spi_hd_timing_4_lines.txt new file mode 100644 index 0000000..e9cdd28 --- /dev/null +++ b/resources/espressif__esp_hosted/docs/images/spi_hd_timing_4_lines.txt @@ -0,0 +1,42 @@ +@startuml +hide time-axis + +binary "Chip Select" as cs +clock "Clock" as clk with period 1 +concise "Data0-3" as data + +Title SPI HD Transaction Using Four Data Lines + +@0 +cs is high +data is {-} + +@+1 +cs is low +data is "Command (D0 only)" + +@+8 +data is "Address (D0-3)" + +@+2 +data is "Dummy" + +@+8 +data is "Data (D0-3)" + +@+2 +data is "..." + +@+2 +cs is high +data is {-} + +@1 <-> @9 : 8 clk +@9 <-> @11 : 2 clk +@11 <-> @19 : 8 clk +@19 <-> @21 : 2 clk +@21 <-> @23 : 2 clk + +highlight 19 to 23 : Optional for SPI Transactions\nwithout data + +@enduml diff --git a/resources/espressif__esp_hosted/docs/performance_optimization.md b/resources/espressif__esp_hosted/docs/performance_optimization.md new file mode 100644 index 0000000..b7cf70c --- /dev/null +++ b/resources/espressif__esp_hosted/docs/performance_optimization.md @@ -0,0 +1,102 @@ +# ESP-Hosted Performance Optimization Guide + +Quick reference for optimizing ESP-Hosted performance across different transport interfaces. + +## Quick Start - High Performance Config + +For immediate performance gains, add these to your host's `sdkconfig.defaults.esp32XX` file: + +``` +# Wi-Fi Performance +CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=16 +CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=64 +CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=64 +CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=y +CONFIG_ESP_WIFI_TX_BA_WIN=32 +CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=y +CONFIG_ESP_WIFI_RX_BA_WIN=32 + +# TCP/IP Performance +CONFIG_LWIP_TCP_SND_BUF_DEFAULT=65534 +CONFIG_LWIP_TCP_WND_DEFAULT=65534 +CONFIG_LWIP_TCP_RECVMBOX_SIZE=64 +CONFIG_LWIP_UDP_RECVMBOX_SIZE=64 +CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=64 +CONFIG_LWIP_TCP_SACK_OUT=y +``` + +> **Note**: Adjust values based on your MCU host's memory capacity and as per change as per build system + +## Transport Optimization + +### SDIO (Highest Performance) +- **Clock Speed**: Start at 20 MHz, optimize up to 50 MHz +- **Bus Width**: Use 4-bit mode +- **Hardware**: Use PCB with controlled impedance, external pull-ups (51kΩ) +- **Checksum**: Optional (SDIO hardware handles verification) + +``` +CONFIG_ESP_HOSTED_SDIO_CLOCK_FREQ_KHZ=40000 +CONFIG_ESP_HOSTED_SDIO_BUS_WIDTH=4 +``` + +> [!NOTE] +> See [Performance and Memory Usage](sdio.md#9-performance-and-memory-usage) on the trade-off between SDIO Performance and Memory Use + +### SPI Full-Duplex +- **Clock Speed**: ESP32: ≤10 MHz, Others: ≤40 MHz +- **Hardware**: Use IO_MUX pins, short traces (≤10cm for jumpers) +- **Checksum**: Mandatory (SPI hardware lacks error detection) + +``` +CONFIG_ESP_HOSTED_SPI_CLK_FREQ=40 +``` + +### SPI Half-Duplex +- **Data Lines**: Use 4-line (Quad SPI) mode +- **Similar optimizations as SPI Full-Duplex** + +### UART (Lowest Performance) +- **Baud Rate**: Use 921600 (highest stable rate) +- **Best for**: Low-throughput applications, debugging + +## Memory Optimization + +- Reduce memory footprint for resource-constrained applications: + + ``` + # Reduce queue sizes + CONFIG_ESP_HOSTED_SDIO_TX_Q_SIZE=10 # Default: 20 + CONFIG_ESP_HOSTED_SDIO_RX_Q_SIZE=10 # Default: 20 + + # Enable memory pooling + CONFIG_ESP_HOSTED_USE_MEMPOOL=y + ``` + +- Disable the not-in-use features + - For example, disable bluetooth if not needed +- Use external RAM, for higher memory (PSRAM is supported) +- Optimise internal RAM using [ESP-IDF iram optimization tricks](https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-guides/performance/ram-usage.html) +## Hardware Guidelines + +### Critical Requirements +1. **Signal Integrity**: Use PCB designs for production, jumpers only for prototyping +2. **Power Supply**: Stable 3.3V, proper decoupling capacitors +3. **Trace Length**: Match lengths, especially clock vs data lines +4. **Pull-ups**: Required for SDIO (51kΩ) on CMD, D0-D3 lines + +### PCB Design Checklist +- [ ] Equal trace lengths for communication signals +- [ ] Ground plane for signal stability +- [ ] Controlled impedance traces (50Ω typical) +- [ ] Series termination resistors for high-speed signals +- [ ] Extra GPIOs reserved for future features (deep sleep, etc.) + +## Development Workflow +1. **Proof of Concept**: Start with jumper wires, low clock speeds +2. **Incremental Optimization**: Increase transport clock step by step +3. **Hardware Validation**: Move to PCB for final validation +4. **Performance Tuning**: Optimize buffers and configurations +5. **Disable features**: Any unsued components from ESP-IDF or +ESP-Hosted-MCU features could be disabled for more memory +availability. diff --git a/resources/espressif__esp_hosted/docs/sdio.md b/resources/espressif__esp_hosted/docs/sdio.md new file mode 100644 index 0000000..219d02d --- /dev/null +++ b/resources/espressif__esp_hosted/docs/sdio.md @@ -0,0 +1,640 @@ +# ESP-Hosted SDIO Operation + +Sections 3 below covers the hardware requirements like external pull-up requirement, possible efuse burning for co-processor and other hardware aspects to consider for SDIO. + +Section 4 to 8 covers the complete step-wise setup co-processor and host with SDIO, for 1-bit and 4-bit SDIO. + +If you wish to skip the theory, you can refer the [Quick Start Guide](#1-quick-start-guide) below. For quick navigation, please unfold the Table of Contents below. + +

    +Table of Contents +1. [Quick Start Guide](#1-quick-start-guide) + +2. [Introduction](#2-introduction) + +3. [Hardware Considerations](#3-hardware-considerations) || [3.1 General Considerations](#31-general-considerations) || [3.2 Pull-up Resistors](#32-pull-up-resistors) || [3.3 Voltage Levels & eFuse burning](#33-voltage-levels--efuse-burning) || [3.4 Jumper Wires](#34-jumper-wires) || [3.5 PCB Design](#35-pcb-design) || [3.6 Advanced Considerations](#36-advanced-considerations) || [3.7 Testing Connections](#37-testing-connections) + +4. [Hardware Setup](#4-hardware-setup) + +5. [Set-Up ESP-IDF](#5-set-up-esp-idf) + +6. [Flashing the Co-processor](#6-flashing-the-co-processor) || [6.1 Create Co-processor Project](#61-create-co-processor-project) || [6.2 Co-processor Config](#62-co-processor-config) || [6.3 Co-processor Build](#63-co-processor-build) || [6.4 Co-processor Flashing](#64-co-processor-flashing) + +7. [Flashing the Host](#7-flashing-the-host) || [7.1 Select Example to Run in Hosted Mode](#71-select-example-to-run-in-hosted-mode) || [7.2 Host Project Component Configuration](#72-host-project-component-configuration) || [7.3 Menuconfig, Build and Flash Host](#73-menuconfig-build-and-flash-host) + +8. [Testing and Troubleshooting](#8-testing-and-troubleshooting) + +9. [Performance and Memory Usage](#9-performance-and-memory-usage) || [9.1 Stream and Packet Mode](#91-stream-and-packet-mode) || [9.2 Double Buffering on the Host](#92-double-buffering-on-the-host) || [9.3 Reducing Memory Usage](#93-reducing-memory-usage) || [9.4 Switching to Packet Mode](#94-switching-to-packet-mode) + +10. [References](#10-references) + +
    + +## 1 Quick Start Guide + +This section provides a brief overview of how to get started with ESP-Hosted using SDIO mode. For detailed instructions on each step, please refer to the following sections: + +- [4. Hardware Setup](#4-hardware-setup) +- [5. Set-Up ESP-IDF](#5-set-up-esp-idf) +- [6. Flashing the Co-processor](#6-flashing-the-co-processor) +- [7. Flashing the Host](#7-flashing-the-host) +- [8. Testing and Troubleshooting](#8-testing-and-troubleshooting) +- [9. Performance and Memory Usage](#9-performance-and-memory-usage) + +These sections will guide you through the process of flashing both the co-processor and host devices, setting up the hardware connections, and verifying successful communication. + +## 2 Introduction + +SDIO is a high-speed bus that uses the same SDMMC hardware protocol used for SD Cards, but with its own set of commands for communicating with SDIO aware peripherals. + +> [!NOTE] +> Only some ESP32 chips support the SDIO Protocol: +> +> A. SDIO as Slave (Co-processor): ESP32, ESP32-C6 \ +> B. SDIO as Master: ESP32, ESP32-S3, ESP32-P4 + + +## 3 Hardware Considerations + +### 3.1 GPIO Configuration for SDIO + +The SDIO interface can use almost any GPIO pins. For maximum speed and minimal delays, it is recommended to select the SDIO pin configuration that uses the dedicated `IO_MUX` pins. Hardware connections in later sections use `IO_MUX` pins, as much as possible. +ESP32 only supports `IO_MUX` pins for SDIO. other chips may support other flexible pins using GPIO_Matrix, with small performance penalty. + +### 3.2 Extra GPIO Signals Required + +Extra GPIO signals are required for SDIO on Hosted and can be assigned to any free GPIO pins: + +- `Reset` signal: an output signal from the host to the co-processor. When asserted, the host resets the co-processor. This is done when ESP-Hosted is started on the host, to synchronise the state of the host and co-processor. + +> [!NOTE] +> The `Reset` signal suggested to connect to the `EN` or `RST` pin on the co-processor, It is however configurable to use another GPIO pin. +> +> To configure this, use `idf.py menuconfig` on the co-processor: **Example configuration** ---> **SDIO Configuration** ---> **Host SDIO GPIOs** and set **Slave GPIO pin to reset itself**. + + +### 3.3 General Hardware Considerations + +- For SDIO, signal integrity is crucial, hence jumper wires are not recommended. +- Jumper wires are only suitable for initial testing and prototyping. +- If you wish, you can test SDIO 1-Bit mode using jumper cables, only for initial testing and prototyping. Pull-Ups are still mandatory for all, [CMD, DAT0, DAT1, DAT2, DAT3] irrespective how do you connect, using jumpers or PCB. +- Ensure equal trace lengths for all SDIO connections, whether using jumper wires or PCB traces. +- Very strict requirement, to keep wires as short as possible, under 5 cm. Smaller the better. +- Use the lower clock frequency like 5 MHz for evaluation. Once solution verified, optimise the clock frequency in increasing steps to max possible value. Max SDIO host clock frequency that all SDIO co-processors can work is upto 50 MHz. +- Provide proper power supply for both host and co-processor devices. Lower or incorrect power supplies can cause communication issues & suboptimal performance. + +### 3.4 Pull-up Resistors +- SDIO requires external pull-up resistor (51 kOhm recommended) and clean signals for proper operation. +- For this reason, it is not recommended to use jumper cables. Use PCB traces to connect between a Hosted Master and Co-processor. +- For full requirements, refer to ESP-IDF SDIO pull-up resistor requirements at [Pull-Up Requirements](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/sd_pullup_requirements.html). + +### 3.5 Voltage Levels & eFuse burning +- SDIO expects all signals to be at 3.3V level. If you are using level shifter, ensure that the level shifter output is set to 3.3V. +- If you use classic ESP32, there is good chance that you would need to burn the eFuse. +- eFuse burning is one time and **non reversible process**. You may brick your device, if burn the eFuse incorrectly. +- Please check full documentation at [eFuse burning](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/sd_pullup_requirements.html) If your chip is listed explicitly, not to burn eFuse, you can ignore this. +- This document covers below issues and their solutions: + - External pull-ups to be used on: CMD, DAT0, DAT1, DAT2, DAT3, with 51K Ohm recommended, irrespective of jumpers or PCB. + - Bootstrapping pin and DAT2 voltage issues and solution of eFuse burning, with complete procedure. + + +### 3.6 Jumper Wires (only for SDIO 1-Bit mode) + +- External Pull-ups mandatory for CMD, DAT0, DAT1, DAT2, DAT3 of 51 kOhm. +- Smaller the better, strictly under 5 cm. All equal length. +- Use high-quality, low-capacitance jumper wires. +- Arrange wires to minimize crosstalk, especially for clock and data lines. +- Possibly, use twisted pairs for clock and data lines to reduce electromagnetic interference. +- If possible, use a ground wire between every signal wire to improve signal integrity. +- Connect as many grounds as possible to improve common ground reference and reduce ground noise. + +### 3.7 PCB Design + +For optimal performance and reliability in production designs: + +- Ensure equal trace lengths for all SDIO signals (CLK, CMD, DAT0, DAT1, DAT2, DAT3) as much as possible. This practice, known as length matching, is crucial for maintaining signal integrity and reducing timing skew, especially at higher frequencies. +- If perfect length matching is not possible, prioritize matching the clock (CLK) trace length with the data lines. +- Use controlled impedance traces for high-speed signals. +- Place bypass capacitors close to the power pins of both the host and co-processor devices. +- Consider using series termination resistors on the clock and data lines to reduce reflections. +- For high-speed designs, use a 4-layer PCB with dedicated power and ground planes. + +### 3.8 Advanced Considerations + +- Calculate the maximum allowed trace length based on your clock frequency and PCB material. +- Consider the capacitive load on the SDIO bus, especially for longer traces +- For very high-speed designs, consider using differential signaling techniques. +- Implement proper EMI/EMC design techniques to minimize electromagnetic interference. + +## 4 Hardware Setup + +Setting up the hardware involves connecting the master and co-processor devices via the SDIO pins and ensuring all extra GPIO signals are properly connected. Below is the table of connections for the SDIO setup between a host ESP chipset and another ESP chipset as co-processor: + +### Host Connections + +SDIO-capable host microcontrollers (MCUs) can connect their GPIO lines to the co-processor as detailed in the table below. + +#### GPIO Flexibility + +- The ESP32 supports SDIO host on fixed GPIOs. +- The ESP32-S3 supports SDIO host on flexible GPIOs. +- For the ESP32-P4, Slot 0 supports fixed GPIOs, while Slot 1 supports flexible GPIOs. + +By default, Slot 1 is used on the ESP32-P4 to take advantage of its flexible pin mapping; however, Slot 0 is also supported. Parallel access to both Slot 0 and Slot 1 is supported for all hosts. + + +| Signal | ESP32 | ESP32-S3 | +|-----------|-------|----------| +| CLK | 14 | 19 | +| CMD | 15+[ext-pull-up](#34-pull-up-resistors) | 47+[ext-pull-up](#34-pull-up-resistors) | +| D0 | 2+[ext-pull-up](#34-pull-up-resistors) | 13+[ext-pull-up](#34-pull-up-resistors) | +| D1 | 4+[ext-pull-up](#34-pull-up-resistors) | 35+[ext-pull-up](#34-pull-up-resistors) | +| D2 | 12+[ext-pull-up](#34-pull-up-resistors) | 20+[ext-pull-up](#34-pull-up-resistors) | +| D3 | 13+[ext-pull-up](#34-pull-up-resistors) | 9+[ext-pull-up](#34-pull-up-resistors) | +| Reset Out | 5 | 42 | + +### ESP32-P4-Function-EV-Board Host Pin Mapping + +| Signal | ESP32-P4 with ESP32-C6 Co-processor | ESP32-P4 with ESP32-C5 Co-processor | +|-----------|-------------------------------------|-------------------------------------| +| CLK | 18 | 33 | +| CMD | 19+[ext-pull-up](#34-pull-up-resistors) | 4+[ext-pull-up](#34-pull-up-resistors) | +| D0 | 14+[ext-pull-up](#34-pull-up-resistors) | 20+[ext-pull-up](#34-pull-up-resistors) | +| D1 | 15+[ext-pull-up](#34-pull-up-resistors) | 23+[ext-pull-up](#34-pull-up-resistors) | +| D2 | 16+[ext-pull-up](#34-pull-up-resistors) | 21+[ext-pull-up](#34-pull-up-resistors) | +| D3 | 17+[ext-pull-up](#34-pull-up-resistors) | 22+[ext-pull-up](#34-pull-up-resistors) | +| Reset Out | 54 | 53 | + +> + +### Co-processor connections + +SDIO slave provider ESP chips are : ESP32, ESP32-C5, ESP32-C6.\ +All these chips have fixed GPIOs SDIO support. + +| Signal | ESP32 | ESP32-C6 | ESP32-C5 | +|----------|-------|----------|----------| +| CLK | 14 | 19 | 9 | +| CMD | 15 | 18 | 10 | +| D0 | 2 | 20 | 8 | +| D1 | 4 | 21 | 7 | +| D2 | 12 | 22 | 14 | +| D3 | 13 | 23 | 13 | +| Reset In | EN | EN/RST | RST | + +> [!NOTE] +> +> - External pull-ups are mandatory + +## 5 Set-Up ESP-IDF + +Before setting up the ESP-Hosted co-processor & host for SDIO mode, ensure that ESP-IDF is properly installed and set up on your system. + +### 5.1 Installer Way + +- **Windows** + - Install and setup ESP-IDF on Windows as documented in the [Standard Setup of Toolchain for Windows](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/windows-setup.html). + - Use the ESP-IDF [Powershell Command Prompt](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/windows-setup.html#using-the-command-prompt) for subsequent commands. + +- **Linux or MacOS** + - For bash: + ```bash + bash docs/setup_esp_idf__latest_stable__linux_macos.sh + ``` + - For fish: + ```fish + fish docs/setup_esp_idf__latest_stable__linux_macos.fish + ``` + +### 5.2 Manual Way + +Please follow the [ESP-IDF Get Started Guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/index.html) for manual installation. + +## 6. Flashing the Co-processor + +| Supported Co-processor Targets | ESP32 | ESP32-C6 | ESP32-C5 | +| ------------------------------ | ----- | -------- | -------- | + +There are four steps to flash the ESP-Hosted co-processor firmware: + +### 6.1 Create Co-processor Project + +1. Navigate to the directory where you want to create the co-processor project. +2. Use the following command to create a new project: + ```bash + idf.py create-project + ``` + Replace `` with your desired project name. + +### 6.2 Co-processor Config + +1. Navigate to the project directory: + ```bash + cd + ``` +2. Configure the project: + ```bash + idf.py menuconfig + ``` + +#### 6.2.1 Transport config + - Navigate to "Example configuration" -> "Transport layer" + - Select "SDIO" + +#### 6.2.2 Any other config + - Optionally, Configure any additional SDIO-specific settings like co-processor GPIOs, SDIO Mode, SDIO timing,etc. + +###### Generated files +- Generated config files are (1) `sdkconfig` file and (2) internal `sdkconfig.h` file. +- Please note, any manually changes done to these generated files, would not take effect. + +###### Defaulting specific config (Optional) +- This is advanced option, so please be careful. +- To mark some config options as default, you can add specific config line in file, `sdkconfig.defaults.`. So whenever next time building, you do not need to re-configure. + +### 6.3 Co-processor Build + +1. Build the project: + ```bash + idf.py build + ``` + +### 6.4 Co-processor Flashing + +There are two methods to flash the ESP-Hosted co-processor firmware: + +#### 6.4.1 Serial Flashing (Initial Setup) + +For the initial setup or when OTA is not available, use serial flashing. + +Flash the co-processor firmware using +``` +idf.py -p flash +``` + +> [!NOTE] +> +> If you are not able to flash the co-processor, there might be a chance that host is not allowing to to do so. +> +> Put host in bootloader mode using following command and then retry flashing the co-processor +> +> `esptool.py -p **** --before default_reset --after no_reset run` +> +> Flash the co-processor and log the output: +> +> `idf.py -p flash monitor` + +##### 6.4.2 Co-processor OTA Flashing (Subsequent Updates) + +For subsequent updates, you can re-use ESP-Hosted-MCU transport, as it should be already working. While doing OTA, Complete co-processor firmware image is not needed and only co-processor application partition, 'network_adapter.bin' need to be re-flashed remotely from host. + +1. Ensure your co-processor device is connected and communicating with the host with existing ESP-Hosted-MCU. + +2. Create a web server +You can re-use your existing web server or create a new locally for testing. Below is example to do it. + - Make a new directory so that web server can be run into it and navigate into it + - Create simple local web server using python3 + + ```bash + python3 -m http.server 8080 + ``` +3. Copy the co-processor app partition `network_adapter.bin` in the directory where you created the web server. + - The `network_adapter.bin` can be found in your co-processor project build at `/build/network_adapter.bin` + +4. Verify if web server is set-up correctly + - Open link `http://127.0.0.1:8080` in the browser and check if network_adapter.bin is available. + - Right click and copy the complete URL of this network_adapter.bin and note somewhere. + +5. On the **host side**, use the `esp_hosted_slave_ota` function to initiate the OTA update: + + ```c + #include "esp_hosted.h" + + const char* image_url = "http://example.com/path/to/network_adapter.bin"; //web server full url + esp_err_t ret = esp_hosted_slave_ota(image_url); + if (ret == ESP_OK) { + printf("co-processor OTA update failed[%d]\n", ret); + } + ``` + + This function will download the firmware in chunk by chunk as http client from the specified URL and flash it to the co-processor device through the established transport. + In above web server example, You can paste the copied url earlier. + + +6. Monitor the OTA progress through the console output on both the host and co-processor devices. + +> [!NOTE] +> +> A. The `esp_hosted_slave_ota` function is part of the ESP-Hosted-MCU API and handles the OTA process through the transport layer. \ +> B. Ensure that your host application has web server connectivity to download the firmware file. \ +> C. The co-processor device doesn't need to be connected to the web server for this OTA method. + +## 7 Flashing the Host + +| Supported Host Targets | Any ESP chipset | Any Non-ESP chipset | +| ----------------------- | --------------- | ------------------- | + +Any host having SDIO master can be used as host. Please make sure the hardware configurations, like external pull-ups are installed correctly. Tthe voltage at SDIO pins is expected to be 3v3 volts. +- ESP chipsets as SDIO master + - ESP as host could be one of ESP32, ESP32-S3, ESP32-P4. + - For ESP32 as host, may need additional **eFuse burning** for voltage correction on one of data pin. ESP32-S3 and ESP32-P4 does **not** need this. +- Non ESP SDIO Master + - Any other host having SDIO master can be used as host. Please make sure the hardware configurations, like ([external Pull-up Resistors](#42-pull-up-resistors)) are installed correctly. Tthe voltage at SDIO pins is expected to be 3v3 volts. +- Pull-ups required for CMD, DAT0, DAT1, DAT2, DAT3 lines (for both 1-Bit and 4-Bit SDIO) +- eFuse burning may be required for classic ESP32. +- Pull-Up and eFuse burning is detailed in [(3) Hardware Considerations](#3-hardware-considerations) + +### 7.1 Select Example to Run in Hosted Mode + +Select an example from the [ESP-IDF examples directory](https://github.com/espressif/esp-idf/tree/master/examples) that you wish to run in ESP-Hosted mode. All Wi-Fi and Bluetooth examples are supported. For simplicity and demonstration purposes, we will use the [ESP-IDF iperf example](https://github.com/espressif/esp-idf/tree/master/examples/wifi/iperf). + +### 7.2 Host Project Component Configuration + +Now that ESP-IDF is set up, follow these steps to prepare the host: + +###### 1. Navigate to the iperf example in your ESP-IDF directory: + ``` + cd $IDF_PATH/examples/wifi/iperf + ``` + +###### 2. Dependency components + Add the required components to the project's `idf_component.yml` file: + ``` + idf.py add-dependency "espressif/esp_wifi_remote" + idf.py add-dependency "espressif/esp_hosted" + ``` + +###### 3. Remove conflicting configuration + Open the `main/idf_component.yml` file and remove/comment the following block if present: + ``` + # ------- Delete or comment this block --------- + espressif/esp-extconn: + version: "~0.1.0" + rules: + - if: "target in [esp32p4]" + # ----------------------------------- + ``` + This step is necessary because esp-extconn and esp-hosted cannot work together. + +###### 4. Disable native Wi-Fi if available + If your host ESP chip already has native Wi-Fi support, disable it by editing the `components/soc//include/soc/Kconfig.soc_caps.in` file and changing all `WIFI` related configs to `n`. + + If you happen to have both, host and co-processor as same ESP chipset type (for example two ESP32-C2), note an [additional step](docs/troubleshooting/#1-esp-host-to-evaluate-already-has-native-wi-fi) + + +### 7.3 Menuconfig, Build and Flash Host + +##### 1. High performance configurations + This is optional step, suggested for high performance applications. + + If using ESP32-P4 as host: + - Remove the default `sdkconfig.defaults.esp32p4` file. + - Create a new `sdkconfig.defaults.esp32p4` file with the following content: + ``` + CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=16 + CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=64 + CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=64 + CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=y + CONFIG_ESP_WIFI_TX_BA_WIN=32 + CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=y + CONFIG_ESP_WIFI_RX_BA_WIN=32 + + CONFIG_LWIP_TCP_SND_BUF_DEFAULT=65534 + CONFIG_LWIP_TCP_WND_DEFAULT=65534 + CONFIG_LWIP_TCP_RECVMBOX_SIZE=64 + CONFIG_LWIP_UDP_RECVMBOX_SIZE=64 + CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=64 + + CONFIG_LWIP_TCP_SACK_OUT=y + ``` + + For other hosts also, you can merge above configs in corresponding `sdkconfig.defaults.esp32XX` file. + +###### 2. Set environment for your host ESP chip: + + ``` + idf.py set-target + ``` + Replace `` with your specific ESP chip (e.g., esp32, esp32s3, esp32p4). + +###### 3. Flexible Menuconfig configurations + + ``` + idf.py menuconfig + ``` + ESP-Hosted-MCU host configurations are available under "Component config" -> "ESP-Hosted config" + 1. Select "SDIO" as the transport layer + 2. Change co-processor chipset currently in-use under, "Slave chipset to be used" + 3. Change SDIO Bus Width to 1-bit or 4-bit based on the co-processor using "Hosted SDIO Configuration" -> "SDIO Bus Width" + 4. Optionally, configure SDIO-specific settings like: + + - SDIO Host GPIO Pins + + - Lower SDIO Clock Speed + You can use a lower clock speed to verify the connections. Start with a clock speed between 400 kHz to 20 MHz. + To configure this, use `Menuconfig` on the Host: **Component config** ---> **ESP-Hosted config** ---> **Hosted SDIO Configuration** and set **SDIO Clock Freq (in kHz)**. + > [!NOTE] + > + > The actual clock frequency used is determined by the hardware. Use an oscilloscope or logic analyzer to check the clock frequency. + + - Using 1-bit SDIO Mode + By default, SDIO operates in 4-Bit mode. + You can set the SDIO Bus Width to 1-Bit. In 1-Bit mode, only `DAT0` and `DAT1` signals are used for data and are less affected by noise on the signal lines. This can help you verify that the SDIO protocol is working at the logical level, if you have issues getting 4-Bit SDIO to work on your prototype board. + + To configure this, use `Menuconfig` on the Host: **Component config** ---> **ESP-Hosted config** ---> **Hosted SDIO Configuration** ---> **SDIO Bus Width** to **1 Bit**. + + - SDIO Mode + Packet or Streaming mode could be used, but co-processor has to use same SDIO mode used. + +> [!NOTE] + +> Pull-ups are still required on `DAT2` and `DAT3` lines to prevent +> the SDIO slave from going into SPI mode upon startup. + +After confirming the functionality of the 1-Bit SDIO mode, you can revert to the 4-Bit mode with PCB to benefit from increased data transfer rates. Using the previous configuration, switch back to `4 Bit`. + + +###### 4. Build the project: + ``` + idf.py build + ``` + +###### 5. Flash the firmware: + ``` + idf.py -p flash + ``` + +###### 6. Monitor the output: + ``` + idf.py -p monitor + ``` + - If host was put into bootloader mode earlier, it may need manual reset + +## 8 Testing and Troubleshooting + +After flashing both the co-processor and host devices, follow these steps to connect and test your ESP-Hosted SDIO setup: + +1. Connect the hardware: + - Follow the pin assignments for SDIO as specified in [Hardware Setup](#4-hardware-setup). + - Ensure all necessary connections are made, including power, ground, and the extra GPIO signals (Data_Ready and Reset). + +2. Power on both devices. Apply correct input rating power for both chipsets. + +3. Verify the connection: + - Check the serial output of both devices for successful initialization messages. + - Look for messages indicating that the SDIO transport layer has been established. + +4. Logs at both sides: + - Host: + + ``` + I (522) transport: Attempt connection with slave: retry[0] + I (525) transport: Reset slave using GPIO[54] + I (530) os_wrapper_esp: GPIO [54] configured + I (535) gpio: GPIO[54]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 + I (1712) transport: Received INIT event from ESP32 peripheral + I (1712) transport: EVENT: 12 + I (1712) transport: EVENT: 11 + I (1715) transport: capabilities: 0xe8 + I (1719) transport: Features supported are: + I (1724) transport: - HCI over SDIO + I (1728) transport: - BLE only + I (1732) transport: EVENT: 13 + I (1736) transport: ESP board type is : 13 + + I (1741) transport: Base transport is set-up + ``` + + - Co-processor: + + ``` + I (492) fg_mcu_slave: ********************************************************************* + I (501) fg_mcu_slave: ESP-Hosted-MCU Slave FW version :: X.Y.Z + + I (511) fg_mcu_slave: Transport used :: SDIO + I (520) fg_mcu_slave: ********************************************************************* + I (529) fg_mcu_slave: Supported features are: + I (534) fg_mcu_slave: - WLAN over SDIO + I (538) h_bt: - BT/BLE + I (541) h_bt: - HCI Over SDIO + I (545) h_bt: - BLE only + ``` + +5. Test basic functionality: + - The iperf example automatically attempts to connect to the configured Wi-Fi network. Watch the serial output for connection status. + - If the automatic connection fails, you can manually initiate a Wi-Fi scan and connection: + ``` + sta_scan + sta_connect + ``` +6. Additional commands to test: + - Get IP address: `sta_ip` + - Disconnect from Wi-Fi: `sta_disconnect` + - Set Wi-Fi mode: `wifi_mode ` (where mode can be 'sta', 'ap', or 'apsta') + +7. Advanced iperf testing: + Once connected, you can run iperf tests: + + | Test Case | Host Command | External STA Command | + |-----------|--------------|----------------------| + | UDP Host TX | `iperf -u -c -t 60 -i 3` | `iperf -u -s -i 3` | + | UDP Host RX | `iperf -u -s -i 3` | `iperf -u -c -t 60 -i 3` | + | TCP Host TX | `iperf -c -t 60 -i 3` | `iperf -s -i 3` | + | TCP Host RX | `iperf -s -i 3` | `iperf -c -t 60 -i 3` | + + Note: Replace `` with the IP address of the external STA, and `` with the IP address of the ESP-Hosted device. + +> [!TIP] +> +> To measure the optimal performance, check out the [Shield Box Test Setup](shield-box-test-setup.md). + +8. Troubleshooting: + - Consider using a lower clock speed or checking your [hardware setup](docs/sdio.md#7-hardware-setup) if you experience communication problems. + - ESP-Hosted-MCU troubleshooting guide: [docs/troubleshooting.md](docs/troubleshooting.md) + +9. Monitoring and debugging: + - Use the serial monitor on both devices to observe the communication between the host and co-processor. + - For more detailed debugging, consider using a logic analyzer to examine the SDIO signals. + - Use a logic analyzer or oscilloscope to verify the SDIO signals. + - Ensure that the power supply to both devices is stable and within the required voltage levels. + +## 9 Performance and Memory Usage + +Quick summary: + +- for maximum network performance, at the cost of more memory usage on host and co-processor, use SDIO Streaming Mode (default mode of operation) +- for lower memory usage, at the cost of lower network performance, use [SDIO Packet Mode](#94-switching-to-packet-mode) + +### 9.1 Stream and Packet Mode + +The co-processor SDIO can operate in two modes: Streaming Mode and Packet Mode. + +| **Streaming Mode** | **Packet Mode** | +| --- | --- | +| Co-processor combines multiple queued Tx packets together into one large packet | Co-processor queues individual Tx packets | +| Host fetches the large packet as one SDIO transfer | Host fetches each packet one at a time | +| Host breaks the large packet back into individual packets to send to the Rx queue | Host sends each packet to the Rx queue | +| More efficient (less SDIO overhead), but requires more memory at Host to hold the large packet | Less efficient (higher SDIO overhead for each packet), but minimises memory required at Host | + +### 9.2 Double Buffering on the Host + +The Host implements a double-buffering scheme to receive data. One thread fetches data (using hardware DMA) from the co-processor and stores it in one Rx buffer, while another thread breaks up previously received data into packets for processing. + +### 9.3 Reducing Memory Usage in Streaming Mode + +#### 9.3.1 Host Receive + +> [!NOTE] +> **Host Receive**: Router --Network Data--> Co-processor --SDIO--> Host + +In SDIO streaming mode, the host receives SDIO data from the co-processor in one large SDIO transfer. For this reason, **Streaming mode consumes more heap memory** compared to Packet mode, and has a higher throughput (less SDIO overhead). + +For Host systems with high heap memory usage, you can reduce the amount of heap memory used by ESP-Hosted for buffers, at the cost of reduced throughput, by adjusting the number of Tx buffers used by the co-processor. + +**On the co-processor**: run `idf.py menuconfig` ---> `Example Configuration` ---> `SDIO Configuration` and adjust `SDIO Tx queue size`. The default queue size is `20`. + +The table below shows the effect of changing `SDIO Tx queue size` on throughput and memory usage on the Host. The throughput numbers are obtained by using the RawTP option in ESP-Hosted to send / receive raw SDIO data. + +| SDIO Tx queue size | Host Rx Raw Throughput (Mbits/s) | Memory Used by Buffers (Tested) | Memory Used by Buffers (Theoretical) | +| ---: | ---: | ---: | ---: | +| 5 | 54 | 12,288 | 15,360 | +| 10 | 70 | 26,624 | 30,720 | +| 15 | 76 | 41,984 | 46,080 | +| 20 | 80 | 56,320 | 61,440 | +| 25 | 82 | 65,536 | 76,800 | +| 30 | 84 | 65,536 | 92,160 | + +> [!NOTE] +> The SDIO packet size is 1536 bytes. The co-processor can send at most `(Tx queue size) * 1536` bytes. Since the Host does double buffering, the theoretical Buffer Size needed is `2 * (Tx queue size) * 1536`. + +From the table above, throughput is more or less stagnant on and above Rx queue size of `25`. For a good trade off between memory consumption vs performance, the Rx queue sizes are currently defaulted to `20`. + +#### 9.3.2 Host Transmit + +> [!NOTE] +> **Host Transmit**: Host --SDIO--> Co-Processor --Network Data--> Router + +To reduce memory usage on the co-processor, you can reduce the number of buffers the co-processor uses to receive data from the Host. + +**On the co-processor**: run `idf.py menuconfig` ---> `Example Configuration` ---> `SDIO Configuration` and adjust `SDIO Rx queue size`. The default queue size is `20`. + +Reducing the number of Rx buffers on the co-processor can affect the Tx throughput from the Host if the number of Rx buffers is set to a small value. + +### 9.4 Switching to Packet Mode + +For mimimal memory usage with a lower throughput, you can switch to Packet Mode. To do this: + +- on the co-processor: run `idf.py menuconfig` ---> `Example Configuration` ---> `SDIO Configuration` and untoggle `Enable SDIO Streaming Mode` +- on the host: run `idf.py menuconfig` ---> `Component config` ---> `ESP-Hosted config` ---> `Hosted SDIO COnfiguration` ---> `SDIO Receive Optimization` and select either `No optimization` or `Always Rx Max Packet size`. `Always Rx Max Packet size` will give a slightly higher throughput. + +In Packet Mode, the host uses `2 * 1536` or `3,072` bytes of memory for Rx buffers. + +- with `No optimization`, Rx Raw Throughput is 33.0 Mbits/s +- with `Always Rx Max Packet size`, Rx Raw Throughput is 33.2 Mbits/s + +## 10 References + +- [ESP-IDF Programming Guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/) +- [ESP32 Hardware Design Guidelines](https://www.espressif.com/en/products/hardware/esp32/resources) +- [ESP SDIO Slave Communication](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/protocols/esp_sdio_slave_protocol.html) +- [ESP SDIO Card Slave Driver](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/sdio_slave.html) diff --git a/resources/espressif__esp_hosted/docs/setup_esp_idf__latest_stable__linux_macos.fish b/resources/espressif__esp_hosted/docs/setup_esp_idf__latest_stable__linux_macos.fish new file mode 100644 index 0000000..8502d4a --- /dev/null +++ b/resources/espressif__esp_hosted/docs/setup_esp_idf__latest_stable__linux_macos.fish @@ -0,0 +1,65 @@ +#!/usr/bin/env fish + +echo "Setting up ESP-IDF using fish" +set SHELL_RC "$HOME/.config/fish/config.fish" + +# Step 1: Check if curl and git are installed +echo "============== Step 1: Checking if dependencies ==========================" +if not type -q curl + echo "curl is not installed. Please install curl." + exit 1 +end + +if not type -q git + echo "git is not installed. Please install git." + exit 1 +end + +echo "Dependencies for current script are installed." + +# Step 2: Fetch the branches from the GitHub API and find the latest stable release branch +echo "============== Step 2: Fetching branch list from ESP-IDF GitHub API ==============" +set LATEST_BRANCH (curl -s https://api.github.com/repos/espressif/esp-idf/branches | grep -o '"name": "release/[^"]*' | awk -F'"' '{print $4}' | sort -V | tail -n 1) + +# Log the latest branch found +echo "Latest stable branch found: $LATEST_BRANCH" + +# Step 3: Clone or update the ESP-IDF repository +if not test -d "$HOME/esp-idf" + echo "============== Step 3: Cloning the ESP-IDF repository ================" + git clone -b "$LATEST_BRANCH" --recursive --depth 1 https://github.com/espressif/esp-idf.git "$HOME/esp-idf" +else + echo "ESP-IDF repository already exists." + cd "$HOME/esp-idf" || exit + git checkout "$LATEST_BRANCH" + git pull --recurse-submodules +end + +cd "$HOME/esp-idf" || exit +set IDF_COMMIT (git rev-parse HEAD) +echo "ESP-IDF is set to commit: $IDF_COMMIT" + +# Step 4: Set up the ESP-IDF environment +echo "============== Step 4: Setting up the ESP-IDF environment ================" +"$HOME/esp-idf/install.fish" +source "$HOME/esp-idf/export.fish" | source + +# Step 5: Add alias to Fish config +echo "============== Step 5: Adding alias to Fish configuration ===============" +if not grep -q "alias get-idf" "$SHELL_RC" + read -P "Do you want to add the alias 'get-idf' to $SHELL_RC? [yes/no] " response + if string match -i -r '^yes$' $response + echo "alias get-idf='source $HOME/esp-idf/export.fish | source'" >> "$SHELL_RC" + echo "ESP-IDF setup alias added to $SHELL_RC. Run 'get-idf' to configure your environment." + else + echo "Alias not added. You can manually add 'alias get-idf=\". $HOME/esp-idf/export.fish | source\"' to $SHELL_RC." + end +else + echo "ESP-IDF setup alias already exists in $SHELL_RC." +end + +# Step 6: Inform user to reload shell +echo "============== Step 6: Informing user to reload shell ===============" +echo "Please run 'source $SHELL_RC' to reload the shell with the new alias." +echo "In new shell, run 'get-idf' to enable ESP-IDF environment." + diff --git a/resources/espressif__esp_hosted/docs/setup_esp_idf__latest_stable__linux_macos.sh b/resources/espressif__esp_hosted/docs/setup_esp_idf__latest_stable__linux_macos.sh new file mode 100644 index 0000000..7bc13d5 --- /dev/null +++ b/resources/espressif__esp_hosted/docs/setup_esp_idf__latest_stable__linux_macos.sh @@ -0,0 +1,62 @@ +#!/usr/bin/env bash + +SHELL_RC="$HOME/.bashrc" + +# Step 1: Check if curl and git are installed +echo "============== Step 1: Checking if dependencies are installed ==============" +if ! command -v curl &> /dev/null; then + echo "curl is not installed. Please install curl." + exit 1 +fi + +if ! command -v git &> /dev/null; then + echo "git is not installed. Please install git." + exit 1 +fi + +echo "All required dependencies are installed." + +# Step 2: Fetch the branches from the GitHub API and find the latest stable release branch +echo "============== Step 2: Fetching branch list from ESP-IDF GitHub API ==============" +LATEST_BRANCH=$(curl -s https://api.github.com/repos/espressif/esp-idf/branches | grep -o '"name": "release/[^"]*' | awk -F'"' '{print $4}' | sort -V | tail -n 1) +echo "Latest stable branch found: $LATEST_BRANCH" + +# Step 3: Clone or update the ESP-IDF repository +if [ ! -d "$HOME/esp-idf" ]; then + echo "========= Step 3: Cloning the ESP-IDF repository (takes 3-4 mins) =============" + git clone -b "$LATEST_BRANCH" --recursive --depth 1 https://github.com/espressif/esp-idf.git "$HOME/esp-idf" +else + echo "ESP-IDF repository already exists. Updating..." + cd "$HOME/esp-idf" || exit + git checkout "$LATEST_BRANCH" + git pull --recurse-submodules +fi + +# Log the current commit hash +cd "$HOME/esp-idf" || exit +IDF_COMMIT=$(git rev-parse HEAD) +echo "<< ESP-IDF is set to commit: $IDF_COMMIT >>" + +# Step 4: Set up the ESP-IDF environment +echo "============== Step 4: Setting up the ESP-IDF environment ================" +"$HOME/esp-idf/install.sh" +source "$HOME/esp-idf/export.sh" + +# Step 5: Optionally add an alias to shell configuration for easy setup +echo "============== Step 5: Adding alias to shell configuration ===============" +if ! grep -q "alias get-idf" "$SHELL_RC"; then + read -p "Do you want to add the alias 'get-idf' to $SHELL_RC? [yes/no] " -r + if [[ $REPLY =~ ^[Yy][Ee][Ss]$ ]]; then + echo "alias get-idf='source $HOME/esp-idf/export.sh'" >> "$SHELL_RC" + echo "ESP-IDF setup alias added to $SHELL_RC. Run 'get-idf' to configure your environment." + else + echo "Alias not added. You can manually add 'alias get-idf=\"source $HOME/esp-idf/export.sh\"' to $SHELL_RC." + fi +else + echo "ESP-IDF setup alias already exists in $SHELL_RC." +fi + +# Step 6: Inform the user to reload the shell +echo "============== Step 6: Informing user to reload shell ===============" +echo "\nPlease run 'source $SHELL_RC' to reload the shell with the new alias." +echo "\nIn a new shell, run 'get-idf' to enable the ESP-IDF environment." diff --git a/resources/espressif__esp_hosted/docs/shield-box-test-setup.md b/resources/espressif__esp_hosted/docs/shield-box-test-setup.md new file mode 100644 index 0000000..c107a3a --- /dev/null +++ b/resources/espressif__esp_hosted/docs/shield-box-test-setup.md @@ -0,0 +1,75 @@ +# Shield Box Test Setup for ESP-Hosted + +Controlled RF environment for consistent throughput measurements and performance evaluation. + +## Overview + +**Shield Box Testing** uses RF-shielded enclosure to eliminate external interference and provide repeatable test conditions. + +**Key Benefits:** +- Controlled RF environment (no external Wi-Fi/cellular interference) +- Repeatable, consistent results +- Better measurement accuracy vs open air + + +## Equipment Required + +### Essential Components +- **RF Shield Box/Chamber**: Faraday cage enclosure +- **ESP32-P4 Function EV Board**: Host device +- **ESP32-C6/C5 Test Board**: Co-processor device +- **External PC**: For iPerf client/server +- **Router/Access Point**: Wi-Fi infrastructure +- **Ethernet Connection**: Wired backhaul to PC + +Please change the host and co-processor nodes as per current use-case under test. + +## Test Setup + +### Physical Configuration + +Shield box testing setup + +### Data Flow +- **PC to MCU Host**: + ``` + PC -> Router -> ESP Co-processor == SDIO/SPI/UART ==> ESP32-P4 + ``` +- **MCU Host to PC**: + ``` + PC <- Router <- ESP Co-processor <== SDIO/SPI/UART == ESP32-P4 + ``` + +**Traffic route:** +- PC-to-Router: Ethernet with static IP (eliminates wireless variables) +- Router-to-ESP: Wi-Fi connection (only wireless link in test chain) + +## Transport Configurations + +### SDIO (Highest Performance) +- **Clock**: 20-50 MHz (start low, optimize up) +- **Bus Width**: 4-bit mode +- **Hardware**: External pull-ups (51kΩ) on CMD, D0-D3 + +### SPI +- **Clock**: ESP32: ≤10 MHz, Others: ≤40 MHz +- **Mode**: Full-duplex (simple) or Quad SPI (highest throughput) + +### UART +- **Baud Rate**: 921600 (highest stable rate) +- **Use Case**: Low-throughput validation, debugging + + +## Shield Box vs Open Air + +| Aspect | Shield Box | Open Air | +|--------|------------|----------| +| **Repeatability** | High | Variable | +| **Interference** | Eliminated | Present | +| **Debugging** | Easier | Complex | +| **Reality** | Lower | Higher | + + +--- + +*For transport setup details: [SDIO](sdio.md) | [SPI Full-Duplex](spi_full_duplex.md) | [SPI Half-Duplex](spi_half_duplex.md) | [UART](uart.md)* \ No newline at end of file diff --git a/resources/espressif__esp_hosted/docs/spi_full_duplex.md b/resources/espressif__esp_hosted/docs/spi_full_duplex.md new file mode 100644 index 0000000..dad9738 --- /dev/null +++ b/resources/espressif__esp_hosted/docs/spi_full_duplex.md @@ -0,0 +1,565 @@ +# ESP-Hosted SPI FD (Full Duplex) Operation + +Sections 2 to 4 below covers the theoretical part where the SPI Full duplex design and implementation details are explained. + +Section 5 to 9 covers the complete step-wise setup co-processor and host with SPI Full Duplex, using 2 or 4 data lines. + +If you wish to skip the theory, you can refer the [Quick Start Guide](#1-quick-start-guide) below. For quick navigation, please unfold the Table of Contents below. + +
    +Table of Contents + +1. [Quick Start Guide](#1-quick-start-guide) + +2. [Introduction](#2-introduction) + +3. [High Level Design and Implementation](#3-high-level-design-and-implementation) || [3.1 Number of Pins Required](#31-number-of-pins-required) || [3.2 SPI Full Duplex Mode Implementation](#32-spi-full-duplex-mode-implementation) || [3.3 Code Reference](#35-code-reference) + +4. [Hardware Considerations](#4-hardware-considerations) || [4.1 General Considerations](#41-general-considerations) || [4.2 Jumper Wires](#42-jumper-wires) || [4.3 PCB Design](#43-pcb-design) || [4.4 Advanced Considerations](#44-advanced-considerations) + +5. [Hardware Setup](#5-hardware-setup) + +6. [Set-Up ESP-IDF](#6-set-up-esp-idf) + +7. [Flashing the Co-processor](#7-flashing-the-co-processor) || [7.1 Create Co-processor Project](#71-create-co-processor-project) || [7.2 Co-processor Config](#72-co-processor-config) || [7.3 Co-processor Build](#73-co-processor-build) || [7.4 Co-processor Flashing](#74-co-processor-flashing) || [7.4.1 Serial Flashing (Initial Setup)](#741-serial-flashing-initial-setup) || [7.4.2 Co-processor OTA Flashing (Subsequent Updates)](#742-co-processor-ota-flashing-subsequent-updates) + +8. [Flashing the Host](#8-flashing-the-host) || [8.1 Select Example to Run in Hosted Mode](#81-select-example-to-run-in-hosted-mode) || [8.2 Host Project Component Configuration](#82-host-project-component-configuration) || [8.3 Menuconfig, Build and Flash Host](#83-menuconfig-build-and-flash-host) + +9. [Testing and Troubleshooting](#9-testing-and-troubleshooting) + +10. [References](#10-references) + +
    + +## 1 Quick Start Guide + +This section provides a brief overview of how to get started with ESP-Hosted using SPI FD mode. For detailed instructions on each step, please refer to the following sections: + +- [5. Hardware Setup](#5-hardware-setup) +- [6. Set-Up ESP-IDF](#6-set-up-esp-idf) +- [7. Flashing the Co-processor](#7-flashing-the-co-processor) +- [8. Flashing the Host](#8-flashing-the-host) +- [9. Testing and Troubleshooting](#9-testing-and-troubleshooting) + +These sections will guide you through the process of flashing both the co-processor and host devices, setting up the hardware connections, and verifying successful communication. + +## 2 Introduction + +The ESP32 family of chips supports the standard SPI FD (Full Duplex) Mode Protocol. In this mode, SPI uses two data lines (MISO and MOSI) to transfer data to and from the co-processor simultaneously during an SPI transaction. + +## 3 High Level Design and Implementation + +SPI Full duplex mode is the simplest mode of operation in ESP-Hosted. It can be easily tested with jumper wires. It doesn't require much complex hardware setup. For any non ESP chipsets as host also can prefer this mode for testing. This can also served as stepping stone before moving on to more complex modes of operations, like Dual SPI, Quad SPI and SDIO. + +### 3.1 Number of Pins Required + +In SPI Full Duplex mode, the following pins are required: + +1. **MISO (Master In Slave Out)**: Data line for the co-processor to send data to the host. +2. **MOSI (Master Out Slave In)**: Data line for the host to send data to the co-processor. +3. **SCLK (Serial Clock)**: Clock signal generated by the host to synchronize data transmission. +4. **CS (Chip Select)**: Signal used by the host to select the co-processor for communication. +5. **Reset Pin**: An output signal from the host to the co-processor. When asserted, the host resets the co-processor to synchronize the state of the host and co-processor. +6. **Handshake Pin**: An output signal from the co-processor to the host. When asserted, it tells the host that the co-processor is ready for an SPI transaction. +7. **Data Ready Pin**: An output signal from the co-processor to the host. When asserted, the co-processor is telling the host that it has data to send. + +The SPI used is full duplex. Handshake, Data Ready and Reset are additional GPIOs used in addition to MISO, MOSI, SCLK and CS. All pins are mandatory. + +### 3.2 SPI Full Duplex Mode Implementation + +- This solution uses SPI full duplex communication mode: + - Read and write operations occur simultaneously in the same SPI transaction + +- Handshake and Data ready are configured as interrupts at host. On loading host, it should automatically reset the co-processor using reset pin. + +- Protocol rules: + - Host must not start a transaction before ESP SPI peripheral is ready + - ESP peripheral indicates readiness via Handshake pin + +- ESP peripheral preparation: + - Always ready for data reception from host + - Queues next SPI transaction immediately after completing previous one + +- SPI transaction structure: + - Each transaction has a TX buffer and an RX buffer + - TX buffer: Contains data ESP peripheral wants to send to host + - RX buffer: Empty space to hold data received from host + +- Buffer initialization: + - ESP peripheral sets TX and RX buffers to 1600 bytes (maximum size) + - Host can send/receive up to 1600 bytes per transaction + +- TX buffer scenarios: + 1. No data to transfer: + - Allocate 1600-byte dummy TX buffer + - Set packet length field in payload header to 0 + 2. Valid data to send: + - TX buffer points to that data + +- SPI transaction setup: + - Set transaction length to 1600 bytes regardless of TX buffer size + - Submit transaction to SPI driver on ESP peripheral + - Pull Handshake pin high to signal readiness + - If TX buffer has valid data, also pull Data ready pin high + +- Host response to Handshake / Data ready interrupt: + - Decide whether to perform SPI transaction (if Handshake is high) + - Perform transfer if Data ready pin is high or host has data to transfer + - If either condition is false, do not perform transfer, just ignore the interrupt + +- During SPI transaction: + - Exchange TX and RX buffers on SPI data lines + +- Post-transaction processing: + - Both ESP peripheral and host process received buffer based on payload header + +- Transaction completion: + - ESP peripheral pulls Handshake pin low + - If transaction had valid co-processor TX buffer, also pulls Data ready pin low + +### 3.3 Code Reference +For a detailed implementation of SPI full duplex communication using the ESP-Hosted framework, refer to the following code files in the ESP-Hosted repository: + +- **Master SPI Communication Code**: + - [spi_drv.c](https://github.com/espressif/esp-hosted-mcu/blob/main/host/drivers/transport/spi/spi_drv.c): Contains the implementation for configuring and handling SPI transactions on the master side. + - [spi_wrapper.c](https://github.com/espressif/esp-hosted-mcu/blob/main/host/port/spi_wrapper.c): Provides an OS abstraction layer for SPI operations, making it easier to handle SPI communication in a platform-independent manner. + +- **Co-processor SPI Communication Code**: + - [spi_slave_api.c](https://github.com/espressif/esp-hosted-mcu/blob/main/slave/main/spi_slave_api.c): Includes the setup and transaction handling for the SPI co-processor, detailing how the co-processor should configure its SPI interface and handle incoming and outgoing data. + +## 4 Hardware Considerations + +### 4.1 General Considerations + +- Ensure equal trace lengths for all SPI connections, whether using jumper wires or PCB traces. +- Use the lower clock frequency like 5 MHz for evaluation. Once solution verified, optimise the clock frequency in increasing steps to max possible value. To find out practical maximum SPI slave frequency for your co-processor, check `IDF_PERFORMANCE_MAX_SPI_CLK_FREQ` in [ESP-IDF SPI slave benchmark](https://github.com/espressif/esp-idf/blob/master/components/esp_driver_spi/test_apps/components/spi_bench_mark/include/spi_performance.h) +- Verify voltage compatibility between host and co-processor devices. +- Provide proper power supply decoupling for both host and co-processor devices. + +### 4.2 Jumper Wires + +- Jumper wires are suitable for initial testing and prototyping. +- Use high-quality, low-capacitance jumper wires. +- Keep wires as short as possible, ideally under 10 cm. +- Arrange wires to minimize crosstalk, especially for clock and data lines. +- Possibly, use twisted pairs for clock and data lines to reduce electromagnetic interference. +- If possible, use a ground wire between every signal wire to improve signal integrity. +- Connect as many grounds as possible to improve common ground reference and reduce ground noise. + +### 4.3 PCB Design + +For optimal performance and reliability in production designs: + +- Ensure equal trace lengths for all SPI signals (CLK, MOSI, MISO, CS) as much as possible. This practice, known as length matching, is crucial for maintaining signal integrity and reducing timing skew, especially at higher frequencies. +- If perfect length matching is not possible, prioritize matching the clock (CLK) trace length with the data lines. +- Use controlled impedance traces for high-speed signals. +- Place bypass capacitors close to the power pins of both the host and co-processor devices. +- Consider using series termination resistors on the clock and data lines to reduce reflections. +- For high-speed designs, use a 4-layer PCB with dedicated power and ground planes. + +### 4.4 Advanced Considerations + +- Calculate the maximum allowed trace length based on your clock frequency and PCB material. +- Consider the capacitive load on the SPI bus, especially for longer traces or when using multiple co-processor devices. +- For very high-speed designs, consider using differential signaling techniques. +- Implement proper EMI/EMC design techniques to minimize electromagnetic interference. + + +**Debugging Tips** + +- Use an oscilloscope or logic analyzer to verify signal integrity and timing. +- Start with a lower clock frequency and gradually increase it while monitoring performance. +- Ensure proper grounding between the host and co-processor devices. +- If using multiple power supplies, ensure they share a common ground. +- Consider using level shifters if the host and co-processor operate at different voltage levels. + +## 5 Hardware Setup + +Setting up the hardware involves connecting the master and co-processor devices via the SPI pins and ensuring all extra GPIO signals are properly connected. Below is the table of connections for the SPI full duplex setup between an host ESP chipset and another ESP chipset as co-processor: + + +### Host connections + +| Signal | ESP32 | ESP32-S2/S3 | ESP32-C2/C3/C5/C6 | ESP32-P4 (ESP32-P4-Function-EV-Board) | +|-------------|-------|-------------|-------------------|---------------------------------------| +| CLK | 14 | 12 | 6 | 18 | +| MOSI | 13 | 11 | 7 | 14 | +| MISO | 12 | 13 | 2 | 15 | +| CS | 15 | 10 | 10 | 19 | +| Handshake | 26 | 17 | 3 | 16 | +| Data Ready | 4 | 4 | 4 | 17 | +| Reset Out | 5 | 5 | 5 | 54 | + + +### Co-processor connections + +| Signal | ESP32 | ESP32-C2/C3/C5/C6 | ESP32-S2/S3 | ESP32-C6 on ESP32-P4-Function-EV-Board | +|-------------|-------|-------------------|-------------|---------------------------------------| +| CLK | 14 | 6 | 12 | 19 | +| MOSI | 13 | 7 | 11 | 20 | +| MISO | 12 | 2 | 13 | 21 | +| CS | 15 | 10 | 10 | 18 | +| Handshake | 26 | 3 | 17 | 22 | +| Data Ready | 4 | 4 | 5 | 23 | +| Reset In | EN | EN/RST | EN/RST | EN/RST | + + +> [!NOTE] +> - Always try to use IO_MUX pins from the datasheet for optimal performance on both sides. +> - These GPIO assignments are based on default Kconfig configurations & are configurable. +> - Once ported, any other non ESP host with standard SPI can be used. +> - All ESP chipsets support SPI Full Duplex mode. Chipsets with Wi-Fi/Bluetooth can be used as co-processor. + +> [!IMPORTANT] +> - Ensure proper grounding between host and co-processor devices. +> - Use short, high-quality cables for connections. +> - For production designs, consider using a properly designed PCB with controlled impedance traces. + +## 6 Set-Up ESP-IDF + +Before setting up the ESP-Hosted host & co-processor for SPI Full Duplex mode, ensure that ESP-IDF is properly installed and set up on your system. + +#### Option 1: Installer Way + +- **Windows** + - Install and setup ESP-IDF on Windows as documented in the [Standard Setup of Toolchain for Windows](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/windows-setup.html). + - Use the ESP-IDF [Powershell Command Prompt](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/windows-setup.html#using-the-command-prompt) for subsequent commands. + +- **Linux or MacOS** + - For bash: + ```bash + bash docs/setup_esp_idf__latest_stable__linux_macos.sh + ``` + - For fish: + ```fish + fish docs/setup_esp_idf__latest_stable__linux_macos.fish + ``` + +#### Option 2: Manual Way + +Please follow the [ESP-IDF Get Started Guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/index.html) for manual installation. + +## 7 Flashing the Co-processor + +| Supported Co-processor Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-S2 | ESP32-S3 | +| ------------------------------ | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | + +There are two methods to flash the ESP-Hosted co-processor firmware: + +### 7.1 Create Co-processor Project +1. Create co-processor project possibly outside of ESP-IDF project directory using + + ```bash + idf.py create-project-from-example "espressif/esp_hosted:slave" + ``` + +2. Navigate to the created project directory. + +3. Configure the project for your target ESP chip: + + ```bash + idf.py set-target + ``` + Replace `` with your specific ESP chip (e.g., esp32c3, esp32s3). + +### 7.2 Co-processor Config +Configure the co-processor project using +``` +idf.py menuconfig +``` + +#### 7.2.1 Transport config + - Navigate to "Example configuration" -> "Transport layer" + - Select "SPI Full-duplex" + +#### 7.2.2 Any other config + Optionally, configure any additional SPI-specific settings under "SPI Full-duplex" + - Set the GPIO pins for SPI signals (MOSI, MISO, CLK, CS), Handshake, Data Ready, Reset + - Configure SPI mode (0, 1, 2, or 3) + - Set the SPI clock frequency + - Checksum enable/disable (Checksum is recommended to be enabled as spi hardware doesn't have any error detection) + +###### Generated files +- Generated config files are (1) `sdkconfig` file and (2) internal `sdkconfig.h` file. +- Please note, any manually changes done to these generated files, would not take effect. + +###### Defaulting specific config (Optional) +- This is advanced option, so please be careful. +- To mark some config options as default, you can add specific config line in file, `sdkconfig.defaults.`. So whenever next time building, you do not need to re-configure. + +### 7.3 Co-processor Build +Build the co-processor project + +``` +idf.py build +``` + +### 7.4 Co-processor Flashing + +##### 7.4.1 Serial Flashing (Initial Setup) + +For the initial setup or when OTA is not available, use serial flashing. + +Flash the co-processor firmware using +``` +idf.py -p flash +``` + +> [!NOTE] +> If you are not able to flash the co-processor, there might be a chance that host is not allowing to to do so. +> +> Put host in bootloader mode using following command and then retry flashing the co-processor +> +> `esptool.py -p **** --before default_reset --after no_reset run` +> +> Flash the co-processor and log the output: +> +> `idf.py -p flash monitor` + +##### 7.4.2 Co-processor OTA Flashing (Subsequent Updates) + +For subsequent updates, you can re-use ESP-Hosted-MCU transport, as it should be already working. While doing OTA, Complete co-processor firmware image is not needed and only co-processor application partition, 'network_adapter.bin' need to be re-flashed remotely from host. + +1. Ensure your co-processor device is connected and communicating with the host with existing ESP-Hosted-MCU. + +2. Create a web server +You can re-use your existing web server or create a new locally for testing. Below is example to do it. + - Make a new directory so that web server can be run into it and navigate into it + - Create simple local web server using python3 + + ```bash + python3 -m http.server 8080 + ``` +3. Copy the co-processor app partition `network_adapter.bin` in the directory where you created the web server. + - The `network_adapter.bin` can be found in your co-processor project build at `/build/network_adapter.bin` + +4. Verify if web server is set-up correctly + - Open link `http://127.0.0.1:8080` in the browser and check if network_adapter.bin is available. + - Right click and copy the complete URL of this network_adapter.bin and note somewhere. + +5. On the **host side**, use the `esp_hosted_slave_ota` function to initiate the OTA update: + + ```c + #include "esp_hosted.h" + + const char* image_url = "http://example.com/path/to/network_adapter.bin"; //web server full url + esp_err_t ret = esp_hosted_slave_ota(image_url); + if (ret == ESP_OK) { + printf("co-processor OTA update failed[%d]\n", ret); + } + ``` + + This function will download the firmware in chunk by chunk as http client from the specified URL and flash it to the co-processor device through the established transport. + In above web server example, You can paste the copied url earlier. + + +6. Monitor the OTA progress through the console output on both the host and co-processor devices. + +> [!NOTE] +> +> A. The `esp_hosted_slave_ota` function is part of the ESP-Hosted-MCU API and handles the OTA process through the transport layer. \ +> B. Ensure that your host application has web server connectivity to download the firmware file. \ +> C. The co-processor device doesn't need to be connected to the web server for this OTA method. + +## 8 Flashing the Host + +| Supported Host Targets | Any ESP chipset | Any Non-ESP chipset | +| ----------------------- | --------------- | ------------------- | + +### 8.1 Select Example to Run in Hosted Mode + +Select an example from the [ESP-IDF examples directory](https://github.com/espressif/esp-idf/tree/master/examples) that you wish to run in ESP-Hosted mode. All Wi-Fi and Bluetooth examples are supported. For simplicity and demonstration purposes, we will use the [ESP-IDF iperf example](https://github.com/espressif/esp-idf/tree/master/examples/wifi/iperf). + +### 8.2 Host Project Component Configuration + +Now that ESP-IDF is set up, follow these steps to prepare the host: + +###### 1. Navigate to the iperf example in your ESP-IDF directory: + ``` + cd $IDF_PATH/examples/wifi/iperf + ``` + +###### 2. Dependency components + Add the required components to the project's `idf_component.yml` file: + ``` + idf.py add-dependency "espressif/esp_wifi_remote" + idf.py add-dependency "espressif/esp_hosted" + ``` + +###### 3. Remove conflicting configuration + Open the `main/idf_component.yml` file and remove/comment the following block if present: + ``` + # ------- Delete or comment this block --------- + espressif/esp-extconn: + version: "~0.1.0" + rules: + - if: "target in [esp32p4]" + # ----------------------------------- + ``` + This step is necessary because esp-extconn and esp-hosted cannot work together. + +###### 4. Disable native Wi-Fi if available +If your host ESP chip already has native Wi-Fi support, disable it by editing the `components/soc//include/soc/Kconfig.soc_caps.in` file and changing all `WIFI` related configs to `n`. + +If you happen to have both, host and co-processor as same ESP chipset type (for example two ESP32-C2), note an [additional step](docs/troubleshooting/#1-esp-host-to-evaluate-already-has-native-wi-fi) + +### 8.3 Menuconfig, Build and Flash Host + +##### 1. High performance configurations + This is optional step, suggested for high performance applications. + + If using ESP32-P4 as host: + - Remove the default `sdkconfig.defaults.esp32p4` file. + - Create a new `sdkconfig.defaults.esp32p4` file with the following content: + ``` + CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=16 + CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=64 + CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=64 + CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=y + CONFIG_ESP_WIFI_TX_BA_WIN=32 + CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=y + CONFIG_ESP_WIFI_RX_BA_WIN=32 + + CONFIG_LWIP_TCP_SND_BUF_DEFAULT=65534 + CONFIG_LWIP_TCP_WND_DEFAULT=65534 + CONFIG_LWIP_TCP_RECVMBOX_SIZE=64 + CONFIG_LWIP_UDP_RECVMBOX_SIZE=64 + CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=64 + + CONFIG_LWIP_TCP_SACK_OUT=y + ``` + + For other hosts also, you can merge above configs in corresponding `sdkconfig.defaults.esp32XX` file. + +###### 2. Set environment for your host ESP chip: + + ``` + idf.py set-target + ``` + +###### 3. Flexible Menuconfig configurations + + ``` + idf.py menuconfig + ``` + ESP-Hosted-MCU host configurations are available under "Component config" -> "ESP-Hosted config" + 1. Select "SPI Full-duplex" as the transport layer + 2. Change co chipset to connect to under "slave chipset to be used" + 3. Optionally, configure SPI-specific settings like + - SPI Clock Freq (MHz) + - SPI Mode + - SPI Pins + - SPI Checksum Enable/Disable (Checksum is recommended to be enabled as spi hardware doesn't have any error detection) + +> [!NOTE] +> The actual clock frequency used is determined by the hardware. Use an oscilloscope or logic analyzer to check the clock frequency. + +###### 4. Build the project: + ``` + idf.py build + ``` + +###### 5. Flash the firmware: + ``` + idf.py -p flash + ``` + +###### 6. Monitor the output: + + ``` + idf.py -p monitor + ``` + + - If host was put into bootloader mode earlier, it may need manual reset + +## 9 Testing and Troubleshooting + +After flashing both the co-processor and host devices, follow these steps to connect and test your ESP-Hosted SPI Full Duplex setup: + +1. Connect the hardware: + - Follow the pin assignments for SPI Full Duplex as specified in [Hardware Setup](docs/spi_full_duplex.md#5-hardware-setup). + - Ensure all necessary connections are made, including power, ground, and the extra GPIO signals (Data_Ready and Reset). + +2. Power on both devices. + +3. Verify the connection: + - Check the serial output of both devices for successful initialization messages. + - Look for messages indicating that the SPI Full Duplex transport layer has been established + +4. Logs at both sides: + - Host: + + ``` + I (522) transport: Attempt connection with slave: retry[0] + I (525) transport: Reset slave using GPIO[54] + I (530) os_wrapper_esp: GPIO [54] configured + I (535) gpio: GPIO[54]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 + I (1712) transport: Received INIT event from ESP32 peripheral + I (1712) transport: EVENT: 12 + I (1712) transport: EVENT: 11 + I (1715) transport: capabilities: 0xe8 + I (1719) transport: Features supported are: + I (1724) transport: - HCI over SPI + I (1728) transport: - BLE only + I (1732) transport: EVENT: 13 + I (1736) transport: ESP board type is : 13 + + I (1741) transport: Base transport is set-up + ``` + + - Co-processor: + + ``` + I (492) fg_mcu_slave: ********************************************************************* + I (501) fg_mcu_slave: ESP-Hosted-MCU Slave FW version :: X.Y.Z + + I (511) fg_mcu_slave: Transport used :: SPI + I (520) fg_mcu_slave: ********************************************************************* + I (529) fg_mcu_slave: Supported features are: + I (534) fg_mcu_slave: - WLAN over SPI + I (538) h_bt: - BT/BLE + I (541) h_bt: - HCI Over SPI + I (545) h_bt: - BLE only + ``` + +5. Test basic functionality: + - The iperf example automatically attempts to connect to the configured Wi-Fi network. Watch the serial output for connection status. + - If the automatic connection fails, you can manually initiate a Wi-Fi scan and connection: + ``` + sta_scan + sta_connect + ``` +6. Additional commands to test: + - Get IP address: `sta_ip` + - Disconnect from Wi-Fi: `sta_disconnect` + - Set Wi-Fi mode: `wifi_mode ` (where mode can be 'sta', 'ap', or 'apsta') + +7. Advanced iperf testing: + Once connected, you can run iperf tests to verify performance: + + | Test Case | Host Command | External STA Command | + |-----------|--------------|----------------------| + | UDP Host TX | `iperf -u -c -t 60 -i 3` | `iperf -u -s -i 3` | + | UDP Host RX | `iperf -u -s -i 3` | `iperf -u -c -t 60 -i 3` | + | TCP Host TX | `iperf -c -t 60 -i 3` | `iperf -s -i 3` | + | TCP Host RX | `iperf -s -i 3` | `iperf -c -t 60 -i 3` | + + Note: Replace `` with the IP address of the external STA, and `` with the IP address of the ESP-Hosted device. + +> [!TIP] +> +> To measure the optimal performance, check out the [Shield Box Test Setup](shield-box-test-setup.md). + +8. Troubleshooting: + - If you encounter issues, refer to section 6.3 for testing the SPI connection. + - Consider using a lower clock speed or checking your [hardware connections](#5-hardware-setup) if you experience communication problems. + - ESP-Hosted-MCU troubleshooting guide: [docs/troubleshooting.md](docs/troubleshooting.md) + +9. Monitoring and debugging: + - Use the serial monitor on both devices to observe the communication between the host and co-processor. + - For more detailed debugging, consider using a logic analyzer to examine the SPI signals. + +## 10 References +- [ESP-IDF Programming Guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/) +- [ESP32 Hardware Design Guidelines](https://www.espressif.com/en/products/hardware/esp32/resources) +- [SPI Protocol Basics](https://en.wikipedia.org/wiki/Serial_Peripheral_Interface) diff --git a/resources/espressif__esp_hosted/docs/spi_half_duplex.md b/resources/espressif__esp_hosted/docs/spi_half_duplex.md new file mode 100644 index 0000000..ed35b53 --- /dev/null +++ b/resources/espressif__esp_hosted/docs/spi_half_duplex.md @@ -0,0 +1,811 @@ +# ESP-Hosted SPI HD (Half Duplex) Operation + +Sections 2 to 6 below covers the theoretical part where the SPI Half duplex protocol and expected framing structure is explained. This frame structure is flexible. Host and Co-processor follow the same frame structure. + +Section 7 to 11 covers the complete step-wise setup co-processor and host with SPI Half Duplex, using 2 or 4 data lines. + +If you wish to skip the theory, you can refer the [Quick Start Guide](#1-quick-start-guide) below. For quick navigation, please unfold the Table of Contents below. + +
    +Table of Contents + + +- [1. Quick Start Guide](#1-quick-start-guide) + +- [2. Introduction](#2-introduction) + +- [3. SPI HD Configuration](#3-spi-hd-configuration) => [1 Clock and Phase](#31-clock-and-phase) || [2 Data Lines](#32-data-lines) || [3 Extra GPIO Signals](#33-extra-gpio-signals) || [4 Pin Assignments](#34-pin-assignments) + +- [4. SPI HD Protocol](#4-spi-hd-protocol) => [1 Data IO Modes](#41-data-io-modes) || [2 Supported Commands](#42-supported-commands) || [3 Registers Used](#43-registers-used) || [4 Timing Diagrams](#44-timing-diagrams) + +- [5. SPI HD Operation](#5-spi-hd-operation) => [1 Initialization](#51-initialization) || [2 Co-processor to Host Transfer](#52-co-processor-to-host-transfer) || [3 Host to Co-processor Transfer](#53-host-to-co-processor-transfer) || [4 Code Reference](#54-code-reference) + +- [6. Hardware Considerations](#6-hardware-considerations) => [1 General Considerations](#61-general-considerations) || [2 Jumper Wires](#62-jumper-wires) || [3 PCB Design](#63-pcb-design) || [4 Advanced Considerations](#64-advanced-considerations) + +- [7. Hardware Setup](#7-hardware-setup) + +- [8. Set-Up ESP-IDF](#8-set-up-esp-idf) => [Option 1: Installer Way](#option-1-installer-way) || [Option 2: Manual Way](#option-2-manual-way) + +- [9. Flashing the Co-processor](#9-flashing-the-co-processor) => [1 Create Co-processor Project](#91-create-co-processor-project) || [2 Co-processor Config](#92-co-processor-config) || [3 Co-processor Build](#93-co-processor-build) || [4 Co-processor Flashing](#94-co-processor-flashing) + +- [10. Flashing the Host](#10-flashing-the-host) => [1 Select Example to Run in Hosted Mode](#101-select-example-to-run-in-hosted-mode) || [2 Host Project Component Configuration](#102-host-project-component-configuration) || [3 Menuconfig, Build and Flash Host](#103-menuconfig-build-and-flash-host) + +- [11. Testing and Troubleshooting](#11-testing-and-troubleshooting) + +- [12. References](#12-references) + +
    + +## 1 Quick Start Guide + +This section provides a brief overview of how to get started with ESP-Hosted using SPI HD mode, bypassing the theory and explanation. Please refer to the following sections to quickly set-up demo. + +- [7. Hardware Setup](#7-hardware-setup) +- [8. Set-Up ESP-IDF](#8-set-up-esp-idf) +- [9. Flashing the Co-processor](#9-flashing-the-co-processor) +- [10. Flashing the Host](#10-flashing-the-host) +- [11. Testing and Troubleshooting](#11-testing-and-troubleshooting) + +These sections will guide you through the process of configuring and flashing both the co-processor and host devices, setting up the hardware connections, and verifying successful communication. + +## 2 Introduction + +The ESP32 family of chips (except the ESP32) support the SPI co-processor HD (Half Duplex) Mode Protocol. + +In this mode of operation, SPI supports 2 or 4 data lines to transfer data to the co-processor or from the co-processor (half duplex) during an SPI transaction. This is different from 'standard' SPI mode which transfers data bidirectionally (full duplex) over two data lines (one for host to co-processor data [MOSI], one for co-processor to host data [MISO]) during an SPI transaction. + +> [!NOTE] +> +> SPI Half Duplex mode is not supported on the classic ESP32. Other all chipsets support half duplex. +> Please use SPI full duplex for classic ESP32 + +> [!IMPORTANT] +> +> SPI Half Duplex is not an industry standard and has multiple +> implementations. Make sure your host processor supports the SPI HD +> protocol implemented by the Hosted co-processor before proceeding. See [SPI HD protocol used by Hosted](#4-spi-hd-protocol). + +## 3 SPI HD Configuration + +To enable SPI HD on the Host and co-processor using `idf.py menuconfig`: + +1. On Host: **Component config** ---> **ESP-Hosted config** ---> + **Transport layer** and choose **SPI Half-duplex**. +2. On Co-processor: **Example configuration** ---> **Transport layer** and + choose **SPI Half-duplex**. + +### 3.1 Clock and Phase + +The standard SPI CPOL clock and CPHA phase must be configured +correctly on both the host and co-processor for the protocol to work. + +### 3.2 Data Lines + +Both the host and co-processor can support two or four data lines. Four data lines will be used to transfer data if configured on both the host and co-processor. If the host is configured to use two data lines, only two lines will be used to transfer data even if the co-processor is configured to use four data lines. + +### 3.3 Extra GPIO Signals + +Extra GPIO signals are required for SPI HD on Hosted and can be +assigned to any free GPIO pins: + +- `Data_Ready` signal: an output signal from the co-processor to the host. When asserted, the co-processor is telling the host that it has data to send. The host should perform a data read SPI transaction to fetch data from the co-processor. +- `Reset` signal: an output signal from the host to the co-processor. When asserted, the host resets the co-processor. This is done when ESP-Hosted is started on the host, to synchronise the state of the host and co-processor. + +> [!NOTE] +> The `Reset` signal can be configured to connect to the `EN` or `RST` +> pin on the co-processor, or assigned to a GPIO pin on the co-processor. +> +> To configure this, use `idf.py menuconfig` on the co-processor: **Example +> configuration** ---> **SPI Half-duplex Configuration** ---> +> **GPIOs** and set **Slave GPIO pin to reset itself**. + +### 3.4 Pin Assignments + +Using the pins already assigned to SPI signals (dedicated `IO_MUX` pins) is recommended to minimise propagation delays. Using other GPIO pins for SPI signals will route the signals through the GPIO matrix which may limit the maximum clock frequency that can be used. + +The following table shows the mapping between the SPI bus signals and +their SPI HD Function: + +| SPI Bus Signal | SPI HD Function | Applicable | +| :-------------: | :--------------: | :--------------: | +| SPI_CS | Chip Select | Dual, Quad SPI | +| SPICLK | Clock | Dual, Quad SPI | +| SPID | Data Bit 0 | Dual, Quad SPI | +| SPIQ | Data Bit 1 | Dual, Quad SPI | +| SPIWP | Data Bit 2 | Quad SPI | +| SPIHD | Data Bit 3 | Quad SPI | +| Data_Ready | Extra GPIO\* | Dual, Quad SPI | +| Reset | Extra GPIO\* | Dual, Quad SPI | + +- Extra GPIOs `Data_Ready`, `Reset` are explained above in [3.3 Extra GPIO Signals](#33-extra-gpio-signals) +- The `SPI HD CS signal`, `Data_Ready` and `Reset` can be assigned to any GPIO pin on the host and co-processor. +- By default, the SPI bus would idle (no CS, no clock, no data) when no transaction needed from either side, co-processor or host. +- `Data_Ready` could be made optional with some code changes, but it would mean that the SPI bus would not be idled out when no transaction needed. This would be lower number of GPIOs used, but the power consumption would be higher. We are adding this feature soon. + +## 4 SPI HD Protocol + +Hosted uses the ESP SPI co-processor HD (Half Duplex) Mode Protocol (see [References](#11-references)) with some modifications. + +### 4.1 Data IO Modes + +When communicating with the co-processor, the master uses the Command, Address, Dummy and Data phases during an SPI transaction. The number of bits and number of data lines used in each phase are: + +- **Command**: 8 bits, 1 data line +- **Address**: 8 bits, 2 or 4 data lines +- **Dummy**: 8 bits, 1 data line +- **Data**: variable length, 2 or 4 data lines + +> [!NOTE] +> +> The number of data lines used in the Address and Data phase depends +> on the Command Mask in the Command sent by the host. See [Supported Commands](#44-supported-commands). + +### 4.2 Supported Commands + +Hosted uses the following SPI HD commands when communicating with the co-processor: + +| Command | OpCode | Purpose | +| :---: | :---: | :--- | +| WRBUF | 0x01 | Write to a 32-bit buffer register on the co-processor | +| RDBUF | 0x02 | Read from a 32-bit buffer register on the co-processor | +| WRDMA | 0x03 | Write data to the co-processor using DMA | +| RDDMA | 0x04 | Read data from the co-processor during DMA | +| WR_DONE | 0x07 | End of DMA write | +| CMD8 | 0x08 | End of DMA read | +| CMD9 | 0x09 | End of register read | + +#### 4.2.1 Command Mask + +The Commands are masked with a command mask to tell the co-processor the correct number of data lines to use during the transaction (2 or 4 data lines). Hosted uses the following masks, which are bit ORed with the command during a SPI transactions: + +| Mode | Mask | +| :---: | :---: | +| 2-bits | 0x50 | +| 4-bits | 0xA0 | + +For example, if the host sends command `0x51` (2-bit mask + WRBUF), the host and co-processor will use 2 data lines to send the address and data. If the host sends command `0xA1` (4-bit mask + WRBUF), the host and co-processor will use 4 data lines to send the address and data. + +The Command Mask determines the number of data lines used for the transaction. Even if there are four data lines between the host and co-processor, the host can tell the co-processor to use only two data lines by applying the 0x50 command mask. + +> [!WARNING] +> +> It is an error to apply the 4-bit data mask (0xA0) when there are +> only two data lines connecting the host and co-processor. + +### 4.3 Registers Used + +The ESP SPI Co-processor HD Mode Protocol defines a number of registers on the co-processor. These registers are used in Hosted as follows: + +| Register | Name | Purpose | +| :---: | :---: | :--- | +| 0x00 | COPROCESSOR\_READY | Indicates if co-processor is ready | +| 0x04 | MAX\_TX\_BUF\_LEN | Maximum length of DMA data co-processor can transmit | +| 0x08 | MAX\_RX\_BUF\_LEN | Maximum length of DMA data co-processor can receive | +| 0x0C | TX\_BUF\_LEN | Updated whenever co-processor wants to transmit data | +| 0x10 | RX\_BUF\_LEN | Updated whenever co-processor can receive data | +| 0x14 | COPROCESSOR\_CONTROL | Controls co-processor operation | + +### 4.4 Timing Diagrams + +The following diagrams summarize the SPI transactions as used by Hosted: + +![Using Four Data Lines](images/spi_hd_timing_4_lines.svg) + +*SPI Transaction using 4 data lines* + +![Using Two Data Lines](images/spi_hd_timing_2_lines.svg) + +*SPI Transaction using 2 data lines* + + +## 5 SPI HD Operation + +### 5.1 Initialization + +#### 5.1.1 Co-processor and Host Initialization + +The co-processor starts up and initialises the SPI HD transport. When the co-processor is ready it writes the value `COPROCESSOR_IS_READY` (0xEE) to the COPROCESSOR\_READY register. + +The Host starts up and initialises the SPI HD transport. When ready, it polls the COPROCESSOR\_READY register on the co-processor until it reads the value +`COPROCESSOR_IS_READY`. + +Once co-processor is ready, host prepare for interrupts triggered by `Data_Ready`, and sets bit 0 on the COPROCESSOR\_CONTROL register to 1. This opens the data path to the co-processor. + +Both host and co-processor are now ready to communicate. + +The first packet the co-processor transfers to the host is a Capabilities Packet, stating what the co-processor is capable of supporting: + +- WLAN, Bluetooth, etc. +- the number of data lines supported for SPI HD + +The host uses this packet to determine what the co-processor is capable of supporting. + +```mermaid +sequenceDiagram + participant h as Host + participant s as Co-processor + + note over s,h : Init + + loop Executed periodically + h ->> s : Read COPROCESSOR_READY reg + s -->> h : Not Ready (!0xEE) + end + + note over s : Ready: COPROCESSOR_READY = 0xEE + h ->> s : Read COPROCESSOR_READY reg + s -->> h : Ready (0xEE) + note over h : Enable Data_Ready interrupt + h ->> s : Set COPROCESSOR_CONTROL reg = 1 + + note over s : Open Data Path + note over s : Prepare Capability Data + + note over s : Assert Data_Ready + h ->> s : Read Data + s -->> h : Capability + note over s : Deassert Data_Ready + + note over s,h : SPI HD Transport Ready +``` + +*SPI HD Initialization Sequence* + +#### 5.1.2 Number of Data Lines Used + +After initialization, the host initially communicates with the co-processor using two data lines. If the co-processor is capable of supporting four data +lines (from the Capabilities Packet sent by the co-processor), and the host is configured to also use four data lines, then four data lines will be used for subsequent data transfers. + +If neither the host or co-processor is capable of transferring data using four data lines, then only two data lines will be used. + +### 5.2 Co-processor to Host Transfer + +Co-processor asserts `Data_Ready` to tell the host it has data to send. + +Host reads the TX\_BUF\_LEN register. + +> [!NOTE] +> The upper 8-bits of the TX\_BUF\_LEN register are reserved, and +> should be masked out to get the correct read length from the +> TX\_BUF\_LEN register. + +The host subtracts the read length from its cached read length +(initial value is zero) to discover how much more data the co-processor wants to transfer to the host. The host can now read the data using the RDDMA command, ending the transfer with CMD8. The host now updates its cached read length with the co-processor's read length. + +After reading TX\_BUF\_LEN register, host sends CMD9. This tells the co-processor that the host has read the register and it is safe for the co-processor to update the register (if required) and deassert the `Data_Ready` signal. + +```mermaid +sequenceDiagram + participant h as Host + participant s as Co-processor + + note over s : Prepare data to send, update TX_BUF_LEN + + note over s : Assert Data_Ready + + h ->> s : Read TX_BUF_LEN + note over h : Bytes to transfer = TX_BUF_LEN - (cached)TX_BUF_LEN + + h ->> s : Send CMD9 + note over s : Deassert Data_Ready + + h ->> s : Send RDDMA + s -->> h : Transfer Data + + h ->> s : CMD8 (at end of transfer) + + note over h : update (cached)TX_BUF_LEN +``` + +*SPI HD Read Sequence* + +### 5.3 Host to Co-processor Transfer + +Host reads the RX\_BUF\_LEN register to discover how many buffers are +available on the co-processor (each buffer is of size MAX\_RX\_BUF\_LEN). If +there are not enough buffers to store the data to be sent, the host +should wait and re-read the register until there are enough buffers. + +Once there are enough buffers, the host can use WRDMA to send data, +ending each buffer transfer with WR_DONE. + +```mermaid +sequenceDiagram + participant h as Host + participant s as Co-processor + + note over h : Prepare data to send + + loop Read until got buffer space + h ->> s : Read RX_BUF_LEN + note over h : available buffers = RX_BUF_LEN - (cached)RX_BUF_LEN + end + + h ->> s : Send WRDMA + h ->> s : Transfer Data + h ->> s : WR_DONE (at end of transfer) + + note over h : Update (cached)RX_BUF_LEN +``` + +*SPI HD Write Sequence* + +### 5.4 Code Reference + +- [`slave/main/spi_hd_slave_api.c`](https://github.com/espressif/esp-hosted-mcu/blob/main/slave/main/spi_hd_slave_api.c) implements the code to run the SPI HD driver on the co-processor +- [`host/drivers/transport/spi_hd/spi_hd_drv.c`](https://github.com/espressif/esp-hosted-mcu/blob/main/host/drivers/transport/spi_hd/spi_hd_drv.c) implements the generic code to run the SPI HD driver on the host +- [`host/port/spi_hd_wrapper.c`](https://github.com/espressif/esp-hosted-mcu/blob/main/host/port/spi_hd_wrapper.c) implements the ESP-IDF specific code used by the generic SPI HD driver on the host + +## 6 Hardware Considerations + +### 6.1 General Considerations + +- Ensure equal trace lengths for all SPI connections, whether using jumper wires or PCB traces. +- Use the lower clock frequency like 5 MHz for evaluation. Once solution verified, optimise the clock frequency in increasing steps to max possible value. To find out practical maximum SPI co-processor frequency for your co-processor, check `IDF_PERFORMANCE_MAX_SPI_CLK_FREQ` in [ESP-IDF co-processor SPI clock benchmark](https://github.com/espressif/esp-idf/blob/master/components/esp_driver_spi/test_apps/components/spi_bench_mark/include/spi_performance.h) +- Verify voltage compatibility between host and co-processor devices. +- Provide proper power supply decoupling for both host and co-processor devices. + +### 6.2 Jumper Wires + +- Jumper wires are suitable for initial testing and prototyping. +- Use high-quality, low-capacitance jumper wires. +- Keep wires as short as possible, ideally under 10 cm. +- Arrange wires to minimize crosstalk, especially for clock and data lines. +- Possibly, use twisted pairs for clock and data lines to reduce electromagnetic interference. +- If possible, use a ground wire between every signal wire to improve signal integrity. +- Connect as many grounds as possible to improve common ground reference and reduce ground noise. + +> [!IMPORTANT] +> +> Quad SPI (QSPI) should not be used with jumper cables due to signal integrity issues. Use Dual SPI for evaluation with jumper cables. + +### 6.3 PCB Design + +For optimal performance and reliability in production designs: + +- Ensure equal trace lengths for all SPI signals (CLK, MOSI, MISO, CS) as much as possible. This practice, known as length matching, is crucial for maintaining signal integrity and reducing timing skew, especially at higher frequencies. +- If perfect length matching is not possible, prioritize matching the clock (CLK) trace length with the data lines. +- Use controlled impedance traces for high-speed signals. +- Place bypass capacitors close to the power pins of both the host and co-processor devices. +- Consider using series termination resistors on the clock and data lines to reduce reflections. +- For high-speed designs, use a 4-layer PCB with dedicated power and ground planes. +- Quad SPI (QSPI) should only be implemented on a properly designed PCB. + + +### 6.4 Advanced Considerations + +- Calculate the maximum allowed trace length based on your clock frequency and PCB material. +- Consider the capacitive load on the SPI bus, especially for longer traces or when using multiple co-processor devices. +- For very high-speed designs, consider using differential signaling techniques. +- Implement proper EMI/EMC design techniques to minimize electromagnetic interference. +- Use an oscilloscope or logic analyzer to verify signal integrity and timing. +- Start with a lower clock frequency and gradually increase it while monitoring performance. +- Ensure proper grounding between the host and co-processor devices. +- If using multiple power supplies, ensure they share a common ground. +- Consider using level shifters if the host and co-processor operate at different voltage levels. + +## 7 Hardware Setup + +> [!IMPORTANT] +> +> Remember that Quad SPI (using D2 and D3) should only be used with a properly designed PCB, not with jumper wires. + +Before flashing the co-processor and host, ensure that you have made the correct hardware connections. The following tables show the recommended connections for SPI Half Duplex mode: + + + +### Host connections +| Signal | ESP32-S3 | ESP32-P4-Function-EV-Board | Applicable | +| :--------: | :------: | :------------------------: | :------------: | +| CLK | 19 | 18 | Dual, Quad SPI | +| D0 | 13 | 14 | Dual, Quad SPI | +| D1 | 35 | 15 | Dual, Quad SPI | +| CS | 47 | 19 | Dual, Quad SPI | +| Data Ready | 12 | 6 | Dual, Quad SPI | +| Reset Out | 42 | 54 | Dual, Quad SPI | +| GND | GND | GND | Dual, Quad SPI | +| D2 | 20 | 16 | Quad SPI only | +| D3 | 9 | 17 | Quad SPI only | + +- Host GPIOs can be re-configured to any other GPIOs, while co-processor configuration is done. + - Make sure the configuration and hardware connections match. +- Classic ESP32 + - Not supported as host or co-processor + - Rest all chipsets are supported as host +- ESP32-S2/C2/C3/C5/C6/C61 + - Pins for SPI Half Duplex Host need to be figured out yet. +- ESP32-P4 + - For ESP32-P4-Function-EV-Board, the SDIO onboard pins are re-used for SPI Half Duplex Host. + - For Non ESP32-P4-Function-EV-Board, pins for SPI Half Duplex Host need to be figured out yet. + +### Co-processor connections + +| Signal | ESP32-C6 on ESP32-P4-Function-EV-Board | ESP32-C2/C3/C6 | ESP32-C5 | Applicable | +| :---------: | :-----------------------------------: | :------------: | :------: | :------------: | +| CLK | 19 | 6 | 6 | Dual, Quad SPI | +| D0 | 20 | 7 | 7 | Dual, Quad SPI | +| D1 | 21 | 2 | 2 | Dual, Quad SPI | +| CS | 18 | 10 | 10 | Dual, Quad SPI | +| Data Ready | 2 | 0 | 13 | Dual, Quad SPI | +| Reset In | EN/RST | EN/RST | EN/RST | Dual, Quad SPI | +| GND | GND | GND | GND | Dual, Quad SPI | +| D2 | 22 | 5 | 5 | Quad SPI only | +| D3 | 23 | 4 | 4 | Quad SPI only | + +- Co-processor GPIOs can be re-configured to any other GPIOs, while co-processor configuration is done. + - Make sure the configuration and hardware connections match. +- ESP32-C2/C3/C5/C6/C61/S2/S3 + - All supported as SPI Half Duplex co-processor + - Pins for SPI Half Duplex co-processor need to be figured out yet for other boards + +> [!NOTE] +> +> A. QSPI Testing +> - Tested on ESP32-P4-Function-EV-Board +> - ESP32-P4 as host, ESP32-C6/C3 as QSPI co-processor +> - Reused existing SDIO connections for QSPI on C6 and P4 +> +> B. Dual SPI Testing +> - ESP32-S3 host with ESP32-C5 co-processor +> - Tested using jumper cables +> +> C. Performance Optimization +> - Always prefer to use IO_MUX pins from datasheet for optimal performance on both sides +> +> D. Portability +> - Once ported, any other non ESP host with Dual SPI or QSPI can be used + +## 8 Set-Up ESP-IDF + +Before setting up the ESP-Hosted co-processor & host for SPI Half Duplex mode, ensure that ESP-IDF is properly installed and set up on your system. + +#### Option 1: Installer Way + +- **Windows** + - Install and setup ESP-IDF on Windows as documented in the [Standard Setup of Toolchain for Windows](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/windows-setup.html). + - Use the ESP-IDF [Powershell Command Prompt](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/windows-setup.html#using-the-command-prompt) for subsequent commands. + +- **Linux or MacOS** + - For bash: + ```bash + bash docs/setup_esp_idf__latest_stable__linux_macos.sh + ``` + - For fish: + ```fish + fish docs/setup_esp_idf__latest_stable__linux_macos.fish + ``` + +#### Option 2: Manual Way + +Please follow the [ESP-IDF Get Started Guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/index.html) for manual installation. + +## 9 Flashing the Co-processor + +| Supported Co-processor Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-S2 | ESP32-S3 | +| ------------------------------ | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | + +### 9.1 Create Co-processor Project +1. Create co-processor project possibly outside of ESP-IDF project directory using + + ```bash + idf.py create-project-from-example "espressif/esp_hosted:slave" + ``` + +2. Navigate to the created project directory. + +3. Configure the project for your target ESP chip: + + ```bash + idf.py set-target + ``` + Replace `` with your specific co-processor ESP chip (e.g., esp32c3, esp32s3). + +### 9.2 Co-processor Config +Configure the co-processor project using +``` +idf.py menuconfig +``` + +#### 9.2.1 Transport config + - Navigate to "Example configuration" -> "Transport layer" + - Select "SPI Half-duplex" + +#### 9.2.2 Any other config + - Optionally, Configure any additional SPI-specific settings like co-processor GPIOs, SPI mode, etc. + +###### Generated files +- Generated config files are (1) `sdkconfig` file and (2) internal `sdkconfig.h` file. +- Please note, any manually changes done to these generated files, would not take effect. + +###### Defaulting specific config (Optional) +- This is advanced option, so please be careful. +- To mark some config options as default, you can add specific config line in file, `sdkconfig.defaults.`. So whenever next time building, you do not need to re-configure. + +### 9.3 Co-processor Build +Build the co-processor project + +``` +idf.py build +``` + +### 9.4 Co-processor Flashing + +There are two methods to flash the ESP-Hosted co-processor firmware: + +##### 9.4.1 Serial Flashing (Initial Setup) + +For the initial setup or when OTA is not available, use serial flashing. + +Flash the co-processor firmware using +``` +idf.py -p flash +``` + +> [!NOTE] +> +> If you are not able to flash the co-processor, there might be a chance that host is not allowing to to do so. +> +> Put host in bootloader mode using following command and then retry flashing the co-processor +> +> `esptool.py -p **** --before default_reset --after no_reset run` +> +> Flash the co-processor and log the output: +> +> `idf.py -p flash monitor` + +##### 9.4.2 Co-processor OTA Flashing (Subsequent Updates) + +For subsequent updates, you can re-use ESP-Hosted-MCU transport, as it should be already working. While doing OTA, Complete co-processor firmware image is not needed and only co-processor application partition, 'network_adapter.bin' need to be re-flashed remotely from host. + +1. Ensure your co-processor device is connected and communicating with the host with existing ESP-Hosted-MCU. + +2. Create a web server +You can re-use your existing web server or create a new locally for testing. Below is example to do it. + - Make a new directory so that web server can be run into it and navigate into it + - Create simple local web server using python3 + + ```bash + python3 -m http.server 8080 + ``` +3. Copy the co-processor app partition `network_adapter.bin` in the directory where you created the web server. + - The `network_adapter.bin` can be found in your co-processor project build at `/build/network_adapter.bin` + +4. Verify if web server is set-up correctly + - Open link `http://127.0.0.1:8080` in the browser and check if network_adapter.bin is available. + - Right click and copy the complete URL of this network_adapter.bin and note somewhere. + +5. On the **host side**, use the `esp_hosted_slave_ota` function to initiate the OTA update: + + ```c + #include "esp_hosted.h" + + const char* image_url = "http://example.com/path/to/network_adapter.bin"; //web server full url + esp_err_t ret = esp_hosted_slave_ota(image_url); + if (ret == ESP_OK) { + printf("co-processor OTA update failed[%d]\n", ret); + } + ``` + + This function will download the firmware in chunk by chunk as http client from the specified URL and flash it to the co-processor device through the established transport. + In above web server example, You can paste the copied url earlier. + + +6. Monitor the OTA progress through the console output on both the host and co-processor devices. + +> [!NOTE] +> +> - The `esp_hosted_slave_ota` function is part of the ESP-Hosted-MCU API and handles the OTA process through the transport layer. +> - Ensure that your host application has web server connectivity to download the firmware file. +> - The co-processor device doesn't need to be connected to the web server for this OTA method. + +## 10 Flashing the Host + +Host are required to support 2 data line SPI (dual SPI) or 4 line SPI (quad SPI or QSPI) in their hardware. All ESP chipsets hardware support dual, quad SPI. + +| Supported Host Targets | Any ESP chipset | Any Non-ESP chipset | +| ----------------------- | --------------- | ------------------- | + +Non ESP chipset may need to port the porting layer. It is strongly recommanded to evaluate the solution using ESP chipset as host before porting to any non-esp chipset. +For Quad SPI, PCB is only supported. Dual SPI could be evaluted using jumper cables. + +Non-ESP Hosts, while porting, need to ensure that the Half duplex protocol and framing is exactly same as that of co-processor. + +### 10.1 Select Example to Run in Hosted Mode + +Select an example from the [ESP-IDF examples directory](https://github.com/espressif/esp-idf/tree/master/examples) that you wish to run in ESP-Hosted mode. All Wi-Fi and Bluetooth examples are supported. For simplicity and demonstration purposes, we will use the [ESP-IDF iperf example](https://github.com/espressif/esp-idf/tree/master/examples/wifi/iperf). + +### 10.2 Host Project Component Configuration + +Now that ESP-IDF is set up, follow these steps to prepare the host: + +###### 1. Navigate to the iperf example in your ESP-IDF directory: + ``` + cd $IDF_PATH/examples/wifi/iperf + ``` + +###### 2. Dependency components + Add the required components to the project's `idf_component.yml` file: + ``` + idf.py add-dependency "espressif/esp_wifi_remote" + idf.py add-dependency "espressif/esp_hosted" + ``` + +###### 3. Remove conflicting configuration + Open the `main/idf_component.yml` file and remove/comment the following block if present: + ``` + # ------- Delete or comment this block --------- + espressif/esp-extconn: + version: "~0.1.0" + rules: + - if: "target in [esp32p4]" + # ----------------------------------- + ``` + This step is necessary because esp-extconn and esp-hosted cannot work together. + +###### 4. Disable native Wi-Fi if available + If your host ESP chip already has native Wi-Fi support, disable it by editing the `components/soc//include/soc/Kconfig.soc_caps.in` file and changing all `WIFI` related configs to `n`. + + If you happen to have both, host and co-processor as same ESP chipset type (for example two ESP32-C2), note an [additional step](docs/troubleshooting/#1-esp-host-to-evaluate-already-has-native-wi-fi) + + +### 10.3 Menuconfig, Build and Flash Host + +###### 1. High performance configurations + This is optional step, suggested for high performance applications. + + If using ESP32-P4 as host: + - Remove the default `sdkconfig.defaults.esp32p4` file. + - Create a new `sdkconfig.defaults.esp32p4` file with the following content: + ``` + CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=16 + CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=64 + CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=64 + CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=y + CONFIG_ESP_WIFI_TX_BA_WIN=32 + CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=y + CONFIG_ESP_WIFI_RX_BA_WIN=32 + + CONFIG_LWIP_TCP_SND_BUF_DEFAULT=65534 + CONFIG_LWIP_TCP_WND_DEFAULT=65534 + CONFIG_LWIP_TCP_RECVMBOX_SIZE=64 + CONFIG_LWIP_UDP_RECVMBOX_SIZE=64 + CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=64 + + CONFIG_LWIP_TCP_SACK_OUT=y + ``` + + For other hosts also, you can merge above configs in corresponding `sdkconfig.defaults.esp32XX` file. + +###### 2. Set environment for your host ESP chip: + + ``` + idf.py set-target + ``` + Replace `` with your specific ESP chip (one of esp32, esp32c2, esp32c3, esp32c5, esp32c6, esp32s2, esp32s3, esp32p4). + +###### 3. Flexible Menuconfig configurations + + ``` + idf.py menuconfig + ``` + ESP-Hosted-MCU host configurations are available under "Component config" -> "ESP-Hosted config" + 1. Select "SPI Half-duplex" as the transport layer + 2. Change co-processor chipset to connect to under "Slave chipset to be used" + 3. Change Number of data lines to 2 or 4 based on the co-processor using "SPI Half-duplex Configuration" -> "Num Data Lines to use" + 4. Optionally, Configure SPI-specific settings like + - SPI Clock Freq (MHz) + - SPI Mode + - SPI Host GPIO Pins + - SPI Checksum Enable/Disable (Checksum is recommended to be enabled as spi hardware doesn't have any error detection) + + > [!NOTE] + > + > The actual clock frequency used is determined by the hardware. Use an oscilloscope or logic analyzer to check the clock frequency. + +###### 4. Build the project: + ``` + idf.py build + ``` + +###### 5. Flash the firmware: + ``` + idf.py -p flash + ``` + +###### 6. Monitor the output: + ``` + idf.py -p monitor + ``` + - If host was put into bootloader mode earlier, it may need manual reset + +## 11 Testing and Troubleshooting + +After flashing both the co-processor and host devices, follow these steps to connect and test your ESP-Hosted SPI Half Duplex setup: + +1. Connect the hardware: + - Follow the pin assignments for SPI Half Duplex as specified in [Hardware Setup](#7-hardware-setup). + - Ensure all necessary connections are made, including power, ground, and the extra GPIO signals (Data_Ready and Reset). + +2. Power on both devices. + +3. Verify the connection: + - Check the serial output of both devices for successful initialization messages. + - Look for messages indicating that the SPI Half Duplex transport layer has been established. + +4. Logs at both sides: + - Host: + + ``` + I (522) transport: Attempt connection with slave: retry[0] + I (525) transport: Reset slave using GPIO[54] + I (530) os_wrapper_esp: GPIO [54] configured + I (535) gpio: GPIO[54]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 + I (1712) transport: Received INIT event from ESP32 peripheral + I (1712) transport: EVENT: 12 + I (1712) transport: EVENT: 11 + I (1715) transport: capabilities: 0xe8 + I (1719) transport: Features supported are: + I (1724) transport: - HCI over SPI + I (1728) transport: - BLE only + I (1732) transport: EVENT: 13 + I (1736) transport: ESP board type is : 13 + + I (1741) transport: Base transport is set-up + ``` + + - Co-processor: + + ``` + I (492) fg_mcu_slave: ********************************************************************* + I (501) fg_mcu_slave: ESP-Hosted-MCU Slave FW version :: X.Y.Z + + I (511) fg_mcu_slave: Transport used :: + I (520) fg_mcu_slave: ********************************************************************* + I (529) fg_mcu_slave: Supported features are: + I (534) fg_mcu_slave: - WLAN over SPI + I (538) h_bt: - BT/BLE + I (541) h_bt: - HCI Over SPI + I (545) h_bt: - BLE only + ``` + +5. Test basic functionality: + - The iperf example automatically attempts to connect to the configured Wi-Fi network. Watch the serial output for connection status. + - If the automatic connection fails, you can manually initiate a Wi-Fi scan and connection: + ``` + sta_scan + sta_connect + ``` +6. Additional commands to test: + - Get IP address: `sta_ip` + - Disconnect from Wi-Fi: `sta_disconnect` + - Set Wi-Fi mode: `wifi_mode ` (where mode can be 'sta', 'ap', or 'apsta') + +7. Advanced iperf testing: + Once connected, you can run iperf tests to verify performance: + + | Test Case | Host Command | External STA Command | + | :-------: | :----------: | :------------------: | + | UDP Host TX | `iperf -u -c -t 60 -i 3` | `iperf -u -s -i 3` | + | UDP Host RX | `iperf -u -s -i 3` | `iperf -u -c -t 60 -i 3` | + | TCP Host TX | `iperf -c -t 60 -i 3` | `iperf -s -i 3` | + | TCP Host RX | `iperf -s -i 3` | `iperf -c -t 60 -i 3` | + + Note: Replace `` with the IP address of the external STA, and `` with the IP address of the ESP-Hosted device. + +> [!TIP] +> +> To measure the optimal performance, check out the [Shield Box Test Setup](shield-box-test-setup.md). + +8. Troubleshooting: + - If you encounter issues, refer to section 6.3 for testing the SPI connection. + - Consider using a lower clock speed or checking your [hardware setup](#7-hardware-setup) if you experience communication problems. + - ESP-Hosted-MCU troubleshooting guide: [docs/troubleshooting.md](docs/troubleshooting.md) + +9. Monitoring and debugging: + - Use the serial monitor on both devices to observe the communication between the host and co-processor. + - For more detailed debugging, consider using a logic analyzer to examine the SPI signals. + +## 12 References + +- ESP SPI co-processor HD (Half Duplex) Mode Protocol: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/protocols/esp_spi_slave_protocol.html + diff --git a/resources/espressif__esp_hosted/docs/troubleshooting.md b/resources/espressif__esp_hosted/docs/troubleshooting.md new file mode 100644 index 0000000..4e6668c --- /dev/null +++ b/resources/espressif__esp_hosted/docs/troubleshooting.md @@ -0,0 +1,149 @@ +# Troubleshooting ESP-Hosted + +**Table of Contents** + +- [1. ESP host to evaluate already has Native Wi-Fi](#1-esp-host-to-evaluate-already-has-native-wi-fi) +- [2. Raw Throughput Testing](#2-raw-throughput-testing) +- [3. Make sure Hosted code is in sync for Master and Slave](#3-make-sure-hosted-code-is-in-sync-for-master-and-slave) +- [4. Make sure GPIOs match on both the Host and Slave](#4-make-sure-gpios-match-on-both-the-host-and-slave) +- [5. ESP-Hosted Master Not Connecting to Slave](#5-esp-hosted-master-not-connecting-to-slave) +- [6. Getting `Drop Packet` Errors](#6-getting-drop-packet-errors) +- [7. References](#7-references) + +## 1 ESP host to evaluate already has Native Wi-Fi + +Sometimes users have two ESPs, but both having Wi-Fi native capability. +This section explains how to run ESP-Hosted-MCU on ESP host chipsets that already have native Wi-Fi support. To run ESP-Hosted-MCU on such hosts, native Wi-Fi support needs to be disabled from base ESP-IDF in use. There are alternatives to do this: + +##### 1.1 Different ESP chipset types for host and slave +If host and slave not the same ESP chipset types, Wi-Fi capability can be disabled for host ESP chipset alone. Edit the ESP-IDF file +`components/soc//include/soc/Kconfig.soc_caps.in` and change +all `WIFI` related configs to `n`. For example: + +``` +config SOC_WIFI_SUPPORTED + bool + # default y # original configuration + default n +``` + +This should be done for all `SOC_WIFI_xxx` configs found in the file. + +For ESP Chipsets without native Wi-FI, `SOC_WIFI_xxx` configs will be +`n` by default. + + +##### 1.2 Same ESP chipset types for host and slave +There is possibility that you have two chipsets to evaluate, but both are exactly same chipset type. For example, two ESP32-C3. In this case, it is a two step build, first for host and second for slave. +While building for host ESP chipset, follow above (1) and flash, monitor. Once host is flashed fine, revert all the changes and flash the slave ESP chipset. + +## 2 Raw Throughput Testing + +While aiming the high performance and even while assessing the solution correctness, It is crucial to understand the bottlenecks in the system. +'Raw throughput testing' is simple transport level testing, which would showcase the maximum throughput that the transport is able to achieve, right now in current set-up. +In this test, dummy data is sent from one transport end to other continously, without involving Wi-Fi, Bluetooth or any other code legs. This test can be performed in following ways: +- Host to slave (Half duplex) : dummy data to be sent from host to slave continously +- Slave to Host (Half duplex) : dummy data to be sent from slave to host continously +- Full duplex bi-directional : dummy data to be sent from both the directions simulataneously + +This can verify hardware signal integrity and address porting issues. It also helps to assess the achievable throughput of the Hosted solution. It can be further optionally used for transport throughput fine-tuning. + +> [!IMPORTANT] +> Use Raw throughput test to verify that Hosted hardware and software are +> working as expected before involving other software layers like +> networking. + +To enable the Raw Throughput Option on Slave, enter `Menuconfig` and +enable **Example Configuration** ---> **Hosted Debugging** ---> +**RawTP**. + +To enable the Raw Throughput Option and set Raw Throughput direction +on Host, enter `Menuconfig` and enable **Component config** ---> +**ESP-Hosted config** ---> **Debug Settings** ---> **RawTP**. Set +the data transfer direction: **Host to Slave**, **Slave to Host** or +**Bidirectional**. + +## 3 Make sure Hosted code is in sync for Master and Slave + +The [README](../README.md) instructions will always fetch the latest +version of ESP-Hosted from the Component Registry. Generally, this +should be fine. But you can also fetch ESP-Hosted code based on a +revision to get a fixed version of the code: + +For example, to fetch version 0.0.9 of ESP-Hosted Master: + +``` +idf.py add-dependency "espressif/esp_hosted^0.0.9" +``` + +To fetch version 0.0.9 of the ESP-Hosted Slave: + +``` +idf.py create-project-from-example "espressif/esp_hosted^0.0.9:slave" +``` + +This will ensure that both the Master and Slave code are fixed and in +sync for your project. Please ensure you use latest versions for bug-fixes + +> [!NOTE] +> When you switch Hosted versions, make sure you use the same version +> of the Master and Slave code. There may be changes to the Hosted +> implementation that may make different versions of Hosted Master and +> Slave incompatible. + +## 4 Make sure GPIOs match on both the Host and Slave + +- Check that the GPIOs you use on the Host and Slave are correct and are connected together as expected +- Verify that the GPIO values you set in `menuconfig` match the hardware GPIOs you are actually using +- Ensure that you are not using incompatible GPIOs: + - on the ESP32, some GPIOs are input only and cannot be used for output + - on the ESP32 and ESP32-C6, the GPIOs used for SDIO are fixed and cannot be changed + +## 5 ESP-Hosted Master Not Connecting to Slave + +If you see the following error on the ESP-Hosted Master console using the SPI Interface: + +``` +E (10645) transport: Not able to connect with ESP-Hosted slave device +``` + +or this error on the ESP-Hosted Master console using the SDIO Interface: + +``` +E (1735) sdmmc_common: sdmmc_init_ocr: send_op_cond (1) returned 0x107 +``` + +It means that something is wrong with the SPI or SDIO connection and +the Host cannot communicate with the slave. + +- Check your physical GPIO signals and verify that they are connected +- Ensure that you have selected the same transports for the slave and + host (both are using the same SPI or SDIO interface). + - It is expected that slave and host uses exact same codebase (git commit) + - Transport configured at slave matches to that of host + - Firmware configured with incompatible configurations also would result in issues. +- Verify that the physical GPIO signals is the same as those assigned to the system using `Menuconfig` on both the Host and Slave +- If you selected SDIO as the interface and your host is a classic ESP32, there may be conflict with the GPIO used to bootstrap the ESP32 and used in SDIO. See "Conflicts Between Bootstrap and SDIO on DAT2" in + [References](#7-references) for more information +- for SDIO, verify that pull-ups and other signalling requirments (short, shielded connections) are also met. See the [SDIO interface](sdio.md) page for more information on SDIO requirements +- If your transport allows on jumper cables, cross-check max length of jumper cables allowed + +## 6 Getting `Drop Packet` Errors + +For the SPI interface, if you see an error similar to this: + +``` +I (478522) spi: rcvd_crc[30224] != exp_crc[36043], drop pkt +``` + +Your SPI interface is facing signal integrity errors. + +- try reducing the SPI `CLK` frequency (using `Menuconfig`). If the + problem goes away, it indicates that there is an issue with the + physcial SPI signals +- use an oscilloscope to check the physical signals on the SPI + interface for noise, ringing, etc. that may affect the signals + +## 7 References + +- [Conflicts Between Bootstrap and SDIO on DAT2](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/sd_pullup_requirements.html#conflicts-between-bootstrap-and-sdio-on-dat2) diff --git a/resources/espressif__esp_hosted/docs/uart.md b/resources/espressif__esp_hosted/docs/uart.md new file mode 100644 index 0000000..0caa6ea --- /dev/null +++ b/resources/espressif__esp_hosted/docs/uart.md @@ -0,0 +1,450 @@ +# ESP-Hosted UART Operation for Wi-Fi and Bluetooth + +Section 6 to 8 covers the complete step-wise setup co-processor and host with UART. + +If you wish to skip the theory, you can refer the [Quick Start Guide](#1-quick-start-guide) below. For quick navigation, please unfold the Table of Contents below. + +
    +Table of Contents + +- [1 Quick Start Guide](#1-quick-start-guide) + +- [2 Introduction](#2-introduction) + +- [3 Hardware Considerations](#3-hardware-considerations) => [1 GPIO Configuration for UART](#31-gpio-configuration-for-uart) || [2 Extra GPIO Signals Required](#32-extra-gpio-signals-required) || [3 General Hardware Considerations](#33-general-hardware-considerations) || [4 PCB Design](#34-pcb-design) || [5 Advanced Considerations](#35-advanced-considerations) + +- [4 Hardware Setup](#4-hardware-setup) + +- [5 Set-Up ESP-IDF](#5-set-up-esp-idf) => [Option 1: Installer Way](#option-1-installer-way) || [Option 2: Manual Way](#option-2-manual-way) + +- [6 Flashing the Co-processor](#6-flashing-the-co-processor) => [1 Create Co-processor Project](#61-create-co-processor-project) || [2 Co-processor Config](#62-co-processor-config) || [3 Co-processor Build](#63-co-processor-build) || [4 Co-processor Flashing](#64-co-processor-flashing) + +- [7 Flashing the Host](#7-flashing-the-host) => [1 Select Example to Run in Hosted Mode](#71-select-example-to-run-in-hosted-mode) || [2 Host Project Component Configuration](#72-host-project-component-configuration) || [3 Menuconfig, Build and Flash Host](#73-menuconfig-build-and-flash-host) + +- [8 Testing and Troubleshooting](#8-testing-and-troubleshooting) + +- [9 References](#9-references) + +
    + +## 1 Quick Start Guide + +This section provides a brief overview of how to get started with ESP-Hosted using UART mode. + +These sections will guide you through the process of flashing both the co-processor and host devices, setting up the hardware connections, and verifying successful communication. + +## 2 Introduction + +UART is a low-speed bus that only requires two signal lines to communicate between the host and co-processor. + +UART is supported on all ESP devices, and many other MCUs and operating systems. It is quick to bring up and test. + +However, UART is a low-speed bus, and not recommended for environments where high network throughput (more than 1 Mbits/s) is required. + +> [!NOTE] +> UART is used to transport both Wi-Fi and Bluetooth data (as Hosted HCI). Do not confuse this with standard HCI sent over UART, which does not support Wi-Fi. + +## 3 Hardware Considerations + +### 3.1 GPIO Configuration for UART + +The UART interface can use almost any GPIO pins. For maximum speed and minimal delays, it is recommended to select the SDIO pin configuration that uses the dedicated `IO_MUX` pins. + +### 3.2 Extra GPIO Signals Required + +Extra GPIO signals are required for UART on Hosted and can be assigned to any free GPIO pins: + +- `Reset` signal: an output signal from the host to the co-processor. When asserted, the host resets the co-processor. This is done when ESP-Hosted is started on the host, to synchronise the state of the host and co-processor. + +> [!NOTE] +> The `Reset` signal suggested to connect to the `EN` or `RST` pin on the co-processor, It is however configurable to use another GPIO pin. +> +> To configure this, use `idf.py menuconfig` on the co-processor: **Example configuration** ---> **UART Configuration** and set **Slave GPIO pin to reset itself**. + +### 3.3 General Hardware Considerations + +- Due to UART's low speed, signal integrity is less of a concern compared to SPI or SDIO. However, general rules on signal routing and noise reduction still applies. +- Jumper wires are only suitable for initial testing and prototyping. +- Ensure equal trace lengths for all UART connections, whether using jumper wires or PCB traces. +- Keep wires as short as possible, under 10 cm. Smaller the better. +- Use the lower baud rates like 115200 for evaluation. Once solution verified, optimise the baud rate in increasing steps to max possible value. +- Provide proper power supply for both host and co-processor devices. Lower or incorrect power supplies can cause communication issues & suboptimal performance. +- If possible, use a ground wire between every signal wire to improve signal integrity. +- Connect as many grounds as possible to improve common ground reference and reduce ground noise. + +### 3.4 PCB Design + +For optimal performance and reliability in production designs: + +- Ensure equal trace lengths for all UART signals (Rx, Tx) as much as possible. This practice, known as length matching, is crucial for maintaining signal integrity and reducing timing skew, especially at higher frequencies. +- Use controlled impedance traces for high-speed signals. +- Place bypass capacitors close to the power pins of both the host and co-processor devices. +- Consider using series termination resistors on the clock and data lines to reduce reflections. +- For high-speed designs, use a 4-layer PCB with dedicated power and ground planes. + +### 3.5 Advanced Considerations + +- Calculate the maximum allowed trace length based on your baud rate and PCB material. +- Consider the capacitive load on the UART signals, especially for longer traces +- For very high-speed designs, consider using differential signaling techniques. +- Implement proper EMI/EMC design techniques to minimize electromagnetic interference. + +## 4 Hardware Setup + +Setting up the hardware involves connecting the master and co-processor devices via the UART pins and ensuring all extra GPIO signals are properly connected. + +Any GPIO pin can be used for ESP-Hosted UART Rx and Tx. But avoid using the ESP assigned UART Tx0 and Rx0 pins. There are for debugging output. (ESP-Hosted uses another UART controller.) + +## 5 Set-Up ESP-IDF + +Before setting up the ESP-Hosted co-processor & host for UART mode, ensure that ESP-IDF is properly installed and set up on your system. + +### Option 1: Installer Way + +- **Windows** + - Install and setup ESP-IDF on Windows as documented in the [Standard Setup of Toolchain for Windows](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/windows-setup.html). + - Use the ESP-IDF [Powershell Command Prompt](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/windows-setup.html#using-the-command-prompt) for subsequent commands. + +- **Linux or MacOS** + - For bash: + ```bash + bash docs/setup_esp_idf__latest_stable__linux_macos.sh + ``` + - For fish: + ```fish + fish docs/setup_esp_idf__latest_stable__linux_macos.fish + ``` + +### Option 2: Manual Way + +Please follow the [ESP-IDF Get Started Guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/index.html) for manual installation. + +## 6 Flashing the Co-processor + +| Supported Co-processor Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-S2 | ESP32-S3 | +| ------------------------------ | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | + +### 6.1 Create Co-processor Project +1. Create co-processor project possibly outside of ESP-IDF project directory using + + ```bash + idf.py create-project-from-example "espressif/esp_hosted:slave" + ``` + +2. Navigate to the created project directory. + +3. Configure the project for your target ESP chip: + + ```bash + idf.py set-target + ``` + Replace `` with your specific co-processor ESP chip (e.g., esp32c3, esp32s3). + +### 6.2 Co-processor Config +Configure the co-processor project using +``` +idf.py menuconfig +``` + +#### 6.2.1 Transport config + - Navigate to "Example configuration" -> "Transport layer" + - Select "UART" + +#### 6.2.2 Any other config + - Optionally, Configure any additional UART-specific settings like TX and Rx GPIOs, baud rate, etc. + +###### Generated files +- Generated config files are (1) `sdkconfig` file and (2) internal `sdkconfig.h` file. +- Please note, any manually changes done to these generated files, would not take effect. + +###### Defaulting specific config (Optional) +- This is advanced option, so please be careful. +- To mark some config options as default, you can add specific config line in file, `sdkconfig.defaults.`. So whenever next time building, you do not need to re-configure. + +### 6.3 Co-processor Build +Build the co-processor project + +``` +idf.py build +``` + +### 6.4 Co-processor Flashing + +There are two methods to flash the ESP-Hosted co-processor firmware: + +##### 6.4.1 Serial Flashing (Initial Setup) + +For the initial setup or when OTA is not available, use serial flashing. + +Flash the co-processor firmware using +``` +idf.py -p flash +``` + +> [!NOTE] +> +> If you are not able to flash the co-processor, there might be a chance that host is not allowing to to do so. +> +> Put host in bootloader mode using following command and then retry flashing the co-processor +> +> `esptool.py -p **** --before default_reset --after no_reset run` +> +> Flash the co-processor and log the output: +> +> `idf.py -p flash monitor` + +##### 6.4.2 Co-processor OTA Flashing (Subsequent Updates) + +For subsequent updates, you can re-use ESP-Hosted-MCU transport, as it should be already working. While doing OTA, Complete co-processor firmware image is not needed and only co-processor application partition, 'network_adapter.bin' need to be re-flashed remotely from host. + +1. Ensure your co-processor device is connected and communicating with the host with existing ESP-Hosted-MCU. + +2. Create a web server +You can re-use your existing web server or create a new locally for testing. Below is example to do it. + - Make a new directory so that web server can be run into it and navigate into it + - Create simple local web server using python3 + + ```bash + python3 -m http.server 8080 + ``` +3. Copy the co-processor app partition `network_adapter.bin` in the directory where you created the web server. + - The `network_adapter.bin` can be found in your co-processor project build at `/build/network_adapter.bin` + +4. Verify if web server is set-up correctly + - Open link `http://127.0.0.1:8080` in the browser and check if network_adapter.bin is available. + - Right click and copy the complete URL of this network_adapter.bin and note somewhere. + +5. On the **host side**, use the `esp_hosted_slave_ota` function to initiate the OTA update: + + ```c + #include "esp_hosted.h" + + const char* image_url = "http://example.com/path/to/network_adapter.bin"; //web server full url + esp_err_t ret = esp_hosted_slave_ota(image_url); + if (ret == ESP_OK) { + printf("co-processor OTA update failed[%d]\n", ret); + } + ``` + + This function will download the firmware in chunk by chunk as http client from the specified URL and flash it to the co-processor device through the established transport. + In above web server example, You can paste the copied url earlier. + +6. Monitor the OTA progress through the console output on both the host and co-processor devices. + +> [!NOTE] +> +> - The `esp_hosted_slave_ota` function is part of the ESP-Hosted-MCU API and handles the OTA process through the transport layer. +> - Ensure that your host application has web server connectivity to download the firmware file. +> - The co-processor device doesn't need to be connected to the web server for this OTA method. + +## 7 Flashing the Host + +Host are required to support two-line UART and the required baud rate in their hardware. All ESP chipsets hardware support UART. + +| Supported Host Targets | Any ESP chipset | Any Non-ESP chipset | +| ----------------------- | --------------- | ------------------- | + +Non ESP chipset may need to port the porting layer. It is strongly recommanded to evaluate the solution using ESP chipset as host before porting to any non-esp chipset. + +### 7.1 Select Example to Run in Hosted Mode + +Select an example from the [ESP-IDF examples directory](https://github.com/espressif/esp-idf/tree/master/examples) that you wish to run in ESP-Hosted mode. All Wi-Fi and Bluetooth examples are supported. For simplicity and demonstration purposes, we will use the [ESP-IDF iperf example](https://github.com/espressif/esp-idf/tree/master/examples/wifi/iperf). + +### 7.2 Host Project Component Configuration + +Now that ESP-IDF is set up, follow these steps to prepare the host: + +###### 1. Navigate to the iperf example in your ESP-IDF directory: + ``` + cd $IDF_PATH/examples/wifi/iperf + ``` + +###### 2. Dependency components + Add the required components to the project's `idf_component.yml` file: + ``` + idf.py add-dependency "espressif/esp_wifi_remote" + idf.py add-dependency "espressif/esp_hosted" + ``` + +###### 3. Remove conflicting configuration + Open the `main/idf_component.yml` file and remove/comment the following block if present: + ``` + # ------- Delete or comment this block --------- + espressif/esp-extconn: + version: "~0.1.0" + rules: + - if: "target in [esp32p4]" + # ----------------------------------- + ``` + This step is necessary because esp-extconn and esp-hosted cannot work together. + +###### 4. Disable native Wi-Fi if available + If your host ESP chip already has native Wi-Fi support, disable it by editing the `components/soc//include/soc/Kconfig.soc_caps.in` file and changing all `WIFI` related configs to `n`. + + If you happen to have both, host and co-processor as same ESP chipset type (for example two ESP32-C2), note an [additional step](docs/troubleshooting/#1-esp-host-to-evaluate-already-has-native-wi-fi) + + +### 7.3 Menuconfig, Build and Flash Host + +###### 1. High performance configurations + This is optional step, suggested for high performance applications. + + If using ESP32-P4 as host: + - Remove the default `sdkconfig.defaults.esp32p4` file. + - Create a new `sdkconfig.defaults.esp32p4` file with the following content: + ``` + CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=16 + CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=64 + CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=64 + CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=y + CONFIG_ESP_WIFI_TX_BA_WIN=32 + CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=y + CONFIG_ESP_WIFI_RX_BA_WIN=32 + + CONFIG_LWIP_TCP_SND_BUF_DEFAULT=65534 + CONFIG_LWIP_TCP_WND_DEFAULT=65534 + CONFIG_LWIP_TCP_RECVMBOX_SIZE=64 + CONFIG_LWIP_UDP_RECVMBOX_SIZE=64 + CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=64 + + CONFIG_LWIP_TCP_SACK_OUT=y + ``` + + For other hosts also, you can merge above configs in corresponding `sdkconfig.defaults.esp32XX` file. + +###### 2. Set environment for your host ESP chip: + + ``` + idf.py set-target + ``` + Replace `` with your specific ESP chip (one of esp32, esp32c2, esp32c3, esp32c5, esp32c6, esp32s2, esp32s3, esp32p4). + +###### 3. Flexible Menuconfig configurations + + ``` + idf.py menuconfig + ``` + ESP-Hosted-MCU host configurations are available under "Component config" -> "ESP-Hosted config" + 1. Select "UART" as the transport layer + 2. Change co-processor chipset to connect to under "Slave chipset to be used" + 3. Optionally, Configure UART-specific settings like + - UART Tx and Rx GPIOs + - UART baud rate + - UART Checksum Enable/Disable (Checksum is recommended to be enabled) + + > [!NOTE] + > The actual baud rate used is determined by the hardware. Use an oscilloscope or logic analyzer to check the baud rate and its accuracy. If the actual baud rate used to send data drifts by more than a few percent from the expected baud rate, the receiver may not be able to correctly decode the data. + +###### 4. Build the project: + ``` + idf.py build + ``` + +###### 5. Flash the firmware: + ``` + idf.py -p flash + ``` + +###### 6. Monitor the output: + ``` + idf.py -p monitor + ``` + - If host was put into bootloader mode earlier, it may need manual reset + +## 8 Testing and Troubleshooting + +After flashing both the co-processor and host devices, follow these steps to connect and test your ESP-Hosted UART setup: + +1. Connect the hardware: + - Follow the pin assignments for UART as specified in [Hardware Setup](#4-hardware-setup). + - Ensure all necessary connections are made, including power, ground. + +2. Power on both devices. + +3. Verify the connection: + - Check the serial output of both devices for successful initialization messages. + - Look for messages indicating that the UART transport layer has been established. + +4. Logs at both sides: + - Host: + + ``` + I (465) transport: Attempt connection with slave: retry[0] + I (468) transport: Reset slave using GPIO[54] + I (473) os_wrapper_esp: GPIO [54] configured + I (478) gpio: GPIO[54]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 + I (1650) transport: Received INIT event from ESP32 peripheral + I (1650) transport: EVENT: 12 + I (1650) transport: EVENT: 11 + I (1652) transport: capabilities: 0x88 + I (1657) transport: Features supported are: + I (1662) transport: - BLE only + I (1666) transport: EVENT: 16 + I (1669) transport: extended capabilities: 0x120 + I (1675) transport: Extended Features supported: + I (1680) transport: * WLAN over UART + I (1684) transport: EVENT: 13 + I (1688) transport: ESP board type is : 13 + + I (1693) transport: Base transport is set-up + ``` + + - Co-processor: + + ``` + I (484) fg_mcu_slave: ********************************************************************* + I (493) fg_mcu_slave: ESP-Hosted-MCU Slave FW version :: 0.0.6 + + I (503) fg_mcu_slave: Transport used :: UART only + I (512) fg_mcu_slave: ********************************************************************* + I (521) fg_mcu_slave: Supported features are: + I (526) h_bt: - BT/BLE + I (529) h_bt: - BLE only + I (532) fg_mcu_slave: capabilities: 0x88 + I (537) fg_mcu_slave: Supported extended features are: + I (543) fg_mcu_slave: - WLAN over UART + I (547) h_bt: - BT/BLE (extended) + I (551) h_bt: - HCI Over UART (VHCI) + I (556) fg_mcu_slave: extended capabilities: 0x120 + ``` + +5. Test basic functionality: + - The iperf example automatically attempts to connect to the configured Wi-Fi network. Watch the serial output for connection status. + - If the automatic connection fails, you can manually initiate a Wi-Fi scan and connection: + ``` + sta_scan + sta_connect + ``` +6. Additional commands to test: + - Get IP address: `sta_ip` + - Disconnect from Wi-Fi: `sta_disconnect` + - Set Wi-Fi mode: `wifi_mode ` (where mode can be 'sta', 'ap', or 'apsta') + +7. Advanced iperf testing: + Once connected, you can run iperf tests to verify performance: + + | Test Case | Host Command | External STA Command | + |-----------|--------------|----------------------| + | UDP Host TX | `iperf -u -c -t 60 -i 3` | `iperf -u -s -i 3` | + | UDP Host RX | `iperf -u -s -i 3` | `iperf -u -c -t 60 -i 3` | + | TCP Host TX | `iperf -c -t 60 -i 3` | `iperf -s -i 3` | + | TCP Host RX | `iperf -s -i 3` | `iperf -c -t 60 -i 3` | + + Note: Replace `` with the IP address of the external STA, and `` with the IP address of the ESP-Hosted device. + +> [!TIP] +> +> To measure the optimal performance, check out the [Shield Box Test Setup](shield-box-test-setup.md). + +8. Troubleshooting: + - If you encounter issues, refer to section 3.3 for checking the UART connection. + - Consider using a lower baud rate or checking your [hardware setup](#4-hardware-setup) if you experience communication problems. + - ESP-Hosted-MCU troubleshooting guide: [docs/troubleshooting.md](docs/troubleshooting.md) + +9. Monitoring and debugging: + - Use the serial monitor on both devices to observe the communication between the host and co-processor. + - For more detailed debugging, consider using a logic analyzer to examine the UART signals. + +## 9 References + +- ESP Universal Asynchronous Receiver/Transmitter (UART): https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/uart.html diff --git a/resources/espressif__esp_hosted/docs/wifi_design.md b/resources/espressif__esp_hosted/docs/wifi_design.md new file mode 100644 index 0000000..a1cd094 --- /dev/null +++ b/resources/espressif__esp_hosted/docs/wifi_design.md @@ -0,0 +1,79 @@ +# ESP-Hosted-MCU Wi-Fi Design & Implementation details + + +## Sequence Diagram for Wi-Fi communication + +On a ESP chipset with native Wi-Fi, a Wi-Fi api call or network data +from the application is processed internally on the chip and a Wi-Fi +response is returned to the application. + +```mermaid +sequenceDiagram + box rgb(128, 128, 128) Host With Native WI-Fi + participant app as Application + participant api as ESP-IDF Wi-Fi Library + participant wifi as Wi-Fi Hardware + end + + app ->> api : esp_wifi_xxx() or Network Data + api ->> wifi : + Note over wifi : Do Wi-Fi action + wifi -->> api : Wi-Fi response or Data + api -->> app : Response or Network Data +``` + +Using Wi-Remote and ESP-Hosted, the Wi-Fi api call from the +application is converted into a Hosted Call and transported to the +slave. The slave converts the Hosted Call back into an Wi-Fi api +call. The response (optionally with data) is converted into a Hosted +Response and transported back to the host. On the host, the Hosted +Response is converted back into a Wi-Fi response (optionally with +data) is returned to the application. + +For Network Data, Hosted does not do data conversion and only +encapsulates the data for transport. + +```mermaid +sequenceDiagram + box rgb(128, 128, 128) Host with ESP-Hosted + participant app as Application + participant remote as Wi-Fi Remote + participant hostedh as ESP-Hosted + participant transporth as Host Transport + end + + box rgb(128, 128, 128) Slave ESP-Hosted + participant transports as Slave Transport + participant hosteds as Slave Hosted + participant api as ESP-IDF Wi-Fi Library + participant wifi as Wi-Fi Hardware + end + + app ->> remote : esp_wifi_xxx() + remote ->> hostedh : esp_wifi_remote_xxx() + app ->> hostedh : Network Data + Note over hostedh : add Hosted header + hostedh ->> transporth : + + transporth ->> transports : SPI/SDIO + + transports ->> hosteds : + Note over hosteds : remove Hosted header + hosteds ->> api : esp_wifi_xxx() + hosteds ->> wifi : Network Data + api ->> wifi : Wi-Fi command or Data + Note over wifi: Do Wi-Fi action + wifi -->> api : Wi-Fi response or Data + wifi -->> hosteds : Network Data + api -->> hosteds : Response + Note over hosteds : add Hosted header + hosteds -->> transports : + + transports -->> transporth : SPI/SDIO + + transporth -->> hostedh : + Note over hostedh : remove Hosted header + hostedh -->> app : Network Data + hostedh -->> remote : Wi-Fi Command response + remote -->> app : Response +``` diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/CMakeLists.txt b/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/CMakeLists.txt new file mode 100644 index 0000000..494477b --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/CMakeLists.txt @@ -0,0 +1,8 @@ +# The following lines of boilerplate have to be in your project's CMakeLists +# in this exact order for cmake to work correctly +cmake_minimum_required(VERSION 3.16) + +include($ENV{IDF_PATH}/tools/cmake/project.cmake) +# "Trim" the build. Include the minimal set of components, main, and anything it depends on. +idf_build_set_property(MINIMAL_BUILD ON) +project(ble_compatibility_test) diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/README.md b/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/README.md new file mode 100644 index 0000000..63a40d7 --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/README.md @@ -0,0 +1,59 @@ +| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-S3 | ESP32-P4 | ESP32-H2 | +| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | -------- | + +# ESP-IDF BLE Compatibility Test Example + +This example is to test the Bluetooth compatibility and mobile phones. + +## How to Use Example + +This example has been modified to work with ESP-Hosted. The original ESP-IDF example is at [ https://github.com/espressif/esp-idf/tree/master/examples/bluetooth/bluedroid/ble/ble_compatibility_test ]. + +This example is able to run on the ESP32-P4 Dev Board, acting as the BT Host, connected to a ESP32 co-processor via the GPIO header, using SPI FD (full duplex) as Hosted HCI transport. The ESP32-P4 acts as the BT Controller. The following GPIO settings were used: + +| SPI Function | ESP32 GPIO | ESP32-P4 GPIO | +| :--- | ---: | ---: | +| MOSI | 13 | 4 | +| MISO | 12 | 5 | +| CLK | 14 | 26 | +| CS | 15 | 6 | +| Handshake | 26 | 20 | +| Data Ready | 4 | 36 | +| Reset | -1 | 2 | + +> [!NOTE] +> SPI Mode 2 was used on both the ESP32-P4 and ESP32. + +Users are free to choose which supported ESP-Hosted transport to use. See the [main ESP-Hosted README](https://github.com/espressif/esp-hosted-mcu/blob/main/README.md#6-decide-the-communication-bus-in-between-host-and-slave) for a list of supported transports. + +Before project configuration and build, be sure to set the correct chip target using: + +```bash +idf.py set-target +``` + +### Test Scenario + +* ESP32-P4-Function-EV-Board connected to a ESP32 via the GPIO header +* [Test case](ble_compatibility_test_case.md) +* Test APK: LightBlue V2.0.5 + +### Configure the project + +On the ESP32-P4 Dev Board, run `idf.py menuconfig`. + +* Check and enable Classic Bluetooth and Classic BT HID Device under `Component config --> Bluetooth --> Bluedroid Options` +* Ensure that `Component config --> Bluetooth --> Controller` is `Disabled`. +* Under `Component config --> ESP-Hosted config`: + * Configure ESP-Hosted to use `SPI Full-duplex` as the transport + * Set the Slave chipset used as `ESP32` + * Check and enable `Bluetooth Support` + * Configure the GPIOs used for SPI FD on both the ESP32-P4 and ESP32, following the table above + +### Build and Flash + +Run `idf.py -p PORT flash monitor` to build, flash and monitor the project. + +(To exit the serial monitor, type ``Ctrl-]``.) + +See the [Getting Started Guide](https://idf.espressif.com/) for full steps to configure and use ESP-IDF to build projects. diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/ble_compatibility_test_case.md b/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/ble_compatibility_test_case.md new file mode 100644 index 0000000..ed264f1 --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/ble_compatibility_test_case.md @@ -0,0 +1,180 @@ +# Test Case for BLE Smartphone Compatibility + +This document provides a test case for BLE smartphone compatibility and includes detailed procedures for various test items. + +## Preparation + +### What You Need + +* ESP device which needs to flash [this test program](main/ble_compatibility_test.c) +* Smartphone with LightBlue® Explorer app + +### Initialization + +Prior to conducting tests, please initialize the smartphone and the ESP device as follows: + +* Set the device name as `BLE_COMP_TEST`. +* Set the maximum transmission unit (MTU) of the device to 33 bytes, to test the assembly and division of data packets. +* If the smartphone has been paired with the ESP device before, please delete the pairing in the Bluetooth setting as follows: `Bluetooth` -> `My Devices` -> `Find this device with "i" in a circle on the right` -> `Forget this device`. Then restart the Bluetooth service. +* Before flashing the test program onto the ESP device, make sure to erase the contents of the flash by executing the command `make erase_flash flash` in the Terminal. +* When the ESP device restarts, the pairing information will be erased automatically. After that, make sure that the pairing information in the Bluetooth setting of the smartphone is deleted. + +**Note:** + +* For tests marked with (*) further in the document, please bear in mind the following: + * Your phone performance may affect the results of these tests. If such a test fails, it does not mean the phone fails to meet the test requirements, but that you need to arrange targeted tests. + * Taking "Test for Connection Success Rate" as an example: if the test cannot be passed for 10 consecutive times, you need to record how many times the test was passed and then arrange targeted tests. +* For extended testing, please use the [examples] (https://github.com/espressif/esp-idf/tree/master/examples/bluetooth) provided by Espressif. + +## Test for ADV Performance (*) + +### Search Device + +Refresh the scanning in LightBlue® Explorer to check if the device to be tested can be found quickly. Please repeat this action 10 times. + +### Test Results + +The test is passed, if you get the following results: + +* The device starts advertizing and outputs the log `(0) ***** advertising start successfully *****`. +* LightBlue® Explorer scans and successfully discovers ` BLE_COMP_TEST` each time. + +**Note:** + +* The device broadcasts on 3 channels, with an ADV interval of 40 ms. +* Check if the ADV packet can be received. +* Check if the Scan Response packet can be received. +* The device name is included in Scan Response packets only and cannot be found in ADV packets. + +## Test for Pairing Performance + +### Connect Device + +* Open the LightBlue® Explorer scan list and tap on the device name ` BLE_COMP_TEST` to establish connection. +* ESP device prints a passkey: `The passkey notify number: 123456`. +* A prompt on the smartphone appears asking if you want to pair. Tap on *Pair*, and then enter the passkey "123456". + +### Test Results + +The test is passed, if you get the following results: + +* If the connection is successful: + * Smartphone shows DATA beginning with `ADVERTISEMENT DATA` + * ESP device outputs the log: `ESP_GATTS_CONNECT_EVT` +* When the pairing is established, the device shows the following log in green: `(1) ***** pair status = success *****` + +## Test for Service Discovery Performance + +### Test Procedures + +In LightBlue® Explorer, check the contents of `GATT SERVICES & CHARACTERISTICS`. + +### Test Results + +The test is passed, if you get the following results: + +* Service that starts with ``000000ff`` appears at the bottom of your smartphone. +* This service contains 3 characteristics + * `Char_1_Short_WR` + * `Char_2_Long_WR` + * `Char_3_Short_Notify` + +## Test for Read and Encrypt + +### Test Procedures + +Read the value of `Char_1` in LightBlue, and tap on `READ AGAIN`. + +### Test Results + +* Encryption is successful, if your smartphone shows the value "11 22 33 44", and the ESP device prints the log: `(2) ***** read char_1 *****`. +* Encryption fails, if your smartphone shows a blank screen, and the ESP device outputs the error log in red: `GATT_INSUF_AUTHENTICATION: MITM Required`. + +## Test for Short Read and Write + +### Test Procedures + +* Navigate to the WRITE interface in LightBlue® Explorer, and write the value "88 99" to `Char_1`. +* Read `Char_1` and check if its value is consistent with the data you have written to it. + +### Test Results + +The test is passed, if you get the following results: + +* ESP device prints the log: `(3)***** short write success *****`. +* LightBlue® Explorer shows "88 99" below `READ AGAIN`. + +## Test for Long Read and Write + +### Test Procedures + +* Navigate to the WRITE interface in LightBlue® Explorer, and write the string `0x001122…FF001122…FF` of 256 bytes to `Char_2`. The data takes up 16 lines and looks as follows: + + ``` + 00112233445566778899AABBCCDDEEFF + 00112233445566778899AABBCCDDEEFF + … + 00112233445566778899AABBCCDDEEFF + 00112233445566778899AABBCCDDEEFF + ``` + +* Read `Char_2` and check if its value is consistent with the data you have written to it. + +### Test Results + +The test is passed, if you get the following results: + +* The device prints the log: ``ESP_GATTS_EXEC_WRITE_EVT, Length=256`` and ``(4) ***** long write success *****``. +* LightBlue® Explorer shows `(5) ***** read char_2 *****` below `READ AGAIN`. + +**Note:** + +The data to be written can be copied from a text file and pasted into LightBlue® Explorer. + +## Test for Short Notify + +### Test Procedures + +* Enter `Char_3` and tap on `SUBSCRIBE` to enable its Notify function. +* Your phone automatically receives Notify data from the device. + +### Test Results + +The test is passed, if you get the following results: + +* ESP device prints the log: `(6) ***** send notify AA BB *****`. +* "AA BB" appears on your smartphone. + +## Test for Connection Success Rate (*) + +### Test procedures + +* Break the connection +* Re-establish the connection +* Repeat 10 times + +### Test Results + +The test is passed, if you get the following results: + +* Your phone establishes the connection successfully, and the ESP device outputs the log: `(1) ***** pair status = success *****`. +* Your phone breaks the connection, and the device outputs the log: `ESP_GATTS_DISCONNECT_EVT`. +* Connection can be set up each time with no issues. + +## Test for Long Connection Stability + +The connection must be stable throughout the tests. + +**Note:** + +If the existing connection breaks: + +* LightBlue® Explorer prints `Disconnected`. +* ESP device outputs the log: ``ESP_GATTS_DISCONNECT_EVT, reason = (0) ***** advertising start successfully *****``. + +## Further Information + +* If you see any log entry in red, please record it for future reference or feedback it to our engineer. +* Tests to be added in the future: + * Multi-connection Test + * Automatic Re-connection Test diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/CMakeLists.txt b/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/CMakeLists.txt new file mode 100644 index 0000000..58468bd --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/CMakeLists.txt @@ -0,0 +1,3 @@ +idf_component_register(SRCS "ble_compatibility_test.c" + PRIV_REQUIRES bt nvs_flash esp_hosted + INCLUDE_DIRS ".") diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/ble_compatibility_test.c b/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/ble_compatibility_test.c new file mode 100644 index 0000000..d3fbb58 --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/ble_compatibility_test.c @@ -0,0 +1,730 @@ +/* + * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Unlicense OR CC0-1.0 + */ + +/******************************************************************************** +* +* This file is for gatt server. It can send adv data, and get connected by client. +* +*********************************************************************************/ + +#include +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "freertos/event_groups.h" +#include "esp_system.h" +#include "esp_log.h" +#include "nvs_flash.h" +// #include "esp_bt.h" + +#include "esp_gap_ble_api.h" +#include "esp_gatts_api.h" +#include "esp_bt_main.h" +#include "esp_bt_device.h" +#include "ble_compatibility_test.h" +#include "esp_gatt_common_api.h" + +#include "esp_hosted_bt.h" + +#define DEBUG_ON 0 + +#if DEBUG_ON +#define EXAMPLE_DEBUG ESP_LOGI +#else +#define EXAMPLE_DEBUG( tag, format, ... ) +#endif + +#define EXAMPLE_TAG "BLE_COMP" + +#define PROFILE_NUM 1 +#define PROFILE_APP_IDX 0 +#define ESP_APP_ID 0x55 +#define SAMPLE_DEVICE_NAME "BLE_COMP_TEST" +#define SVC_INST_ID 0 + +/* The max length of characteristic value. When the gatt client write or prepare write, +* the data length must be less than GATTS_EXAMPLE_CHAR_VAL_LEN_MAX. +*/ +#define GATTS_EXAMPLE_CHAR_VAL_LEN_MAX 500 +#define LONG_CHAR_VAL_LEN 500 +#define SHORT_CHAR_VAL_LEN 10 +#define GATTS_NOTIFY_FIRST_PACKET_LEN_MAX 20 + +#define PREPARE_BUF_MAX_SIZE 1024 +#define CHAR_DECLARATION_SIZE (sizeof(uint8_t)) + +#define ADV_CONFIG_FLAG (1 << 0) +#define SCAN_RSP_CONFIG_FLAG (1 << 1) + +static uint8_t adv_config_done = 0; + +uint16_t gatt_db_handle_table[HRS_IDX_NB]; + +typedef struct { + uint8_t *prepare_buf; + int prepare_len; +} prepare_type_env_t; + +static prepare_type_env_t prepare_write_env; + +//#define CONFIG_SET_RAW_ADV_DATA +#ifdef CONFIG_SET_RAW_ADV_DATA +static uint8_t raw_adv_data[] = { + /* Flags */ + 0x02, ESP_BLE_AD_TYPE_FLAG, 0x06, + /* TX Power */ + 0x02, ESP_BLE_AD_TYPE_TX_PWR, 0xeb, + /* Service UUID */ + 0x03, ESP_BLE_AD_TYPE_16SRV_CMPL, 0xFF, 0x00, + /* Device Name */ + 0x0E, ESP_BLE_AD_TYPE_NAME_CMPL, 'B', 'L', 'E', '_', 'C', 'O', 'M', 'P', '_', 'T', 'E', 'S', 'T' +}; + +static uint8_t raw_scan_rsp_data[] = { + /* Flags */ + 0x02, ESP_BLE_AD_TYPE_FLAG, 0x06, + /* TX Power */ + 0x02, ESP_BLE_AD_TYPE_TX_PWR, 0xeb, + /* Service UUID */ + 0x03, ESP_BLE_AD_TYPE_16SRV_CMPL, 0xFF, 0x00 +}; + +#else +static uint8_t service_uuid[16] = { + /* LSB <--------------------------------------------------------------------------------> MSB */ + //first uuid, 16bit, [12],[13] is the value + 0xfb, 0x34, 0x9b, 0x5f, 0x80, 0x00, 0x00, 0x80, 0x00, 0x10, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, +}; + +/* The length of adv data must be less than 31 bytes */ +static esp_ble_adv_data_t adv_data = { + .set_scan_rsp = false, + .include_name = true, + .include_txpower = true, + .min_interval = 0x20, + .max_interval = 0x40, + .appearance = 0x00, + .manufacturer_len = 0, //TEST_MANUFACTURER_DATA_LEN, + .p_manufacturer_data = NULL, //test_manufacturer, + .service_data_len = 0, + .p_service_data = NULL, + .service_uuid_len = sizeof(service_uuid), + .p_service_uuid = service_uuid, + .flag = (ESP_BLE_ADV_FLAG_GEN_DISC | ESP_BLE_ADV_FLAG_BREDR_NOT_SPT), +}; + +// scan response data +static esp_ble_adv_data_t scan_rsp_data = { + .set_scan_rsp = true, + .include_name = true, + .include_txpower = true, + .min_interval = 0x20, + .max_interval = 0x40, + .appearance = 0x00, + .manufacturer_len = 0, //TEST_MANUFACTURER_DATA_LEN, + .p_manufacturer_data = NULL, //&test_manufacturer[0], + .service_data_len = 0, + .p_service_data = NULL, + .service_uuid_len = 16, + .p_service_uuid = service_uuid, + .flag = (ESP_BLE_ADV_FLAG_GEN_DISC | ESP_BLE_ADV_FLAG_BREDR_NOT_SPT), +}; +#endif /* CONFIG_SET_RAW_ADV_DATA */ + +static esp_ble_adv_params_t adv_params = { + .adv_int_min = 0x40, + .adv_int_max = 0x40, + .adv_type = ADV_TYPE_IND, + .own_addr_type = BLE_ADDR_TYPE_PUBLIC, + .channel_map = ADV_CHNL_ALL, + .adv_filter_policy = ADV_FILTER_ALLOW_SCAN_ANY_CON_ANY, +}; + +struct gatts_profile_inst { + esp_gatts_cb_t gatts_cb; + uint16_t gatts_if; + uint16_t app_id; + uint16_t conn_id; + uint16_t service_handle; + esp_gatt_srvc_id_t service_id; + uint16_t char_handle; + esp_bt_uuid_t char_uuid; + esp_gatt_perm_t perm; + esp_gatt_char_prop_t property; + uint16_t descr_handle; + esp_bt_uuid_t descr_uuid; +}; + +static void gatts_profile_event_handler(esp_gatts_cb_event_t event, + esp_gatt_if_t gatts_if, esp_ble_gatts_cb_param_t *param); + +/* One gatt-based profile one app_id and one gatts_if, this array will store the gatts_if returned by ESP_GATTS_REG_EVT */ +static struct gatts_profile_inst heart_rate_profile_tab[PROFILE_NUM] = { + [PROFILE_APP_IDX] = { + .gatts_cb = gatts_profile_event_handler, + .gatts_if = ESP_GATT_IF_NONE, /* Not get the gatt_if, so initial is ESP_GATT_IF_NONE */ + }, +}; + +/* Service */ +static const uint16_t GATTS_SERVICE_UUID_TEST = 0x00FF; +static const uint16_t CHAR_1_SHORT_WR = 0xFF01; +static const uint16_t CHAR_2_LONG_WR = 0xFF02; +static const uint16_t CHAR_3_SHORT_NOTIFY = 0xFF03; + +static const uint16_t primary_service_uuid = ESP_GATT_UUID_PRI_SERVICE; +static const uint16_t character_declaration_uuid = ESP_GATT_UUID_CHAR_DECLARE; +static const uint16_t character_client_config_uuid = ESP_GATT_UUID_CHAR_CLIENT_CONFIG; +static const uint16_t character_user_description = ESP_GATT_UUID_CHAR_DESCRIPTION; +static const uint8_t char_prop_notify = ESP_GATT_CHAR_PROP_BIT_NOTIFY; +static const uint8_t char_prop_read_write = ESP_GATT_CHAR_PROP_BIT_WRITE | ESP_GATT_CHAR_PROP_BIT_READ; +static const uint8_t char1_name[] = "Char_1_Short_WR"; +static const uint8_t char2_name[] = "Char_2_Long_WR"; +static const uint8_t char3_name[] = "Char_3_Short_Notify"; +static const uint8_t char_ccc[2] = {0x00, 0x00}; +static const uint8_t char_value[4] = {0x11, 0x22, 0x33, 0x44}; + + +/* Full Database Description - Used to add attributes into the database */ +static const esp_gatts_attr_db_t gatt_db[HRS_IDX_NB] = +{ + // Service Declaration + [IDX_SVC] = + {{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&primary_service_uuid, ESP_GATT_PERM_READ, + sizeof(uint16_t), sizeof(GATTS_SERVICE_UUID_TEST), (uint8_t *)&GATTS_SERVICE_UUID_TEST}}, + + /* Characteristic Declaration */ + [IDX_CHAR_A] = + {{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&character_declaration_uuid, ESP_GATT_PERM_READ, + CHAR_DECLARATION_SIZE, CHAR_DECLARATION_SIZE, (uint8_t *)&char_prop_read_write}}, + + /* Characteristic Value */ + [IDX_CHAR_VAL_A] = + {{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&CHAR_1_SHORT_WR, ESP_GATT_PERM_READ | ESP_GATT_PERM_WRITE | ESP_GATT_PERM_READ_ENC_MITM, + SHORT_CHAR_VAL_LEN, sizeof(char_value), (uint8_t *)char_value}}, + + /* Characteristic User Descriptor */ + [IDX_CHAR_CFG_A] = + {{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&character_user_description, ESP_GATT_PERM_READ, + sizeof(char1_name), sizeof(char1_name), (uint8_t *)char1_name}}, + + /* Characteristic Declaration */ + [IDX_CHAR_B] = + {{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&character_declaration_uuid, ESP_GATT_PERM_READ, + CHAR_DECLARATION_SIZE, CHAR_DECLARATION_SIZE, (uint8_t *)&char_prop_read_write}}, + + /* Characteristic Value */ + [IDX_CHAR_VAL_B] = + {{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&CHAR_2_LONG_WR, ESP_GATT_PERM_READ | ESP_GATT_PERM_WRITE, + LONG_CHAR_VAL_LEN, sizeof(char_value), (uint8_t *)char_value}}, + + /* Characteristic User Descriptor */ + [IDX_CHAR_CFG_B] = + {{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&character_user_description, ESP_GATT_PERM_READ, + sizeof(char2_name), sizeof(char2_name), (uint8_t *)char2_name}}, + + /* Characteristic Declaration */ + [IDX_CHAR_C] = + {{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&character_declaration_uuid, ESP_GATT_PERM_READ, + CHAR_DECLARATION_SIZE, CHAR_DECLARATION_SIZE, (uint8_t *)&char_prop_notify}}, + + /* Characteristic Value */ + [IDX_CHAR_VAL_C] = + {{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&CHAR_3_SHORT_NOTIFY, 0, + LONG_CHAR_VAL_LEN, sizeof(char_value), (uint8_t *)char_value}}, + + /* Characteristic User Descriptor */ + [IDX_CHAR_CFG_C] = + {{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&character_user_description, ESP_GATT_PERM_READ, + sizeof(char3_name), sizeof(char3_name), (uint8_t *)char3_name}}, + + /* Characteristic Client Configuration Descriptor */ + [IDX_CHAR_CFG_C_2] = + {{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&character_client_config_uuid, ESP_GATT_PERM_READ | ESP_GATT_PERM_WRITE, + sizeof(uint16_t), sizeof(char_ccc), (uint8_t *)char_ccc}}, + +}; + +static void show_bonded_devices(void) +{ + int dev_num = esp_ble_get_bond_device_num(); + if (dev_num == 0) { + ESP_LOGI(EXAMPLE_TAG, "Bonded devices number zero\n"); + return; + } + + esp_ble_bond_dev_t *dev_list = (esp_ble_bond_dev_t *)malloc(sizeof(esp_ble_bond_dev_t) * dev_num); + if (!dev_list) { + ESP_LOGE(EXAMPLE_TAG, "malloc failed, return\n"); + return; + } + esp_ble_get_bond_device_list(&dev_num, dev_list); + EXAMPLE_DEBUG(EXAMPLE_TAG, "Bonded devices number : %d\n", dev_num); + + EXAMPLE_DEBUG(EXAMPLE_TAG, "Bonded devices list : %d\n", dev_num); + for (int i = 0; i < dev_num; i++) { + #if DEBUG_ON + ESP_LOG_BUFFER_HEX(EXAMPLE_TAG, (void *)dev_list[i].bd_addr, sizeof(esp_bd_addr_t)); + #endif + } + + free(dev_list); +} + +static void __attribute__((unused)) remove_all_bonded_devices(void) +{ + int dev_num = esp_ble_get_bond_device_num(); + if (dev_num == 0) { + ESP_LOGI(EXAMPLE_TAG, "Bonded devices number zero\n"); + return; + } + + esp_ble_bond_dev_t *dev_list = (esp_ble_bond_dev_t *)malloc(sizeof(esp_ble_bond_dev_t) * dev_num); + if (!dev_list) { + ESP_LOGE(EXAMPLE_TAG, "malloc failed, return\n"); + return; + } + esp_ble_get_bond_device_list(&dev_num, dev_list); + for (int i = 0; i < dev_num; i++) { + esp_ble_remove_bond_device(dev_list[i].bd_addr); + } + + free(dev_list); +} + +static void gap_event_handler(esp_gap_ble_cb_event_t event, esp_ble_gap_cb_param_t *param) +{ + switch (event) { + #ifdef CONFIG_SET_RAW_ADV_DATA + case ESP_GAP_BLE_ADV_DATA_RAW_SET_COMPLETE_EVT: + adv_config_done &= (~ADV_CONFIG_FLAG); + if (adv_config_done == 0){ + esp_ble_gap_start_advertising(&adv_params); + } + break; + case ESP_GAP_BLE_SCAN_RSP_DATA_RAW_SET_COMPLETE_EVT: + adv_config_done &= (~SCAN_RSP_CONFIG_FLAG); + if (adv_config_done == 0){ + esp_ble_gap_start_advertising(&adv_params); + } + break; + #else + case ESP_GAP_BLE_ADV_DATA_SET_COMPLETE_EVT: + adv_config_done &= (~ADV_CONFIG_FLAG); + if (adv_config_done == 0){ + esp_ble_gap_start_advertising(&adv_params); + } + break; + case ESP_GAP_BLE_SCAN_RSP_DATA_SET_COMPLETE_EVT: + adv_config_done &= (~SCAN_RSP_CONFIG_FLAG); + if (adv_config_done == 0){ + esp_ble_gap_start_advertising(&adv_params); + } + break; + #endif + case ESP_GAP_BLE_ADV_START_COMPLETE_EVT: + /* advertising start complete event to indicate advertising start successfully or failed */ + if (param->adv_start_cmpl.status != ESP_BT_STATUS_SUCCESS) { + ESP_LOGE(EXAMPLE_TAG, "advertising start failed"); + }else{ + ESP_LOGI(EXAMPLE_TAG, "(0) ***** advertising start successfully ***** "); + } + break; + case ESP_GAP_BLE_ADV_STOP_COMPLETE_EVT: + if (param->adv_stop_cmpl.status != ESP_BT_STATUS_SUCCESS) { + ESP_LOGE(EXAMPLE_TAG, "Advertising stop failed"); + } + else { + ESP_LOGI(EXAMPLE_TAG, "Stop adv successfully"); + } + break; + case ESP_GAP_BLE_UPDATE_CONN_PARAMS_EVT: + EXAMPLE_DEBUG(EXAMPLE_TAG, "update connection params status = %d, conn_int = %d, latency = %d, timeout = %d", + param->update_conn_params.status, + param->update_conn_params.conn_int, + param->update_conn_params.latency, + param->update_conn_params.timeout); + break; + case ESP_GAP_BLE_PASSKEY_REQ_EVT: /* passkey request event */ + EXAMPLE_DEBUG(EXAMPLE_TAG, "ESP_GAP_BLE_PASSKEY_REQ_EVT"); + //esp_ble_passkey_reply(heart_rate_profile_tab[HEART_PROFILE_APP_IDX].remote_bda, true, 0x00); + break; + + case ESP_GAP_BLE_NC_REQ_EVT: + /* The app will receive this event when the IO has DisplayYesNO capability and the peer device IO also has DisplayYesNo capability. + show the passkey number to the user to confirm it with the number displayed by peer device. */ + ESP_LOGI(EXAMPLE_TAG, "ESP_GAP_BLE_NC_REQ_EVT, the passkey Notify number:%" PRIu32, param->ble_security.key_notif.passkey); + break; + case ESP_GAP_BLE_SEC_REQ_EVT: + /* send the positive(true) security response to the peer device to accept the security request. + If not accept the security request, should send the security response with negative(false) accept value*/ + esp_ble_gap_security_rsp(param->ble_security.ble_req.bd_addr, true); + break; + case ESP_GAP_BLE_PASSKEY_NOTIF_EVT: ///the app will receive this evt when the IO has Output capability and the peer device IO has Input capability. + ///show the passkey number to the user to input it in the peer device. + ESP_LOGI(EXAMPLE_TAG, "The passkey notify number:%06" PRIu32, param->ble_security.key_notif.passkey); + break; + case ESP_GAP_BLE_KEY_EVT: + //shows the ble key info share with peer device to the user. + EXAMPLE_DEBUG(EXAMPLE_TAG, "key type = %s", esp_key_type_to_str(param->ble_security.ble_key.key_type)); + break; + case ESP_GAP_BLE_AUTH_CMPL_EVT: { + esp_bd_addr_t bd_addr; + memcpy(bd_addr, param->ble_security.auth_cmpl.bd_addr, sizeof(esp_bd_addr_t)); + EXAMPLE_DEBUG(EXAMPLE_TAG, "remote BD_ADDR: %08x%04x",\ + (bd_addr[0] << 24) + (bd_addr[1] << 16) + (bd_addr[2] << 8) + bd_addr[3], + (bd_addr[4] << 8) + bd_addr[5]); + EXAMPLE_DEBUG(EXAMPLE_TAG, "address type = %d", param->ble_security.auth_cmpl.addr_type); + if (param->ble_security.auth_cmpl.success){ + ESP_LOGI(EXAMPLE_TAG, "(1) ***** pair status = success ***** "); + } + else { + ESP_LOGI(EXAMPLE_TAG, "***** pair status = fail, reason = 0x%x *****", param->ble_security.auth_cmpl.fail_reason); + } + show_bonded_devices(); + break; + } + case ESP_GAP_BLE_REMOVE_BOND_DEV_COMPLETE_EVT: { + EXAMPLE_DEBUG(EXAMPLE_TAG, "ESP_GAP_BLE_REMOVE_BOND_DEV_COMPLETE_EVT status = %d", param->remove_bond_dev_cmpl.status); + #if DEBUG_ON + ESP_LOG_BUFFER_HEX(EXAMPLE_TAG, (void *)param->remove_bond_dev_cmpl.bd_addr, sizeof(esp_bd_addr_t)); + #endif + EXAMPLE_DEBUG(EXAMPLE_TAG, "------------------------------------"); + break; + } + default: + break; + } +} + +void example_prepare_write_event_env(esp_gatt_if_t gatts_if, prepare_type_env_t *prepare_write_env, esp_ble_gatts_cb_param_t *param) +{ + EXAMPLE_DEBUG(EXAMPLE_TAG, "prepare write, handle = %d, value len = %d", param->write.handle, param->write.len); + esp_gatt_status_t status = ESP_GATT_OK; + if (param->write.offset > PREPARE_BUF_MAX_SIZE) { + status = ESP_GATT_INVALID_OFFSET; + } else if ((param->write.offset + param->write.len) > PREPARE_BUF_MAX_SIZE) { + status = ESP_GATT_INVALID_ATTR_LEN; + } + + if (status == ESP_GATT_OK && prepare_write_env->prepare_buf == NULL) { + prepare_write_env->prepare_buf = (uint8_t *)malloc(PREPARE_BUF_MAX_SIZE * sizeof(uint8_t)); + prepare_write_env->prepare_len = 0; + if (prepare_write_env->prepare_buf == NULL) { + ESP_LOGE(EXAMPLE_TAG, "%s, Gatt_server prep no mem", __func__); + status = ESP_GATT_NO_RESOURCES; + } + } + + /*send response when param->write.need_rsp is true */ + if (param->write.need_rsp){ + esp_gatt_rsp_t *gatt_rsp = (esp_gatt_rsp_t *)malloc(sizeof(esp_gatt_rsp_t)); + if (gatt_rsp != NULL){ + gatt_rsp->attr_value.len = param->write.len; + gatt_rsp->attr_value.handle = param->write.handle; + gatt_rsp->attr_value.offset = param->write.offset; + gatt_rsp->attr_value.auth_req = ESP_GATT_AUTH_REQ_NONE; + memcpy(gatt_rsp->attr_value.value, param->write.value, param->write.len); + esp_err_t response_err = esp_ble_gatts_send_response(gatts_if, param->write.conn_id, param->write.trans_id, status, gatt_rsp); + if (response_err != ESP_OK){ + ESP_LOGE(EXAMPLE_TAG, "Send response error"); + } + free(gatt_rsp); + }else{ + ESP_LOGE(EXAMPLE_TAG, "%s, malloc failed, and no resource to send response", __func__); + status = ESP_GATT_NO_RESOURCES; + } + } + if (status != ESP_GATT_OK){ + return; + } + memcpy(prepare_write_env->prepare_buf + param->write.offset, + param->write.value, + param->write.len); + prepare_write_env->prepare_len += param->write.len; + +} +uint8_t long_write[16] = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF}; +void example_exec_write_event_env(prepare_type_env_t *prepare_write_env, esp_ble_gatts_cb_param_t *param){ + if (param->exec_write.exec_write_flag == ESP_GATT_PREP_WRITE_EXEC && prepare_write_env->prepare_buf){ + if(prepare_write_env->prepare_len == 256) { + bool long_write_success = true; + for(uint16_t i = 0; i < prepare_write_env->prepare_len; i ++) { + if(prepare_write_env->prepare_buf[i] != long_write[i%16]) { + long_write_success = false; + break; + } + } + if(long_write_success) { + ESP_LOGI(EXAMPLE_TAG, "(4) ***** long write success ***** "); + } + } + }else{ + ESP_LOGI(EXAMPLE_TAG,"ESP_GATT_PREP_WRITE_CANCEL"); + } + if (prepare_write_env->prepare_buf) { + free(prepare_write_env->prepare_buf); + prepare_write_env->prepare_buf = NULL; + } + prepare_write_env->prepare_len = 0; +} + +static void gatts_profile_event_handler(esp_gatts_cb_event_t event, esp_gatt_if_t gatts_if, esp_ble_gatts_cb_param_t *param) +{ + switch (event) { + case ESP_GATTS_REG_EVT:{ + esp_err_t set_dev_name_ret = esp_ble_gap_set_device_name(SAMPLE_DEVICE_NAME); + if (set_dev_name_ret){ + ESP_LOGE(EXAMPLE_TAG, "set device name failed, error code = %x", set_dev_name_ret); + } + #ifdef CONFIG_SET_RAW_ADV_DATA + esp_err_t raw_adv_ret = esp_ble_gap_config_adv_data_raw(raw_adv_data, sizeof(raw_adv_data)); + if (raw_adv_ret){ + ESP_LOGE(EXAMPLE_TAG, "config raw adv data failed, error code = %x ", raw_adv_ret); + } + adv_config_done |= ADV_CONFIG_FLAG; + esp_err_t raw_scan_ret = esp_ble_gap_config_scan_rsp_data_raw(raw_scan_rsp_data, sizeof(raw_scan_rsp_data)); + if (raw_scan_ret){ + ESP_LOGE(EXAMPLE_TAG, "config raw scan rsp data failed, error code = %x", raw_scan_ret); + } + adv_config_done |= SCAN_RSP_CONFIG_FLAG; + #else + //config adv data + esp_err_t ret = esp_ble_gap_config_adv_data(&adv_data); + if (ret){ + ESP_LOGE(EXAMPLE_TAG, "config adv data failed, error code = %x", ret); + } + adv_config_done |= ADV_CONFIG_FLAG; + //config scan response data + ret = esp_ble_gap_config_adv_data(&scan_rsp_data); + if (ret){ + ESP_LOGE(EXAMPLE_TAG, "config scan response data failed, error code = %x", ret); + } + adv_config_done |= SCAN_RSP_CONFIG_FLAG; + #endif + esp_err_t create_attr_ret = esp_ble_gatts_create_attr_tab(gatt_db, gatts_if, HRS_IDX_NB, SVC_INST_ID); + if (create_attr_ret){ + ESP_LOGE(EXAMPLE_TAG, "create attr table failed, error code = %x", create_attr_ret); + } + } + break; + case ESP_GATTS_READ_EVT: + //ESP_LOGE(EXAMPLE_TAG, "ESP_GATTS_READ_EVT, handle=0x%d, offset=%d", param->read.handle, param->read.offset); + if(gatt_db_handle_table[IDX_CHAR_VAL_A] == param->read.handle) { + ESP_LOGE(EXAMPLE_TAG, "(2) ***** read char1 ***** "); + } + if(gatt_db_handle_table[IDX_CHAR_VAL_B] == param->read.handle) { + ESP_LOGE(EXAMPLE_TAG, "(5) ***** read char2 ***** "); + } + break; + case ESP_GATTS_WRITE_EVT: + if (!param->write.is_prep){ + // the data length of gattc write must be less than GATTS_EXAMPLE_CHAR_VAL_LEN_MAX. + if (gatt_db_handle_table[IDX_CHAR_CFG_C_2] == param->write.handle && param->write.len == 2){ + uint16_t descr_value = param->write.value[1]<<8 | param->write.value[0]; + uint8_t notify_data[2]; + notify_data[0] = 0xAA; + notify_data[1] = 0xBB; + + if (descr_value == 0x0001){ + //the size of notify_data[] need less than MTU size + esp_ble_gatts_send_indicate(gatts_if, param->write.conn_id, gatt_db_handle_table[IDX_CHAR_VAL_C], + sizeof(notify_data), notify_data, false); + ESP_LOGI(EXAMPLE_TAG, "(6) ***** send notify AA BB ***** "); + }else if (descr_value == 0x0002){ + //the size of indicate_data[] need less than MTU size + esp_ble_gatts_send_indicate(gatts_if, param->write.conn_id, gatt_db_handle_table[IDX_CHAR_VAL_C], + sizeof(notify_data), notify_data, true); + } + else if (descr_value == 0x0000){ + ESP_LOGI(EXAMPLE_TAG, "notify/indicate disable "); + }else{ + ESP_LOGE(EXAMPLE_TAG, "unknown descr value"); + ESP_LOG_BUFFER_HEX(EXAMPLE_TAG, param->write.value, param->write.len); + } + + } + if(gatt_db_handle_table[IDX_CHAR_VAL_A] == param->write.handle && param->write.len == 2) { + uint8_t write_data[2] = {0x88, 0x99}; + if(memcmp(write_data, param->write.value, param->write.len) == 0) { + ESP_LOGI(EXAMPLE_TAG, "(3)***** short write success ***** "); + } + } + + /* send response when param->write.need_rsp is true*/ + if (param->write.need_rsp){ + esp_ble_gatts_send_response(gatts_if, param->write.conn_id, param->write.trans_id, ESP_GATT_OK, NULL); + } + }else{ + /* handle prepare write */ + example_prepare_write_event_env(gatts_if, &prepare_write_env, param); + } + break; + case ESP_GATTS_EXEC_WRITE_EVT: + // the length of gattc prepare write data must be less than GATTS_EXAMPLE_CHAR_VAL_LEN_MAX. + ESP_LOGI(EXAMPLE_TAG, "ESP_GATTS_EXEC_WRITE_EVT, Length=%d", prepare_write_env.prepare_len); + example_exec_write_event_env(&prepare_write_env, param); + break; + case ESP_GATTS_MTU_EVT: + EXAMPLE_DEBUG(EXAMPLE_TAG, "ESP_GATTS_MTU_EVT, MTU %d", param->mtu.mtu); + break; + case ESP_GATTS_CONF_EVT: + EXAMPLE_DEBUG(EXAMPLE_TAG, "ESP_GATTS_CONF_EVT, status = %d", param->conf.status); + break; + case ESP_GATTS_START_EVT: + EXAMPLE_DEBUG(EXAMPLE_TAG, "SERVICE_START_EVT, status %d, service_handle %d", param->start.status, param->start.service_handle); + break; + case ESP_GATTS_CONNECT_EVT: + ESP_LOGI(EXAMPLE_TAG, "ESP_GATTS_CONNECT_EVT, conn_id = %d", param->connect.conn_id); + /* start security connect with peer device when receive the connect event sent by the master */ + esp_ble_set_encryption(param->connect.remote_bda, ESP_BLE_SEC_ENCRYPT_MITM); + break; + case ESP_GATTS_DISCONNECT_EVT: + ESP_LOGI(EXAMPLE_TAG, "ESP_GATTS_DISCONNECT_EVT, reason = %d", param->disconnect.reason); + esp_ble_gap_start_advertising(&adv_params); + break; + case ESP_GATTS_CREAT_ATTR_TAB_EVT:{ + if (param->add_attr_tab.status != ESP_GATT_OK){ + ESP_LOGE(EXAMPLE_TAG, "create attribute table failed, error code=0x%x", param->add_attr_tab.status); + } + else if (param->add_attr_tab.num_handle != HRS_IDX_NB){ + ESP_LOGE(EXAMPLE_TAG, "create attribute table abnormally, num_handle (%d) \ + doesn't equal to HRS_IDX_NB(%d)", param->add_attr_tab.num_handle, HRS_IDX_NB); + } + else { + ESP_LOGI(EXAMPLE_TAG, "create attribute table successfully, the number handle = %d",param->add_attr_tab.num_handle); + memcpy(gatt_db_handle_table, param->add_attr_tab.handles, sizeof(gatt_db_handle_table)); + esp_ble_gatts_start_service(gatt_db_handle_table[IDX_SVC]); + } + break; + } + default: + break; + } +} + + +static void gatts_event_handler(esp_gatts_cb_event_t event, esp_gatt_if_t gatts_if, esp_ble_gatts_cb_param_t *param) +{ + + /* If event is register event, store the gatts_if for each profile */ + if (event == ESP_GATTS_REG_EVT) { + if (param->reg.status == ESP_GATT_OK) { + heart_rate_profile_tab[PROFILE_APP_IDX].gatts_if = gatts_if; + } else { + ESP_LOGE(EXAMPLE_TAG, "reg app failed, app_id %04x, status %d", + param->reg.app_id, + param->reg.status); + return; + } + } + do { + int idx; + for (idx = 0; idx < PROFILE_NUM; idx++) { + /* ESP_GATT_IF_NONE, not specify a certain gatt_if, need to call every profile cb function */ + if (gatts_if == ESP_GATT_IF_NONE || gatts_if == heart_rate_profile_tab[idx].gatts_if) { + if (heart_rate_profile_tab[idx].gatts_cb) { + heart_rate_profile_tab[idx].gatts_cb(event, gatts_if, param); + } + } + } + } while (0); +} + +void app_main(void) +{ + esp_err_t ret; + + /* Initialize NVS. */ + ret = nvs_flash_init(); + if (ret == ESP_ERR_NVS_NO_FREE_PAGES) { + ESP_ERROR_CHECK(nvs_flash_erase()); + ret = nvs_flash_init(); + } + ESP_ERROR_CHECK( ret ); + + /* initialize TRANSPORT first */ + hosted_hci_bluedroid_open(); + + /* get HCI driver operations */ + esp_bluedroid_hci_driver_operations_t operations = { + .send = hosted_hci_bluedroid_send, + .check_send_available = hosted_hci_bluedroid_check_send_available, + .register_host_callback = hosted_hci_bluedroid_register_host_callback, + }; + esp_bluedroid_attach_hci_driver(&operations); + + +#if 0 + ESP_ERROR_CHECK(esp_bt_controller_mem_release(ESP_BT_MODE_CLASSIC_BT)); + + esp_bt_controller_config_t bt_cfg = BT_CONTROLLER_INIT_CONFIG_DEFAULT(); + ret = esp_bt_controller_init(&bt_cfg); + if (ret) { + ESP_LOGE(EXAMPLE_TAG, "%s enable controller failed: %s", __func__, esp_err_to_name(ret)); + return; + } + + ret = esp_bt_controller_enable(ESP_BT_MODE_BLE); + if (ret) { + ESP_LOGE(EXAMPLE_TAG, "%s enable controller failed: %s", __func__, esp_err_to_name(ret)); + return; + } +#endif + + ret = esp_bluedroid_init(); + if (ret) { + ESP_LOGE(EXAMPLE_TAG, "%s init bluetooth failed: %s", __func__, esp_err_to_name(ret)); + return; + } + + ret = esp_bluedroid_enable(); + if (ret) { + ESP_LOGE(EXAMPLE_TAG, "%s enable bluetooth failed: %s", __func__, esp_err_to_name(ret)); + return; + } + + ret = esp_ble_gatts_register_callback(gatts_event_handler); + if (ret){ + ESP_LOGE(EXAMPLE_TAG, "gatts register error, error code = %x", ret); + return; + } + + ret = esp_ble_gap_register_callback(gap_event_handler); + if (ret){ + ESP_LOGE(EXAMPLE_TAG, "gap register error, error code = %x", ret); + return; + } + + ret = esp_ble_gatts_app_register(ESP_APP_ID); + if (ret){ + ESP_LOGE(EXAMPLE_TAG, "gatts app register error, error code = %x", ret); + return; + } + + esp_err_t local_mtu_ret = esp_ble_gatt_set_local_mtu(33); + if (local_mtu_ret){ + ESP_LOGE(EXAMPLE_TAG, "set local MTU failed, error code = %x", local_mtu_ret); + } + + /* set the security iocap & auth_req & key size & init key response key parameters to the stack*/ + esp_ble_auth_req_t auth_req = ESP_LE_AUTH_REQ_SC_MITM_BOND; //bonding with peer device after authentication + esp_ble_io_cap_t iocap = ESP_IO_CAP_OUT; //set the IO capability to No output No input + uint8_t key_size = 16; //the key size should be 7~16 bytes + uint8_t init_key = ESP_BLE_ENC_KEY_MASK | ESP_BLE_ID_KEY_MASK; + uint8_t rsp_key = ESP_BLE_ENC_KEY_MASK | ESP_BLE_ID_KEY_MASK; + uint32_t passkey = 123456; + esp_ble_gap_set_security_param(ESP_BLE_SM_SET_STATIC_PASSKEY, &passkey, sizeof(uint32_t)); + esp_ble_gap_set_security_param(ESP_BLE_SM_AUTHEN_REQ_MODE, &auth_req, sizeof(uint8_t)); + esp_ble_gap_set_security_param(ESP_BLE_SM_IOCAP_MODE, &iocap, sizeof(uint8_t)); + esp_ble_gap_set_security_param(ESP_BLE_SM_MAX_KEY_SIZE, &key_size, sizeof(uint8_t)); + /* If your BLE device act as a Slave, the init_key means you hope which types of key of the master should distribute to you, + and the response key means which key you can distribute to the Master; + If your BLE device act as a master, the response key means you hope which types of key of the slave should distribute to you, + and the init key means which key you can distribute to the slave. */ + esp_ble_gap_set_security_param(ESP_BLE_SM_SET_INIT_KEY, &init_key, sizeof(uint8_t)); + esp_ble_gap_set_security_param(ESP_BLE_SM_SET_RSP_KEY, &rsp_key, sizeof(uint8_t)); + +} diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/ble_compatibility_test.h b/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/ble_compatibility_test.h new file mode 100644 index 0000000..d88eecf --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/ble_compatibility_test.h @@ -0,0 +1,31 @@ +/* + * SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Unlicense OR CC0-1.0 + */ + + +#include +#include +#include + + +/* Attributes State Machine */ +enum +{ + IDX_SVC, + IDX_CHAR_A, + IDX_CHAR_VAL_A, + IDX_CHAR_CFG_A, + + IDX_CHAR_B, + IDX_CHAR_VAL_B, + IDX_CHAR_CFG_B, + + IDX_CHAR_C, + IDX_CHAR_VAL_C, + IDX_CHAR_CFG_C, + IDX_CHAR_CFG_C_2, + + HRS_IDX_NB, +}; diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/idf_component.yml b/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/idf_component.yml new file mode 100644 index 0000000..87c2a6f --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/idf_component.yml @@ -0,0 +1,9 @@ +dependencies: + espressif/esp_hosted: + rules: + - if: target in [esp32p4, esp32h2] + version: ~2 + espressif/esp_wifi_remote: + rules: + - if: target in [esp32p4, esp32h2] + version: '>=0.10' diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/sdkconfig.defaults b/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/sdkconfig.defaults new file mode 100644 index 0000000..30fef8e --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/sdkconfig.defaults @@ -0,0 +1,23 @@ +# +# BT config +# - ESP32 co-processor only supports BLE 4.2 +# +CONFIG_BT_ENABLED=y +CONFIG_BT_CONTROLLER_DISABLED=y +CONFIG_BT_BLUEDROID_ENABLED=y +CONFIG_BT_BLE_50_FEATURES_SUPPORTED=n +CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y +# CONFIG_BT_LE_50_FEATURE_SUPPORT is not used on ESP32, ESP32-C3 and ESP32-S3. +CONFIG_BT_LE_50_FEATURE_SUPPORT=n + +# +# Wi-Fi Remote +# +CONFIG_ESP_WIFI_REMOTE_LIBRARY_HOSTED=y + +# +# Enable ESP Hosted BT +# Used as VHCI transport between BT Host and Controller +# +CONFIG_ESP_HOSTED_ENABLE_BT_BLUEDROID=y +CONFIG_ESP_HOSTED_BLUEDROID_HCI_VHCI=y diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/CMakeLists.txt b/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/CMakeLists.txt new file mode 100644 index 0000000..22f7b2e --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/CMakeLists.txt @@ -0,0 +1,9 @@ + +# The following lines of boilerplate have to be in your project's +# CMakeLists in this exact order for cmake to work correctly +cmake_minimum_required(VERSION 3.16) + +include($ENV{IDF_PATH}/tools/cmake/project.cmake) +# "Trim" the build. Include the minimal set of components, main, and anything it depends on. +idf_build_set_property(MINIMAL_BUILD ON) +project(bt_hid_mouse_device) diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/README.md b/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/README.md new file mode 100644 index 0000000..b6fe73e --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/README.md @@ -0,0 +1,298 @@ +| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-S3 | ESP32-P4 | ESP32-H2 | +| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | -------- | + +# Bluetooth HID Device example + +This example aims to show how to implement a Bluetooth HID device using the APIs provided by Classic Bluetooth HID profile. + +This example simulates a Bluetooth HID mouse device that periodically sends report to remote Bluetooth HID host after connection. The report indicates a horizontally moving pointer and can be observed on the display on the HID host side. If you want to build an HID device, this can be your first example to look at. + +## How to use example + +This example has been modified to work with ESP-Hosted. The original ESP-IDF example is at [ https://github.com/espressif/esp-idf/tree/master/examples/bluetooth/bluedroid/classic_bt/bt_hid_mouse_device/ ]. + +### Hardware Required + +* This example is able to run on the ESP32-P4 Dev Board, acting as the BT Host, connected to a ESP32 co-processor via the GPIO header, using SPI FD (full duplex) as Hosted HCI transport. The ESP32 acts as the BT Controller. The following GPIO settings were used: + +| SPI Function | ESP32 GPIO | ESP32-P4 GPIO | +| :--- | ---: | ---: | +| MOSI | 13 | 4 | +| MISO | 12 | 5 | +| CLK | 14 | 26 | +| CS | 15 | 6 | +| Handshake | 26 | 20 | +| Data Ready | 4 | 36 | +| Reset | -1 | 2 | + +> [!NOTE] +> SPI Mode 2 was used on both the ESP32-P4 and ESP32. + +Users are free to choose which supported ESP-Hosted transport to use. See the [main ESP-Hosted README](https://github.com/espressif/esp-hosted-mcu/blob/main/README.md#6-decide-the-communication-bus-in-between-host-and-slave) for a list of supported transports. + +* This example is supposed to connect to a Classic Bluetooth HID Host device, e.g. laptop or tablet. + +### Configure the project + +On the ESP32-P4 Dev Board, run `idf.py menuconfig`. + +* Check and enable Classic Bluetooth and Classic BT HID Device under `Component config --> Bluetooth --> Bluedroid Options` +* Ensure that `Component config --> Bluetooth --> Controller` is `Disabled`. +* Under `Component config --> ESP-Hosted config`: + * Configure ESP-Hosted to use `SPI Full-duplex` as the transport + * Set the Slave chipset used as `ESP32` + * Check and enable `Bluetooth Support` + * Configure the GPIOs used for SPI FD on both the ESP32-P4 and ESP32, following the table above + +### Build and Flash + +Build the project and flash it to the board, then run monitor tool to view serial output: + +``` +idf.py -p PORT flash monitor +``` + +(Replace PORT with the name of the serial port to use.) + +(To exit the serial monitor, type ``Ctrl-]``.) + +See the Getting Started Guide for full steps to configure and use ESP-IDF to build projects. + +## Example Output + +The following log will be shown on the IDF monitor console: + +``` +I (499) main_task: Calling app_main() +I (509) transport: Attempt connection with slave: retry[0] +I (509) transport: Reset slave using GPIO[2] +I (509) os_wrapper_esp: GPIO [2] configured +I (509) gpio: GPIO[2]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 +I (1699) transport: Received INIT event from ESP32 peripheral +I (1699) transport: EVENT: 12 +I (1699) transport: EVENT: 11 +I (1699) transport: capabilities: 0xf8 +I (1709) transport: Features supported are: +I (1709) transport: - HCI over SPI +I (1709) transport: - BT/BLE dual mode +I (1719) transport: EVENT: 13 +I (1719) transport: ESP board type is : 0 + +I (1719) transport: Base transport is set-up + +I (1729) transport: Slave chip Id[12] +I (1729) vhci_drv: Host BT Support: Enabled +I (1729) vhci_drv: BT Transport Type: VHCI +I (1739) spi: Received INIT event +I (2799) app_main: setting device name +I (2799) esp_bt_gap_cb: event: 10 +I (2799) app_main: setting cod major, peripheral +I (4799) app_main: register hid device callback +I (4799) app_main: starting hid device +I (4799) esp_bt_hidd_cb: setting hid parameters +I (4799) esp_bt_gap_cb: event: 10 +I (4799) esp_bt_hidd_cb: setting hid parameters success! +I (4799) esp_bt_hidd_cb: setting to connectable, discoverable +I (4809) app_main: Own address:[10:97:bd:d5:8a:62] +I (4809) app_main: exiting +``` + +The messages show the successful initialization of Bluetooth stack and HID application. ESP32-P4 will become discoverable with the Bluetooth device name as "HID Mouse Example", by nearby Bluetooth HID Host device. + +Connect to ESP32-P4 on the HID Host side, then finish bonding. After that the HID connection will be established. IDF monitor console will continue to print messages like: + +``` +W (21229) BT_HCI: hcif conn complete: hdl 0x80, st 0x0 +I (21229) esp_bt_gap_cb: event: 16 +I (21859) esp_bt_gap_cb: authentication success: XXXXXXXX +I (21859) esp_bt_gap_cb: 64 49 7d d0 fd 99 +I (21889) esp_bt_gap_cb: event: 21 +W (22299) BT_HIDD: hidd_l2cif_config_cfm: config failed, retry +W (22319) BT_APPL: new conn_srvc id:20, app_id:1 +I (22319) esp_bt_hidd_cb: connected to 64:49:7d:d0:fd:99 +I (22319) mouse_move_task: starting +I (22319) esp_bt_hidd_cb: making self non-discoverable and non-connectable. +W (22329) BT_HCI: hci cmd send: sniff: hdl 0x80, intv(10 18) +I (22339) esp_bt_hidd_cb: ESP_HIDD_SEND_REPORT_EVT id:0x00, type:1 +W (22349) BT_HCI: hcif mode change: hdl 0x80, mode 2, intv 18, status 0x0 +I (22349) esp_bt_gap_cb: ESP_BT_GAP_MODE_CHG_EVT mode:2 +I (22369) esp_bt_hidd_cb: ESP_HIDD_SEND_REPORT_EVT id:0x00, type:1 +I (22419) esp_bt_hidd_cb: ESP_HIDD_SEND_REPORT_EVT id:0x00, type:1 +I (22469) esp_bt_hidd_cb: ESP_HIDD_SEND_REPORT_EVT id:0x00, type:1 +I (22519) esp_bt_hidd_cb: ESP_HIDD_SEND_REPORT_EVT id:0x00, type:1 +I (22569) esp_bt_hidd_cb: ESP_HIDD_SEND_REPORT_EVT id:0x00, type:1 +``` + +ESP32-P4 will generate and send HID mouse reports periodically. On the screen of HID Host, the cursor will move horizontally from left to right and then right to left, and so on so forth. + +## Example Breakdown + +### Initial settings for Bluetooth HID device profile + +Bluetooth HID device requires the specific major and minor device type in the Class of Device (CoD), the following lines of source code performs the configuration of CoD: + +``` +void app_main(void) { + ... + ESP_LOGI(TAG, "setting cod major, peripheral"); + esp_bt_cod_t cod; + cod.major = ESP_BT_COD_MAJOR_DEV_PERIPHERAL; + esp_bt_gap_set_cod(cod, ESP_BT_SET_COD_MAJOR_MINOR); + ... +} +``` + +Bluetooth HID device profile requires the information of service name, provide, device subclass, report descriptor for SDP server, as well as L2CAP QoS configurations from the application. Following lines in function `app_main` initialize these information fields: + +``` +void app_main(void) { + ... + // Initialize HID SDP information and L2CAP parameters. + // to be used in the call of `esp_bt_hid_device_register_app` after profile initialization finishes + do { + s_local_param.app_param.name = "Mouse"; + s_local_param.app_param.description = "Mouse Example"; + s_local_param.app_param.provider = "ESP32"; + s_local_param.app_param.subclass = ESP_HID_CLASS_MIC; + s_local_param.app_param.desc_list = hid_mouse_descriptor; + s_local_param.app_param.desc_list_len = hid_mouse_descriptor_len; + + memset(&s_local_param.both_qos, 0, sizeof(esp_hidd_qos_param_t)); // don't set the qos parameters + } while (0); + + // Report Protocol Mode is the default mode, according to Bluetooth HID specification + s_local_param.protocol_mode = ESP_HIDD_REPORT_MODE; + + ESP_LOGI(TAG, "register hid device callback"); + esp_bt_hid_device_register_callback(esp_bt_hidd_cb); + + ESP_LOGI(TAG, "starting hid device"); + esp_bt_hid_device_init(); + ... +} +``` + +The information is set to global struct `s_local_param` and will be used upon successful profile initialization, i.e. reception of `ESP_HIDD_INIT_EVT` which is generated after the call of `esp_bt_hid_device_init()`: + +``` +void esp_bt_hidd_cb(esp_hidd_cb_event_t event, esp_hidd_cb_param_t *param) +{ + ... + switch (event) { + case ESP_HIDD_INIT_EVT: + if (param->init.status == ESP_HIDD_SUCCESS) { + ESP_LOGI(TAG, "setting hid parameters"); + esp_bt_hid_device_register_app(&s_local_param.app_param, &s_local_param.both_qos, &s_local_param.both_qos); + } else { + ESP_LOGE(TAG, "init hidd failed!"); + } + break; + ... + } + ... +} +``` + +### Determination of HID Report Mode + +There are two HID report modes: Report Protocol Mode and Boot Protocol Mode. The former is the default mode. The two report modes differ in the report contents and format. The example supports both of the two modes. + +Report Mode requires report descriptor to describe the usage and format of the reports. For Bluetooth HID device, the report descriptor shall be provided in the SDP server, which can be discovered and used by remote HID Host. + +Boot Mode only supports keyboards and mice, with pre-defined report formats. Therefore it does not require a report descriptor parser on the remote HID Host. It is originally used to simplify the design of PC BIOSs. + +The following code lines set Report Protocol Mode as the default Report Mode: + +``` +void app_main(void) { + ... + // Report Protocol Mode is the default mode, according to Bluetooth HID specification + s_local_param.protocol_mode = ESP_HIDD_REPORT_MODE; + ... +} +``` + +Report Mode can be choosen by remote HID Host through the SET_PROTOCOL request: + +``` +void esp_bt_hidd_cb(esp_hidd_cb_event_t event, esp_hidd_cb_param_t *param) +{ + ... + switch (event) { + ... + case ESP_HIDD_SET_PROTOCOL_EVT: + ESP_LOGI(TAG, "ESP_HIDD_SET_PROTOCOL_EVT"); + if (param->set_protocol.protocol_mode == ESP_HIDD_BOOT_MODE) { + ESP_LOGI(TAG, " - boot protocol"); + xSemaphoreTake(s_local_param.mouse_mutex, portMAX_DELAY); + s_local_param.x_dir = -1; + xSemaphoreGive(s_local_param.mouse_mutex); + } else if (param->set_protocol.protocol_mode == ESP_HIDD_REPORT_MODE) { + ESP_LOGI(TAG, " - report protocol"); + } + xSemaphoreTake(s_local_param.mouse_mutex, portMAX_DELAY); + s_local_param.protocol_mode = param->set_protocol.protocol_mode; + xSemaphoreGive(s_local_param.mouse_mutex); + break; + .... + } + .... +} +``` + +### Report generation + +The example simulates a mouse by creating a FreeRTOS task that periodically generates and sends the HID mouse report: + +``` +// move the mouse left and right +void mouse_move_task(void* pvParameters) +{ + const char* TAG = "mouse_move_task"; + + ESP_LOGI(TAG, "starting"); + for(;;) { + s_local_param.x_dir = 1; + int8_t step = 10; + for (int i = 0; i < 2; i++) { + xSemaphoreTake(s_local_param.mouse_mutex, portMAX_DELAY); + s_local_param.x_dir *= -1; + xSemaphoreGive(s_local_param.mouse_mutex); + for (int j = 0; j < 100; j++) { + send_mouse_report(0, s_local_param.x_dir * step, 0, 0); + vTaskDelay(50 / portTICK_PERIOD_MS); + } + } + vTaskDelay(1000 / portTICK_PERIOD_MS); + } +} +``` + +Function `send_mouse_report` is used to pack the information into a mouse HID report and sends it to HID Host, according to the Report Mode applied: + +``` +// send the buttons, change in x, and change in y +void send_mouse_report(uint8_t buttons, char dx, char dy, char wheel) +{ + uint8_t report_id; + uint16_t report_size; + xSemaphoreTake(s_local_param.mouse_mutex, portMAX_DELAY); + if (s_local_param.protocol_mode == ESP_HIDD_REPORT_MODE) { + report_id = 0; + report_size = REPORT_PROTOCOL_MOUSE_REPORT_SIZE; + s_local_param.buffer[0] = buttons; + s_local_param.buffer[1] = dx; + s_local_param.buffer[2] = dy; + s_local_param.buffer[3] = wheel; + } else { + // Boot Mode + report_id = ESP_HIDD_BOOT_REPORT_ID_MOUSE; + report_size = ESP_HIDD_BOOT_REPORT_SIZE_MOUSE - 1; + s_local_param.buffer[0] = buttons; + s_local_param.buffer[1] = dx; + s_local_param.buffer[2] = dy; + } + esp_bt_hid_device_send_report(ESP_HIDD_REPORT_TYPE_INTRDATA, report_id, report_size, s_local_param.buffer); + xSemaphoreGive(s_local_param.mouse_mutex); +} +``` diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/CMakeLists.txt b/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/CMakeLists.txt new file mode 100644 index 0000000..d722ba6 --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/CMakeLists.txt @@ -0,0 +1,8 @@ +#set(COMPONENT_SRCS "main.c") +#set(COMPONENT_ADD_INCLUDEDIRS "") + +#register_component() + +idf_component_register(SRCS "main.c" + PRIV_REQUIRES bt nvs_flash esp_hosted + INCLUDE_DIRS ".") diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/Kconfig.projbuild b/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/Kconfig.projbuild new file mode 100644 index 0000000..d7db193 --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/Kconfig.projbuild @@ -0,0 +1,15 @@ +menu "HID Example Configuration" + config EXAMPLE_SSP_ENABLED + bool "Secure Simple Pairing" + depends on BT_CLASSIC_ENABLED + default y + help + This enables the Secure Simple Pairing. If disable this option, + Bluedroid will only support Legacy Pairing + + config EXAMPLE_LOCAL_DEVICE_NAME + string "Local Device Name" + default "HID Mouse Example" + help + Use this option to set local device name. +endmenu diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/idf_component.yml b/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/idf_component.yml new file mode 100644 index 0000000..87c2a6f --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/idf_component.yml @@ -0,0 +1,9 @@ +dependencies: + espressif/esp_hosted: + rules: + - if: target in [esp32p4, esp32h2] + version: ~2 + espressif/esp_wifi_remote: + rules: + - if: target in [esp32p4, esp32h2] + version: '>=0.10' diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/main.c b/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/main.c new file mode 100644 index 0000000..89266f0 --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/main.c @@ -0,0 +1,483 @@ +/* + * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Unlicense OR CC0-1.0 + */ + +#include "esp_log.h" +#include "esp_hidd_api.h" +#include "esp_bt_main.h" +#include "esp_bt_device.h" +#include "esp_err.h" +#include "nvs.h" +#include "nvs_flash.h" +#include "esp_gap_bt_api.h" +#include +#include + +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "freertos/semphr.h" + +#include "esp_hosted_bt.h" + +#define REPORT_PROTOCOL_MOUSE_REPORT_SIZE (4) +#define REPORT_BUFFER_SIZE REPORT_PROTOCOL_MOUSE_REPORT_SIZE + +static const char local_device_name[] = CONFIG_EXAMPLE_LOCAL_DEVICE_NAME; + +typedef struct { + esp_hidd_app_param_t app_param; + esp_hidd_qos_param_t both_qos; + uint8_t protocol_mode; + SemaphoreHandle_t mouse_mutex; + TaskHandle_t mouse_task_hdl; + uint8_t buffer[REPORT_BUFFER_SIZE]; + int8_t x_dir; +} local_param_t; + +static local_param_t s_local_param = {0}; + +// HID report descriptor for a generic mouse. The contents of the report are: +// 3 buttons, moving information for X and Y cursors, information for a wheel. +uint8_t hid_mouse_descriptor[] = { + 0x05, 0x01, // USAGE_PAGE (Generic Desktop) + 0x09, 0x02, // USAGE (Mouse) + 0xa1, 0x01, // COLLECTION (Application) + + 0x09, 0x01, // USAGE (Pointer) + 0xa1, 0x00, // COLLECTION (Physical) + + 0x05, 0x09, // USAGE_PAGE (Button) + 0x19, 0x01, // USAGE_MINIMUM (Button 1) + 0x29, 0x03, // USAGE_MAXIMUM (Button 3) + 0x15, 0x00, // LOGICAL_MINIMUM (0) + 0x25, 0x01, // LOGICAL_MAXIMUM (1) + 0x95, 0x03, // REPORT_COUNT (3) + 0x75, 0x01, // REPORT_SIZE (1) + 0x81, 0x02, // INPUT (Data,Var,Abs) + 0x95, 0x01, // REPORT_COUNT (1) + 0x75, 0x05, // REPORT_SIZE (5) + 0x81, 0x03, // INPUT (Cnst,Var,Abs) + + 0x05, 0x01, // USAGE_PAGE (Generic Desktop) + 0x09, 0x30, // USAGE (X) + 0x09, 0x31, // USAGE (Y) + 0x09, 0x38, // USAGE (Wheel) + 0x15, 0x81, // LOGICAL_MINIMUM (-127) + 0x25, 0x7f, // LOGICAL_MAXIMUM (127) + 0x75, 0x08, // REPORT_SIZE (8) + 0x95, 0x03, // REPORT_COUNT (3) + 0x81, 0x06, // INPUT (Data,Var,Rel) + + 0xc0, // END_COLLECTION + 0xc0 // END_COLLECTION +}; + +static char *bda2str(esp_bd_addr_t bda, char *str, size_t size) +{ + if (bda == NULL || str == NULL || size < 18) { + return NULL; + } + + uint8_t *p = bda; + sprintf(str, "%02x:%02x:%02x:%02x:%02x:%02x", + p[0], p[1], p[2], p[3], p[4], p[5]); + return str; +} + +const int hid_mouse_descriptor_len = sizeof(hid_mouse_descriptor); + +/** + * @brief Integrity check of the report ID and report type for GET_REPORT request from HID host. + * Boot Protocol Mode requires report ID. For Report Protocol Mode, when the report descriptor + * does not declare report ID Global ITEMS, the report ID does not exist in the GET_REPORT request, + * and a value of 0 for report_id will occur in ESP_HIDD_GET_REPORT_EVT callback parameter. + */ +bool check_report_id_type(uint8_t report_id, uint8_t report_type) +{ + bool ret = false; + xSemaphoreTake(s_local_param.mouse_mutex, portMAX_DELAY); + do { + if (report_type != ESP_HIDD_REPORT_TYPE_INPUT) { + break; + } + if (s_local_param.protocol_mode == ESP_HIDD_BOOT_MODE) { + if (report_id == ESP_HIDD_BOOT_REPORT_ID_MOUSE) { + ret = true; + break; + } + } else { + if (report_id == 0) { + ret = true; + break; + } + } + } while (0); + + if (!ret) { + if (s_local_param.protocol_mode == ESP_HIDD_BOOT_MODE) { + esp_bt_hid_device_report_error(ESP_HID_PAR_HANDSHAKE_RSP_ERR_INVALID_REP_ID); + } else { + esp_bt_hid_device_report_error(ESP_HID_PAR_HANDSHAKE_RSP_ERR_INVALID_REP_ID); + } + } + xSemaphoreGive(s_local_param.mouse_mutex); + return ret; +} + +// send the buttons, change in x, and change in y +void send_mouse_report(uint8_t buttons, char dx, char dy, char wheel) +{ + uint8_t report_id; + uint16_t report_size; + xSemaphoreTake(s_local_param.mouse_mutex, portMAX_DELAY); + if (s_local_param.protocol_mode == ESP_HIDD_REPORT_MODE) { + report_id = 0; + report_size = REPORT_PROTOCOL_MOUSE_REPORT_SIZE; + s_local_param.buffer[0] = buttons; + s_local_param.buffer[1] = dx; + s_local_param.buffer[2] = dy; + s_local_param.buffer[3] = wheel; + } else { + // Boot Mode + report_id = ESP_HIDD_BOOT_REPORT_ID_MOUSE; + report_size = ESP_HIDD_BOOT_REPORT_SIZE_MOUSE - 1; + s_local_param.buffer[0] = buttons; + s_local_param.buffer[1] = dx; + s_local_param.buffer[2] = dy; + } + esp_bt_hid_device_send_report(ESP_HIDD_REPORT_TYPE_INTRDATA, report_id, report_size, s_local_param.buffer); + xSemaphoreGive(s_local_param.mouse_mutex); +} + +// move the mouse left and right +void mouse_move_task(void *pvParameters) +{ + const char *TAG = "mouse_move_task"; + + ESP_LOGI(TAG, "starting"); + for (;;) { + s_local_param.x_dir = 1; + int8_t step = 10; + for (int i = 0; i < 2; i++) { + xSemaphoreTake(s_local_param.mouse_mutex, portMAX_DELAY); + s_local_param.x_dir *= -1; + xSemaphoreGive(s_local_param.mouse_mutex); + for (int j = 0; j < 100; j++) { + send_mouse_report(0, s_local_param.x_dir * step, 0, 0); + vTaskDelay(50 / portTICK_PERIOD_MS); + } + } + vTaskDelay(1000 / portTICK_PERIOD_MS); + } +} + +void esp_bt_gap_cb(esp_bt_gap_cb_event_t event, esp_bt_gap_cb_param_t *param) +{ + const char *TAG = "esp_bt_gap_cb"; + switch (event) { + case ESP_BT_GAP_AUTH_CMPL_EVT: { + if (param->auth_cmpl.stat == ESP_BT_STATUS_SUCCESS) { + ESP_LOGI(TAG, "authentication success: %s", param->auth_cmpl.device_name); + ESP_LOG_BUFFER_HEX(TAG, param->auth_cmpl.bda, ESP_BD_ADDR_LEN); + } else { + ESP_LOGE(TAG, "authentication failed, status:%d", param->auth_cmpl.stat); + } + break; + } + case ESP_BT_GAP_PIN_REQ_EVT: { + ESP_LOGI(TAG, "ESP_BT_GAP_PIN_REQ_EVT min_16_digit:%d", param->pin_req.min_16_digit); + if (param->pin_req.min_16_digit) { + ESP_LOGI(TAG, "Input pin code: 0000 0000 0000 0000"); + esp_bt_pin_code_t pin_code = {0}; + esp_bt_gap_pin_reply(param->pin_req.bda, true, 16, pin_code); + } else { + ESP_LOGI(TAG, "Input pin code: 1234"); + esp_bt_pin_code_t pin_code; + pin_code[0] = '1'; + pin_code[1] = '2'; + pin_code[2] = '3'; + pin_code[3] = '4'; + esp_bt_gap_pin_reply(param->pin_req.bda, true, 4, pin_code); + } + break; + } + +#if (CONFIG_EXAMPLE_SSP_ENABLED == true) + case ESP_BT_GAP_CFM_REQ_EVT: + ESP_LOGI(TAG, "ESP_BT_GAP_CFM_REQ_EVT Please compare the numeric value: %"PRIu32, param->cfm_req.num_val); + esp_bt_gap_ssp_confirm_reply(param->cfm_req.bda, true); + break; + case ESP_BT_GAP_KEY_NOTIF_EVT: + ESP_LOGI(TAG, "ESP_BT_GAP_KEY_NOTIF_EVT passkey:%"PRIu32, param->key_notif.passkey); + break; + case ESP_BT_GAP_KEY_REQ_EVT: + ESP_LOGI(TAG, "ESP_BT_GAP_KEY_REQ_EVT Please enter passkey!"); + break; +#endif + case ESP_BT_GAP_MODE_CHG_EVT: + ESP_LOGI(TAG, "ESP_BT_GAP_MODE_CHG_EVT mode:%d", param->mode_chg.mode); + break; + default: + ESP_LOGI(TAG, "event: %d", event); + break; + } + return; +} + +void bt_app_task_start_up(void) +{ + s_local_param.mouse_mutex = xSemaphoreCreateMutex(); + memset(s_local_param.buffer, 0, REPORT_BUFFER_SIZE); + xTaskCreate(mouse_move_task, "mouse_move_task", 2 * 1024, NULL, configMAX_PRIORITIES - 3, &s_local_param.mouse_task_hdl); + return; +} + +void bt_app_task_shut_down(void) +{ + if (s_local_param.mouse_task_hdl) { + vTaskDelete(s_local_param.mouse_task_hdl); + s_local_param.mouse_task_hdl = NULL; + } + + if (s_local_param.mouse_mutex) { + vSemaphoreDelete(s_local_param.mouse_mutex); + s_local_param.mouse_mutex = NULL; + } + return; +} + +void esp_bt_hidd_cb(esp_hidd_cb_event_t event, esp_hidd_cb_param_t *param) +{ + static const char *TAG = "esp_bt_hidd_cb"; + switch (event) { + case ESP_HIDD_INIT_EVT: + if (param->init.status == ESP_HIDD_SUCCESS) { + ESP_LOGI(TAG, "setting hid parameters"); + esp_bt_hid_device_register_app(&s_local_param.app_param, &s_local_param.both_qos, &s_local_param.both_qos); + } else { + ESP_LOGE(TAG, "init hidd failed!"); + } + break; + case ESP_HIDD_DEINIT_EVT: + break; + case ESP_HIDD_REGISTER_APP_EVT: + if (param->register_app.status == ESP_HIDD_SUCCESS) { + ESP_LOGI(TAG, "setting hid parameters success!"); + ESP_LOGI(TAG, "setting to connectable, discoverable"); + esp_bt_gap_set_scan_mode(ESP_BT_CONNECTABLE, ESP_BT_GENERAL_DISCOVERABLE); + if (param->register_app.in_use) { + ESP_LOGI(TAG, "start virtual cable plug!"); + esp_bt_hid_device_connect(param->register_app.bd_addr); + } + } else { + ESP_LOGE(TAG, "setting hid parameters failed!"); + } + break; + case ESP_HIDD_UNREGISTER_APP_EVT: + if (param->unregister_app.status == ESP_HIDD_SUCCESS) { + ESP_LOGI(TAG, "unregister app success!"); + } else { + ESP_LOGE(TAG, "unregister app failed!"); + } + break; + case ESP_HIDD_OPEN_EVT: + if (param->open.status == ESP_HIDD_SUCCESS) { + if (param->open.conn_status == ESP_HIDD_CONN_STATE_CONNECTING) { + ESP_LOGI(TAG, "connecting..."); + } else if (param->open.conn_status == ESP_HIDD_CONN_STATE_CONNECTED) { + ESP_LOGI(TAG, "connected to %02x:%02x:%02x:%02x:%02x:%02x", param->open.bd_addr[0], + param->open.bd_addr[1], param->open.bd_addr[2], param->open.bd_addr[3], param->open.bd_addr[4], + param->open.bd_addr[5]); + bt_app_task_start_up(); + ESP_LOGI(TAG, "making self non-discoverable and non-connectable."); + esp_bt_gap_set_scan_mode(ESP_BT_NON_CONNECTABLE, ESP_BT_NON_DISCOVERABLE); + } else { + ESP_LOGE(TAG, "unknown connection status"); + } + } else { + ESP_LOGE(TAG, "open failed!"); + } + break; + case ESP_HIDD_CLOSE_EVT: + ESP_LOGI(TAG, "ESP_HIDD_CLOSE_EVT"); + if (param->close.status == ESP_HIDD_SUCCESS) { + if (param->close.conn_status == ESP_HIDD_CONN_STATE_DISCONNECTING) { + ESP_LOGI(TAG, "disconnecting..."); + } else if (param->close.conn_status == ESP_HIDD_CONN_STATE_DISCONNECTED) { + ESP_LOGI(TAG, "disconnected!"); + bt_app_task_shut_down(); + ESP_LOGI(TAG, "making self discoverable and connectable again."); + esp_bt_gap_set_scan_mode(ESP_BT_CONNECTABLE, ESP_BT_GENERAL_DISCOVERABLE); + } else { + ESP_LOGE(TAG, "unknown connection status"); + } + } else { + ESP_LOGE(TAG, "close failed!"); + } + break; + case ESP_HIDD_SEND_REPORT_EVT: + if (param->send_report.status == ESP_HIDD_SUCCESS) { + ESP_LOGI(TAG, "ESP_HIDD_SEND_REPORT_EVT id:0x%02x, type:%d", param->send_report.report_id, + param->send_report.report_type); + } else { + ESP_LOGE(TAG, "ESP_HIDD_SEND_REPORT_EVT id:0x%02x, type:%d, status:%d, reason:%d", + param->send_report.report_id, param->send_report.report_type, param->send_report.status, + param->send_report.reason); + } + break; + case ESP_HIDD_REPORT_ERR_EVT: + ESP_LOGI(TAG, "ESP_HIDD_REPORT_ERR_EVT"); + break; + case ESP_HIDD_GET_REPORT_EVT: + ESP_LOGI(TAG, "ESP_HIDD_GET_REPORT_EVT id:0x%02x, type:%d, size:%d", param->get_report.report_id, + param->get_report.report_type, param->get_report.buffer_size); + if (check_report_id_type(param->get_report.report_id, param->get_report.report_type)) { + uint8_t report_id; + uint16_t report_len; + if (s_local_param.protocol_mode == ESP_HIDD_REPORT_MODE) { + report_id = 0; + report_len = REPORT_PROTOCOL_MOUSE_REPORT_SIZE; + } else { + // Boot Mode + report_id = ESP_HIDD_BOOT_REPORT_ID_MOUSE; + report_len = ESP_HIDD_BOOT_REPORT_SIZE_MOUSE - 1; + } + xSemaphoreTake(s_local_param.mouse_mutex, portMAX_DELAY); + esp_bt_hid_device_send_report(param->get_report.report_type, report_id, report_len, s_local_param.buffer); + xSemaphoreGive(s_local_param.mouse_mutex); + } else { + ESP_LOGE(TAG, "check_report_id failed!"); + } + break; + case ESP_HIDD_SET_REPORT_EVT: + ESP_LOGI(TAG, "ESP_HIDD_SET_REPORT_EVT"); + break; + case ESP_HIDD_SET_PROTOCOL_EVT: + ESP_LOGI(TAG, "ESP_HIDD_SET_PROTOCOL_EVT"); + if (param->set_protocol.protocol_mode == ESP_HIDD_BOOT_MODE) { + ESP_LOGI(TAG, " - boot protocol"); + xSemaphoreTake(s_local_param.mouse_mutex, portMAX_DELAY); + s_local_param.x_dir = -1; + xSemaphoreGive(s_local_param.mouse_mutex); + } else if (param->set_protocol.protocol_mode == ESP_HIDD_REPORT_MODE) { + ESP_LOGI(TAG, " - report protocol"); + } + xSemaphoreTake(s_local_param.mouse_mutex, portMAX_DELAY); + s_local_param.protocol_mode = param->set_protocol.protocol_mode; + xSemaphoreGive(s_local_param.mouse_mutex); + break; + case ESP_HIDD_INTR_DATA_EVT: + ESP_LOGI(TAG, "ESP_HIDD_INTR_DATA_EVT"); + break; + case ESP_HIDD_VC_UNPLUG_EVT: + ESP_LOGI(TAG, "ESP_HIDD_VC_UNPLUG_EVT"); + if (param->vc_unplug.status == ESP_HIDD_SUCCESS) { + if (param->close.conn_status == ESP_HIDD_CONN_STATE_DISCONNECTED) { + ESP_LOGI(TAG, "disconnected!"); + bt_app_task_shut_down(); + ESP_LOGI(TAG, "making self discoverable and connectable again."); + esp_bt_gap_set_scan_mode(ESP_BT_CONNECTABLE, ESP_BT_GENERAL_DISCOVERABLE); + } else { + ESP_LOGE(TAG, "unknown connection status"); + } + } else { + ESP_LOGE(TAG, "close failed!"); + } + break; + default: + break; + } +} + +void app_main(void) +{ + const char *TAG = "app_main"; + esp_err_t ret; + char bda_str[18] = {0}; + + ret = nvs_flash_init(); + if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { + ESP_ERROR_CHECK(nvs_flash_erase()); + ret = nvs_flash_init(); + } + ESP_ERROR_CHECK( ret ); + + /* initialize TRANSPORT first */ + hosted_hci_bluedroid_open(); + + /* get HCI driver operations */ + esp_bluedroid_hci_driver_operations_t operations = { + .send = hosted_hci_bluedroid_send, + .check_send_available = hosted_hci_bluedroid_check_send_available, + .register_host_callback = hosted_hci_bluedroid_register_host_callback, + }; + esp_bluedroid_attach_hci_driver(&operations); + + if ((ret = esp_bluedroid_init()) != ESP_OK) { + ESP_LOGE(TAG, "%s initialize bluedroid failed: %s", __func__, esp_err_to_name(ret)); + return; + } + + if ((ret = esp_bluedroid_enable()) != ESP_OK) { + ESP_LOGE(TAG, "enable bluedroid failed: %s", esp_err_to_name(ret)); + return; + } + + if ((ret = esp_bt_gap_register_callback(esp_bt_gap_cb)) != ESP_OK) { + ESP_LOGE(TAG, "gap register failed: %s", esp_err_to_name(ret)); + return; + } + + ESP_LOGI(TAG, "setting device name"); + esp_bt_gap_set_device_name(local_device_name); + + ESP_LOGI(TAG, "setting cod major, peripheral"); + esp_bt_cod_t cod = {0}; + cod.major = ESP_BT_COD_MAJOR_DEV_PERIPHERAL; + cod.minor = ESP_BT_COD_MINOR_PERIPHERAL_POINTING; + esp_bt_gap_set_cod(cod, ESP_BT_SET_COD_MAJOR_MINOR); + + vTaskDelay(2000 / portTICK_PERIOD_MS); + + // Initialize HID SDP information and L2CAP parameters. + // to be used in the call of `esp_bt_hid_device_register_app` after profile initialization finishes + do { + s_local_param.app_param.name = "Mouse"; + s_local_param.app_param.description = "Mouse Example"; + s_local_param.app_param.provider = "ESP32"; + s_local_param.app_param.subclass = ESP_HID_CLASS_MIC; // keep same with minor class of COD + s_local_param.app_param.desc_list = hid_mouse_descriptor; + s_local_param.app_param.desc_list_len = hid_mouse_descriptor_len; + + memset(&s_local_param.both_qos, 0, sizeof(esp_hidd_qos_param_t)); // don't set the qos parameters + } while (0); + + // Report Protocol Mode is the default mode, according to Bluetooth HID specification + s_local_param.protocol_mode = ESP_HIDD_REPORT_MODE; + + ESP_LOGI(TAG, "register hid device callback"); + esp_bt_hid_device_register_callback(esp_bt_hidd_cb); + + ESP_LOGI(TAG, "starting hid device"); + esp_bt_hid_device_init(); + +#if (CONFIG_EXAMPLE_SSP_ENABLED == true) + /* Set default parameters for Secure Simple Pairing */ + esp_bt_sp_param_t param_type = ESP_BT_SP_IOCAP_MODE; + esp_bt_io_cap_t iocap = ESP_BT_IO_CAP_NONE; + esp_bt_gap_set_security_param(param_type, &iocap, sizeof(uint8_t)); +#endif + + /* + * Set default parameters for Legacy Pairing + * Use variable pin, input pin code when pairing + */ + esp_bt_pin_type_t pin_type = ESP_BT_PIN_TYPE_VARIABLE; + esp_bt_pin_code_t pin_code; + esp_bt_gap_set_pin(pin_type, 0, pin_code); + + ESP_LOGI(TAG, "Own address:[%s]", bda2str((uint8_t *)esp_bt_dev_get_address(), bda_str, sizeof(bda_str))); + ESP_LOGI(TAG, "exiting"); +} diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/sdkconfig.defaults b/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/sdkconfig.defaults new file mode 100644 index 0000000..22e6ff1 --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/sdkconfig.defaults @@ -0,0 +1,29 @@ +# +# BT config +# - ESP32 co-processor only supports BLE 4.2 +# +CONFIG_BT_ENABLED=y +CONFIG_BT_CONTROLLER_DISABLED=y +CONFIG_BT_BLUEDROID_ENABLED=y +CONFIG_BT_CLASSIC_ENABLED=y +CONFIG_BT_HID_ENABLED=y +CONFIG_BT_HID_DEVICE_ENABLED=y +CONFIG_BT_BLE_50_FEATURES_SUPPORTED=n +CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y +CONFIG_BTDM_CTRL_MODE_BLE_ONLY=n +CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=y +CONFIG_BTDM_CTRL_MODE_BTDM=n + +# +# Wi-Fi Remote +# - set ESP32 as default co-processor +# +CONFIG_ESP_WIFI_REMOTE_LIBRARY_HOSTED=y +CONFIG_SLAVE_IDF_TARGET_ESP32=y + +# +# Enable ESP Hosted BT +# Used as VHCI transport between BT Host and Controller +# +CONFIG_ESP_HOSTED_ENABLE_BT_BLUEDROID=y +CONFIG_ESP_HOSTED_BLUEDROID_HCI_VHCI=y diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/CMakeLists.txt b/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/CMakeLists.txt new file mode 100644 index 0000000..623ff47 --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/CMakeLists.txt @@ -0,0 +1,8 @@ +# The following lines of boilerplate have to be in your project's CMakeLists +# in this exact order for cmake to work correctly +cmake_minimum_required(VERSION 3.16) + +include($ENV{IDF_PATH}/tools/cmake/project.cmake) +# "Trim" the build. Include the minimal set of components, main, and anything it depends on. +idf_build_set_property(MINIMAL_BUILD ON) +project(host_hci_uart) diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/README.md b/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/README.md new file mode 100644 index 0000000..71b1e5f --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/README.md @@ -0,0 +1,100 @@ +| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-S3 | ESP32-P4 | ESP32-H2 | +| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | -------- | + +ESP-IDF ESP-Hosted Hosted HCI Host +================================== + +This is a Bluetooth Host using ESP-Hosted as HCI IO to the BT Controller. + +## Example Layout + +This example is modified based on [bt_discovery](https://github.com/espressif/esp-idf/tree/master/examples/bluetooth/bluedroid/classic_bt/bt_discovery), and all modifications are listed below: + +- Removed all dependencies on controller from `main.c`. + +``` +#include "esp_bt.h" + +... + +ESP_ERROR_CHECK(esp_bt_controller_mem_release(ESP_BT_MODE_BLE)); + +esp_bt_controller_config_t bt_cfg = BT_CONTROLLER_INIT_CONFIG_DEFAULT(); +if ((ret = esp_bt_controller_init(&bt_cfg)) != ESP_OK) { + ESP_LOGE(GAP_TAG, "%s initialize controller failed: %s", __func__, esp_err_to_name(ret)); + return; +} + +if ((ret = esp_bt_controller_enable(ESP_BT_MODE_CLASSIC_BT)) != ESP_OK) { + ESP_LOGE(GAP_TAG, "%s enable controller failed: %s", __func__, esp_err_to_name(ret)); + return; +} +``` + +- Add support for ESP-Hosted HCI interface: `esp_hosted_bt.h`. + +- Open HCI interface in `main.c`. + +``` +#include "esp_hosted_bt.h" + +... + +/* initialize TRANSPORT first */ +hosted_hci_bluedroid_open(); + +/* get HCI driver operations */ +esp_bluedroid_hci_driver_operations_t operations = { + .send = hosted_hci_bluedroid_uart_send, + .check_send_available = hosted_hci_bluedroid_check_send_available, + .register_host_callback = hosted_hci_bluedroid_register_host_callback, +}; +esp_bluedroid_attach_hci_driver(&operations); +``` + +## How to use example + +### Hardware Required + +This example runs on the ESP32-P4 Dev Board connected to a ESP32 via the GPIO header, using SPI FD (full duplex) as Hosted HCI transport. The following GPIO settings were used: + +| SPI Function | ESP32 GPIO | ESP32-P4 GPIO | +| :--- | ---: | ---: | +| MOSI | 13 | 4 | +| MISO | 12 | 5 | +| CLK | 14 | 26 | +| CS | 15 | 6 | +| Handshake | 26 | 20 | +| Data Ready | 4 | 36 | +| Reset | -1 | 2 | + +> [!NOTE] +> SPI Mode 2 was used on both the ESP32-P4 and ESP32. + +Users are free to choose which supported ESP-Hosted transport to use. See the [main ESP-Hosted README](https://github.com/espressif/esp-hosted-mcu/blob/main/README.md#6-decide-the-communication-bus-in-between-host-and-slave) for a list of supported transports. + +For standard HCI, configure the co-processor Bluetooth Controller to use UART as the HCI transport, then select appropriate GPIOs on the ESP32-P4 to configure as a UART. In this mode, ESP-Hosted is not involved in transporting the HCI data. + +See the ESP-IDF [UART HCI Host example](https://github.com/espressif/esp-idf/tree/master/examples/bluetooth/bluedroid/bluedroid_host_only/bluedroid_host_only_uart) on how to set-up UART for the Bluetooth Host. + +### Configure the project + +For the ESP32 co-processor, run `idf.py menuconfig` and configure `Example Configuration` for SPI Full-duplex with the correct SPI mode and GPIOs. + +For the ESP32-P4 co-processor, run `idf.py menuconfig` and under `Component config ---> ESP-Hosted config`: + +* set the transport to be `SPI Full-duplex` with the correct SPI modem GPIOs (see above table) and SPI Clock frequency (10 MHz max). +* set the Slave chipset used as `ESP32`. +* set `Bluetooth Support ---> Enable Hosted Bluedroid Bluetooth support` to enable Bluedroid support. Leave the HCI type as `VHCI`. + +### Build and Flash + +Build and flash the co-processor and host projects, then run monitor tool to view serial output on both the ESP32 and ESP32-P4: + +``` +idf.py -p PORT flash monitor +``` + +(Replace PORT with the name of the serial port to use.) + +(To exit the serial monitor, type ``Ctrl-]``.) diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/main/CMakeLists.txt b/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/main/CMakeLists.txt new file mode 100644 index 0000000..3c78354 --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/main/CMakeLists.txt @@ -0,0 +1,3 @@ +idf_component_register(SRCS "main.c" + PRIV_REQUIRES bt nvs_flash esp_hosted + INCLUDE_DIRS ".") diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/main/idf_component.yml b/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/main/idf_component.yml new file mode 100644 index 0000000..87c2a6f --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/main/idf_component.yml @@ -0,0 +1,9 @@ +dependencies: + espressif/esp_hosted: + rules: + - if: target in [esp32p4, esp32h2] + version: ~2 + espressif/esp_wifi_remote: + rules: + - if: target in [esp32p4, esp32h2] + version: '>=0.10' diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/main/main.c b/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/main/main.c new file mode 100644 index 0000000..187bdf9 --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/main/main.c @@ -0,0 +1,307 @@ +/* + * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Unlicense OR CC0-1.0 + */ + + + +/**************************************************************************** +* +* This file is for Classic Bluetooth device and service discovery Demo. +* +****************************************************************************/ + +#include +#include +#include +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "nvs.h" +#include "nvs_flash.h" +#include "esp_system.h" +#include "esp_log.h" +#include "esp_bt_main.h" +#include "esp_bt_device.h" +#include "esp_gap_bt_api.h" +#include "esp_bluedroid_hci.h" + +#include "esp_hosted_bt.h" + +#define GAP_TAG "GAP" + +typedef enum { + APP_GAP_STATE_IDLE = 0, + APP_GAP_STATE_DEVICE_DISCOVERING, + APP_GAP_STATE_DEVICE_DISCOVER_COMPLETE, + APP_GAP_STATE_SERVICE_DISCOVERING, + APP_GAP_STATE_SERVICE_DISCOVER_COMPLETE, +} app_gap_state_t; + +typedef struct { + bool dev_found; + uint8_t bdname_len; + uint8_t eir_len; + uint8_t rssi; + uint32_t cod; + uint8_t eir[ESP_BT_GAP_EIR_DATA_LEN]; + uint8_t bdname[ESP_BT_GAP_MAX_BDNAME_LEN + 1]; + esp_bd_addr_t bda; + app_gap_state_t state; +} app_gap_cb_t; + +static app_gap_cb_t m_dev_info; + +static char *bda2str(esp_bd_addr_t bda, char *str, size_t size) +{ + if (bda == NULL || str == NULL || size < 18) { + return NULL; + } + + uint8_t *p = bda; + sprintf(str, "%02x:%02x:%02x:%02x:%02x:%02x", + p[0], p[1], p[2], p[3], p[4], p[5]); + return str; +} + +static char *uuid2str(esp_bt_uuid_t *uuid, char *str, size_t size) +{ + if (uuid == NULL || str == NULL) { + return NULL; + } + + if (uuid->len == 2 && size >= 5) { + sprintf(str, "%04x", uuid->uuid.uuid16); + } else if (uuid->len == 4 && size >= 9) { + sprintf(str, "%08"PRIx32, uuid->uuid.uuid32); + } else if (uuid->len == 16 && size >= 37) { + uint8_t *p = uuid->uuid.uuid128; + sprintf(str, "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", + p[15], p[14], p[13], p[12], p[11], p[10], p[9], p[8], + p[7], p[6], p[5], p[4], p[3], p[2], p[1], p[0]); + } else { + return NULL; + } + + return str; +} + +static bool get_name_from_eir(uint8_t *eir, uint8_t *bdname, uint8_t *bdname_len) +{ + uint8_t *rmt_bdname = NULL; + uint8_t rmt_bdname_len = 0; + + if (!eir) { + return false; + } + + rmt_bdname = esp_bt_gap_resolve_eir_data(eir, ESP_BT_EIR_TYPE_CMPL_LOCAL_NAME, &rmt_bdname_len); + if (!rmt_bdname) { + rmt_bdname = esp_bt_gap_resolve_eir_data(eir, ESP_BT_EIR_TYPE_SHORT_LOCAL_NAME, &rmt_bdname_len); + } + + if (rmt_bdname) { + if (rmt_bdname_len > ESP_BT_GAP_MAX_BDNAME_LEN) { + rmt_bdname_len = ESP_BT_GAP_MAX_BDNAME_LEN; + } + + if (bdname) { + memcpy(bdname, rmt_bdname, rmt_bdname_len); + bdname[rmt_bdname_len] = '\0'; + } + if (bdname_len) { + *bdname_len = rmt_bdname_len; + } + return true; + } + + return false; +} + +static void update_device_info(esp_bt_gap_cb_param_t *param) +{ + char bda_str[18]; + uint32_t cod = 0; + int32_t rssi = -129; /* invalid value */ + uint8_t *bdname = NULL; + uint8_t bdname_len = 0; + uint8_t *eir = NULL; + uint8_t eir_len = 0; + esp_bt_gap_dev_prop_t *p; + + ESP_LOGI(GAP_TAG, "Device found: %s", bda2str(param->disc_res.bda, bda_str, 18)); + for (int i = 0; i < param->disc_res.num_prop; i++) { + p = param->disc_res.prop + i; + switch (p->type) { + case ESP_BT_GAP_DEV_PROP_COD: + cod = *(uint32_t *)(p->val); + ESP_LOGI(GAP_TAG, "--Class of Device: 0x%"PRIx32, cod); + break; + case ESP_BT_GAP_DEV_PROP_RSSI: + rssi = *(int8_t *)(p->val); + ESP_LOGI(GAP_TAG, "--RSSI: %"PRId32, rssi); + break; + case ESP_BT_GAP_DEV_PROP_BDNAME: + bdname_len = (p->len > ESP_BT_GAP_MAX_BDNAME_LEN) ? ESP_BT_GAP_MAX_BDNAME_LEN : + (uint8_t)p->len; + bdname = (uint8_t *)(p->val); + break; + case ESP_BT_GAP_DEV_PROP_EIR: { + eir_len = p->len; + eir = (uint8_t *)(p->val); + break; + } + default: + break; + } + } + + /* search for device with Major device type "PHONE" or "Audio/Video" in COD */ + app_gap_cb_t *p_dev = &m_dev_info; + if (p_dev->dev_found) { + return; + } + + if (!esp_bt_gap_is_valid_cod(cod) || + (!(esp_bt_gap_get_cod_major_dev(cod) == ESP_BT_COD_MAJOR_DEV_PHONE) && + !(esp_bt_gap_get_cod_major_dev(cod) == ESP_BT_COD_MAJOR_DEV_AV))) { + return; + } + + memcpy(p_dev->bda, param->disc_res.bda, ESP_BD_ADDR_LEN); + p_dev->dev_found = true; + + p_dev->cod = cod; + p_dev->rssi = rssi; + if (bdname_len > 0) { + memcpy(p_dev->bdname, bdname, bdname_len); + p_dev->bdname[bdname_len] = '\0'; + p_dev->bdname_len = bdname_len; + } + if (eir_len > 0) { + memcpy(p_dev->eir, eir, eir_len); + p_dev->eir_len = eir_len; + } + + if (p_dev->bdname_len == 0) { + get_name_from_eir(p_dev->eir, p_dev->bdname, &p_dev->bdname_len); + } + + ESP_LOGI(GAP_TAG, "Found a target device, address %s, name %s", bda_str, p_dev->bdname); + p_dev->state = APP_GAP_STATE_DEVICE_DISCOVER_COMPLETE; + ESP_LOGI(GAP_TAG, "Cancel device discovery ..."); + esp_bt_gap_cancel_discovery(); +} + +static void bt_app_gap_init(void) +{ + app_gap_cb_t *p_dev = &m_dev_info; + memset(p_dev, 0, sizeof(app_gap_cb_t)); + + p_dev->state = APP_GAP_STATE_IDLE; +} + +static void bt_app_gap_cb(esp_bt_gap_cb_event_t event, esp_bt_gap_cb_param_t *param) +{ + app_gap_cb_t *p_dev = &m_dev_info; + char bda_str[18]; + char uuid_str[37]; + + switch (event) { + case ESP_BT_GAP_DISC_RES_EVT: { + update_device_info(param); + break; + } + case ESP_BT_GAP_DISC_STATE_CHANGED_EVT: { + if (param->disc_st_chg.state == ESP_BT_GAP_DISCOVERY_STOPPED) { + ESP_LOGI(GAP_TAG, "Device discovery stopped."); + if ( (p_dev->state == APP_GAP_STATE_DEVICE_DISCOVER_COMPLETE || + p_dev->state == APP_GAP_STATE_DEVICE_DISCOVERING) + && p_dev->dev_found) { + p_dev->state = APP_GAP_STATE_SERVICE_DISCOVERING; + ESP_LOGI(GAP_TAG, "Discover services ..."); + esp_bt_gap_get_remote_services(p_dev->bda); + } + } else if (param->disc_st_chg.state == ESP_BT_GAP_DISCOVERY_STARTED) { + ESP_LOGI(GAP_TAG, "Discovery started."); + } + break; + } + case ESP_BT_GAP_RMT_SRVCS_EVT: { + if (memcmp(param->rmt_srvcs.bda, p_dev->bda, ESP_BD_ADDR_LEN) == 0 && + p_dev->state == APP_GAP_STATE_SERVICE_DISCOVERING) { + p_dev->state = APP_GAP_STATE_SERVICE_DISCOVER_COMPLETE; + if (param->rmt_srvcs.stat == ESP_BT_STATUS_SUCCESS) { + ESP_LOGI(GAP_TAG, "Services for device %s found", bda2str(p_dev->bda, bda_str, 18)); + for (int i = 0; i < param->rmt_srvcs.num_uuids; i++) { + esp_bt_uuid_t *u = param->rmt_srvcs.uuid_list + i; + ESP_LOGI(GAP_TAG, "--%s", uuid2str(u, uuid_str, 37)); + } + } else { + ESP_LOGI(GAP_TAG, "Services for device %s not found", bda2str(p_dev->bda, bda_str, 18)); + } + } + break; + } + case ESP_BT_GAP_RMT_SRVC_REC_EVT: + default: { + ESP_LOGI(GAP_TAG, "event: %d", event); + break; + } + } + return; +} + +static void bt_app_gap_start_up(void) +{ + /* register GAP callback function */ + esp_bt_gap_register_callback(bt_app_gap_cb); + + char *dev_name = "ESP_GAP_INQRUIY"; + esp_bt_gap_set_device_name(dev_name); + + /* set discoverable and connectable mode, wait to be connected */ + esp_bt_gap_set_scan_mode(ESP_BT_CONNECTABLE, ESP_BT_GENERAL_DISCOVERABLE); + + /* initialize device information and status */ + bt_app_gap_init(); + + /* start to discover nearby Bluetooth devices */ + app_gap_cb_t *p_dev = &m_dev_info; + p_dev->state = APP_GAP_STATE_DEVICE_DISCOVERING; + esp_bt_gap_start_discovery(ESP_BT_INQ_MODE_GENERAL_INQUIRY, 10, 0); +} + +void app_main(void) +{ + /* Initialize NVS — it is used to store PHY calibration data and save key-value pairs in flash memory*/ + esp_err_t ret = nvs_flash_init(); + if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { + ESP_ERROR_CHECK(nvs_flash_erase()); + ret = nvs_flash_init(); + } + ESP_ERROR_CHECK( ret ); + + /* initialize TRANSPORT first */ + hosted_hci_bluedroid_open(); + + /* get HCI driver operations */ + esp_bluedroid_hci_driver_operations_t operations = { + .send = hosted_hci_bluedroid_send, + .check_send_available = hosted_hci_bluedroid_check_send_available, + .register_host_callback = hosted_hci_bluedroid_register_host_callback, + }; + esp_bluedroid_attach_hci_driver(&operations); + + if ((ret = esp_bluedroid_init()) != ESP_OK) { + ESP_LOGE(GAP_TAG, "%s initialize bluedroid failed: %s", __func__, esp_err_to_name(ret)); + return; + } + + if ((ret = esp_bluedroid_enable()) != ESP_OK) { + ESP_LOGE(GAP_TAG, "%s enable bluedroid failed: %s", __func__, esp_err_to_name(ret)); + return; + } + + bt_app_gap_start_up(); +} diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/sdkconfig.defaults b/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/sdkconfig.defaults new file mode 100644 index 0000000..02095c4 --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/sdkconfig.defaults @@ -0,0 +1,24 @@ +# +# BT config +# - ESP32 co-processor only supports BLE 4.2 +# +CONFIG_BT_ENABLED=y +CONFIG_BT_CONTROLLER_DISABLED=y +CONFIG_BT_BLUEDROID_ENABLED=y +CONFIG_BT_CLASSIC_ENABLED=y +CONFIG_BT_BLE_50_FEATURES_SUPPORTED=n +CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y + +# +# Wi-Fi Remote +# - set ESP32 as default co-processor +# +CONFIG_ESP_WIFI_REMOTE_LIBRARY_HOSTED=y +CONFIG_SLAVE_IDF_TARGET_ESP32=y + +# +# Enable ESP Hosted BT +# Used as VHCI transport between BT Host and Controller +# +CONFIG_ESP_HOSTED_ENABLE_BT_BLUEDROID=y +CONFIG_ESP_HOSTED_BLUEDROID_HCI_VHCI= diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/CMakeLists.txt b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/CMakeLists.txt new file mode 100644 index 0000000..8ec77fa --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/CMakeLists.txt @@ -0,0 +1,8 @@ +# The following lines of boilerplate have to be in your project's +# CMakeLists in this exact order for cmake to work correctly +cmake_minimum_required(VERSION 3.16) + +include($ENV{IDF_PATH}/tools/cmake/project.cmake) +# "Trim" the build. Include the minimal set of components, main, and anything it depends on. +idf_build_set_property(MINIMAL_BUILD ON) +project(bleprph_host_only) diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/README.md b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/README.md new file mode 100644 index 0000000..8874768 --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/README.md @@ -0,0 +1,235 @@ +| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-S3 | ESP32-P4 | ESP32-H2 | +| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | -------- | + +# BLE Peripheral Example + +This example uses the UART transport written by application itself. Refer the file [main/uart_driver.c](main/uart_driver.c). + +To write the custom transport in the application, the controller should be disabled and the default uart-transport should be disabled (when the controller is disabled, by default the uart-transport is selected). In order to compile the custom transport in the application, the default uart-transport should be disabled. Refer to the sdkconfig.defaults. + +As an example, the [BLE Peripheral Example Walkthrough](https://github.com/espressif/esp-hosted-mcu/blob/main/examples/host_nimble_bleprph_host_only_uart_hci/tutorial/bleprph_host_only_walkthrough.md) shows an ESP32-P4 connected to a ESP32 over UART. See the Walkthrough for information on hardware setup. + +For more information about the application, refer to the bleprph [README file](https://github.com/espressif/esp-idf/blob/master/examples/bluetooth/nimble/bleprph/README.md). +To test this demo, any BLE scanner app can be used. + +## How to Use Example + +### Project Configuration for Host +Before project configuration and build, be sure to set the correct chip target on both the host and co-processor using: + +```bash +idf.py set-target +``` + +### Project Configuration for Host + +Open the project configuration menu: + +```bash +idf.py menuconfig +``` + +In the `Component config-> Bluetooth` menu: + +* Select `controller` to Disabled. +* Disable `Nimble Options-> Host-controller Transport -> Enable Uart Transport`. + +>[!Important] +> Co-processor selection is done by wifi-remote. Ensure the correct co-processor chip is selected in `Component config` -> `Wi-Fi Remote` -> `choose slave target`. The target selected will affect the ESP-Hosted transport options and default GPIOs used. + +### Setup and Configuration for Co-processor + +On the co-processor, UART HCI setup is done through the Bluetooth Component kconfig settings. In menuconfig, select `Component config` -> `Bluetooth` -> `Controller Options` -> `HCI mode` or `HCI Config` and set it to `UART(H4)`. + +Depending on the selected co-processor, you can configure various UART parameters (Tx, Rx pins, hardware flow control, RTS, CTS pins, baudrate) through the Bluetooth Component. Other UART parameters not handled by the Bluetooth Component are configured by ESP-Hosted through `Example Configuration` -> `HCI UART Settings`. + +> [!NOTE] +> Make sure the UART GPIO pins selected do not conflict with the GPIO +> pins used for the selected ESP-Hosted transport. + +### Build and Flash + +Run `idf.py -p PORT flash monitor` to build, flash and monitor the project on both the host and co-processor. + +(To exit the serial monitor, type ``Ctrl-]``.) + +See the [Getting Started Guide](https://idf.espressif.com/) for full steps to configure and use ESP-IDF to build projects. + +## Example Output + +Console output when `host_nimble_bleprph_host_only_uart_hci` is running on ESP32-P4 and using ESP32 as the BT controller: + +``` +I (25) boot: ESP-IDF v5.5-dev-1868-g39f34a65a9-dirty 2nd stage bootloader +I (26) boot: compile time Feb 13 2025 17:15:22 +I (26) boot: Multicore bootloader +I (29) boot: chip revision: v1.0 +I (31) boot: efuse block revision: v0.1 +I (34) boot.esp32p4: SPI Speed : 80MHz +I (38) boot.esp32p4: SPI Mode : DIO +I (42) boot.esp32p4: SPI Flash Size : 2MB +I (46) boot: Enabling RNG early entropy source... +I (50) boot: Partition Table: +I (53) boot: ## Label Usage Type ST Offset Length +I (59) boot: 0 nvs WiFi data 01 02 00009000 00006000 +I (66) boot: 1 phy_init RF data 01 01 0000f000 00001000 +I (72) boot: 2 factory factory app 00 00 00010000 00100000 +I (80) boot: End of partition table +I (82) esp_image: segment 0: paddr=00010020 vaddr=40070020 size=252a0h (152224) map +I (116) esp_image: segment 1: paddr=000352c8 vaddr=30100000 size=00044h ( 68) load +I (118) esp_image: segment 2: paddr=00035314 vaddr=4ff00000 size=0ad04h ( 44292) load +I (130) esp_image: segment 3: paddr=00040020 vaddr=40000020 size=68930h (428336) map +I (202) esp_image: segment 4: paddr=000a8958 vaddr=4ff0ad04 size=069e0h ( 27104) load +I (209) esp_image: segment 5: paddr=000af340 vaddr=4ff11700 size=026d8h ( 9944) load +I (217) boot: Loaded app from partition at offset 0x10000 +I (217) boot: Disabling RNG early entropy source... +I (228) cpu_start: Multicore app +I (238) cpu_start: Pro cpu start user code +I (239) cpu_start: cpu freq: 360000000 Hz +I (239) app_init: Application information: +I (239) app_init: Project name: bleprph_host_only +I (243) app_init: App version: 6eaa9b1 +I (247) app_init: Compile time: Feb 13 2025 17:15:16 +I (252) app_init: ELF file SHA256: 8861453bb... +I (257) app_init: ESP-IDF: v5.5-dev-1868-g39f34a65a9-dirty +I (263) efuse_init: Min chip rev: v0.1 +I (266) efuse_init: Max chip rev: v1.99 +I (270) efuse_init: Chip rev: v1.0 +I (274) heap_init: Initializing. RAM available for dynamic allocation: +I (281) heap_init: At 4FF17130 len 00023E90 (143 KiB): RAM +I (286) heap_init: At 4FF3AFC0 len 00004BF0 (18 KiB): RAM +I (291) heap_init: At 4FF40000 len 00060000 (384 KiB): RAM +I (296) heap_init: At 50108080 len 00007F80 (31 KiB): RTCRAM +I (301) heap_init: At 30100044 len 00001FBC (7 KiB): TCM +I (307) spi_flash: detected chip: generic +I (310) spi_flash: flash io: dio +W (313) spi_flash: Detected size(16384k) larger than the size in the binary image header(2048k). Using the size in the binary image header. +I (326) host_init: ESP Hosted : Host chip_ip[18] +I (357) H_API: ESP-Hosted starting. Hosted_Tasks: prio:23, stack: 5120 RPC_task_stack: 5120 +sdio_mempool_create free:177280 min-free:177280 lfb-def:131072 lfb-8bit:131072 + +I (361) gpio: GPIO[18]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 +I (369) gpio: GPIO[19]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 +I (378) gpio: GPIO[14]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 +I (386) gpio: GPIO[15]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 +I (394) gpio: GPIO[16]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 +I (403) gpio: GPIO[17]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 +I (411) H_API: ** add_esp_wifi_remote_channels ** +I (415) transport: Add ESP-Hosted channel IF[1]: S[0] Tx[0x4000f988] Rx[0x4001ddee] +--- 0x4000f988: transport_drv_sta_tx at /home/kysoh/projects/gitlab_esp_hosted_mcu/examples/host_nimble_bleprph_host_only_uart_hci/components/esp_hosted/host/drivers/transport/transport_drv.c:208 +0x4001ddee: esp_wifi_remote_channel_rx at /home/kysoh/projects/gitlab_esp_hosted_mcu/examples/host_nimble_bleprph_host_only_uart_hci/managed_components/espressif__esp_wifi_remote/esp_wifi_remote_net.c:19 + +I (423) transport: Add ESP-Hosted channel IF[2]: S[0] Tx[0x4000f8d0] Rx[0x4001ddee] +--- 0x4000f8d0: transport_drv_ap_tx at /home/kysoh/projects/gitlab_esp_hosted_mcu/examples/host_nimble_bleprph_host_only_uart_hci/components/esp_hosted/host/drivers/transport/transport_drv.c:238 +0x4001ddee: esp_wifi_remote_channel_rx at /home/kysoh/projects/gitlab_esp_hosted_mcu/examples/host_nimble_bleprph_host_only_uart_hci/managed_components/espressif__esp_wifi_remote/esp_wifi_remote_net.c:19 + +I (431) main_task: Started on CPU0 +I (441) main_task: Calling app_main() +I (451) NimBLE_BLE_PRPH: BLE Host Task Started +I (451) uart: queue free spaces: 8 +I (471) NimBLE: GAP procedure initiated: stop advertising. + +�I (501) main_task: Returned from app_main() +I (501) NimBLE: ogf=0x08, ocf=0x004e, hci_err=0x201 : BLE_ERR_UNKNOWN_HCI_CMD (Unknown HCI Command) + +I (501) NimBLE: Device Address: +I (511) NimBLE: 10:97:bd:d5:8a:62 +I (511) NimBLE: + +I (521) NimBLE: GAP procedure initiated: advertise; +I (521) NimBLE: disc_mode=2 +I (521) NimBLE: adv_channel_map=0 own_addr_type=0 adv_filter_policy=0 adv_itvl_min=0 adv_itvl_max=0 +I (531) NimBLE: +``` + +Console output on ESP32 as the BT controller: + +``` +I (29) boot: ESP-IDF v5.5-dev-1868-g39f34a65a9-dirty 2nd stage bootloader +I (29) boot: compile time Feb 13 2025 17:15:30 +I (29) boot: Multicore bootloader +I (33) boot: chip revision: v3.0 +I (36) boot.esp32: SPI Speed : 40MHz +I (39) boot.esp32: SPI Mode : DIO +I (43) boot.esp32: SPI Flash Size : 4MB +I (46) boot: Enabling RNG early entropy source... +I (51) boot: Partition Table: +I (53) boot: ## Label Usage Type ST Offset Length +I (60) boot: 0 nvs WiFi data 01 02 00009000 00004000 +I (66) boot: 1 otadata OTA data 01 00 0000d000 00002000 +I (73) boot: 2 phy_init RF data 01 01 0000f000 00001000 +I (79) boot: 3 ota_0 OTA app 00 10 00010000 001c0000 +I (86) boot: 4 ota_1 OTA app 00 11 001d0000 001c0000 +I (92) boot: End of partition table +I (96) boot: No factory image, trying OTA 0 +I (100) esp_image: segment 0: paddr=00010020 vaddr=3f400020 size=285e0h (165344) map +I (164) esp_image: segment 1: paddr=00038608 vaddr=3ff80000 size=0001ch ( 28) load +I (164) esp_image: segment 2: paddr=0003862c vaddr=3ffbdb60 size=05da4h ( 23972) load +I (176) esp_image: segment 3: paddr=0003e3d8 vaddr=40080000 size=01c40h ( 7232) load +I (180) esp_image: segment 4: paddr=00040020 vaddr=400d0020 size=9c69ch (640668) map +I (401) esp_image: segment 5: paddr=000dc6c4 vaddr=40081c40 size=1dc1ch (121884) load +I (465) boot: Loaded app from partition at offset 0x10000 +I (503) boot: Set actual ota_seq=1 in otadata[0] +I (503) boot: Disabling RNG early entropy source... +I (513) cpu_start: Multicore app +I (521) cpu_start: Pro cpu start user code +I (521) cpu_start: cpu freq: 240000000 Hz +I (521) app_init: Application information: +I (521) app_init: Project name: network_adapter +I (526) app_init: App version: 6eaa9b1 +I (530) app_init: Compile time: Feb 13 2025 17:15:24 +I (535) app_init: ELF file SHA256: b3b6ed47b... +I (539) app_init: ESP-IDF: v5.5-dev-1868-g39f34a65a9-dirty +I (545) efuse_init: Min chip rev: v0.0 +I (549) efuse_init: Max chip rev: v3.99 +I (553) efuse_init: Chip rev: v3.0 +I (557) heap_init: Initializing. RAM available for dynamic allocation: +I (563) heap_init: At 3FFAFF10 len 000000F0 (0 KiB): DRAM +I (568) heap_init: At 3FFB6388 len 00001C78 (7 KiB): DRAM +I (573) heap_init: At 3FFB9A20 len 00004108 (16 KiB): DRAM +I (578) heap_init: At 3FFC8F18 len 000170E8 (92 KiB): DRAM +I (584) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM +I (589) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM +I (594) heap_init: At 4009F85C len 000007A4 (1 KiB): IRAM +I (601) spi_flash: detected chip: generic +I (603) spi_flash: flash io: dio +W (606) spi_flash: Detected size(8192k) larger than the size in the binary image header(4096k). Using the size in the binary image header. +I (620) coexist: coex firmware version: e727207 +I (624) main_task: Started on CPU0 +I (626) main_task: Calling app_main() +I (628) fg_mcu_slave: ********************************************************************* +I (634) fg_mcu_slave: ESP-Hosted-MCU Slave FW version :: 1.1.3 + +I (642) fg_mcu_slave: Transport used :: SPI + UART +I (648) fg_mcu_slave: ********************************************************************* +I (654) fg_mcu_slave: Supported features are: +I (656) fg_mcu_slave: - WLAN over SPI +I (660) h_bt: - BT/BLE +I (662) h_bt: - HCI Over UART +I (664) h_bt: - BT/BLE dual mode +I (666) fg_mcu_slave: capabilities: 0xba +I (670) fg_mcu_slave: Supported extended features are: +I (674) h_bt: - BT/BLE (extended) +I (676) fg_mcu_slave: extended capabilities: 0x0 +I (686) h_bt: ESP Bluetooth MAC addr: 10:97:bd:d5:8a:62 +I (686) bt_uart: UART1 Pins: TX 5, RX 18, RTS 19, CTS 23 Baudrate:921600 +I (688) BTDM_INIT: BT controller compile version [194dd63] +I (694) BTDM_INIT: Bluetooth MAC: 10:97:bd:d5:8a:62 +I (698) phy_init: phy_version 4840,02e0d70,Sep 2 2024,19:39:07 +I (1006) SPI_DRIVER: Using SPI interface +I (1008) gpio: GPIO[26]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 +I (1008) gpio: GPIO[4]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 +I (1014) SPI_DRIVER: SPI Ctrl:1 mode: 2, Freq:ConfigAtHost +GPIOs: MOSI: 13, MISO: 12, CS: 15, CLK: 14 HS: 26 DR: 4 + +I (1022) SPI_DRIVER: Hosted SPI queue size: Tx:10 Rx:10 +I (1026) gpio: GPIO[15]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 +I (1032) gpio: GPIO[15]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 +I (1042) SPI_DRIVER: Slave chip Id[12] +I (1042) fg_mcu_slave: Initial set up done +I (1046) slave_ctrl: event ESPInit +``` + +## Troubleshooting + +For any technical queries, please open an [issue](https://github.com/espressif/esp-hosted-mcu/issues) on GitHub. We will get back to you soon. diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/CMakeLists.txt b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/CMakeLists.txt new file mode 100644 index 0000000..d730ef9 --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/CMakeLists.txt @@ -0,0 +1,6 @@ +set(srcs "main.c" + "gatt_svr.c" + "uart_driver.c") + +idf_component_register(SRCS "${srcs}" + INCLUDE_DIRS ".") diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/Kconfig.projbuild b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/Kconfig.projbuild new file mode 100644 index 0000000..a516012 --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/Kconfig.projbuild @@ -0,0 +1,144 @@ +menu "Example Configuration" + + menu "Uart Configuration" + + config EXAMPLE_HCI_UART_BAUDRATE + int "UART Baudrate for HCI" + range 115200 921600 + default 921600 + help + UART Baudrate for HCI. Please use standard baudrate. + + config EXAMPLE_HCI_UART_TX_PIN + int "UART Tx Pin" + default 24 if IDF_TARGET_ESP32P4 + default 4 + help + UART HCI Tx pin + + config EXAMPLE_HCI_UART_RX_PIN + int "UART Rx Pin" + default 33 if IDF_TARGET_ESP32P4 + default 5 + help + UART HCI Rx pin + + choice EXAMPLE_USE_HCI_UART_FLOW_CTRL + prompt "Uart Flow Control" + default EXAMPLE_UART_HW_FLOWCTRL_DISABLE + help + Uart Flow Control + + config EXAMPLE_UART_HW_FLOWCTRL_DISABLE + bool "Disable" + config EXAMPLE_UART_HW_FLOWCTRL_CTS_RTS + bool "Enable hardware flow control" + endchoice + + config EXAMPLE_HCI_UART_FLOW_CTRL + int + default 0 if EXAMPLE_UART_HW_FLOWCTRL_DISABLE + default 3 if EXAMPLE_UART_HW_FLOWCTRL_CTS_RTS + + config EXAMPLE_HCI_UART_RTS_PIN + int "UART Rts Pin" + default 20 if IDF_TARGET_ESP32P4 + default 19 + help + UART HCI RTS pin + + config EXAMPLE_HCI_UART_CTS_PIN + int "UART Cts Pin" + default 21 if IDF_TARGET_ESP32P4 + default 23 + help + UART HCI CTS pin + + config EXAMPLE_HCI_UART_INVERT_RTS + depends on EXAMPLE_UART_HW_FLOWCTRL_CTS_RTS + bool "Invert RTS Signal" + default y if SLAVE_IDF_TARGET_ESP32 || SLAVE_IDF_TARGET_ESP32S3 || SLAVE_IDF_TARGET_ESP32C3 + default n + help + RTS signal may need to be inverted to work with some ESP chips (ESP32, ESP32-C3, ESP32-S3) + + endmenu + + choice EXAMPLE_USE_IO_TYPE + prompt "I/O Capability" + default BLE_SM_IO_CAP_NO_IO + help + I/O capability of device. + + config BLE_SM_IO_CAP_DISP_ONLY + bool "DISPLAY ONLY" + config BLE_SM_IO_CAP_DISP_YES_NO + bool "DISPLAY YESNO" + config BLE_SM_IO_CAP_KEYBOARD_ONLY + bool "KEYBOARD ONLY" + config BLE_SM_IO_CAP_NO_IO + bool "Just works" + config BLE_SM_IO_CAP_KEYBOARD_DISP + bool "Both KEYBOARD & DISPLAY" + endchoice + + config EXAMPLE_IO_TYPE + int + default 0 if BLE_SM_IO_CAP_DISP_ONLY + default 1 if BLE_SM_IO_CAP_DISP_YES_NO + default 2 if BLE_SM_IO_CAP_KEYBOARD_ONLY + default 3 if BLE_SM_IO_CAP_NO_IO + default 4 if BLE_SM_IO_CAP_KEYBOARD_DISP + + config EXAMPLE_BONDING + bool + default n + prompt "Use Bonding" + help + Use this option to enable/disable bonding. + + config EXAMPLE_MITM + bool + default n + prompt "MITM security" + help + Use this option to enable/disable MITM security. + + config EXAMPLE_USE_SC + bool + depends on BT_NIMBLE_SM_SC + default n + prompt "Use Secure Connection feature" + help + Use this option to enable/disable Security Manager Secure Connection 4.2 feature. + + config EXAMPLE_EXTENDED_ADV + bool + depends on SOC_BLE_50_SUPPORTED && BT_NIMBLE_50_FEATURE_SUPPORT + default y if SOC_ESP_NIMBLE_CONTROLLER + select BT_NIMBLE_EXT_ADV + prompt "Enable Extended Adv" + help + Use this option to enable extended advertising in the example. + If this option is disabled, ensure config BT_NIMBLE_EXT_ADV is + also disabled from Nimble stack menuconfig + + config EXAMPLE_RANDOM_ADDR + bool + prompt "Advertise RANDOM Address" + help + Use this option to advertise a random address instead of public address + + config EXAMPLE_ENCRYPTION + bool + prompt "Enable Link Encryption" + help + This adds Encrypted Read and Write permissions in the custom GATT server. + + config EXAMPLE_RESOLVE_PEER_ADDR + bool + prompt "Enable resolving peer address" + help + Use this option to enable resolving peer's address. + +endmenu diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/bleprph.h b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/bleprph.h new file mode 100644 index 0000000..9191274 --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/bleprph.h @@ -0,0 +1,35 @@ +/* + * SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ +#ifndef H_BLEPRPH_ +#define H_BLEPRPH_ + +#include +#include "nimble/ble.h" +#include "modlog/modlog.h" +#include "esp_peripheral.h" +#ifdef __cplusplus +extern "C" { +#endif + +struct ble_hs_cfg; +struct ble_gatt_register_ctxt; + +/** GATT server. */ +#define GATT_SVR_SVC_ALERT_UUID 0x1811 +#define GATT_SVR_CHR_SUP_NEW_ALERT_CAT_UUID 0x2A47 +#define GATT_SVR_CHR_NEW_ALERT 0x2A46 +#define GATT_SVR_CHR_SUP_UNR_ALERT_CAT_UUID 0x2A48 +#define GATT_SVR_CHR_UNR_ALERT_STAT_UUID 0x2A45 +#define GATT_SVR_CHR_ALERT_NOT_CTRL_PT 0x2A44 + +void gatt_svr_register_cb(struct ble_gatt_register_ctxt *ctxt, void *arg); +int gatt_svr_init(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/gatt_svr.c b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/gatt_svr.c new file mode 100644 index 0000000..8a9d8b0 --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/gatt_svr.c @@ -0,0 +1,247 @@ +/* + * SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ +#include +#include +#include +#include "host/ble_hs.h" +#include "host/ble_uuid.h" +#include "services/gap/ble_svc_gap.h" +#include "services/gatt/ble_svc_gatt.h" +#include "bleprph.h" +#include "services/ans/ble_svc_ans.h" + +/*** Maximum number of characteristics with the notify flag ***/ +#define MAX_NOTIFY 5 + +static const ble_uuid128_t gatt_svr_svc_uuid = + BLE_UUID128_INIT(0x2d, 0x71, 0xa2, 0x59, 0xb4, 0x58, 0xc8, 0x12, + 0x99, 0x99, 0x43, 0x95, 0x12, 0x2f, 0x46, 0x59); + +/* A characteristic that can be subscribed to */ +static uint8_t gatt_svr_chr_val; +static uint16_t gatt_svr_chr_val_handle; +static const ble_uuid128_t gatt_svr_chr_uuid = + BLE_UUID128_INIT(0x00, 0x00, 0x00, 0x00, 0x11, 0x11, 0x11, 0x11, + 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33); + +/* A custom descriptor */ +static uint8_t gatt_svr_dsc_val; +static const ble_uuid128_t gatt_svr_dsc_uuid = + BLE_UUID128_INIT(0x01, 0x01, 0x01, 0x01, 0x12, 0x12, 0x12, 0x12, + 0x23, 0x23, 0x23, 0x23, 0x34, 0x34, 0x34, 0x34); + +static int +gatt_svc_access(uint16_t conn_handle, uint16_t attr_handle, + struct ble_gatt_access_ctxt *ctxt, + void *arg); + +static const struct ble_gatt_svc_def gatt_svr_svcs[] = { + { + /*** Service ***/ + .type = BLE_GATT_SVC_TYPE_PRIMARY, + .uuid = &gatt_svr_svc_uuid.u, + .characteristics = (struct ble_gatt_chr_def[]) + { { + /*** This characteristic can be subscribed to by writing 0x00 and 0x01 to the CCCD ***/ + .uuid = &gatt_svr_chr_uuid.u, + .access_cb = gatt_svc_access, +#if CONFIG_EXAMPLE_ENCRYPTION + .flags = BLE_GATT_CHR_F_READ | BLE_GATT_CHR_F_WRITE | + BLE_GATT_CHR_F_READ_ENC | BLE_GATT_CHR_F_WRITE_ENC | + BLE_GATT_CHR_F_NOTIFY | BLE_GATT_CHR_F_INDICATE, +#else + .flags = BLE_GATT_CHR_F_READ | BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_NOTIFY | BLE_GATT_CHR_F_INDICATE, +#endif + .val_handle = &gatt_svr_chr_val_handle, + .descriptors = (struct ble_gatt_dsc_def[]) + { { + .uuid = &gatt_svr_dsc_uuid.u, +#if CONFIG_EXAMPLE_ENCRYPTION + .att_flags = BLE_ATT_F_READ | BLE_ATT_F_READ_ENC, +#else + .att_flags = BLE_ATT_F_READ, +#endif + .access_cb = gatt_svc_access, + }, { + 0, /* No more descriptors in this characteristic */ + } + }, + }, { + 0, /* No more characteristics in this service. */ + } + }, + }, + + { + 0, /* No more services. */ + }, +}; + +static int +gatt_svr_write(struct os_mbuf *om, uint16_t min_len, uint16_t max_len, + void *dst, uint16_t *len) +{ + uint16_t om_len; + int rc; + + om_len = OS_MBUF_PKTLEN(om); + if (om_len < min_len || om_len > max_len) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } + + rc = ble_hs_mbuf_to_flat(om, dst, max_len, len); + if (rc != 0) { + return BLE_ATT_ERR_UNLIKELY; + } + + return 0; +} + +/** + * Access callback whenever a characteristic/descriptor is read or written to. + * Here reads and writes need to be handled. + * ctxt->op tells weather the operation is read or write and + * weather it is on a characteristic or descriptor, + * ctxt->dsc->uuid tells which characteristic/descriptor is accessed. + * attr_handle give the value handle of the attribute being accessed. + * Accordingly do: + * Append the value to ctxt->om if the operation is READ + * Write ctxt->om to the value if the operation is WRITE + **/ +static int +gatt_svc_access(uint16_t conn_handle, uint16_t attr_handle, + struct ble_gatt_access_ctxt *ctxt, void *arg) +{ + const ble_uuid_t *uuid; + int rc; + + switch (ctxt->op) { + case BLE_GATT_ACCESS_OP_READ_CHR: + if (conn_handle != BLE_HS_CONN_HANDLE_NONE) { + MODLOG_DFLT(INFO, "Characteristic read; conn_handle=%d attr_handle=%d\n", + conn_handle, attr_handle); + } else { + MODLOG_DFLT(INFO, "Characteristic read by NimBLE stack; attr_handle=%d\n", + attr_handle); + } + uuid = ctxt->chr->uuid; + if (attr_handle == gatt_svr_chr_val_handle) { + rc = os_mbuf_append(ctxt->om, + &gatt_svr_chr_val, + sizeof(gatt_svr_chr_val)); + return rc == 0 ? 0 : BLE_ATT_ERR_INSUFFICIENT_RES; + } + goto unknown; + + case BLE_GATT_ACCESS_OP_WRITE_CHR: + if (conn_handle != BLE_HS_CONN_HANDLE_NONE) { + MODLOG_DFLT(INFO, "Characteristic write; conn_handle=%d attr_handle=%d", + conn_handle, attr_handle); + } else { + MODLOG_DFLT(INFO, "Characteristic write by NimBLE stack; attr_handle=%d", + attr_handle); + } + uuid = ctxt->chr->uuid; + if (attr_handle == gatt_svr_chr_val_handle) { + rc = gatt_svr_write(ctxt->om, + sizeof(gatt_svr_chr_val), + sizeof(gatt_svr_chr_val), + &gatt_svr_chr_val, NULL); + ble_gatts_chr_updated(attr_handle); + MODLOG_DFLT(INFO, "Notification/Indication scheduled for " + "all subscribed peers.\n"); + return rc; + } + goto unknown; + + case BLE_GATT_ACCESS_OP_READ_DSC: + if (conn_handle != BLE_HS_CONN_HANDLE_NONE) { + MODLOG_DFLT(INFO, "Descriptor read; conn_handle=%d attr_handle=%d\n", + conn_handle, attr_handle); + } else { + MODLOG_DFLT(INFO, "Descriptor read by NimBLE stack; attr_handle=%d\n", + attr_handle); + } + uuid = ctxt->dsc->uuid; + if (ble_uuid_cmp(uuid, &gatt_svr_dsc_uuid.u) == 0) { + rc = os_mbuf_append(ctxt->om, + &gatt_svr_dsc_val, + sizeof(gatt_svr_chr_val)); + return rc == 0 ? 0 : BLE_ATT_ERR_INSUFFICIENT_RES; + } + goto unknown; + + case BLE_GATT_ACCESS_OP_WRITE_DSC: + goto unknown; + + default: + goto unknown; + } + +unknown: + /* Unknown characteristic/descriptor; + * The NimBLE host should not have called this function; + */ + assert(0); + return BLE_ATT_ERR_UNLIKELY; +} + +void +gatt_svr_register_cb(struct ble_gatt_register_ctxt *ctxt, void *arg) +{ + char buf[BLE_UUID_STR_LEN]; + + switch (ctxt->op) { + case BLE_GATT_REGISTER_OP_SVC: + MODLOG_DFLT(DEBUG, "registered service %s with handle=%d\n", + ble_uuid_to_str(ctxt->svc.svc_def->uuid, buf), + ctxt->svc.handle); + break; + + case BLE_GATT_REGISTER_OP_CHR: + MODLOG_DFLT(DEBUG, "registering characteristic %s with " + "def_handle=%d val_handle=%d\n", + ble_uuid_to_str(ctxt->chr.chr_def->uuid, buf), + ctxt->chr.def_handle, + ctxt->chr.val_handle); + break; + + case BLE_GATT_REGISTER_OP_DSC: + MODLOG_DFLT(DEBUG, "registering descriptor %s with handle=%d\n", + ble_uuid_to_str(ctxt->dsc.dsc_def->uuid, buf), + ctxt->dsc.handle); + break; + + default: + assert(0); + break; + } +} + +int +gatt_svr_init(void) +{ + int rc; + + ble_svc_gap_init(); + ble_svc_gatt_init(); + ble_svc_ans_init(); + + rc = ble_gatts_count_cfg(gatt_svr_svcs); + if (rc != 0) { + return rc; + } + + rc = ble_gatts_add_svcs(gatt_svr_svcs); + if (rc != 0) { + return rc; + } + + /* Setting a value for the read-only descriptor */ + gatt_svr_dsc_val = 0x99; + + return 0; +} diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/idf_component.yml b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/idf_component.yml new file mode 100644 index 0000000..2395bfe --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/idf_component.yml @@ -0,0 +1,11 @@ +dependencies: + espressif/esp_hosted: + rules: + - if: target in [esp32p4, esp32h2] + version: ~2 + espressif/esp_wifi_remote: + rules: + - if: target in [esp32p4, esp32h2] + version: '>=0.10' + nimble_peripheral_utils: + path: ${IDF_PATH}/examples/bluetooth/nimble/common/nimble_peripheral_utils diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/main.c b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/main.c new file mode 100644 index 0000000..277c035 --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/main.c @@ -0,0 +1,548 @@ +/* + * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp_log.h" +#include "nvs_flash.h" +/* BLE */ +#include "nimble/nimble_port.h" +#include "nimble/nimble_port_freertos.h" +#include "host/ble_hs.h" +#include "host/util/util.h" +#include "console/console.h" +#include "services/gap/ble_svc_gap.h" +#include "bleprph.h" +#include "uart_driver.h" + +#if CONFIG_EXAMPLE_EXTENDED_ADV +static uint8_t ext_adv_pattern_1[] = { + 0x02, 0x01, 0x06, + 0x03, 0x03, 0xab, 0xcd, + 0x03, 0x03, 0x18, 0x11, + 0x11, 0X09, 'n', 'i', 'm', 'b', 'l', 'e', '-', 'b', 'l', 'e', 'p', 'r', 'p', 'h', '-', 'e', +}; +#endif + +static const char *tag = "NimBLE_BLE_PRPH"; +static int bleprph_gap_event(struct ble_gap_event *event, void *arg); +#if CONFIG_EXAMPLE_RANDOM_ADDR +static uint8_t own_addr_type = BLE_OWN_ADDR_RANDOM; +#else +static uint8_t own_addr_type; +#endif + +void ble_store_config_init(void); + +/** + * Logs information about a connection to the console. + */ +static void +bleprph_print_conn_desc(struct ble_gap_conn_desc *desc) +{ + MODLOG_DFLT(INFO, "handle=%d our_ota_addr_type=%d our_ota_addr=", + desc->conn_handle, desc->our_ota_addr.type); + print_addr(desc->our_ota_addr.val); + MODLOG_DFLT(INFO, " our_id_addr_type=%d our_id_addr=", + desc->our_id_addr.type); + print_addr(desc->our_id_addr.val); + MODLOG_DFLT(INFO, " peer_ota_addr_type=%d peer_ota_addr=", + desc->peer_ota_addr.type); + print_addr(desc->peer_ota_addr.val); + MODLOG_DFLT(INFO, " peer_id_addr_type=%d peer_id_addr=", + desc->peer_id_addr.type); + print_addr(desc->peer_id_addr.val); + MODLOG_DFLT(INFO, " conn_itvl=%d conn_latency=%d supervision_timeout=%d " + "encrypted=%d authenticated=%d bonded=%d\n", + desc->conn_itvl, desc->conn_latency, + desc->supervision_timeout, + desc->sec_state.encrypted, + desc->sec_state.authenticated, + desc->sec_state.bonded); +} + +#if CONFIG_EXAMPLE_EXTENDED_ADV +/** + * Enables advertising with the following parameters: + * o General discoverable mode. + * o Undirected connectable mode. + */ +static void +ext_bleprph_advertise(void) +{ + struct ble_gap_ext_adv_params params; + struct os_mbuf *data; + uint8_t instance = 0; + int rc; + + /* First check if any instance is already active */ + if(ble_gap_ext_adv_active(instance)) { + return; + } + + /* use defaults for non-set params */ + memset (¶ms, 0, sizeof(params)); + + /* enable connectable advertising */ + params.connectable = 1; + + /* advertise using random addr */ + params.own_addr_type = BLE_OWN_ADDR_PUBLIC; + + params.primary_phy = BLE_HCI_LE_PHY_1M; + params.secondary_phy = BLE_HCI_LE_PHY_2M; + //params.tx_power = 127; + params.sid = 1; + + params.itvl_min = BLE_GAP_ADV_FAST_INTERVAL1_MIN; + params.itvl_max = BLE_GAP_ADV_FAST_INTERVAL1_MIN; + + /* configure instance 0 */ + rc = ble_gap_ext_adv_configure(instance, ¶ms, NULL, + bleprph_gap_event, NULL); + assert (rc == 0); + + /* in this case only scan response is allowed */ + + /* get mbuf for scan rsp data */ + data = os_msys_get_pkthdr(sizeof(ext_adv_pattern_1), 0); + assert(data); + + /* fill mbuf with scan rsp data */ + rc = os_mbuf_append(data, ext_adv_pattern_1, sizeof(ext_adv_pattern_1)); + assert(rc == 0); + + rc = ble_gap_ext_adv_set_data(instance, data); + assert (rc == 0); + + /* start advertising */ + rc = ble_gap_ext_adv_start(instance, 0, 0); + assert (rc == 0); +} +#else +/** + * Enables advertising with the following parameters: + * o General discoverable mode. + * o Undirected connectable mode. + */ +static void +bleprph_advertise(void) +{ + struct ble_gap_adv_params adv_params; + struct ble_hs_adv_fields fields; + const char *name; + int rc; + + /** + * Set the advertisement data included in our advertisements: + * o Flags (indicates advertisement type and other general info). + * o Advertising tx power. + * o Device name. + * o 16-bit service UUIDs (alert notifications). + */ + + memset(&fields, 0, sizeof fields); + + /* Advertise two flags: + * o Discoverability in forthcoming advertisement (general) + * o BLE-only (BR/EDR unsupported). + */ + fields.flags = BLE_HS_ADV_F_DISC_GEN | + BLE_HS_ADV_F_BREDR_UNSUP; + + /* Indicate that the TX power level field should be included; have the + * stack fill this value automatically. This is done by assigning the + * special value BLE_HS_ADV_TX_PWR_LVL_AUTO. + */ + fields.tx_pwr_lvl_is_present = 1; + fields.tx_pwr_lvl = BLE_HS_ADV_TX_PWR_LVL_AUTO; + + name = ble_svc_gap_device_name(); + fields.name = (uint8_t *)name; + fields.name_len = strlen(name); + fields.name_is_complete = 1; + + fields.uuids16 = (ble_uuid16_t[]) { + BLE_UUID16_INIT(GATT_SVR_SVC_ALERT_UUID) + }; + fields.num_uuids16 = 1; + fields.uuids16_is_complete = 1; + + rc = ble_gap_adv_set_fields(&fields); + if (rc != 0) { + MODLOG_DFLT(ERROR, "error setting advertisement data; rc=%d\n", rc); + return; + } + + /* Begin advertising. */ + memset(&adv_params, 0, sizeof adv_params); + adv_params.conn_mode = BLE_GAP_CONN_MODE_UND; + adv_params.disc_mode = BLE_GAP_DISC_MODE_GEN; + rc = ble_gap_adv_start(own_addr_type, NULL, BLE_HS_FOREVER, + &adv_params, bleprph_gap_event, NULL); + if (rc != 0) { + MODLOG_DFLT(ERROR, "error enabling advertisement; rc=%d\n", rc); + return; + } +} +#endif + +#if MYNEWT_VAL(BLE_POWER_CONTROL) +static void bleprph_power_control(uint16_t conn_handle) +{ + int rc; + + rc = ble_gap_read_remote_transmit_power_level(conn_handle, 0x01 ); // Attempting on LE 1M phy + assert (rc == 0); + + rc = ble_gap_set_transmit_power_reporting_enable(conn_handle, 0x1, 0x1); + assert (rc == 0); +} +#endif + +/** + * The nimble host executes this callback when a GAP event occurs. The + * application associates a GAP event callback with each connection that forms. + * bleprph uses the same callback for all connections. + * + * @param event The type of event being signalled. + * @param ctxt Various information pertaining to the event. + * @param arg Application-specified argument; unused by + * bleprph. + * + * @return 0 if the application successfully handled the + * event; nonzero on failure. The semantics + * of the return code is specific to the + * particular GAP event being signalled. + */ +static int +bleprph_gap_event(struct ble_gap_event *event, void *arg) +{ + struct ble_gap_conn_desc desc; + int rc; + + switch (event->type) { + case BLE_GAP_EVENT_LINK_ESTAB: + /* A new connection was established or a connection attempt failed. */ + MODLOG_DFLT(INFO, "connection %s; status=%d ", + event->link_estab.status == 0 ? "established" : "failed", + event->link_estab.status); + if (event->link_estab.status == 0) { + rc = ble_gap_conn_find(event->link_estab.conn_handle, &desc); + assert(rc == 0); + bleprph_print_conn_desc(&desc); + } + MODLOG_DFLT(INFO, "\n"); + + if (event->link_estab.status != 0) { + /* Connection failed; resume advertising. */ +#if CONFIG_EXAMPLE_EXTENDED_ADV + ext_bleprph_advertise(); +#else + bleprph_advertise(); +#endif + } + +#if MYNEWT_VAL(BLE_POWER_CONTROL) + bleprph_power_control(event->link_estab.conn_handle); +#endif + return 0; + + case BLE_GAP_EVENT_DISCONNECT: + MODLOG_DFLT(INFO, "disconnect; reason=%d ", event->disconnect.reason); + bleprph_print_conn_desc(&event->disconnect.conn); + MODLOG_DFLT(INFO, "\n"); + + /* Connection terminated; resume advertising. */ +#if CONFIG_EXAMPLE_EXTENDED_ADV + ext_bleprph_advertise(); +#else + bleprph_advertise(); +#endif + return 0; + + case BLE_GAP_EVENT_CONN_UPDATE: + /* The central has updated the connection parameters. */ + MODLOG_DFLT(INFO, "connection updated; status=%d ", + event->conn_update.status); + rc = ble_gap_conn_find(event->conn_update.conn_handle, &desc); + assert(rc == 0); + bleprph_print_conn_desc(&desc); + MODLOG_DFLT(INFO, "\n"); + return 0; + + case BLE_GAP_EVENT_ADV_COMPLETE: + MODLOG_DFLT(INFO, "advertise complete; reason=%d", + event->adv_complete.reason); +#if CONFIG_EXAMPLE_EXTENDED_ADV + ext_bleprph_advertise(); +#else + bleprph_advertise(); +#endif + return 0; + + case BLE_GAP_EVENT_ENC_CHANGE: + /* Encryption has been enabled or disabled for this connection. */ + MODLOG_DFLT(INFO, "encryption change event; status=%d ", + event->enc_change.status); + rc = ble_gap_conn_find(event->enc_change.conn_handle, &desc); + assert(rc == 0); + bleprph_print_conn_desc(&desc); + MODLOG_DFLT(INFO, "\n"); + return 0; + + case BLE_GAP_EVENT_NOTIFY_TX: + MODLOG_DFLT(INFO, "notify_tx event; conn_handle=%d attr_handle=%d " + "status=%d is_indication=%d", + event->notify_tx.conn_handle, + event->notify_tx.attr_handle, + event->notify_tx.status, + event->notify_tx.indication); + return 0; + + case BLE_GAP_EVENT_SUBSCRIBE: + MODLOG_DFLT(INFO, "subscribe event; conn_handle=%d attr_handle=%d " + "reason=%d prevn=%d curn=%d previ=%d curi=%d\n", + event->subscribe.conn_handle, + event->subscribe.attr_handle, + event->subscribe.reason, + event->subscribe.prev_notify, + event->subscribe.cur_notify, + event->subscribe.prev_indicate, + event->subscribe.cur_indicate); + return 0; + + case BLE_GAP_EVENT_MTU: + MODLOG_DFLT(INFO, "mtu update event; conn_handle=%d cid=%d mtu=%d\n", + event->mtu.conn_handle, + event->mtu.channel_id, + event->mtu.value); + return 0; + + case BLE_GAP_EVENT_REPEAT_PAIRING: + /* We already have a bond with the peer, but it is attempting to + * establish a new secure link. This app sacrifices security for + * convenience: just throw away the old bond and accept the new link. + */ + + /* Delete the old bond. */ + rc = ble_gap_conn_find(event->repeat_pairing.conn_handle, &desc); + assert(rc == 0); + ble_store_util_delete_peer(&desc.peer_id_addr); + + /* Return BLE_GAP_REPEAT_PAIRING_RETRY to indicate that the host should + * continue with the pairing operation. + */ + return BLE_GAP_REPEAT_PAIRING_RETRY; + + case BLE_GAP_EVENT_PASSKEY_ACTION: + ESP_LOGI(tag, "PASSKEY_ACTION_EVENT started"); + struct ble_sm_io pkey = {0}; + int key = 0; + + if (event->passkey.params.action == BLE_SM_IOACT_DISP) { + pkey.action = event->passkey.params.action; + pkey.passkey = 123456; // This is the passkey to be entered on peer + ESP_LOGI(tag, "Enter passkey %" PRIu32 "on the peer side", pkey.passkey); + rc = ble_sm_inject_io(event->passkey.conn_handle, &pkey); + ESP_LOGI(tag, "ble_sm_inject_io result: %d", rc); + } else if (event->passkey.params.action == BLE_SM_IOACT_NUMCMP) { + ESP_LOGI(tag, "Passkey on device's display: %" PRIu32 , event->passkey.params.numcmp); + ESP_LOGI(tag, "Accept or reject the passkey through console in this format -> key Y or key N"); + pkey.action = event->passkey.params.action; + if (scli_receive_key(&key)) { + pkey.numcmp_accept = key; + } else { + pkey.numcmp_accept = 0; + ESP_LOGE(tag, "Timeout! Rejecting the key"); + } + rc = ble_sm_inject_io(event->passkey.conn_handle, &pkey); + ESP_LOGI(tag, "ble_sm_inject_io result: %d", rc); + } else if (event->passkey.params.action == BLE_SM_IOACT_OOB) { + static uint8_t tem_oob[16] = {0}; + pkey.action = event->passkey.params.action; + for (int i = 0; i < 16; i++) { + pkey.oob[i] = tem_oob[i]; + } + rc = ble_sm_inject_io(event->passkey.conn_handle, &pkey); + ESP_LOGI(tag, "ble_sm_inject_io result: %d", rc); + } else if (event->passkey.params.action == BLE_SM_IOACT_INPUT) { + ESP_LOGI(tag, "Enter the passkey through console in this format-> key 123456"); + pkey.action = event->passkey.params.action; + if (scli_receive_key(&key)) { + pkey.passkey = key; + } else { + pkey.passkey = 0; + ESP_LOGE(tag, "Timeout! Passing 0 as the key"); + } + rc = ble_sm_inject_io(event->passkey.conn_handle, &pkey); + ESP_LOGI(tag, "ble_sm_inject_io result: %d", rc); + } + return 0; + +#if MYNEWT_VAL(BLE_POWER_CONTROL) + case BLE_GAP_EVENT_TRANSMIT_POWER: + MODLOG_DFLT(INFO, "Transmit power event : status=%d conn_handle=%d reason=%d " + "phy=%d power_level=%x power_level_flag=%d delta=%d", + event->transmit_power.status, + event->transmit_power.conn_handle, + event->transmit_power.reason, + event->transmit_power.phy, + event->transmit_power.transmit_power_level, + event->transmit_power.transmit_power_level_flag, + event->transmit_power.delta); + return 0; + + case BLE_GAP_EVENT_PATHLOSS_THRESHOLD: + MODLOG_DFLT(INFO, "Pathloss threshold event : conn_handle=%d current path loss=%d " + "zone_entered =%d", + event->pathloss_threshold.conn_handle, + event->pathloss_threshold.current_path_loss, + event->pathloss_threshold.zone_entered); + return 0; +#endif + } + + return 0; +} + +static void +bleprph_on_reset(int reason) +{ + MODLOG_DFLT(ERROR, "Resetting state; reason=%d\n", reason); +} + +#if CONFIG_EXAMPLE_RANDOM_ADDR +static void +ble_app_set_addr(void) +{ + ble_addr_t addr; + int rc; + + /* generate new non-resolvable private address */ + rc = ble_hs_id_gen_rnd(0, &addr); + assert(rc == 0); + + /* set generated address */ + rc = ble_hs_id_set_rnd(addr.val); + + assert(rc == 0); +} +#endif + +static void +bleprph_on_sync(void) +{ + int rc; + +#if CONFIG_EXAMPLE_RANDOM_ADDR + /* Generate a non-resolvable private address. */ + ble_app_set_addr(); +#endif + + /* Make sure we have proper identity address set (public preferred) */ +#if CONFIG_EXAMPLE_RANDOM_ADDR + rc = ble_hs_util_ensure_addr(1); +#else + rc = ble_hs_util_ensure_addr(0); +#endif + assert(rc == 0); + + /* Figure out address to use while advertising (no privacy for now) */ + rc = ble_hs_id_infer_auto(0, &own_addr_type); + if (rc != 0) { + MODLOG_DFLT(ERROR, "error determining address type; rc=%d\n", rc); + return; + } + + /* Printing ADDR */ + uint8_t addr_val[6] = {0}; + rc = ble_hs_id_copy_addr(own_addr_type, addr_val, NULL); + + MODLOG_DFLT(INFO, "Device Address: "); + print_addr(addr_val); + MODLOG_DFLT(INFO, "\n"); + /* Begin advertising. */ +#if CONFIG_EXAMPLE_EXTENDED_ADV + ext_bleprph_advertise(); +#else + bleprph_advertise(); +#endif +} + +void bleprph_host_task(void *param) +{ + ESP_LOGI(tag, "BLE Host Task Started"); + /* This function will return only when nimble_port_stop() is executed */ + nimble_port_run(); + + nimble_port_freertos_deinit(); +} + +void +app_main(void) +{ + int rc; + + /* Initialize NVS — it is used to store PHY calibration data */ + esp_err_t ret = nvs_flash_init(); + if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { + ESP_ERROR_CHECK(nvs_flash_erase()); + ret = nvs_flash_init(); + } + ESP_ERROR_CHECK(ret); + + hci_uart_open(); + ret = nimble_port_init(); + if (ret != ESP_OK) { + ESP_LOGE(tag, "Failed to init nimble %d ", ret); + return; + } + /* Initialize the NimBLE host configuration. */ + ble_hs_cfg.reset_cb = bleprph_on_reset; + ble_hs_cfg.sync_cb = bleprph_on_sync; + ble_hs_cfg.gatts_register_cb = gatt_svr_register_cb; + ble_hs_cfg.store_status_cb = ble_store_util_status_rr; + + ble_hs_cfg.sm_io_cap = CONFIG_EXAMPLE_IO_TYPE; +#ifdef CONFIG_EXAMPLE_BONDING + ble_hs_cfg.sm_bonding = 1; + /* Enable the appropriate bit masks to make sure the keys + * that are needed are exchanged + */ + ble_hs_cfg.sm_our_key_dist |= BLE_SM_PAIR_KEY_DIST_ENC; + ble_hs_cfg.sm_their_key_dist |= BLE_SM_PAIR_KEY_DIST_ENC; +#endif +#ifdef CONFIG_EXAMPLE_MITM + ble_hs_cfg.sm_mitm = 1; +#endif +#ifdef CONFIG_EXAMPLE_USE_SC + ble_hs_cfg.sm_sc = 1; +#else + ble_hs_cfg.sm_sc = 0; +#endif +#ifdef CONFIG_EXAMPLE_RESOLVE_PEER_ADDR + /* Stores the IRK */ + ble_hs_cfg.sm_our_key_dist |= BLE_SM_PAIR_KEY_DIST_ID; + ble_hs_cfg.sm_their_key_dist |= BLE_SM_PAIR_KEY_DIST_ID; +#endif + + rc = gatt_svr_init(); + assert(rc == 0); + + /* Set the default device name. */ + rc = ble_svc_gap_device_name_set("nimble-bleprph"); + assert(rc == 0); + + /* XXX Need to have template for store */ + ble_store_config_init(); + + nimble_port_freertos_init(bleprph_host_task); + + /* Initialize command line interface to accept input from user */ + rc = scli_init(); + if (rc != ESP_OK) { + ESP_LOGE(tag, "scli_init() failed"); + } +} diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/uart_driver.c b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/uart_driver.c new file mode 100644 index 0000000..37780ae --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/uart_driver.c @@ -0,0 +1,258 @@ +/* + * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Unlicense OR CC0-1.0 + */ + +#include +#include +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "freertos/queue.h" +#include "driver/uart.h" +#include "esp_log.h" +#include "esp_attr.h" +#include "uart_driver.h" +#include "nimble/hci_common.h" +#include "host/ble_hs_mbuf.h" + +#define TAG "UART_HCI" + +#define UART_NO (1) +#define UART_BUF_SZ (1024) + +#define UART_TX_PIN (CONFIG_EXAMPLE_HCI_UART_TX_PIN) +#define UART_RX_PIN (CONFIG_EXAMPLE_HCI_UART_RX_PIN) +#define UART_RTS_PIN (CONFIG_EXAMPLE_HCI_UART_RTS_PIN) +#define UART_CTS_PIN (CONFIG_EXAMPLE_HCI_UART_CTS_PIN) +#define HCI_H4_ACL (0x02) +#define HCI_H4_CMD (0x01) +#define HCI_H4_EVT (0x04) +#define BLE_HCI_EVENT_HDR_LEN (2) +#define BLE_HCI_CMD_HDR_LEN (3) + +enum { + UART_RX_TYPE = 0, + UART_RX_LEN, + UART_RX_DATA, +}; + +enum { + DATA_TYPE_COMMAND = 1, + DATA_TYPE_ACL = 2, + DATA_TYPE_EVENT = 4 +}; + +TaskHandle_t s_rx_task_hdl; + +static void IRAM_ATTR hci_uart_rx_task(void *arg) +{ + uint8_t buf[1026]; + int len_now_read = -1; + uint32_t len_to_read = 1; + uint32_t len_total_read = 0; + uint8_t rx_st = UART_RX_TYPE; + + while (1) { + len_now_read = uart_read_bytes(UART_NO, &buf[len_total_read], len_to_read, portMAX_DELAY); + assert(len_now_read == len_to_read); + len_total_read += len_now_read; + + switch (rx_st) { + case UART_RX_TYPE: { + assert(buf[0] >= DATA_TYPE_ACL && buf[0] <= DATA_TYPE_EVENT); + if (buf[0] == DATA_TYPE_ACL) { + len_to_read = 4; + } else if (buf[0] == DATA_TYPE_EVENT) { + len_to_read = 2; + } else { + assert(0); + } + rx_st = UART_RX_LEN; + } + break; + + case UART_RX_LEN: { + if (buf[0] == DATA_TYPE_ACL) { + len_to_read = buf[3] | (buf[4] << 8); + } else if (buf[0] == DATA_TYPE_EVENT) { + len_to_read = buf[2]; + } else { + assert(0); + } + rx_st = UART_RX_DATA; + } + break; + + case UART_RX_DATA: { + uint8_t *data = buf; + int rc; + + if (data[0] == HCI_H4_EVT) { + uint8_t *evbuf; + int totlen; + + totlen = BLE_HCI_EVENT_HDR_LEN + data[2]; + assert(totlen <= UINT8_MAX + BLE_HCI_EVENT_HDR_LEN); + + if (totlen > MYNEWT_VAL(BLE_TRANSPORT_EVT_SIZE)) { + ESP_LOGE(TAG, "Received HCI data length at host (%d)" + "exceeds maximum configured HCI event buffer size (%d).", + totlen, MYNEWT_VAL(BLE_TRANSPORT_EVT_SIZE)); + break; + } + + if (data[1] == BLE_HCI_EVCODE_HW_ERROR) { + rx_st = UART_RX_TYPE; + len_to_read = 1; + len_total_read = 0; + continue; + } + + /* Allocate LE Advertising Report Event from lo pool only */ + if ((data[1] == BLE_HCI_EVCODE_LE_META) && + (data[3] == BLE_HCI_LE_SUBEV_ADV_RPT || data[3] == BLE_HCI_LE_SUBEV_EXT_ADV_RPT)) { + evbuf = ble_transport_alloc_evt(1); + /* Skip advertising report if we're out of memory */ + if (!evbuf) { + ESP_LOGE(TAG, "No buffers"); + break; + } + } else { + evbuf = ble_transport_alloc_evt(0); + assert(evbuf != NULL); + } + + memset(evbuf, 0, sizeof * evbuf); + memcpy(evbuf, &data[1], totlen); + + rc = ble_transport_to_hs_evt(evbuf); + assert(rc == 0); + } else if (data[0] == HCI_H4_ACL) { + struct os_mbuf *m = NULL; + m = ble_transport_alloc_acl_from_ll(); + if (!m) { + ESP_LOGE(TAG, "No buffers"); + } + + if ((rc = os_mbuf_append(m, &data[1], len_total_read - 1)) != 0) { + ESP_LOGE(TAG, "%s failed to os_mbuf_append; rc = %d", __func__, rc); + os_mbuf_free_chain(m); + return; + } + + ble_transport_to_hs_acl(m); + } + + rx_st = UART_RX_TYPE; + len_to_read = 1; + len_total_read = 0; + } + break; + + default: { + assert(0); + break; + } + } + + } + vTaskDelete(NULL); +} + +void hci_uart_send(uint8_t *buf, uint16_t len) +{ + uint8_t *p = buf; + int len_write = 0; + + while (len) { + len_write = uart_write_bytes(UART_NO, p, len); + assert(len_write > 0); + len -= len_write; + p += len_write; + } +} + + +void +ble_transport_ll_init(void) +{ + +} + +void +ble_transport_ll_deinit(void) +{ + +} + +int +ble_transport_to_ll_acl_impl(struct os_mbuf *om) +{ + uint8_t buf[OS_MBUF_PKTLEN(om) + 1]; + int rc; + buf[0] = HCI_H4_ACL; + rc = ble_hs_mbuf_to_flat(om, buf + 1, OS_MBUF_PKTLEN(om), NULL); + if(rc) { + ESP_LOGE(TAG, "Error copying data %d", rc); + os_mbuf_free_chain(om); + return rc; + } + hci_uart_send(buf, OS_MBUF_PKTLEN(om) + 1); + os_mbuf_free_chain(om); + return 0; +} + +int +ble_transport_to_ll_cmd_impl(void *buf) +{ + int len = 3 + ((uint8_t *)buf)[2] + 1; + uint8_t data[258]; + data[0] = HCI_H4_CMD; + memcpy(data + 1, buf, len - 1); + hci_uart_send(data, len); + ble_transport_free(buf); + return 0; +} + +void hci_uart_open(void) +{ + uart_config_t uart_config = { + .baud_rate = CONFIG_EXAMPLE_HCI_UART_BAUDRATE, + .data_bits = UART_DATA_8_BITS, + .parity = UART_PARITY_DISABLE, + .stop_bits = UART_STOP_BITS_1, + .flow_ctrl = CONFIG_EXAMPLE_HCI_UART_FLOW_CTRL, + .source_clk = UART_SCLK_DEFAULT, + }; + + int intr_alloc_flags = 0; +#if CONFIG_UART_ISR_IN_IRAM + intr_alloc_flags = ESP_INTR_FLAG_IRAM; +#endif + + ESP_ERROR_CHECK(uart_driver_install(UART_NO, UART_BUF_SZ * 2, UART_BUF_SZ * 2, 0, NULL, intr_alloc_flags)); + ESP_ERROR_CHECK(uart_param_config(UART_NO, &uart_config)); + +#if CONFIG_EXAMPLE_HCI_UART_INVERT_RTS + /* to communicate with co-processor with UART hw + * flowcontrol, logic of RTS signal must be inverted + */ + uint32_t invert_mask = 0; + invert_mask |= UART_SIGNAL_RTS_INV; + + ESP_ERROR_CHECK(uart_set_line_inverse(UART_NO, invert_mask)); +#endif + + ESP_ERROR_CHECK(uart_set_pin(UART_NO, UART_TX_PIN, UART_RX_PIN, UART_RTS_PIN, UART_CTS_PIN)); + + xTaskCreate(hci_uart_rx_task, "hci_uart_rx_task", 2048, NULL, 12, &s_rx_task_hdl); +} + +void hci_uart_close(void) +{ + if (s_rx_task_hdl) { + vTaskDelete(s_rx_task_hdl); + } + uart_driver_delete(UART_NO); +} diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/uart_driver.h b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/uart_driver.h new file mode 100644 index 0000000..89f2f5c --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/uart_driver.h @@ -0,0 +1,31 @@ +/* + * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Unlicense OR CC0-1.0 + */ + +#ifndef __UART_DRIVER_H__ +#define __UART_DRIVER_H__ + +#include +#include + +/** + * @brief open HCI transport of uart + */ +void hci_uart_open(void); + +/** + * @brief close HCI transport of uart + */ +void hci_uart_close(void); + +/** + * @brief send data from host to HCI transport + * + * @param[in] data pointer to data buffer + * @param[in] len length of data + */ +void hci_uart_send(uint8_t *data, uint16_t len); + +#endif /* __UART_DRIVER_H__ */ diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/sdkconfig.defaults b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/sdkconfig.defaults new file mode 100644 index 0000000..eb07a5c --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/sdkconfig.defaults @@ -0,0 +1,11 @@ +# Override some defaults so BT stack is enabled +# in this example + +# +# BT config +# +CONFIG_BT_ENABLED=y +CONFIG_BT_CONTROLLER_DISABLED=y +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_TRANSPORT_UART=n diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/tutorial/bleprph_host_only_walkthrough.md b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/tutorial/bleprph_host_only_walkthrough.md new file mode 100644 index 0000000..8f32c7a --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/tutorial/bleprph_host_only_walkthrough.md @@ -0,0 +1,83 @@ +# BLE Peripheral Example Walkthrough + +## Introduction + +The tutorial is focused on how to implement the custom transport in the application and register it with nimble-host. This example has the exact same working as bleprph except the transport used is custom UART transport written in `"main/uart_driver.c"` file. The controller is disabled for this example, the nimble-host tries to communicate with the external connected controller using UART transport. + +Note: This walkthrough only covers the transport used by the application, for detailed explanation see the [bleprph_walkthrough](https://github.com/espressif/esp-idf/blob/master/examples/bluetooth/nimble/bleprph/tutorial/bleprph_walkthrough.md). + +## Hardware Setup for Host + +This example uses the ESP32-P4 chip to run the `host_nimble_bleprph_host_only_uart_hci` example. The example runs the nimble-host and sends and receives the commands and events using uart. The ESP32 co-procesor runs ESP-Hosted slave, with the BT controller configured to use the UART. + +Below is the setup of ESP32-P4 and ESP32. + +ESP32-P4-Function-EV-Board with ESP32, connected via UART + +The ESP32-P4 gpio pins are configurable using `idf.py menuconfig` -> `Example Configuration` -> `Uart Configuration`. The tx pin of one chip connects to the rx pin of the other and vice versa. If you enable `Uart Flow Control`, connect the `CTS` pin on one chip to the `RTS` pin on the other and vice versa. + +## Setup for Co-processor + +UART HCI setup is done through the Bluetooth Component kconfig +settings. In menuconfig, select `Component config` -> `Bluetooth` -> +`Controller Options` -> `HCI mode` or `HCI Config` and set it to +`UART(H4)`. + +Depending on the selected co-processor, you can configure various UART +parameters (Tx, Rx pins, hardware flow control, RTS, CTS pins, +baudrate) through the Bluetooth Component. Other UART parameters not +handled by the Bluetooth Component are configured by ESP-Hosted +through `Example Configuration` -> `HCI UART Settings`. + +> [!NOTE] +> Make sure the UART GPIO pins selected do not conflict with the GPIO +> pins used for the selected ESP-Hosted transport. + +Co-processor setup for HCI over UART can also be found in the ESP-Hosted Bluetooth Design document on how to [configure the co-processor to use UART for HCI](https://github.com/espressif/esp-hosted-mcu/blob/main/docs/bluetooth_design.md#6-configuring-the-co-processor-for-uart-hci). + + +## GPIO Setup for Host and Co-processor + +Below is the pin connection chart for the ESP32-P4 (as host) and ESP32 (as BT controller). + +| ESP32-P4 Signal | ESP32-P4 GPIO Pin | ESP32 Signal | ESP32 GPIO Pin | +|:---------------:|------------------:|:------------:|---------------:| +| Rx | 33 | Tx | 5 | +| Tx | 24 | Rx | 18 | +| RTS | 20 | CTS | 23 | +| CTS | 21 | RTS | 19 | + +## Main Entry Point + +The program’s entry point is the app_main() function: + +```c +void +app_main(void) +{ + int rc; + + /* Initialize NVS — it is used to store PHY calibration data */ + esp_err_t ret = nvs_flash_init(); + if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { + ESP_ERROR_CHECK(nvs_flash_erase()); + ret = nvs_flash_init(); + } + ESP_ERROR_CHECK(ret); + + hci_uart_open(); + ret = nimble_port_init(); + if (ret != ESP_OK) { + ESP_LOGE(tag, "Failed to init nimble %d ", ret); + return; + } + .... + .... +} +``` +In the main function `hci_uart_open()` configures the uart with necessary parameters like baud_rate, parity, etc. The file [uart_driver.c](../main/uart_driver.c) has all the uart transport code along with the necessary apis mandated by nimble-host. `ble_transport_to_ll_acl_impl` is the api used to send the data to the controller. and `ble_transport_to_ll_cmd_impl` is used to send the command to the controller. These two apis are implemented as they are necessary. Along with these two apis, any data that is received in the rx direction is redirected to the host using `ble_transport_to_hs_evt` and `ble_transport_to_hs_acl` apis. + +## Conclusion +1. This example covered how to write the custom transport layer and use it with nimble-host. +2. The example used the esp-hosted network-adapter example flashed on esp32c6 connected through UART to test this demo. +3. In the similar fashion the external controller could be connected. diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/tutorial/hardware_setup.jpg b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/tutorial/hardware_setup.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f83e20f9c5a27ef90b5ffd91646f962d12e2b03a GIT binary patch literal 495040 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

    ltoxK;-t92;S z8QqG|?771*eBW#1I5=yWB76WNL_np8@7CC|Q5U}SJ3MrOGNt!IA_uiCcSSZ$J!( z0k|ETN<>|w-_R1>sZ<4|HxkGWl;GMc1f=>ch5%)La&AVr!j5$dld&)_m{`GgKO?7t zXseKeyl(hEj&gsM>fR zJu$cWY_`cEEI`?Mu>3jK7Oj8F4Dxe0BjW2m94+m2wzf%cFOzEA`s+{Kr(siGLF;!) zO6NKMcwIwiqp57n6H)!_v{Z@QEMLJ<%yx}NEK#*5Hvg>{*XDs4NImB#{odWp=Axu8 zCcC!7xC}`0Pkls~;jZ!Wcx!Xt7SSj}{{h4ucp&Rss8fOBsBQtScg>zYFiRdup!zQw zM>~>_rsDsCtzRVj-SG2?g*PJadnKP_djL4RLifC{uGTRCOxkNRTyJmE4&?iS3hyw* zlT~TElSE$A4427_=j`3NVut*STHts%=0htK**1Pw35tJdGF}IxFxfsbX3H;rzqy#) zkNJ}SbP2C|mX+tJXO1m6t^KDiV>gmhD0O$1A;qtO;wim_VGP(emoP0m^u4Z>2r)xD zKB-2Ds~8?1|IF6Xd}3n7CtlCp*NB1o(*o--+=E+PEj#YS$-a3kF9!C_XiBTSeE%X2 z*F`^w`1%4&8u@QxV2egMc5|m&on_c=QKqv;=!0HOWKNvr*zFgL?F!e-OQ{$}uDDp~ zZliIurj77R;S>gHE-IjtOWRCYgEC$XyO9BxzUZ$)`z3>7cLc13>e+0+!ah6I|BWs;duY9-jJSPsWvfef6)`@yk}GsiAe%(T&k@S%RZOI}c7TxBq^F zz1}iLJVH5mlKsWW`M~?HxL`OZEeYmp>(Bt3eelf$c8D`;uc&ir!%l_v5SJIKDy)vx zm@^DKVfN_Bk1r?wQE>lO#FIVC`a%8SPk->H?vMsIx^?@vdLIYL*rMJE=g*`!pHb7= z8u`XI7Y^&EhJCX><~vkdR~)gujW@?!+oSSU>(sLcslQ11PLBVm^{tOoM#t5@b7w&K zS&`mQ8OkEJU1*}3GRyz@MKyb7dbK1V48}Zn{v{I&AN;K-)vkEHYqrB}`=R1|vc;*- zXjhBfrU;mUS*tbWsxgCyt#rvxs#ksq>U!m+`8;@N(P=dhH_T6ZJp8YTO+I}S z7mvue${tKoyeZW-!8iv{p#W{bGj}5e3owS2kZ=hT+kPB#zZ41&)r zM?o$ZulT}OFJ?S2F{4ei%O?vn-0lQQAvzP@Tlq$$xga(%tcGsjrdQVZka=!DqSK$W z+mM>>*|xxebPGa%lpie8oxxT-QfXOR6)q~rNZBrqml@v{V3l*wdiZY~h~iwwU|0FF z;*R`t3x%Fm){(Y&VDMP}-i7dK*SP6CY?T$V#Pg&9HPj>f+mn7>zVzm%z7w&Sf6E35 z6*~_!r2O|!V%+I|M|jZo0OPQ!rF&$jg# z)SptW#L71#X}b0)Gx8N`THj16Q?#oPo(D~~yz?vWYl@P4VsU@TZGAZry)YQ8yzwM< z^4b>b$`rGmj4cC!4npJ~df?EhI}fAQKR|&zhh3l4QywW&dC9%>ueUERY9hkaye3+- zqnn=Da}`(j9j5wF_vx~G5M(iQg`F()2xTcktj?wh=6U}`Q)l7G+m(A z1gd3Ixh~K&+luJg4qhgN=V$xSC8=GZlK+-(dxg0Hae%zZ=rJpuC4sBFM?VQRUSURf z80GopFXBVcjhDuQjjV$tq2uhDzl-y2_5b}K&q z+{v3|>~o~+WAO?bX0TAmhDW*dXEukSs)GC53s^zZxT&mUWsl% zuVVo({8;Y%-ik#poTKCh6WS|ZYH(}kmjS2WV86aPTj)*~m-Ejp;bjNxSB2JT@#a2z z6uluzs@4%7ijK{OW5BZtJ{w32W=IeRP+YYQD|e!3I)j1h`Zv63BVU!$cD^+RR;o

    Mdb5hqzqF; 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

    +xfa(joI>hr@O>+eS5z(u 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¥hweO(ygQ;0B;|SBU{Cu zcb`)`z%EByB}HrKFe$dKvV6S1--b>$iJN* zWs7ere>!*BqQ*9{{AqxO-q;LI3F++jPa&7Fdv060c%A&j&{^>#~il*0K6NRiUvMZWML!#6V&6qNtC*X9AN(d zDs8yLKxY`@k)qgq$dAq4eQ5x|^Tsw9_u%luy-#l2q}w9wC$Xi1MUis6p5xM+bGS0d zib(^Ypb4G!aCjb-UMr?E1d=8Jx)a4LQW;rD2acqSRF^xM11JTQ=M=ytV1p-$?mR!b zUkF;NU;Tvn?epgwx#?bOd8n)*1nO6D^sT6MR=Ckp(h{u*ed_(eriqfd(R@X_nk`1c zI1sdu#t)s{&tqLQGhN4^NvS=OF05e20OWhuoa!3g_0w83in2AZ!jZu^^{YwZeM;u| z-n02~DB2_Hxb($4ip<;aJ>0PA`qj{kOQ;melhk|CthbuSg6}SML_TZ`Oio89+PRA@ zTJuf5d%G}(R?g_p-C%oSr_?-4scNx#7YLTnFIb}BAFUS)82jZTD;_?kyZs(pcJO7F z+ozV*M6Jw2JCD6^aux>wWaFi4X`Us#w6R@2OG{}XQdkKWbtJ~s&f8pjdyQ8>zl3>~ z*%9T&Gme?8ZC6(D2mB^06h3axFe*j|$XC{|b$xpCP!TMJBS^VKj9>%nR};p%%yFzz zt-kHMR$ZBDcNLk{YTk9Vp04^n-?p#}=@|Kkt}Bf2)|7P%Yx~_vZX${mBzdC;fAy%W zwM)x8=eveu=RS89=Xchp);vR~YF4cb(yB&A3dXxZ`q6uZnQz0Iy{47+({*s_vOq!s zk~em&h}-QF26rr5p(e26y+}hxDoV;m(p54Dt$T9}wofbWh)44-?g$iyiJl^^bJCj8 ze7OUqRkghH)I4&DV)f2zL78#KN<|P502IUeRD_Py!ZVD}1A6qNr(%%x;(!Gl^Vc=m z-&y!?OoG&3rPIqSVa~&v;`7KRx}Or18kUaIMzX1ien#kNqFG*Rj|wz0h%K)?z^7*J znf&XPd+TI!GRi#&uR`#amt{7gsSCS!q;D^BD=*#Su&*+_NS5YL-HeAlM{Lssb@uwN zg;w26_E*A8a(ayWb5`u;@b0Q*g38+N8H8okpP|R&R{VQsV-JV4d2L{dH;@A10OalO zT=#>n5jCJT7eNz)$4)2{D{BXKlWCqXSPcDW@QGH{mpI6csdc9frP|>N;oM~XYCi|2 z{aF{M%G5Czr66jy2Y2pP zvYBxv)B=ks3swx9NX`ax#%rL}2JJdvM<8ao{uxF<;{!%SR~n4aaUT6orED)|74%sOmIbQH9^2gJG-V`^8;tr^FT{bL3tVP^K3(wxvtK^>yynhJW2vlzn!Tzf%c%!WdSB5mpsR2x=m;LPDjbYdhBiG;F+f~tT#iO5nA^&pYFuG* zPHHl8MkoPRMaRqzXrx%qayX)ambZ*j`JE~S1kgbP6u__~T1R!p0ji*!@@X3&&;#V! z+*Nh}Q^_KuX6N3J36gsBr3a1s9}uO#@2OWz*(#w*qC4g+SqtHTq5hp#p9g^kqa6-Xsw7@ic?RknwF!4S?5{c~z| zLOpJ89?h!ULh~e1EG@Zt=DR5VBnzEC>{*V|(ZAM6SQ6FZT1JI)c;X|Km$JAZpQU<2 zd>PcG@cZAJ_@XGgnm1FA&Z!BUFN^h9Zaif3>9VZR1yQ(i39g62(S5S-5@3cIAoMlI z-D$%})MT}op_O{F_pYzO^GGhpk0sS|F-%4+-jgJn-Q*D9?2xD*jXr+}>gguMSb@fI zy07WltQK0e&DG&MgOiM8o@-Kn9ceFc&56E&YF)}kL>gAHq(Jv^!x=FtEJ4TusK;w_ zswKvwGaxI==ZyOb+SPn>rZ$^%Zvx8FN}EPTF`B8Q-9>eyn{I@2$9hS&T1w_y7}7n& z00&+xp??{HXXMz~qDinXn0tHCtLX5jgpJzaT)Khp&2ng)cok@g>d9qhnT(RLXJeAb zsipz*Q;6b|qka_06+Z9dLmW_^)H&dq01UoBEz*LUnG>#XCjsZ=zZ17JN>3o&h9iscN;_Mk+Ywt{^tm9WvI)bFo6 zunXmxcVuMOPR9y!>05scZY<)}qu;PHxn?JtP1t84ZKZ0q@oke!pMjig?NPy|3+skQ zwDJH1mSKUP!oHdDHm#=J=vN{cVTdGWCx9>ocz%^GpDv>k+*}}ur1`Me;*Me1Ot>Q#~QNoaYLY9hL99kh)&nZjGj2@S=z6enxTtXun`XAHrU%?R8n?Ldk2b12gdw9aH;bGtdkP9Yftj(up;WJ|3wIgtcXlgJ(F z+b%t*0wv&LmpuDY9=)muc6mIw$p^XgpkvwEM=`{5d!I^F#kzTFGbgTkd(&6_8A2`| zLr;hV3}1}$%xDm?s8Cstxh9&R%_e{4pJD4w8>f?=A{`X>sa|0j3m-BbJ%s}ic`~ zdJ~Q_P-h(~cqBk`BLD{`fF3tvnqwShpKqwx-%TWT>`S2MH5BZs8z-k>Kn*SV(Y%_f z%H>1NA&4G|2Q?c79Gi(n11^^JrjmNqFES4IQs?oc%w+L%DWQRQF&!u;B;u$rP)Pek zznv-oafzk+=8zY0*A#=?b5#s!-f54vO)-`(o@B&*O#ojVeJOW#to1Pw{<3lP%_I3g z^U`nDfHX;_=iaC>Q@}H0@uVpj#_u-=00%+%zR(&5Xp@RM^I4=toB=uf>2@FkD=t0r zK#dWB-i_F-;;{Ygv!BkCBm#Gh@`y1RBIAR7iw(i4l#mLpBHh z0Is&6xl)RPRdA{lusv%t?AFcKPB`{rDpZ060~UdQn5G5eD)x0BjVGLd@ay^2LlR(- zZTzW?9!C~=_2;DkUl$SQ{bGJ}H0ZcH)P6NU#Jmw^KQJjauOL~E#|D5j1;k|V>r3ZG zKaEf0R8bfL4XUr=DeDj%{gpC32%rmQ;yiz>QTWtSUBs$Sn7^GyRa+RhU(%Xk1O8nj zaqdL`QN3GR+lXXqzbGLal#aOct%Sd~VT6%()gx{*lVcWrz@SFzIJAThY)}Q)xrFoP zDXOzvM9vjQnjeCz)QU~7)LO;))SITaUocz7s=s)zQ9u#cSwp9Jk7H#bnLhD%=Cl@7 zmOaZ{?Ydq60Byb7T>k)~w?*Ha{uQ|jn8O?pta36a5XtStq;%Xl2Ac$*yz-_6Tz<7~ zBzd1?NY4I>GHGYht|jHI=Ms;)c9DuK1#6@GmfOk2B-r~la86UTMT?OBT#*pNf=yV) z5H3b>iU4FMHi_xBlF(++I0TG}b+w)Ip;&FCmOt+*lU8H4Yh?*ADBgr(fGOLa3ZGiD zo+>kKDlvGM%tqvT(r&r`0G=c9G=@h!EDxCm1c350)|@7nv`@tZ-5loFeRqmLZa?RN z9=y;3Ebp%{VbFp?^ndmdkHg%C$JZrnuQex+ilz-n;@ARDHs*g@+0b?>Wft_{? zV+XxDc*`(k>INyl=|uF5{xq9zi939;`1GJ+Ad!gPn|{3Jq@6df%gYXw&9@!dKLb*W zYo0!6!1rndM6GZJJduI^(4`_tzF7cOsXotiKJ1bHd89DhuLa|vV^R;B<;nJ{^GG3i zqLMi#ie=j3KC4!|yP$sbSoO~}I!3Vq2Pe6p3OZa7!4H=NQb!JR`_87X{4__O~YCyI*3vhC4mAO|-i57B9py7$2Mx(4B4t9A#MMtZOkedNr^hh7zzjs5~;lJ!aJ8hB;5pfHZYf+pDJE z`RiX$_%1+vEv7P#u#OL{e9Nx@nxGz&59MD-MrU1 zE2&-vE26t`F~wy0 zt!a2in*LI^-3`a(TNZcm+=ek6?d!z=RaxDf*f>^?J2T#^YF2{Grq(R2>sO?{w2tA6 z97s4nDXMy%hBY zo=BhymO7;InBpj`nZ|pH)VQ}>)d9;c-k3E?(@?dF1X(e-bsK3eEy)pvaiTRIhs#l zNgpTWADuYmi5V0D9E~HW^4|y76$@Fkvm~!OmQI`uRKIh${Ag*IkMN)Xp#*c0Mh9wa zZ}WV|1KyrO=OOr@2PQ$_aa{iZ#5}i#XBgm-n&?JA$T<~*KUz{qkr?)1b4h{k8hbhw zS064q)%KSd9Mw%Bqn5@3r#V5_=~q0wgX`L{G$fDa#t9WNp$DF7nu%jP;E!6f9pVBv zf)CPw9_Jl6rB-A2j%br)oQw)jES{WDA?=PZDWs14QH*icnoi%pKn}qptrWsnKPkl& zz?^Vt#}yf4=|~@*Xc&&2#YVt^Q*Jo+pplA93dHe_)f*0Ys}7*lduRd?*P32CRGv^L zt|_u1UX%e=@9z3~*O7SnvwGVzfY`5Exl&Z-yqCwL8j~*^oYRKn%VQHoY}~LXjlC;m z?IViBu#6p9n9*#E>B0{8=5VzwwdIg>XKV z45WGD-Jl?voi$r^BXGd1$s%lUDuv>fEIvM!I(VU(J0RFVZ_?@GvKj`vt z>?_E8Y>wgps^o?{u%@~DMPNtD7cAEbH#O*fc zO8(5#8+ypQWu3+V9l#yUeC44-_NfvSQeBP!uS0)_`s`Y8y^1*HwF4xE>Gc&$LRvZ9 zOj~LmEtW)ZV%jiIP6b`jZc|Rw#D^OOLC2+LUc{EoD$goIaUTU6jQuNP!uD3zQt!Dt z(MEBewL)dPyAKXsO(fFIAZZ(O07&Mrb=@;Uh8_BJvNZV^UZDEswr16|802(o7a>Vp z`u??ruHWhNvI`4Fi03TDze)iM;r%~KxVcfOA}l!M0y*xe_vW>(NNEi+kOB~il zgEgEi(%!}9MhD#-^IM1WyYL?~U>Y){_H{)cj4T z$i<%CLI?1vJAW#~m&7`nBMS(wE#+g&BO2*-EjwLXP!`z12TwC*LHudDCxZ2TUvp{q zU%gCZKLFI|2QjBfs84z3>T*i#c?L$!Y`5iBb*~R<+6~+*tip@9kdB8Ts-red0~iS$ z=7Y^CBRCWs4ov_cdUku%1=Ng+a3qiLpa&Uw1GPryeJ_-I8kEE~?d)lROK?NZJu5~N z@&W5rMWP1C&V7wqRmW36i8uh0+PEgYxQgy?v%3OV;|Cb7?6AQH9FJPX@b84K^~>i= zb_z=p2^}Z{A3D9t0rr`lPw=#y8WQ5_&DmZB-UbdudR6zrt$R$hE3441Q9>rHP%l#=FU|B7R@dSFxwM-# zx$=SIJPP!W1N6#WC#^Zx)5n=8#u3!6!9AIpzn^FKf{o>Vp~Zr*0{QCWj9 z7$&HjU|T&8wON5S3=Gf(u*W>rOUpR!Bxl}H+k@z8$JU^_&cn9=_Mk#qT-j;lK_u#A zCm5|OqQAqAookePdwFL`u1f|^fqBhnM|SsLBw>_v`cMS(Gc%at8TCGt;kFUAG9*0H zz*rC{!IS*+NQwX~#1eTdXaJ1@Gch?QsWh%U#^dgKdecrM!NF&iq5s#bK9Vh^H z^2kI#IUkiOszRHjIVbZbnGjf2o>Ex# zP(#RfOpTfSB07Mzvdykv4`cvhT%monr zTA0nfibOy?3wl$=+jYUgf8idq0AXT4pd9uCy-N&uZStrrD1sK|NseSas?x{1fj||Q zsT~JeylTAa0x>_zfthwIZDDaF@s~0`LFt;?hlti` z#_3z`N8jpdrM0YZ0dYF-l>Y#$i~5?m7<9~%YYqbT-pi-rITB;4trzQMf>U zR8jO5lc&iHFsxRp!ZGT3HF!Q~87CfsmnwRwsPoMLj`RhGl}0%unoI%GkQ|ybKnun? z4Eobf4_?&0MIoR?sJ(dME);6o=l9lpJH;fDGb|*&g)9&M7mB0G$<2@Z{8u z9tJ?cs#h0{Z*4QgrQH`HK*==*i>k|cZn92=7{1&d^y~(r+1<&^cCxtjR3@2mX>)HG zdF`c*KfLHgdN+vtQ*of_ntEAVtn$c%B#r>ZLE*0$T=ao2Y87 zWQO7(e6?eoV0NOw+0M&hdWc=^CPW>|8qPDXAi9sKuG>!dlXWECUG|+9*_hyfc>=i) z5}O;1R%vw0Tw6W}7{Ld<4FY7AHg{L(Ue4NCkQ`+fBCZVwRq8bRkNe=!q4={_(5ywR zjkF$6B#qpjYrVDc7O_8q=GGg^62=MG2N}*Nur|@>mwI*moDDVAq|rpZS&)D$Ewu{i-Rd^8!*%6G0N)ur1K)~6Iw2vD z9R5_Hu}wwD4muG{a7KM7182h1M7sU2pBR!npO+cW6{F)h?XEA(wpP+cg??Xn8kWb&{$2WUTIBlwpn4yJ2zwL=~R}4H)eUJfuqN$>o7$eYBF~*_U~Q4 z#JJ&uOVi?l2;&IY1y>wmq|vmAd?Tjb-s&qEm=BW;oUdV7{yCm&-wRk@G5}rjRZp!u zSqk@OEu!j@==bS&Zm7-y7-3$Kt$3#9+ryTZ(ZLHzaoLxpc?(H4)BcYC0G)UKAOrpt zwS>eIDs9-H^~vUv8{FfrCu!%BX)(S=EI_WSz`h@~)P&c%lYgQ@e&K@u$7wmY(Jdhs(eN3ETF3DpjI3_-#}`%$9ouk{ zr%L0RYle($w?AFoYOBj~R0(Wjl|jhggNiN|H{g|C6mUokG6rcF1JLAFToT>Lz>9Uq zplo8TGu;l55Bum;l#3g;Fd>d8EHjR3pP6<)<=KDlx&)Va=GjNS>HxdYQ*)95&MKjr z>jQKuasJgdNiRQ!-Er%>fHVU@1clX{s_qI8TF=n+D784Jf3v(>4moVqIc3x%kz`0z zF!VXiIc{|(IPxKk6OtETpiNiTnj7{~kyq+hkSB_sSAfGq>soyKaO zF2Kl+Kc?z$`f)uX$E5&W1Z3uyilhzR@4FU$rkq9QI1z(L3t$RciC}`#N#%@{jAY}j zP$u+!-zVsERirwaGh@h+7;R|#5ljs&8uHgrwP~V_)B}&7gH~9m`?#!YPq&DcD5AEv zjZZ)gU0AO|@?j_Oqy>!gPA$(BQx`)Uj6>;@K^HmsT0g{41+1D0CaWslcQKEpF3X(! zu7~iZ1&r}h!SgWB0;-5_Pa&e)^r&v0^2{r+S3%2d9Et$k#j?0YlMH=DSGtHPAam$z zF=4m6y%+0upO+q9c&m*!nT)n@IG{vQFST_3B+Qn2G;JrAhCaOTYngNMn(2H;xiqZ` z;gfQN&OLEVOs%4La$QqWlH6Vxl~A~F3EleFJ$SQQ+`N8bx~rAlj<~I~@s;(arS`iW zJsCE6epzmS*DG@-qj7O8pJq^9iyXM)Gy&GjqRS74ZS{||DUMd!P%j|npwKm8rRoCa zb$5s>E);XfsNvS`i;^30&!DMq?PIgkt{_p$PQZOA@NBWeuUWK!kVzOH zN@D10c$ougOC)N1zcdV=TvyS*4dpN3>jAfgQn?4-zIfLp+_MmVQE(0`=ud_$8^N|D z5AS#Ptm+j5e*HhuWnekm-npnRWU~iu+#Yais=HGqtjL2dRDdfNO0bY5pKr8X*}&a~ z&17gz9-9^1Lg2frNHf96t2Q=YV^-Oh40Dr;%7)7EFZ1NO+lJ%jzys-5b+ova7}nZ1 zetFt)K*iKF#gU}A5;!DhXz5w@`fw(Q#XyMZ%^Wf#5gOgV+wB>7bdEg#?+>_rmTE@-Z;!$}I%0B3B zL8dYRtI9@9QIYjEcS^tebgrzSb`HliPX5AmyaL+WbOevOc&*4SBDenlRT3d1k_ITS zi4}2@Gm059GPF0!F;Xb`Xs{79K#sK*(mm?d0TmmAgMmeWfO?vKcMp_wrtM&OQYphK zGtPdLSYfsC!Np_v!=DXb1HtmmYMN4?S$7-S#Sr`1Cc2LuWN0&Ey9|DHn=Kq%Gr*YK0sJc5TArI5 z10pBWZflw$i0Epx;|g(7Gp)YyXNK(~QF|N?81TMWHJcxeyeNc}iZPzT5sLC}8%HF+ zXAz9BW4i{hqPCS(0=$oUe4u;Xp1+{#x|Ot+*3rcAK6h*jy1ky$P_(?zO^uO9-oH6h zkh!mqv}-%P0~YZMRTtx_o_$}5#t z2O~AocsMk0%7E_M5wAan(r7gaS5Q_LD8xSVk{jN=1H!JWYjnf@dDS5^OTv~KEW&r! zc6mVOcH#*7V!7`aogzE6O$hIYaruUEkH)bsBDk0~H%eBP)r`P75rv&l#p8 ztMQb=FAHhgK>3_wKT6^(Z|)x8q{ssL*Ky;B75p)$1!3mz8&^Ku*9i<#XAhN8$vLJ8 znto>Sl_L~x`H84v8^;F`kJg+@lk(?oI?@?t23@}~0DGE}Krz9te)cxG+M+_B9QCb8 z8)PXS;@dz3p7a3e#%hJ!WVj<3#a@u+p}AFTeJB~N;Eh@>A6>R^o7k|)VP4y+d`;dB ziCDt0+Cu?~@C$DuD~RNLWqIV{t?IW?-MY1`W)cT2zd5AP9;v8!veqp;+MroW=OC{G z=~+G(@lKhiPjfZ=%LhCHIIkzvCb@+KpKaQIg-=?{UDpeV?~V!kq?4MP0qK7c{8y*= zn)1L{P39O&X8?c&a)*(}6`5gduv~zLAdkITN4OO10|%+3cKJ_S3Si`8(w-27VVFjFFvl4?KRdOArKzet@T7+RRMWExN~$)P_P}a4N?~oN{!^m7-O-nA>opHnY_I9C-9=z1K)LT zi<%wolP#NxTPuJ-ug#_k9m~YconfIT4P49<=EnXxfMOnEa># z9F@YRH~xZxJgE0MAfMKRRf#vqNj=HxO*aN-4(Z7Ip!T2wHD`Utk=cDHo!OX22>$?i zsFm2Ak)CsgBeg3JvcxxaJSz7lfFBr3bsS~Cg?(w!sSah7hI9H-LmA1IOa>z#N>*ZX zKnW!Ka7pRfv-K@*^4LPQY8grSzFeBKI^=rRV=Tzy%Er;&m>mpvpJ=y6nL^2qK&V-= zJ?fRN>;lY5?^cTi8;@#0Be+#8X`y%$Ot^pGN)!RMS^n`qB!AYf+r&(QSq5dtPQrna zBCtE;!D2Y}q+^=7EG)~CF`jc(BwQXbKoH3oZoJb{5T_%jrAeP!d=X1=IztKS;DHfYXOc($zFAOG~?k+V;`oo@EUh4oeThyWa?N_`nuU~i; z$~`w+(q@j_F+O?>j(z$X%6OEQx?E|ux#SO^>Q;j{8g`G2P)r4t4Z1FHLG2X`*^`(toIU_d&wZk42dLXMy z9>)&I8sPoW{o0xcgmUGGX&r{OCu`v+zt- zS8H>q>Mzy)Xj9A_ z=A=AR3+?H~C<5ehh8;)YQCz0QB=i-}YNt?_P`7(ahDa9$hU^Z!=Cxy)?%0#eW8bX< zG<+rVc%s3WZHzv0d)GtbJJ+-Ely^|S&kC;}(z$GHAgL-xLMgJy^0|2&yZ0<}PUP6= z{8i#pu0a$rqeT*Y%n8opTV5n+SHL<*45jio2b$muZRu3?DK9Q9e7i?G)w6=w{HVBC z=ro-@^=s6&w<@mP+~5ITm8oY5v|kEn(FnCW^_uOvVYwfGt_@w&I~|wkO+wM3o6akl zF^$CYMa5=ly4uHaFWLOZhbL*}xXUJdA?@TiIO?a~vYE?)?Ouc7?MBwu!nSZ~DjL># z8DF2f&su3*Qg%68jRyAHL`_a;%0TV4LFK&1vus=1vW4gG0a>~ZoiyGE)W}|0wGqb*CAO%S5-(H(lUMu+bszjpEX>|q_X&v0diqsOPez|ivyyxFh5$3PJAhy5MS|r` zN5j`vI&HP_Uor`oJC~5ZT8~t)Z7wS*B-dQ=}4mA9lsiPrBxHQf7HoAxRH7LG>7PD89B*4Daya>=BkUCzvtQi06If;I6v|1 z{{VrY4G}uq!tzP6QAaGtflY$I-1Rrb9Dr^_qMW#WEdq#%{tB2#@t%z z_H!5%=PvlkG=R{5aZLj`;}ub^?iAzfY;t<<6(PBtfCK~n`V;|U9B?V|Ib2|VbxZ9N z^Zt*I_z+*o?mNh51^FA{u& ze9P(YK#9-Y&3aCb{{ZnJ)BgaqTTT{-8yap-K8L+|kacMCt&nS|*APqLy$M~2L&3+T zQWHAIe-Hh*fci^Y0r!G{Ys~dot&>o=@)-d}^B=8X zUup4K>Jz||x~j-j9Cj33EOx#azR?pxjNF?wxxvYiM&f%_e+k}CF10tCBnlY`iFSL;{*eW!O;lP@8Y_FS>;yXGj$%6CMJy?SxK|J5+9sSbM>s9 z4tBTIttE^XWRp96YW3!zFKq9m^0qObBz_f>V{mP6;GY2bZWxbh7?INWpI46dRb`08 zs>2|z4SL^!z9RU4N6>AowF%u>2PIc0HNafi=$hPqZKd21TsrRgo4IH;1jYeVRi__5&f2mDMNePU{Rd{*#y85)r%&_v(iUo)L6PYuqsr*r<+YH0NB zFdj9FAE*^J9*5CVd|L33AMy1&XVNeJy+ofEydtM>n{>YBEdKyn`RS}Qr6B(RZdoxr zU@!jwUWe1P&^Xqtf%GbIOO$8O&GCQ2SU8&HzL9_R>I3nM!rqsE_rU)E8t@A%Eha@_ zF1u=urx+2EKQmJuGf7jQ?fYyG`epwB*Qd${xj2T~Ym9Tc93RURSXVvael&Pw{{YJ?(0}Wg z{{R|B_|@T@e9>P0JhA>Y;#T(F8ZZ0pd?NnLy&1jzRb0 zor6Q(&&KZ#FWt7h{{X&Je_Ckx-=LnBcZBG<`!wj!73$d${s2 z8X>{@(p=qXD#yubnR_-V*es8rU*nF4{1#ViJ;)Uce00)3hfTRZS0CYDKCY>xsxmrU zANIlil@i}+`+oGE+)-fA`VoFOT1?w*bX$oV)6M??>r{7N7Gl+4mdpDdc-_>FBn*En zSCM#6TkzW4M+T~w7XJV?JoICZeSIs_XVrWer)ke|rrcUhIbFSZ{b@7`$CCJh;M`pX zVsbJ7J%(#7K&f>*gt)wtNdDm@ih)=G*A++@Jc%1F=1@-n6V{#s9+;|A2;Nj_5SBy7 zJXMssUWEuW#7VH4a=^!<0ZjW+=k7HryXS;BrUTjs2a*jmM%~D!eXBhb&@Op6N(M`? zf!34)Jt`lxWb%fS?K~fl(*n}r6`9Wi(x7=`nRi0lkoTw>uOCm#L-%PqT0ssB0qL$)xSejku1;gZleeMCOU@b6}HL9&UX=A zABJU9Z*?l5P-D*DO5vch#q5oA&S%_rhaBhLyUz@wi%Z?u!HkT46=;@aXx9-ef=R#$ zyC>SH>w1N?*1dA}(y5Ce1M7iV&lz-@+%rrLLmjT0I4{UQ>S|(02g!L4`3&{j82s_d-$oXrs@O8zNw52Xl8a7;E zhHF<^@O74>16*j1B9!yx=jA`)MS|y;`9pSnd(_II7Xr0q@cylDDulK2vgMscT&ys!VB_tX{HM}pR!K>@G*0%wgH~Ya(4lCF-{{Vy< zPxe=zq1+Ui23=kA$9nNCD)H>~OL@_X?ISontI#hzV>CfzxRz9d_;~6mFfuhyg!2n; zw#6!3COH`@MJIv&9cfyev!XT0_o;RN02kc&f_r)I%EuHygaqXN zbw%&&T~rCz@#2~R*9_5o%7B1z)~%7cA;t+6ocC5I?_7d2(={>GEOE`k(-9!I+Po8y z-@Qo+GNBG~NzGJkQp=&ZUOg$pR+mXbEc41{&A*WrhQ zbj@DqKA^24uzlk={Hu$b#9DAhRFRnbEiZ;XAYW)Z{>HnqNnG^&MJI8i+I&&)*TWV% z4aL=^n=GigQ|27zyspPhh37~<&l_%Sppl+w`j^FBZ&I|9+C+^~QHH?nT>ZYavPk7g znPfwdNa;yj4_UVOV`kcWUECBxIK*l>HR~P)_*a$=LWC%)@%J!#Sva!`9wt+j1+y`3e1-{`D&O8ajM(cMjk~k+XAgacNN{LPZ$aq zay=`Zyj5aWMJ%V9n$mY=SRq}j+XsP24GW1Fut-;NJx`@5+X|2dWn5v90Z0UM+#2;?g_<3 zonVEA08Bx@c{>sa&xhxUQC8gmXidu-4c=VCYBc4RTbq{nJ?ap0TvzqPez)?iPaXB$^f&DB~cC z@?Wud^TQm&D_+|n=#AzAK8Kp8!Vq{rL)w$Vema^fkL<4$qrrHmXqA^4`u_lpdOEVYE5^Z;jDik9u4l%c60`9g zt2hEH^k3afJ$(2t0-czJ2(k;HL2H>ASL0+HA*+f6FuI zeXG0pf8tA>Hu=0e;sRrp4%nIh073Mw@5Gv1TE>faVK~algemkrjcZD$E4ea_)sK>T z8hAWnrPM7XvAv$wafx7Zj6KCbE74Bq=VQBZP87;eX^3}TX!=ug%_uxjAx9#R@Oskc zBegO|5spS!o(HWk8zb!psq_>e+7+Y$rEj`DC?u~eGb=2MVLx2QOz z@u!7#9}a6b8hzZiZ7Lt#Ht&_!v8^8l_yXryV%M6Cmhb_c+p=@*OhzQ|7h=VjvFb_A zY1YvgPF09Kj%n7>yb|5pJf>eFW{f%R0qa&V%>xzXnnc8s$ivXFG{68_c>oHQ!XZ8F zye|G)$s(a_X8@kGfMB+t$`XhqF_VD7P6??lEU)dYgwtD390&NBNEP%o_K3b3@XT>U z1lIAOXyw{DC$X*y&Rg#gUZsw<&_kvcTtJ{0~tJoyAmuw4-;5IQ^2{uqJ z?Z9zc{{R&HE2em7U9+~*C6&@>OpY0{7oOG3z?)YBfGjZ2H4Bb8=~9K~G>(CW4?{p1 zUO~B&9S|N4de+U2p}-m12YQV*p&0-HR-@D{?HvS?sx$r7KgB={xsS_k56XHPt=_L) zP3Q8&dsPBHY)}Bh)0#-FT3JFwjPf@{P)R?9ZunQj_d5Oh!3I(h%(EVdKgPYc!@d}> z(iKgGqAMuo=2gs%^gXIvtTc}y(fkRo-l|C*hmwc*?ieTNd9CO8W2=PU_Psry`=Q(a z0Ew?}bDANw`AH`yu%*n(vEdh90N3GCMUqaVyfOy;I@dLMr%z`mmvaP= zzIr;4Yw5+bAchNu9S=&6RnqM>OLGpZZj;1DH-Yn~(9z5mK40=r(xQ?)AA0S+A$UIf z!{9L8*2p-@q|A2_ z^Z??h{57(M`^TC@H!2!0H*r(Y;AB_TuA~k+4#K(W)RJ~ZBz&9VzXfZa6;+c{g=Ds4 zk3J*0e;-Q061zmGBx4xlE_nQ_>pvS?LwDgFS}T=SkL>P#Zo~|OUnN?uVj1M-s*Oi2 z7^J$65=f}ghhUA>LEzM}-(5ushC8X2Bh?kiAC)6S*f~-vtc=T@pbxEXh-YEpD{Clp ztKC}eFFH$OlvX?pb6I{O@f?057R`BLArSI|sA2fk%?@%r39Feg%V1-_O2W}B?>t3m zx(l0Icpy6zPS_`&am7{1TAdxojbf4*{?nmbOtG#b-RM0sDl3m28}*6{zYg2^Y4;XR zKpw*t&+GR$P+gmA^BX;!U=5uL^{$%JN0(ltg2m+w-Q*QAM z`*2B;fJQPs&hBGDpM2E8<~apZJ+qoblt$wx8TG36X8P9p=4}MPR znflWUTxT0sKU#F;$ON-FjJHKo&ME`tbrMcbwrCjgE>3affk=YyouV>3@@hOFKYnxd z%{(#=hEJ%?08AR_9z=BC^rCV^So~@qkpBQ2zfNgLLH__fe_8;X3$DT{OkNYgh#z{4 z1tS=jAB{1RGBNwo2f3gLO5Hc!XtF&i=-yx{C;_Ska}eDQ;sL={H9G+?4ITq}`WgTt z-4pGUjDHCq)~pkeRhKe@9O?sqKYCF9QS#-^3HeE;A{nE2%RDE8_m;ZtP0XGX(Pc&4 z6Z%&+-78+l#drEvoVL(g!89@Q71tzF6Dm!w>e1gvb!@RKMfYPM;}wl^`lZb8a8}X0 z#@s>A8Lp!1$G76z86nbbE*3`GcB%Pm8un&;nJ4nm42LBbpr8T`Q(sLX^uVwSCvC(= z2|t}PMbYNC*6kKGlt%IcB9%DDdfU?cQ+1};t+l)s?0}P(T%Kz1@xG;xmMdjGp(qnG z^$i|)Wz_B9h`L26I8I0v%gJGSSe3K6ZrKr<^gjx_YBK6K*SC_yRBn^Y0|u`RYe0oc zwEBVP?*rDDk>w)7^^1R^T#dbcQVlG&vdJ2W?Brs+0#N3=KNDVBO*AuT_tUE$9bY5p zY8?*x&`AFP+fvT`HZ*3WqmVjT<2rlff3RvP;*QyZ&u++1VzufIs(5)9aeM4~n#$BB z@U82sP4@O5U;e!o3!HEEOr|j))1PY&50_P@g(6^*TNOFR3iq!1{{U0c-p^)}b#kr- zF(Kpiu42j2^+nk(=z)BKvsw!QGRt>@Yj*HH6M8;R-q(O|nc>%BHxWd8t2v1r#n-TwdzH2X;} zaxJXOZR^0U+r&D)i*sPhX&u{3+srrv^{!hk33{p|k$S}Yf54m6v*WLOpY z0ZKHR(r~tKU8UBy;qN9v4ZQ0%K3tQG`}16r>b_mhU5hSrv=hjncV%&<-UH2}ew6pp z?-Cc8?Qs$el5xd!_WmZ&3`2gGJ1`ub{{a1Z)za>CKN3fAXKib7Zs7^ZZ~nb8U7Q7$ zn{|G>tu2;Z`+-*5!}^ka>nwdpt0fl2j5h4b6p(Oe7ZY^zU-O`MDjge9!Ofo^QBi+l z-{6sFfPDz9Ieya_UpPvn@;78rFuIS4eAL`BH)Ljjxruvcab$`vt>@l!my-quto0MX{l**xrQ~fEw+2r%PZ{b}Z+4ql>aZ;s=IO+7IaIws;o1P53 z{VHV9%YE6n_Z8Ewnp!Y{2bej{NBx_37JRhGKAh3aI~WV0?l@V&KT4J_4~Jk3<$3h2 zL2W!oE`)m3t8uuUxiq<$>`;rsOCbLMkHh}}d{wBt4vt1|kNxvocEMFnNfo7MwQ-Z0 zT%~KV#3}l8%V97 zEK)Vv3F}s3o16k_1R*irrB)5nkjrZ5#Baq)%^Q8(VyKb0Q^F#Q`mFYnrV!lhL8YqI#M$XQL(9w@791T-GIX+SBrS{ zzv61-a5q=8-LXW^TJfJ90XC}G>7IkNRXxd;#!i^~gXcM``*T$E$V_{~cl9-@HtoO_ z&}3AaKiw5Q>wt+JueQbrZTKIZdPK?s5_@x8CYlwsJeC9JC-KchhL3#sOQ+3kZYG~N zaq?&R*Gc2DMwBu#41%lp71gY5HXe}<^#1^eB>wHG3Y~0hBsh^l z{{VqjOFIG9s@%@uP7mYhQZr_41H!UPok1cFMnEzUf1M}x4}!qJWFJY7_}7tm((Yuu zw*p4NQb-5AQLw#`D9g4_si$Ec<)&!<8G}=|lFCMMr+)v=~i2| zBg|O;0Eg>eGHF*gP5!1r9fmMEn&@FVt&i^vH!$uP^9m84#NH;r#PK_UMDT6xJnwb1x#@HPGEMkn{8{FJJ54rA zXVIlbWZcALk_Q!^sLyF`V@oD1#PUZXxxXj{9G$+#wX}N)Cv?@V$^17aQltO!9vU^Nl;iR~mc=>BMb*srlQh>dG?FppiK61Q&ffaUU4t0>tC+mDF?5Ph2U0<= zX7HW0yl_u>JbT1RyJ;B&)xoM=UPiA5nF}kn)i~?zK`&FlfKWgnjQe7&PX)Ydm6W#} ziu9iq={l~pbr>2##v><@fNCv2OPj;il3ZVDD=bF=jDR*NTrAH&hSC{OHuuT&9Vs5t z3=p!he!zxbhAUCWnBSEG zJ3)=i#Cunu=|2o_bsHgbz9_d0pmX_teb?AUyiurdyF`bmpibv4b*0+r+J(dx=!~&BQ26Uk z4&e%`FjLqZ3Xleo%Q4Fnlb-bB5dx&544$O(??ViVSpit*hPd)7wLi8g^a?5OCz>IN7VIiN=Y2Md2z7M@gGWX3vUnrWsd-QnqWDdU_~vS;*kkc{=fq%j34P)8z@Z7CE0&46^EpITF#QyPFfe}lGy=f>8| z;1!4${Bd1gi(?;&{xNDZ-36N7)y~jI7)}LZ{0ZCt00~sPy7@;Hz3`IhAo2dW4CDzV zl0cyPhOaiWe$eTH_fKae07=5AAAl7?-&@kIWHG_0+Pr|{Xpm;E%!w>=MBwdkRF7j` zS*rXeVJwqq+LK1alCj7SAMhbqyP6)X4+9*7>0IZE{3E9LhTV*jELVVhlc2%RzpZ(E z8s~~U4}6g7>nyf}^<%kMdm8n>4ETn}#8xYDWaD-|c**5W8-~Z9XqwKe;EhoP#o+OqQ4;zfD3e537hi$LvQrcW1m%%Z=bZ*Br#{4tYt}Jivd^fAH z7Z4NWZvI)JX`p$Rekk~4YI=Y6rI0JAS`FNFbsfI7f8p1NS6|Sh^P4x8{{SSJ>U|A$ zWCN982qOenlS3Hrf5jz7p5L7t0mOV_vRgkK-V|M{I;_8m9RC0+;l?vw ziSg3n3A|ws+1+1lun)B72PVAbc&|#9u}3WTB=@7eC)SsW(1B?^se1ILNa}+udF@RA zNgzbY{3u`Dvb>9#o9-{AHycX3DK38M9@Q{Hq_l@Jo~P270w_$o9nzks(vYyFG}1Fb z4P#v&!u>=0JIB`Z=K&!kk6PylJ?iI$B#k^)5=RQp4j0tZLT9XeLzc_Lx};Yz#Vof7 z0NWCl01nlMcX;|XgK%TBo+n;;LICvUy?^0mpKRJ2+(`;F?JFr_Il!$yh?X!vfpwJf zlZ$p?$8pG_%ty!&Ol~Bac8y~)HcGFpP7OHN+*;ekH1U;=e6lxY^`;6#98aZ2@)(nN z&Q}CevrLyBQ*PmC1L_Mq_%#oO_WuBCaMLsk^7T0t<~KTg9%*!Gk%yqJr{Kk`ckv?J zw30;{he+AD>DLwO&!*Wr;jJJe-30tc^}|*)HV@BD7M#{{Xaj6fvH$;k_Q;N7Li7vqPMNET7(P z=DG=WIIS0D**pILgaP-3L#Cp}gz@ut%}sCvg-2Cx<0CbZWvw3Q+*_0@)rmlRRo^iY z@gr?NO6K9y?cmi`{a!_ojk`m9zm;ow%ON9!>p&JP^*cM;neFZ74J0QHF^pBVL}<=W z&JRw;vn;Lb?WC4#Sfh>PIdY?^tC701b@{#M0=}Vb9nG}XS1|);GVO8o?_W6h!$Xrm z*KRC`V;Y>s#C_#G4Sg+gGaDQO#d$}@3q`rNvc6s=T*BW@qMSs}H_*-frQ~|1oQz)0 zgoTH1t$X)|ek^!@Qm|90T&;!Lj58-4s%tB`rjxdl$tIiT3)Hl-f^+S(+I}*{(>yBf715U51}^eQi0iXc3|r`P&ET zD=$;ibqyl*BeDa$IK@k*+Ft7S%LG%y6KyO=OmHZK6al-Pe}uGq7qYp!*KhpK zC9$zM1YBiPm_ftXFBoyQoJs%=Y5yV7oqdZNb} zm2$gCAc~K|TCDmVy~I&zcDHb}g@eesB8RBbv2S0sVI|e^!$GwnARbA@W$4=8ryYt# zZFo}H5*9W9?dR!M^-W2yuV$X*W41>F_bI~gJu2^que9qOA{CcIig~$XEQB53r64I; zTum+H(#b0|#_aDL8nZBY9iB|H9;|wrZKkIjy8i&$W7EiSSI z%A}t%Z<_PLooO{&u>VUf+<5$FCHCvQ5c61jny5 zX6GOcn`%j}WDEl`WcH@4ttrAO-RVFP{{W;8r4D*f1gemf-S2AJVi%#kIp?DFI>Di3Dg4^O4q=8FD7}5+(xE6CxA- z($n5pWOp|5D*$jnJt?jg{{VQc^Dj~BK#80r%ehZJ-9;keRr2mW`01YXh^USkPu?7g zvvU+%M4Oj?ZhBA!WiK0qnB`C1CZsExV$8CE8=M?e)@J^FueXN*n z5cz8pKG5Arto>(A@e3?XuH0Nkz+y6Rc>F3I3rN+ZyE5sQ63H}uzyqx!i~6))T!Jm? z(Sk@dE{~)~sRl`A5U64EWBS#E@W!;<%V_Mw)QXZ%4Qq{V@yBl>2J5xJ{ zX6d>m$-amCHtv75hW*|M1RrBS&Hn%u*jw7_5;PJ9%aOAmbMdHj8#u3SWP)`VE5YEc>yH;bs+GTv<_APK8^(z5xHri>G61LQDGEvN`&G1kSoq5SVhtl zKuB?q&bO~THLTddGf8ng5IFhPIWiB_S3e$rw==A9%_~ah3zLkWtpJYa$JUm%tzz&& z411#)Sin$EuNBQ%LbKh%kB}XJ&!9D@4}$gVp`002MhBTFY*oSF{a^TFj1kc96j*0N z;hzs_FnzpvklmJu^57DNxGVT=Qu0+qP@b6YS{EJ%)>F)wN#%f~w%K}$=4aAEvn$-r z&(rVVQD8@;c!twUlfgP{@hkzBJY_N0ze?x)0H~U+$CuE=YQ3LgGnrR8Mi_}o9^q`DojU;fM4k~R}fqyq68;BK3?t77In>F6x z^b`Tvc&-sGrGu^?F@Om5rg)`YZ0s6D+RA`rj%zPQ@g>cbq*nL#(A4@%`^VA2u> z2c;%bIv)wx$9OIbfbLvi_O6X|xcV_aTFm%;f|qD{`IP3nlWh|qBvul7nk|lSX%U9` z8mCJW83Z^u?TXtrsm9uQw*!_^X$;GP(k5kh-}IIYOok@Tkww@@)m4sKl)2Qf1rYHI1zC(wFVPP;+D85JWWY%&Kl zfalTKR4GGKCgFk**0Wp0%f|+yHsMbPgFwh5WIcNNRHLsH#Sq z1`aVvuo20{G_X_GG{APznotT4Q9`h8PAW|CK!&MODM0}6GfX(oTp9ow;(#VrQ|xG{ zwvc!{(LfdhxE(0-bHNp5f*zQr7}qq$MnaLrM$73_lpjioffNB;@M+1`h8*UaPC8No zTpEd^<20Md;8Esa^FS1@moehJL&nks)SZv_$ggs{m05aMhIr*SYjY|N3sqCxiELNV zU(OC(`A)xey7i6@s#zfc6!=%)E2B&Z& zxt?r+z!GAZ{{RjADGX%&wq!o@3iCf0>sRsK#If8u<#I?o)+}13>)^cZe!VH#f$u&L z@NScDt3>wmNplu)^AJXB-8E@68$B7c`}cv7qsNv;<~(~>##$$dwOc6<*)ASD@JgPa zg><9h4c?z>#x)mrPt~Uc%=_4m26JAO;ESU=%>=km$VPpt(Ja5=8|^1OEW6+PYhh28RU6sUoI(kN&-3>KaYHmpVla#B(!$65}+i2Sf1c zT{6lUq}7BHMtEeD57L|BOWiwA)fi|)%d9JCFbYMr*Cnd=;tRvb5>;c#l?p@U1TZ-RatU7n~uJ7+yIZ z_1oV{`lKJ|H-1~5m^c`xVp}s}&~z^iS(~fCC1nFGAkXPsZ;L!f4zN}W8*q>z$Z{}E zZ}{I&x?c6$#pRB&RW+zSIF4;y_&wJ$Ua@M&RSO zsHol{5X@XC=|ZTG2UCd$Z(3k?ULI1~9sUMSmrLQ@M&8yNd2X)aiYT8U81qMlr}F$a zs6TNL{#C`prruttbb;hjcCI_0N|uC<;_JnlJ6+6v+5j$l99DOTyho*7XpL(H;ycLT z;{*UKi_9qhg!rb$7Rx(s*vl-qFxY z=4M45Pob!_-8OAH-%pZqn3Nn4a!=u0{ggAM%uOU?$Xp^4mr1B?@j#?m$0ohl4KK^f?JQL1=?^HjrJkg=yk zUIj3*+GtNMo25f}sWj3dKqH9;?0Q#~_@VAKZxKD@<)SLs5xVUmdska;<16@W#A_5K zBU~;;a{83_8lB@^T@Ynq*kBK87$jMWZORlJ@lIo!uL^AyFsUpl3BaW$nEBhqD+p}Y zrrH@D0A~ZGN2F^Fei%xDMmVaMStm741$L8U3KKuw=|CHI6A2HOA1&+YO)DHADCTD8 z=}Q`mSXE9MQ`(dv`_6JtQ%qvUhp9Oysiv@LSOqwb9Xpdq-@G7XgdH*7oaCSZe*XY( zY6KEuEGm!QU~%b58iYo9F}t~-FP03F9OtR^rVZ1|8NTmj>?p7fR5CtXan(nqIh#3- zBl8}o(ubD>#Sj~h1-&U%W4DYk$#c+mGyp0sxWjT!PCA;qWox?)iJwCL+-n;o^+5u-guS14870!x_g) z!ZFA$O3D@9BZZT`J!k`c@FbB(DmqnFfkE@;0}6gr^{Wu{9Fy-+$%2ZS=WYDm@@pp57MO4<4C2l)&z740?ZZ5QsHw}rkX=-Q>C4MO2;?!dzb=ufqFc30N7u?Z~h zBAGo=vtK9ZIxXhAsHL8rADJ_ry@0OnUk-Sez$luVN{?=g1DK>F0DBQwP8_V#F6X&w zb{4v&oR*i-EU?HhLk!o6T|;;9$)Yi^jI6l7Av8ivG$QyLJr}su&SoZ}Cpew4G~A@g17&B0(I* zd-@ans^`HyQLlV8CA^K31AM-~*4M=gQFq{dNCnG8qE+@F{{Z^vYUmNsSlp%Ulov6O zQdAB<5nLa}%`9E`TkY`-Ph{b@4i3}7{*|xry6LXG6JpMCQz@UJqvC#{X<^{KL|(8T zXpF@g_hvmYRTXxG_C8~gi#FyZnD-|%(Miw%Y0K$eqR`}Gj=c4yqqQXP6S9GWDN9pfEAwlO#36TBB{{XE_h+}f{5Yo3(>FrDfjdnkn=Q6ib=|eVK zB+?pgdFFr@v8f{gjx*MlJ4>0DbT;z3=NVKaRoiU?SGl&HXlAZP(z zxHSfiZ6Ew5b~DQRV~tNevOQ}HN_*&LmRqM^B%hO!&39T~gf(qy2xqaj5(!7khUXvB zfgeD8GuJezyf_kFLfSbz*4(ck2lc5wCis&}Uj%Bg!>C(4(!yg!Spg)UrF{Jdh4noO z@@q@^H1wIiZL-{`BDbaZec~-+Oh$?=J!3r?XB_@CxtM5i7do{1m6fHen>?!^Q3{L` zpIWQ5itp3mZnbWh+h&Y@@iTQbVh@E{rr7;k{L7I_$5 z^q>kC1fucHdI!PZme*F?*bK@)O5m>}WsHvg)zo|`yz=!MyEklkskwbJDNA9a++%%~ z$N}i0tKaJu_97!Vm7TZ(G~8+%YoRTiCm9_xO_Y<8$}&0SyjXlb7FFJ6a(07^06NoKiJn{Fty1{jYc`7xZOyxGd~^VCYZCh5n%X3SH)$33 z6UILZ=>8tzY_+ZPhb<09-f%gn{4wFQ@l@YrvDBiqk}R1dVVwE_>T5=3j(f#kA(v3P zw{_F55XTsd?(b0ee_o$XzB8?fW++z;ART`S=)6OvE{$;}n{zyK%@^@?4^a4XL0=GF zjXK@nvyhy$@(+{`N<|pfQ*VxDx(bp=<%S429+f_keAdEftgdDeZzP3$4c~=y-Y4+L z@LHQozq4u&a)hk-$Crx3@TI?pcHbRfO`kXSeo;8aJ*kMRbtBx*x^2^7a_)1FYTvf- zZm})0Ne!~BZZ|02JN`9STe#C9iaTu%X%^OE467jLAo13=d~RjaBhwR3zPYzaBFk-% zjGRy+s(2?@E?Mm(X2vpH8dmULxcL3T3~&dSIIeZIT}T{%Y~6p~!$8$9l}Y~Ex+nef zPe3}2FTmQYI>oic#Bm5i10XIAK=!O(72Bnsi7z)ONP!z8PBX<*k5#)48MRxf8?f_D zHMhwjxxHqRQ`2$DpjHwUV0_uRbI^KMYvH{kOFkK&SJmK>ZL(|%t&DvukBpTiY zqtI6W0EM;Hz3_goXCzLd2j8CG{<>pkgWUK`u3JjEEB)?&#-n{p!O@Jimvw+UbN>Ld zR9ZfhsCb)9`$m|y@L6sthhvr_sp(k0ElaIB^uu(pnP7==<^9qrTr5R*d!gK18DZ0$ zfcY76I0vRHryB2r(%(PXcLBEZh3J3ps+&o%@Lk7-8shHpqSm~k#Uv$i*z7u24HTja zm|O&ri;bhGCp>10ip9^jXsdM%%UH01UoryZvyQ^LSJ(U(G({uRt_Jaq!7yyT$XH-`2+dZ>TBK^-TUnbpvM>h*FRxzd*Ta7{{XTrBS>wA z#`(a@cRZSdRgUr*#9DwsA}$6ojD1Bbj>khciF`jAZeI_EOyC|f{HrHa*7PkP|p*rV;JCL+L~gqTKdRYYO~sg$}4=N^~E(zYUVe_dV}jzc)0mqBAFZI8S7XU z7MC{jOxJe;L~c}WClrQDsX*|*+HDE*P~@TL!l1IhjkkGrOB9TLa=7HyiOUb0lT_|4 zNpU1wLyq3G4#t&@_05!?ZKTf=k&LZq4-snr0Q3DZ`kKYJaN`5-4y)-`VS%LSfrDIG7YiawomW=8kITBed1KGrYN;DtMJmY*#y4J!hXhrMZa!)NpZjB4 z@2K2=-*gRQS_h3rKjRUCLF5sG{Lwy!x)IJbqmFlR6%uo2^qG zc0t}j_Tbfq80$&J3@l1DEm$Vizqr}y<{D?)^ZXjjz?+$>pmX?=G`0;ykrXW6xvh-2Ojmo{5x&0bU^4ucf^c>y(<}RXto?rAv&8K)5{888TtH?@l8e_NI*RM-==q7{)~aHvshFge4mp;L@?$IuT6(oNv7xAVPjGV41jct>V)Cict82gyTH_1PRMzOkZ4r*wm zVsPCk0td8Q=aOnYyE;|Za1KGJT|=CM%>Y4`9kWG0YYHd<>`3WJ<}m4;(}|`MGfZQI zq~~y^nE~RE^UXE66o6|;bBbtgd7+omn~DH<#T!?>L`n6i*`Gf20b2bC1R?8QBjYJC zsWuNKnfH;~uL#7D+QO-TJh8=5_=e?eZM`?2fP9*$ z{9+&DTvv&FTdCUW2^2Rk96NKh8yTv9@R!`M=39g7m#1b2sAxV0fi;-pxwwwvJZ{RM z9XlHJe-?OmLx;m~!xf#8xFvFYrOq+UeCMI~!%(w6bVZqc80NL-_?M_N2bmV)Kro@n zz^X*E&ablut$7jvs*^H+J9Aepbr~XDOCb@DN`g$?U))_>APp-SFsB@vjbdp5QiKCq zB278(rZ9;ixqXMWYL&5dx-%Cn$2^nGShTg2?TcXwYoxvKjF!3rYH`UUHb&^S^as5F zWeeGg;JE|Zl3AW;Om0}I_ogMhxgWZd{`oblq-c}s7YPwrBMfj`Z%SZeEGn(Ivl41$ z7_AQw>4~H2zhgQZb&Dp&l_%qJhmy3C<}LNJd6ST8c#sq>;$$QiIbyYBxN;(wGd4@W%cbb>Mmk>oAyU!$OsVOIM98~@hw~FgSy0?|p zJjEaqd(~+?3lj_-RxmN?{{Yvd(33g89O`!WJ}bJG36e-~svS=qE1=S~ODMb_e3DNX zk;e*KmgBW^J|ytnzKbj(E10f~naZf;ea$6?i}tG~nI1JE!fij!m4;hs;hij&0De~F zV->gK&IXn}B0PRoV@B}RtnjPNs3dI>#{gjC@v6Q&p5AMlNUfz3`6yJ7YKb{E{{U7- za5GMUcS6`X0MlgREb)xf65v5?E1sFfB8w{#D(4(xqYHp5H8oqdzg1noX5)f5ttWM9 zNl&^*N{OPXyeLHJmgDJ8h6wD}BPLQf2CPaj zszDjgN{Z!?Shjm|O#n!XpP9b#>S{9Ha{veKhDX+#(uRouKQCHY8Dd2Ua_!UFfE36g z;Xo`$1Jafv5e$-%*PnW1aqU)>{{R!7rkVpx#IOJZ!q5bZ=1TjVVF%q>No2!$aSXS1 z^rC5Ss*(NU)cR7yQr;Z5Qg|KB04nW^k~;oopA37L%`Yw39)gJDE=;m;N#T7d`6Q4J z;Xn}FlH(n{D>bbPxh3)m=~|?5%_o)!;(#joKj;q&@|nn}?I9NL6Dp9*56o)w01>i# zR1y#xA7MZiRA!)(HO$OKO&ezz=9wb^CHl|=u%D55?M;{cM$yn5(_?aefK!3})_U_u z3Qn2idQ`}PB!?XQz36e*id=y4bAl3>7Nx;J03Ag@bLL6T2em!h<>%B>Lw@zRpb9r} zw+x*@rdl+Sk`+P%dBE#hEP#v}Rf$Jx03&87H&UF_v5vGKts#+|cdtwMTjG0h1fCz& zu=ckAs_x`-+Pu-IMlrZ`C0ud{tg2JzMaEWVujrO>d_3{9+}(%%$(c&UJ~9*@#e%K)I2jjnWfG4sje}(l}HEy&r@9Qg*?TJX3k%yV&n!w~`G$ zA+japs6EL(wR1-BPuZ=8q2igA#?3kM$@$;fvV39UShYouPtu@UZ6*fFCfpYzxvr{k zih3DIyJ~ZJ$)^KNQQtp>4(fw(IQFiiCM=E+WYcibs>v`WMn5EUXK513g_!V(Q$&od z=FE3aeSe053X!sn@}1K+QT^X)I?zsXO*EW}U@m&nW|VZ|n$!sCbWad!x^|TC+FKbR znlsgIK=O4CS#&YtsW>JKcZ&{v6RKNjy@&zbgl$>1z=V2{tOb{Z#+?DaWBM(N_5^+`rK z^ahYv<$q{z6Y6%qWYH~Vdw6c6-!lV(!#Ku$E5)0`)@BbdT|b?S=WyiLvV42+)!w;d zYpLnkxSrT-Xw-AGo}<>h3mSxTi+?I*n0%o&9p9B&KziT7FBD$9TDF0FTISWQoUZeo zxE;N#m9~>;DtG{pE7QIR_!@mHL)3MRT?}_u5W2$?ec-t2N4a)9CbAUgSkt_jLY{~hDe|dTelLf zSB^T>Zx7y`H&=#m$8>FG$5{v6T3}t&Cm~E}jQ!^)_(gd~jWw}$W(9XC z{nR}41F8IK*NS{?1+1Uh){_}tQ~UW;WGM8_aJs&rbqkiC?w}Y^{n1wxOJ_mgD5Hws zSyWN;!O(iw7SUhXTgx7r#S%x}*uX!5u9Ly~)Ot%_t6Q|mEF>0QcAmzmsZ#-zI4n;I zR>?+mLV1L8U9&vEVD4o@{>4a3dEnZ#YrG;<7X! z4>qf)!)FE5USy>F#d;3(fQIVUNz&ZvH=cBnj)p+MdsW!1brWJ%(%w(A$aii?vJc}` z^*tbI(n}Pq9ixz;AYdGKuIgQK?@jP7mo<`wW;-%R7!=T(vBkxsUP{r4tmim9W+E%B z_?H-r=`lG{79Re!nIDZch9O>bL)dH;ovZ2>8no*r`}wY;XyX_Z0i0vE&ml8TRDhge zKPqsBAMP*ZNqIH3owH3a!Y}t%lSl^vZk+8*`wnTv3%8i(=IlKwwiDXj+pWYoDoF!y z!Kox8G{#h%x{%4q6!q1vAkyw^qKY`-obHh0oYTn9O4zi~?Jm3@sNXstwMN)eo-xO2 z1alfEh&4+K2;sH6k|>dh2&V&+Q?>2RsdF^JcCIfY~{QfOG9w##Sfc|1B%+#SRW)~E)?YFtyb`*)LJYzQffLmyGdlq z$(&=`H8#C}Ypc(Tdls`#FKIye&%Fb=o#3nsd))AR@-v#3#H<9&FAiM4 zheXRZmM)`}w<&IM^rz}q@axmg(Axcs?Ax=kqyqRoKjJ|PfC=+kO!qWiL#yBwbO=`x3_Y7 znn>dy43mLdUMaJN&t94vblVWYQR&4~ffSRHF;oH|?~oE%lKksO7SEIsN81~{Yz z8R233*p4J0tv25JOPHmKA_U-Yq~j*7ka3F6yRccL^AMDje-fNf1-&rc+eMq=1dp7k zITc{O?$wbUgYE^Vm5;9M)!40DZanAw=mN%lsLe5Kn;+{Wp{(|fWRid$38QyBR9|M# zNgs~+rnR$Y@5%Yl1Lu}WZRLs=3n3pVG|encYiqLU!$?j~J!%PT10H05u4$=acZL!< z`kG*9mfeaoP^G3vSN!S!0AloJpa*7*)Ng1P1eW~jKeLZk{OAI~aArNU~$Nx z*e={DWj>_ls->i%+s?ts;|GcWwVy*ty;r!Xjj9feX{~C9uJ6u(67ooH;PT#IDaRu{ z4Kf}!sD1lJGn~@Bgi>-r&(@}b$zkPqpbneBw`L7v$t*TZxFg(Gr$ZXHGDsETu$G2Y zl@1*UV1AYBx+bL-rC}AsN9M*IeGO$b)U?fWf-pK#s`_(L?&*sOX|oP7KmX%V^30TcmLFk$kFLI~+rUNz*W9@SZufjOWE!IfVj zs?;;g;{*YY^#IO!saKBl0boc+B-4zFd(~Mmdeaqfc;rw8?8d{KW|1OQa>{d>tU>H) zqE?Nu%>pj$ZuC?sbax!lKn%$Ttu(P5(iX)yHhT1+V?!Ew!5;K{zl}0X0mT3@i4@S_ z^`{akHmN+&0%Q}#7^T=V^3ooh(gKa|+&LUqhj_kE_?x?9zD0XpsLkcD1Ldy{@p>Qa zRs*j+1}jQilRb*I&SX-@x20Qz{HCaB>OwGXG4EH@U~yZS50n9KDI=YS`BxpH-3Ttj z6W5CC=4@Nb&+wn+T$hLKMB0Le#y$SEG8#UV_;G(F{h?=2qBRTkrTBuS;I$e4GyJOW zg6yKQvq+##zq?X>&1ZZ=VzJue`^K_mqmLG>+yW>%Jko>rKNC#*Ln+9iwK-!M82oBR zbNZjdtxrk}|}jr&^~YNQ~;F zf;t+rb!l@Brz>7YW0lXCRQuA%Q#o`b`h$wG8yXX|s~Sjh;EqjtjM~kvnW9AUvbo@F z>zeVKT}fb&M;dKD=C52_%Q;>0F;UTTz^Wyyo{BtgVgCR=TBpdh|a&`>f~ zOm*U;&N}q2>%yPdQd;lTRtDqcEP1Vx{tpL;ZIAp0iwftSXxKN2j)d1+@ePR4H1+52 ze@fVj`@)v*y(6|(9X?9sym_x#>WKxtkR(Rii(>+gg58{&^*O0mtw0Vs)bZe+I#iZB zCp6aT+4QOQ9A=@AkDu2Rz=}RgdkU_Pwp{0+H98PH!|hb@^Bj&bKnU99^g9;bQ{|J$ ztzWj>%@>#@WtSYTYo1tKecqn6rDm=$OJvXml$XrOep@`|s$PlJiHdiP51}=3NLc*w zfFHQ^q+gjpaDBm~18r`WDAY}I=RbIp#a@Zvo-)wLA05SV_i>o#XvxAJN3~kgirZx) zIovrU&<2#>>hbSYW?b3IzO^e7U|gQ&l#JUpJ!t`#Yi>y)$qK%etc;*8(SQdPT~sV` zaoUs2AOHs;Z@Ka zR5!jL(RBOM96Edw701k|G17|)=Op&4EwGx~dFSrdZRM=Y7=)7@_$IwN*Tnj1jaC?K z;%DTmCO`Vr+piR9v0MnGYa;%NyNRN~bI#z5n^@OtWP4JJb_x#GBp#$1?|<;06w)V_}@hGP9(N@Pb(5GPtt(7=VBL?KxJ*J+30arBej}u-P=UwR^x$P!+6rr zr#72CO8`Krt$bByCA-TM)(DHoToQhi1L&bMm)uWWr;(IKO%-sR)OK;-q-6q{5{?3F#$K~%vfpd^Z zZ=@eJtc*RQG*4lE!5TYB_W_UfX1j0rPVc1z!(|2(Wbx2bTgLaxZRST6xe9(^j%W+B zhl0g6fH%^mJ}uUFW6HPP*kXXYIGD8k zSl}BQk_Y`VHE}e{{{Sa%*se32cG|QbIRVFhYpK-ZIc+GVSH&(sFW198k0w*r;oI4Swi@a zMU9&nGR8Uo03X(em*Ks@+{<|p^c%RZGr{joBONOrt4DNbsx#3|$HR+aS#7VbSaKD& zVE&?`o8k?Q@b?us5dec-FQ8}|iTGllUYH>EDbn_9>Ny3ky z=~NUSN^o8{r(+eejh2Kral3?Im*^=73$}T^en{xpzG!C|z~FYxNe~Q7(w)+tgR<2U zIv`cdvH)d0KiQ`iB$7`w+~=(n0B1C`(Tvlm0H!xed8pg10y=*WTz!K}d$iI%(&4Zt zWAci#;w!%t+-Xu9%YQ1skC-4F59d<&b5qlfg0^?p9#4}em`C^UbBbZ{AKI<8nWne` z+@VNfU;#O+BdO=IbDnswU-(sT=fh}t+K9yGzcu5n_j#{g_+0t6vIUqUD`W%LnwPNI z*y|n@((i8k+wCI8d0Ue!#1H0iOuM+U@XmpACA=2autYME#G6Ao=rAjznPigOfg`J9 zPEXRGr@Bk0BDl$uGP?u(N7k5fnAmge?M}rI&8KM~Z7?iy5AG5TI@bNP z#7J%dmrjw6*T>Hh_02~(1-!?M4c*T)>vAL>M2f8&gVumOgW<=C=6lrBFQnc=?uE$Z z*Xv%Tw@s8Yv}xuM_t+>S=xgRb58Zh>JQo0wai?8u3^+RvL0>@FTrKUCb4)FEGAk;` zJw+xXPi4GOT}$S>sDbv5qc}D4(;u0M?!?#Ak^s4sP2j7t)+^~W??<2#FAh*px{31x!r)Ug|x z8*u*s^;XT#jb@MZQ;L$+Q*9HeNy$|((UGL z@utj{2fjTjCsHt4jxldz%=OJfSJqn8OB6~ilWOIF%}L?CO8)>w)*!q#ip2rShU!11 zcb+o%W32do)$gsOOZ!OIbcF#{1L<4@I@SGZcUxs>6g$z=w{D6!T_!`hp7G6bRZ#~|LXgtxxjE4>Q)_;n% zOYafr(KY3Oipd}4mOO!o?YuR9mImt9$&IcF zX*UDXtJ+)5cW|&<#L`UN6-5IgCyJ+WBu=tJJZ&UR*A>60Xj-1151Dyt(IMaxL8n`I zUst=dTbOMbp<$Id89#*pVcHnuiDI^k%ZYjl>ijpLN2}S~-P~RI5WsLqT-Pyk16xYb z+$%)raLRbaYw3FZ#g2!6V+1k%nq~@Eo<>J%0hz}1uk@Pzs3*Xt=YH?gk zAlwFdCb=tX8#~L36-d0lG4?xyoS$seI?kIGnXBAE6OtDg$Qh+@A9<*Kq8oUh%0+>8 zt_Ba|RKSVm-pv~~;aeUb(=G2b-9lM`c8zkQ(4O^^u2?~3C8JxZ1@c>-DIuF$g|@G$ zG;U>G!Jx5Hm(_yoeMj8bq?FT$oC;TQl z>mgsYj(^x+@TwG<1$h}<)v@C(ckZ>=0C(8D z)4$;_*G34wBzvm=0EI0BQ#|Ne#FI+%SX>g^5x0u#d<&pnS!w#0oo>-2=v5Vu%uWw# z!5%Bu8z=3jpY}ypy73mY%!~b@Igs?)cH{D<8j@US`qZ{!(Adn-MCE}A-lL1dy0nB9 z)21X01B_LRe-ZeGPxN?iByyu9;2+eAl7ABG&@f4E-5VL@K&7B+QCWF!)g|HH_fVjm`5hfg>pW< zX%B;}=9Db{A}1%IU;e!&#*w3@crGhziDbO-1+LaPTwvsT^Hw!~4!ymy-CA5FM>u=(}*M88!02{nz5$qHrjuLbr@wYxtwjl$fkv=Fm{}CNw84`+FV2! ze7WiGNKd^Yh1*VFl=@U*usYH+de9*_O#xv#j5Y-}Yp9Z88_YL1LEP18 z9fBRanyN*tw+S?geC6qy0Mc{soYY);)M+7Z26B5=%pM%pCxl3veA@`fBxCfZ7cxya z0p6s$wYap9$8!vkIPAj|+dEnBXAoM(WR&z#K!$WRDnD)2t^WWBe!YyFBlO-s#!`j@MJC}4~yb%cG;MaxedX3(jFqX!4jk|z&Z>X;0OY!7xs=BNU zt^N49AC+d~Vy<_10lMa#KRU&?@m7fFKhqU|-cl-K;!O|(jY2c@29<|%Toc%FN$Y4_(A zcW}(!iroHG3paWG$)3X6l#w?t z12u6IE1IRGC^qx>4 znYq*zaz}nSsbfdf9tPCo)NRY4!BiRas-F->=rHE+PWWLj;6XoQz&!GEn(_<-9| z)c*jqYbIJa-yzsxX&*J!wAh_AhJ++2~GN5tqQZtLzz8-7$_x@}!L{tC{ zWdk)`eja#=5zVAW9+I#4*56}(%pAj_~RD&sB_eWZ4;x_yp;Y+vF z5-a$;weAT78ubqo{4dgNv@v^XrrvHiS1b?UYs&mJ5kiyWU|Dzy_lTI*J}^Cz^DHr|pI5`7I-omNE3dRAjPTwPpDigw8y*-B&C(onIj;Wz#8=Z<_*UEO z%*o~uti!OXC6({I18!hu({EX&1Ma>EKb3j?z-xJAicz)Eim>z|y%WKg(nv}cCmlKK zTt|uGXnaF^=7I}ISOPkOO`uH7d4@V4%Bf0sle;V`{xUct=}huLlQ`g-k(Ts(JIzLD z?d;=bW6)=TT_oNI*JF=xiZ>(pRmN+l@LV?9UXL~LPu?n=p7<3WhvM6t+t1%HRAa({ zz!dCF&o{e@YiZsqnBFOn;gN?TqEqQzpT!`JtXi;89L32U>yF0SMGR&j8m)78ENDb0 z5+0ReMaVTqbZy|MJanWo{*!fb(I2%RnDnbsIX-1)S_UL%wO{P{pa!AJx6+urF(h${ zdK@e50~Hz)cYP=Uv7p;lA|PNBRl|Iqf~(zJ{{RXeJDgJkZX3H(IE7?WFQr2#{CrE# z8LSH>RlM_oC-LuE(7xtkPc(pv=HJerfI3s4wJ6!+r)r%K`a$)@T@Wx$*q{my0D(q( z(}q6IN1>&Z4Lv6jVK3wxa z9i`R#!{COB*|teEf-rpn>sF=sb*06mB$ryVdHz^zae#4?UPijj)Wsq)VkK;->&O)lJ?I= zv5}!vmr|H*QhD;nuhy$++O+X14>ic@Msdvy1L97WnjW_uovrD+j3(k#@V?cj@VCOS zYQ7+hYZA$A5mL*Ow4Z)zy|mVl-#(>#hcJ!t$JD!a6+%67?^V`jxVeD<33&-9Ji%;28X53 zf2iBqw2Z!Mh1_`qCb~4y^=67jlT5u>&=SniHURu;4Np)ub{cdRAyPMO(m4CYr~}g1 z!Hc6w62+@UB!CPD03YXGbA2H?o#AE-R%Qi&>x#dn$}g5wo_6zg9j?vZux%8Jeh%Uo zz;UQ{}q7S@xru!Y=mbAwot+)EL4jz&S~ z4_YICF@RzTJoD7h2TS3o?I(Gly`095xfozFX*@|~r`Sgkv6Wx*MwGk3#RdUTd9 z+LjsB$WL4X&tG7 z+4#ER8LYIJ;&oz?o!C7qn!(OVWJ?T|990~?A*iq}6l*UJDOmotJBF1SLRgIiv)NBO+MxbJpQjwYf#{z+h z2NWF9^`o~m2uAzLIvi3!-@El7)0^+6Jt{c3Q}v(;Sl|LdrOh)vIiNQb0O3vsnV-sl z)ByAKrZ=TGf9FVBJkSC^T8c%=)STp=)b(B6In6N{()9Y*u6!xR%N1lSpfJa!d1b@} z0XQ}49}St3!p)-~G2AkKv~(q&t9C7-jI@xmW1;I`JbZJFpz(Z#@C4S#>OBT4-WKa( zmYM!h+Z@-He0R~GQPb^pyExiLfO&Hg4t91psauU6aiKZ6)4`Fz1LZtcquZo=0aDrM zxxua@P1NMm;A*kC=y%I(K|SJB=QSw@3v zl##J+oGuSIubjLCq|dHvRu(aaYe*Z+l=d9t*V1uY+Z+)u7yw2Tj8w=*#kiI9>xP$d zuaf@&DFe{g%aWWsaopF_R(6ZNRWl8SCi!r4(!OlHj7N1aU%DND&!%WYMSa96J?f?4 zj_wH{or>q76>o1C0+?V8f_l>#CYF)gTBH%NV7WOpc0fuK+N!}2QVvP0Xn6LZ42!6q zCNe@!N#$ykb3oUBX!|sta2VZ=E25GmVZf+Ope@fn)B#!x?c)s;pnC18P10lTN&f(R z)s>Bqu))En;+Pff3SC~?Mdh&)NUC`CHM_3CrD#4fReK>Vvc??3c?6N~T^@_0czx2+ z{NIRLEIY={&f#3ojV>*z$gi){YDS2F1PTIy(-rZeIgV9zBr=e|`Wp7{34C0#O9Z#^ z405c|fTC!ZaAEIUIHsLyWSiAsZ>2eWLpaf;vAM*FBl(5c z<*U5rvo|d6Zd1TFK^ek{b_O5aJ!#$sEpMdi_g2ac!w=nhWVs*+B4+ zRJMDb{{UK{q-xhXHPM#Pf*bE6bTk0Bde*IfZ7g>eGs_QG1Y{5JuRyhlzp%7Zk<|TYxLCjAo7+8C zS1)OnU7H#4jl_4WUJcP5YR2`Y~;1m;w-=iAfHdIOBy_S!v6BbW=ngBiI{AElysuvd7jc3CSc1O zmJN=1uU_!?gS0D)YxlU*qDDo^w?38SI*LF{h)Tv(kTJyxjh#=8(EXE1m#UaR&*5C$ zESNrF09U9(rP^wq7O{r;OBIANNE;Y9uN%~*7W2&jkbI<|Vb9}Dl8q^v+GQpd1g{)c zwwq~W-VxOI&AS~K#hZ+L0q?vQrG?xtDAdfX19w7nLOj(unwm; z+S1_NFr7Z@gVLGysUGa!d7I|lyK(0xn2BbJ-rTD;6dvT%>{H17+2HpS+v%a!Y~^iM z;Zj)0F{*&Ms%bQTEKnWbdUg~I8{QN7yhW#l$NJ9y07`#|!&&%__{AdvSe*T84-7WX z5m0N8U0zaZqdR5SA?%ne=3ZOPy-K2fub9?Z5gWun!}o4Z~Q+I{{X^EZYM-> zgMh<4*J0xC5o+3P;7e%2#5xk04PIje?{7Lw3zU%#RF2i#>E9405Ug6AoOdcXE;uB8 zDWX~^>;5Qzd_! zBsTbx&piC}`ir5{_{UzLG$FFCwSQ~joith4#uF>k9e%at`i09~ z&eE^}nCFW0U0xV`SD>xsk^cZmhM5mjP88utp{jv<3Vj(J zX$>F@dT~xd!?tOJ(dKi4+d=MV884aYl$(e5aaC=tq_*DDT#2`G0PRzT%>X#Jv84_V zW141Y6o8Ns=|V9_-5WA6=v3f}ZfS9zv{+|f;olowS;(;Jtk*W(1fRyA<6e_xaTVpd zPi(?SoMbSs2gW!x(s(Ogmq)%^c5K?tzz}*V^%V{yO!dMs&~s6rl=Dg_W6lN$q%sPU zg*=XFqag5jr)MMDlOP;+pa)@bPmHfXDX4MRkxnc-3IIkY){qhy6U{Hm+)#KJpalna zN-3&045`8NqJSL76&Y@Lr!fp@3+QM8x%}zbAahO;v8OWOdFen9m+eX#nE1~W2FFgc z06P&;mi4FdezeD2^`H#BU4umGJBskn6F3^Xvt!@hz1LGz7Sb{7rxoCSB_3w0C%s)g z$eA^p10GYMHGLHIZk0n%i)E^e)`Egpt!`#l)KImA_&n@CjdOk#mN@Uxov=Oo*Fk(r z+1vtfHX7t~7-W|IC0|~Z45WQg;TyQF?Yzi(Y#)VWd_hwu*+A`+SAHMay_S-(vB_l& zYPXLi5u09}O=ikR5@2K4{#91$(sn{4ib8t;D^@$DUrLwzQDYm9IQOX;<@(QuwF|vX zr27ro0YDp2nrvPdx)?8Edy&`VHRx9!Ken>DHsNyk&RF9#qv9XRcE=azPV7fF;lBz^ zscI40{hn9=>cw`q>s{Z9z7A=&T68nZeR5@RcIOz#8La&;$8ej`EyBixebqz#YhPdS z<(=iT%cx$iRx+_fs(3i65#bi;iJmZdLPmauw4p#gxUBnC{{Ts62dO0fb*8e$2`8mk zjV&>RQi8;R?Ouluh%|Ah#czG($e<6DuHpFCm_ugz4oyz z_Hg+ywg6mXKZR3|8?btlQAkS3h6Eo&Nx6X~M(@Uu&s^}w*(cE+-r`kV!wvIe6#X;9 z8ZDfm*7UPyI4&@2$$r;zyeYu+2Ar2y4fnyvu{omT*!6!H*=TnL8LzH{W-+uCeob&* zCbZJ+p@HybgMP6_^aM%+XI9#_Rkt0tlgvBS3N~ z41D`kXw_jk=~7Td7!*iwuTzENCacOoE-^q6#B!`bsL-6geJRK=ADVTXd!)fVbDCgQ zcOpC!f$LEwtK>|PM-*=vz+!ru^$S~F8%yxLwblKUQ@flJMoH$V$*Xv4ul6)Y-(a9u zxxVdn$2Jpfi?-mTwDZ+ELo_BO&84g#RApGCaVZ7j@pT6}WPo>+|M^PmnE zd$R=0$@hpH`c(Q(sdI27`$_o#!1-}rk!h*ump5r@+C&OpjQL|c*9qc#bhq&}{4lSV z0>8?mr%EgrA$JA=jFFl}Ky8_b=R8zNlLGxsNErQ;-?Yuc_eJ9N+oCk7FFShvX|5hgZFAV&TE!$40xgZyy^4s0A8IbHE||m zc#`@%-xA+kTSm}9B*e!V<7)P=Yxr%b_(x08w(1&ucXteVV;FDL*NR^Fe^?i<9M+HL z^lSQ>QmQB(;U~cb^YPs;L z>q)lOQe9#pI%J{{Y1w6E!(>E312bJ|NP@%hx0VIj;xNE>$m} zdy&2se2{%B)UG@c;u)dXOhvjJP0kHxMewIo10dUO>#?Qggo5bmCGjqV)+6kiL{8f< zrIA#QK9%S85aA>arAG6CT}_{WHJHX2+mqONwO0QCOS#i-lGb?F%_Dcp*#vs#iwfw` z)35I=bclSEh(X93x#vCWnY>xwRi1m8(|n&eDd}BO_(NB?jwu()Sex#Klh&x}-XFcv zHXF1;&UUWX%{v9g=u;bLBqH7k0XZecO=Rn@CDyAH?Hp0Zw_p+W#dMZl4b=5pHJT|P ziZRLF{{W$>B=AkfY3ERfV!P zj1yZk_#;(<&8{t8+Fz8PmCrv;D?h`Y8`SkC@|ogZ3mwGq?b3?{(TMJ);(XVYaH?;vIC;?_uz|CzB0pFG0*EY+!cXCcg=|zI* zy|+;P00%Uz7e_VWhPk(eo*C8xv66G#4&2p!Zuaj{Sc}XgMQ=e}UZdbytt}+EeMS~o z*E@ER`qn3h^jS4~rGPR=oRG(wEIX5E(%#u=7c#+kkiv{UQ;e}bm4~j&J>B)C%<~Cb zJ5B%?7200-6=9Dz8pXOOJc2MY`P65@R{2ue&8|B1ALCBKx+C%Z+;-Y-id+mVMBonC zu1inVBEN~50bQrPZ+uI5Jl!tZ)>XJjVkpd~Kb>f49v|@5nc=Hj%~~lp&Q3Nl&*Uhu zCUVAAL!5(ATkBCh+gj`+{jBGj>|_4`geAcVZ+5_X=lp4_Z{WD*^A^tFG5-KQw5&Uv z+>A0$AB|VIze_kw%)7Rl?T7p#j5xEn$NR_pX|mgRN@dvEbnK_DNk7($1s>P2yNPA-BoTki1uY*+LnE6$Y5;k~HWtdBJJY0G$fr3t=}ooA znt+Ua`2A^vCrBn?@l686?xYm^d0DwSnD2(AZ-l72@| zvQ|De50DOWJ5y!8`!Y7wC4eTcc(Y80NAVt~r^R)Ix1E)Km4zj~{Fv^8H(*6~LGvq| z?OBoAYd1HMGh8Q@y)llp>>m#RZ6?N6z>P^~B=81n#S5_;8z8T0?sY5q>^>LU#cX!9 z%Xw_T;Dsleq8Zirm*VDwrs`j3u(oUPhYsq+MtzTZ>pT_W-50qjpAlS8rJd`$R5d1EZPhlZ7|?At8x z0rSWHBD`^uTS=H^NM#%mf(Wm=t)seIS7@SVaxylstXs_z$5)K5qv3m5pQoE~8gBdz zB_KX9fhWCl8Mq;OoyNL<3wRq;*Y1)%F49JeIFjYp2)~Ve8hjDq{W5U&o*uIk_5I{| zAFXs6AirYKE}s-o54seEU&vGD5yoh`CX?Vj1;m7KyRL5-<37XMxkK@nM27gq2AgsA zaB=6C!6VmhD(CGREU;Q>))^?Xv64ca4mt|)>s>C!Xwa1<$oYwGhJ>%EA5r*2Uei29 zY;Lr>#+6Eybzz214_f*9>QMK0N>3{*j(^^(9|SciG;bWsVwsXFlw=@u;A9%iyFc+Z zy(a?`zy5@1NNAaT1w4MW8XhW6C>ZrLZqzXv+MKSWcQyB8yO-9eg zds9`8aA_Nw1Z8T*;_YG9U?hx!r|LUU1syS?w17iu4$^a$ z>T6SWdGA?vN#w{Qbs5hFwLtWw14zlBXB9AvpYfsMBbo+A8L$R;^rRoHDF-aEj1$LtmdZz&L#S&($ctUO+IV5+6OsAS zJVHeaC(OgS>TA)(s5hX9NW z6~YL5gPOVGi;oHhM$nS)em?61`sSwkmC()b&@18{K33xruLiYzZ#zZed!m7P1D{SS z8$y)6wWpn=4>@z6t#w+Qc6WX+yN>b_;egwNj2f;0{j zV|5WAf-*W+rucKg`c|u{U%{wD=Lmqrjng$H9Brnzs-@JE zUriOmI&2`0)zEl8-aEYuSr-tbg+OI2xyK!=Q^#Hy()>I23yn740hor3*s`}C_0MVA z`)O8sgks!D=ZtW1w~DBWMmIS;U{i%6T=~%{JY;5?TND8%X(}+o)KcV71Ly{uPM`(O zIjI)#z>ZK1fs^Y{lTgU+j2Q>iPz8$(QLkb$G-U>G0qaj=o@%O0TwpHRm>K|F@l9%X zdTFKx*M%DDe-Y}ZiQ4z*@DzXpjUTk_&43314r2=U6 z4P#N$G>shT`dLO&q#QO+*EPiG7g5{m_L9!qV-Lwas~dA3|ZBM_^ezaT*)|#6pry9Ix%Z*fmD;iI??;q$^QU<1u5{3vcK}eKl}J84CnDkPo;043F`gej1T(g zC>{{i&q$&__RvsO%nas|x)tzdvQPS`fA8R?&EXAR2wqo(3ZTi_;FrEgLgHt>b zA^D?xj>SzVn&n6_+YUeJp9YZ1fmKfxC?mCMSn9Wy%t_OrnHchtL6KTFI>4S4Ni?`E zhH_d6u*QHnywc>>hNY}Hw=n7YbH<0O6fEud*DmsF5;+NHbO*FY{3ru!pTdQ4oB}gg zi*2v7e3p8HA5STd^r@k;@dLOLX;;sVbL6&1=|GE;+)ig`-XaimY*m;fEXYr06h&dL zNSaHOBa6?(QpP zUo4hhFh?S~m~Q4O30bf*_uVJkooNgt&}<&n);a!oTl^FR>*MI&dps|voo zDIIvE1|GA6X*VChYr^%?tExWlPNu!*SyA>`K_GmmCcb^~3l`NRtEagWE!vF6HuS6U zCRdZqQPUfBy6)-@D^Mzd&lS*QWNSbzmB`LO1Xd@60*y){!~hs)>05g8mecM^{{VNI z` z{eXK+^VYIuBZ??-(yCqu5jFuog=;K|4>+p{eGFfC56Y0w8Q1M(pIK%K`*x0Yn!ROa z1OZ5V{{Xsc)St#WWvs?IO7C903UhepPgwV?3hI4@JBZ=*ZwybXT}2hN$9o<|-h#V7 z68svy({z=+lTk(tI0bp>o@-mfelOC^_uA$$+l{!v@A+3r;{O1MdUmPd`=n{D;|m!P zplqDu9+gRnpEX;M9hW&E7Pl?s3@Zm1$Tj48Op9#$&r03ayjgL5Z4I;_#Hcx7e)Uo%ol5u*M<06jZ~N#~ z?LWd=HG}z(O47)@fbE`Z%-2%7&oe*gTAFW&X0l-H?Iu5jwF0v$`0F3=lH4f30aS23 zs|_ODzz(%t(tRhC66#1Fg<aajZ9d(puRTe2W8a#S;)UYNtU+lR z-Q*|Dj>OVqTbz3Fg4B{-m~)O#YEpQr)1hYLtx08#Hu`IqDI)zgirTZ$bsO;J*4?BZ zm1F48lXexx6xXHdSMQ~0_77|FNW%jZAva@?{{VznTR_9?4s(u#RJMK<*Ah+5V!?6K zBDIH!bv@rT!8~!rYWQPYy}i{|D~Wdi2^7*oY@@H+$^QTduAcoNLO zbQe+!e+TQA7E#L;yka-`hGYQZrvCthCtdQkc`)*GpD}|6+V;}c+IEURC=yiG zDb{aLxm($H^bMZ0Xd0E|@HVv_yp1Ffk&KWe8O3T?==wH~qg!8JdB$l;8CE$5*j1kj zYPWZPY&VlMrD1Gj)OxM_HohFwURc&yes3vTp>EU?-$88dbZDnH5v}TOJfTiczgpLm z#=2t6kt|nxhw$wG0PEIGr-n7l>rr5+9r}+I_F~?@_JS$g>0Kv3t^xlLaCXgl5gY_AZ0Tnx$-o)wRzKl0Q6X>a`8ssZKgzuB#T4pmhDGc% zU7hxod21ZkuX77JDQttD)N?T9MCz3LrnmTji!f+3z0xqoLFX0B_{tcx=U?3>BSt(IZ@MHc&;LT(Ke6?9FiRVqM!c&3kqANCJjAKM$n~= zXZV{>ipNNvadaGvE-{SexlJl&j(GO4T)6pHw$oQ~8c4Hmp| z(m#tY8b&D)+RA|O(z*A$!8s)3pa!%7VL%Sin(F=`z<;;nc2YM& zxHZjS3Z^Bnp40(@MHoFP3}gNEG}s6dhCLOtO6L-w%9Y&AhrnJy*blb&wRnV+tcFl6p zJ4Wcs_mF}p$25d>sg|f~L+FnK{6*4l^q3&kE|S{vB??TO2FHBV-Y@u*qiH&1qfEMv z_WhS^Ngp5++?x5r1Gwga#{-Jx`l`L}p})1zecZ2gb1e5bl6hRau^maO_YnD!s;(ED z0K^+MlYtc0AHZ5DgF|=xez6N#Lu!Q&@vk)fB^H z6K-AoWMS=7cwf%Gxtw^GONJKh<@rnUlr^>Ddn-sZJIS=~wyUINlXR!A(vxGc@3384 z#T0SfPZD-tn+$6@^7hBhD3>cK&)pK>t$bzusi~C?*Ebj^0Fr;5Dr)+YzEf%8oe|YA-FnDF>Q1iib;~h-dY=-X0T^s_mjJ+ z4DvHz_Q|H*O@C{9aIr}+SRV=)@sFXXQdX6VxyuuhXatL?&{TlbNzZza9%+n`Y2kqD zQG<$x=(m=^bDAs#zwLVqdz7}6zna+SybRTwvb)a03ZCM*p&Sy-CXyrPrvT@Q)3ueE zPVC@%&;;1#flJzubmowSz#wOeZ~z`DohUi%aZcb^j(FiErOpR96&C3CJ#z(zFrj&@ckqX9G<){Nv?f}Yhj(QQ+s9Rk;GWk~=4$Nyw4)wttnxlPf z=0w2fIHUxZTJ5coiZ?>#`-;+*WSZVNBOD&0xYH;MkljQi2!29EY}!oD%e#+ZObhIJ z$UIYX^I#0nNjwuk2c-ZzkxH{FpPYe@dSO2GQt3%Yz{$a&3s)W|g4$@{YjQ(l3@Y@~ zM=%c=9FCpql}{~%Z9TSSkM6M*rD;2e^5F7#6ajsOOQ*oMI)$_nXJnEpoE~sZL`1;@ z7{Jf)lg(Vvm>p)vBL~i2KN@0ZO|0qu4$|(8wc1`hssU}JkSW$aAn>-4q+i3NCBn-z zWMR~u#~2-JE5ybh_)Bh~niD*djj^Y`I@JlZn~PWr%VGi!t%1cC6^?#8%a~v>LoDzi zZNwqQO-yyoVS=OTcWkS`1+!WjV?_527`I!Q7;RJ|IIB01&tYpL-02GxK=Cfj75r*j zEg8{jn#_4+)h?58!36cF9zV2Ol)5{>IT`DpTDzy*M)y8UR^saI$H;|p0QIX{q&L>K z5;f(ImaK8V7~4hcBX7iFIeZbL-CD%1(0rRuJoK!~Eq6pZV=eZ8&3UwjZNv@UqOS;< z{uZE#kC@Y(5_s!Ildo%bULTUn`wkgUAq_Bxc74g{XkuF&WG<5*^ zkd={|J%qR20~GMXgM*y%DS;u*{{TgycC>7ByB?I1He2TWsz`C=?o8nNj8g&}B6GBp z?N4^d#%PiFA2NbX47npb5kMP$4%8vjbqOS&O^;DVO}iXt9`$dhk%l(UNw-ZXZWHIkJ6=TPm{{V>YqJcGSELos#Br%oA^r?G{!qI1V zwXHnM9?##eU#)b0I+{x#6+G6TE0qU0&rw{?jXF!JSu~>=NogHicb{yguncR!F=|J4r^z_T5g+hcc`|arJgn1 zK4J*P4F`tzZd*Ca1J}$oB_kJ6@gBE+VLH9TOd|v)V++=_ycyz6KT4YNJzCwTf^`_$ zp|S1FY~R^wrux_BMS|pwpd%k^ZlbN*c zl3+e(z&nj>=#%(oTE0t2bhe5|2Ml=rwSg26{{X@-4abz5jF>D(TA`-7O=clwHp!5d zQllgvOi-Ab9jjZVuBCAVXDW_Bs(q?!sV2C)k?v3LGxKqZdfV%_L-b z(d2&+{&cJ{QU3rM9P}X22VLVWUh>9B*52l5l%T*?!0AwUPhQk6ZJ*A$mB?Z;Sem2p z0J9rr2ahZt(z3i6s9IaB(cIi5E?Xcu#%Ysn4{GqZ7nZFg#hJHY^IK<6g}=N9pf$~S zD)!gx&Z6oAmdG2&O6tDbYC7FOKkcBT*vL(UL)Y=9n@E&>+L5&z9{0A{{{XIng}S$u zNs4%w4&jAJ%)7YuN%9s0>s?NjZy(uXeV~>ZITgw3mvEzz<|*T`uER;s*dg~(Lj+FH zM0&#+{{VoB1+)OYRDbi%Kl|iVfcsOi$4UT* zMIRWAKkt!F5wG`G@~2~(QPzM3P&xoV3U&zp0QFD@9MA;-I~3BnUTDo5r~{hR40iWY z1p!8Lz^dzTj(A~Ox|W?R@)lJD9&?(b{g)zxn1J^cETPdj=zG+mBhE!q@=SbYrH!_V z23=6KI!F|DBD1#^;GQYU03A&rH3Z7o=A2PjZd?;tYUiHDq)V4m$4UUTCA@O|^`fKu zPI}Qy3OjK~2?msAlw-Xih{ds<)Xy-AkepNwd7uY0&7QO@*g4HYgCY?I$z=S6g&8()`?QHQ>6yU+qbE_0B%E?RvIa88My#uMF3V9ad4F%C4T| zOx3VabxZZ08l5+@yV9pl$LA2R|sTU*Z;i)oKS#rnLSaG_R!Q;IWW^ zdF(4c$E8K(w(stm$(D{afvo%HDu<}8_}U&ffmS^0ATa2M>M0EHpAtDb(~w6&`O|GB zB!Qat$#oA4!80w@rJG7RlK?0AQjK%MDun%x&uHu*UVloY#Bkmi(i>KPD%_NmW1gbA z4-@zgTF~Q(u9g|1m>sMSA48h#ydkM*(&|QiJ_ulsfJV^2jdx!VuVB@@IP%A}AheB{ zSg`q<7^iVF<@_5n^k0+?P$fk}8B)h9;P*CsJ@L zw$r{I8_QUxZA)Qw$zLxx{cDZ1kifv6-2E%A(Y#wVxK%B=M`Kik@6gcy0EKZ93^u59 z+xLI{dWKJjk*bpVk-+}|WB&lJT}_s$Z>&TkIaguZwQ?RZ)3rMUl3QEJCA0@Exz1Lo zo3n`4EXJRy&1|xXl@H#>TCNzW%8^ZzCCMa`d(xy^$Xtw`l!`6Isog>`8z>b8-QCUG z19c&AI&;#xOMeIX`XslDE41KcBMa1u=gysa4&SldljtHe2$N6M?zE;~vanXc!+KRY zW_z2NE+=yHNOH`2n!9VFY8O`t7uhFYsu5TGUE%ojFR?6gNYY9PaL0gsr~?o#L7*;A z6zI+{4N8g$BcS!wYkivC-C!_ZeP5NwUAb4!0`c?GbQ;9!y* zA^!28M?rOYqKkPJ3v=e}!nX5_(s(BIEww)~?ScRZ$*y8OKT%V?tY-jooxLjNi)VGH zUzp%R?A<})geG;~GMmis{j7*`uQ@fD4aK_ndi7>_#H}C8lis=;tr;~x4qDnZ(p$*` zWRuTI;^gqxnSSt%LfS}|zIy%?*dqqg;x;M^sQR2&aQcRw7}HmLZX;Y^5OG{ir=%o$ zl-99GnL~ieI5pGg9tXFQ#V%#l7B+67lw=Rikjr+HrPqzb(45B1xIcwe)TCIvU3nyg zfU=X3T^5z${Xb2+j(62!eTO*Ue_G^qhWlQ-eI>aJvPgEG#+bKd?-FXZms-8F@VIqI z!mwrIBB<*6)xE}^@Y>r%B_oCl$f}yIi+^P;yb>b3^DgvQ+b16NQujyIEiIaRn?oE+ z)q@Tx0kz>hVml2c`g`U9{I*b?$@*6sd_#M9_K`~8x`neEj@7lJ=(n206D_a~6mMgk zaZ9ZDUf)a8w7a10WVw^(1n>v708Me?T~*PLT)av~4#SQs8gZuS`a{gh(&|&bBLw}y z-Hmr6Pw?Hgn$LN4B2BR5gWu_j@|fj@ePA?&n%{qM)KrZfY#u1pQV5nC*&{_zsu73) zRYknDf=iuCQN_*S8Hrryd!Fa%UYVoK;JCD#b(cww;%_W(bxia1HRL`qds#eHcGgie zHkSzOuy1kax(%sd*cL8aus@_Q(K=(}1w@^=7y`sZ!be2Z;F(fL$mB%L))$3`X zeVSy0M-k3J*iZq@0CASMNL-G?rCftu)M1ShJA$aA0ez~ilx3l9z>M*Z^}Lok3fiZi z70;SiC9-<^PzN&<`!y-Rwq+~*l%Ma-=g#EOp5?(4MUHFH(+q}Elftwpp1 zaG>V5v=!upiy9$TR_wdvz@F804LuGtiobd84<4qm#Xu1p~Eq z+McNu-j8u-ZKc~n(qnXrqaXvHO66^A_v$wCgx=A}2v!|vKtS?h1}M**b)~cUEMzJH zIOFSGhPkfJV!5?@7!qxzGCGRoG~{DwcVn*rnh=cmrI2AuwtX{N8hosmN#&9os3Wa) z5^9%lTE!gJ)}K6lWkDo#tltAi{{R(by3C26Gdp^UV9FzL-d`ol9Otb-^RhDp1CLtj zJZz!7ReY!djIRJ=wR6`tZ0N-a2NVGYo2kh?)5SC;cAvaDS8?L9!@~M2Cnq@kF?|%EL#t7T1%aDMTz7<8K{(>(L|e=Z2&Jjau9j z*qZp_>Pwrc$(BVSFrc0|6(^9O4YCqXTF&xC*&k((7-%JT4N3w%jUxERL11yIL&vWb z@x8v5_j9aJywXVL0Tr=QUFdgKGYGDP@yJF(md_M(Of3`a2l2Ou(46W}oO&9kckv&? zR?C;aQ~v19e5-Nco9laDKIYzafQ{Z}?lD=W))2sDg8KEM^Btmn0pm}KS|+Wg-C0_a z>9CN;gS)l`cnio|#+qY3Nh+OwwO01u%b5kW!SavZ80Yh=77OQVc2dbBG^px}pYGLicQZ6d zNRV;QdcUAtMF)$lJjnNn0a3#LN4lzv(k7>xoPa5R&OxucUOS9MT zpbM*R7-u9@Gew3V)>`T}qgD`vV+UQ>;}x+ao4OicR1g47NQsYXe_m+jkPS3+r6!V) z1t=WS8b)klffggT60jJ~Y4Yj5K^a^I_N;9}^6Xo(*fCi_7_EN=L8xmNaq0ILJ7n5l zdyU(1ObOE105<0pB=+he+(F$?wwEE+S_!ph50}o`qqZCqTAXeX5U`(gB%cm z5L8MZ zQot7MJ?VwbQEH_@$tTi*YRm}&ty^i9YQuSO#v<+kv?f}O7EmXUd49ed7Gl0-|$ z{Adf6MVZQlgfOy>$i;4{9mA3Xh^&k16HW*)7Y^eY`ZO|;f8EpJR$2#J{4&IWxt(>~XtrbqTw zy5RlbDj8_w<3?DNODi*DmObfKB?>SH*1LZZ9URSRC4hxvl0Tgg@DIIl(@zw05g84J z`9L1@z>msjBN9M0r{J*@c&f>W8-ox)`c{C3-Ml)o2-G-y7Vn(aZ-stO7Fw|D z=414xfVbk299s3tMxhSlkzDAJKrmH~RmaksWTb7yZFS+F5=9-%vagckdF)4gdsDnoe`|fJNY>H`6^3^Tx_&3c zuG*|xwv?dI(488za2vF zZ*8-$k}J$L3u#$!QM2t{wc@D}?d=&ISQvtw9OAgSKwv@Sd(gogKKqM*xbi2_h@>~y zTz{lWf8a*CneAaec>xuVsM*6A{mS5X=QSf2!#9)3tw4_}m2-oZuT`}TxNT-1LtbCu zn^HB~F2J}MuW^$^@&@?M1~ZBnB9v_F80(t$Zx5DjBGA9yF^t!fSXoJVA&Mcnz{mo< z14-6qw6cl|n;CaTHi9}4QZ#jBdQ(WOCh;NdWhdwV0M@Ga9x5sEYCy59qZ1I#OS+eN#JKS?fxLiu$R*n;hMwaRhuOBttoCq%?ly>l^Ni4tEl@|9qTsH$B=+@ ztBS)FxsgZ2VP3{=NcnTcWq39X+LUj>`G$Wwzv2cz+47O;`c^-Mu8cS66!VZlsFvj; z>YWHG+m!$X+B#P!@ee<3wf_Kg*7t$#p6^H#NJio-8^@S8mixcDYc^Uq)+ALc=5H*J z$2hInqKTMpt47OBar^WPKi)Kkcz=i^x_w$ki|%b4?!`rKV{<6RGQ-t|E81U2@RsH` z5kwrH`RK#?(3)?9<0Pa@?p8+s02+M4vA}qHP1a256`Uq#BY>@pR=0_o@>y&DgBKGt>)SMu&)CrIQ;9h@usx~siaRGq-?@CSSyd>J9|^OkCUv> z1ptmmTG5W+LZss-*A+q!lOU@CG6<(T7Cb3Gg;0$PE4I71@{%%Ju&+Vz*MTmt3S3`E zAh#np2j(KY`$wH^=HAgB$2hL^d_%a7C5jkAqJRJ^RD}GF;oD4nj`pub)C%$kUgF8=U0vRm9H^F_IV>3O$ES)Fab8H|H0RE0PqN&$jWn zkb`j&A^^caKEIA~ro5`+_U2w2aUWAurM-L*jfeL%?oTQ17QQix;$Wg66!bZ+TjHeg z&vRf=fjdq>Jc{$(HvVXpgEr!Q>UWu^aMBWfrjuhxUD&APyD{XiQP@(jC#6fLS}gae zzXWH!A(|c=d2ZV;6M>!%+U$H|i+c?%c7)r`2(2wcSX~26)1b4rjhWYgM@r;;QK?^R zvM-p53UCo<7UY-O{D#-bOQG|w2m^su{u}}|0?o@{;MW@(Fx;#T;la&yJ|4Ka()P%x zp~&Mjkl9C8d&_(4&pjp)i5n*e7|mlq-eyE|I85*|Yp&J2Up3SdSX@I8E-=^})!h>E z*GSWzNi3FUAQeHZ5>p9kLB?cxu+-^5G?d+CrJecJW;S)*{!h(@ngv zNYs(@Dfxl*2A?Lkd!t`Zr)g;rh7NN4o}AMp&he{+@hk>L5rvIGKi#ZNX6o8_q=_eI zjE;jiHCtS|ywombytz4$^2Bfe^sM-!d6iKyxsExcGFme|FFXdIF@F$8cuHIv$x)(X%r~~z`+HW0dv7@kLz&ODbkvGKsZ3$Eh^6`>6 zrDQ!uCx^US6`WSlY0QEl)G*6_wU>3^UldGJN#~&cZC=E*yct>4@5G9Gg5jXOx|nW%CWEeSQLZB8np6) zx7Pv{=y#EtG!09$_#ea*ZQT?^4nZ;wwK8}!UbiMe1X%+g>jo<(PZa9+QteCGN+&`N zGgY-86zeiZ*6DvM1|K$CKZP0wrR^g{)o-K_h@;&5uy>B#YgIfCu0%;ifH>rS@NrzG zo2zOzYG-Sv4fjwl1l60L5o(7LTwP9X8=~&$J?PMSo1gH2>vJ>6@>{fo@=KbLJ|F8U zF}~9$w)6fKi4L==M1;NM!@2p53#{rK&o$)OJSyj{8VbzZe}~%BzUgi)Ndo~(lgH&( zd^h0DLc?5!dF8h&8OsH1n&jJ7z64Dr#O2swS8*g$#-V<{yprZqF&%eu1w9339yq@X z;>+U>*InUv4x9?-tfssd@_F)?gp-bVsjgvZix$aZa!;*7mduO`bQFpDi5NeHa1&oOtSD7?{J>X#ug~Xrb3mMi!Rta3F>QPytzTVDYh~m!pxn;P zcK-k>NPH!(Mj2e&F$V(=(z+c##@2c@^s{*~7~KNx{w&oG_)n~!cg>~9JBwh{lq8-V z*8DrDSWR&x3+J}j-adApeAQnY%X6l9m79S|+cqSZVrgmFmd10OB?{R0FX+YAe43YgSj! zZ*wJ?Dghul@Ay+ZJK~EE48>zBLo}B#vlEP9gZS0$PvT5B*V5g#n{o4iI*f2BYBMiX z@K&*9rM9TT*xD(<3gow3dR7Zr$!n@vNX|0M4gu(MU0${EA{+kz3^tJkjOfh6EO0>Q zHP6W^&v#_(P9tHF>r{lz&xqFBwToF8e8${!>s-2~-u1iVzYs%r;yA66HpEecB=LjR zv6+J&DX~Ol6w{h=^`ubN&h@6I0AZf}YD4$eC-A7F=-=;91hll%N;sfEGfo^DL+?Q8 zKmjyngZj`Y0S_6fmkz;59Xj-@hNENzeP{zF+8AM#1o zHtJ1z=ZZqu-Wc9LI%oO($mQOuGv5`j;3j*CzR;HuTC5zFkmqsq#TFTjs>yWTA=Dze z`Fxiuss{=)+L;l=o3^N9!C*NxwXE7Z>sJ@8BvKoaS+;gHU0?%~jwldAl7}NAt7?4d z@{T#j^Q*(<80k^X0Jw>w$X(oI_Mi^O#2U)Mr&t(E5#%CZ9{8+H6I8WHzRfkcQ16oE zvPCYVY>5n3^J+FlHi3}Dk&nWnwea?y?yhy~b;-%f{{Z#qV2J)A*?AXwO~gx!SysR*$z@XS?6l(jN2xxa-oCQf7c@0Ikh2^4#OKIJf6V(ttBAE!m0N z$2`|f@UAwC#nFe(3~V!+$zh!4x(|okc&ZE!;9>ezAv3S|ci`;<#C{;wpw*|J&le5l zqDi*{u6^sC@ppm+ua1U`Wpe3kABhJof-}~({vGkI_=aqJz>%N$5v%uZkK*eIHwKZ0 zPd$3l5#-(}@bYN-8U8 zYjZe#(8=?E(=%OK`1?`Vh|pWM(TtU)9y`BQPXd()oszOMs{rb)LP=ZI9qFb>p4ux zZE%iMs3s%O{uM~uTLy zM;)YT<}qFYUr;-m=QPg^cvjZ=+Ur@KUViF~0renI&?B0SckvL(@9kY5hBdpL6kI{4 zrs-~eO!4^|=wQ;kAo3XEzL`||u^Ig<1H{^0u9bTnb{8IMNH-ze4FkCQ9ac+C2LAv; zVHlF&v$Gc9XRSWx#8O{)Qqw~=;Z3UyNKagPR($>&v(xoES+)DgVe?na`3_D!E2K8w z3sfXt+zvYA@%mB=nBF1rFZRIGqPdB8SPqKcGgTdP#gl5xvdtOU0_|PLEsAx&g`m~- zn~5|VgEFBE%*~9hYo^xp&j)BN99osN!@P;O;F1s5kxs%mdu!CZhkAksy*U_Q;{;bv z1;>En8H(QFRQ~`74gNJ`TzD;91hczkKAFe!qQkkvO+0~@?96<{k#>RCt#y7cI)J^j zn(P>^niXNQ?+Vh2m~xi!{JDQlX#wZ=>uu(i zyPi=i9GnxJ(gMG!@vTzfIa2u#@Vfeo$BRDv_qbgV!J z6z6u3<;f@Bji=IvF;|K+gH05)3{Z2{ri7s7@rtfaDhVYUu-pU2X)rX)z~d3O&Go92 zAjt-^?QK@s%bEPbe+*Uq`}^jACAZQhn@*DYJb5Vl8y!LQu7|@u9@XTu`(?j}qSdXO z;boOK?fQCB=)nH~!XK#Mapr$PN#UP}numj-@~rUiG0Vo>hW`Kx1Yl~~eAd@&04jsi|tSjV91aQ0*>AU*}5WIS66W<4w1-O`l_dRIV;OH*Rwvx|n(){{S3UO((;T z6WyRYEQvk5-k+ssT>KyLe2elyXOH^sDCR@4!0K1ANi+S55|MTca&cMf=UhmrmhwB3 zz(vU>y%By5c*r(Iy`Mg_iVuT4OW_NcuWulS5fIsmK-i_sg2yAE+22Fr3lni?a~JOh z43QE1#e4n4d!S*Ct5{L^!a1Uap3JdBoSL;ii7cf;V~$|Qwgw05MZp%lAGQr?jGSQ& zcd<_u!<0-p9c#=q%|;fyGUb2+1QA`wg$J0^PQ1o=6alW*r2W-VRW9_Sa4=Cgt<_LR zYH+|fpl6(FzYnf2=V>FoiXeLwCa52U_nq}9fA87<02=jvwCoIXOO+3qo>HF+t^mvG zvFFf3{{YvkR^JZhw>)Yn-}cM@0Iyz@MJCW_QG7(XgzShX?zs zU6Tw_04T7o%zXz){>ipzeA6f`yChv-U6i@|B@y!9LF`8Y5fsXR`WcR3KTvWNo)|%O%2!{jSjGszE zMsq=LNe_Bb)$<(a@ZS9cwVZzwL6Y~ioL(YL;VJ0*d}Yk^=UuT z=O?+vX-jiCmMuO=m2=XrAp~c=RUhtkJ&9JuZe&&Q0_RSYbIoUXF3enNkq7Cx z0teQu>nz5~Qlxb6ReU3OE$-2|1TbUxR7j+KLE-2U+Stb$g+%}WI#((21&`Y;fd1*O zlfqXf^G)-yfWxV-f5)l~?Y@7yYbIJb4ekd7)l0jFRXAb~wQ8(NdiSTDGSXrD*I}PS zNN14iS2yQcogrxqWbgps){Tlw_Fzn|j(b<2KZJB9l)K%|j(_Q4(oeMc2eNsS-rlMM4va?paA^jl5$C_9$%y4p|Y4HMFJ@&__4^VOEM_= zm-VUuNcbN)rP={GbNN&4ub`F6g(^i@VhqBh=kyNf_$RM#* zG{k6bhCqC_$zMvTFdOng4T`5`=?jt^5_tO7&88<{Fb-$}*M__~Hnng7mC*s@?cfUT z4}?4|Vir5t;d$|r&g2vLW~|uUE{WkOu40TC0`;S#d5cU=Ni_B+bI`R9 z1L!)Xq5jKNwwXuD@i8EuaBIzP^y{52_Deg&+bSNti1n_|!aA&raH@^-WCmYauklG0 zHJex313YIZ)`k(@#~`EA6``ak`%;s@^{n(hwPFcbKId9RotKGP7JVrta#SbGLFTAy z15Jv~SF@T^I0pop=C3B2OrM>PVackWyvQ;JQR>2z1gu!o*vbiFL2l-|XSKG9-FIpU zye@fOI#&l1`Ej-lM%N7I239_~G=^A-pRYh1Zn;$h8OwC0_=j4w)VxIumhOxa zHA3Bua;v2-;sjG|_d+Sw_9+CxVn_2&K*Oyhft_}M!Ter~q!38KA4nVDrx$acK{;Gj zUWOx>b@VD)dpng;$!9_;-kBB6(z;v1>=b0| z=}iF~pqN~6b6FQKv`sNR7-UxA03qrtCtS+L+~DmLfXj_n?2gAf@&M+p8zL;CxRmE{ z;AW^HQ>U>f_=YP+JD~P)qjFSmCJmY2_;6J?mcE!k!;kHva%`6Sw`fqQu=Cd|`KEx4ETb3+@rRu^n)FRXuIswbbq{?CyTi z0yfbmI@a%nJSC*G0{Z)05&4|?NKOXf%cKI0X7`q#kPYa}mr?m+$*X8lEEctgY1+S`MA9H@x&VlsVe4hvlwT2#2+ z%#yMnn;Zj*0>=KKqWEJ`Xr|L|qg3e2Gm-d;*KY`D6WPMH`mtTA0SdvlA6!*!Tf&+; zcxpS{C0LTn^Oq-s*0A-Mt#ti+M}ie82#h4Pwx{W)|nSW^{2TaMCXc* zEP%t*&;*8;r+#Sx?MGT*FFol&;)BwYoKgYQev|@uq&;W>Nu?Bny#UYyvsLaTwuafK zzIGrS1r;zjBD1wCN0FZq`LM}?R31U00i|edF0B;XD#Zl9eTez7=~k2bIwlaqBuSIP z`kKN>8rsw5kIGJnndYfAqD^-l!IY_9O5?B6fI4Z{VZ}mfG@Qse{&ev`2Yz^?+Ke{ItmUAO=)LwcwAb<(v)4zx3Kl1($eDfr53QfzF6G*dkO%H9+V9C=~wifA5hg* z+QQh%h;YYn7(b0y)NHPF`=7JkN9D){ah&l$T(6#SPS52`%`S653VyY@;6}%at#RBi z{VN8hu)Uj4yN>GBg3B4mIL$OBb=LQqw}-WzS#0$8m`>znqhc}YF<4Ve;vuLd>=x4` z=zd&4a6d}WK0MZ#6Xrwz0Di>-$9mS``^ZTD0Ip(z9FD(bs9x$)-f9muz0BN@P=IS1 zO*ZSyQTCQ_#|HwtEpu7C)?PQgWhOC!v|_SGL#bZGb3hk#c)U@jS~NCRvzS~FxWZ0B ztGXHSK9^;6YaAD81;E6BM0u?!d}XZ13Zl-KQH+!n$MLSW)9na7KXxdx4NYqcD~nHu zx|q6w;w;%v;|Cmbis1pmk6PK(yi2O;Hm2V0<8()opaGi49VlZ+T+)&;O(%>RGARrX z2aZJ?_oV}zRDwPZM-%}KEl5|;Q%_m|X|Bh>IJmRbtd)YzG=CsH_%+8Gk_lwDnPq|5 zBvX)7;L}2A?=-C{eHX(Tu+?5TOv4e3=R8$U4Cwlmq_Aoh5ZhkFWPUP72yQw$o&+{*ywx@C_&f4-l5+=No_8Ut_ zxtD%PRmo0j=AEqGSlvx2f-lzCyJ;k1}tDAQUNen?5%?*M^Ux;n4?Cs+d z+evKQeq_OVo5Xr_))u-w#J}pK0g!>uJ&klf5w5OpVX*VrcxLD;68l!X)O7n>OOmY} zzue-I9gW|J4`R2PJom|!^1k65H?gd_^!Jh}C;rNmM9Y;6843m~7sVQl-lK17_fiIH zc2J)$y?VX2t$HltP3ly{GB%G&8w8F+;af)p_wgN(?m>+4(y#c+>ekD|b`sq}Ck7vo za7OIlSD)QZ@ZH_Smj)2*cVO^&s@Hd9#Q>7z%Ped*pKoe+&{ov!E_7@89!X`ji1lrt zuNBYR>glK5#u^bbNtpIkrPeRb)@hlD9qR*HFdatLWdb=`P;iIk>rzqE%Wr!fw5=|l z@y6hi%sL8P3q`urEM=P2qF7Q@+J!K^ENR((A#tWr{zvz$5# z5Hoc=4SRN`_S*Ibj066rQa@Z*JoarIo?qH$B%Qp;MYZ9#UoO&VQ4duPX(wluGQ{V# zFgC6{J#}MoXAIhkw36YG3!EwK&33vbjXsBSbE#@~F%o0O5s5AJ&3SOUBn6job?8aW zT8{GORNC^$Q1&cM0K)V4*V9T54CRFbr70ZJ5ljgniKm`8lL4KAjMrUr;JB^r$!$_G za0YfV;2*}h3vnaeLa{Je3xK4YVCKD2!ruDs7l&W8gu)X7aKk@b(?Vw(;mraKLJOI$ z?#vOw+j18p>rU2m+dB~nw!Mz#H#j6?D_b5Gn#RJ%S6kdkY8-$w$sWSEtxD#?Ti0s> z$q8?jU#$%a=TM#txSr>UJi9=ljI6l)g>xE>vf18C0!SrPI1W44ray>bgjv|!NS;Ko z1uPDBoMW2db$b}}-G6Q7=`D-z%AdTZlS53zb!Gd?N7kdavYS)Cg3j40WxRB<^)O zYRArA6AKrIwRoq=bI=jr70zlJJ^ih!&ozwA1D}<`JuadwW-+oziC;R%e^tTQs(kAk2H0BP04(xc<$T-d}<)E!H9C zM|9b2b)dIlc5#o@%Yf#Y7@1ZEzC0>Lvf1e{wH{w!+MgK5>lLXJLCIjR@_E7E3#mIHK>cHDTWaVqDtP4Qbt+CdY>eU`b85%}9p)@>w;+IDi? znMlQWoZ7NT{{Xx#jMe=wT+=Psi-;y~Mh1%o&Y`swjNpPntGZ>%`N4_c`&TTw)rHmd zyjJi^s_p^Yee1uUL}-9$SLGu$M3bcU;l5b`By_Jv@FRnz931@SytWt$@Z*~FuL7YO zTC(x;8U}VNN>8muI(yTzKn@0+8;Xn96ar`hP1KBW(wI-7rjzSH3e0Kfb5N6-dYS;6 zidu{wDcPV04wS~?mnM^_pbS3{5+#g|n8jlZx#niOl0%crId-1S5chg z)`T}o7cW_f9ZI+d=A==qC5BP*8i>Y0<2b4++fT_>BDrNhG030?lwn0kvm+ixXrK!H z4K7VLnsCJf5cQ-v#}wu`>rp$5an_RotO@N*1D?L8{;LBEbEWzj_7gE&n0#%T=ltzTQZO>T7aNdSy~ zResM?x|!4&6oc8iS50y7&MTXzxH`7hW1M+l{{UK+FNVsb6xGJz{{T$C`t?^rDZ#1g z@x&sxk@k_w!Z{=GtnFJ^)YjRo!JajK8CYPEUcd0y!#3J(rcKPkd|(!C0rsu0jW>EN z#gvdiZ42Dm#7~^6K2ADky;3E!=E&`&jR9q0p5#)I}ct_X{wB}XnIawBFl-;8vEHf=Ng9tj1C@M^W0fd_5-ng;Uo( z=@ibh#7rz@(%J=G$rl+NYX`&{z17W>kZp@C)Pc=*J|NK~)UB*1x0(fE7z8_DRx5ZH zQjjy7n?bvuyifF@p(b&2$qg?&2*B+ez z0EI^W0la1}E%mt185uOJJDfI?5&Lx06~n9UQRs7;^u03nIH0+n`gq#qz~r#cPL-8+ z;G4@UR-JFHj?i1aD=$p&hM}yZPHv%JUBHS>4KtdIB?wN;U?|eizB{GBX^KM?ZyH zzr32u#rKbH!Cj8hNY5Cpodd$r>6d9dx`a}YbHK;-rfVJ-`*x>sa}E3olAPf62Cl?k zQ;zXQqp53l(nRvcZQ%XmC>?QG`US|dmfma(#^Jy{E3t0_sLCB#7kK0a>OVSZ@Ei)8 zf3^?--(dd$8Y~w@U4O=xw-$3irX9|uakn_lS@>xV%`)|f`TVxaeiSEwEwW2%C{L+D z{xu$zB%L}OtQvi-ANG@`2r^<3Wp0$tS2Srd1bgSRmmSVzO%nYhHUsG7R z*V-?v&Gb<1wu=bOxOJq)WW?X-%^o_CYHu^kMZxV)?j8*$B%lk z9ML;S8v#ap)-p?u{i;`D$&sFD182;Pz=YtD(v_n@IXK)IbAec?GpO5 zJdX4M=pGxJOkRTXDKU#Yy0}#;xIPOHN5v zIj0{fZkeqlwNDLrCTKM|qZ3TQLI%!oY1mgYJR#xV?Y&7wz;(1Ad6$pEvwT5m4VJHa zYXNT}8H%p%PAk#0FA``*J3A{W79ykO#{)R-Ylrc~wlnMZk7ptUQasLhE#DL{PVB># zn*l-Eo$=m;`H_^7w2qX=c<`spPDl5uYe>ITMB9+lemB#5f*uIq5qgE{~$2jgqB1sT0 zB=acRc^%Kvq!$+RK(jQUAS49tXaU=UA2MJBY4=msl*x$%lW>252TJUGDdEjB{>iTO zSCP5G#)klXYcJv!gBFcD zj&s-w#<{ni>CjDWBQhL}RO;6@r4m&!2IC#*26`WiO{@4{Mz<3y$s2;ot=k;deZPk6 zCbGVtGJui!ilMk1bgJ6slQo8ire4g8vQ9Sx)SgCbHcfj`jtSti^1@0sox?a7#}qLn zWI+g30h@w)*IGO=Xtx#sG=xqv**sSewzv2kJ7cgJ6|HHm>VIyxd09f+{{RY%XX`*4 zx^2Jqf5a8DT!>NBFSx~Gc=AP)#M-PZ;d3Wb+luJ43(5758{6JoM3K9YK2gU4vixln z$HjVyk_hDa#tu7UihTvt=PV|Q))j>%W+#$QO7#sER6h+hAC;v0!EiIr73T{J!@eoL(X{5ZirNx|v-46zW^SFXYI{o6RX5$$>d)G9UcN2ND+&TsK#g*%WZ2`8YFfJAr@fqgyi#{w37?n zPX5K^S9OSmP^fqrtz84eucO<%QQJc%PX&ihYSLdGUgzbtw;%8t5(abLIn!X$yhjq- zmu8Y6>|c@(wP!@dj!j``HALXECmYb+O-I_@-3g@U5DLnetb*OSV>Frn79CO7W5%`fkDmX^%#P&UE zNk001Vwn*;PJL(r;C*PLIiUK`Fb0GAQQnGT4tsI$PUpGinnfAxDFFO^DFEPmQd5@% z_NIUe@${(9LEzPume@ANnlT~%9P>>}3*Aos3mqsUUC#RuF#vvam=vUsdCO$fUuMC` z;8upc;a?Q!caLeP!m&=Hb^!zt>Ika(FNeHGtKP$FX3)ISw$L|V4{~up3mWa?6((ud z+Ge4l>sNYCu4DUMz6mID2tJg7NE85ulQb~LT83$SsM)X%&`u}VnH zj{xg_6Y#yRxv1Sh(ak7~!?cD>^fkcD`hnEMk-G?#_0IrP9nOMO+Hp~g4%7>eIA)n4 zz~ikTEke7!F-qvWNmICbipIW`K1lU&w^e{-c?rSxn(%wQquk9yYCe06(0w6>P^(L`nc z09avOPu8fGi~b1LqS7ocBfNrQlE`+l4n6s*-aXP{wu;YCvv~-){{WV9_Ts4MUNE`R ztj()w;^HilJjLl$weJvLYnLk}%mgBEh@${eeFT=KSo>B#)h<4?A-i`89lJ{Z0Nsx) zXnF1tPTN-Z&3BqEpxPILBGh2Fj9kqrR(Blr;*nQ51hKzh5B7c9=hh~vV$yX9rAU^} zaLjNwAyN67>F+#U;uH}SNEO@ys8D>s)hn+X_>XLs)7!#~MhOZ56b7X0;0;%3FL7j< z>|Fl zq1$K*IqTP&S3=aN-UZaeZL;RhMgurkIX|Uw^ThVIW-FC3$s1vnhAX@ASB77~{wUL; zwA3cKx0tJ|vBB%e;<3IhK_KxY4{sLcXhD8@nqYJAYIc`X7@};l`*Bmc;<4>59VTan z&DLoT%v}7UwTe!M3oJ6Q@bq-k%%4h?kY2&#;A`PVV6$5qRs@Y0gI2%{c)vS}+fE!8= z6l1L>IQO7Jnmolq2^lmhJMgH^f7uzRE^V&KUoO_+y>S_)BX7bnCcUiBVdnX56h-g` za%$IrE-WnkMXJTD&R`#O5uQji?}cmR__9MR4;0S{2h3fh)>fn>w$(KQ_H*V*D{@ry z%{vO`Pw@hME=VmKNxL)bVpw`s7lk!O=HUQyd^w_8T3=lbzUyE ziF_rYOLYd@rCq#?98i!mJI5M0((J6>H)dOv4U^dMUWI3M;l|RS^EDu|`9Kxlj&WE% zG)9}lS`^Bg!l20mIN(_~!F^7C z)-MgL0L^ti?Y%kckEL-pPzRFTp$ze?xx$Q`XSH<=q~5zRYb%0SVE*jWAkptFnGAL} zIa87QvS}4_ejP)@jcQG=+FJ8r0UQ(aVykGn6{Y@%s!eqf`$T-B_Z63CVSQzL_MxWE z&&fNYIOn}|{t&qrI!3gvcDVi%$74c5Y~mK&Dd2SCr3=MRHr?lM0;3cRXOyJp12pis z=}yfk8K4IAG=`*QAoEe4C;_#%{JmmnCy_Y;lbV1 zSFY)rb(O?6w?}8%#2^JYJ*&?3*yg*}rimf_`@YbCV>Fr?W^!g zbvaTy8r7e}db}{SvROD)88~20KAEhmTUl;yqJlLhX;>VnYL5h#X zzY49RvU`sYyo&LuCK(%c@1d>)>GK^nm5&&lZ;-j_+?vYO?3Gn!nmN%}aezQSjd#8o zu~}f%VxA>3tY;gCBNegWpA%@t)B8KdFeJ9?CfKFh%6)6PI~=cb$n>j4^782FPa|;0 zJVJR5NKsn<`wy{duEuA zEjHX>4n68Irf(;0xntbz{0)hBfYc0ZDSbd((-d2bV0~AF5 zwaMLC-9+VurOEa&6a6U+Ulw?8!a8-PG`Z!P;4VwFnFQCJNYM#4s)eqm=F)i_m$170 zVr+jZWwn%0${O=YkfA)6jew%zV;f9V{?WF<$L|;U*V1sr8rnR8_eb)s4%0{Qz0HJo z7FGfYR|j@mgZcAa&86k1*&-ili-iN0p@_q1V@vi|17|hb_#g$--B*PY99JEGEHX-6 zWKw-p*ID2u-DNLad7sjOoodswNGR%P0cko4G5Jy&07^qe6aa>mO(EuxaX=D-MrnZ3 zlRys)DRWVSOS*tFwX_U~bAwn+4@N(YZtGw*y63U3bevSO(KLK;TBQRu5M96#PFBWq z){w{SQPguyC`V33Ian~srxV?10u}^t2^3VD^Y_LmpbI$7E-_3EPA45`7>+ZVrzk3F z-a#BwBm=D`1yQ*5sQ?(}pN?oFw^{&ZdG@BU;+=pyQ&~+y|VJ?|-7ulhU$^@)|Kp>BLb|&YPM0g*{uSVl&%`!O8pf#tbTZttbl}PVR z4At%*=A31%_J`mz2LSbWEbwCbQ|Ka~P> z^*@z+f7(1eR0bA=dK4ewNY|boh;bFE2ht&mEG}cj9{b8sjAu1^7Z)+3Hw;C0UNY3Y zKAKd~TE_#=BAtq{jt{T3dEJ)f3JDk;1twBt&bc0pKU!i+@EhfQtpgh-yLEEPvdnO&h3G3v4Sw%#)s%(CD+c1*bB9s2yNa6I9)pT5B#q|QZ$}L? z7|*{-j!kCnKaC&z;o{iKW&Z=Em5`4%HJ=U14XeOs{`NXaU zI%cD|)ox+7FXuip>s0L#ioW6V0a==*!@7u*{a$itxD!6FsNFuxcafa*Rmmo;T6l9) z)LVX|axGAfvK*X!DY{MSY0;}%;qDo5eT`>d3)|UCJj~2{vmPh|a(x3tvr@9^MtK0^ zX#i%ata>0(42I>9e9XD5^K8N5ZUI0u?@E!(lU&HEzr6$iedz&mCGg0QxrX4zJxRq{ zSMZ__n$^iYn4W79ZDji>gzd(1X@1Kgyh*-5s0IZ9ZY;hQR@{~h*y;g4<5RAy;bcsm zEq3}9&2v9yxKBNm)V#a{j>e(;9M1wnh2Z3x0_R+He+sq~Xv$Affr=Yl@W^7rLyzVE z0H$KORI{Edg^&gLcmQ-XqSD|b%ar}-=i8b9?rgQ|6Ky5MhM2KLy;wHUS=W9hvb~l# zZZy9&$=spXlU(SEab%W)Oh&9&jCC~BOO?M{kjv&G?Or-@Ob(hq6lqcJ^7MF=rv;ac zREy%>B^P4NDFM|V8tG9The5UX z1~E(j013{P5X%OGY^ZY0sH%t~;e#t2i|q=&|P79l2!V$Clo#vxp+b}o=KD=FGe1_PAZ(1LKqyDCC?z51aIEx_tyJnj`f(253j+Rn8mp`+>6_ugOGvRDKd!5xhy zhLLGCo$Q-1V~cu`S{^Wl*4M)NA_U&s!{tX)j%zhy)uyqK*;?EzQ?A{?I3k85b1~k^ z86!zuRGxt1y4$@b!Z|eA{IH8EhJ2sAYmT-bi7) zxPmc=@SI|RFX%Tm>Ep>{lWcHC!)lBHj8=Dv=e5+lPpC_4Ht58d1y8kJ(Yz_CO{=Vz zHgiQ8Ig#Y_u4h%Yk4)F~8)z7^q@-k;U`X)C{4zd&-l+VAA9`62{0f>J{c2=};&jXq zO(4%yLTL<%{>cP;?qO zMDS`>lH40~a?%dG8k$TN;;?Pvjw!s@(++#)wIY$6axi|hz@I$R3MuWHe{LuX-jK$G zU!^>8Nsn4l&w4;3f2={&)N%A~dzyQb=A|+$4dC}Vpb0xrPds#_?MHfJ6cLIkp@Ad{ zQ^@zEA$w8Zif(B~YG5hpRp(-;PI36u^%Tp!NIfV68SLYd@LX;=9jmMGP0Xv~JsF}n ze>7GvlBA6K)}Ds(+IXi(kqcl+&L|P}N5m}=JVl{fT*2kF#9zhSf;kzlIJeQI(4uK# zkt4VVaU-bwYtcLvr!KRn8;Rs`ZWyWsI4zFmwe^1pY1dX$?=uGS&JO|kl$HX&~XrB^qR>&Praf-OKlxKUcUPY7Vaopz24hc&Ls*FbM#TMr+bOHh6A5C&qS~ZkT12B#j&^ zw&DpSU{@0)W;q=lcDfy;cgUb>)K4I+Wpy#$H|Q@D?DuJhq9!<&y8HPzGH zM{jKb*sSZgmi86Ju;hBz&>ypm9G<7SuTlM>uOPYcJ&nb*o6yJQWOpO3E6VfhK*tw8wb^_- z@E)n-U$n_>bp@rg2WfW%l6?Rb#e>f{ub}?`W~JGo>N85g1d{xKoMaBBfgVZYe+z0} z5Y?8)QgoC^yP}yoIR1vA)~}&YhVk2pRL|$^(5Dk zT`*XkhzA3Vjx#_VR)L`%PffMFxz$-EWyn%9kJh=*5l=0qvvX}EuXE)Pp@2M!?0h6d zz8|xaTxXDdxvpQtMVDT?Xw;T605CF76`FTujaeEW4x`n)S1sO?V|HxqVEy9<&m{X- zbUqhrsUk|+rLkn>95)r^e-Cww-7{6xq>0K(+&E?A^Ine+jrD~C=UjRoX*Z~nFuY*; zosWoYthIZQJ4RKbU~`a9{{UK}_^QS|YRrXlS`6{^svb1eXTI?QTwUSi5U#=i8+pxB z*R|`7a$8w0Q4yd|ElT$urmbvCT9|KhDs#4Nz0M9Q4KCeIth1!W^PC_Y{x!B_aGs;m zt4Vsu9bt_lb{w`jG{Dj@aNN~qADw0B*H?R_YqPa;fI3#0V8b*3+|uWtYGYD^K*tfd zcBonfEs!c;X-~Fj5X4P}rSzqO+IxaT5lJatyA+&NkL=w?99Uf+`(|hYD5Kx)?rK-J z0dh*_vGr%aw=WvT@lHR1#t-FIH2Zx*<`83od6*BF#-)HX#CjiqWcx0Ys@z7X@<+(e zP6b1E;~i?=7$-I``E#5`Lg#U;O#;uvR+id}EHXi4(Ux;4#&A1ly-T3#Hva(GcB4?4 z1c`H)_aC}5PUMtz?-XjUsaxF5X4cnHech?I^Q*A2XiDX@^BJL~o6^*W4q@Es)&fhsCD!lWG$<%erjY7)a-r`>}IDp!5ji=I@VPjjv z{wCBks20)`N#iZ@tFB1TrEg#On_Sc5N4(P`i68E>MnE;eSzax*#4~~mM&YsauIt5q zH?!6>FS0`$hinp950?~NRx$N&8)`RJZ2~M%hU#M&HHMxb)YnkAy!(5WfMHR&81$$t zWYgaHS5%axu~JD>-?cVvL&H%_LR(xqj^aZ_!pByh5H)E!ECbvvJow{Q>|*}_z6D@u zI;Vvtn8$Su+zE~!aU!*a=Yny7*T?Ba$7DKhAL|hTkqJ}RDO~ir+f4H`XwfvsG6di? zY|VAxrf<7^MP}-ko*0G|eKre;WG9{Ej8SkZM8&zOD?PRA6(6~?a(j~1sXgAGb8Brb zp3S+}_lV!ZX$*|EDeG{st1|)9H0w=1^7UPk9E7Gqt&kpHv!nd~a$t$2^waNap3A2PlvDL5`1Dqa) zyPYq@ULUcDPj6!IUhT#g?&tHWuRnv(4>r!>2d?A(HJ7eU;fXAZXy!$^1by~6$9|@s z!Yt|DFNO=t^>K+OWZ&vjU9l!Y-&0sct@oKgQ0>7btElkx{{V)~s7vcvUUlJ_ z8z7&~i-n7Kek6QZJ(w{)x`0XViml=eX*CXDk6E~gV>7BqUMW6k#=`Jzf2VcPE?G8OLHi0S%re~S8s zn`E|k*6Vq&VI?P=d-~L#B>0tet6P{+7C4VPKq9>FV>In!ubwRxbnHF;u;>ovMkEi$ zyz=@anVdN}&syy~BX;jDsUw}v(45qs2-5sNuKlLZ#1lQF`|%9Q*az75uSP1-NaJr) z&zTH1GOSM6RU~BQy;JsSy_!_j(TV%W#N+G5bACGTknru+%{FGfwIG8cjO{-7t&iE? zRI<~h)h+c4i0#@&1$Ufh6vTSBh`dWbhptO3jC{`BzZ&JPJWHkj0BHH%Ac7}ZlX5#R znTqN>MEWMBZpkI(ysB3naz%Kit)e7s;@;>;nL9%RkSPrwrD@`=9S|E^$ULxc0QqqM z*+3@0_*S*Qi?o*jeWu)#{?MmG4iQi8)7QE<_Y~=^7U(D?lcqk}wP_4lt#)UCwcVxCmj5#mh(3u`Yv)-Z(+Aa@iYGX~8; zV$5^uYtj4^qt1x+1QILGt&U3YFnZUccqrm%v5o=ats+Ki8lu?vis7STtfX`AiqF>k zL363Y5^tQ9GE{Cd~2&$t|iWcR-Z>>Y9%W->iEzGisCXnQUD=46M`PA+lV>F67A$VOw z2P7Ur%{A^b)ST9GJ8f0y0L4rWam^u)d5FjbzdDHANCwcy>zZ>e4sqI;%66T-`p^U{ zcT2h0lj>?{*+CyLrftCh4APar<#F#o7Lmqy#Y|UzI%cUxcAPhE^=c_pbvU2~Nfuk2 z1_$%1&lwH5IQ12&x+(LqfpJwOOy{!?)`5^iC(YKa2FS-zRLWtQl;Go$QpWiMG=@ye zkU<$!`czE22v_9~Lsnw>xb01q3UEeK*V34Z(&K4YBN+Kwv#%$aBQXQFxFWQqK%;Aq zl=LE?k_Yrh1EDkk>uZ44fo79*qoJv-X3JpXbw?a!SMEpnRLG-0Fxq<&Kof|-V!#vX zF3e39fClE1U^JteJ*WYpIUG}!06bFC6N8!rAp(>RF-gWjpr1-W zE(S#eE`2?z5BcVlbit-Efp(Lg^uAdmDhc`uco|>^b6rKGF~bN&QSV9U2PRYuf;pkIIk27!h~-ITZpQngA~6r*C_ zjr>KZX>QPzQ>=MX&zd=+=8*ZtT5@0DKt$KE^tj(f9rdeqA@Zwm*V{cPlQLJgVR=SC@ zy$uz_PmCUi>Fr&|hzYgSG$`eh<&G8H=d~f1r12k#uAsV((#2$!H9NK@O8eIdYo=<_ z&aT>gtt&ow$0VBc{RhRGCZ2T^p6O6J;4$Pk6^Eqwhev|y-Oci_R}63utxefhEW@vO zi%*uzO_NPacacKI9CgKN>AKYS+NIWyt&4EGO13&4D;vgsGt%#TN2N`t+=YDIiGuX$<18{G=O8AvV%>JjN`GVxcSuM6&z>pW7dEq%>-tWmp_#;heJ-LXC|Ca zdIU7_)X|(!X}O>U-Oee*je&NI_04MdUqfwj@zJIb!5Z#&$4b4acv?#>TFM2u6Ixw1 z)tN_6YGS#~fC%Z$OQpop_>W3ZGnqieNv+wgo2y(|i9Ep@U^lHAYFxF%bK0b=@iygT zLfA9`^{2w|ej?(C=cE z<}gnzjyc;A08^7rxp@jLw57*Y3UWUR0Ln=AjAEH^zqpgX%6it@X&Q(8`CK3SW@#08bp?*VAn>FWzxq7({j32`pL*IpL1b@Zks` zX1j6YeMm%@ztlJ5o|K$~qF?y8t6JFnS+%~EJmj~xUzgtoyrTM3b$@elw{M#xK0PvX zS2ecQ_02{}&8@}EEW*q-ZMEHY2T1(8XvSAHmz{mhbNlSjkjMw#uDjv)jOEg7t}U)%^P!4DB2^$2&syc1hOk#TxHFe(& zwXY9o(qI1oZ0VuA!ZwD(-d9Px0qX)V+b&Fl5tuRS*6dzIphEd5?#cB z)aMmn;tsc_YI?*|={5ozDA!>Lh0i^4U0d1N$>F5ZY$aHH^%7=Q`^T*?IPVYmyHL`! z$Sl`SjzmF#*gVx|)$b$m0MsvSk~6=|5srtoF0H2OT6F0FlHJq*a*}X9wXrXQwQGxC zIc2t+Plb23+Fy%rroIT6 zQ@6|+0N1ix_}5GGL6Un$2dKam5?Yj*<9;hq{jqLSmGXOiYJ}F)KD;-Bbp62l;Fpyk<_Xnj6lx6snOz{q*axO1y zCl^I<6;vq2S}1T^$JO?ugbQ%49dqpQT*X z^%(B-%S1w~>7Sb?Aa)gE-%^S{2VGjvJ{Ue$Gx_G7$w=nYO}&~3r5a1LGIFfMVA7_G zsCmQ6(;XD!aY4{}@m(kUCN>gjmT^3UNfO}U2&d`ZH?g+3W;YTQWhzF@)ZD8a*1cf% ztbi7Hn0&3ChP1vM+1cFduNJc#PhzRKplowbmRRnr-GeIv*$Pi0u6RGfI**BOrGrT} z=^_D>G=+Nh;2NYRdK~@)@GbL1+HR*L4$bpN<_5>NHJRd%hn7}GGi9k3jPOBFbDvCB zMzQe6#ad*bNodRo;!9}*Rt@flu4(fHyj?~&2j$)lC=uxz7s3Ak4{G{cl3d(f!*YsF zcY&XLSB7dDa%q~C<*Cb^=@Q8e zsxcdc+XjA=m>q47ji%W6l6dc~+89d}D({T?R_2xAe*>QpB5D^((EaZz>Gd{-^0+}mlMEzz!Z7*cyZsANV^z^{G{XnafXAn>Z%OK+%4aTKkMvJ4T5 z!SUs}YrQ zYQ5TjWWtKad2UxfcCUO&ZTcpj#15c-lw2%%-Is=i^gd{wD8V>T#N?XkejaJjokHVG zmMA1yc{_%7Q?O4aaZeSvnutpT_bVB-;TmwMRfPTOxRFJWlZ}io#YPVEa}sjcxWH9W)rg z1&8TP0gK`hw^z6TU~cJIpLpO_r-{GhGjvJ*Gg#6|v6KUh_n>IK6mf(bSQb5Lj4*Lo z&__ISypKNhJb(vExMdy976V62zMjRUFyj)g#>nkiTBP?eLgL+*V;qrMdJ9|L>SoU4 zdJ=@8Ugo-=26%r;@fo5?V(b2GGmDZ|?*2&$S2%Bk>NQZkr>R1@tN? zo5Z(sfE-1~qSi$08>gjL6j)~R_>T2BR#3j1LH?DQdwV6qu#*Hgu&t{LTY0=GBeW^! zETnmu=O0?;%I7)~w^^XvKW(j56cazKZa(Z}9bt9==!=EJ)7s#CLvJ0~>(iy3H;hu?OOmjxk{wkZJYJ| zDz(OqXjJXppREHl&aPAWFnG@;h|AI`XM5@{2?xLY_RcL%5y%74N?t&{%% z9wOIa#5zGg@%2}(Uo!gYQog{J83b02t z!+2W8?%P%p+(5{iNF{}LLz<)^jyR_6P&p!`a7e(Yniplj88iWvsw%XA^y0I`Lp^Ip zQifI9T}Tx}X~z{TVyp_MmZb{7oZ}Q>#xuv(pB#!#8-qxpIUPBtsW`#wQY=7n4-~GU zMn@)q8mAOfa_Vvg6ag{CCIv^Ddi&4 z00BirP7MMT)*z?%X^&x6{4b^bqUomHv?1$MxhA@Q2;f0*G2B$kVxzeGfwkNo#}&@_ zsN+bwz#OhWTInx8)<{RKb3Q7^_C>}|7{?y9nkk$;sNsJ~^q&Q<`b1n~Bl=gH+JJV9 z*QNM0fpHri%g5HVL>#Azf8=4j10xTLpuY8c#O=GpSEv2FR(f$rXmL!_qqp8iB7neq z(lyCYN{*BaE>)ui2_SX)(tV-Q-^&e=^{K3+d((*rd~z$$JSX6NGXBO%wH1|^9x(er z6w(uCnncIX-@lXVS0V^lqimt?R z17qo4kEQr8!?xDoPk7SGe~Zk==~olM-W!>*3rOwP0$kBx=0}#Q?#4R$)P_89oUKo* zBz9W8&7^o$jmnIkaY+szuS!EIOBgCuj~$I?O(Ua}e*Noi;t(=NDt}7NxP@Id$WK3X zj?{o{gn}Y4)u?}Y9!3LpHH`}SP66%E)}&4_DUA(e%M;PZ>rhHDhfITv5m$a%tQI_sSLLg!uuj%&=_MvBD%zb*+eZ(g_(0tw2pJ>H-Imqpr1Zl_*BWPsp zQTbr>h}3>-0sLQuSGvBEG+`b@gRvA0yXC0HV#mEH;D59HstrEn=Zi9&zf20TCgscQ zZNJ0~0dl6Gk;!Qwk;yscJU!cu%_gbCaovZ2%ZFMAP?G6D}KBj_Aq2R9;St`j4NxfHSD=^@CRt?;~B(l3U zvn{}te}sJ1GI+08nrP!~O5mws)vLPk)!dc~p-pU6rkya(d!8y>Q!4EorH_X^Rjn@H zCT}kw{`K~Z`qxdQcp_!gt=m%9;90HMA0DS8+qYa{4#?I1h<*+&o zSCo|0ZY~wt_EvJ;OPpqfVQPApjyxx*>$<#GdTYTp$bxJwf^puU@ScaM_-g(2El$)V zP@ycr!+$E4O)JHo6VWU+IWJtXQcdzZGA@n)aot_<&gIE@ZNoaa8^$C&X5FI=$|h8#Sg#E(10I&3W#*tX%lJSwW@QIaN)HnEtiZPjHE%c!tYPw@4v` z6=gm(WOWrix5NEbB?z$EpzF-l z>fi8@$ceM;@sIyCQtsgYj|ry)cilH zCDf4H$^anklypB@?FPR%auyi2_R7_(ZAmp7l()XNfue2*3q{%u8OQ2AC(JEMC;%BMr zMhD_4b3h2~iBmMhIo*$5X=FHce%aebay)>z0QHQYh%TRtA~O}&t7U0xRp8-81_JwHwym`pH2(kq+{qIWGst3A9kWPhO{?mj9W(6J{6yyB zGlH;~fBK1C^y#D}C({#zK{K>?xDPj&E7@@0_k8RRE$8!r^cu!Po zkOt?9Q~f(vmw4;R)Vxn6%N9u$6f%$R4z-=(YuP+K;`?v0%_orZsxtooc~4_qf5ojj zD?b%RU{I?(3o8IRoStY}4IJDO5{d@{wMj2eQ&2)Sjt|zXHs3F=%}fa_jx@bn*U2>v zy9Tv{gZu)dwIysdQI4=0t!#hLZSm7+p@C>gj`X{*bD!3r7{^+A;~w+~lg#9iQAxBD z@9RoVGf++$g6(amJkSMOrr5G=1S<}ry1yB@{>Sk2v9kwgKZN}&n7KjrHe<;HkzF3T ztojd!%PV8ZAZCC$e>O&J$V;D6d9L%}Rov~XTt@E21SH^`isSyy2Wryr_NMwCq?bxQ zUXl!TS_I8)7fsV-xYi`Tniyu1L*{7&{Z4AoRF#2yPnmeC5kjJBY*`%B=Fu^ z$o8xpq3uA9!qR(H_-pnta-V2cIb8Bib6ksQ(n&08@o$oBZ5>Ig_IgCqcrtxVOsgC& zNRMwV&#gtK>M%hzoh0%QBVf*P(uPVSJ`UB1ZzE1sKBbg@T84iKYcSiq^IArzom+4} z%Db67U!w__i>WYAU51k9#X3y-P23RO7Lq~of}~bgW|l_-CZDL;v`cb=GPGi5M7P%6nVwOuDs(*!1a zb=xS)kVQ+QX>;m#BHk#M&0(ApI#&0MHLDx_H%}IG86}Ki*J%WCS$+%FZFK#4C%uu9 zAdI=&o=qSt-`UM+CzrQjQdI5gF<1OAt?C{h)dl61%PhFsF`jB&V^FubxSnXTRh*R| zbrq}d%fxp2M~Z&Ybrfv?kDoO%bDrMx&@*P^;(v%_09{HX!OqgSs5L){x4Md=T-hkw zj{R%U_3s;a7h3Y%OQVmqT50TXPV&IF=bYDs>lW}? z>({W_ZSob)!lxq?ARD{o`c-+Dm-$=rsWacDRgnC|gH#2G*pwjij`dhGZX<6Qrz>H3 zq$PI@57vMrVoz%AJ{|b}e+$^nW^LAMa^;BVd9E*xJDT+`f|BSk#dzA8wHMxI6U_jf zxb2!u3_H(=H=o-={=s62*|V{^0=k<&iXJDL_CK;k9In_KA&i~h)|;wbcxz7aak!d0 zNuu5xBS8=5H&%xGO{C8H%8b{?}N=1N;>ryj_@%N4OJ!%VUU2{)+Iifq17|QPa z>k|6n^TcyPmNvtDF$Ko))7H9Qjea4r@e0{Vr${AuiOT`d6VkcuLdNBFEhY^ee$8`r z8m{C!K_|JzQY5N;C$Btg7TJb+{`G&xv-NKb>+$L2>M1MR#yicOqw}tp#du4`Dh@eQ;=FXf%BB+fN;Fgmd z)hVvz7~5(CcjTPaof_v<`%cSgn%qAdV`GLi!0KS|zlb3*vc?36a;@f!irmnAJ**9O zJMBSZ;2q7p64gh-x<%f#uPue{rzN_M46T*{y9{Q!4O>CfJSF1mD|zot#1avS20%W< zWYB=~{{R##CbM!J5O3nxm=<%{umGgv)N~`-5PN8mDPIwl_&}Y~>|GkVSNtJ~w;I zSGT>kjdC%$S2_C7CQ+BgTJEiGw%2zLaKnxlC5OFfc&^46w0kMc0vonK908BcsAzsA zlS_!f6fsDdEI8y7OxCrTbv>q0!0p&j2R?Fo@%5w?D-4>2`cN~h(Yf%A$F#YwX5ojJ zd9H&%ln)BuagrqO^sZvYUprfhDF^P@;Ed3~WV?3ev*(N);}z=qW|3icc@%Tn#_HT2 zFz z+CdWZ1k|ucEpvl&E(dd6AAqA-FK$Dhm?$EfbE3r_=S=QBa&uO^ArIO0NjUqk-vK9{i17HMswWI zkM4{CPud81LK zm~f*!kzRkS$nSkFZvXML-9&c-xzZJAu20T`|~RPhzor~A1GjvW2P70V6wdMB53=ewr&j#?(=bWb|sR^9Fh)Mq4z0Nq0)ir9d zuCQ%t@aI3gHBnA!4G(6=N{zm?Y8^8A>=w3!vX10|PhATC061lgG3;89?oFXCZj@vX zZ1=BSwYUr6dzN37f)kO)IIk_R@cyKXTQM#@UaZ{ddaR^I*Ju>+fg!>DDwf1GalhI# zvgAHTe42y%T5-Tt{OT$EIdP0V+HU^nB#OzB*xTOuF8hj*2^6k7BXnw4C!k!?8|#hV z!qa*PFlZTGNWmCCfu`UwHutc2f5H)5MGSIG?~D=D*PZx|=J!<9Ma=f%AnF1I7z9^w zuf`X_5En!8$TM74rKz>#w&5f4k`&v?&S|kC*N5kQ8u2a)Zpa`KyjOXsYNJu`rTdgX z%D5ygaF=?yxw5jcNYn^PC5Lirrj24x18O@#^9Tgcft*I5BpO`)Pdk$gI`LdVJoEIf z&2B`bWLKlHt{34o3^Xq%)z>VvRJC`|%-@?)ze`6Zuwtl_Cof7bW+T zR>3`~fb!VlkddDBf}M^i0kqS>=dC*#6pk=PGe`!o$u!U@#L@}?G3iamtvvfub)W=Q z9ck~%ttUZCpO+oz0hGOsI~17B04JpYds3VONGJfsFGKH0c@z$PC;;zDD91D&C;^S? zF;#BylRBkSZSM zajuuZ5??&FP_4SHv6Nz5bJn=4>xpeO%l3jotS%%OAMYAMJ5i%*FvK2h4$?Jl<8DCw z>d(Yyf;fCM$119aaQ3b~$637leY-u>jgmOtarDJ@KNC_r==?Z{o>NMP2OS3#!>P65 zuOHZHnntAyG=My8h*f^}M|$(C9ZuiQhjh3hfj=qruR_p17eR60?L%IY{fF66q*w}! zFj3yQEhU!z{@&1A+rlMqyM#j{-lS)tc<15F!&b0>hVWMj#Y=k%<$fSo_ZDV5y&v6EXL4v8+hEd%_ecwFPXdLPHazwnRS5O5msf9N&N>v50x zS6X7TDxK?qPbaTRDQpwm$5PF(GD5Jj=lxLnPfOey` z9VpEJA*kDeDndA>Fv+ANZ^91(U(EAZz2Q{KqLMN0Yp8z_>(_d8ucT><9l8Pm13ZsR z)+c~(ZEdb@V!4n;(=O1*wQWAH6`rxDXn(uroV7lLgX0#^-%aDB-4l9cBbdby9T}7_uC*~`0`Ra}e7O3WKv*6s*6hH}03DeHY-v6< zis99DIMkLLn8q>n6~JF z%gb1vF**cej-_&O?Ldzs_-WxA`^{$GRMet)t)g!+M1uv-Zaphw;(YSW;$`#mg@gpp zrcHNxZPUjz?KuE07BlKTmB9Q;2mTTWShnV90XaQ6G<6zhJ0BP|DID=o$IuFyIqyuN zQh1=WzggdCct`;EHJzi~t<9`y1XD`!j1ZBQ$JZ5l;@&yqDR$m|-s#cZjWz92E zU&Z=nrKoE$olt#{`2_BiV|F_Vi{Y5m?Ipi^2wp~$~hN*y5>pz|Pke@ap#G&X{Ejaf;81F&+Z3KU!iepxh373W9Vl zy$&ixKb<(>(;1Z|yqy;q{c1F}b$tB8KJ~G*W{)fqFnORv7O5huWSnB3x2AdKtg3*G z&swK6g#h3lXc?y*TaaR#BJJX^=hiOL`C^Fyi;kX^uD2d)0&$#B0NCzno&Bjv6b#S; z;8GKTPW8<+jE?!B4EwMp43C|JV~T>s63+<>w=I%QUy>kd7PbZ^+svJ)5#MQ=m5Y2n zy0b18QtSpt-siP)a_O?{gJUd>E&v{c*0znNOL5>EtGC`7CM8qc5zS`BsU^HNi0LCs z84T1hM4kL8ev)DS%p2En{{RYb@TQ<4o^8-=iFXhQ=k%?ad|PWXZu=zXj^qkw{3Xz} zrPMImOdeF)8M{_jX0}H#_H#z4&HzUlQbsdMEM|E3MX`={?a9dc({3(x8~=eJeK7(XE~<==|u$O00t*XV}mq*!)HC za?PMu(zU4OL;M#Q>-81F>)#ADFAtTLcC?-c{{WtDc>L;(mxy&MJ?0C-Ngwji?#I1U z)O=~;Yk;v&aFWIjMnL9(I$K|cT7~6`Tn`%~98g{R9Yj{-7jfUIO zyW4Lcc#0cUx3Z2oB~{50$C5>P&abUYsA~5YcjIL4eqpy9(14eI7n*_iJf3O+c>x*U zk6tJ@kbijR*A+lm1Z*awSHa-@b5Z@SBf^$Hg)`5Ll5*c%PzHhI0&B1MbKu7DG?z2| zx9rhI+gk~eewD$C$g#_QmC*Q0T-9{a^J$k46dUqEUzLp}2WxZi{g+>B7_St<227GC z&G=T={3{=^YF4)QTB@6QO6B%plpku~^}i5mnzhPFCGV9W@P+Un*zl%7b!$c`8Q+08ov>UJuTc$@dK zh>w^EVsXxRuB*p7l-E8Xu(rBoav4}S$4pn1HnwgrqP%E=van*g>x$R6)qk`+Pi-b~ z8@M}3>BTfAQ1NIV+Y{~RTQ!MY2a5c&tIn!MbJ*4i6vl+56rCw}padeImL2tCl7K76 z4#U!|D9;q$y(!A!dg6cvgr0FwNfA(L$-RXfBQOo=M2xSP4brn zC_QT;4Hr^_S%!O!Hdv!m%K^vMpJ9J@r%KOfGex`aW4%p#;(b};+S2bC^a7ZU%S4_y z^$T`(3y0??73q+&Is&Y$J&k<3d#&nQ$yr@bu&5KoTD)I&>QVG!C}uzOP&dsoYe z<6Ut_7n1(~-)5yAJ=fH6eK-B~X;^2{mq>iJII8*<7gbPrB~5(jJ|S!5VXtOk?&hp% zUlR4}JCQ7NE3*Fpd~V{EfcnvKP9IA7&OePh_RJWq^XsysljARlayA&0cftx*8T5JM zwIO5aUp9ZjWlsqzwop?P{aN{m4EG;{{V#? zpnVv5?M=b-HS?kPpW<~K-2;#I7yK%1GvbcDa?R%4WG^3d4u2|E3!eFT^4rL8af;;} zD06|vYnJfui?uyg@WF9$<}TcUT|95N{Nov@kx?8M(DPPfW&l(na(-HV2&7SCBfS6& z!1S(We9bF4BPP9QU1(EI z%GMU)NAU>9H6VQe50=&?9?|18Fii1>Kn*H^+ZF7)^Z}prSpNX;-2uEldRj-H`sOKE zcRZTW3rGMRE7H6gr#SDnt^=VK$hLrE)iF{_uW34TP2~Wm7zIT;3g@0{B!6t)b?S)0oNp@QWTC~#I7ds1@S$6&A*jrqKx5y z_B8EwZ}_M$#(48hGB;OT9=^1Oh^Iv|7Eyu+Pg-PBcJ3-?9G_9rp=CdK3^4s@D71}{ zf@(KVqmlB|DK9+LsM~M=(i1BP1kR|$V4McUdM=!{ULEkLxsuX3rDx=_f=T+<7i$Sg zhVhgq@~*GM2vfmv7i^%BPxGo<63%l~l6`AXj^JCZrMoWGD!d$3tttf4FBbCQ4a5jW zST7m$sx#|>p|!V$FsTT^C%r!NUwfS)bm0<}GH)(Fl_8qGD)Bn&7O7=x50e;dw>i!_ z3g-35Ev=`s7Sb0IN4fBN8r<;bgyq%YmUg)o@h_;!&(g5xsj=uGkqb}G(XTM6-9cTe_&%HQw#WZ510Ahd;9E=)lopIWq*dG3r*#OQ( zND&%vTy>-wCY+}L2Bt9z;QLY@2*5b2QOA|tkCutqKmae}ND9P!zLWt@9QLCe`%nW| z^MGl&?MnXud$kA)5GjDu&wgn}M_0J!xDlR@!rd4K4`gwBw3$ zxe5TNr(L5GCqA@XEKmnDrle@N1u}C{;PgGH1~G+HycoBT1KO;%cY9Sk_Wi@|JYs-4 zZ-<6ey|Km5n2jQzEFZdaTsFNMCcCL1&PB|bAMhhx$HNn8_Um6EBol{UF_`dq?Odj` zf_-~aaKq30Q}NjIK#ZFm!txWIH;yaRJ|fJJN8y>6Wf3_aOji?SV-3n%HL#Jd6|*dT ziu#K5>zzx(dcB35I=#7)OJ%@Z;ID65V9Lw!5(|F`Uumo6Vq|3s0Km_wuRGH9sBJIp z<#OMlSOE8`Ci>A~dF zwB%XwfI#M&6D-7Ro-Y-mm2McQtq%dJ{{X@Va#UmIKhn4#48YeG9wO8o*at>!x!@9W zUC+bzC%_Y&6PG{CRLDrMt@86qAF6|cLbC&d}dlZgm%%_(@o78;(!#K0a25d$e^}IG~E9H`lthU!~Ph$))3qYUkCAz9H0+Z`aOVN!(AaE7P@EWJtC<0`9#4uOacx zsJ6MbWd{ThbL&!p4!3hRnSU-k>6;_jdkR&|k~f%60nI^cA!wmOfv`9k;;($ojsE~D z`%@_qO#6Z;T!rN3tLirKO=wic5sxZC&J9l>VE+Iq`3^Bo8w_Dd`LjS2<(2Mqt9!;D zyp6n>57VKqRq%GF_RkI5O)~=PlqCCCm@0(u?yK{SjdH4(IplY)=fJkio)L+iPB$|H z>qt!Lq9~HHCskMzsEZ}ub+_Sgv zkLytDD%uvaHKyTt65}NYG?*-ngE~wfy%)V`}pJ{RT(C|(>gHzCFQ{$Uky;H*) zez9`dD>lQ=MJB0uM)@?2FHu;W$0JAx+A>X0)_g%Wu&~=f0k+fOIarCwC)C!ho{BCs zxbC1~36Noghvi}qT=t`&ir)~dH5<({N7klSlGHIx_#ZFUump>Y=Zfp4eRlfS`w|eB zRuC_lBE~@g4|7&6_3Z-M**5rfB~=?s>-|0?fi4CLAizEIieYn!%}A$?DljTgDGXfvwVigmlh+2c!kiyk zry_z|c0~YZs>z%Y#a*@pD5)GOrhRGYY^s5$pJsalfj|!(X>bJ|MWzW8f8*4{6l|^b zdAB(AG{WP_q$F|8Lld(r2N+;*MNbgiagHbugj8(4m2ILRXM>tz#ySvb0o(XaHk0Az zt}=29e<56bzKL>d7Um~O!w?u_?$=@Al49^CtPqY^kI+^Pwy*XbGAnTzAU5YdyylY< zAE|gVT+^Y6=8E5J+^Y#P2eGQ!e}sHPcxCeb!d5lheq;U>*6aTO5bSjeYgpRa=Mj!@ z2U?HAzC6T?)oK#>Q%{cBZXj28 zj4=_h&rbZ;6RY1P-MBH6lPO}J#;y3{Mz_=D)9zy4T6jTaC!woEGVh2c(58Ym(V&tk zKaV7lkHpq)jXjh%=-QMfYkq}6!hqmuu1C2)<5m1s;w?V& zLrV=h+scg&;l?rat~-(`j0w#b3l-tFxxc-$hT3h0Srr&=$9nZ?@1@gq1=1|Eh;C(y zAVCR|MmpD;=xUL8k57Hr{rcyhdh~5`P?t;b{8v$&e&`0{s*y}g$Gq|DLFPhq^omiG zI}?>P=K7iYUHi_E&fD807>_mSI$p754zsE~)5M};SwjvpQJr?wocXbEaxg_hWu$R> zO_;d2@|MeN>Njk7@NxLpL7;eY-&uRG=oO(%ji3%|t-aMW?Pprk-q@kI5$utGAEiO? z_T9g=^_y^c0H4;WYD|wYywlzblN!mmj=_1VuzAuuB=H#6rg4ndQ)?DHS89`EA86X% z{MMeOX%v4DEv-aj?EY%}ho02zE1Y@LV+)m$vGf%xO4jhK0sjDY4@_5UeztmljnSSE zZG?c7#{)jqAH{21WYpr4$r3RnV|Kxgew6GNIB4N1a`L2%<@vxBqa54uo|WF|V%x(S z2A=6^k~PQ%N9tQOk?{jUirVfQ+f~??DZP^z!KGli&9imE729c^E7IFYwzSl2Qg(%Q z{NNGzR{|})kJgW~40rtL6=T0`cf%v5lMm!7z5cb~>8#~QbjV?pj0YGPt|hIP9W(gU zZDtt!qL^5HgV_D z-e{09&OxPFK^ZJRI-wnkkKrTnt8v;d9CJX+0hEutKRQk09Fh6c4U!(KO*W{#7m5Is zI{yH8esrPNA9#Ls2ieqh9Mb)rG17sO7g78|pq^#H!4%_exam!6bvfgjLMwUJ?!n0d zP(5nYGpQIXKRT|~3Qj^~im?@l9EIoJm=d&$kGu_P>3U3hj+1$KB`VN10^@_lL!;<_ z+LuPzXIN$0N(LM;^sdK7(In8c8`!l5kIa~o0-ickLT4-C?+wSUeW)9Th{Q4gT!Zzj z3;il6?v1&_xox11_1=6wf0Gv;D8cSis|1@iJSdUs?VlG58T0|QZmG9ae_Y@PbD&Wt%0YfQkxae zAFTjm`6xgAbqk`Y=cR9pHOC-+RKsA5I#L4$IG|YxTx9jDh^dYb6`(ZK2kwm2t7M}e zD4+@mV;xw2RWNkN1XaOoJt=<72;q644EB*#vzk~Wjx+nU+n+&N0>?Ndd8IZ;r>8W4 z={_D3`pLn;2u*s52FJ_=d1rw$7P`1N+_sw53J8K)8JOloOQD8Uqr2VuvpDCvqr(zPULEHkw8RW6=a zY`YUzf{by_Dkq0MsJM*ZI&cVAU_Fg6$ua9ApT@7WWOfFEOsln{QIFyS27oh~S%>_z zf6kg`oE-U&`PPF#xZJeMqyd1MgK;YC%Vv%dk=bJnESi#ggX*jY4oHcSHstHwBaZDmmFkt zHQacWRCqoV4Up0=2l1{0NQkA-CT<66^trU5taxTCcx6#6ZID>;RJJ9Y4z*=#XZ8h# zMrkFBe2boju3XtzS?LzHQO&;QMj)tc;wfI5$yb$+t$1>K8s}?&CTR&tlLOX zc&vR=_TEdYWU`C|NWhSRjm=Gn)9~HQb{B!Kfn>o4ZEtIzV7}0=ZY}M6w~S?E-IJQ- zbt~&>AhL=D9%|&f0r?8(+7O-vzi>${fuG8n25?dqX!jV7dz$BO!i%=~cCqIIx)zQ` zLEH~|#MI$2PB)HELz+V_=`5l!0yg4)@#$Jet!L>j=Gj!^U?-n?(9HuB3Y00vdJ2Sf zsRIByezbsb9Q7EeoMHOZtk@M1`QJ2vOyZEX2dz9~)0zx?bmD*}iNAI}Vm+yhg^yln zk0Sv={HjBeGq(nSE0eVCG`ZugC$2_lJoFR**C#w;u35&2yW~9f099zzGllP0{Fa%- zYtctEn91X`7Z7=j!~@V%bgNYt4oJvenKblUh}X+NO8qL`q<%uS@^>1RGDaa>DC%m4 zs~GZ0UK`e|M&51VJym=A(qG`HQPqtI49~O48i(3;_03Y1_qlGF?Oi12ZL?$ph3{O) z8O>4?5UD3Ps+a0Km&OUjTqNU;DxL8C)132;DTwL31oukzEB19*1dFx6!ES4gxs2Rv zm%<XJ>Kb>v`xTsa z@LFoNt%EBayT_sRtsC1r-M?$Pw9?BSxR7qmRMbAvai+sP?wK3AV;2a)Sk#|lnA+v^ zX*PkwdAXovA1u2TYj{ZX9MQE9F^N7?!^TGx{iEhs)uEAj12m&^<M+uqT3XjXROW~VMe@ss*O*p&+5Ar$#1RC|6xv0(WIIj>sXyUk+Khk1nlOE_{uQ0evA-k3f>u(0 z3YSBf7ge`#a^bpHIWNTPQkzbX86&Y_{uP^b@i0Rt?lh=T$l!y6MaGe5_Jo&qm8PQ!JqX!=oM-17XBjBD3>3O&@mLtMhj!brw5&p}GTbIhT&xt%w| zZ#;?9az;p~A9QTW;HwUyh6t}&@NNB!ei^m4Tgc(LIU7%0=Dg#^ws#g<_0ruik)&@i zSw;f`N$521p@$^+Bq*d4H+`q+Ugz+);qIK8J+`T=TP4NR!*V2?s;_Q4n(cMp1$cj0 zvv_Va>v-R85?GKUsrDkdo+T$^Z)ELr=WCsM2k^97Qm@XEZ{6*j)cWVddE&RRu+!i% zK@?jg+b7=R92&{-PJ?lxYj=8d$nMa#6|wi%vHYq?ycvIWr;F&Ut{&HJOp6g^9=RgA z6S<34Fm&tNNcGgbmKIxl?lJDkCmyxwUID&^-R@N#VR^_3dgB%6mO3fawZyTrbxiPG zx&w;uyd$JfX*5<6I+GR249Ivm=9w(&b>~;RS3p9j#w&~Q#fSEmism#Xcuw>qzB-E8 z@t2FViwoJKYo9V@7}*fc2<%N@X}&0fSb$r{D2_~%u#6K(5ya_timTJsLZmN$u<+1hn$*$84JS zdF`XpG&^`#BtaeyIL{S<;6Dk+q`J#9#`iIR&nILZz^uO;c=t~?a$4Ffmnw$^)ZugO z>qt!9(JrQ*RYyW#2e9dycI^dDb5L`dWgVBo?XBWWFhAn-VwhbJ~V3r&2r_W^_F|N#>pWPi=~j%JH9i~7=1Hj(J#F*&R!@Yq-BVW5?jzISMz<54%+3Mb zRjf2m6X_Q7vf0ZLG8L0+smT262TAcRr=@w;+H~&}d-A~XgWi}UZ^rgFdU>&i{xn$- zfQ3$SGhKJZ21DU}1%KtB#((dc^G!!pxz%QlO+w+Nbo;xHO1F8b+~30#cM=C!zze{j zWDD!otVOr)GXeFgY};0-T*&hVK>Jt&j%Wj;WmEGZ+`gi-E(qiiRrEhL+7?M%5_uRk zG|W#=tuQWWR^M;GwzMo)&0x75g>+sr@V19#8bUP*QtV*tbDWP~YQXU3M!%Y9G1(!SDekauHrfTt2;%~ygs+H8|(Qa zKrp5@KR4Hk^luV)cf!_Ml+oH*!m;l8M&fw<>leqmcZQ+xa$ISa@k4yBpt2GP^#oG5 z6*Yea>GJ7NUU+U?@)01oK7UDW-%6 zl0EFX_OClJY91`{6jsYW`c1*Yvz`E_aMhFOdVZHJ#LIoDO$=ij4m$mKtNOl`qDN-U zXRA#tppTFY(CkvhRx_Lm;bgRtZdyB5l%{r$Ib%xbb~}HE_nJMH zk$G*Y%Tf~oHEU~teX!hs^7#1frM$%{^({3YcFE;U;DICiwYo*5a#{~N0HNWCG zd^@fSceGq=B+7p)C&O(#<)|#IYJBZpj3CBVftDIb;j*a0o zA1(F4$NBW5`!m8oNjyOlQQ|p=kEZ0JJks1?)*Qb-uV|AC9V4TP75#_ zhX?CbymLFxsl`8)G;6RSF1X}Z(AKs(Cyca0bXn5djisSbGxZh5Yx-OGBF;tDB1`Q$ z;O#PFJ9FEfl&%MgS@>w{Fi&$G)CkdaNgD)=cC45@HFI^cTPs((8;Y{V*&zKo*GsSI zO=8b~rbRFIJf{)6usA-P8maJGQ%jGCP}yCvNG{(6)Znf|(r+A82WckujBIE0t>Hh$V)D2-3Ay%!yh&qdbs*|e)`J!&G&Y(YXf2OTQEi?y`XRUAJNm7oeaG79qOzq`>s3_kMJ{ zx$i&{40;NB$g9hA_NYm!S5lN=)QY_ z?hfZ1XB9@4fU%=(tlnF}z1is;yO}ZS1MqpPHpGv@m=_KSqaK5bKyZ2KPR@DH1 z$Z3lt_d+;fl0CGFfb!4472WtR!;)HQs7=)(jU_s>Ky^7`` zaPC-e#FLuC@mw*-pw1Bx9y$zCOlJvdGRw)YRPa_68w-KAj2iO$G|Mh~*Qt0R5h7zF zkGaycL^Fo*3WKiStG#f^s8hU2^sHDA`_38QW;e()N_^x-mKfd zmPmYzbTwnjA#&V<-lBBD!Tcx!+L0oho<~DLjn6nzYM7I0Ao|peatA}4PzC!~#b72dB1mPrp>BHRV`~!wVzRD(=E(4;A3uc&1v{et&RLr-pA%b2O#&Rft?SF zr+K_9WxcY}$`3Wk>h=-XOKOQOOzFJjbguiv8g#xQvWg8dIN|aecn`oM@UJ-W4UOf7 zt>s_3NiwL$!;lAILj-Bw=S7ANXYy}avDaRd93OX zK@L0MG2mBe;ypfHC&4!`+{le1vfw8{%?M2Mz{!OmH|JSetD`!Q593-24&03A6_u)j z0-l`GD7U7l5u86$_iFIYDvq5bZ4&&aeP175C;+D^9=y|VIi(oJXaUWh)F`wdK^FxveWH);XNFIX!D4Cc)zz)}EdKnYUn!RI#H(-NV!#Pi#~Z%_OG~sSE09 z=oB7<+LlX*qCyE7sTn1-X$%=-&r)i%MBH5$8QPsGrboF#sH7)yc+FVaut(Gi0E+d) zFO)i;O2oX3MEggjY{Z$}G=u%x$i8nfcRdDap)#tHMOMA$7s>5b21i=2cf?J{II0mo zhvYTQg4-7kSP3)JKGlOVmDFxSf~N&EF^{reG7J*of0bTjg*4$lH5ejd6(nPUpL(G1>Xx>OMzISZ zA9W@_%e`C@>T9A#Z)J++!I)(?WRF8Y5QGf-B#`BP>-Eh@7_#GVSx0Mhr)x z9jJansXs9Ltw;$ooRv6`ADDX7X9q05cONp5LHVEiu0L8BWtguHKZn+s7qpFf`@_*Y zY0dkW`^${twX}^_S@9*!!>!Az#~ES+Z3FVIS-|`8^PU|Ic0UbbFpW$?xep2Y=9w*6 zgF&#g)O1^^7BX*AKz#g@j&MdgR))LaIJD@k9WUjR?HsmL4ZL=)Z%Wm54Ia*WNTGBR zHeFsndeqfCb9;QyLo_f2i-Fg!F;LM-ntB(*t9?e^^5R`WWO&EPg%~Ft>yOkeEuqk4 zk;ZO>n-#I>Yp1jEcBO4;G#052Wl}N$IO4gsOR4PI+2Sk;B7xv zfp*`S2k!y*J*%J8HN8(>mVgUl0eDrSbhk$ zXuL^gW`V%n#`Pn$S|H`NT*;`-ZXlb?h+&i|$okW+g!a*cCA^BKyQu=ZJx=ND{9mfv zua=UR+5zq`IjnCI>Qm}=g(i|P0nQY4q%%2Vm8{ZsNBcQDRmk~s>0O`0RkDua=H~X{ zVr5;53F;48u?#Rb!|gr?Rm`(5^Q~QLQP6ZNn5>sbf@yY);XpsjnxPzqpMM62;;H6> zMV2Ix;Es$9bidlZ7Ph;WR=0vrx16_@M;niPbgYeY#acqx&mFdb8eB3E93tgUuS((~ zxtMu#7?dwu6V{c&$8n_V78iH7Qfqd`RJd*1lpL?7Dt{Ggnt%30dRCJh-bU@r&IvTg zJbiSLM2V$Ajkp<7Gm7YZE#iOeTpfq=|VD1cc7k zBk`_t#QLe$^(MM2vNic*UqM+OMc17uWkoyN@Nj zuoxuuHOzQH#>f5z=j8k|L6#yOY$4`gdE>pw=|In>)EN9H>C&q4lqsd`qM2ejd~$ zf$ijEQbJ1*+!%V(K$$(E{>$+lgqEa?NQVIX*3ZQVE!)Nqa;n~I#;m}ehM@Ry;hjTJ z)?(GQba*T+{{VZsUN@1@4EC!YHq`C4t#8h>ja4JcZyjG9%`u}Y8QIil1GP(>ob}?F z5W?|;Qgm>As3`8dEi2e~7gE2qTwDjn{Bj2snQh?xX759nUX#lED+1?p{Omn(TAC^U z0E=g;bNom7irt4&o&Fs|Zij4sMh-jkLlNaaX4L15y}prgJ-8?Lfmp8}N_~~ysc7Y` zw4yf*a)qnjJOy@^{u8!^qXaN*+4rsn<5M=*Q^bNX8oLGKwre*l6p`nG4Nm6u|aPR+qI&fM^+B)&h)4IpT)|4{=t}ahj_$0g`JZP&lN2Dx$0Q1U1bTXC8f=qp zyVtiLW*PkJmiUdQY4-M;EHxQs+Pm=0xlLeO+Fng<9PK(rkJE7=(q8Fz#{MfdD=CsQ zASy`&3WSDwFM*_Z{u zcJcaEuZ1l4UOdxdxcRUc;QHXxVn@CBn^Y0$mn)IIqabtbUNNC6$*x%e+ECxEdS8ky zj8jXyI|31pO7l+)E<8hRlk)F1JqCLPvw5=I#70SlxIaqsHI>nscN_zZX1zMo%kyL* zfO8oc{42{?A2IX&Tj9f5MJ#@L$lF733C?j^qFFz~-w@5= zODkxd-4Z|;zIt(8hr|yU+xVZs7n*b|vs`T7oMWf;uPD6mSBq{VRC!?tqW~FtR5m^Y z@lBa&5=gd@hE}uwTq+RP*5-rbO7aDnrNhM=~8F7(bZR7c^uKZ1< z$!MW4RhR*fn{{VjXd0J>aW&NH1MoIUn%uDPo#o-Qy}6bZfMQ+SiEMSDAvR@vRbcwm z1g>3UUVW>Vu|hc8$u-mX;%G1RaQ5xEDupNMS@!Wk2+PO=dLGol4URC1bN9PcE^=zj z-~*7^2hyrI{b>vc6-xdmbyFTU1NqgW;W~ofN>4kEV?Rm&%a6|7Lm?H`_y)q-`&JO& z;gfDv3BY4n3lq59Frf6^TD}*8)_qIL)Gke_#$%B^X`p9K;|(&-+S~VfciCJv1c}kA z``c)mexGD7^w?P^L77VP&wTZ(8qM{bdIXk}UJKVeBb*W{CYMOn^s6YYuS8uYOkej`j@<4I(`c{vN25_t#(DOoa){Oi2Z4&S7{Y;2 znKlp|Su@jeky0xT)UFmL2Z}R+!Kll0rOy<^J2YmPPvK7YphB8sMyH%}P8`yTU@>C= z_Ng&T+LJh@0g4YwGfO}TiesQXYD!+z0SZPJrAjEHtpgpNDKm;p)75jprC<_}nw6s} zGC>s+3Sc$gZYqe5MY;1t`CRnHU2%{>s02hF4-|x3R^8r~n4p1A?Lfvb55$^NzJvF@y3|h}e(3b4&q|kKGxfrd;-- zfGH3~3O!9fifalk0*Y=ab4Evc0BekjuFHn0-KrLBngC%S3a=|Z4mcG#$*7;y(gTO_ z(8ir3G32Suc)VbMGtGNf#1KZ9*vCK172~ld8LcVoM7JFfH7Nv-YE@oA#XJF;(1Njx zCy|Pg7jJ5t9qF{jFK=2hXgvoMgES0rYE03NeW^Q8CL9ybT0*o81J>14Myj36zzs*IWe+Mtj~t5>CDx_48ManIpU zg~&PmDv3Go8aJ6?5DIu~)lUIi2{niqj!R;$_{43nQlt@_W8SKG7EunZ46b-n%|k68 zQ|QpFT5>2ItAX+GEv+y8a~0fpdipEfIa(4<0Lb*NH^+)sQ;J6ZG{!!aiDxWhz|J|W z9}`0J>C(iA%*V2+Ij)#E?kQhVipm$2w&4bLj;4eMncC>rCu0jczx(!Uqq2tT7?cZJ zr7PF>X0->zII;qW$LCg4#^w0)pk3X4YVOIgd%}MX;PGq8ad$Mf{lHES)bU);jJzXj zqFBvyXLU55RNh`69FA+a(mZb-on+~6JZ4!GgT{Xx*Dd4ScTaB(`4CPfyOuygfzut$ z0CBcg@UjS{-~ra3aG+q0Rk;;~2V9X_*3MZ#Jg>b_fJfymENYlhZtQu9)lXsyIZ-4#dcO_GcHUa2mg!drQQN(KP~G~HKKyVS7PR|SCS zk;Po_qd{SJ9mVas$c0Yb>yS^cHPraR<}FLYH&Vq44=vXPM^0!1&k*Auy+K(T=P&|T zJ`ZjyN;OS`E_!suW@@V+l)+f%sLdjSN-y?x$N@n(ts&C0bhT836DVdqhicLXJa(W0 zlpJtH2k@jHdVnPiaoeRTj^`B~a(YsOgPzoYl<+%LZH>9_NbQqN_ND{!R1aR%g^6EU zLftr~o(D<*ZaUCaOgmjacBZObfiE;2LI0;{O|M2cS_M{iorOQm28zk3w-)B?steNX91 z!E*MYbsRB;Qa5x1(y(3f$0w~d-K28Pa%rO;l+qIvkIt)J0wI2TRjk!p{CN$ZN?>mI zVkU+QSsL{TCn7BJE1z3yKet?Y?QrMKVpcWJ8LpGT@o8;sY{4XJ!bxJ?KMJDqOmFTY z({3Xq6O#B*^yYz?#WaG&A~&K>;Tu8bv^4GBR@fcOrw~Ya?wV3^=b# z@Xw15u=9azqsv0WYVpUtc<0)ja1t^2S9S2lcV@jH0DPi&6wsNZd~d4ClF1#UK2kOg zM@prs_^VNlNF}(oiWch`+1|4}KX#vHy8BZo%bq>+%~kk^sM^eQfE8NfOudTIONn4B3OGh2jO6=Px5JyeYkgK}t|my(MnEialU8+Y zNhGkk`#DBC@(JfW^`r*m+Jsgf0@4XU>}OC8I$+Z^8<@3E8Cp(>h|FU)tThI1)-y4m;e}l)?vyvbr7+!jeQYiF46PtJ?(}ObLM}x5aDo=)Y3fKCR+aQg6 zvOqkaYT_Q&=m`ACq+R23?j1#TUkX$`)$)ZQys|K9p)=2}=9*1XNyNB5YZK2I$*c2f z@+2^z-X&wQALrBz}M2pO#VZSmcie8NHPn!Bh@3)+_DO9Dr&F&>GmX_q5Vk~=%OzQME= zS8`N-H567_ivbP2hjg3&B0ZKJ&QmIKZx!YbjYznQ+aHxz1}x;Z1}~;a|095-Yy#-Rji#%4cF3LX(my zFgdrki7#Qa)n}4BNzjnW$FE`e*A|hO-J?BFk@TAQc((MF5ed5eUe+-&xHU`aa8S6GWo}H#aU}P-`{vnL< zir?{0yL+PP`dV6*^CXOKEV;%2tRD|*o*9bP9N2l6aQ^_yLP=cu)<25%xixE`2i;SI zP(J9YCv#bRbE~_A6Gk!UwNqZz@AZgLZ)Glsau*l?*DrGBD2R=-F&tG*Ci?AVBIvf$ z!35Ad8l-Kd&M6CT859mN?LZQ#Kb>aYx8C-x0n)SXS9-S{X#t-kBJx;N25AWj0Pbr- z{{T(9()D=lFJjv+&DaM#5mt0das92QoOGFZ{A;fGk!;cU(@t=u_eQzE&UvOu&sggc zEv$C!Vdn_`=`oUVReVLLU&_$ky{y*3K2&XmKpvT|V6pK=g=1=w`ErK?kYX7XkK->9 zXu9@`HIz_DPYhX?8*x%m&ippEk-R^yUags-%XR9)!idF`9#ib$L0O!nfbtCF6lr+D7>TRl;Q$RA^p zJ`OT-UR|YMTg9%%%PRb`bSJe#s#t4!k2h(5BlOA1u72agdc;z!ww8B$*NlkjELG9& zOQ@lONkf965Av=dE>M&6ck5hILE_lrXvMYQjE+Xm4P;GotU)73G_u6&{4ASDtY=Bc z(lSW&;d2=NA^Fq1_`keAI`Zbd)lXZNKY*tFvs4_Li3i{-KVc%d(dsf!80f?Et6CNG zaNfRTP#JN-uOt_GrgF1Le+tr%P4Qc@k!f8BjiU2dVX|L>!vy+J}3&fA6Yi_T}#F-)fNkSk`d0iyz1N)5VNk zNN@Y5n{aqKAp7Ne}) zU9QW=dG`I%Tct^->bHppmFGBI@VVltt+O)?+#gENg3)3D*nHnwVPVotRa!|t_oZdr zM$%mUp(bFs<$db)(iaCED>&P@Yz&1xsR4f4b|@Dlfm0UazG|E)<*3ecnz;)6yWHax z3|P}YGjcyFdl^?HA6d7afU?JN2b`SfYuzHpQM7Ao+ejvjh6rRIrF`e{2g3gV@QZkgOK3|QNj`Y9*dEpN@d7cq z$W_b)mw#e9-JDRn?7o?}%(J zEN^40 z&R0B&;~zQeNsSFXD592uiAn}V6dDE;QAGeJG_)R+Pyt9~@`1-E6uqjvpy!UFfMe}1 z0v z^Ipkj++|O_c)pZC)b0NO-xchZ(Xow2ae<1)WyIB8(no_xnN!YcC<`YWi2|&t3-41pl>1Y6de8vEnt1Cz^L4U4r*5BqLYQmpl1u? z{QZJJPs%~!ypA3Pde6i|{)ETJ-?nhdyHh)^Tj&bc#$sGbH5HrZ; zu4#y8x=53TCyI%a2DE%SiZv+N$m`yKIx!2|fee`5pl1{+mN?ET&Zz3w@@zRC)dIL2 z6I4lw<4A;hH@R_&!tiyYUh0s>#Htqnf_ZsF7&; zQ^Hm;*x0&7oDexR%zQ)zwHs9(0vhZ5Jt|FM<{`?FkzALLTmB}H2L9z@S;~YXo}#fl zL(Qb)ILaJk_pX>aY{msvx?3hf*KsSxqbDYW2aZE#sB+T-$4pm4rCHi0$!9Ad9aq-7 zXs7Vj0b3h>dzi&s7di&aC6%$`s6Z;NB8P?k9^QDRq`9+{TS8CBsyRPQ;<>*R_&RMK z32vV8XGrAo$RnEd&ky*z+d99SfouNZD?aMCi7ah;isccI;&seu> zT}Z9lFl9hC^}wkut?u=Eh|&Wj&IZ*Ccmj_R-7U_n^4pSPI0Ue*-vwM-+gzl#a%@l! zIHWTo`$D?Y!oB*GRy+}c395R{>=Wu1k=Uau#|T&BA2)jH{B5h*>J4oLl!ewZOA;#w zRfjpBy&Ix`cf9fCQf;#WMt3;s@}AO^X*K{6aeyg|oGA0+V(L^`PQ_98W<_>U}5&oQ{;eGDRQ`DGyImLF#BDngCF9)~eqh z+_^rTDtzO$Rn!mqJB;Is0P4IWb9D}t6pd*b+DD(>5%;PsHvYrNmS)jnmM<`dkYu(` zHIHhy6Zm};Uu-~dv4PK8sbe;)V;#gcJ6#9NADDVlwg(x^XQO&jWQ?#MFh4S$^!%wA z$L`7bhou4-PUG|N!|t^xW`0?*DE(=y7j6kAJp8B9hWnu(hXdtrS^$v?Gj2=?2UYc| z?{KBLw@uyY`-{H=WaxM~`@)f@h_NzTF>d%c6v2@-!v6rzvI_1#8OT`QkcxmrcooB$ ztcM6ZK%r$90Gg~$V^HDAQD?f8RiBr2*ST)TD{ zHD=aa_#VXU0ZqbyJvppziIc6ri6LVi_G@+MYPu4OI^LmXx)!FXBKeLmFh@MspIJza zbqc!S=x_i#0aC1S zOuMbXhGF~};Qc9qIl%+gt4{!KaZ*JlcswxbDrErnpk{hobDVKjp@pQ>H26_NGs>W6 z>sJ;oI#U*3vTB-q_#Y&ojP&bBN3d!yVi)OFq(TK(k$y({PzRv=Hi!=izUDh* znabAnjJC5Zk%?dujtC%TxD6{^Hl7uR%F$V_6_@}z44$=*58KjjGx+nLyfZ@tYJ5=> z0c$uX%Z!v#gBY%U&p&32`i%2kHoJZ`4+GzQrvmCMWP0;l&5!(gLUWv`=|Tc#A1ULC zsc?jlM{2wQG>m|rf|wbRtFZ^QX#!+~M>>a2z>MOMpdA1eDC4~VRFcTR!fR3j_ft|z z_EUl9#Jlmy996i;$OL3m=@d_bV?up#Kp5UthVCK&d$Ff%)3MAT{{X;^Y?xwP{^>dE z#X`#v7%`?jF+ddJnl(WcqJ`(69cpxo%2vq@De6rCgK5V ziX?5>IpVaPLsBXMNCG}UH2nHe+Lx)I2dUuZsmcHbuST1*j|0#$q5lAwTqo;_Z}!)P06+02w)~ch z1;a#~FT)$=?i+(8x7Y#kJgfn6rC;~NQd33S^VSmA}2U;yw3(zrEf zdL4#~f=5KYIn=R(ax?T4f5LUB_qZQTqOdna4;w#9Qqf>!CJiCj=s)2&z2S|?9@|A= z>R0K1cO}fyW#6gA3nV$g*+|ktbN;W7Y6oJr=!Zs9K9r%M;|vebRQ_y0a8ne0q9r|0 zPy#@R-@TCHCFFXOT_ip!xOh}WcZN}nDc}#Kard{XPSSo;=~S(nC>)h?a&l-9-9L%- zATlnPnvebxeNU;maa` zI=B?3;xGB=w8F))GN({;Op8>CM=|huKNm}gVLR2JI1>= zWK#oC+dV0pdFGm}k?l_$(iq_w$319ra5LJJ9x11wpbGaA%B!|DCwF|(8%aRiUNXbB zIjQE9#TUqc@y=@+Uov}zl_Vj7`=C$;t-j%va6#@W-JQJGmr>hWC~0IkP);fxry-bf zMQiv&AMlfD`?HPz0MeQj#ne1EtLgB0w^n3D-I0T1@~rziS?_KV3rLz-o1(3Hb&cKO z@eS3Ss?TM#leu^m$XUpAuN$w}R2bS_p>duMT6Pj=J9h-Ovb;A4(aMJmt=go}w0q5e zR*J^Ses=rJdLs8Gx4t1DI{UHUumsmd@F>8(AiqgAiJB4R=cyUyv8^Wv-5OI|%-*y3 zJEeV?Eyd;ITw|9)0MFAE=bkGF3G|>)eW^!E z05Qcih#Z=BYQ4%CR48tyfFqLfINP2_u&2d+1Dprv+*LhGOuB;H%WmrXMp;PdSe92` zX=0L%uDuVf7Xz^eG#bs*Ct{@}&&$9yrc?T3w1SI39T4qV@QthPMKoRmO;Bn16Xrv<}tpFntj|9o?DF9Yi;0I zZnSosTuJtVxl!9R0l}N4Q;sSAaBwkIFKpzqyOImEWR*`(T3C4Cbf84Ubs~tRe>D;X zEg?K&n$3*W{{Rg}8&HZyI3dLr18y+TvPQRdPnq$10 zlBh`EVZ&!@dSboD!X6^B&~(R8g=ELbqoF;yuR8dRJ4@l`l2iNHu2s)JT6YsX{wt!m zP%~4RH=mSaHJJ&?<2+T^eJX@bs0riot5HM>;BY>jYP>{r$P4RMh0JVrDdW-7`^Z}5QQAb_2T@Z=rAucF7n7ox z=jAYer6P?jBfL3ddwSoS1&+70`4y7b_QzVi`0_1W9dK=wOY2Znuw;^O0 z#ybLQ&ao`a&giAs<&J2uk$1z|JfJxbEpp2j_}F za4Ee{H122tTLPHfbHy%cr>y`eKD48)H>cK>PH6z@PM=x<>+M13p40#njsd73J(;$skFVuIHm!+IiR;nLNS9#2Ru>$IqOw#i7+?^w_3E^ zRa?#>f2V3gHGDf3nD(&;NzKtb^YYagZ7r_u=8gw=ZVMfmJU6v!X!jS9X)yt0pJxY& zv4VN3S~M2(>Q4>(G;1R;j#d5!&jx{nNE&rMLR;QMHoAe0-t^1sQzEp`j2^6`x2;{d zibcL_dzQ`2JS5|!i}j^vV!)r4P&pp7hGf}X?0wkIKU&wb)c_Si>b_&Wlv})8SmX!I zXJ1=xQ!ER}Ib|KHjlA0*rVTM2G^)Y2@FWMXtwhA{&fl9DE9+5O>UQ@9Ae50OX2%(; z6Oyu=owBbW`p_`}$IPQCo>$U`8-_+o9^L)BFIUNx~c6*LzX@4 z1k6GH6YEiVkuckE86@=stv$*4K|i}a52Z&UhT>NFhuv>#Xa<$DAmtG4)OOX zt#1oxmO8K6UhX}{Bq!x!IqlM|U+8vL9vu5g#6Tq5z+Df$ON8;6= z;a+zIMv_-EveTT+hEcPLUaeznFm{PRp% z#RUO|-*62R#(NV~E+c3q9FTg0TMo-8+T5wA9X?McagqEEM^DCpDWZ#&5<)^;FWz3v zDT3=`5Ws>ugG)SbZ7x6~oP+C8-k`ltGB1+g3>7^ZfEG<@{lU*#dPY2o~Ewsy3Pbk zpLV3h&PXw?ezbsO7O5ZaE~b`Q2LmU8PMcOsKn~6I9MRnnKX$*1Rc5lfV}^<|p2dbK zfwKkjT|^%n8@kdK9l83}bXNCqoOx(Ij4E)KKwzQ|_!R(aCa7b!@{-=yrZ*VIN4{y1 zYLg-`5x~TcyvdVUqC1oPDaZRlki~V8@<;yweNYCIY7)t1HM^uGB^W=us*s|hB91UH zDlrAv9IRtLt|~dCp5K`eWBb7IKpKl427PIa1!765-F>N58GN(b(zQJGkOQB}fF9V+ zDFLY2fjAVZ*q~#b$mCXS_5H{MTCr9Yeqogu>sfa(Kbe*ObO^hpYBRJOZpkcq5-RTe z)-{?qZ{8f|-n8Qw7@!GQ@tn}P&oqaD&uT@IKF&Cx2|&+EcG_W{7?X3zpbos#pu4u6 zNs2{!U?w@|tr^7*aDT#>&Btm$J+EN4!I^-k#d~Y02Us5@br{8S+J^HmBxGWrrjZP} zOoC_v-QAkAAD1WB6bzo+tv0c525PYFDvE18B*lzSaDQ%Oqj;^%W+Ysx9O@ znF2O&In4l8cs6w(r8CJ~(ZDQ zuV7>!DjIZJNj&Tz{VP&Sg^dZwtjn!#SZ72C2tDW#I@oL+u1Bz>Yf+99ABA6n^=6MF z0lU!Bvvq1fXSK5TjDA$6(NFxd{VMQ~`qKG^fthWmhR?`B?Zrg8bA!04KZR|EBds;1 zWf@*6h-I8hZx@+zG0y;;Q@^z>uCl0C@T_b5*?j%3eq3=??UpFt5ohK($ut3W_RL7z zq5N`bkz14>H&a(41fb7aQhjL*MCngo(xV2H6P|dW34!B-NHeyC92`)i<-w){CSb7c zJ*uqQr!y$({m{#v_o9TNTaN>g{K&rShnD2P7W#i%L87qTyqv@kYBIxUj#Fu{?Rs z4_e34^$U$FQ-b=&LX*UDJrA*}K+^Z(rc0Swl(ap=O!%{FEvkK{(`4X$*=z!RxUO%; zo-=J~Ga9g1M?j{$*Kk@!Ld#YfD{9G*z8) zti!mhY2q7pk#eSzx;$1QWFR7zC!kT2PjzU{*-_A*%%oP&fX3evTb>Ep*w50tkG0!t zvfXL7*67ZF?T{}c9mRH}bGNDGtCnqwtju}drA{KxOn!A63{V4e z#TlddQf7b@42oK96acie%27ZIOq8@}T}DdtfluvD1R4ORKC+JkqQv2tW9F`M-V)bE zmjgX%HkPAWGU zLraosyz>waC{GnU}7NXH2q zx$U)cQhk!^88*{_{^74h@LcwKcxSmFe7i>(HPs&wX@Gt1zwFkwGjcpU+uRTNcboqB zG^=HJ-*(R6{UbH)W5k+P@4Ny30CZE2iFDJ^vG@T`m5Z41Rns*RIMeRWr|yj@(zPM; z9XjtGzEQ7eJ}1+M@tTbIr%&wkS%)#?)*5y6a{_exu7Bx~uKxhT_gB!W#XY3S7$4js zwnvKeh zPYhOXaXIqi3%HZoyhFq{$*AiS+`AL9IU!+- zaQE=XZj8*$j0!cLU}Ab43|8;L*pvHW85m>-$I_xjBj`^Ei5E%&VS+F}O5;3u#OwTa zj8}i7abP~CxK9}>w!J3r?ux|F=T(@R#_=rfnsw1u!3c4R={%&_^03dPQNPjQzk%bD za~NUC#%Ke}?XNG{epw_SRqJVWDWuwEaeRd4y2lMLky$J zD~w|}6-!|=Drus-yh$z{$&Es&J+WFa!*#4(!vr2=(Z;w{>?@R6i*ne_bp9XJ&Yqj& zlWdsBCXxfE@dd2*UJAHdmGa+m;Ah-%UT^k-gFOvxc$36edbDB*W-St&?dT12l4OD? zV2LHaxMv$&?LBHnyLmoPNhEsKaoxBD6>c=xpe{^@(vZnP2$&yy^);8P5DK6fImxY6 zg|JB&Va?X*wP$0AuS;zys2n53M^mA6fuupd1PbAB{A0rUSbD zX-MOWX+K(UAkq*Z!S<&gr640T9y)ZU0v^;3xy1&Kzgj>!bM&M+6omGqIiLmaj+I{f z{Y#OK1y9sfZA1P&+-CzFX$;!XZ6>?Y;D~A}s?EeFBnrw1mU^j4Wcx*?PGkUpr2BhS zzYI@r5Vk7#bz#3X6Kt})VIJw=xGlSIz~uIzWwj*~MDiJ7>lCBXmGVdjhwOc7IMiCk zB2r!k>7U`L3E@K#xA;$`0}q=lRD9raJ!>ld*K(O51##6o)~+`;7~#O+`qXR-l2m^9 z9-g!T&%q*z0VC!E8Lil4GoTJ|!=n>bZfue9EGvfoF^-0k*}yn&z5M6{Kpn>naUkw{ z(t>tn01b{;)|-`)M&XBELsI3pe8UnB=e+#zrfKYjct1&-vLx^#M{jP&?qoq{|;ST9jh zCZ%Y6Cu3tCT11sM5I7wA)n6Q49XG}HSBe4K0+F8hrb^t(yYRx=TVKl4H|{gEbmF;- zSwxPAU+)kzTl&9>X1LSt;_}g&e1peK*B_@mt8)`NU@LXaNk?;e;l#C?1z8z{tGMTa zD@)=1;L>leB1Q9MU~t*#j@5^#_>J!5w`Pbhl)G@Jt!Vr&vWrmEwI4en3KqtC5^11k z8LdjQ+|O{UwpW#miVq!oR&*pRq=gwh`_{GXpOtra9^l($UPvCz_qV^;)+cF<~)3och zlo2?{BZ{(OgZ_Es{b>O}SV+#QCtsL>o!r-}Tl_xoz`p=w4MO)q+`mLQIt>WWdP^tSEjfg75IGw){v^ZBIh2h-n_2k zS%nzSBeO`yaUIE`$p)<1@n?YN(UjfU+#8KQjK6gH`&KrEpv|l5QCeC|q`CRqoGSM< z>YfAEVDT@9uI%T;im~nFb|S0z0@6JrLe#Gn7tD>D=Eo;!qQP=6_&_`}VH&Qds7TV0 z&SVMtR!@k&9l*AqYw-2cPZ$KWZrRB8HOy+7yt= zbn?Z*iI6GB*Y&3O34Yt+i#5qdLU*n)+JI+eHiO_Rdy{O|(JaaGoV#cF*PQsO+fTLD z<%dcC0FPAz9Os_(rSV$N`#Z&o@v{*$VY8eCImL3ImXV7#V7Z+mNb6R0>=7&+@$v+2wx!p{RnISx-CP$E4^q7yp9{-wtN_V%c( zm&zc=oEn*}!F{3CvEHVNF&`Z$8G0rq25IE+gWjvFpx_#CnR}5y3nU@)m86Q?MshmS z(p6)@8TO}_13QQV)_^5ez^87>=Bt?(`|3xnA(eB%ADsd$GaQqeH+$7)bR(G*53LI{ zV}`Ov!utuP|CxQMLN-#kQ8BaRweS?zViNb zTC*fm|u6jHx2- zLzOkkIfh2xzvk{SS~izxs0QW&fGu3xiBBVnh9rg-%P8&5NiEuJ&heVcmQgfrj>L1t zAUb%SIbqCr;B=_ltzg;Q2oNf{IqGXpDbeC~-ni5!LF1chVVR_2G{>2;khYl}zB z$tJ*<;}nN;1Rg1@!vr3cz2YAae`CQ5HNcW*`^XmG@gT6 zlo|uLk2OjjfR2^uKM1^47lpMct*^i1#_WP$A906zd>;tBM=SzHlEoN|`E4Q3)21ty z)iitE67j6{OJ{;n&pjA=gXvgHmZGv|s`1qNmOXPyk^wY#&@vH`hUfCHHu#<5D0Mqy z1Oyn@JALcPt#wbbCL@#q=*Oi^Hl}YE=6%(aaPBVmE>#m&9iUyur)zfiGLPLM!(etb z+|8?Kw#zK~Zd!RpS12wf$1Z z>>}Gt*dQGIwZZ2nns6j^CmxjUE>X;KUFpPq4NDj zU0IBP7RGBiC6tUG)~s9QMjO_EEgqE6N79!$98yvMKbMv2PcIoWnXtwD+$-_?d|82*}Cw`qz|_K^bC2ZBJtC=xKvQ68vp^0)j}`7ocE>$9dC;=an9k| zrSOI8+g+fGA&Ji()ene&(4c@@V?1s)?jz%o-Hx<*xUK`m>%U%nKDaM|>?^U2^v-Jiy=Z9M$Vj1?n*cU$k3(wW|k(FQa8+ zJ*GR1pYW;?ly&`9>OdAYJ4XRfn#u77uYIW)pt~{zgz$_A=Dv>jdu^rZT0ECG>j_m& z%v=Nbel_F&02FRg?$Pd}MNcy8a)7wN=ZX^sdFn3Okq-i)jFty9tlN3bStY&5KJlpK zlgcM&B=p5oW)68h>cYAZ0}Rju((*-&tDO7hqVr^Vw{JUf(yRd(IaFMG(h(9J!7#(# zfEG0@+zz!V$mvyl_Yw`GinY6UdH`taOgx+pO+AK39127jLPy@92B`AM$KI)8I8(Q; zb4n61jl`BcX)t*zFuwEwei+~=8d;Chvvs*)xQ&(^e7p^{4Dyl)Q;hml5hxf3obx~t z=_S0vt}%tyMPCdlmXEeUT{V! zxfvMmSP6M93}ABHd(`c9F?i4~DarSw2C-q10p^o`%gs@MT~Bo+vBrmv=Ydq7NupPY zhCXkb+JH9840Yqym05Gi!St*duO(!Ocmgqj?@=4cjEv=uPg-Dffq@5+kF6Zgh)xVKtl0$-DAc~D{%-vcDO8t44=4A{=rFJ&jtXj2%HuESRP~hXC_O4q^(yldTn(OT_ zAwlrn<&BseBB`cs=?{Dg)F?!To2B;L=*M;sjYs<#l6^Treq zc^;K80gegVAn0+{ldPME5)P_IS^%#M!0=B>ySz&gUIPw>s$55sULnc*%Z`-Ta|hGh^me!5?{ZNJx|AZV2dUa#~)vlnevwKnWtdF8CROllMXCUB|-} zcKdN{+stGGTu3enXj^NJtLt62!wDpj?>xpi^4q6sXo(q`9;CJw*Ktc5Jd#LqbJDT= zZG11UtxOTfRUyGRJ#$qHUbK^#cbL{f3C4TXsBLa${{UG!#zN=kq%k}jsEs#JX=RDZ zl_RBG*0o74>~3O#O7DHc1GQy{?peaZT1Ur49Ma2gsimt|!%0pUqwaa(Sx0FmYw$4LVue zh&+JJ_)}z~jgv#Wj@EglP!b*(imbNL+%yXSB4#^r*w<04>$Xp#Y7r!ud5_4r>&hNCfGL6utGa!AETam_MV_KtEYmZNhnpLcT> zGV#dEp8aX|dW&6Jv77+;W;fr#d>O)8Q(#aA+~VkrSUSdWp4Yu=P6 zr9x&z|DKwy6ZREU=6CE?#3Yg5dq^UExbzy$+2{41{bupvGg zvb?w$y^WV>$6WQzI@`wH9n<0>!qO=Hl>(aJ{Ac22@dfEJFc#`Ist@zli;JnyyqEqW z@YSRilC{OeM1JTD4ZW+)^&LL)EmBK4ETYx?coqv3P$_GOXE*f(&ocy#Rbe z(p`+N0{Qs+-~DhNnG?_dv;akhyNO>~KyS6t~0B{f1rTBZOL#k=ojf9RB=4K#! z5zTSFGx4OF!u_5$^5FjH?^s$ExY|wPPZO13dV!jE3m0|$7V|{Cduy1VZhvtBgBGD4#EC20Wa2M6@5Zx#GS`%R-;*naI;V3F2< z)#zt@K-VMGd`Bz!z{L;l(C2|v{5tGBQ)4ZRg^b@WQ?bXbaQ704-OP^ICm@>M@J_c5 zjjO>ds$`8DBR!2PjqGoHM3!aOHe9Tmo-u`#YSC+iC%!(FPGl24)D6h=paxl} z4duW|&tH1hI&vlj#OWK6oxN%+TV%9=F&UWi^rn%!nGRU<%>XUMk+&+yz@v0=-ley+ zSrwjX0-zk6(2gG1sm1}Nhyxpj>DrhHC6sEL;E=NWRB&2{Y`c)PX4qgjUruSkdgl}Y z8`?#*v=5whsM0O&6p~lor;Gh&2NdYg`GY(T^bBaVwZ}4?_W)2Wtw$n4Pq?9gQgA!e ziWDa4PSAP}S_DR5wH;qSg#zBljPGpJrZ}X9o+dk&sA`Hh)tlz%DFD7jm;CiP`cPxE z#siaMF zYU#L*xsEY-o-$+Mx?t3S<9-BtGv1NVp$s#SdeAYp z?!ftSjjT8ZpLH2Afq|Ny7PXxZ+DMJm=QQZ>N_}v)yO+fma+4rfYBE#p%-YE9qqz#Js8N(y67UkvN3c#FE;L9%4^TE?<+i?O9W9;edEIIbt-4wD9@ z;iZ|>eWn(~ZQq{N&}qIV(sdg(xVO3+NY2s@MR7hq@ho@N?QL#x8l3%W&xO>H)hjf3 z2~}dq{f;VlS7G@xkF8Cq`AYd189jYzZ9=%2dv#KKy^f#l>5*1W((4{G%viA#%IW2QO$YtBORir${aQrt*X0Z-^N zK;nwfk?IE-#T~t=I&`9d4APE1wBLU8$82+&1X&HoUMY>x)fbh4;NVu4nWtXrPO;g* z@{{~Pa6cLVtj&r@-4*vr3n=O(Qf|3cNE=rbAwbG7L0tuXsv$=>5HlAF)Z0I?hB0LGzfjowfJe0YLj4h98!28jy8rlLkLI@g}~ zwRi!94|n*%)7PPwVIm4xzxf~&=AGUNh< zxE^q$rfIEcj=5zV`&QCuTCr@MI^zSj(@d8|)xKhM`;fl7O)=c(TTYD2@~2-)2ALN; z6Iv~I1Yu!F@hJPweQ4kFHV;uq47Sr$0qIX$1z7<&=~u`bMFW-@pbAk$s9c2`heM8) zG#23DQ~=T*SoNuJ2LAwhjLKtNgUJ0UfuV4zZvsaSFuam_n#8z3(nw13d7)>Qd1q|Y zq%(#mIK?0$j@~lqzn(uTjja@bs2WM!;ZzRQXhy>rr&`X|v&SmqdSr}@(*Qag_KO?b zBB61eo4#N@#ZtS39jB?!b5~9E#J5c~!|p6ds3mNw_UAN!&ud}k9ys=1E)|ZKA0a&e|X)}={43Sno z-!0$z@;Dr0iUx~twik-K5Lxh!Pd)R}vQ|tlH1)qQf>#8NlmTv7q_>mzgM4J*Qwad$ ztY?sYDoYJXZ(?P*814;MC8B+-K1v2m{NY&f)HN&aW&@;yq4lVP6$2o&XQA|`f_PUs zAHv?0fL3puFyY4pdem17xl6(^+>c6m%#VS9-ABDRInF@Cj-wrEfmRvGKR4dRUq)Gg zR^a~tdo`bR5praNHb>r2I#Xhps0EJFCsa3qHbJRc`3$&d zeqg7iXGf?yi2}x7V-Q=g=BwPz_LnltZM@?d%^)|v9Zv|=UGAM#e6|3w;Qq?pY z=%Hk1GHyZm^%cfNIE7Bja5MF#d#sLOTz|EmX#v&gaZfjgE$?IlYg{S=-mQF9c9UDv z;f)x$x9#4v;eRW@Ry!3ydDkFz=9}UTo8)?X8*orYO9( zA9PhDLd0zuB;Wzwy~oFTzKcGH)^@N%9n^7@5~c?4t}Defu(Ik9N4SOa21)wTMV2Jf zFQO-W8&6yo8Lrdd{CLza-b1qqf=zdtmapO4T`TNqXKOs6IB|o|x$9nI;L|1cy>%2S zHbxnhJ7Ss>*yMHeX!V=ln8=MYZE}9_%~cM_2OOT&XHsIwnYTOP|V*Ax%3;{j&HI5nxp zW0U9&F6(Ul$v%_;88(^bIcOrwjjJ|(wIZ89zcg|a^`s4G5Biw^`p^RlTJSbYO@FbG z_ar8z^DS|M6o>Jp-)0Z`hd=Nt0IVXgJjo2%_B4Skl;$`jTz|Kkv}Cj+0tWv8zNw~L zP;vHF{{X(I0f{B1K4_)S)}#i|{{YJuKaD7s)PeqpLH_`LkWFp7<+nfg-2gR(iySqx z{tZ#QHYe`dzqsF44A$xg`Y9y$-$0rSf5*84{ptXPBeOy_+OYTEQkJwGZJR&uQkkIt z0H1C@-=*_y_&;X<0LQ2T6D7C&`;q?u0;k6`Ns|l!N&Vt;N1bi|06xc$SEq}ZGsUnU zLqNu3cO>MV^%-2AdR3*GBmV#_20pYI;ve$vznuV9wUol{vL~4n55!ci>R6b8R6Rkb ztiW}FPrWF(LH__Q=|G0XCzRWx>SyG-{E@xd;nZZN- z-ZM-F?(92JldzI|;*`g?BAN%vaY#fnNwyP?gQ=v^G|fX^)DjInfQ$^uBXm*fX(dw8 zFvnii*?cTSXmv|eV3!gAQ2Sz<6Lu3&@MBomNj!R_Gszm{##b5ob5wN?4c*&lR{ET0 z%!$`B5AJ{UtGClMi9fUM;nl3dNT8IHeslR6vX^k_`X!yU&<$-O?0w#qe5CUnJ+Fp* z_;ks>&_Z4P{{WYj`c;n+_(n}S%31XL^}1;JXiEIm+h170Wge2Yjt#hMFFCB}bbUr2 z6-{?23#amVVe@h6M<{bM$}BFVozftLyRb!HQcZi8hCUf-sb-Sv2yU)eWtVYPUtx;! zYxRcL#y0cCfo_*d#DT^)SJZaSlE9M2LnEjvM{!&jnv#pMI%vf`PdM>E!tFL&DJIbs zt!`0rBivbA+ml`|aFSciBvPSS6Csq>)?|cMW*{gBIj@?$dXbM1%<%z-JmaTYniU+K znROzTsO83~c>!OtOCl>DmZCU)qSna&CW(!5xXE7^P(DVIUD40%<>XENe+Lusd}0P)hJEAosAZtO6{W>I8P zjt8wVBm`5`(*ev+OjL+?;8bJgsZ)W0Km#fCqLqmQj%c6^z?*w>OV3JseQ7!h0B+t6 zMJCaTabrkn429#U8v>`9$Q)HBW+$f<02u<4#Y1s+qA~{u)|L6rY6)T+PC%pwocu^~ z@Otz$=fL!?{{Z4TY>0E{I@bZ(wx_X_w-%IBGm21aLP}D<9lKjO5KZNh0vvf1I&>MC@u1JEsiretbnbfaR z24azu$pe$^Ko@ljpS53HOuZy>!lF(<7~-YWZH1-u&>7z)ba&f|p_n->Vc-CiNH!tPVt`8L7HM>Z=jBCMufPE{L(==() zLFQRpmG?tia%uMy+Y57Na*<~(wFnhJXv5=jAo4$X<(?Y{wR8S7@gzE(q*hkQc81=} zbK1Q-!k-JYokK&O^HNKNWkSIDxE1F9Ht^++k8KsjkdazODnqtJh=ImHK?Span7H z6Xt+@Dy-X+joX3iS4)k!^4A|qtuo|-y$@;tjwit2eQHhQuctJ`kF80wieNQENh+f9 zSb<)(p}amE@QJv#L^8`JGDjr)*O%$({+||mFwJ@%uOR;bgg!X(0}1%&sHTZ!@vrJF zwWJYYhCl+Mm&KPcT&xVy22;rOs;deuyiC^%_eaadMRDsg-0Mv4;IEt4)B{Dr$8#@< zbpYoAJQLhjhJ~$MY8Oou`*!SNa4VhE+Q}g;6yG`YIjMXPGMkBA*kfZTC+R{99(8$c z!usT*<$T7&el(G8+;@6ayOqrHka9P-^Q!xPV~q5qP`T(SLHW6+w*XKNG=K@=u~p?# zK+RYj=8%9u%>Ynn$s_qy=#X>tqh~yN)V{O;tOv`VN~b#TF;?^UeQGvc_#Tu2Sz}|2 z^c5k96aaz6T8=f^Ks<_LebJ7T0xGmadH1F&VH^Qg@$=MJ8_J$27|1v6%j5&bDZ3Uc zvcwRcl?3kP!X7Ylp48y7Tq>#&$3jg2X(i3I;yO?AvW%fVwL%!4ZUFqwDV|Koq>#S6 z9<>rYyVR>;M^Q`(mLeu~JZ(52Q5+?uD#IL+%}N-&+q!T+I!6{rAZ=? zh6H23YMK^q{VMd3t-=*y^LqMKRgICb!v=sS`I&m+t4giAsT|eF&PWEPdv?Zl@jw~y zyD8(QYhvAm$Px4H?No$8ay!(Kv0ecpfuh3(i0yuclzgNPs7`a~N*qd|T;zKCRA887 z+Q99k1b_^H=j9`Yr=SIxF(OcSZ18FkgzLy>6)+On|L&}ur_d{USb`^M^jm` z>S<>!)K>Qnk+jTq^XtV{*L5SS7=F=k>>?Ok3{nG2!4M{)sZ6&k<{*fiA6mPvTG?CZ z_X@z}SYQs^*EOTx{{Usm(py{Z(^lNueyGm=eNz0tJ$Y3*Ogi5JSwG1u!&_-e4n;+yZYuNZ6r(wY<4;k9Oi z`)^P!3vM?Kcx+>utj=U1QE)phYeQXoX*JzKLav#exL$*rq$Nc=ZG)F?GJ5_L#yKC! zMnQui;g6*(5HFR!X4=24Itw|zXEpSGda@BnE;O~E z?Jg-nw9h_isE64{NnDSmIJKY|-1+wu2$wck9xfLnLusJY$l}86Z=h z3o&cw37nkcZ$du`213td=Y*Rc^lr2M?7xmFo2_}tm+}=ot&qDv=$6-WXSyLGm=SKW zAHg*#Yc9JbqIjZ$VwW-8M#HMIVA2M&Jw*BZC;?hq6~-c%=iZyePm7QPR}^ z0N-Yt=2{=%mmRsKi|q2sk;e?rBb+L)B${I#=i70MbN>K+Q-#C?;M@NIek{H#&*ayoKgm}9U+sSdO#k0ApZczxjwjRUp^%yi(-G^RE;gLKP)f#;*-v|BmGqumPkVGwy_oy=+e9RC2LkIt0M76JP@{&Wf8 zBmOEzr&V!^1KBk=0rbzob(-z_Yav(qV)hM1Uhkom=8AtJivyUw<;Tm5Kv}|{(aB=^+28=Khy#T zy#O>bN%zS11GOnr?^224BmGDe{{T8Hf2!&4Kor<#<;_@*cJj6|p(CSr#W|#pAL^8T zG@fE|Jdyd*7{@suT3BafQlu#zvrqF-f6EYm8c#eA`FBiH0ylDUSaN8BSBQ|f!R%^Q zxL)w6rv0IF{-r1o?acd`g7fK2EBI8RbsTw1K%8fY){qTF{m9Q=XjML01F_8^eaD&+ ziZRDeLrh~=BX^}bF`eGjuEqTT^c5K`8;4A0fFx1#b4sLd7^ISBd}nCKps0&5U{vCe z6FT};d5Kgkq=p>`s}bBc@gkpk9&Cg1C*@2=UG?ML#3GP@SGYZEQ$cd}!Y7n%UgY$u zcMbvO2uFPFs{a6M$SH(X_86oiq@FLAD#4f3RX*I+O%_L3o+fg`IrgivFx`deObBs> zG`4zx)8|Ri_DH9U98yWdFU~6!u^=1C$e<5HpT)N~cEK7~AdYJ)=T^9$0SvOU#yJ7I zRwjvUaesRqrJ&sIa6P^2xV-Qs&ApV9E~9TGh?|Uf$KjmSYE6-dn&sz_6fZH`7y7b# zt!PW)%}VCq$(nM@j-YaWwV8LJUfSsp>M|;|yr&;2<$kqx!@}1Wnnk_x&9F-@&7^c0 z#%Q|@3|p5Hu|Lkcj|KcfztJt0&gT=_uLv9XMOM1-4Cxa!o%~l5D9MSJX+N!TmkBMq zNgT*hL^x$Vjbm1tn)i)iD?JZc*1jg2+fy70A_QRKyvJ0(`&Gk8*(cV!?}uLx;MFV> zQPx%3DNbUATW&|GBD*b5;b(`hEm*wtX%XT5eOb)kzU&U(?Fed;~bZsR?wi6sZ#m$zDs9G*F+ zbB{`599of&CYpLuXQeP4IX!7X)+*A%@4H1?nc>53=< zkWd1H`P3H@Y+Tgi1m>c+O~CO$6rEj|Iz9mE39TDhi=Yg1S#1M``2$t^RVu!e47W|^ zG^;_yApoZg9<Co5jH;3)vnAs9H%e)Z&orFzGJ z{%r;lIl~cI)G8-rgkzdtCnqX1P@`ZDYTQzB#xYrxS1E(gijj8#>r*oB9Euh)7MKk} zGgB`ItwaZ~r>k?0lmRbMMMfC(qL>-%Iiw0|LPaJ*`_ciJ=A6FtG4D;!S^#9=5O}I= zI|{WY1KOZsGnzvpDU9cuhGjcVS?ljimxMXRAUvnyQO*WI!4<&fyRV5{NCt89XX-13 zQJy=ju&)elR`h z46e}(U{_z@bx1B_X$q*_xUubu<%sL)S{fqU-QFd<4YW5_^q>t5R!=)oyJb6rIXNBb zhTNW&a`GVr^2S>%gsCE_s}01SDTvF~h9XhZEnR2AnPZ1gMs`&s6(`d@>yp)ob91Q2934+N&!t3)N7OohHW3_x2>k2K{7UM+AiDnmdc6-s47yALPN8wddB2KA zb^E-3da*P`W}hRE%BgA^ptH9!7631E%}KC@=DD92ZvM`dRO6@fpbaSeUZbq3{{VcE zR^#z{$?`Pl5b#JRrFonXMpSQ@=eWga*jXg=tYUqtd*Z6XJw*8K+B+YyK|H1=A2HAA zis8N?YgQVCg{8flv(AoPjyMC}yA31ZT3+b0U&*RE6o|;7W9jv-1H~E)dL&Rvvl+~! zjz%#}SVjf9pD!hc(xw2M)1p%A^2hko%rA~WQT3`5BFCuWoO8!Yl1v1^914fi6aWFa zxjpLCX8`R03a=mDsWyYbpb3dN#^t7}2X#O}W;GZ^>J33Nv}Y*X`r?2t$r`JW7&Zqa zR4i~RjkzdGZq9vbz-`OTFf7`>$%6w{uC*B-@3AU9dR0p_^KMZ&=DU4j!UXVa1R{aw z44(f0oiQA2`h=|>JjUnH)hH)1$aaz&HQ2Dz7SyX*#17xTj%x=(g@3kUd@CxF!*w7k ztnvpN!vXFMO%AaqrR4XJ5PrN`_U*-a7ZGSTs&S7&K=iBk>dr zfFj9-Vb851E2{+n6+!C02yi_+)Z2fFdepJ`!~%fh+JGS1{d}h*=}53ZK_yrb)MpiO z?k0q&m=zxN3*AFAd1fFF_lJ4_hxmX|g&ir&CNML|sM)rb9fwM9QrjMZ+)@KgW%DzRwC??C zy}E5cbIn)-y)Yz0Qv>E;F+WKVmLRGm_ zKn@4x0lV}x=Uw9m0liOpVw`Z?si)&3Yh&2Z1AKr74UR?5=Z;ge2N)TwzZ7Wk=<-^Wa?3Jq!R=S{ z-CAuuFRkMM$1IE+^Qt~C)MeGAv=PI#VO_s_Iiv!3KSj3IFXWDGz#?wqw6#ADTU%)t zHwt!38~mp|vsvB}zqrw4nqMgkxW~+CH7!c&@(H0J1(Ej<54`|(mWR#oC7>;wPPjjf zQTTx|vhgjX@ya8R+m26eYW9|dcpB9S!TUnv^QvAvvKo(!Z6T5N$M$eI>z-wY%Vr_=5rTVUIejsUBA z&xbTi-A?A_>gnT^zW46{uPX5cwYHzDTt#asn%p0ekAKFS5=LN*5KEnzKP`JVge)}g z3wUBX>$v{_doT>{%aiS1FBxg4UCaQ_Q`lFq=$xG!I7 zl(k2>w~e$VVH6|eJYiE6f$=v-u(;5p)-2-kU081lFc=?E>s0&)YoJSJlWJiN&}@Mt z9D8xnx?hO#z3+r%YaNdScysW4Gyn@+a#{m0Rv0ZqlLePTR zTLeUmU@S|({Hwy?xk#i}jsw4-0QIj&@aKZ%y^Sw5vG#Zf+#}t|`ub8sXHlp}r1;B2 zxN!k58j_N2!zssOULZxPF;{6fDIoD)#jg0POwjb_)AX35`=x(((0}#o#%7rsX&A$e z%v-GtB1^i=buy7iO_|}m;61BzMDWh1tyv45KTSu6ILkgW`PBE`4cBcgob<17)3opHzW`cW zNa8ejhahq=c&3SvnqQ8z?Lt+zo)i1Svjk*w>s$}SoeJAU)|OafG1}b?%BVP2?klj- zyaj2d-p6@!cx4eBg(Cw#^@H(SUV{0cw1pB>fbQS#-iNT3`WylKD)LriUYqd0!s?R^ zQu5h`NA5(OhpsCd;pc_s)@~!zZXgS18)ZXt<`MlX&^1YQf9=~lTT3=uRl#X-g{F{6 z^f=#)az*{SXs;OsVd|rk&2XM&t~iQJ`J^UAN*uBlXaeU0Y?dQFDvRvQ{ zTPNjG%8tZ>OJG0MzGx3@dPL{yX!D$(`1VYD)0S2P{ypRT1tEu-YQOT%Oi}0BvvCxM z>L@d?{{WYD$I_5W{Z8-!y<>mLvZFEI|BezHDFf#Qt?47agGleJS7RDu30CeJBf& z`Kj6}Pc?t%i2UkJ({9g}x%yBH_{fi+r2s}`Px<4I#+S@YkKB%GW&2n62ja9axyLFq z+lpXC=8ka=DMX|Gcmqzv`590@3V2D#;c|YI0UwyT{{T=Z5`WVWKMIhg$mh%bDWu$h zG6&^A4HANX)QWcSKjnhvl}*Vw+CI3a`FA+zIiLs{LOMV_={(c_06Z7+s|9CK{{Yse zZMgKH2z=Ja{{TlHl{`5=^2u}br;oLC#y=`i_OEZ!fFmqO{{T>@{sU0B+&|;lKku5e zo052=7d>bZPCer*uqgD!Ta8av7!;vr&&+d9218;B}^%EgheSmfmj*TG{Go8DvwqG54!-t+=uBZ9=SY zNU9ZU$|lz4c!WM<2$Yhb8g-wDZ!MIha}`o^$Ork;xVc%~+*s;=@ROwQAzM(vna@mj zu2YyZO?4jw zts=kHuBM+4CA4E^duP3L#kzFv%$nwvk(CF-Zxmcx`N?Yv@sN!u3~QOxtZ%f7vu&wc z$ppiakNn52eQ6X*tIcsg7<4;rPs1kRlna}4lz#a1tm)!gc9Bw~lF;xwR`X?4Kv~@2 zC>)boml{>|ynbZXb0U9uu0>&J>nrP)w&=xWG61dUYti(*UsJQ!qtdlA=A@@-3^Rd> z??~os;v$Ag=2)%J$s=$Sbu|0kHu}eDytS4P-3ty4ZTN!Sw2gV^(?bM9yW|z_2PgN zIPXE{r5NLyPLu$kV486m6wbZsMdE-ORB^>P04Z}tAQVy`ezazmfC@1{=}W<&1kEic z8RC|KiR)3Zr<3hbH2^#jiuE6dF2_dO`~i+WwdHDZI@hQCIV9;Ua&f<*HUbfg0%Cv8_JnwnO{R%ZFA876Qt zYP{zoCyH^9cj-}F9nqY1qz9G!Ol-=m2svz569^l|dFQ2eUlGsm6o0kNaf(Q-;jxUj zJx9T}*4ALW?y2$-$;B6bIaIlkV0XQQ{WeJv zKn_=}dDLf+d)H^-eO+|+Ne(_lV?y#qFb_0g~H+$K-1muq5-vcK#soi(T7G z1Sq+1S2*chHvkGnB2_VuzPT09cr3=Z<>Vnr_uvZV7?LXXlMMIQO9iUs&wStt0MXT- zexr25?zDvQ-l!9TJBoeLD{$y@xlYmu?@_n`22V5y&emJx;Pbk>PlT}~dXDz$RDt!b zA65>rt1uWRirnxe)T?_Ez!<)JbBdW1kEd+7v5XFIE6w~u!0VS;{`M=-^puFPdODrC1%eClaK}}pz+N+cgg^u z24@DQSM^-fKmy#=gk#VU1pqY2PDa61r5R!eX|)lE_* zo9DqAw4GWz&s}aps#<m8 zT{V;Kl2C9+?_GC?^l9xC=bhq>9wG<_k)K-fgw&kfdGnJa6PnY%@g>d0v4I)F5sa4Y zOc|3bL2jmwBfAd6cc{-===?q5E1hcEXNq*Ui3s_fbGX+(Y`f%+H8|XGO?qvK`!|EH zOc?<&$ox5^49EWfg>fKX`3XgzWd8u`(?8)}&Q~W zIjb7Y#CDb*WNb{^fB>Gpv}hWaf8k!hv3aelt_O01AD(LuPVn5fdXwAzwjhe-clKaA zimzd)z2(Y7Cj1f5R)`VW$1JV5DuQUxTAE|w-MMh5Q($_K6jnyD;Wo3siVIuSkq>q_ z+G`XO6EeSaqcQcYzRKt`?DZSo(puS{{XVCqjnC^g+teP=CKla6CklX`qYUmh4(Wt z`tv{+U+<8-fyQVjk)E`~VnsXkpk%R}sWhbKGuIT6kCgV}f(eT_>p%=R`qPyLb3jw+ zQtkAh4Nnc}$*Ag(!6*8n!+txA*1gVy0P&;gk>zc?z&4J+_RUrBWQh)}uH=9Ullj-9 zHh~j(pZjTUP(Z*tDfI%WE0W%)9~O_K*!ZII*8Vn@+B1Yw+=|ojeuJZ0cxUalaCr{I zd1oh|YQfbmmr?PR%flz`9&82&f(2;&P`(W{hMfxo3{eLmPZ^_20mG|&+*Py!RPxEd z?NpBxt1yq|^r%)G)nHNvezj`Il<*8qpPS7cPhM*E?f!{+VUqUD$vU7J&;I~k zsDqQ&wfN-Ft}P>px60qwHOpxxSa0p+c-v|?Y*(aR&!8=o!W}s`GLe!&$Gv&|jk|rR z3z4ukc|00LBdgVXK=a+SutO@TO`SQbe+r?QwTqXXUkr_wVOn;6CbWXxBU?*l+MsYp zH6)%fNTQR;g4G>{Gq_NM&otHTq+MG1RBj71jE?-*W$=O>y6nv31fc^p#NDKlT+1P0 zmU71j)YhMdbt!a<-#RHkeDRaTG{)7@+4z^kdhN%EuV=K0Wr4_K`M~Ydn&ovL26&HT zw|6!{VnLQ6!61DFbqB}SdyZb+YNn^-yQ{lrf;J2oU|?{4=n}cZSwwEHVYXAUGT$?Q zGhU59!|RBx%=$&j&A>Y(;GdzdI)-BdVh}gCQ`Wm3BgNO&mdS4nxeND+86Qdp&dd{CWZLSf!2N54x$!oqaGPECFQYY7y76RpdPI6ufy67oZuO0} z(DE8X_|VuSOEi}fNx7p&WA9zRfqXfpYj%@=Y3*6}VK$H}fV7e?)-M$;^r<59NcqE@ zSB~g6>7`zan|2}bjFZ~B*75bmc$0MrplOiZcq7CCB#?_X0AzsYC-kmC(sXu55i6-6 zgW9_pejzb}MR^z!q+kwz3gSPtEbit$bPS}DbDB=YEA=}M4|uZw07$SF(a8W&$o8wZ zo;uX0w30tQ02pAL16&)ukMPFdoiH1G6Xl=#>XpZ2K0zTQZikcnKU($!a`t}>V3rB? z$gzR-=cRbw`!qi^Y&-R>xAAmsr2hbB7~DWW80$h{)yp>;?fk3rT!Jysn#i7ei3>57 z9GYu2lPD^LpF(<6Y%RL^dHiV($8F)S7~E+3YFZ=PY+gotR{opgyNk_6-Wgl^LSNjzeZ%e$Byiw+u0IOfZm=gwUW9nh9xTgQXxSH!TD z8&NQQ1t1VJ6U^#A3SH;^epiobP4SHUtNBt1V*cR#setYLb8^3xJxMsl!u#=6q`QVN za~hLXX4VWq6om-yK#fcd-|NLc&E%|8D=--=p0$y8aBl5Y;!HZ9oG(09Tn^FP?~Tbh z>54#f16)J}w!TLPBBqN~j^Jbw&2th+!JBa4oZ_EsLa^Al6amwTOLLlQ+!PrnrB#MZ zpw2T@uUweU+|wC!>moj-aqm_ky-SqJ;2P!0N5`1Fj%wYUfH1(~fn45cFf*EgwILDu zR7HtO$CZk?&mj8HJDaxpz?|czd(_5I-47McBLD`#KMK}?j=`MdiU73t9#=J4wVy6U zLODE+D!u6?a68s_nY$a8<{jt*q>l5?T<4loC1YB%6Oc|iRsHxB0c6a38e>g?)~lE1 znwzD4qon{y*ApD<9X+X{dxO+|7^jCZ{HS_&qc;cmy3ip!*?>POKZOQK@xo+#ig*(f z*A#yI^lVTCNyWr~Rt}kH(j5pz{3vX#rDg_~dlBewtyneN{)8titYRr;b-w2 zM)OrN3ta7uRP8V8_*V?5`!{yY)cLeWnx(<9)*`wImWEy9(!Csb%TKvqw56O&cvJ%+ z0H471uD4P6PoQ2~Ft$nUXTjRyLfrd2Hpbv9AaL0o35UZ2kx32sn ztlC7t*_Y$r4#TC&msVg1 zC2SNO0rvE+S~1hLdasTwE^jGzfqK$u;fg%%5yH2(k$!#0O^dn-4a8WO#LHOF@P*Q;6|_@l1! z5Bj#?*ORY6b4h|4_0@O|FfQ6%*nD7DEu8UM8dc2D$QINwkc@n^hD)gAU)*P@kpBQW zfd{=M!?YNP8=_8LBvu>e>{^sh7V2p`*bWBt1HeJ)=&O@+W5it{fJll{4O{{3cXS4C6T zrBc>3-8$;jrRi@ih{)ZFop%qVbDlD}l07kuY(d-y6aj7z3;1Pz@NxeDZBG@UYo+*h z+#ewvzAzZO6JBKu_iO?Az&zu1Xj)6CGlhuAPhY)?b`{T~ye+BQTIfw{X=xNkaKtG5Yl`seq-sLXc#09PLu$OJ!$LI zXQe4zj#yw)D)%G-Ko(0x1_Ec^nInvRpbw=)SQEj>`qN8s#Q-(WdX2eJ+t#0hgX>M~ zC;}omqi;C_@~5vP=e0?+el!TJxR%L0`Wmn@z!Kd@dSs(L0M07A5?OM3Qv${aI27T* z>56KCNI2r2-Ts_Y0$XXkxnpeo)0*s4#DO$9>=j1YdXhP=2$BfFtq64c`E>bjRx|c^ z@s>XRlmXh=>oyklF)OB7SCfk4FYd+0u{4nkM(ju!=B`1ZYS&h=%Nz<~aga-aSu(`- z*NqgI^AO>HIp&bj+Uc65ou-`}Zv|bQ>?UoO7_`if+6J- z!Dj-fYBtl^T!?N0hXXtu(gUOL_MvNI4Bu!#+p&zAsp36SEkPDLbl9qLNaC|J-9GbE zxOlB23{`STI0B{Bv|H^yAon6L7~|z^;(#U4Zj#SZig{1UppKcXeRITdUTN}MLlz71 zlU)9trcbEdCAcnsX0vsTUQJT|Yl*UV z@BY2Oq4 zHK+K0!t7FEadh&ktc3RN0H6`(noW{kUPTPD`BAySZ$Vw>{2~4yMZ;>6=N_Y<(y;y> z>DKz5y#>A7GNDp(ze@FA6L>>H(zKbctuGzri8mOeAd^UEn0SN2*7n+KUTE{Z#Bp;V zBb-+nXN(+{$JAG-_*JI9@TRU6a$YmEAEBv!5@jKsit)7jqJ+Vg zAeo|&IL>oX-Cg;U7nO-(DLFOhzX|jUU1E9u(*$w`A$Lj9M|w@z4>a>P{m{qgE2QwB zhwZg@k@X9M1S`N^g{#%RB6uRx!g?{gjjhGB#Gop;A&BCq2)Exx-y)Qd(b4Yc%MxMB7R2UB|-s0lb zFCd0pN6wTal3Y2#`kJrf?Ox9E8w9nGxsUI0(~MMsN5eW)dX?#k6Mhh!GhkC@(j>I8 zp6%QxmiP(y)z1LxmUb66GTljlR{(%X%}3%bVk_Gzpob%Lo3ckyK+dXE5_~N!BW>E@ zzgpphLC_SJ<@Pn#T{EAAQxW%zDJT8}E6yOD(RS|S^`^v)V+kPs@P2g}w;%J+eQ6ZH z6?1Y-gmdXkZ#Fk7%2;~R88Cza%Zf&casIJtxspu(0IP0&sl?5J`?mI=WP%j`0G@;z zJcQ~b6&C434ah|(^BI*=HfARP0g`AE9pxbYE`F4xtVy;k7d_8vy>X!HFvA?Lr%o18 zl>?KHr&?^9KA{D%c`U9Fe-w^{1*QcxR#w>=1-rI5r!=J$LmP-SIBadq1j;&D5 z0c%EhaL$J%bJS1-j*&<cV7!>$rG0Y`jy;hCMB)63xKGXr2CFdk_ zS7N!7A9sqFPT9zgA&*6=5_aSFasE_*t2C|G1P^gk%&c>eYgwi_B!xcMrWsqN*vLNA zz@rS(DfxI6XiWQZROY2ea4-Vn(-kP0@zH-OKvqd)+l*&4k2HWBDbH+Gp*wclpQTx` zOZ)l0&u0gpCJ73w%`h+}mR#h9$I_z)Mr^8_{VQs7G;%ysF3AzF%FBWcMkSGX82qUL zQWGE_GMclw{{Xw%t=P5Q-PCsWvH6ooaHtoltD2>@r=`rW>Nd@8>@uO3sQSp{pNhn4Y5_N_U?x z_rFR8R^2W>==$Q6w4`BBk?bnSxt#QF2emuxHzOx;=lz;ta;o{@{{X9O`t77~I|4Rm z>MHQMxg#6SK9qvu;B;f3r6CwnLoj3VInQiVutjl@RyM|eyISug>_IHwfTdZkLE+n< zYG7B3?EoCce-ToC{C@%e0KRHdadZIr&$kuRTlg=<7cnHUTc?)l8A*|P8bES{+!a47 zWBuBpaSh3G%Nu9uUHR}giu+r~{{Vkhx&30tQ_^m}&8Q)cdoVvKtEzvYk9;v6xb&>AHshxEE88@IGOW?vN}uZ3-qul0>aJ1ZhqX9WE1fB>$9 z{5ByNNL{{H~=sIabZt!X)2?CZrUTFx=@X1X13K-P3Hr%;82O~;t0a_8$=d7GwN z@S?*bSgrx#4nCBU!*auDQ_rnV4BX(oDD(5larjaLGD{nhf7PGLpB1IlWF3TJv~Zv{p3-LOKPtD0$?DYQ67zuhpb86Ta2td^xvO!xz^2 zqnxz`WIcBp0FFpzeDHJis;^@{auj}bd?SvVsWwZ_1AcVCtsSM(0fG4%l*4d3_Mq7JhKEjY($Xj{Xjl>b|YGH%{P;=1HHKoiGJX50wL$$f@ zPKMkFDo5n6nS8O%Rp-AwuOcR zX9A*Yc)=qy0bgR{9$=*M)F1Vr=B6;k{o_zfil^l~cc29-nEwD;GAJ>r{yZ9FagC*) zf!dq`Wc}c202tS3{paUP<*)qo6r@M~)gbcoj5a78!(xtif@w;R;cTC+HH<^4U_O-- zjDpef2j@&KNL$RxN;-5j)ygne`=`Ao<&|*RRvz7H0|sLopP{4zurQpdB}Fpfi$)~` zoxYVK5RMW+c717^S`tbTwEnaVpp!`yo@8=%>FZxid?vV#`@uSE#=)93DByNrYv*)G zoPr~d9qX*{Ux{ygEi?UvmF=Y=Xm7b^4iVkbWemO@C&Gb?r23V9S zAbxeXFT}4t3_%jc<#{;hYtDR8t2UtIyKZ86Cb_6nlA30-l4$3&CI0}4=AH=aGXDTN z^w_7okHp3xu5C#>vb66kJZ&`4m1v_!#xg6^i#VjU6?DlZ z@rw8U%bJLx7^J(sSWgTHJ*iURC0;R_l7u7cQ8shMO3Y0*m4IM8QvE2$ zG^T(I`qPK&P2!bCX^eh)ccsrX-jtmU07$2tdees;Dgxnp@k+BVW)zqfG3!WaBVfZL znpW#b08o9Y0raChP%#@gsF-JiQW|0JOa?Cm*Q5L`D)yHu*grVO73VeI{4!!7xeLkN zn$CL;JD!Y)LExXprSh2bkSZ8i%H@>ir&r@0D^vQTg{`0-vr3fx>1u`4%)sY7Vz`4LBd_aHHLU3fnc|Q|&^a7X2x@U&iQuct zdr31hfCvB+UUH`=>s^P0bn&U&BvUz5JxcZz&@<77r=p=Py4olW48--MGARxRO6zC4thnZ;Lr2io2qUqG3}6m|yw_Sx>i1bA@0#?> zC*NZe_A6dtuCZNa?0?fkSsD-+)b}-&tmtrG!R5T~9#|ZKn$R*3E1B_?{I=S5=*a}I z9cTh*d>>$>1Aj64U{;N{hIH#=xL#at7~ql5wQzR2_2$8}f(Nx*k668v7(F@Qbf>6~ zai3YYw(yLWkdx-i@&SRIcdr`woLg?2fI?xq`qT-mYR7R;ImqqhlZwdJCDpZJjd>jH z6j|Gp+66R$m}*a2v>OqY&p}U$1q=SJrZA1a>iDW8s;&!eCazmbhy7*`=}lM$c#9+6 zrV$1I0G42VC<0LN1>k85!sT(3S7SSX zswlYYQwfY|z@Q6mF`9*rfBMwOt_!K&Y05zW_n=o5I-g2@X`pgxXb@y(r;b~6jBkZm z{{Xydqa1Q;Q^Ohzn*OAg{$YwPuKu4&Xk|Gcdjr7s6w{3Q*QB?FyenwN8K#-#P8hSE zzl9Cq?+X-MNZ@BbeDhAix#o(XykO%6tI?y4Bk(=yt^)1=eqyJO!@d*%vpaR;_k`lL z=RO~8G4%MPVH@#+Pv=g+*~TWUkl95V&UXdI+U4hUlJ%q~C5a@S_35|%8t~PULN0v8 zl0lJ~46*busHn4V+O&Aq7w_Yp6{> z!ai>Q0I{yjV{T49y=r*i@RE)!;sf1DqQbexcu`Vs6h$Fm#h7#W)nAB84~(zaf3iP8 zUXN)%g{-9Wt>A?vUO@_fPSxgqDY;EU#5cE*j6&^zeSpO_fo^0D8F;9q0Ln?pT=c1V zX8KffX9N!PhECV0#6+-05Dvqd>pmR;{jiF-{{UDIBDkRePJGqf>0O`0R>rd!Ki(Ok z37a?i`*?T7TC>0bl0$=$$of|+;$3#*ScPGffe3y0^)<7p*)8{twO=)NDls5ceS1Z- zvC!kYja$!oc9EU{=d~s@XZUAPmr1)@%XQxIjzQ^)xvqG&{{T|+Oo3G&f;}pShv7@R z`0bw}H((nb#c%kRNYm_BP*`HXL{fyDka0+(OTqH6@J_73utaAV?ZK^og7-^kU7f-c z$T`Jfcsb)f5Y$A^wm&PL)t~U~n(Fl1OD@RvlBYCFV2+9i_bfaA?CZ&Tvgt@TQ-oUE9j~#O#a+2o(13N;?W$oc(%V z!i&{_7{l#5^4UGBF6&6}y4%X}-AoFOGTdkKs=p34KD8uIFpeS)2{@u#4m+Ly0L1-L z-hU0;+8Lf!E9OR{?uG}iRDu@j^(g4ZIfjMrkAmaowB>;KZN}=RqkaIeeQ5DC<_|?6ST3q)KxDqmiWs6 zai7M!L!fv>9(T4qWNPymW|G;rA?h)joBKjSIX|rdW4-ac?w1FIA5GFgRdydQJOFFU zk`^R|>sPKWWSjvbfk2$U*d^Nm)l;X#;b~q%zb) z4nKR((yWC{{PXi!63w@EIjSuq88e(v2IHcVaXB^9d^oj=e-zt!=gim(D9?Xd;$fR| z`d4f4vCsS^kdC=hDv+MXqIi?VcDhEY*3zz7R3D~m2V3#tPp3+j>lqBB5Kc*}zBke| zE8SnrzPa))a5oU$N6^=o__o_mverC}C7rFrVeSrbL84vnde|zVE%O3 zBYSz;8KLszjO}G3kZZm8GaA0LbtIiccoolh&CI?o)jYVuk2HcPuwS81PttWQMkbcS zPL_Cq+qqLCHEK@`>(NGC^m&4h_IdoP)jk`aviKm&#$(>ZeJe9V@x=Ouvjwy42_x+Q z56Yh?xsN50+BRf(Lb{w4VS)`XN^$^=S&sp6oY!;la>MK%Aco=y)l%g$+;CWRHJk9> z!0MhWw^>4%UyXD*Z~l`71tU1 zSFZT8#uDh-zu2P-g+RwEoaVTX9r&1QmUgO7#4#g+873#kXJU^*f zUYpCv5;&!cj1ix1E6U=P!-7KabBtH6{5bI)-m81|S)VB!bdcn7zCG~vrD>|_8i(1H z?Ag4-AjcW@t}t9MFQJrpDd|ArE~2x@w+Q77#uRP@(p^XiQ`+Vt$I6oi2FQ`v?yMl zm5cFzOG_PA+Va?tZh`X@4l+B_u#-6bD$h{W?>@_?!X%dkuto>xTZ!PW6p&BYqaMZ9 zw0;kHl6a1DAU`Z8ADwP^yT!NKUcD`(Um``1eEZR1-JWr(S?XF%-`TYrekoUaCkN3A?G6}IHc8qJCk|SW3S{W6HmLR{yR|l zw;i{BRPjB>c5ljol0z)bbqcZLdhw3D*R=S@R=UwNiy5rW6@XLi#dwS_Ii4-$zWVCjf^j<0O5 z1P!HIc@CU02nI*cR~@=yPU6SvDKVsbO_+~( zA@3H!^zU9hzT}QG$F+8!67>mgHCDHTv5qhY9V?0b_|Gp%l!pen>Om*iP+oqcKKxUE ze#?Mfn#(cZG0)bdXJhcMb9k%wg#Q4lY*ycjyg{sK+Pu(2@~mopTnyxT)(66*lz6p# z&4{Wa2_RBAHAe??RiQ-QS>V6&&wbaQfNztR}pGw}= zJWF_*%Pdm5Mvehca1S-nd{2yA_-5K*M({zvKBAq4bINQjZf`XkYgB!WGlUF!4|?s> z;g+ObhxViedwis4@UCCNh{MGiZu6D%hf`jU@efnD)1|ljETuONO13Fj8)u*RkHZ?K zfaq?SC4u-^BRpr)u$g7`{cEV!^}DTGPgpJ(F;0hda_bA3qYiMTz&!TN14l>U&jxC` z`QH&7mFfv*RFz}l({^2tdNWjU!`pL$|g?{U8p>6By(7THYe`` z_|j#dl2Awl;CfVZ-QqtkGqXRPI!k9^!zbrd-o|2hWzV^w1h%-AGm_-ig4`Dev8?f@ z%tlMckN2uowRJe(pM25-b41ea^{a^@vnjm><}TO*wwK}luE%+v(>{fd_*4EB$K}nc zWxit&Ao^5~cQdqvTt4-3FdMZy6Lvt~5A|@{n&Qoepkw|OO6y3x)9<6Ro+y>vfUTUV z&%GwAtln8NvfM~lgN@zmr18To)uxRzVIDmscRAk}$k8Uc4 zjiTObhE=jinWN!@HVs~XHZ*8j?cFhq?%>tWg-+k_lwC%o2>iZ%&S(pjTfjPz&grcc z`;F&6%9x)IH9gr|%P(+P{{V$_UN=c$*5pGr$jameZneoxdvg?JlHx$hat7)w39{Mv zb*Zy_x7JEWp*((+vV1(f$PK94mi57^+CHM!tvH_MP2d8#J!zVS#m&0!j%Ux-jR&aB zcfz;YBoWDVEHgyM0i(|!TIbZ2B^YH$?_P^F+iIT=pq5;j7a*T;UUwpl@MvfgDn28S z?cf?BmSHc!?a~m)_PfCq9;~df%vX^Y=06$u5NLW=^K?9z(V;$*OcN%-rWRJ$2 zX#nSnViaU%qMW|MH&noXlSsoO6u`@84S^`h6!>5Fz^Lt0%W5CDN_s#RfF?tbGuDEC z146C^4alSd1H~xzrsF+&QtdgQ0E16nlyvGS8OI`+$8k(%12m3EUMe5Fan#ZRCQ0tH zu^}LOaamJK5pa?P6y#wJ;1m1(x z5nL-ritT1wJIfG~58YlybjW)2zTBk`&HLE>32w6SBs%L2?gU{eE`Q`0rQqiUweFP3oQzom2I zucc{e8cpV_aIsm(oSbewDWRT`qIk92Y;zFR(cRm{t6Ai!0F39QV)%Q(G1vu``cFDh z&KK_1zOcHJS-d(~jw6gIJW$CzYsHZpO>THMZjEt@#VzSwH;DW*tJ$Qt`izjiPa#_; z70hQpN|K1(v0Zn=?Kv(k{K=yXNF_7K#d0Ka2Wsgw9cA>S!YUR63z`7Uynpnm#xaLH z53M#bcAt8RMlCC|bz(`UqYb8jGWCE%p*<_9_+er8{Y`fg5jo@5xs71tCtjwz&xF#& z4cXqoeqK9sQ!R#%f76i1r$nTl7QD|}T@hS+<35;O-*FCRmw;G(=T!9$i0n(a6 zWk{8FkDTPx%Bj( zs`@s+_FuKg8s4g}s!w zu5HJi}}s3VVs3Nk(GPe?CuXk;;y^BPwjjrZ{Ph2_DPcW3o75kS!VGj5?$ z=1iaZX`ks_hl#HRtdT~eY@U>!9GY9prUe*P6}NT-wAkj2N5@is|%7>@NHtExx00s3dK~2EiVb(3$3@X~cgq zBafvBAb&dK{LTOba4E4O?e*EY zx$|5M;}ntIGAIj-3ZPpj-hkiaQUgKm-a&>Utm(Rev3F%qOAff^vUg^bHywDOXup4T z_Q?#62657~G#E{`k9DXtJR=RVck9})m9taNu1Yk2?A6*LEu4?8Xs{h)_`+tvSCo%- zsI(1MTb~q*rT|FfW4|J}xVJVrKZR{*v$c)l+#;(;m?{rrNh=Mu%f2k0OTBvbSw=zl79?9-Z7hDLr#7X_%hr86ee3tu7(vSS5^S_>_wF8GJ>k*lCemNv13otUgEBLZ77?#qidA0jOL^ zh!_lv4{=ptT=Dq90=ut-i=Pyu9?C^VgeWEyFSqtiYf_(`+@EZ0)T^Dw{( z(;tm_FOFnr{9CGyit>`AS4DZ_3$%fdTuFjC!LAzr08#VhW|2egImzpq8$glk{{Rgd zU-(z|uOnnIlOL6N?}O%-{t`Vq%xo{5GI5SGOQv{@?X+LATbDpV2Wwz+>r`xROjipk zu~8Y$eJHvM9pA>eO5f?Kt&kOtJu98~d8>bCc!oEXu#NJu1GQyqTAJ!oD@xMIuwWKy zqXf{yGP;KZQof;W4{Gs8g)RI^brtos@0QpKt2EIa!l*AJGsd` z)nf4Wi2nfJR1DehMBnjMY35fu1LW6X@uorjrC=j`;R!fBE6(iiBDS4oSle>)FlyeZ zs|)cTnHkD@wrIYB>QOSe&Ro}~{3q3|{=splUA{clI47a@uP_rw-Y?d!>Dq|1lYDWI zdj0HEOd7fCx^IFkY&COzCF3+``{R!w1^S-#$9z=Q2BEA+3=(D-2N?DBthVt~rXqo4 z8UFxmoYpPP>Q3dFA(PyiZLWe#x!QalomXACGsqYBTy8$~hvUnJ{{V!mQS#)<@8I>w z#bs&Qm)K@69A9`~^NMbxelKoXXN`9@0p^wT9ko45{^mdURMDuA2@GIkcR9^@A(g?- z_N_6jx7f@EAXgas-K%rLJ{z*vZ6u!NI32Slb&x_{{X;+Ies7MAM^Uh=)#qlb0f>*cQZyy9vB|J_3t|7lWpQH3f4ch`An*; zu8r;7SD5(ELA1~fw3ago)y^47&J9qu@f`5P6Jua>0l%d+rs8_+cJ1)$Er%M!p5%f4 zHN*I`NqrMj`zl=-(`Y;Kj?*)0OP)Bb_IT=TPw+JZsD07 zvW^=cjeFI`xobCt{@9YJmEs%&$Ti@ibv&4q)#TP@jt?Xvl*TZ7P?$Ax4NC4yi-{b& zf?L+9d5$`}eswF{f({~F*P{4$!g?+4n;f@yA*NxL!|lhmDO%-hd9Rw^-)wzo^A0jt z{&nlW@Pv449Lm`L0IrlD1bAq&=61)RlN55XT;o0%T*n8CVQJ*TvNGk58Lvav{3WGo zckgv2{E)Pqkd854ZQ{FFG%aW*mUln~S8>h{dWZfJOTwds{HnC-Ca!v>i==4&8jf3t zuAW&4!DeiqpcUnQF~0kLyKy@381Ox*kK!A*TphUfsuEr_j98-3-(X1ee}=lvoyLte zld3ipWmk7X4{G1jG>s3#vPpGqAbAc*Ec=M|72{B958hys2CCmaj zoZuXQMJtZRw3g|T%OER`2sK@;!8|$0=QTzPt$+iPD#zLb1CBnl0qhwBxY9W5ehSyv<|?OD)8aWs$RK`ezy$VDWr0yg|wuw6kD*r?dQd!B1o#QLSZ_lI=! zw`1nQs;4;g=D9nVr?&uH#VkOMJjEk4-9py(#@gChpeYRh05UfO5ke8&X!_=sY+;V( z&N5YS%s|aySnAQ~n)KHeu3=WlP@@?Yn-+(yyg}mAZeBCUU^`VCJv#SQzgtUKnBC<3 ztZ|Hb=8(<=N0EVhLfmi+Jf3%z*ce5 zbDaGRY7Gxvj@hI-ZP-9EPCHNp8a3p4cZdT_yP?{6J?pF1buBXQOPMX=3o#i|6bx6M zqDysrvBMilD{vHb&1v0f+Kr4pW!;^`Q4iu};7|usrRsLW!XMf0>?aJ(jB(f2xo7*> z2aMF#wioj0Cs2kW)}e?j2<`1vS+YURFhUgqPAUFU^#YjAp~g-}8*xAn%^<)uif9Kp#}okS0jBpfqX#{x0n}hpbrf+x2Hewe>rTxW`cMK6wJMC9 zckNLesLewq(Tsew0dbJyCYV9%P{VoV03Q`GInF2njgIvkL-&J@wISye0fz0GKrHs+ zRp4?56_WNcnGQy4dMP%JYELpUbBvlpGp#IyX}PLBp52f7GsQoH zQD+=effN9z<V6A0b28v!eQ%noidWYI~2gIj_UinNc%Gyxe#9qFSW^Hz5$6cDU90Mh~`&VR;=kVlb40A^%USm&imQloUoNOi%<^iz&)hkyJYuR{kkOpHIf?Q<>O7eh*4b|{57%-&FuR< z2pOy&4(sPn17iV^gI&&>;){Ew*){_jyAg9LFNc~az%yKv-{%ARS25#X4OnQlt1XUg~oQbodOeeK-`;26wOH`P=TYf&T3zUNgM7kR&Ls&CmhON2L5b zWdZejke&8Kf0?eL+f34Q8%b_qiGOyvE>2D ztkutEJo3sh`qxLG=-RE6o20kctT0JoQKyS$?23MzREy$^iB1_9 zFH%A6Rj9N*27e9d^LSLBrqA7k<- zNAmd3&5Ggtb*)9L>QM_sDQ^mG0FM3Xp)(pOi9FQBvbYseJb_kF8e$u_C#_hIj-6?^ zr~d#6^`-*I#Ez#GUvE4LpRZif8Un;>xD`5s=}j2OsTUZ=c%VYJPL&gkpK6<~ap~(( zG3a~J0tQ~9g?wdJ1a_^R6HK30xe&vEJGEo>$*)BCa~{d#_YB{qFgd+H zK%VmAbZO#*L`wYK>ZZM=Hk9y&xQ=cA0Nm|c4{{;8y;k6f8?V;0uO^P-FPJXw&D>A| z*l3s6wyQLLTE=-B+Z744mK{Pk8HbsW4&HHB&Y-aA=#faphpuYAmHv^cqcO?qXalM7 zEy&Td#?vrd-Nvt;!xfol;wbGj_~8(YqVj!BZ2UsfWtu4UEx<JkOzoK|{ zE87LQp5>z~!~nF4GIhJgy_z|s8FR7Dv=tV#v;lG4!h1$B7>D2_q}CFu~@b z@b<6$oo_DCxsZd+7Yz-`oh(sf2vLdSHG9SA(|kR)mATt+3H@uA)HP_9iV#`Y;YYm)4$k9Uf`1c5et`guc7XhY#U3p2RJZzEmV`rz zJF4{eu4eN_zO~hD>`JR#$O8ZmO#0TYrQrQa&rg=_c`e>J#^zLGoPIQzEsWa>fgXXV z+5whi3^C{pb0xt&e>&*wbla<|3;UaYmMCK-n;a48S$cMjCEBdgIgSIy?^ktRbp{RJzI#5=g_LbgGxnzo-Eq|vMrmR1~=?NR9# zEqf~$Vz4h(6kK*9L+?-U^^nvxxT2VEi89U)LI-M-#1_$5EKLKkSI8uuYX1PkrQLCQ z=lg^C)XC^LtxmMX5Cdc}s2l(kaY$l9Mq^LPr(xQoCkC;(wT5|Vf;_ds_NcCH(e2$t zYn*X`(AAvMP@bUC=h~F3_K*~vz+j4w)%>^0o@&0NN@~{t^xk^?YE(d{gOGWylyfuE zz8Qp??%=5+V;c@V#cTXA)IYPL)>dXv`^pmCN#?SC60UCN2N^1A9R^73<<^AnhBKXm zq3UR0b$V8pZF8dPb55C*1|hT4jPYJ`;m9JqTd8i@%EUfU4l;9H{id~TYvD~z+Enuy zP7^$yF{73ms=s}077rz~=znmley^x}X!{{R@Zw7&-R6`LM+lpZsW zyYmh|D)QYR=iz>*&UpT!v^+)PCA#o!_MXyw?HCHZk0P`5akt@3{{XJjpUhPu9&0Bc zeJZmY5Gv$=W8RBvW|mN@rJ0TuM{_{NTPeY2A3;_ZGB>dOD)y(KYFb!@wF`EICK*P^ zAp3DuF@do%bJyI^0n~*|;-&;5Z3CZL)V|O)4L3`I^5PJXN~4_eGwLfO&;@&m8)?br zs5w7c>g4doq%?-qrGzc88@W82qW5?Bjo)%Q=)N(&ssJIH&ns955!C4g+AHsI9wi z59$x3$*GvO+NZAsk6)z#V2rT*xsHY&zN$O~u(q;Z%4^fZA-kWak;I0(4iA^fQbkN$cZgmvs{c%lxQiz<(P^Z)@CaAY|8 zP{JX=c0W-_BT=86Vw}+ojgA{WlmKEg{6@62{Xkl#)h&~ZT^_<$e0=jbVt z#?hXjspv;~Sfehi%*vo~$)ID$l0o^HeiVemo~~)LCeR2u9-@*I-I7QHxugVu!TcqG z?kLP7IcEF?HR1USsojpg)WluR7b70D0VaX^V2LP5$lKD7Zz2>Y%N)}+T`X{C6i0xH|% z=81{+Y7BPy;wJp*cH5BvOnPj)bN=B*x>yI zO<=Iy*jf3TOM#8Ks{RPi{2+R$9htw7u3i}L?Zi`rm1A@AusNp0i@qy~VAUNJcCOKY zD*ph3?IF0*?_J_Xkssw|86%3p)!KQa4RY`15&T036zwJNVo8?CrYd=5L)N5b&x{~P zu(6siygpNk*zw+9Mbj0B%pwH-RmR?2-N1?GhTA7i#=DP*F_-YYgsF_IV3F;CO$qLK z;*6YAnQDSv40Jn(rAr0Zn47udj%Y(WZ-#&kV(ELB4k`;9lcnl6%##FXlhdy>zYedh zZM;L9i2@_W%ahYJ(Q3XE(yp##xc=8D9Onu_rX!c}CZQ&&Zyavw%9+jubp9aI;hVu) zTZt6;Xt@;d0ygK8ct%Kn`2X0QMFR=_Mzwn9Z zYBvp1Y<)-gQDNMz;iU)R_0kcHNWj+-GHrZUsY?!-W8vv+Y-d*-vE1B~>t0)Pks-|t zNT+b*8jd++5`tUh9jZ&1!RegTP$*eIm+lU6>p;yIWezwz)VveLLXz7|hwQ*3r#(8* zv*32k08O`wKru{9r6jIbH2vU?C>RFq!cqqZrzz~`kod7uQK8dHqX(tsN$ zDr+&@%a`X;L9I-2%|#?3r~;H{E%Jei(M~|`P%HsSsndZ#4m~kOXzS9GJ%s=-tsQvj zKsl!jQn1G2jANxcJkn4D8yTkVIO3ki6vYFYLmsCz$zxeQ@Xaql&stu;Q9y{25V^)H zulQ^~;&wpBG0k$T!LFO(?oPY39BxxnEr%V?WK>)Xo@ui{+-)Zn8j=?kBy;nI&17gW zEQoRs6*^4#8^;u{BICU@IuU}@0Wy_y$;D3`EsV#O6-cIf8ntTDN5<|cfpRWKJW)uj ze~O9#$liO>mmTSw$I_Z`dQt&cf_SDC;+JWmi36noRheo7kcfr5e$R@sVB$)eypf!!*UlCjBmP2C3_*{I=gIbN_#9~26 zN3d+xh=yqE*P6OQVA5=f8*m?t*OBXbPN!hzZBpHlrD97K2Pg2aNj^1+P@gRU?UP(j zjC@GizQ}?qqMgKw7$cfqwdg(w)a|siNhQVyQC@Zrr8v&(#z^`aNE*5A{{Y*zderFz zC6p7%=xP2V)1-e7U0Yd$Bf9W2$*&;OHCb($TP#oavt5Rl;-(n$A9DBSnxbuEgVglf z-8q6@+q_xmNZ|f8lKC~?c;j7%QnN@FKb$aNPf=VmC?=$`t}*Y5>O3o>rlisvi5*cB zKQD7!@myr$yI%_5+gaI2Wg%N(&py-v%P=b=sXPWFH7Ld^Hap#qxit9CJxwtqKUV=+ z2*A&LS4;5jdB3z#ZSufiu>5P7){f~=j(~Np@8JcwH~Y^*r?0IbFP!ni}<6fB5x}91XSQny37QF2C!ctcxkQ!sfX@8X=O(FhdX@JPPbL4@#w~ z-oa}Mw4edI8N~xU;@a9WKh-;a2Dfy(2qywIieHoFmaRB6(jPZY#F$Pnbvw*k1ps_&lEicc66z_uGb zDSi41jy&U@^(Pph1Sb^~k`f3URE{|H6$68u(gJAZ;{@d5r0Pa$C=j8}K4a@vHsEkR zZ1tc9uQ~Rkr3?z3XEfIKrXVkh?fez1C9@;TmR0Hp(zqANJt}A}q=*GVMKr?4p!m;L z(=KhqcDBf~zs1kf#~cAg!1Uh|>JjRm71UZVLPxi#_pd))W6HCR6c{MD&U;r`q-wU1Y4clL#Ac2{ zGPuY%rI!0bmkPQ~xc>mQYeNz|=1CT7&oRyq1D{DdbbcaS??C6vpGv$g_3!E0QFWZXj04km{)~slO$tLXp<$ayvV~Puya6&^(`y=I@^ERR%Rptv|_GY z=yKcmVRczphGz;B*wk}k;zbzhM^jyIi#}h6cF3bFX9EN3X`~IFXx#E>1Jag7X#W7# zDPOHa=O{QFng&Q)XvsCucqFaHt~W102>k1pxsYzi#dID9onzF=ZkPud>xyVh>-=9W zy|;_fS(vFvM@r_kO<-L|EHS*ETXj;$72axx! z%R)iJ9I)-28X5%jFZfb5Ujk~_J!2=QwPyHo(XMnxWHZnIw9`;gZnqAVq(7AYWbL(f5yupyf-H+%w~p6JxSb;k`*_7>d_L17DWVSM{N{`|dHqfi;Tk%$y7fX56e8@%=dQ-k1 z+a=bWbc_@gZP{wWy1Kia0!q)dzr1?ZhLwH&k#6Q7u2^7#YFc(FJxTr`+Qyo7ugHsr zKXbXNpAVN}-JElPIjmhu{(VM9^GIM1%A=sIp9QIoTb%Lofse+M(j_ff*1J??vU5#l zG}3=6$k2E+?BIIhm?_!$Xh6;n#J17fsz{`H?<;Qv^NP*2ljS)y{e6tOyuV*sjwtr1 z7_O9aGtvGOUNY*eq>OjZVUD%0d*Lgo^$Ur9)c}r33um0*n)7`g{!0mq#>5lBBht3l z#51??IR5~FQ_x38d*B)FV+u7$)DzQZ{{UXN{{RvAeY6|pw|UZV%eW9RkEpF5_()^} z?-Tz30yT@NUcKzW-#m8CXaTx(W$xls19LVx?OvY;gtYS%Z7!>ZBPSRFys8N{O0GJu zHK#Veaz;4CA)Qs`m8Zq2rI@`h6JzEW$jxtS(COMYfp4s>ZoJo!WCB4sBv+I^r6ITz zF(t=Jnr%vZxc1D)XQfrdRYl0&*#fUc=mzR4$1c;7$CtTH7igq|67t7g91AVv(^ zyZci-XQ;NXuiV_^mEE;-=qoDNuwckeLF?&Aqv$^seVXsVH*W(3xAKn641N{hGP;rS zf)^d@*vlFI6O{~C}%B&$-wDK5CQY`sVIzt z)}H|i{Pgcn+a5oPwLCYYjb~Vb%?VXwmpSOPAU1ph;eo7bD|IqwPl2+{|5h3!Q3_%T#!!;C#C!Tnz z6vvK-^P~4%1`)EdfcY5oq;}2+K}YV!2v+CbkjWl#w4cU-62i;0tMv60tn0L@ zbTuCI1BE}GC}{JYhx4Fg;y?!G>D%6s-zJ*Pmd`ZCK9s}^efrYG*kw7!4KrypV2VIm zl^9FY0P{_dfYjBM@r}nGl*Tl`vnY2}at;_{KD5Se0PBiuQo1hHaslm3$s&*zvR>UW z&eC!zKI#y_gPxTPZpd<^kD;NQlafh3=720m^TyzH9O9aTY;C)MdsI=gD*}yzJJP$c zx8UXEjuwYD6b)H*x7e4}O{JQIo*MKN+MVfEo`&(E8PpIb)YqBzLOhQG=g) z23qrmf7PWYoW0{pt;jyKq~!kqg)l6vqaSosk;;QPKz|CS&lK;*kQP4CgZ`;MDm?L= zluxEAxjDv77|5m~&zu`c+(gX=#CA+Cw&HmDS1^_rg_W(h633#P zVumDdd_WQT*3TO$QkW%3>za?@?2#Mmw3Uzsi;c&vbJuAi%j91yipqHe@+wPhDtTGv z(nGq$GWk4;k($0HfJth;TPb97fu3ul@ua3d3~7wO;KUV%dhjcV)*!vIwuX6}5ic0d zNcJ_|__{T@@NS*XBoPJ!*NUVjc}?1RQih1-8@HuKkB%{lwqx_7z#uY?hN_UO!Qjv^ zcX9z&!3QF?AlGgTOB{^MagEuiUqhH%CB%}(s^cL?Cc8Zf-$=XgB-ZoWpwwbx`_eE+ ze1rWcxEzY>cQG?7?((0Enu_A$Sf&IV?&Nb_#MU|;=YgOJ3Z|nER~=Y`-|(rtM;?)R zXQa<(Z46Sv6u!U);ol?cMZ|FvU(dNv^5=lPYBO^=Z!MJX9e~Cw&~?kZDSSnz-@z1L zxd1T(uhyNUYIYW$IhyKgc%ItjHWGRR>qWxHoQdvc-iw`}WaQM4U(Pni86iOJUXcyn zpQmcNuuD|?J>q3U0C0T=ZuMJ5lTC}mdX=QG#KoT@Aa2KMR~f~nzirESUMp z0+!Q8lI}vV+(wO)g_DfcDWR6ySs|T5x}I^~m=^`~n;JB4l=T%>Ok|J=V^GH7SEdeW z(K^Q7V{&sqjn58vVoiEkSM34;5`sxw*0i4vAZHoZ5N-59{xt7~I->soYHBe#&S1#= z>24zz7dItbhYU_L#W5Hf{{V%LhrFrazK-fQJ4gxvAFXHT+9}m_A1qwQZyEWEHFdh( zjMjQYHx~+$MJON)a<$B9spsFp1P5zM!3VViIsx$FAVVgz5GU0K_|<)T!Ph!9nq4K@ zT|=A_tF({SjcZSvO<5LcPV_u7o(*kSPWOHR{r4qZxj$MET;PvhDZ!{@+QyR|=oswh zr8yf1j+DSSr(%%B?~zHLT1?TOS^#*UbHy}L^%MYOnoM)Sr6z;H;(#0vG!g06o6S5L z0B$*>pr>Q=q#}S5IqN{90*=Cy7?{pMqW}+jT=%6kfMFa`bu{Bm=dhp!9Z0T=z&!YZ zF`jU1oKx4*ajY%706gq9F z*zGg{aT!i2%olA?67$xaW;phs1(|uMOk~qqbGzE4S%Kuz0uvkOrxi~9cEH7}Rb5Yf znyY>n$zpMiv;p(q#0GEeg)Q71S1hfD&2;|&5HkAC4>$*b+nVMAoZwc`*v0Nzj#5V? zepNV>|GCa#&wuaMLx`NyNRBg0P zE6UD2DFPdwMonz!x;@URxs|-QlzrkeoO@O=>IoIw_+sKXbm@ldH?9dnLrvG`?wLRj@eHRtx8kP>FbD#O>b6FNqa#abgL&pqT zPl-Y2%;vjxRUl`Y%+?^&njmkHc4xnO26>DyuFSL4_I6Kmbg@7|X7#S_D-9HnlGYX; zwQkN0D$-?=C?QD{iLQmPp*gfB@(#$ozFAQtDB8P8)1tPAFFsFc6G%r&LRvdsM1>cdHPa zdFFtW@##y7096>EoC*oeH>kxR6_2Go6C9pRENTGcWsOf9WVirjiJ%55ZO3*r=faP3 zQ_2J*1cJxkII2$BIiLk&pRG4Mb)+Vem=54m2n6Po`kFJE0B|^`Z%{sCQ8B>HK_SWJ zm=?UnVTC!xNgLv*M%d|AV?1*}i^+E|Ck{aL%^CIEUzn1mbN_gx$3NC`g zGfyO$^CT`hjPq3!J;hF_HjLz-tsso%q@o5NFwaW8rOa(75-H?UJg`9qnyIn9s1d7s zeKgCJI34j-puCnWY$bk_#WWa$ebb6}7`Hd`&bXFFZ$X-@C2r@FQZ=bz%z%Cr-?EYa z04-PYqTpWA9gXx`2IeGSd)H^I8UFy`GPC=7E4YYZPB`G#GvP~RI>b!x!hF~RuQl8F z($eBj7TMg`!z7F3Dax)#6rRDfgx9}Jt-7@2HIww7l+?VNfg_<5EQmec#n&8sB~>jZEdD9 zroc%(kEL3h#WT8jX^@%V6VkEo=XvDwrOAHO+eD<%RAENr)by^$;rE6tyg?P*+Kkd7 zApthFD~sjWVzzXxT1y*a1-{{uPC@HZiYx1Ow)Q%$)wB|{kjD5{JxHlEJwR#KesUHK zjB!<`B1swF=5{$Im_p=mCra`J$}fmDF{)f7vNVjt_>ZThWB%_r=B7Jw(t)rKx(yD$o8t`3d-3X`p^KX zg|?DMy)$W6!Q_KZ=-gA@HY5-z00BYyi9bqgiSr$&Bk4n&3X!9BjTr$VfCNRnw)_gBPO>2%nhJX+i zBZ%q13}?$9h^U_UCNY8iX<^nE%qYq^=|B%+G5)Ml7E({ikHW0A&~cCe6%mx@oPJac zh%)2-SU-g-y5oqHQ^ei<4LD3#I*M&s%epPd~j;5L=iaY_Ulk+`_ zpZAaWRxZDw-smz$F8r4d$T5;Y{Oi#?Kc?$GCDG0HlXMxxjExgE4<40`;_U}oSXj*r z(!IF-{{T7J>Gh*PS2-O6M!DA}k~?Dx6d5J!cm5UrsCW|Dek^~&sdzI+)ODRgZ|qzd z;~SW7+A&vrOxnJOaxL%7u}R%`2~j5@ zL4I2uE7kls(O&pcH@Q26miRgE#dsd416kh8yoFaF8Wim#e3GTFM57$%z64A{#aDz<$n80q}z5qRE8>4PI2a5GF73=Vf1 zfqIP8#uXzZAFTtheW{hVZXndxR`+5taW%B*5ga=q0FSLvkZ^0Y)owMF@T?H(ui=#>YrvZ4cm5tG1|DV`DS+XuTb$582me>xX#^* z59BI@$^0kb`waly$l8=wGRm7lz+4Z`xcPM!w7QuJ5=$O)itV(Y3O)XmHA{IH?4u=@ zcgz5&8E$wB5#^^E_o-38ox7zBKml;x#$PZqky;I>X znPso&lHR;l_XTqokum}o9mQgJ+rqXQeZ*4OgADH`(`%oU{XHomnI0;?i&P}V@~Jt& z^{bjHGWZgF=L;)i-kYcD7MdArO;byXNrA{L0XX!orK4SQLh^0=iv)g(M?v(eS`yDA zGb1x8JcCHs1Fdxu{5hCP@BOuF&p6xv0N1Wc{uwN1mfl8JXvrIa;N#MfWWkd>kxw`) zka(>d4+q|AwifqRm-ecXedS_uqP0Ka0lkjhj5>|H?gl~u*V{A!%Q5GSQec0I;QS zGT5gTQn_3j$dSvE0}y>PPPCRt*am;swE$?argx=B+%hR~ng%rSPVY!T=||R(3Pm-# z;(||VPtuSGI^wr{5aE1FYo3JTiox$%{u2KHkoC7GIpU^U4Q_j^NUS*E(}=;rsXq zRBm8t(m}eBT}N?Jd6dLdHpCt(8PSzaI@XAgccw_nM`{LPv$#BiPFbYOgh_ zj+B6|X9Vz0YPO{-8%G0{#sD>B+U+^bQ`91H2@8`*4-oOVAKNFt$Sa-$n&`Z8+1A_- zx)fJDD|qZ;_Z^PHnonG2lyso46+#)FywlUKJt?@wJqOK-0I?Cl2c8aVw(#Ds_eIIVZ zOGIVpS2g9Dj(@c7zw4p?b?P>e`8F}9qSu;gIBi1Yj`APpSr$=dJ^NP|&{vB5OK^27Gz4X0CFIHSIN(Mo;BOa`_%=y`7ut&r?oUB>w=7R{-XwjCu+Hm~^A19jQ$_0N%8E(uxmCU@`hsF1e|XUPS>x>p&4A zVAX}-Vt@rL04Ox_Gxfzr4lz;&;*bm=el*d~2BcsQLs8?ld7uDrNbO1n4;?87aA;l* z4@v+JJdetiSo+dqZ__F!31M80T~_Fr6Ue9I@7|GJZG91ZRyCM z2##Bf;+!ME1h?QR#X-Xkz3GL(G=O*%yi_K0oOY)N2AC4(H0}zJaZwJm@s5-LxZ6+2 z$5B9K$lNnaB-ZM`EPS5i&;v>Q={IAgBDxR_JOn)B^`HxyWzn{|Srqa**PvKSOCD{^^iG^GW$?-3V9`eEMlqe2Hc&;{U*C($v2b^0Zo@s$JjB!ww?LlyR(+Q+I zi@5fs>(-bKDd3E9Xb~HrCxJ+@W49G3z^4JtFa;PDAZ`w7Cv0@6nnRuqAT4z1%_AN? z>KLW@PX4{BNY~9`$AuICiiL?M?$e1bLZGE5cM1+MN~9|7U%Y$z(*fjd3K#Dlrk8Hs zd(^RrqKp?O%sss-DH|s=gjbxFKQ}d39F8j6jGuasVJGDo_n-$vNx;r3S8$^VoKp@F zKwfy}kpW|#-RX=~UBsTkq-Nj+=qZJ`08^Aa3fE=$l6J2qmky{|l;BhnF^q->0P&iNE1415 zNy_`0KwVJfcWvX`&?iulhz|T)gmF|lm8NmY?r(i7nzyiuZ>6%7kjHzbUP1PVl!7-X=O?WjWNZR`xu|11 zMg>SEMGR!m6ag`{0OQP3eT_IpCe!nRqtMk0nG~wL3{?LB5H$=p4y}_R#V|C*xNp4J zG~X%XI9AB@2BQFGcMz{KUq z`qPcMQVeWAl{IBJ;1Xyv@xeLtpa+Ot^6W9{YG1LdE>cz9?^LFeR8f>*y_nThxR6W< zekcP`p={-x8jfHAz#MwhO~D{%ts^izPz4F{A0n9wjok82=~65*buK=X z0LbKQ4Z!|X{{T1G=jl=ffA1|W#{Tg3pa}Pq*y4@Hus@Ydh~M+ke;S+0a5LtnC>cn* z0nxMcrWQCnAIhz5aDMp5(v7Xp&rC*5z>%C4M!@tG#SOb~je+`B!A?Kc4Ekb`VQ#)) z{HXz6+DQUntA15Dc0a=3h^bOG{{WtY@~4Gvo^C%1V;}{HKPjd8y6tbur`yjnf%s6k zZVdE*u1V|-A$J{6kykvN5A~zeaZ&k9Gqv)1(*rVh&mz4W;f#KFg|*I^IRpOrt^(>8 zole{=$~j-}S5xrv3;DE-RNCAK5;K=lx!iHmoJnTCfIMb=G>vY-@FgyB)E3!JEWTj<;8C=<*0_Bi!g{{7X+EK03r!NcD=cGk0zIk=?H^IoqF24Nnlf@&d1vJM zp45hH_%p<7;rrW`0f(I6?ncJZT0arB`)?80r0_d5@bSvyisUq{F85WqG1x@&I5}jD zZel)^n(dY5lI3PsjGhWgxMBEH5#8yt>kHwiCA8eu!W`r_00XZTpP)%=sSx+-tuLAK zgN}Z++W1Z{KjHjJV+1@6#%st0*tNW6iAu7$=xAa`Rq-O$D;;JzV2vYLP-kH3MLXfY zm2;_T2{NlILDh%7bGpW@E~NtfuY0m|VtQ6)n|VEj-=A$GBV!rQT9S^7#kP)g##KYM z2PXs4uHWi+N#R=vT~CnFfUlkoE10|1XOuW;4j6JhYq!>-g5%-doXWmlR1tyFsR^ER z^MNOAr?0hc_&OW!?FkN(DCZl7{A24_9z z#Hn^K8Se=52g=-nYc40+RMyXm>?G5#8YwPP;1)P!=xY%^_#X5DX5sg!#Z(~otG6Qq z0)>n=*^H{HckY z9-HEun>a)zOF`3WIb2sIt;Q$0mO$BA2|V=`+xWv)jtx#fAuay^a(bv3Z(~)?iErYR z7q<77_7BmJ073WaC_r;Q3h_>(;aT20GKL8bT^purcTn*R+TO8iaL4BkzasKF)|J+P?w6lS(c129c}dmbZOfQxzUIo}Bpq3k0;_Na$I`i65;- z9|N3I9la<6KT}}yE(pbXSHc-$f=$duNg#~%^sh3#Igk@wpTj67y3|lc*Z>l7)}~t& zkEPV^wo}G2n(}=@PxzQzl7Ho+e>(LTSjDHN{;Hgs@_Weyx0Aa4){v3;)<~fQgbagR zM~*cqAf5=7m@BDcj`iB(30`&a4he%ID zn!(c4J=|(?MtfJN>QJM2b~u=19A`CFCg&|``qkV9OHnh%qdCq2{Ogs!l53mEB)TkS zC+6MMdsnhq$FokhSg^5#86B(3{8VCXe(%cLvv(wV_nJV4l8}Hwm9wY57ig%|=+0K*uv@zDcN9Wb;lxdWr-vE;`e| zz@_x0KC}R50;6em>12F(CjSIDUY0Z^l&Cr4gCI6Wykbm>NT!%#j`gVK-*?mE+yesY1oNA^i~)@IL2d3Is{0M?}3 z*y);JS7P3VfxjIO(x)WnI5ZOdl+pq@Z86LC&5#8xZyU%Ku zd-|MF<~iCY3bIaqRO#ta{Ko);Qz;RQXOln*N0xSjmd7}wK2QumEP7I?$1FLhr8}`e5X~WW z1e1_zRFiNXl>7tuYe}o+(&`O{>?rq-F@XUcR*&g75U}NCk}xw{Sa}d$=De z^rU9M+PMOdDaPjMOk<;8;y;By4E$o4tXY8VR$4%@Y+PlI?x2}z?{-I%TcN3ojU;Eg#alap;7@J^$3MkvKFIxit-0E z_%3(0(zy4a1@hCWLC>WgT9v^E9jaWeGAVdIl)#EK3DIgnz^8GJw9`NZEif8zG=Ok8 zrd>wcx2MdfueCgTjw!(4^*E*l1tGX{b5B^4uH*St!yHUb1P z(?5Eq5l4=P^QU=HusFy#rUhcH76}|4hqXI)LBP+_of%L{N)FDM^rkwPB?MrvtpG9Z znGt-h!k;C`a;^>=9Q|r3mNs%wl+S8J^7i0@N39kC$#*9GugV^y)|_IExd`0*(@`M< zIc)pX@yqgn4-|kA6Cf07kw8}APvcJB2pK%n9#NcTfF+F!Faz(g#d-u@2eFDM{@Z@& z?4Xb^1$p(9fZtmW`e?t-y(h-9fvea=*#V;Fsca@g{{RSfia+KjC;jv(m!1o-8eP=( zSF+12NLUPlDzw(&Ad$#&p-J72m2ctQ+g#df3iu&YA6^YD1*zrJOvfM`5O8X1ONPJ< zPrWkkBDXS(e;KC2gdRYkqd+-5sll^RCqder4I$WZZ%SR1hOZX zrH2kW8tuLt?R^hgiLkOaU&^?UMm|;qS8MRz>dG;9Z+*a=<9Fdyg(FAdZ;K=FGZC7{4L?RE@US5efh~D@IRGdc&|&b({0jC zHtnW4!y}yFde8;`0EgP-9v{}PrWpoY2+lG9?^nJp>QH!w&MUZDHku=b+uTw)~|tocq#c7Cd1MycdBi?pkym81Yy!ADkN7@r-s+>L2khW@t|5OCt?skDgcXj0-N&|IH7p}(vQ84XaND>8dk{^ zvJ8%CKpQ&H1sO@^yR9O}Om7NDIK6MQ>?NW+^PZTl7GQF5>0OqSE{?t&jY`V5YM(bJ z3~7kv;=6l$k_P2M+~C(uq$$)d;kS-cnK;QkE0?;JeD)$fGr$6_=sL>jy3M`OjF{7g z1Fzvs3;rX8Y%iy@nmFboqmj*B@ZOkjG%2TvkrpQ)jbLPI_M{X%x2sNda+008JWFxuhU8lp}4e7oj@cYkmer>KIZJ_`dKU(vB zT4t73eay;F6q-kf?{qfJiz<>ZK^;XG3mV=fjOlvIMH`ueCqzX7gqWvK;ePbXdeNMx}#(^Ct&1HVGAG)9;i9`!t15AniQVD;A)< z7+-JFzKrm#)xES%vs*NzVxP5rg~*Q(PZw(o04~dg z7%j8;)bM!3U+9-{ULwfd0b#(ePw{4%r0Y60*;{nCxmeEEjX=*G{cFg44`UpfX0sI0 zqmk2a&NwxsCCs%VQL)CEK4u(aCluFW!;apDn=B?fnHQi^Mk&B?&1gwNb|Hy94Ka4- z+v~?5=ercwZ`ce_vkPYeHt!U&8 zTGW4ez!h5@)r~CURkS1idM{tCC$Q1)mdMKzf<{0Yr)-}&PTsVToJOZOBnp{je01Wm zG!HO=^W!w2gWi#Vamb`a+s9e}lpJ)Y1Dc4Q+|q-CKohCskwrBdJ!qf^MZ$s2D4ZVk zPDq>Zq#&rKBKVO_G2Km35;i%eG`{o!Jc_JpKPhuinLzJPSy#EBWD`VkNEMB$D~KAp z26ZEf%GU5K08HR7CBEo^&siR zL=QjKq+e=aNk)586Zum?9=y{5!1bjkjPp(IM|wFF0Cn$3#{-VEQ%x}kd}f;20MnP= zk?=_angE5ePCuPZY`-@(9y3zGfZ3)Zz)bV`Q(1G*^rtIv%}54EtpH{dXK?~ z)i0H>a#WLEcXtRffZspyv1 z^0bqtT#RHBUT1v(x4xbw&JoBJq)BDH33uud0r#>o#d<%9cQlE$*xi@9Ue^Gu*~k6IYV=dC$MbJm!?z3Nr> z6o8RI9MsC;21(|j&e4y zQZbfefGg5;?*M7bro}$1cPh&u2MWLn;XFD4)T1QuGtGKWiLPCt(qU2ZFy@N^O7p>f z8%P|b)WLwxe86#DXLSIM>QsY!#H>QLI*RqXzYi_tq}y1bNXq~ZQU`kTn-C?HAyLa5 zQUhnhUJ`=pp~;nw=4W%z2Nh=XMvliyvYIwy<}b_-t}8Q3 z)fO#PV}~vCcJ-!&aT?u`)3r;ROp+pEpqitBSNuhFCDyxrG|Ew$Q`ixG3xKwhc^Uz}NDkk8)czK-n@`ZS7P^h1 zUo4JBIrgW@E1Z6V;OqTfH@I11hS`6KxhL?U{4aL8ymlUZIdj90Ph3}j;aRbxExW-Z zBa?!oBBZm^Qs2dp92N|@8;)^DD7l%(UHm_}NTp~mqMAe*DYF^q)B>7E(fS)}#ZyFfP&UQUWRp6YmdtGoB4U zZy6OE430X`0)x&NWK&d>e1r0u2O|cTI6U;GAUGhAPE*>L#Hiz?JUe5h06CA#?@@+f z#y?7S^Vk|q$I^fuxZ@i~TN`MlwmD?&v|F1>VF`g8e-^(hc8*C}-!IVgg?y)|WDO{#4!1 z>S;qiQ$Pmh#tj31r6JsYv;zIJKn^9z>nia<3%V^VGa6>Ww9w>|h^EW|24^`kZbfz|2idH4MbQGio1N+p#cs^Q% z9Zybo{7{rV{L$y70zX<1qlaKbAyRU>gCXcUpF|BXm zLnMsH%{(%nV_k-g@ZU$!!)liiCB!l3<$RJo`J~zvkC*l2w2xDl`#ceBPE}88ZjJUs zs6+jsxZCIE3*NeaiaJ~t+T_}Xoes+jnMhru2pg^iX8b+Vq1Aj{V{LMwp$)y1^dNSi zqog)I5IlvG9>uB4Vc`ZJG;*(QOINQ+@RLWo{{TqS9G@^`BexN^&~+Zw=D!qlxV$}R z)=vZi<9H%i(-{;dn2uXj@I~;PNu!jW%0amcJ_z=#>%R(XHg>ObJW+XQGQnS*R)&SF zY8N|f?WK}DDPX-v6*i@LtTv5vEz`_xe&ZbXromj}E!k(eSb~ktc8{s9n0OypC_z{X z5uP5oy*@qHkchM9vw*lg`&WM|>lS5TxSnX_3Ahd2r~?9T0qXI>@`&Paqa{`O{41F9 z;|G-^9Adp+!1~#cUaj=R%Z;OVZYzMh(rzyAZeGO%k?(Kf8O;m~a3lAvT`NJp)S)ui zT0E!@2^>~s&8^L>n=T=En2h1Z4R!tj@idxHFv*h+bAU5NfsjGqjcP-*+N@{(nm8ZI zvNhcv=R~{~*XXMwF7+ze1XppZ_|5*)xl5ot?O*Y(N5q=DYV#w?TJj1l3{Ff3#z7`EP|&-l2aAYd%XmM-J6p$1+x5 zhID(4Vr#D^Pbff}iN3e9ja9%MsqRkl8}9>y^`y>efD?h%plgk- z?dmFHRHw*(lz_Pf-$Y)2V7Kc_`n@cKsuV}bZ-Ug`o7kN z)9mm!{Is|`N9EV_sg#se*wSxf3vfN@;10sQ64T*B;C;7K!+J!VezkmjE3^aT)b4Zs z(t}vMO*Pch*+}xv06gNWNaHx~UXQB$E5AiAr(eN2{^ZI~{$n-5YkCf^qR2+4V=PPk z@Ha2!IID$N&t^=Z*5x>6Y>>kPHKk{C@eoj)_2AY#XK^GGS7YFDTHJ$p>M}^d#|}Bp zdev*&hrETAhS>q>>r@en`&8rigM)@0Dcme(7G-UxKT6Pw_IRODxU_08GuoLfCRXPg z@zd6#iM*yEhE(vt)3}ba!hR^1O_p+@TsmV0x4aeM%{#@qrQ_etCA@0D`H|!AA75(8 z_+evhaet^1zF-jip_F{NqeIo3!}nK^$2bV`e9A{B6g`BuA^3~oxO_FLEEdvvv5}Q< zau|P&JK@HMX|7yc#d_-;YF96hnL+fU#X73%5yo7P-RB%u9+9fgq+Ce$a&2b7Z+~h- zJtN0n8`JzPq=;crcOA*%S0i$oqhY#FhQxnxu>3PvTCa%PSFrMDKnUa&J^q!urS2aN zn2vz9b4>}Jdnpm0l~nqkwW;9in<(|feM;FUgfHC(2mb)CSne`?MQC_p{OKChbH=FP z@I#D>7|o9tt+cM!Hc08n1b{E&SR`En)^Dwe7Jx{2t^wF^R8nBBw3{I zj&M3x7pyOvbtCS;C#7ikU&J?_9~iQe_iy*(Cm_(!8U8ub#g?}|$o!qe?u;(ornB@s z;Pao}iq`QR{{Z&I*V-H~nU6U+tUG&Ks~t);nMwxvuns|__8Q#xyAz);91?>yrMT_u zSvqGiTb{qWU*%d1&DyzrvdVmwPfOAO<{Bl>T+8C|m>dq$8SB){gXmP&gG0%a!C*+5IXRkT+346eZrw z8DAety=gNMw3AfKEuJdHyk$8*r7$jV-)ryl+3rk5bl0Zsy%dl6C1 zCI<)UQU!%ldB+s%VU0rAf&Tz42lK4AzM44z0Asyhx12rIyC3fkD0>Ya{{U`(a+&lM zWjbQ2*nIZUWd8sNt6>87&0uIRBc(|f`$LM4aR#JTBpLva#u#NtrW7KaojTLEU{C`P zbI78UHtHw>sE`^qDd;(>io{f_C%rKXBsr?mTaXFOU0HM1p2c?d%>yuGMh)JfF5vN7 z4;ryJsHC=1DFK=;4^H(@RgfE3$?7XcOI69@vo%=pZr*~B9uwly7hJj>a7Xg2K)|;( zsp7`Yxp$7cs}WBkw_6yNhB&8#jQdn^<*)$#GhOe5JQpqSTdVci4ssBVzgkn8in}T? za&|{0r)k&Pl%8FUw39cgjtApij+^k}?nMo#T}KD|5&XngsA-yXc2Fd6qM|6q6k@G3 zU>x9AB(V~E9TB3I=bbOZs{|i4#lvyer8N9JvF&p>KD}$v8v>$nkZV6}KIMBTc099F z_G$Q$=d1e(^L|E_QSH z(&ugykJ5)=m| z*RQp3+B&qCk)rn_-n&m4>G9k6YB{$Sed;-@AmB?5Da%ogYE>OLq{cl3O1yJT0FJ$B zcTfOHJ?V^@Ij0(MqQfH#Pf?m&cBi7yBX7dKAANTII2p`P{{RyK&*5FA*MPJrr1Hk0 zGPvQgp}x$y0dmvpjO-L#_} z2?zD7o-5TL66uQz24qa}*w&B4JqpLenr_Q0wwmRn*u;^*`c)r{2Wt2&V}@S4^`DKZ!az!2b7gXI2fzY z_-n$hRS^rhJZ4tSK0OKuyfqEz+$VPVvUuxRprm@8vad{xnrl*QI_^>7tz6q$f2!IF zuP1}rsd$gXm$z_>NfDuqxj!!4*IMSvFBd)4*48mY#zt_}RNY$mlICl9Azzpsry0di zjBOvq64+R!v?#1c8OBXkZxdZXsXfG{4K6ZC0+X*JsHOv0 z;NVh+U_CzyMPr_oENLvyvKZOlA9YtIn25`oHyoU1rj`qcvFAf1WBsKfnU)j)(C6IJ z?mg|(xUY!q>7jOCsfBeeb4>yX;?)NtK(;eZQgPm%h~#v_`qSl&)O@)hPz8Lo8E->QCHbRsy- z^JloEF*4cj#V%XEY1wRapccomrUP=+WxHh3{M6yQwrCK*T=C5z-{?&|?#Eg{8$4$; z0G~H-X}>mk$*DeJ>P1a!X>)lniq&kDlla2kV4Xxjt&;tN}_K2m};~w>CY%bc>u2Lp2DZyb? zu=x}Khj)C@^MyTe=}vWQa1A#MI`KfkP#iRw+B;ChoD6Z;QHE}xsiy(u4xyNj%76f+ zKi)MWj^tC8Eua_bMsZA$uyIHRyLP7MwKTEK9eEVMQ|-+k&X+t=A6!rZlhcX^B9pkM zuR}})#&JvDld%GfbJwjafEr<3)4Nf@UCh{~A}_jmuKxhSI@;LyM^Ls^%SanPh^`7) z$N`t;Us2k-?}t`!Y8o!1Z7N1?CIm!WbmO%&4C($8>VrTgP z=l$cURaW({6OY5bCb5LuM+9<4y$ZM^^`^(7c%VKO+YEgjNA;;0U&K1y#r33?S3M(f zh5qRWoKw65sf{yQFM+w&3dgo94^yAen1W= z1L&Ox#{o%=-Pb+Wy>Y)8^+eQSf^Ef-hB{#G?Oenr6hdL&+V)C$5SyZv~8Lv?BmaAzk^|Y``rF^_G z#sIG+iUa0?t=|H-pGdrU)*GpOuvc(7+%ZEMHvAE2+J>d8N{@)+8-ew#KMv{-VXc>y z_Mt7f5y3U9;4AqpBGqDuZ#emg9fx|$@Y%Jx*SxFLR*l$@Nyp(s5z*=zwwZSm10ORSg^@Hz)})BiM&sZDeX*Q zHm1d4>5B7fc|X#lc48DbVn^1!YfjR%MA7H-oKG{xNfK~D$3b3LQVFm8t9A0#+Y6q6 z(nC8b^_x>>zrJH2QVvgAcfwf9$*hn$3OW4iDZC?jLofwal;Np-Xy2p-qt6E)!-mQ9;ntV+ptb24(>P<%!Qr%p|ZEl6-m4d2{=DqL0 z-WQ8N(~=+qT}T5>COIe5=qn2Ky_)kjrw(Rk_&>llIyg!0lwDtrcfTr!{gM4^yN=u_ z1k{LudQ!HX|j-^c9!?01E=pJ`5-G zqm}j@&cwtUtwnQalS0u*izG}i%EKUv!?N+7n{vTPC{KKhS49Nz&lq@|I-cUD%?9U@ z_|xH>Vks{CIy|`-EY_s(-|n8@O7i918!}3z9ZnfoV1r**I0u|pm;6)ka^68Mv8F|f zxc+IQLH@CQezn_&#C@39|`R)x0@b5jn#TJ#alS>f<`3_4U(fiB|T zD~{f@=)ngkG)$*<_2hISni09+Eo1v4^5x87gU5r;`As5on*;nmxSfDRqC8vp!X@RBwSblT>-7OkMAsoEq?csQ;*OT2A6SGT!ApDFXtH6uDrb4a(-?QU@xFS`oe z2oFiz1PIDKwI5wKIvu@(#*6lUy2G5+Jx5ud^xMkk=Ys)A;PKvo zAr@DSdbVo=n}!()M0Pi(;#+pNVKiTTeJGDzxQkYb{fTLljGp4PXVzsG52;)H-eAO- z9X_-Hic5^4Qb_Gpq%1h;TC>5aUPbn;Ho{3GV~n8BKT5YBg*-uf63O-jT#w^*Q~73? z8vYUSfA(IMmXgAf#-#J!qKCx-+gz6K%8SX9_y`ykp1uh23Lb5u0QU1iq&@`k3m=x= zAEA^`A-*rv?e#mQxV4N%cHw~TYOaf}Phn~zghl{-oQ_RgJ_qp*0Q)p29lX&^{{Vyw z#6a$@K!k8VMmyK+$EyCT}K*t>XqZEze4G4pcGTi?F+cn4Xu1YThc!3YkZ4vrP zDf4(kUye4A*{cN{?UWPz=>gt&Ygf{)@BYngV+=09pOptS#CXavH;HDFECoUo1I1-{ zUjE|CU$=N;FDYV$54}yUUA(>^n{e7oe8U~{Nv+0@T+vQ#Ex^zEu~%it;8h(6X5QF; z(;-_A2L9aFA~$6a#fBIRk4kc;<{8aOEgfI42AW`yNsivNKuJ1*XK+tw+xb_T_zOR8 z)l(nx&nFe>(#N{aV1MVEe=74ohwiDaYGue#<(|J<(i;&ojn!k@e>bxpwOM!-qph+w zqdw9I-gzDCJb+DVK$L{@N=JG_)7pR(o@u}eXY!@aIK==PI_8`g8Keh2c&B!t2Kowc zKb;08J__VI#T<(a37g(f~FV=RIQ|%Ct5dWD3C0Fh(=doW9h6k~z&g9@GIY z4_ZPpC{xA_I~X(o)k-PjWogaax7 z>GiKx5KMCISvl1!rB}0L4?2 z>MD+*s5H|EAUQeatQ#{F19vTsXpBbLN%aR(at0}%+F*64E>MOztm~9K)p8TeZl&T& z=}#m!YnX;(8}+TrIsDZe<+{|kSbWzReQdMF$so#_@;?@6=S#g~82!VXud(#6W?`PS z%y`R7`(~Rep!tW)57M-wK3Q3jRy@e^Kn+;81fKmnR4k=V2qP6{)p#e`y%UXzw1&@W zu?#?unZk~|)GSE?pBXsjn2GQdaMY;zJk(4{G$}ct4GTY>;RXeIDLJ!?*J%D#=Ne;y zbcKijde>X3Yu0ueQn8USJk&_2lsr?eCYKpR!MI_-J-zG8<&mY8na4ZH5u&j|R0Xn~H>T%7LuQ~X(~wbg?`4Y^)H zW>MSTx$QaQjkip`VA@As_^Bwr;%^jRYqGjX&Eyu{v3u1`D^9+U`O(>2G(-5rXBEHU zJIj4MNX-&E9)z#;uB>>eQay_j%C*PdMLR_f$*QC%GV60>NEw9^&?gPNIE zgmi4BN>bGp?XPS#Z9nYVnIbaV@}~zi%y{f+7S_>PX^*~vt3LQ- z;aqX}S3PkvO(AC_vF=W4)RdLbxmtRV4}P@eJkmD<6xu^4R|cLFcTS%5T}@157ZuCbKc|6~(%-2@nGnRwnm57F{o1Efnzs zk%5zgUVGyI01eBb-mj83T1;^n&mj6!G)-Djc^C(hMh0b(n+b}1p zpTJT@J&l>XNo^GJMj~bk!~>jWx!)UW>35^aZ5jpMMoDa*wb5N^8XhHPbq~%+lP5n) z@!fJ@bsL3+$%r`%&uSQ=hJzsiLFrGC*dqYldg8PE(hmlKD{eVzhFLewpISDt8K$YH z?)RVs!;Ujf+S#Sb!d3TX?6#ZxI08DBPpC zVd+Z2dlY;*X%GA>Yk=T$8B-GKj0+5Rt z1dP;E0=WmjAk)G3qC!Z=YG?$7j?gy{D|1M^-m`WoU^V}puDnZ4+^8hZ8fUtamL$-S|R({zi0Z+Nn#+gJ`Tc@>QE z9QURn0rw2h2cox#uEOMBKhrgDLGcB|`pu+LU9^hQV5v3dYdaC%wEQ=8uxr+H$_~_U zP6aSKZx*z6zB@^!av~4{c<+jz`$pPL8ufRb?xX>ZyjA^q^bJNTI3V?|hr)WLzMd}x zv7@}I6D`<#P&9P#XnLX0?r!Is?CKD*gU;?N&#W8F)h&a`v^1a-=rhfF6|ak=Hs;>p zgprjgjyM(O_b9O6N#znzT$Lx%ga@)qYhad)Qt*=utViYR7iv35dQ?fAa%yY8F|Jt5xRCO5QDX-b z0V*~a8dq-SqX!g7enUx)$D{lm(M84G#;Y>qLVUPM>66sgvqcyH9`(%pKhqaX@V$gM z!?Jmg^=@maUO}%OwE5=Q-34fkxS1`WGD<)L^{x|L)!yc2`G`@#0=7I^d*#ZI2EYR* zxk>QA@C{ukD_x3Az}1||o=tPNTk>#DE2q7LvlEQ{D=vF=ImjT^_9o{xZe@kC80WTo zS7G5F8eG_1Mw2-(6M_$F=k9G#o<&6+uud=qCj~7ST>3{(yNdeJCxqo#W~F%5vK(-D zBi6j@;fAQ|3t7n73VvLkaBI>=7-tp5CCcn-wLW$DkD&hm!ad?y5&%W4CEja(;rT37P)@4qabf zoGJeRmMllLSd2k&CGVXf5-Xj)^^4&v<X=P+{~DF#I#3rmJJAN#<;OVe;d-t&a+LLf=!hky<_k@k@AHQM)ArL2!A;W9wCZBWm&Mnv{2T%ouFJA#q4$ z>s!5dP_q{{LgwNw?2DWqO31nKKBa3e$C<_s2qy$qpTqANu7hVamBNCIODkicHOqLi zaeb;>T%b_19l#Eht`<8ckHk}1rR}<2J*%$aB62@U#vUTo1pZmMaf6O)pzsgGU+mo& zX?KBF%T1`{WFKQ(4~cHc)uo!$pzQJ6IuM1qKaCd)8JZjdKZps& z13Qo^hl%4bc%I=H09p9_YWiG@PZ$fd{o*5>Z9PRAzMFsIJwfj@%TmQp&6WTU&V~o1 z=rRLuX_7zHg(u#+bsTYCM-TiYIz5+}b85*N^==ps%AFUDFH{WjeREiHGj3#h<^?iD z1%_+O2afL-sH8qUyCd!cM=J}X(zO{<3uy@>I|%(N$@~`r-D^6UF(5Q&r`Df&;`@uJ z*<`>ZU>x+VKLTjikX=iEBzs_%EGfv#d*ZZ$u@YyUYRmS0LTCeLV-b_o)KRfDrQ&D; z>o)`e_p&irsxWIpN1y3U^rJMC027b_=|@UV*`qwt0mCPnP;*G92Q+7z20xly9Q4gJ z6O8tyEOI!Y1ji>msluDP6rkdO98Cc6oKs1oBNW6gX{>%_`ie75bBub@V@JN|Zm*@< zl|S;$f0b$@;~eo>z8Z}mL$Yqax?YB~%zIBkisv;P7-x!=a85Idgb~}VKc1k90F=fU zQmW#Z3jvyuWY1ava7@ug@J$rJq|y;d=N$9WpMlz=anDXEh;Wvonnl}4R;tc9IO#|P zk%2VK1fb`v**CcgkL(pf1lgzj?$;kse*FkkR%5zvg8juKNBdNd`^sNcl zlU)fJGQ6w_IUE|HI0qzkspnz|Bi5nZ5quN7N zlPVL}ibpZv{LA^!1xXyDF;m*HE+lvRh4UbNW2_?FPUQ@9Q`Yl@!q`-ppe?YI7ZxaO|1ocoX(zh+@?-5!LLix zt!)jQVXlvvjN^83URwk0a7AtD*QDIUtmRj~6ec!}j~3|0D?@p2DR_fr)b{tyau}}T z#9GCn@cFfXhLOkw_rR_oup*NhCbmHG1vTp0b((2D7xOLtNs9nasjn)seYXfs4?XMB z4aLm*BCD$qWEcXF9cGuJ+}&xB-d*Z)ubIeHJ-y8=+9a|}1R8{hzL@L!)o3B{3De+; z8wtcHyk%;&?dGSX*-3MBk|L*Ej`f}OF2^aX38e89_BV69k-+XMQ^j*zugF+G_p{cqH4FK*8Y>IPNycLb(tSyw z=|`3}XFW&FE0TuIC^;1p_o;hUqzjxg&qC+FuI#d+?TboSDM zF^@{@tb9v65dj>^G1%4aOVN+;cY&`V)RyO0jZ!H2Si@&0@T1~(v2S^OXJc;Lk`tCI z>(dmM{xZD#J0j1ABOF%{XL+wY=~xzK$utP|6@Me)?97Y)t}=fr@>|_R-9@m161p8% z#J3Nky@E(Qw;OOhD~>q;aw#@6gy50EuTuD28|>1U&|_iTPhPdUE9Y{Gt!+c<(Tm;yQJSF zV-EeZTSHy47tQFZ*?o_?P7!|AI3(H9SCv$AK23ZaQ{MpAeSTCvN3yfoLCZF^I zo1LSrAU^daibhE|rjhMRc<)FXp0t47@QuK=)dahKb-`b*Yt(!}V;77xR718oknU1? zsjnEfl*cG#Vh>|oKA*113a{^7Thtn~OE+|{hbAky8@`KvO5!=2{goyRlVH53|Im;2uB}{alR7PWU`$C zu&m3?YH4)8v3afKe|J1qMYO(LszE<4D7fr<*0C_U@Ri)C$~VAC^v)~iunq?Tx_ga! zQ)FXTZOo-kPXf7?$X#k6!oMM!Q+uIZn20GHeMQ|!-hT?D z&RLH7(s7q;rF#6+=fa4SB~M3+#uxp+q~KGTl%)_f^D@3jn! zx0Q_5O&;kirN4prEh)gDMiu9V?{xbp@2?^v(nE!1Jm#utdUeL5c(&GQ=1lzuO7!0s z-`d@H6>Xt#WQYbJeQT8XZF3E`iB@Zd+JYnVA6i2)rPF7#g5|D%cPuTpZgZNer>qj* zp}7p-Fvq9kT~~~!wVzP9k1gf7-mEI8hCC$t)wGua_B(Y$h1|I(6d<{~dvj{`%!bYe zVwl`iWPK}`@Z3_*e{zv2EU0sVp7qtQg)WK(eL~og+#a>5;U5mgqf2=_*AU3kE(J7% z+2q%Z&2amUNMb))hrM0b7jCh30KoGJ0971PV?%~BQ$hnv8n7QTf%?=G^lh?4-i{7` z8kuZT-1?5i0$MmpRzKnJaCc*+xRthwiGiX0PM{{Wkwr#0IRj9%d+WaJ9Vxq$LW;%1kam_4aJoc+7pM`gv=7)ptS4!~&7cRM66(Y9$ZK+ynR|!3= zD;${ln;f^+xse_i9^<`A?9MRU(Q#PlKHH|v;m@-Dm@UGu-vD*>&0y)Qkl({B(X5EA zl8w;Q6Dz`=4_X4?&=x!Y0PU?5fLl$6p2ji$6qmjtv`r>>EiG0k*b{`~^sWTE4`0re zCUpf!$TaRN57F!-)$hEEauJzX`Sz$F({HY|MzgnzeafA?LG<^n{{R4w_^FU%k146s zT%9k(cUKUSvhO%F0ZRKp)^z)CKK9Y0iB1U&8y}IZ>0`J^u|>UtjP)e z(QGO9%>yV}CE$b@A-QBchDgaDn5p6y7gB`_BhAwU9o5`vJ|nu);DW)HB8mcrBau|1 zS+2ZID?(JZDL zF^*}0=yo0>hWEo4R=2W0+E_3IjDzV|lV~rP++_NMpE04F)6@5Ti?0~FIp0C7h{%>s}d z8U{Qu0)lv^(u!jaF-y==1I+?~3PCiT#%XeTQgq-`0PRg`Qhlkd_kF1`9_ir;w&)gv zJZ<8-808GS;MY0er4smZ%>MwhT>{&Yz&I7o&4)KUtw3jPK?EAGid6H`q%ouQ#Q;}| zc}T`HQzNlFijg4zaZ1nw_ga7u<%b<;perY8DS=OMS_9{;J+`r?ZKfeX2BMH;aZe)x zs?5#@%SZvD9+d;Z&jOq$AoEWX1JqD5gwY(sFPzJ7-G74V9riB73X%c zzMp(i@*NN6E4;AOW4X6nu+4O%7F4-}^TlRdsRJC>L2y$YL9CmwrH(3zG08crT6*rg zjdR|R$6DGBo>~6T;HnSeK9w?h4H`2j0ySQ6Dz(qbhNqHU)0Q1OR#vxqw$`%B?ZU2W z6|1qP$CUWi(oL2tr%AKb<(p$C7!b<1`R6Kn-adr9Cd40NP07)}vue3Qr<{EVcZ^ z^2|rOQ%&TXv!2xk(~6Ch=N)JQN4u9K?`-a&xWt7hFPMDQGW??%pbJ3LWIR&Fa=mG?u>5HOe?rs0wDknHFR@P~*P+Fr*y)$C+axhE zunbyI2|tZ_{{V-t{>5-5R@%T|8nv(ZlHz?tgD5yv0lg_Q(@6IleMd^OidB}*H()q+ zLC4a$e;i)uQ+RIkcR}PpN zz^T60<#D@;qH;}JwXwRMDJ6y$c#vh=u&c2nByH?Ydelrg&uY1EV{>r?lSL6|;~91x zg;}uBwJk;#meSRpA;D~bKUypXN{V>qpLcIHtnCfL80B87-D(}(eQ5ylX&b2Km`|rl zZfF5}8hmFJ7|*3V9@M~`KfNe?eQLNk?@ru013(tiOmsD46Y+@TKkyS){1pp+nH1TbEc>6WS{qSqDZxsa@!U6QCpT%LgB?$HyqQP^L`z7OawVeGB(zc&{ zo-HT;0KN@&3F5=Bf2+s6H~td55BX+&aYcu7kZTL&T$@Sp{^6i$+J|4U&yV*Fb&cYp zMglMLq)!z-Kh-Go=8FpK<`Yl94b7bY0QbSIh+k8VFso}h$EuvxknvQQ&c!|Wqy7@P z2R>SJ??4#hElbQUZLTtU{HC1o>ZM2))ARn#Y5xGiTPGkQf%T;xDwD9q0A<_7sYUl~ zrsw^GOuvg%xloO1IZ@6w)~WGhgZEe8nrZQDgniZg=mVVo%G8d3&~7;Y0A`SBI+6bX zmnr`M@0#fU0O2i@(SJHW;VgW1A5%)mF3x-VA5-mPK0n={X!@pjv6%i9zI<6I95N5a zlz6g6AAB$#wCsaZ33OdkAMxWiYg`JAAZR2Bru02CxBRVJHKW(z0bGNm4LD!4>LW71rj| zH7MeD4h}{!j8_5T^bz=%Qb0KKjwonpnLD_nH5tePl+=_s9y-yQZ5i}GjQ}{G&X6#q zG=Tn8hDp1Qrh@pW!KY)2Ku8*tx9L$Fj8UIjU^_mvpz%%Xik1s$t`bLrCv}Wv$Q=a$ zGbc2;$2B#rtk*lt5j={6bL|}kNoiwoe9SE&X?BdZ-qgi%uH&5XPTV_F3YB6A!vll$ zs}E&zmV)WxWq|M;&;&sKRLNNOqck#;(ts+l&OtS1-N+cosEk=O97Jbu+XGtrhk=511Nfobf{T2pOo%i zqJTSJhFY9DZmDqBBi-g@I4)2aRIsSE$FRW~A=8Dh5$97&3<+tHoSZrdvU*SHqx_+l6jP3*%A9vZS z*xk6V9<(_m(c1}K8J;?@d%Y$*%Vpm!x8G6Jr~d$2yt%G>sm*&`y}(hmfGS1^Jq>yH zj65AYQoZhjADeF3X)V8rJ=fHGR+OrJmQ3T-9I(32-l&>HIXM-ZE6B1HVX@bOtT07H zWqh2l0=ft;OhM;0U0)qdH5@Yq2Xh_*uO!!Z;LiuNmnnO#M$yF?4IB;CkE!;ll+;z& z(z(Cj4HfkLBkeZ|QsU%?+Iuf*>zD4})Fw=x`0Ob2RY5FpqmpZaPnq1^DBx`?f)E+pP7?pWrGvmcd2nk+5m%RG~lC}kctL26*=T$fHeFgaTT7q zZ*t5GU=?CL>#@|WJT-ZA(@PWikI5=X2E69RB()n+jtS~&{l(aUGVXTMC8MqW%J8rl z+a^6Xn#l1b?~)eE!bA2Tm;jvd=~$-dl?59)6<$}~aMFCou`~f(iU9Sg3ga23@JQy6 z5-fi%dsJ+qktCn(F0P6o1Lbd8act88q;#&+;fYk#uM$TI=0|~(*P7#38~Lep`ED(* z8co<-U|`UJou;ketJS%l;wzXMJeL5H4nHc%)3mAe8Q#~=MP(Vw9Eyqc$;cs`ka)&w zkK5TL^CHT*J##>glz1BKa&Ili=Tpt#tGQ4abqEU%21b8c!G~G9J!X)fT-4)LxyLR~ z)_^p}fUXzjO-crD?(HM`)d%qMNvI1sH3*X9I2>l6msh#l^2o#StXb|QYo9v=N$L#) zJ2&t(+c!Fmx%VK}r-uA4`d+3kr@e+n3PuMVYmA3ly$gdWsfMp`ddk@EK!*6i0oLVY z%tgXJb5@*yNtI5c1jfh8u@rK}f&h4PCTL;#-&{;nei{*8ab%>GNBOEG*y? zmdhQ3n&YHVP_bn^AFTp5waeQ}+dFrP6pH0X&QxNn=-2UCEX^b$R$=nzv8#RC_2JZ6q*0mUIa&;s=Did=wt=9qr8 zxyM>yJDL#jOfAU8IdSWcS^$vJXQd%Lb)+YpQUGH}I%5=>%?Iw2NDpxMe=dAEXa`|k zSdmULYmWGSo@a*bUNN39-&*O?44jf{6H?&=>rKu(Qx_|MPfC98S^zxKIK?WkC#^#+ z0M2T;lMU8@Gz*bMQ~O64qJSd-fTSemtnK2VWafbpm#E#i=AKjJAfZdWI+X)rt@>4ChT9o+T$*Gb`9 z-?Lnx&IsnYOW6p$xF@`a`P9}IW+@fH#ww*7s}mVnpF&v9E-jJNSCz~KKIjp{|p5~#+%W{%P zU%CmeJotgDZUV{{$v-oZ>0Kv@b=dUVM^zxqc*S`|-NctS4>YGN=RZ$s=%G&UnV8j` zm5Q%S6y|SHnrPy?PH|WaaY#Q(QOzL~#2_6oDcw8L0fWUMJkS8ck4k79(;!Ekca+G=$^503#~mqub3JzHH};a`iL-#vEt8MswP%FwI2Ej@(cKROY2lwADk_ zos14B0^PH)Wl`&lSEA_}HroqQpayv`Sar>L)}77l3VXP(S-PCr=r*!Mz%Z9Nq3i~) z_9dc&x#cW9>znbenGL>!aVoo?nLr2YS{E17eV#eI;#tOcHI;PFe*;BxDR@cAQh2PA zG`Yd)7DoR7Qi|U=Mqn8F3i=aH@aKk?Mo8z2%qlUtnC|*lhiO)F$>IkZdTt2k2Rvf6 z@4Q#3TT3mdJ6bYV1Ki1Jdn~X4yaCA>#ar=LiYAv? zlMI2?R5so+YFSFwJ&#S&{4$ZvCDon3nu)_Q4XgAO=N}XwMTX6i!WdPZatK@<*{))L z6yMDOj7hdL+a|faPUdULi`+`mFykhgh+L%@KU(z94Zs(|mx`k$qB!HddBi|(9ff)i zhBZ{PwakPRJx5Bokjok+pO@iF(IPTs0{p`jzoSCWpxVc3!2lRF&v=W)D?PZix56W1 zAP&EcTGISYZ>Q;kJ`0XOHAL!j9~3Rt4Q>n(xuO}zu4|4w9&1;`nw#p{yw_56JSg-P zl4==iU?z%6T;h-mMrnl8OMY~~lQf&T;-lTv(ym#CI?xAW@co2W?JIBr9FtJ^t>vG@ z7p#DkFUC4kd^kL;j^~`#jPRFtBrzwP)3~g2A{p2L(0kG}GOsQ`_2#!{h{q9NjmNcf zmkn^v+oNC!;*b(;U@~8dgtKJ))Xys6mm(<&`rzWBDKGa809Xv&-QTb#z?E$ss+*}E(Y!oA6i!n z99u<&2O!fVP@|Jp*i}2FW*{#?KoOQsgPLe{2Z~^Y$>dXn40;*>agoOh>iGsUBue>eDZ zQJ9G7U2VOPZ2+?=7zMLj;X#A#LSbW}_-^4fmfm?B@mPK~VgCRLPNjp^O1Dsk_{dAc5WuGhet*wZAD3k|K<^fb_! zr||OBwwJ6sA;?0xKSRY&@Tz57o4aD5hZ!dxm2+3|ObMr4M{68tWK+1Q&U0A*01mZl zeJSpmWDf6*x$ReB9Hy}lhg!Ug7z;B34_>wCdhXlbhHEOvx5@(;9f8Ghel59%_g}fW zg?zM>CV=T6Pu4_5;r2N@K~%YM4m4#syr`?S=lMYie)=t`wg^KonI-=yxx1O`UcSQ06oG zSE$_RUK+8G#WYN^rv#G6HC|0S!l3~+?Sbyx(O|jeV2V-CrFu-dM};H`>jMCLE3w5Y z>7Ei%^FrTJ%|(Len~G`g?OuW79}nqJXc1}}OidZzf^vBujd}E(CUc5S0(THN9ZwY` zZVoWO)_kmUfN@C-tfvIhDI1VX(MqyJ#4->@E8M&h;)u122;sPJw`wti-~RxwUq8Vq z-JUtEjVk_INraF{Re{e2x$DvPi%rdG&y@N&xd){_E3%9*O>rI>@uWAABpR2=E-)m= z2kTvGGRUFgVCZ@fb6#Yk;_S|}(-TwEbj?kRU)e(|pX0_G^BmS$@P~&wn*;RoU;Jxa zaA~YfE@^iikp+&KrD@pv2A>Q}Ka7mG=6S2eQ=HXe$F)UqGD9BeqzJyOaY?qq)-QR! z^~d%xJK#b88c0IHr}y zTEC}X>8+{D71(2M$XnZ+@>S6Ip6fBI;D;6|IX!rrof-$tE< zbCTd1bj*`O<;=T>*1Eu+75@Nl@hwWp;X*l9KZ{XdxyKh&z)p%ds#hwqT}L;VaJ^Q$ z@gIc({{X6Q&A-O6F7I?3eM%^j)BPQe8HqGlS27kr>I(Fv10>gNZy$x72~@}urr{-JyXeYv8;UQ1_dW!|lF?l%@ z{lwrCn(M=ORP>Awp(Fa!vEgDr)t|t%77Lt!=e;-qU2%U4WBpMBryGR=UkZ*4f0=Lb zqQP^Oje?PyVox!-aM<$4PHU`bJS+z>ey#pB8JoiY0Q2uAJMw?Viw@^FWehu03D0`z z#QqiSY{%-y{AxjQ;b1s}^C$dhueh3G{)%pSGVo1Y7JxBh?QN7}qEkNEX(*ZgR( z?sH2xT8RuX&Sl;6A5&dfy70Ll@#s(I{xqI%g>lWN=1=(1V7bezq0cNTP6)1_?OqiF zi$0%U@t|LLWO6MD{Ll5G!E=|u^%R9gbthEt$mwPe;Z9vo!#zI6qv|NIT;$5Hezh3@ zbgs|)OTy=^quVVND6p<@&w<{m%2Xbs73fWK;ZlF&)<4HJ6F-GdTR5^k zb56l?&PxJ#qa)V6F2>iw_xB3~c2Ng#agINct{cR*5$SrYmhkTK`lxPkMTVK0ezeSU z%{Mfl`qCQ|4%B0{IS41MJg=upVj}57cJ-i)8dK0vF_^%m91m(-^Yo{6=8y;0ko4oN zE-^7ip83jTIw;-)NOo)a0Y6Dux#*2%^HcWcdO_4y08<)L7BdZFALP#T; zuKCRXSlXoe(;5(SP^*#BrVPx z03TCluJioqkv0hQsjipz(q}o`f1O5&j(M$-k+G&|%&3T+` zM|!yh(M({TD>{^v%Y@udZL+gq zTp;W78s&UP;<#;4#b^t${vdkSA$P1?To&_YWBBH=r<>+1PbRj8A6v-IReKK9E}G_6 zmR4fK=Nai)?%i=qB!r%6fMgu^uB5G@&fUi6*QF??vB9SXssY1})SMplXVa}EF#{Tm z^G`H{Py`LviWC$1)P!Wyg5Yt|fD{jx-lKj^JoKc-XaXP&NTas_tSfi7(<<(^yEHz3GW2b!g(_(tnc0foddrZb*N z{HOy1OWH5sEx--QuTPc_?TrdMYk3i54b+~PtZQ!oN}oBti+DVIyjAyW`+}GiS?nIedDKO?m#I3AVkK1to-T zS0}v}0BM+@>;p>I@z#K!no*7S3sgwDiq9-(3i|tZUtmYTf?;gj&d5v_EQg z7z7cD0OP3*dJWHl^vG>p#ry9AIXJ~(*l2cFA%wR@2sq9_27ozYdE%N)cTM2y8I+4_ z*Du?UYmn4zC)2K)-r-1L(E5rj1x`&{v5R|WsHjzPdE&b-4tQ4n_f3xK2wbd$!B5&XvbzLj}UP!($bht6D~q z294D2Jpksq1@L~ZxdIIR4L|-6tyR}^#uN_5i-nB6kqrr#BY}`T>zI-gf=K4Ok>Jf! zB|NqR)}&vD`h%|QrhOT)pVEtkk32Bs@+)`4sHo4s3J5%tT|)djz91KpH3$8wmHYvJ z5-*hK?0Ssj1M5Y?%;7F0#I6*KWcR9$8~*^+UXA|%3ijyz>61PC3V8T+CX&tqeuG|i4%?w`uNOnf;zd7Nk4fGNxHrU<=|UK+ z-yutr-n(J&?`s@gsQfAG@c#fkFBkHq%!16|;PT_YSx*WNQCiP`3ZTYMwRIoxufPNS zEN9mgqv8B``R_7)mW!d-^SLAqc+w6Oo|R`*z7txQfNp)OydMv3M=f;!0Dz_c0EK;O zPEFHex64N|6^|q+PfXK1qEAC!!T$gV2A{NMcO-S77`Yhf#bC(6P~m>2y>Yw&r4=}qQgOyx zip24kf??8pFLiwYEXY*kp4r7T#L>j~A&K!Sk;YW^tdANt{{R!;b@NV7MFi;i~G!HC)ic{9amAixAWool#)77Ba9jjtI*iZ`DV8~CEj`lg{{HMqLk1iy52&2&o2H5nw}2DLw)DFKHMh?(QtX<@x%;|RIOC0CUu3pkZ@$j8T6@i_dzm=0oYH>K<6Fn=?@opZ^M^99F$u| zEtsig3G(HKw@UE8?B$B_1Yms)B`c1`{B7apL@fbjBdHvIRTiZ_i)&`hV`{4|dX6iO zy_xOrW`*!DdJ3-hIT*>urfWpWvFI9Xo*$mk8v4y%;Qi(!HCx2D8Zzke#irZrn2=Sm z$G$6yhU}v4R$x5=t5&hie{mhXzFJ4%0%&X!GMs0%H6W5uBlkdjihBJ`dmgLd{U5_$4_<3abY`9)wiie~03HvV{rn1<>|H(0)rmmqORxh{6UP+Z^^MKLZ#1O={{ZXIDZ-G- z8pzqFO(@}$3=iX6eA1bTc^H;G&31a%Iz8VR`8s|z$Y`(&txC=Z`;RJv^v!7(Wpf#= zPK(1n3e>f$adDKjwr{xd1D5D{Z$4m5j(Q(z z^A>y)UbW+I4C$7-RQEQA?DrVT#I5qN_7&t(@@cYA)|{t$-tau)PZVk4x_O*?*E1j> z@yN|+_-^a$I>oKi4EayGkk3l-Ot|rIwkwe83GYtTZQ_eaxGJC>yf!*k4gSCOj}Sq8 z!C93yvBh82yhk0*nQ;jVhe8HA(AXqocw+VEx_BLYz*i%Vm80S;+Ss#*h&k(yhPkf` z>L1yc?I;_GUA)%si8bSUrMzDz52tD_2KCDs{uo5<)DP=kYaj)A?_C@oBU9mlrnnnX z8=Unfxm27m!J&dH&Y5phQKECu)wdw@#WXDO>MHs1-I-j7Uc6vk zIKU2Re%Ro3WBAuQ!bHDr&r`qg#O;x57>#=pIj&n%*RF2K`$faIwriF*axnRwvC|bB z&PeN;xZ&dwI<1$kuXkq$0M=a0Nj&jGNzEO2$pxuPHgCQgc$tgN~ISN@6Ds zf$vsy*>>udXFLg$`PO4ejMCY-H@5q}@0hv#>7g^y{Cj;W-N2D!F1+TjLt5$0NK}Q* z7Zr?8?5ocAgC65Goi>wq=K$9z>*{lnT|<+%ilK0J$T;go!o?^wtArR!;y(laG~=XR zyK#Cxr!{?CZeMFkKAV_>>t3={{X^2Km7gR{S9JnAHW(vu;%{& zpVmKtu7HYeaP(YuFn_QlJ#P>F@@Wo${{Zv!e+8}M!J{~$;bR57K5#$M+w!J=!aE`V z0GH3rYj~V=%{fV;;bR1NdHNf({{Vdd0QKrc&Qh~GETq49*tai|%gB&SMy^Hi>)^Av;Li-nB7 z!lIeBu4>E1$lFi<0IsUc4k_Fj0hNXdjMck&%M36%#b@BCz^P!}p7aRO2Q=f1b4*SK zX-ORo0~?HSns5gc!bfU$?kE_!?Mb)_VQwlp9R73&vW%{Ao@wsCCQW0s?Srt@t2@Sc z_Dhk9Kze_H)c*iuCd1t4*w;@D)Ucd8eL1dQ;p^|xq+jm0A4=%v40zg4y6PZCh-OciaX>V6!|e0&uBYf}KFU9ZjbvKew%?J69@TA9 z;YixV0IB72sVd5t#oIc*EizNmrrxlkba#h37!da{=Q8A0C@iZI%4$p zrI-CJpe6@2;q6UD z&svZ!DTr<{){vfQ&5V20Wb;4{;*a4zwA|62)BwFjDO`0t(gQ~95@-NFr6nfddQcBE z0eefdYumJi4$|GvVP3IyacALO0vMrCCXq5Y<&AmQgkx5}C5Q0w&2&EzoVCuHypSNK zCNem6{{Rri-(-QLjn7bUKU%kY;oW<~mQl~CsD&KiR6a>R%DbT&heML{Cn*t5RtOHY(DC`ctCQyu59d zez>fh%jG4$(ey}k`DPN#(*??n+-A7vMI-JU{dlgvYZEvD<^T$T^hCx4%l`m;(&r9S zkP-g?vw>GFBrxY^Us~u>KpRK;Li^=v+3=i_+nI&LY7a%mb5y2;;>;w~E^-xl9)h|% zEdy56Z3VFW~kMs%^sIWXR7`&02RQ zqrY2QO$^`a4FV$t+(;GY(_P(oi&uF;z`?;i6bkeY9!THV8h|**%0F7>z8P61-mJcA zuD}Q&ccHPPPe||{vp$P)s!MV9dsv3yoPy)nS2sNGZzkBCoPo;|-o3lUTBH8}VjU{o zhS^jvvVmS@ec{`9Eu@sqBgh6%VOhBpk;==jUqZWMY<{)QT{FugNZBNupRINhX*SZf zUv@o?C>kA^Tz>N&o2osmQCy7TFxcR8Rv-)&vY_$nU5L zX!giGn>i~Nco?u8)xj*!A!cGT(+0a;4?xo;xz z4cQnbtyD~x28=yE!sk}F`#f^tk5*$_C%{)$z{zuRp>f91&1ZOO@nE>i92|l_*L=`KvxOSZ=g9FF+n@xLw20_N-47{_k33T!5+uJ!?x? zgva1`SdvRht%KXGUCFhMQrrnAjZZ>AHS}+W=Z4F}wlPD(i1UwH`O3)R;v#>%4SPMc z@fvl%%rUT3%&48@T9hikH4 z*90$^4i6N@y>fc-MZ(8;HQ0gU8T!*C*WwM0zpZda>5h3k(6l-dE>ER$7XD=H6*BGUD%aR&=um_7phn|(iMt@jy*K_689%z9Rxj8j+IKcR zu}l_j2RSFy3ION^y5xTiIBQOR_T1JTy_~W(&C&BTr_8KN9x>Mx0j4#f&QyMN6uQvJ!2{`8-`NxA{a`)E2BU2* z;NWl#0BB3DFj26N%9VAeBLwI0sz2EC1uX6W9<=eMG;x+LHi`haHC8972kBCOXgeR7 zuq!lMl12wLEOyc{=zg>TaOxxurlUHiZTPIsL>pO|8IKtJYaQ+gBy^@TsQ%J!@*GqW z>aH>aF%`~>ql{$Jg~uM$Tr6!iu_E%VO1kWby>fl)o|bIq915<^an^(uI+gJQmIb&U zT7QbQ$Gq@vp>MddlpTJexeqY(1k|@h-$T90`F4L=Vrb{Q8gb${IsOyR;aNU2$ni#@ zll*nL;S?$2C^~YaewB&iG-dHM@N6HSBOaKojEqGTP;w|!KpuhMxzgXmSIr}BC0qGc zhk>CpX$o3&LFOHyy(`Y(xVTtaIGy$p^C;!lJ?o*nzqgKdaWViPDmm|p^6Trinq--d=k+Hw9M`u60x>EFNC?U~gxyDeyhqu}3}|7-7=8TYYNa5t#}6D>*$&NauV}c-mI8b*3Q= z8NnouPkLvIwe+~W(k8ds(ps-?!>wWX^5DthQ!aAMicMoVc{ZHm0-X`ffSk3aN{&sE?m^Eh2{K{h1eUmYBd=d z%|$RDYm;c&Gt<(nNA;#5m>J@={4;u%8l+beV+eE2Ww`DtODkFLXGkq0GEC{Y``A4=Of;h9KX?6w5LeWGV?l!-H9DS@PtFz#a}OtME@2Q|FJIaa`nqm@ojG99K!; zzASDBIo>JHVbk2`O(Ca%3TM4Ej8+EX3V7*ErvpIBy2gL9Zn4*8ahhbN-tHNfgBt^% zO6>J>jV9}ye1^DqcmtZ&D(c2l(VqF?{{Rx&UfM=(q)6mI26Mq4wPRiJHJzQ4i+NT_ z8AuE|3h?VI=^)2BUYIpC#-SvmYaTweht*Z?U$)S#smNuXXJU6VWc$~l_(JPb{=tSl zHq&H%oQ}TvuQihe4?NeaY1;Lzj)|woZzs(RU^))`S8P$sGc(3ETDoa(b8=QiAABoh zp!csfAYj+CrQh204Muy36s*YDO!JI-SB!&`fzVYkA`>1?dR3h^(A{6#+o{@QkS6a; znurcfYj|CA;vGBwx{8sPyhox*rE5!R8<|6(D0`Z8z8ut|vX*ILK&qte-N~+($1EW6 zL>COX+ZZCVj<`r~Hf{Tww4mlD2b6rAsZxql+7f^ zV|gU0xq|{1J*#3}QRK3oJ)yU$UQbFuVWxvA@Q~I+oNwFZ%{Tc9K_2Z-g|&3uw3gu z;Q_Il(oeEq$k!;O_S#RAU*+RAkZvlYvMs zNXOQg&EGWH8xe=gVNNQii8m1k|+gEIi1(@!#5^ zQ<3jk+_F;CtAk7w`4xDPk9w^GP$4&5Nb%wLyUV-S&~G+&0i5VfL{*0;nz%(ZlQaPWA6n*oWZ>Ac zgNz0^^%$}m z)9l(DK>%E~+S;+vN@;P;5*E2(kV*Y0dIio>Uj*p!L{FV`TO4GM@U9Bx*u^}mipDfz zp^bVLzou(3urh+8LU#P(uv^3WlE@cNr+7DAg4O36BTQ#*{1QHurQxe1b8-^omMStu7eQk-=fc`EBY82%8yp?v z;d0sUsmL7D z9gl7*{k@Id)=UgT z$0TwTkxIIpFgy@_C+npiwyEMxJkKL)8c&FB~U*5|}P7h16N z@`3$ni0}L$-d=|u8-mPe@dV|Hg#ICdYd6Dp1nAKL_eMZDrPL)X6rQ=P<*`e14^sJO z1O1w-lU8*s`OE4>RrIVGsvH=DP7Hl%ov6p9NkodooL56+tdE62t={J8<*^m3@dbb4MSZooEWJIeE8&9_bCHwfwsAw)5!l{I zzVw#nvh^IBS@WN`NUM*Lc3-GG)onzEwVNN@HH@}2M=rf8LDHIo0-s#0*g|;Xj`X_w~>raL&kA=J|-!^0avAJc$QRe1wa&y z-fH9z#<9F+?A{<^*$feC_PcH6_(lmgWVE2?*NUVgmA5~Gn|Ivpobk50Cp>O>9YrbbRHI&X;1awGDQdwi8kU63b-uP|}) zFY^`W6G_Mdt}(e1Z8N`{$2U^3!zlVM6(W2=yhy@gGmlYTZM!|`%Y)R_a-w;e=)dru zUT)6#*C+eD3bx)T)#i;QOM#P|@x^(RT*#^paz%EQvZ#p>a5FDG~^i5D#*gXx+E zO1Jv6F(&1{xvf1e_f?YOIF{~G%y0l|%S(tz`J_>b((vugu+@>o!{h}1IG||Jmf~si z_LnUp5~QDMrzzx-Pl%TD3Bh8-)Du1q-{n$Rg^JTmht$+;+3!u{bu@sJdGAi#4Mqht zng$HqnzS}aq~8Z_e7*qs)go$18~!ENdvTDNszkktejCW~9ls+5Px7ok8ZrL>gqHW5 z;j#Kw&xK^&uUnou1Xdr6hx}Bx{r-Nxg=&mm<|`jsU_E`PVaGKsow>QYh6U>*g{B8< z;5cJ#CsLMGRwW4Mvf`!imYJi=r|!PCGR?g6xQ;&qTNhv1-XGCk&Lzx`5mI}SYlOAb zWPt4sLi$o@5uxInJ8OMzC~Ogy-M~0J;OC`k_^U;0o11SZ7dJP`w*psZg40RmnbSAhLM zuHMg8w~xC5J7cY9EzKhIJh#S(>#neo85|KY_(=_>V`1{{UI=^_+yPQZB|T!6S|;*2F!}ICmU^MME5cW>!4`uW#`e!hI&j z%-veEn1p4vvz+JaUQw)RDHXykq)u|ZI`c)s#$57=uVs)7200v5(Q-3Y3~d~&k^-y_ z2tBIQC#5tZRv#~|Yj`^1D@|%EiQ5X5jO=}>&@7TLju6c3cnUc*F|E%2`^3oFnOj6I zuheJxS5>U|?m0Xwac6br2V@9Pj+}L_N5J;8S|#IMKs?zOZ|?^xI~v>9yf+!}?AN#F z_tQnbDGx;>p!(Ela-GjC(&1~1g^dTz)RWj%`&o^J#GX+A^kJS2UHE;be`@MC5xW(Q zBRjVB&2)bbygg;9>N=3r(|lI)U@1L%@lEU`*@Bw+QS-r{aA-auPx;{Aoo-(E7EN!& zcadn16|@L=S0`xvde#oV;9XZszc!Q00}!Euf`ye$?X$P! zKz+%o3*npOjP8~r$3RKVbxZKKRgX*;=I#cGP)K6{?#EnFWIkqcdWNSx#AYUNs(Ppx z&1(2J!!hdimp8Z4GFwB&7lKW9P2t@p^T3xk5!)yBfLNd?*hxzCYh;*7!-`yIp1*y+c$gVS%CLa%Y zlE?cr{{W!eGO~hmw1ddaQ24Ze({%R({#g-Ji8*D}r%Q7Yk+x%}tz$d#a4A`j9Mn#D zCX*P3Tyt7F1=_=^+RWV}kTz=-_&ijW?XmJWpbu}l@fM$X6lUhqIb05;0xAX8^sq22 zBHQV(SC_+iC{Vk)Q~uXBbG*>lTF0fysc6!j&8NkmU4oc(4GUdf-n z*&e2(TghFOK`dC{0p6X!?{)2V&V3SFXrl5X0OQ>D73VUHE>Q8`+O$rKtleZsV>_wn zDjg=p?fgY;VX8p!<%gLY@sa68z;=nN$)~aMq-6)Xo|U0};wi2{Q#Y6h#!WlLnogf< z;#)m=sNV;KJf#UiOx!oTBUoc zk**v2b|HxeImb1t<4roo3u`GXQ_Fk>lOM(JOX9shPhA$;ODL8((`a^F{NRrCxr3CV zJV|o52IVFzE-}-sb9#-#TwTdC<8z#xcdnaNu(KW-x0VPt&M-`a__NlWx;CFLg-pz^ z_WW;G2alx}3mj-}c8;}fIHborYr62BjiKE5a(Oi?a&E{fk|PjQ_BhTflDE_D?qztb zA~KaY>IDhh3QZGpf(ZK48a4xy#cWOC{Z=UV$!Obq?O=bAs+N%My|+mZ%4AS~Ismz+ z_)}NZE&TXljbl8G@3f!7t*?P~wq3}!*#7{opZ#j>b(^`Y^&4wAA0BYR;AH30sp{>m z=@#uR;>`l~F1QAZ3g@2dIv%5>fN!nJA>cZYN9HReoL8%8*C$`lH59p3Y$;q3-y9n9 zd6cV_^f;$rxg3p}WNrKS`u*Yj=xozt{{UK_?+ONbX0y(>rk+A=2Q|p}gCE;BMNUTU zD}Tn4JU`j2X<&Roc8hRavfi-Wl-7UPw2_g0GT~4cPE$#%d=gO1x zHRbkhQe|X2TyhP1o{N7Lr=+xZAS{ZzPEUVY%4*K##obt>J5$1*xT@ZBLgg4{q+6u} z?wSC#5yJygGjeL0Tn0D*)s~87BYZLp@;IX5U^&MX3%APIsc^&)5y|udo8-+S6-b!2 zGlRt!3mJ{n(6xE=yU=pbq|2d$0v$vE--r2WhW;*Qn(XCCegtnqn*n>Nja$1z!ZhD zdead+QXCHTA#Q525D!|IGLy*^fN|%oH)lMGc-l_~KEkBO9VlZTY`pPSbH`q43w#zi zIIGdbgk(20Esn%V5F?ysoUjeUAXTJ^M{!d5IA91Mo}5y+%*o^0+zu(JkcPBnw`Oc@ zZ@^VwC7HIytjEv_cNL7=k&(?&af4eoHnOqUu|DC{VyT@r_0P#|A^a)aEK$uHs@rJ# zh|l^Q!|Exkq-rb}t)!S$%y{|R@kPPSk5$rdR6Ar-cZIYE05tkW~gMT z!5AZqRVGb_Fr@8{rj>}vq|Y5{fJ|bX4t*%ja5_4G##@_5V$^w3GAeNVanhiQP~ZJ}omgX~ zAOP8?<8Y?q9V%4E27oKHG*!k`VbY2K&)u4MZM`bFIHeCvMXxi8jz_5X3{(=aCytZ> zBVgm!kSBc9C5XmpeCz{A32+C!ab7(q`#p&CZ{=Ngm`EnL-ybpl%yN2dZ{Xs@rFr zw|Zzy?%gLkd`~0g3C0JldPbi3)9ttL0t)l}QHto6;sq|~{HX6%Ep_{~fmQ9~2&1V} zN=PEjj}+c4lEN4Gb6J+RAHQDJ&T3vEj#;v~C)%L5*J2NrR#H2f&7(xmS&r;AoM=xN zu0u|`^0iBbUz8RgW3O7vm&Nc$X^6KL$8lV|ejt@4XH$|+ev~98&a=fkbq!Y3%yNjh z8S7l%#GkXR&4{+!fgd=h*#7`(YuAEXc-W#3nb_f0vixfUTIzAa@);dt1-R*2A`BJ( z06frIn~G`UGz^f_;!sE!sFa$sZhv^V;N)|f0QDaWM-G>x&pC~J)j^Z}DsSys?xGBq z<6-sYtHw8IR|Fct9X@jm;nZ>~)3kkV+FNCYZKVq19cTj<$HekMYaOyGVR#j}2Bfzz zD-+LJkuAJD8*{3>Iw#k_B_d)#>%(tsypU>+!{^+Fx5j z`6OfzbI7hAP1SDn1!#f**dXp7)|;YhvPUjlfs@a@brWj3bn$^aG06DmDi8Cap(at$ z^|`Ml-y?MDD^lwHKFcU1oy&^GT}w+BTceFoV+B`?)cU@+rai96(N*!cBei2Fx3Q#T zS6M~@%|FdhGDshdW<{%5h_Dryjx*3#Eq{9Q-OAyP3ve^iu=Y)wdqj6)W$Fn0>B3M? zP(K>;pS3#lWBJof%!l}!A6lBj(}CzZ?yHsY}Y^T16N_y ztk;#bjD7%Cre+48XLqgYtMbUeu-_>i2iCW|btE>rZKjzCB&%*eL02U4JP=#5!m6*% zFe``D?_|EZX{98S(=@=2(RbX$xyD!w*QQ=Zu*GPR^jK6H^IITV>LJ{)uT9jW@}sq2 z2;CUSH4`*}K#ct;VZ|`MO*vaXTFlf;6ZEOnkR`Cff zpz*fn2qrCgDAET?NTtSQC&bh^sB*`I+2BFWTht@?Z3- zQ@8Iusrf!g6j%u&xsl`moRd>cbW~%Z^{N)6n}M9?uN5WkbHVFMz(|*j%yzdVQySsA z5^?pa_Tw@f`cWqYQyG3cmh#99NymE8@b$qOlpt^&f}f$RNWayederdP-K<-T@D6#T z_8Q#u90iS!92&~Fk(y>X;$^hxbARoWw zz&uk);-MKQo|NX}p7a0{^HbD3w$sFbmSiAep=R&U*F)fll6_hCfI`IGew5HXj!VL4 z8s)Zg#&cO-G~>kA-Fa;D^sTQCpkEXs1Hg9U^Q>PRf5^>y-;w;QWMKC&k0&*w;pEP@ zXa4|Q1!s2^t>Lx{t=aMa04)bvVmhB3uo|=q2Ody3uSWO-;Qbp@it_&eRI*FioS0*d zMck+{%V78SuRQT&M(4$rF)urjMlsiuUbo;2#_;8Y@xi$oMg-@sDkm!qE1lPeJPYB? z13=Wv*}%_qj*QX(Z-l{D*oG$@LZG z9}R&=zj-na2pQn!h-!jL#x|cl){`yN2GQK_JGea5gI#u*53_vv`=hODP2#e?Vl+z3 z30&h9&)Mpt9avqeDZ_5Trq#miyQsC!sdr|rWg;>^$~K-s^{wv~-Twe)>iQ(b#`s4g zt_5y*XIDCecN57HtZ@#5n&EtTs>7*jQA=*6Q52~pbu{cNoqoCFi09Lm1#(xBv>vs^ zTWZif!FkTWy$xVbBa$}*jBrnSsN{~L@u{%OI=rbqr*SN2D9x2M1blsIn_LlIk z2V-%s+D9uqGAUNz?iGJu@k|<*g(b0&FjBaU*RxlYH01Hey=Yi!04Lex8AIz+%2Soj zx8W3R7Oi@We)L)CT?fO}#qPPzGdJ}$oAA0L9<6ffrITO`EXBs_N6O7c7PywjtJ?%~)ZJaQ{@PS&qm zN@TRQGAPRK0Gbj8%^fCEz82J1ej96m54f&N!Iv|`;q6H+*|-FpbORmfcI)EaNMW^< z$0m0!I_9=KHKw+U;T=R@ffdcjZK%hdoK~?$ZIwP8T|3)7yE#-cGkxr2;=40xGCtuc z2E2zvxsu!g0mGKS^(MMesOoA;Ebd>>wI(vpk1kA?RyMA8G;)Rn_2;cY@ohkTHHZB3 z!LDOb)aAOr4{?JeM}j@6{w3Dr)+2+?7%_3us73+$(iP8YQ$XlFXaXmMoM2ZnC4R znAk7(h~U!$zOeCJ@c>d{r_>6@*0ovhwNZN{g{2tU*aM|vBj?(*B)36ivKINzN(3$D zr7g^n$t#v<`eY6$z0_p8DAJsj=uKv`bLmVipTdEfw|bPf5GqK(s`R4cQ+dS2O|}qoYE6c!nxMkc!FsrRcQ&xJ$hCO$_B9$H_D=L$J?5x6oq62b*9YH zEZdk6N$+8h=wF{-nBeS;ziYbKP|n@(oMO3ML5cy-K)&)`>0~I)MB1RMtl$$0EBo2&BOlpHkISc*V@M{*VT4X*h_)~3bp;{1X}&tZV7UsPtv{WeJ8k$3(fkldbnxw? zlpWWP%e?@2GwZi%cdg2?JaVF~!{Q6a{{WZB{eIxDZn(4XcMbml2*rpa(iO!>Ej%R3 zNBkpJ0a$j4f5Lz~IlN1EoHfj6*X0!G{6%pdc1adbd{?&(E5aYg;mtUEn1TM3#?gEr z#kTl<%&GKDQqT_`PZC@>0hZav`%6&E;v=}LLudG1!5rBTQY9qjh!@m&>1E){VqST4-=fn-eSWcYdmEyhc z{t}$@X#W5l)J@`D6~)FO zfj*0h_jz=`2*`528Pf;-uut%&uAAXZ{{YCbrm**cKf;$P3!V!niMNBa#h>?R9xc4% z5<)=Z7!~vaSol#F4dIP52iDy`!mH1rcrtRp_;SH>{m8=q04gkk=Z3G1F9M8703+B^ zuZ-^lhY~;!Y^8gIS`UL#J&WPZJ+aut3H;4Snm2@1f&T!6YftC?m?{30?1JZnOXAzv zA9Gy9K8Pw4;+xRhh2n-CFrZhzzLnu4!uVrN$o~MRbRW{3G;axP=fhfH&!h?d6j=q& z0#6ufWNiC*Bi&a&%7Nmm)CB#r=IlbPd;EHDg<|`j8q>e<9Y4aP7M>PUk>Q;?KlSdP z;YE;K`R-2_YGp<*Mh|Z-f5M>u0ECNDiCY)U;lJ4j`d87*2Zz^~{6D7;`(U5pT2S8U zD44g=tf3>giAVIJ!E?&K7kCA=-5N{HdE~Vc$(VO9-duI&yM*{p;q+o!>UUp2!nLop z6FO}GC>;Wf3W_U|R~_+1n66^@qrjRSu7NvPS>kB$M4^uA`SZkvN;Ytsl}jCSotqCUkodq%^G7UFvzAj{1;7Zl<-80k_d9V?{76nj$R*R48}6aWrt&7+v5S5_)V zLOWGzUD!CFN1|wcA&L;9R!o83x@6R&zlqg$?J9A_c&U+xMk2iz!SOTNB#cXDGStL# zc3vL5zI%s`HwhUem0b6#*ETm0NMjcA1N7#-U&9ws3p<1|C53C<8nLTqeIA$LIc1Gh2-lz;>&f+7$u$ezkwSbsY=kMT1|xiX>Rk9|2Tj6u`|D zW;>TbfOz(*fwF1YpbMt@WB&jxTz|l+t#>PAZ*G0+pX*NTND0l<*vFXOooXqiXIwGO zMt_wtjz>xc2N~;0#W$d(S^#>CeQI=(kZ@{!CdKs&w1z$y@=u_xj}~}zXmVQwk)#r? zNj|g)#Pg&*{{RX+=I(k|SEG1G?Rq5lv&iVmrIatVWB7AIxYw`N-W;lRc|8R%xtwQi z$MvY4%N&~Y`;UjZd~g*@nFOl6OJ|zmEi_-W>z`mU;Y5WCk55_3tnDNgw(9Wc>C#kM}$YSC=u~q9nSLR zUGZ(kIjr{>A1KMI?3oxNii^t;oz73KU~WZk2Um0WW}%#yZ0GQ$c^GE{gYQwNImzaM zh&iE+E&$K9HM2kwIXEC!Pw@Dv>QfhN4<)+SGDdmGuFt?4CB~s0{bwtS=f2c#`|JSbr+q@beY%VB83O?4%#9W%%V4yia&H9OQp0*%&>}Z@o`v zGeL5ap~ET2IO$PHhBJdrR`#YNsn9Paz41MRNh3U)#tAvEaJW#i61-P}cqp>?p2d{& zybAYA=vqlfBw*GRw=}1*nc}xGXw8$f7XXu9XML(QozojRu&%jnzP0L_{*iO8Sgnn_ z2-%L~BXk11QadZDZ|AmHi@m$DzBmI18LOqSGu){>uFS-0EW@opGqiJ;Wp#M5O|s;^w-~ghLh@nK{WE zepR2KTtgkhB&P&Tl7AXZ5zT6PMedU674&8)9Bu%dOlAoAJe3^a)lUy;c9+)Do0B4}ZH>v_+O|`}+A|Cpr&IO+0P9q{6mVD419a}7 z;nL!fHo7X+Tt^WWK>G0airNs_eJm3Q!q-VWsd{~Gl_G@DVAp_}E z&_|y(Xg^vGF-#_t81v0Eu4*G81k{kq7<|+L1IBaHnwB)jT95!uE&%${0pWgH?(DUT zU-&}bPHRZyB@gczK`MIJ3mM>yb6t!trvCuKCN0bd?Po61k%GR$lLTb@ZA5bA=}))>-g{$0v2NUl!bXr3+OE4XBPX1f0X9$i>nTigAH zC5__1J3s)8e>z=8j(5Y;3vGJBXE+Hml22;-8vg*q)>HU?;wd3U^A}?`V!pYr4A6Wl zcdOVX)xE?il0a9^c&TjktNV-jG}gK?x&jVKB8v*+JU0x|{{U+(pj<9a2<^{GhKM<<%f@em8*Ao&E0R)l#~T=yNTCTSgu zUT4e5s`8wkDGMJ{ic&FBP=q$o&(f60LB~N%FPwA7r5Pjwc{B_+mgA_+OAkT^6&Ff! zoDO=>1d<)dMLI8&3Q6LiEy$;W8#`zbF>g+^E4J(tnul=SJt|1Z-PV94+~XfNwMw%v z7$=WPttsp}Vwwn23Fd$-s}k8NcIKvePC*0Osz)Xc4&;59&J6%dETH7)1k<5nMsv+V*go{|0+Ed7 zfGjhd6P_vR+lFu|yBv&DqR3J+ifBcJJabBt9uI1VcpZ&CGNj`;6bPF;kIZ+9 zhX9-dk}1))Gw(na;*pn4zF*;FAg|$HIr!TvtP#fuI#-1D8DgX$3ie2ANbKCk;*Nb4pHnicXvwLKM)Znt2rE??BGi;Y(vzm=m0>ddN(g z@(+ejjdg(Twd>)En!;O}$6@E?=}r!IM2u<;*mtjDvq@>ussb`+mXdf813GH z76~}wijR@+MKCORfYVv3Bau+aAr(ZAbIn5IG|x9Clt??805O_RC>l`8PZVw$_M|ci zAs8mS_u@d=rcaCm<&*DTisY5AI{2J++E1R*a41`e?0B&lr>!uaam_e&;<^k+4i6L# z^Z`b4DS&2>^`Pe-^qJ=er2-6$=DXbsT!PC_OcmU*?c{!y=gi#kTmBJ>JFD=QKr~7> zV4e*Z0rBdWHsrKKrs7y}>rghWbY(I#v18u5FNhP`y^fn}YLTlbEOw5A6~$~7BMZ%5 z>f#?NMm}G0(=`^G9MaB>8apUCJaJN_akQwjACR!m(!CAkva`_EI7DcmmKg8F7qA@H zh&7aL9qiSAcqbIU;GFY0Es@fY?1LlFrCmTwVBb;y4hzj8uT5(y%15*AS`; zdy+d0aa}H#J>8C-5}?}hkU3v$R`ldVgU*;4NaPRjqQbf6BSqH@$&gyU@%&7~{A$#i zcC_(j;Bcpc16N@U%<^g?0zgC1;-uB@R>vV!g#QT z@h+lr5ATh89+x=2w*sTt(G=m!G5XZ{two!;h9Ju^-p4fN1Y@8u)h&=)+6{{T8e zjz<;i-|(&UzVl1?H6QSeGz5EpXy_BH6*-i2@C z812o(tiE3$ue~rM(+N)oU68y8Nh9hjnfPyY4Us#@T#EI#468)omW|$t9$xaUC;^*A3x|S*`q5Bf4Bl9|RwI^gT0A zO+8(vy4@J(lZ;m*YcRR-w6Y@s8ptqdf!JzRP|bd_OD+f;0Nrb!_>lpd!z4m7sNs$W zYTDJb=DWUG7Uai)+Ozy((As!n>H{!&8887n(h=kKI(5dQFpAC=l0(>b_pMoc53NTV zNYF=sGmYY`cxzBPea`aAsz*5$zo~ev%K=o8Nx{Y`SgV=;01K?Z)?Qg-%OJqqIvUaV zfvj9Xt}F^l#)uCd^_Srr<8OA%8|GuluG3V}G|g^k?k1Dx0|f3Pieek0lY8Om+Fnq` zai08Fo@f_x$9y7CN|HzAUV-8(yG;|rlG|81mSM0A`q!O!ayD&JFPLCt=72j-h;lu@ zhwR-+1(+!#>0IZ-t8|}Q`$UVl$Mfu?`F&&m38Qc>sHYB{}!XgS_6 zabB6PFbQISjEF`+?ON8BdUVWw%?u&^Q9!H>eLTHGVB=r|6`ai}y-Eb~X}RR$ki9g% z1!ih4er)EXR_#z{ns_vTvlswWi_dC`Gm*)w2^+8kbL&79wf=NF&t0SWir`O5^c`t` z;!Ap4kCV67y!oqGY-2sh&t51e00B#ibB~pA+N}^tXa2rEM^VH>6jI;q6Kn(lf=Q;lWg}(oIHw7`wmWe|$R})VC)x8Wnbw z=aWe|!(hS*xZu|P&S$?7Z47-JumXlc@vwYyyZ00BRaDT$OcNfP76 zl1PAgZ!5STQ&|2t8+=iHj)j5!D_g;K@=2_u$c2#s+;PQY_~`!t#Z7o~o<@Hv*%&>{ zM;)HNQo}KH_<<+H* zTurr(dkW%wO(NU)uTQv;fs z@*N6kq|~*UEmRp^Ml3tyCpEf!a0~@rV%Q&aE;Cu*4HP}*r6U2BCAsu9RO8AiyOwkv zeXZ@9)(A6lSe%u~HIw5xwFzO4OZ1UZn*fo;cQII6+sP&TI~DdG0Tq?6zuPpXq@oumE zuXzLQ+9OT1KZP~3qpai)nnF3oYHTw{U(#%?bQwaZ^P_x*@7A@vQ40@-Fctm~mC0(_ zl()+xgmDWu%-B0~U3ZB$ABJ}0An>(FO!8LFFlnIV^T*Prk!n4rfs!i{J!wZ=(^OOV zpbtg(S$}V4mm=l1tDF<*$9mP9O7Qu)c^2XMV#5uJ^BXI-wI^Z5YVzumcWiwq3mrF& zEwu5aNA@{c&V)#FnluX( z7q1oRpA1IrD^XrKQa?)bP;hc<(LNaJ7PdCmUult7%sW&QO$nJAPO}|_l=htw+?V5$ zbH!PYT(&sF5%m;{rD>NM$ypuN7ItR}-EwMQ5a_xsmzHd0ayl_Dx|N4=zPEQ3;nP`8 zS~-^@wmvQo-RY!%cdy}7cz;UJMVu2|%uUKR;7gD?@x@U1n|*J3Emqn0ELk6=J7_DO zetjv9q>c?Mwkd)^y9T9*AM7Zw|-iu{U9I%nnb|xZ$)6k&5c9^k`($VIqIt$hj$z#U=+L*bdk^8K7j+ z+(yw{$s1>Kk_|mm<@Kf^hdnBLX^c4?25F@L6w{1Q1(mqlDPhq1)suhn?cf^C;HdYd zU^fg<1%{t5yQ!w!T(q5W>BTT0W&7igux&D??iX;+ z=UsP?qSI2=-L%E>+koS7A&xrNC2JU#<^*N{Gk{N~O?F=qG|ev3*4}+GX*U8Rk~SoQ zanut@jU3*Mt;?rG@q$XR&NI;Z)Mr_kU$xT6-eVl+*0PQWq{pQ(9R=5ju5KgR?#>9t zTdi~Qv1cUpC#@Nz&oo>Hh~2ksQrHR! z8`DV~1R4CRkVErgy4`j`H-l_s!2~Lb<5jt)!57R~PzMAP;(G^Xp9mE$vcJ^@uR#v5#tSKr@3;v*CaOof`rOJ!k>!#EyfC zY-~9MV2TONFoJW60D0&RITYY z%}SwM)qFf`IpEasfHTipVizYFH1Gov zfM^3Nf_bLzIOI?w!f{Rn@^QsR7!~)YDd~=%S^&Fd6v1@IpOd9{7mRFguk}T1I1Hh3 z4hR_Lz57drr29q);WN*A^9IrHukPe+HsTmaaxp0&b^02lCV9Z{*0#rsCg;_KXWwbp zwi5Yw*3v@#w+;{EUW4KV@gIjSBL32k_bkH_rWr`juW!bi@fY{Hb-bAQSOf1?g>%hF zBefvrr*s_lsE8m^0yg6~q!|ajKLb3{6YI?(qpkR4s3iHQY>JKBieea7uQbLS(}UB8B7h>n9qD|^a}3mEVt^mNAlIAxQe*ZeB;zQ0 z3iK%s5SsJ9i7XAA?uNDA-U;W1hffXZpFD?`_ zlOu7H+PbS>3CBDUJeN!hb-=8v9}DXt!~LC9j_l&Kjh?##Dwxr+z{3ud0S2q#OKV$c zCtJqKjQrTat}*77kSjYC908i^?)2?u^$cwQ{8#~0M}zfd{ul?<=>f|ypk}(I@J_7V zO|TxOL;e)+_(8Qb>m|3;G5-Jx269->dQdB{Ujgc5AK%)8>61)82-H=N@2#63?H}-_ z2RUH5ynr5shHKe0`-@vWD=braewfLxIX)NFAOb{Kiv!VLn!6r}t}>?gMFWs`^Gy=Y z(^H-~Qq}SY?<$1aedX4*CBPwVk0G~KL|Rs?ZHxjCl)0K!#tcsa-W)ad*XcI4*rA@8)+f#5lU{{YBAGwHXAR~3q*#L}Kw zpFX*u_?Ax6NuOhimR|!(h)UlfZo_B)0A8vug7pS<2JYA=bIwIOfcEh%z&tyCE^3~m ztxtOgmh3|JIqO%4gDwFh?XiE~C;Vx{!LyzPfH!36~lBbY%C!)6ao!Hg7l4K|sC&D`7i?4PILRQ6^a$a%b_S5(SD<)T!}ikX7k4)i?w89ak<*IjJRPB~x2r639k$3xZ&Qxc z1sPl?2z3_@X#%^?R7DG315>W43!y zaNKU8sXglhGcm#7nu^xoK`Odr5${>d{`7(Q=bA22tElP|UhG+%vZvk8YO5RUH56we zoz{>V_WJe3xBwDy>T5q()n?QdJ{R*8j0QM7p7meFOn(6$aSATLu_A|qfH?Av`I&7-jGC1xk;$<^0V;v2fq5lAAb6o|&&T;uvU)U`GSNmLV+<+=ek@AkXHA#u1GIqq7 z?b@YRKW9Jf8m&1#W_iU(AN?Iiy)g|&-6Dg?%`M*!anhlK{c`d^%}IDh^Ni3kAm27A zuhi0~ElB-o0X!J;&oy^PZMv1Q$MK4z58SN{6_qceX8_>Ty^33%?aA940BbGZ>-4KL z+=nM`;hLsgZY1?Jk+|h?jz2mMNdq++x`jMaG@u?j(gMaXd87_AP%HH`(;(**0V~Ki zf@;mApd|i<4^O3L@8h0oRhJ0);9!r^sS?UsUx+5tp=hIEpq%vPu=Ojqy}Xj*R^0A+ zW8RWL2*>4B--fMGlLOYT=uQ_^wk&wwGEHZ7sbONSq;>5~lh(DHeJfIe12g7m#sdOI zD-K-~PGl3hdl*)}8jUZ@LXc{&$_YxoY7_IFPX&Nn@!roF@ z^O8>E{{YsnF8gbvVTMnrrF}wDxDCZLCT>r!N*+kj$xXy(v8uP4%=Z>gZt@Q-_QhbA z$@QfSMKC=l;lbOX>PN9sKT3x{(x96~FFbi>kn`FrEr0)QU5KD8=b zy|_3e4{C`>>6(0&=17S`H!nY0cLAT;FTXtJv8i8GmPS)67RO9haZ-PTiUOZX1avWK zkL3cq{hw3s>6{Vay@IAwz*iw8w7e9 z>TUFEo9_(0jG1N2MkQA9UsJq;g9VdXv_qk1ZZ?(yO|V*gd+{sBz?DJm(a| zHObqPo+*qnyb78A=6_0$I1~WT2pGjFJg!GdQo|m!gpM#p06fT5v%vaPcM_Q}PijdA zr9yj916bhG25HQ3NyjvRe0lR%9-_NX9qA(5Mz*-OyIGVFWI}#rBv%r-+@X4sFs@(vDHcJXek^xqJh$y+>B5mrMntJO)!r1hL{dwPg<`hIjK%aq9|mY z!bFVhdjUue*I795KAu0k7Pzs&?Og=tQ93+!axP+wWF=q~VBa#3eJD=*1)AKuV?UPQ z=M~jhAx&RPn`s}tLUZ*M#>Ngn_2Rt&quV8jUW&=j%V(DeTR88AAnqmBtGO-ysY zaOX8!#{+Hsmfl9e$KzIj9DOP!xl3WnPjOR&h2ZdN5uDS(;OB~xgmK6uo@qu@jQ6Bq z*#r!Z)ge5tMo+x}1aXtrgy4Icl&>6$XakRG0BKD9;fj-Hc&8DS#H>`=Dl<@|4Ehd(@;1am@foNo-PdehD~pn2N*q1rC0!taw|Rp6M}L*>hegT zK+OPNvvyZ(ag`#x#^(0!#`aTcn}+kpUiImgfWAWY!LKjXHFeSNWm#e_OOeGi45j1W z6<%NHklI{AV+Drep1AhyTsOmB9W2Qdev_kYq9F99>myVCa(Cd>rcP% z-J`=I8RJC**QX-1L^F~yhEeNCPJL<^`e4+A;0)4Z6TKUMS_2GJ@y4=ngcIpV4ZnxP zCyF91(`m161B&qP2>$EDP%7g+E7>jPaG)^AHH`N*hQzWRj0mZcPrYu%Gy^P(DTu?dqJa}UIp`{+@sXOl=8RM_6>hacGnq)uCj2io zZIBbiM)2fN1R_zz1cGU;2?wP{Re{9-5_C1@{{Rx({RZREC3-Bm+HqcO@i2eHzHd^a zkH&?#rLp7e$2}@Y+mTFkIiYKy#IguErk3}`F;5h{&@scD)%`jjGU^p!l`J!n#wrVV zUAe)>V_J|#MmB;^pcGt3dugjAa3!<=1DpUmR;*IGCR>)qYmD&RQZ@RsD{#Q`U84fc z?M1{_Yl%x1S7G?m7Dpr!#MRMgNa;bfWyb=L6}-|0a%zp{p)_FZV^`*gjPY0+ticib zWOkrpN3PvF?atrjRu@yfkbtkp(y=s)S?@1P1@nK04z;L#pv0xUjw@#Mf&-CM^q39aqOq!uYLfzwT zqMlNoIj(m1_l#6?kw91>)o-Q2^B59(16>7+%<=A>iE6E&>1IS(9AFOBzHJCl0HoMh zqDan2s#iupNsaMZuWG<>DwOcDo<$(Bjd5{x3X&yp^fgw`Q@opSo@Wct9N<;0PC%-C z_^xkDwY}7}60xiKA@Ii>0h(7SBd7-AWy;9qezf(5RUET^b-!<7A%P-6@~FimwuMG< zRdED-=reiU3*J6#U^T}0*Ea_l+$tH|dg?Go+#yUss4?mR0w`#h`AvM?O= z7_J5KC2{D+fs-#0HNv#gg1J+^Uu!fx3V@pR`$OfGJ;`j9~Q@<$gWV{{XV} zwhD6`!+QFP^_YLM>~~xZxdR|>$*(B*fvPU6u6dDT%SGC}(i~1$j%hpbPwzz{ha+HA z;DRw#x>JK121>(&Oe>mp>Re~70wFyq0Lu!IlQiA9BQyc&-wRY22MJIVZbHqD zX&LInS-t_|>6%Zmwt9i>O2Kjkd=JK)Wg?|EtU1Wf)`4im=QIHcn~YQ}#FBHGxNM0S zECnLidN9YXRj-l$2$-=AKZ9K|RfMLrIICS3bC)=}{i8zlA%YS)9Bh_n0E3xdD#?x)1EA z*C%r49nC1yAsm-M_|b5&%|iKz12xlsXItm}YW`x8EFcGoQ}d;9*_bH< zBw&%&r?OJB1_O~>g4P@j(;yz?Qmw7Jo+eCs_N3U-863<940BF01FyKKo9})!sB1)K#4CgE zPD8Zky;?})nji_<;6GKooaV!{k(Kq%o%=lT1fb;caqFE*DteVa`Dw^|k*133b6c zyv&aHQCt#dKK}q(mo7Nx6u{l_KDQ>T0wjz|p~{R7wVkADlGsHeMnbEcw;gJeZfcKX z0)1%#*y#Qzp3XK%qC-8MMcNsnwWAZ0wQvHRH@Ug9$!5vLgS?XID6Ew`ufyh8%e;V0?i)SmAT2NMoFhhDP#(HrlG|EO)%Q4j`dx*H8iieR36)q(>XK^ft3Kz>H?c<@v1srBDIHV&YoJA!9A}i}nBBdwurZ+ulfh~oUm)D7J7gp+h z2XkHBt%Md9;u~Zi?J?@cvHTGRe$_rQctC5Sk+!yZBv&n2w(NA%ib~}P7m`UIO3&0R zqq#%C4~`gB*(MDmdv~S+O+sxlnz}g`jiZ#S4ngL-vT)X;_)gF1T*k2m*%Cl8lgO@? zS5-FH{{Uwh{40Ch%GSB*-ZElubmH9tuRo1l1qyX<6_&CnA6*R>Kep zrZGH#c%(u}1R9Wzf5LzmgDL>(D#JI)lZ=XwXD0`N(vY@E08j$7nFA-B)bWhQaB^0w zZ`?sWdR2(Y2PF0Mpa%x^;)ZOIiVhBHGIHP^lmRO?=*T$wQp67mxFFM5Ylj?+EPIj?pRAyI%U=kEv%c!JF5A2_d|V+Luu!Kf^E*_FH0a#<0|wOCWfH2v5V0Y_x9`r?YX z?Z-VRphPU(b*P#`4_*KlLFm3ITa!$1IVPw>)=ye`$Pap`cr*sU>p&NHVNKXO)nMn= zl*{ix1;k@x5nf&KJx|!=1C9XCZcTb*vjUBdxUVkwnEwFi6Ek(nkJg&pQrPn`ZiI5+ znnP}Y@YP+UIqES|Ld@;}HNA{UMY@ynw@+%f4Ukj^sXX#4Q%umWrnEOv!7HI`1qx5& zSJy(-+F0=vyG!{*-IOo}&=$n>h(ABOMkE)r{vI`A;- zx-(rh#pJM!lETrk{_w>ilp?l{*piAA_aId8$h*dBq?7MFp0yZ!9D_itb#_8I02~Up zJ*;7KkZYH-yI^sim8vf?qbK#CRx4_%u|iHdR|_&5yREtTbK1I{cIdoCRQ9YLF#()= z9P>cZJDm$fhR)J37v{!EHK=W4?kc=@s3SlQcoe^EQ_->Yqya6u0D4wk{7SKsD(tr- z*EO4{&W0w-cBUhb)g>(d zwp9YDT!kul6vn#*am`Y=yIeL{3PL&m01?U~7|n9Gta!>%R(f$fi3T-jib$zMlvq=GqDR)s}?`zyJz~E)c}HZ~zn;&<+lMl!Q60kk($K zZh=oAW4&E_l?rfqtc_0KG);rgr2ug{qj{GGH0S2QuJ6KnTrg>Ikf5^?NyTv~8#T#d zhb61O(IxWq^h|9dB+|J}8%b#v(pw(Yk*NsPil_ptLp{~pY%MKin;+d$YK7jHt;jsa z(`QxA26(0`8Ir(UlDWlEyN}6 zVD+bPv6ZM@gjaHL&~aRq%)Vrda%%3QcxQ3}`71E;XhX5o_*jjyU=7|`z$5zC7{K|i zNWt8H3haD0a}BaC^(5^e_pW1AK^~)UV@61eow=gou?hjkXgnHf9O9R*X@Nbp!$kYk zkVi~ai=9Gif~Hqy+tVkdXP;VT?gao{YuOogZaXoIW~8;ecsY%T`c`&H98;9gBVuh{ z>PU=jJcSQYn#poW$>jRd6Pii}6rz(9ywd?Fqpbt20vxp}@+)V<{u;T~Ba%?-1-cCH zVVwO1ORV^6<4uWXicdZq;E=e*77Lisk%AaxVxf>^>()=5ubXFO-5-XF309IVRSp0HJNni$TCL6Gvka7 z^)-iwWxLkez{(UW5YOyAC}?S!{{Y%IIR5}xaY_B9bBuYdioN1}4Rl+yhB=yDs46w2c;_G)0%b_$;I4&pPcjSOp@+w{qy)#TXRvcpbH}QasL1` zvYt!1{{Vp+r-M!cm=;>@Q`OFXw1(zS?^S$Kfj|@erTP}2&iVV*4mhJ3pb5UyAOj9* zMazM~!S<@Btpxf|1mboFtvl^9c4PU~aZ8SIK*^eSJzS4rNV78V7}Qvxb)vy@r|`Cm zCbKMr%jLwKTe&{fyFY^t8|?Qi%m)CkT2F?MPVmmr0#`WTS5=_t*NJ^IUBB*u;-4xd z$(~7d9G2HFZ7Pv6HqyTJ)akwqxt_>Pc`w=7xe2#Cd)9~8;nY4PGhs||u>45xS3GsA zy_TxB$klpa_=my^ropGIGBZs( zY<=FRxc0A6y3-=Mw~7ZJDiD7v<~(t5A79fg2k;d*`kE3I#>L>xBF5S;wlQZTC7H_e zS^g!`G&po=R?Q+?o(f0~Pt!Hq_>)e8;uxCdUnnm_n({4rK^~(tQA%DQeo_wxm?K-j zo*A^%;hy7A8-nC2bRPMxfOtznx)Mce7!ncpgAzqs_-h)^ph$!eGIDEQN77=`eCf=l zQZhz65AmQ66V#+Urtj!4f_RrUP>^Fw%6^e$xtuG3KHtjT=<8Od-c z6FqZZ@a~1DX)?|&U|sQ@hi^H@YV#iq*e0c}TUyFbmdEBEqP-vDOO^12lLC1vGoIM4 zAHV>&i!6xj+|#g)KOT5b`w=6$v_fDfYlX=R>DHywd@*f5fi5)}WB&k30hwDpFl*B_ zpR-?ix^2ROBwn5CCi6{gBf$6ec`O8Nf_><)CU{{y3OnYI;B-7vRF*uqr%FxSVw>KV zwE${(YRz>GZr0WKM{&EpMRY$BbbEatRDo?&ByvZ{1B}*Z!}E_6+7DA*SH^*jOHW`v zUoD5@O%nGa)BGuB{sOqakptb7G6(eZ0=eG;_;h%KQ)HOp-XXcb>fY7qS~&jzi(uQj z`3!!w#e6l@;nFW<^TF9C2LhdibGCmCcyG#*+Dlthbp&q47$0L^U8m@6+R|U}R|-ak)+iuP@SUX4AeQ#cw+T={^f%sP&;Bx#)L#KZmSbTeX}D zTNqHiYl`@%;j29}?6!$sx7QJN>FWn^I)(6DvFYO--CC#%2 zNDl5f;)?=jiEZYWX{{|EOP^N0OG{9`V+`ev0It4IhL@>tB!>PGwMzxqPEXe~ia8$( z*~fja+1pGr8$Zl5jMeWS>FcNXf#QlG6lDQWDSQk(zZY05@WM@}>s>F#t9)wKQtZHJ zh~4TzrY@wmei^Wz;lo|DC~gd9Pct7dZ2H#&rP;Oh{k5tOnpX?by@yK}_)^(ie&FC5 zqC1>|$8wwN2+}`{TZA&9qBpy4CF9ll@$h zsBflg=&QSNd1rBNE(%J8e>(7c8!5EE8e3Uh#^~|RF_F|~gH0g0>$i4VHkPqPCA2_e zjHorrd`s~Cpwr^jtm9bNVO%J{V0s^|cbd(Ojogr>);Hu8=LWf-iT597(PFjQJgGRz z^%PkGF#aCg>5%C1MRtLuc@9BPc>~=SFyH_W*A>RZ2%Q*%^03ZpYI~PrSe{7hS?s?z zJ$*3r(gtcv3#DCtNHqtcXB>FiZ)R%DnKBPBc3iKVmY{{U%ORFTy&&*wlH*`z$y zrIwhtHf=eWBLaR*b4{|-R_5ACOr=>eLVDtWGVp!r8{W1wogK9ln3;P7jfeJAg2h$aua@#|FC>fKhkan(fgPPcrIJYO9Z8@%MP@6Jf zbK1IBY(s8%A0pruO+2pAjPr_-iOR6s`PAXT>(-#geZ44+viyK(0)7a{ zruN9rO*snp&MC1l+(u{taz}GdQaWOrC?o(5DZ98J8U)E${*=wza(fz6mQnQUOmof~ z(wGu~@&X9Yr9F;uP^kxuRIAA6r2sB-js+;fj)H;!T(LN$d;lx0^pb~zLQARvxSCU!aJwJ>sUY3#WJJcp%_4Su7!_r)}hu3e+0nY ziVW16z0S3$>7w3i66`VtQ>J*$KT@`q9|gm2Iuwyp1br&e2b*-qYE0z%P{-DxXP{!p zdBsGk3wEZn!^KxyvTlG#E9ewCKu1C==dBRqRJAAj;OFtLpzVP+$Z?OC zHI+@xVX*aV_opjy%`mQdQegL}EU+*~T2M%DT8TMa)3eP0N=8K#(BO5Vff2G}JX8{T z9M+pCHCkwf4Nw`*!jN-P$q7BFn+V`$fCI%ef=xIBo@vyCR+ojZG5DeX03Iwk$z|fb zLVvnz%YG;}ZRGl{DxxC+0c#trqlk({^{RPpt#9S@uMILQrN21n5PJFS<8 zqY-UXQGtO|TX??O+leG>kM?UnB|I=dUe(iNEKo{{Y`cm4{>Lm9+4TQRQ^4J3s9zRTWPP%Rd@+ zoq&15ps$^b@^teb^QMWPw2nU-1C;t+?K~wML03)Fx$m(nIz;e-4d2=CIMSb(?}l4UpJW>JxKg$F4!Y;esl*Z^n=OZ^H_}&g=#^r_-q3r+v&;&@i9^PabGk7bJXMOPAuN1 z^Q0Vy(K2|C!zGXIbnrV7xBMz7weJi8hKEnjpxS?>eC}C?OwqjKuQUfGkE5g4{4bEH zZDEe%2rD<0U zIafTWBvvn*bZD%3ey!ofK<#bvpYHaqVni`W$ow!h>i01|)((U&de=9vXvudOk_5%T z9lwj(x20L_BPx{o#N$EA;-QdW)SRmoZWtU8Xg@V{oa7^|Ns)?U3?3+2U`je-kkSn2 zns#VFAT%D75l4Dr5b;R9q|%X)X{tEEpbuB@vb261D;lwo#nAqBaUzsxkM_V(nDD2q zb2YB%281pT@Z#4_vxxiT0H# zAv_lP)v@B#7V*aMkCb2#dsjJot2DZpxsTKu26}bG5NX2eQD6r3+{A&_xSt5iCEti7 zmnU;&zgnlOc#?blI9fS70ng#-P4L#HG}+zusbV-LfHr(jZq4HhQz*;@RE+dEtzQ== zp)6MErm1yhqrR5=7Kmmr}m>9Py{7& z^rnTW{iq|*Py}IrI$UC$1`QbWrhsnRK(!?(6u|Yrg-9dN=93)kC-toTPsT0;k)a$C zqz?Z8jdQwJh~}}<{>>f$3xYG&x!GoCm6)9FIW<=%$5r7yKre`e#H3}j-n#z)7kFuW zK`d8xvjmrJ)5bv+<#tyl8H27t9`)B*c&=M`!sWj@1ku?oydD_vv%%&MIgpd?d(>YI zE`+w%L62}oYk=4F`Sk&?wiNXl>rByg$+Y-nNSKYsAo@@iJ$p#KTa9M&Hhij%Gwoa! zy)xYVL>pLaM^F#2tb1*K;u$2CHv!4caal(8M$|sk%uKn?X`vp`;;ks^_R%a;`Aj|d zBE0Lw-Vi!oocE^eO6Wk_?N!sn*CPt9>Z9K^OIg-#FJSWIeaq-64DWs$Ngcn1=Q2JS zgCEAN_(M{TaU?T1!yIJSmfC8v+S{1pW*HdZ@kys@(^?k_e(}#VTr5rE+eNbRJ@g1c zkACI!!RESMAH|PrW|0L&2r~vZg{&}lUJ5Ko-;G#@%O6^&UUw(d`?yUL7-MWH^y4B+jyE8VUbF0 z7$Ehoms`}~zwm{@4y!B2v?)DJc$Mwkmoo>I%MdUzswYo>TwTMJY2`FjU7%6u}1OO{)Ozew6s_jmNg za=MP7Zjh_7+v!kPUYkc|h@M3|pt0^Y8h)Fi%Qeh%kcXXxv-ww^&8Wq9@eT{K^2S|r z?TW&Eaz{cHjy=s~dH(>u^EVRRbKZ-gSockHO0d_5i5#Q1{a$^ft=4m#B<{aS0dwz=cKG+hOQK-6DMyz`^^PBEV1y1Snl-Aiu6 z%_EMPuRaF^;*_!JO5?GuqTPr!$S#gPS$Cds-o2YrgGcdBpAfz(N*s=GLH4f%SHl7g zY}@Noq+waJ+b69w&@_5?jP*NP9}b;1#DJT2_3i0Zya{t_rT9i^Rma*SVn`ix+Pu#9 zQJU*-nA?K%q>BDn;4v$(Q`&XT^^C*juR<~1)r9a1$T3mR?N4bQ8QIs=| zg>#W!V-3lUaO%Za9D*u&bqA2CmPTe##%Q=$^&cJT>X()hTFbZt$mv!*U3q7#cr}cL zTH|14$1JQX$Y#806e(gxbIGd^>hm?Zg^p7g!J^}_QV;d=NSrK*Yor?kgJq09C(_RY*66l(GAi4TJHc2LLc_;2?5 zewB6~29}b6{G(EXZyg{CpNFDTWXJEB(f2cp7=3O#*Xjl`{qtNbU@fM$` zCD|k(C^qrhfH_S+Q;IisXoCaJGmKUyr{zs_@<5(iAK}hwyOSJ}A?l=x1941bTQD<5 z1~O^vYCfDAKq19NAwB9=7^tKfpa_ZQ9jO=|^td#vNdO+yz-l>0%9055uBS=Xvlx!( z=Nty_k9y?IIUJ6iY9$3N%8Z;(KzoGPWLZYgJ!=P0)Rpog>C&i0V|Ol?*Q%~yRv@-U z1!pt2uN4ZKTa@ZtveK4fYqgMVvw)xOEpTebn(k&|Y@j{NYfeaUXQ%j&=d#nA9C<5` z$W^;QRsyuIroKzzi7|lFL zyLR@V2VfNho=Rd|P=xYW)XN>;q?^(xTHG< z0s7LB#URBv@+cVIIixt+ML%zPWdKG;I27=_b4mcEV?fB8B854nVVXo3%^)NTj%g3I zJRIYWDU5MU2$=28X;6-o;sNW{n~WMjDOyGx_M`^{(&r+W4Z+V&DcIwh4GqV7KsA(9 zOfYI;&su3*^FYY9=9DiLAmW;Fo+tt~TzXV3_l`$OnUAGJSG@u|F9H%`m=p4jaa@5$7Rv>Ylp4``0YKI*3>0WPV z8_lakks)_3Fa>(NJ1pS0X^QpUN39{3EIuC1t!V~f6UJB^G2=glc{SCGS>I1-I+dCi zC_(l$^t667wzkk-Vpn=0AxEdBcn-5N>e~LJe5-*omI9)xOJb=u_dIjOR^MjVE&v!; z`M~}TNiZWK>7H-3ubRG-5byC-M>c^-6kzH1eXZGt@<++{Hamya3@TY6n z7P?NMYAu-gOownMC#^e(^Q~JduG;+f^l%e`Tgr}u&!es%0RU)i-unOZ2>0_Tto zL4SX1X3|-tY6=`|7@#hB7tM^2aoZxgEeFE4TCKa>Oj_R9bY>j4(zk7mym#+#ZDV3i za6mY%jeA`ddU3aO5lbrkiJo!miUxAu@P=8QP3(v01wA|$X3P{`$&>6WauXcdA{bPe zx8%QaF;u3$TUp^jksxkC>V4^GGm-IDigZip;a4vliMd#gYZQ;dy3dGrUuwItK9L;$ zb;$}qFV=xT=bAX6Vwx!GJ*f>L26^aZsqLi8`pb7!)L8g;~kxU6g9+cMWO;#tZJE@>U<367EwRJcT!xEhML?-LzJ& zwh=rlXc(U-%usQ`#XcpqyScWKD^idI8C4j`9=}>w5s#>Ndq&+HRw*OR-wsY|fz+Wk zm(#%61~w~$UZ-S{H;#{#xQNE51NcrWgZPOUkHz=FZ~-9k?kU_6&u5xxG@HHYq*5q) zH#}EU;9UkScJ^PkGkFm%N~ysnxiB%!dPl;Hmbf_J1E0%^Xhiylhx|Joyn+QQCqUcS z;L~)S7eH76nK!vSmM0&DS@8T&T|s)2TgfY#U*`;dPIwrpHTSjC^i_k&@|Z{%IqFY( zE(SNm9Rklz)9kM_V0WN5!=9i@aE^&%>#X>1DLy5FFnM5qN@yA0>Oa`_b4_eC_)LL$3mED3 ztZxth0A$(EB)?-4Was8x+efE0Z&|mV@5e^k1`)K8jIkL2VygEX9_6^OB z!mfB?<||(iStEqh3JKE1Uvwe+uusDR-uwE(<@g#Wdt?AVv#0 z`cwWPYc@CfVx$Z69+a#JM9mJmWohuNBsAJj?rs03c^4Xy^?j z$79iS%USN>M-xXM%a92DD}ubaxVP~bl63+|W(1IU;MZfN&VIuI8Non*99Idg%l`lq zOPuHL_oRl;X^Qe|i&*zx9PKzex@Nq(_Tor9O0bp)N^B08JH|YF6{e6`D>x>zj{UxDf>N zx(svHv+X|7aVr~e#I9JJ(?H61>ILn_I(d!H<5j!;DrtcduwjEy9-^2DjM5Qtz`x44bO(+rxH)}3-;Ss_H4-#|>AIr^(R97t z;$P)fErSbm$2?U{Nbm5@lOW)EU>db(e{miTS7@ZhiOC>msi8^EJJPD2x#EDiIrOP0 zdZ;6jLXxe)r?~k*2bzqjBoRmn82)C3KAkD5IimxgLqHQK9WzSKPX~_G0Bm-^r=yI} z0zPw*N#2)|X?pjd2aJUtgj9hGF9Z+9pbd@(YC^}U>p+QBbCo0taNrE{P>tCqwLBf% z0DiQF)ShYuIXtyU z0980_&;*Eb`8->Q~|{(J6oj!EkVgn+}929Re#a0 zkD{wrWQ~~>LF#Lj_@NOxb;}>U<#GAbLOeX@B=)3Zf$2{Ee@bkCoYsUDo$--TIjI?H z2kYB3hBW#SQbo!7RDRU>xIA~DW`(a4!gG(9cCVv!dV*kh_dM<+ZA#yAGHd^ADT?U$}ibQzxGexP`8 zbHPzuG{6}RcRI1zpa2dyQSDqTOl1xUmm zrk*-dDC3%3_MioCN{P7QpVpc|>xuwD)83p16v}??-KZFZaf3|)oO;pHfB=1Irv{Ml zc&8}OT0l0M*&j-I&UmICywC$pC={$cC=?7sNc{Dw02Ies0B0SlSnwB-nul*SAmC5} zIO8<~o-^rFN^&@;$jRhlfEW%Vl9fuVXDH|Flps;GICVB!6E2h=8(J_uBY=symyy6S5E?wCHx^q{O<=kZO zDn@npI@_Bjw^reo2i#M1+`X>+ed^}z5^KwajvdF;_5!+@40bjJnSc?mQ&>&vYYnb> z$HXg?eL@%${#mY1<6L<;W7@6jSElq3G~Hgx z(@Kp94C)Cy*Pr;KS8M%Yq)(L;ZC+@C$5Xn4&4$w9<8F+qaBCj!Cx+>xnOP-X8A!nt zkR2YKu1RZX5l>%g=rmsvL1k%h(_p;Hz>&*m99IPo+!b!t7IN&PI|hFWV0WJlSiBQE zWqr+Z{wTR|;w!?fkDJ!Cd>a+b(76#gR14VkIjk*yCWl$LM(r94~8+6M6Pv=x`VxAk1v&e)@ zryF|G8KL8wi+S&@e#SvXiytWCt#gAU)$LPHxv-WsyG@MixoVe60AAF4Q)$c10|IeK zdFf8YCNWYWpkz~V&m2?FS}-Yqia4d|icUo@aYzNF=}DSe06S4dHHhg<1*WjYB9l++ zKnw<+xyYmWVir8~_GQUXwu8mpQSU1HRgp#b?p=IG*m^ zmC)`A-RrDAE!+ta5Kr*tfH)a!ZlR3HED|JRt1^*MM8q4)+q_Mk9y=IIov+HQe!Be5KU*RU0uM$Nhfnyn#KH@ zmHd}ef2@3G@T-C}s7d z+x4IT^sb}AI_S}%lL$*O=bqTEU@txEZ^IfSy3NF@jj>}~md}4m0O`Cx;#9CnRZ}SL zS&8*EN5)$6YPRqp19GuB1B_KY2g5hIkJ>g%6j8$E33778dJ3!JT^{2{WJ`$>K_K}` z5_$Kds0*)Z(BA2mHnBogt@tgTqZNamPx7vVSMdCrc8h0x@)l{&%%kqF999MmFhQCR zPLvVpMIns>o(HWU^q{ab0Jz6WI{hijj8c#XL5e^|#}v~hMI@&c4rs6v6Pl7H;EI5A zQZKlq1jO{F7XJY2Q@c|fb4>tm=ANy%3WA)c0)Qlbp7hX8MK0iLbHZ96*DqcI%$NfN zdgg!~;e9PNYxRa{3~&LN7)q+i+xx=2ubt1de|i=k6@-JU^??0?Eq#)*NmX zG@8ZSgYOKVN@$%*{vhz;X_{nLkWOXX-!d>6QP|d2hkW{OsSVUe47shO7do@WV$vVq zI2k>u-YoFaXi-38oup?wTX5s>qT{xNzwnbxb!EE+eBHZpzLlk@__FHu&Ek>Rf(|`8 zS1;ksIdvUg7$hvQ09nfQ!1S)iRPer(EG|CFEaG*Hl_l~9Jw_=uGtMoC@4#wI89`D)^IXokZXnmL)F@HEAY-+3o(jK$+TK{@ zby8cQJ!=cZ)5CMF%PcGz7!F6SDS@3n=8JD6nxg@^()DPbRWZthI1TAnnBZh{j%pj} z?ln8xVCQq^U?2{ZhIUeTx=F1W7_efP9M=tSOpeUmNy)E9Ujx`3G|0M)-)JaVP~Z&u zVz|8@L%!B-=7P~wv`6PG+zJ5c{5`0^wlO294vV*+=Ujh?BUaV!S|NbXkymwHGV4gZ zOKXNkcONT8NgZ)p>)p|1 zgiz~^Z2<-YAPdfLJu_CdO)Bq4zFTuDu^?cn#&g=bD^CPnyGJ`+!?@u6(sB6FYX!|Q z{g7?^wy}h|rZQt3@m#ltpv~r_mWagw$Oo<~qMySz$Ov1Qi9BbTx#2w_G}pRGrALvl zat1#NXiV}u!bQZ2N#Tg5gT-FgkyBQ?Rb8XZCkC@~j+v$hs(2)&hl85vD&(^BhbI{t~Gx5<6W18u-+HE1b-7}@~$~Y z&G^$1JV~Cl+Qy7*p&XBpa7A&@kZ?2k*K&*+))vS=AnEj|k*qqM-TM>a9VjT|p#3W4 zp3`j>)BGbfQgge(`dfDjD&?|~1b&5T7}0AyV;ob}zjRNfL~=Q#G8_;pN+n~s1KyEH z8OY|CoQ|YZi**E01c`&sN*HveD|7~($sp(OpaeW*VuZkKoY2QTDab$=??4OJnqIia zG@SIK9Ss08__|Z}^MWcfoyMLC$jRb?4$jkxaL=%&wgCo!z>;VI?A&vV)P3m4=}X@< zz)*O_N}qTP@ldH5;-whlCV(Ds(wQesqd6v(GI^lq6acC)X~b|Tp|UxpQ|tOr0M18F zwIY*H=O@~pow9kLM3}+))ZG`SH4f#^BNX>>k+y&(2Z4%SN$N3BJMqVQRQY;zGyymz zd-b3=D0|Xw%Hy!8!tFd$0(j3n=bE`1^f~EN2>-DIlUD%`q9MqAXdFUypsU4|fJo`{G^e5+x z`Y=DOeG8$C>6Yg?1p)ml=ZJrRdXZm1_-V<}?TOO zOPWAC(&B(4b^%UJc^Ab3GDzbx@IMOmtA+U*yocg*9H8h-oc;o?8<9PZ0h{I(x8Y1a zuL(cGbJDPnTHf%2hSnhmt_}~SbQvDutAEH9asl9Vt`=kS5$RpFuGrEe&UpY=6FxV$ z*0YgtBB!XPVkxt-!X`~U>m}nU0&jPEz-!)_msHh|u z=sBQAZQ${=Au{VHEyR%XB<{`=V(+w zGD+)PAC7!NXDw%JaG2!#RV{DDQ{8Sz@T=OnNn|oHCnTR*x>R-MkrgWG%MvVefk})S zQSVP2*HSsy#mMPWj(Db({Ha%iOa)}eG{Q(6)Wm`@+zN@;JkSF(o|Wi+7MjxALY-W$ zUNgbxwRz(3YQj4&LfHDy^#e&q92#-}0M0X8UKP?I)S{KHU9bS!0l}^1@STRn4J60k za1;ok;EhJpO_FIPSj5;rIs4f36^-JXxNr63o)4NeRUbEcq2dT4vDBo3-OC`x2|U+B z;m-_5sM<95QxtACs&*8t7dG_Wei(Gv;ZqV2I%c>}63ZRlu{F$Fw#msS*S&Th@P|Rq z`fP_CK3ch@_%BcMk?v-Bh(C1jKN_Tj+2=^4cB?U57`JRV+@(*@*QNNL%GTW>OJs>7 z4T7pF&90kf_Q)oVB5~J>VluuQM8?`;R~b-7M_y}{@%G5PNiM}Z8AezP^IolM9i^H9 z35^CZ!5r0D>?~(_tY;B=-VF+{ZkeSGFA=O=I(0!hZ@b zw0%0}(XHM%k|X`h0x1sX3#IFELuQc7&RKW|9Yt1#MAUp!0|fwQzqNE%o*L0DLnwAH zjE(Ytg-@VpdSnxQsacvtJY}3}gLK{&mAwY4JAh8=X$oVQ|7Y$T&Xr z#rMqsFw>CW9MHq@p?K>+$L5MU(i4Da02m^U1vfn8P)`}h6acO5(wUrQjnv%pMSzh{ zsi*d+f##kK06LiT;&`StAr0?RFTE#fK-9o??tSZf!Sh?etHU+h6-4Ja&2z-$)RDf^ z!88Hd_{UJT)U^m+*PW@gjw=&r7^*gIUgZ^=0FVjCYV^2#J*61ZLzdtlym_NwIJ;(w zIpTSgJZiwO^%c?h!^D>QmXwyT1>JzZCj)5c2sK;A8h)E+VZP4`F=3D&j8_b68&x;|b#H-g@BvmDt{D8b+9o+GKGggk+TCHRpQm z`)WFjw-4301JDX$GhFkvdCdbPQ=XOR9}6KSOS0T4#d+GEeXG0peW=4_ zyw1UJ;GM@A;(!P>Z|uEB@*}@#mA+n>=dEY>lTaFwg+V1zv(Ix~-Nnv}GrZD65iQAP zP)Yh#NbfXsxm;StBOK>o8KeXrK8;twwm2C1)P9xbKgzui;x@T!f26~2Y!Axd_QiS9 zHcuv~1)~|Dan_S}T+$fVH4$tcI#b=VQ6JKPCXKU-lpYRERzhjz$rJ#xa(!wdyyl&n zDF7%m_322b27tt7ivcg|NsN(^P2KBC9QDN(0SaQ6*c9^l>M5);DS*}Hx(^L%@1xBu zu>Sz8ae#BhU@u-eRDrpmM@4mcKDDZERNpS#0KU|s%I~k)r677KtlbX$*j@S9$-x8h zuIEJYGzp(K3%jm*PzOI5y3(Et$zW*Lf67>6kw(9*Pp$a~;4=e&7pXOO#(L7V`3O()z*10HF4fw87rY8qwPm+VuA+m2Ayw0h0j2J1=T z)A(z|V@-xAis2OCnh+CO>Uxw#)=L>!op z-uS5Q{B01okzql(hB50+12{ht>N3r$xs&e3*i(87&{rU*k9uBuPzPN8GrS<> zhDUwXnJ0;F8Ow>75_4EA3Hs1ejL-y^cQ18wB+{MIImtMx*@nnI*?pbtXur0~b! zYn6FbWN$M7nxDW|D?OXTJj@ka3Nz4GoFtBjRY?oi6{n=lF$o+FQQYH>Dp(`eTGqt@ zK4>I!_p8ozS#AFS;W@W$;J~sjTRaMl;<_wRW?>-rHOx%U_J-U};MmW-D52cw{v*c< z>hVhfQYDWqj^tM$d8;=r@{nEGh~Q?bkaJWaz4@ijG#YPu0PVaY$Nmx9?w>0*Kku64 z0r`*Cy8i$M{{YAe^bwUVMnB*+$Dh1@w8UABvD=#N23F1tar?3StAbvfS9|xZEr9<3 zo)HJdFO4F3Qw zM@o!$BAlz5Tzt4E6ow$rQAsR?n=RI!rvnC&quc>rXaLDL#%f&QNjT0bIR5~4PxYm9 zoO;j!pVp)*e;SAk_2Q*1z#ZrS+AWZy7kwDd1*+5TBRz6)xaYr!?GTaYHKs*9MplLK~$!x2;AqfzLG}4tYG# z1hKx=AoQmf0lVWB5Fi6do@fGAJn_#ID|Q1F9~@(^dQg3+0!(3tdT|3IuQd_-z*MMn zK!Bcur3acxI(pE&tpGS2umYs#ieSb898{@}q|gJGB=ORoi<}JdDFDIX@lT9ortu@YTVc|5(WpQFfI*Q1Y3B;L`Dr-Vd>VZ z$@i!N627#9gVLWN;Qs(xfn^yRx=;o9$rwI_SI{06`Ls)7PtCAqyaF<&AV)mcy?8MH z0K|sSXQFdiR5XFSgVfR<8jk!52qv>MBwT)U_3KeD6(ThPB;Xz>rB)fDfEdg8nuW(4 zRks4GNNR*sB=b?VPUAHjFMjlfFm$EGAvidsEs;PBxF8`l<9`ycW={B(y8SEIE_scI zt$6RmqI~!VA99df)JH-K)kAJY)*o$o5Tbv7|$c z^Njvg#L6=xb*|4@Kk+DppF#YqjFrA)j%p-n0zBfB6G@EIlvEl4=|DVE<1}sKr2`w* zmlU*rDnI~G-6=t&#Q-G-ibKUAKD}rd1I-~l#U(Fl0BJt7zVw)<4mqR(^{Cx=_NV8X zLfJT=V-RgQrDn;^HIF|^Zh4>wFX=~Lr2zIc<3J1qbit(q6dFQtKnUMA0;AiLic;PB zQ+H#bpkm76H6U|PG04q2LA$L+eY#L1xbVZM(WC@|+eZsr7mbcDQzs;Xc>33S;h4(l z1G7DB_zS3j-7RRYNhQ`UA+scoC>`rv8hQ2 zF3q<;c#K!7cwk!E=t*voA;OH78OiHeJ}I`gyB5mmim4{;s4<_d9K&%us_)L0aMDL3 zyL2RVttd5JM#T9Mw2?n_DbM9z(2s3rZwf_k9@J1qKp<9Mg`(4+#TOc#)Lw1Wg!ydT zgc$3JNQ=brOw(qgzWN$(_u8#0QedDW{qfxhi$^gLWinD8F zWZo~1TiE=;AMo}h4k_~sl;N-SoA#VF%Se)AAz4b~eJV!QwJ5@uXGCtBlY{ilciudE zElL-Rg!W@N{+&M5!1njlZo_ia24= z(%nE2bUbyZ%p9i=EV`Y{CU~N_k|p4}p&)xyQctMcTcoqaG*P+2Goes^mFyl4y|uE_ zWQsVKYPVrnJ~z9D?s!DXmI|<0DcNTXRjuPq# zA!0HEjAU23+TSBtTlrvZ2rw(n{CzuK>rpCyWj5d=PzyH8q^JvgPH25lhp zrQ4r+ai*5VD*%Ofq+}{Hj0zdO>eiWT`lh98W~_57h0mbwXc1BvC!3fdl1zVfNvFIM zLxD6>Mo;&YiuwZ2L$}g2=wP&oQWY57M=X6!W%!p#hf>nzw{%_PW;e&(YLy|_@!c-g zd&}71wNlc#;D1`{Y_wf=Tb8#~WeLXiY$a!SIn9>12g~LXV6C6n-f!Q3uyc0KdG7mu ze$RDD=n)4w_(&DB;i=_(%_`qZvsNSEF(R|?3-#NBa33F**n4u1OgClG1aL>~pJUHn zH3JXtz5tRB#o0a_PC>@#+6z|cYx=Dw^>&FQ zTKMc;MrDQ(X-MD>fvnHAjvOcQo(;hYpT^U~7vxN6|BTBvk ztF+|wn0j^+@MGCm47cn)Cy6F?x1x|gCmdq}cE*O$A_?2_8G<`km#v>6lgb|(IX9W3 zu4nThLB-D*toiJ?oERgo_YL+%@z*8a$S4zZ-Xg=h9MdD%4DKfyCVnb4r?2XsHKDi1 zO@@>3_D`0wx!rMwUYj?P_ZC%c3;i{-4lPR!jh>?+{h@o@ZIFdgh*+|y-@$TP8X@gK z;dq1KKivp9+vJ7;lMnLA_aykt*wcq_Z5N8)y9NZK(q@?8%w-m%?nkurM8OKd z2ss(}8Q52`IJfJw|2y;!guHS+UHa(?vs63F1-*aE=%W?ks4;^HZeug@w zP|nDn@(M2$s&AYGixsK~W?t_P`{_z-O3lW){Q2QSsj&yw zw)>iyeDhA9Mpo$QiCR`4AFwb<{g| zLd+X=a9F$CX<2S=9O%!%=ZNj;yTHq$pW%;Q6hbK07yFr?Y0N2&3f7*4AmnH~)Wv2I zYlX)uV+&xNgl_5=)ACb(GS-1+l2p_?zvr&Lb4Q%C9vUT0l+Qt$LK6p~hln!%uIICE zwSN2Xk;!&Gbtux1BH$bOLBU6@c!xKSBwn>O8CJ|!d{VM98a=#YshsCUj&s3@)Kv%B z-uvyXT5krA5{sX|%8cjkis$AYi|lI;Tk}F@O0T5yT{4<&1E9^Jh6z{-^G>aS@suVw zv^A;5IzmuT3QUgJs!S`Mc$#Kh*X|sV`bsn#w|?sBsWzHpi8syB?j^^p=(J!LeH2O~ zlW|O&6tmL*{*YU%$HEc+uz6tLkbu`*#W^7EX*VO*Z^*sMz)`7wgdISg;51uZgba72 zehL2?C1RZvANeEPs#pV0pw@|8Ez(ulb*o*cIG5+|z-Dr(o!-8==mVX=-*m>$3Ly19 z`nZZ=^+WlCM4eGrsS$?$8JLU$k??)bH|ArF^?&mlbM|Ak*y=7dX_M0=+qVK6W4}3< zVchsJF*ZHV-#r>sp1?ud`tR6-)D(eCg zSJvUYe?VL#Z?`SKIK9LmQj?IX{ztCd!u2OJu9uN4EG<%7Z&2?JVQDTQQm9h>4-iJT z;Zd_Fwy#L(W%VQ@ic|i)C;?>{)71+A$L!7&=?lw25<(qNdP6wJzz_9<-e0@HNCGyfOcY^jL|TxdEeyc2Vcov1*qtQ zLO39kR|;Q#`gL!~3wFw%O{Zn_e#v^`Ah-qc`@^GXs&90}H>VyU)k#JM4H^NxKk{9G zNtW+W$f;OKW3Qa^5+cl)5!uOg#hXhsYX#m>Lxs!$W`4IIv*CC->#=44n|h zsR;531re?#Wf!<`d4Do+rhJgcZE^eriFx{pRjT|!ZKIzaJMhS))2Zl8FB11xW=++jE@X|E9>Bxa}aWR^@{3S?5vN28T6+{2EwB@K6 zq{_ybdOw;EmzAG|6S8UQy8>Ta6pdM$${KUG6p3t{DKQ&|NR>qJ0U7i~)TY+5lD@+p zqtCrY_!+^tUjI{B0tqtw>R;S1YdTAd4!US3du`;(xv44>4!ai@J>xAaBSt{c) z6fhQ~kE{{st)@>t=$|W3YVtT9tNT(ozVx$P_s!xfc7a0x5OJ|;(Rmjhj02X%%qvJV4*)M>9RE#t2g?=OTCb~et5@%p>DUk?~k=)+#ftWjQVt(q;EJ`Cv^2Ozr zPVRqmIpGFd53k-lL;DbI9cc;ube|O2N3COoacUiaK4aVCoE^}fkmt)b?~~7^6dJZBsl+j|= zdy{xcIWa{R?)#$ObLw4cEZ>-_{7Px_WmJju*qH{A$AeBaXpty=ofl6N6fZbWi;4PU z8yI`rDqH}R5pHquUYqW78eFBgT&DluLXXNv%}4sLwY_-A^_0{MSOT-kwEcIoTBCs% z=U6@cuR*f}hrj?kU67%`=GVdvt9R=FJD|ClVOq!*e$3049+%Zr`|<%r`YKI+&&<~) zv1!Uw+~3O#H_GhfGd6Lx%zC{6S5?*qAy0?G_j|6UhNO|?{+8?`Uat4&^g?t=l-H^I zydSHbJ|sQU7QS4^_}(Vd11i4$M6PXXDJ@xF_dC!V2@qc5h zm&1fNznU=Kn$eeCC-#U|`cht(itB_8nKcF5%EDvSW{bhUmjIv?69DInqBZLK@kQ$2b0epPkj;kw`(Tw zI#rEvt7rn_H0zR*N07M}itMTXCagIMJG4)jAj>>s9QD=pQ>WMmC0`>o$dc#!aG&+O za`pW+b%qu$V5&PMS!!Cy2cHN(z08BnW?Hc~oqewO$~}*8BmQiU0|xOHx>Rv^?#8oa z_e7+_>7irhMHRs`vsLz$lmEszp(l^p{VaEO^k}G=7PdZ4rCDl_1is;rHQY>vj;(&} zRwZ8c0maXf$fELvZ^z8r^^Za0hFy~7R8vFC)Ns2pbd)i^lYUHfK@WFGu~i7)z+LUt zsD!XkUX>M%%%^Iy#a&ynpcbEDFr|7QDf)Z64zM@uvZ|uvD%N`qm4xK6Kj;nS;@#Xz zSAqjesx|rg2+iY2wYQhk{jUm{{S=9V!7j!8p{R+#d=OiecpqeLpg3g=48%u3+SiH$ z4h)3XnH`c@et-WvN$@8h<`}U)(~+m2j?;0-UPU@|486(TMll^%$5ni+hz@?NCO*E0 zycogsG=^pOnE|!z9O_crgyhKc9`99`X*@_(=1`dYI1Z`h- z7R)!8nVD)aOB${tHSc+`YT|khrrSzuQ5zq=w=jAs?&2zu$2y6~m#_D&8wg+@aYdtD^0Dr#4yMA@0nL=yJ;2%jD=cR4YJ3tQ@xKY1e5k_t&pp| z$gh)JA!oj-ToO#8A3ESsz2xq27oEA(GIOL&X{!=(f%?7yZSzVMgIv~i6o!AYnq?{))H^H5 z%WdqvH`8d(yNpa_bXh-4TGa&*wS}}>lst8cr;Zi7 za!Z#NnsglY?vh;*0!L-%(Z$`Gq;vtwu;jBw>pGs|@eZfP?~-_tn{)d3>cwlh+DD2k zuVaXrBJP8w7!=<7z1kd`X?+e#xfD_iql}OgA7%UcOKuk^>w<3hrP2_n{D}jcdM( zZggV={v{#|7x{!MO#~apLw?H@l$1(kX(e>P7vsjL31C#rE6)VPG&=zTrO)vqA>rQt z;JOQpfi@xdvF#W6WWZxpRTV*Xd}gSD6F_R9Xr9caG@p#q>t~Fns;-}YG zAIFWOlzhZe-;$!HMDcO%N4^_rKik#gA4kW3LKOT@dV}Fimt*h8+PY5=sPoD_CS|{B zXrJ_y04X!PUKK(ISQ4>dq7X_S3srH{W2b7n(FbsrfMF?CNum7Z!oi;2adf*AHTm|4_BR|0K*9?C5 z(!-4!8~RX^{?H8S%yU&ub{+luMATqZwEv=_q=j~F<1E^}7?*#*o{diLT7Qe2p1h_G za+}+sGCHsl6PuA$?f+u{?OH#_@?SgJRDbvnus-x$`|{R|X}!vMF3{-#^+EJjNe3H1UbCpES{weiBCH?g>9buCsZpPaIul@FKz zEb7$f*IO?BW(k0LOsY~@J5FTxBUL2xNm$&9)*1Whoof5VZC_{qbH%SYUU=J+n`G38 zR+4-}AzobJRCKCxyrwJ$L-Y@!H<(X`w?u z`&z}mg3ty$%%Sqf&Qq!5j$d5=0m?WrQ1^*8Esi|WMe1a2HA$=l!-4io2bdJ*GmK8? zxtn~t-4^T-v(p6ih!6+~aAn?VtiRFAEG6l6NK2cj_s3cXZKW~EPzZjX*!x1h_*AB4 zH_gUafmBFa=C?`u3sFTS16N;$U+Oy`%TFdVUiN=0g(VqT1Yi7e;~ULd{Uh>XYMSM1 z?Xf^#-tn4XV$YsO^UA6q(e~@Mv&fggF-Dx`>($ANLgE_>u{~9YO~#Pd>ubv81>ZzN zHM^F+(c%iVm9RHamRi3oUxx7IN12~p$KEEQEJc0#) z&xa#;vknWvJ9j`~HT2#eHP3Hu0MSFah>C}753J)wt?(zXOTn$DR?5VFG0|2~URLxJ z){MjMT6DyTed)*CL6mM%*QI(da?4kSum7y_;q0?xqGLJ9f`E$l&7u)`yGxJ7$##0~ ze?_i!6bX_S#X1Q?_$Rwp{)sp|=bl=` zN2^&5;DRB(V?S<+vk1-y$~7u%z8ug9TSK)U`K4w0MkL}cy#4s9n?eC+#clqE=8~L; z8|U@aR?AXjEEaWBNBjgiGuVWgBTa(3TYHBW!1gC7+NfPquaC9Pfw&D%w~c1BUnI?> zaj?BYn^6>6Cs5j5{YhL9xiO7k{PYJKXS=Q%E7@DK*X|K?OorAXgwp^{xn2XlwRRWY zoHZG2wl(jDAcxy%na{JM64XV?u!)`2%JdWSH3%VrA5Pc=?ZDH}RRCDBo;1{QL& zXu_~i!~A!Orn|6>V&?L1*n#z1fz3@n8Wc0)ei}3n+vz?ANB84Ur!)@vWbPh7*jMwl zqBk-1%nhQljpLi)Q`y_GEwla2fZfT1quQB+5-DX&XT38`KBE0YzV}9O{OyAfv z=1XVB=j;{r4a1i)#<()E#l|uBXJUag^Kv1n9RB7o?z7OEZh4?+;!mO*<)9}m**1MZ z$0SXZy50#+cGT?4V%1;p0rt?eqTh&NM3D$VBIxa%XA|8Lmxb2Ty(!;Xf9mtQN+!PN z$TLsHSYT#m<6>zu2A;`Z|2~_Vz=~v>n9_YzX9W~bwQaOubL7RGrX*XEufY?;J@DI+ zI;nt&8{4n-vFpIAW#Z{4W~%c5F64>5j9`sa)e*5x>vBTvPS}Z_4^&#`Ww$P3YfDDU z+?1x@>j9xI0ZeO3`rbUvP@J42fHay%O5RSK-%b+;OBFee z2%ODi|Jwl$LFVWwp<@{JI5`Mlbs#_CL=`e6{KUh#APuA24Ug6Y?6ni}6KxVn_^8PA z`aPVXZsv7}#d@oM3nQx*q2eu-+q=hvw}JZ}(mlaFh6z17K>jq{ZF9yhEr zv>eCc{t6xTB`WCK`6C}t&#IayBd#Yl^u zX2uO1(XC&z-{Bj<9~6>>GUX~fO|5W*yA%*W)bzllNLcfPeXeNi|R zI5FWo0ljbOtwL|fMwg1&J{J6vKX72t^ayQ4AJ89J|3}MI9{#Z>^5G*s+<9|R=7c^J z+oq|w0&TFxtQ#h0@FsR@_qBxOV$R%qRgTbPk}5n#JhV?l@aN8yb9Ba9HR(s6lr9fC z=nx+RR;<@iZR%p~&_ifVnd#3Gt8jPiTKkuYm!z|1`C^RbF2~?;l!xzESrr@82Qluf zRNrKcZfi%CxDFHDO4Z^hY^&%j2dU_lNAd)CNId?lr@d&^482V&Ve*vL* zuiCP`nlv?Y6@y}^E|lcT=M={Y822CVE50|HZ}XIw(*5ZEr02URF$fE_R>b}Xc=fga zy{7|!mN_ZUG9IaTcqh+rP4d_NlR~b7n)mrD0!I)Xn%VDpl$WqV!abeq+{5;OCH*1Q za-_a5u{beT8lt|uXB)ar7b}@IlkTU@0yxkcD_Dc!2}hLey?YP}{}`yp!aww*gCw6Y zWmFwJx;Wl1dsQS$3J5wzlJqkcXWo_R2_ga3XYddlK!PZ2GEUbOn4f}%_-N!qb#bEv zUZoTq%S=}RhmnBkh)^s=%@ikbL-!2`So3oA7&_?yKm1^j&XZ_S{>P774R7`F*ZZgn zN*tN1HQkPbca<9e>W_=v-lV}u%6EshigXq8Rnk2YjNbIKo<9@mEb@Y;C{m2d82xOP zD{E6#XMz0nk!Cgm`dBe|2@EAaa4twxEEqng?IpZ4-sQP1^1ZMF^VvzmWG4^OE;(#Q z_48JGz#5V|tF(+RsSn01y#^OnT7v^Tas`SC)8KU+2&ivBrZS}w=P{AOsdFuH3IEUJF>~@E~0T$(N$I73$9x3Q!BkjMY%9AGv{quhp>rU zV7q(S$s`A5WAEG%PlK5KD}NQKb{My24H;_O#kws75#^&72fhefA6QRis=eVwuK0~L z*kp>)dU|~>gXBHUM@~(RdeI@?t8iqr89F&fQ)%j+lZUJX6pO6Ix;f@0pW%K-7TP#U z@fO*F5os2hWf*Z<27W6TysXNj%qOPuU>?WMjbBUlACXM(Q}Yg0W(vmeq{9FsYSX1a zs}lN8A-)a~EeFVPPQ=BhvhVn+VGmsK4vL*Wv?5}7cMT~O`idtWh@)1R@AnEod2Rqh zsQQlx2+77os6JlWzQI7}v(Tw`M&>SfFfo;GMs-;~_)n4aR~`|o7GGcAdOc!p@LqaF ztJmb=t8t`gJt{S-BYvz0-lC_AL5+hT1)s558D4sFf@9(S<@5D!sz8>owYDWHe#|3} zsDvow8IH}#>;|R&4;` zU?Mpne;f}{UNL?x-`*24^*Sx;CElUa9FzldgJw3RuL1dVxi%aBmYS zNWVpSVY%fudEytEP-?3>2?7&NslyO#yO!G(2zA&wB3Hkk1Lm)`G_38v(%()& zir?irtTal`RL1IED`TC!fck(tw-1t-ZF=F-^dNB#kCni3E<=d)1gWJR_#Z@MIS;{i zq)5@n-`&8+h>OHY-jXV-La2D6C>)XRF3K!FOOEh}g?%S|Y|*e7X)}FzRjHfV!yNgC z^jME{`>*A1hC$pg{3xg*S2p_XJAJXCJ9Vmsv2dUzE5T2qiqJ7>P(1MaZQfhAu@hWt z75@=GPjmMx%j=Ko&p21Ldtlut=&h-oE+SSf!Lb1`WWE+ppHX{?BboI=$shTq?b>W^ zrT9h2)D3|~&?+vA*GhfXHtgp&eB8`iNaH?VeOdtpFxiS2;%Z5Hzh=aj|jzOc!R4gs;*c@!m}ROrcs1dE%^BGiQb*v%vy!N(Gx zOkOK{VnJjlkrbKn>sp}i@jpB6xgQ+5tLT1sUFDtR3*YwS--3!i0^fw-H&}|MY%h?} zHr<$2??{^@-90h=YhW|w5)_Wsz*;I0whFW^mt7E2UC&$~vV>X*{#rd%=+R>~;d}wT zg)IcIa~5nh$Z|Jele81i8M)ONHk$T~Lx}sY7X>S8pVxFcBOpSzU^J3-wHV%yX~v=q!vdT~JZ7Q5m6KtcAgEe+;*e?ie%bsaJ(=3Jsnpf8s+;ip>jTg1H+EKe zqqV9N+Q(7_nKH#c^kDtWOwHPT!m>@Wp=OnAc(Fdk*D?E>C$E-C{&I;*FIQ$WC#I8t zLpJRG;pjB=2^Vy^|0*0`$370B;bRsy7@MgbJlNMCDXdu?kqZlDvIB1x8A$R*>4HQN z0>Uc9zkEoJ;I5f*`@ZdDjEO)3$6`P0rC-g>IX0gi%!(g&oP<9vaSwe{pLzA#rTGHdG4f4kOr%91PQ}F&C|5x#7;v=g+n=fKc z|LnpK`adX)1-eMWV_IE3XpW@G% zJuYF^yCye#vpSZ!XMOd0|0OfReJwRfdTt|#p<01CsQTq~DZZB1ufOdM?H8@LrXL+2 z;vnlqB}@>>Vy#DXvB|>u4FC!G&neC8wI#rQ+`~1_kst@55M;8K+f8^WRZ{tMCBr&O zN4%tXkhF8n`f#ko4bZasAbhw+@7VNJZJtPnm{laRo!4_btS<`K>pb9Sk?of-PAFFt zAy{&JqA+*5a-MZ-Cc*I-A#FPIuK$lwDK8*e;7zT;;zbhakvw4w!%E9txhE}!vo4Xc zL&34PJTZ#RbgV(^Gt_JD{t6chfApFlv7O1^O>AEoper-kWde>R`jjvc{aA_)X5Uc? z=<3(B=f&s6ZLkB7h?i7!fDN#O>;$JhsDbco2FBEL$n1=kT7#(u?<#d}Ws{-s2zj70 z$uzi{lVs~7kX`1}N~`!T(^#aH_7SEWiC1Foia8-a`>nfJ;j)1XL0Lx6a6de z)&RCDi`Y%`@ade=K14xq%R0QR#r#Cm*a0RsRKo}Yo1D=g`S9hHdd<=h84kLr6O#o{ z6-Nqc(hup!?2M!W10MK@Y1@xzLaG$$4o5k8C)&mO|IhCU*rOcVw_OkWp{s@oPC`UR zxF!?ft(Z(M#-kdguw$#`QDukh7Y4Vp?2jmHn!0TR#L&8CM2*fah1a!>3!g)qc$yn! zk$+^Z?#qS4?lT4?EMu($X{Gi}O<+ywj^)%QQ<37*>%(aP7jJs*bPrW7%gL$Gp5K2+ z3m`oemJ;j2-&LiV0ApkF=Mx&>B0mkJ3bBgFHAwuKUy3#~3JDl)wjPj_qHikzq&S_= zt2hpb;_6xPIt*6GqJ!?D#Qs5mBt{m`byr!tm1gL3b-1LQ7JY0#Ng82#>84;*>$s7z8KP&dO zKG7dOn4Ku$jDbhpfaCmXC;FDS$~S5OxI=`qNj~#M7E(_{COQOPB_iUtCGa7g)!>s( z+zFc|*9TR^fv8jFj zq20=r`%EHnxrlAF;Dq<%#O>e;-0&_j|JlzAEN(NeQM5p|yhdJV`_}ByV`5|>#=6u4C_c=9!!dE~8G=q|qVsUGE zKY+-ziMVS_G;-wx5w*;Ej^co2ZL)B0TO6@BPC!k0b*p=Q0V^074hXIk0z{tsR}Cki z{!aHhqKmf)EBinFvS`cer|&3x!W&)kE1DFmAY$HnH5j^bOK$QvXW5&0*~wmY5l^ny zQq+YOMNazqJ2G@423}wuycIJMrBnpefLj`j2m^%q`m1E0h5D&?6Tt1jlWYj6Zm)Q( zD=-eDW+<^~Fk$C?t)wv{l;pYI=)Q#g>M0kc@LjOGosR0VhhbwQ#dbfq2*RCYQwS#- z<2sQMp2}W{y4#nZztl1nqRrr)s1G+)m^@1x+cg(5SN{VapHF(-zW1i=@#|*4*pv@) zA1bMn{WKr*6t8cp4!d0us#A(AATn||A39j2jp_)~j=HI<-Vo_h2qp?rsBfel#+Xs2 z1ZPICjuW2(#P=*gF+vKf)E|x0A12@RhDpdW#TYfw%xU12fEZqD26Bv8pV8Gcr~Na; z&E)yo>RRj6mxC=FBNOM4xEYm}xxR&*Dd|wUnMdq8Ck@$QXvIqL9|XIs5&AQtxVi=Cu(Sye>?eT-{eslttE?nxWolk`kennQ+NY+w0@#BX92R_ z;hWX({ehGB@1DDp@5d9q!zoYF1gfXFAmQ4=d>a)m$5iobdsy~fe89Pk*zOy z2H~0(48g=&+77=pp#eI*L;6HBn?j3+3@usA5rZTyp_GA|R@Uz?T=wST%4OQ(T^{#S#XeDy#!v*0RMIdjri;H9P!60 zu7iPx%MWE_MZC=44nJi!%emg(44w`p#jPone7JQbkR_)-GqPdxUW!0gty&fd|HNc) zjWDP5L#w!TVPE&aKZ>mcjfrPUlTV&3w;TpqJQiGId4+l$D|n>wtS#(?@_^p%T?KDG z1KlR5N-$1U1{TFUzCrZ?&^@gXmEvzUuKIWTQ@?G z@_tJz>$za2<4mfg%_o+zDpA+QAv0OZb8G7|8c65Icao2ByB}&;(B_|)p?X$|^ttY4U(ZcQAfPX=5c9 z&isoBp{XjKuFu~!t1=7_m_A`<#cAwfMmmDObuj*uD(XwJIo4lVslbYzi9bu^I2}4? zyxaXs%zOV}p_kb+@ZK0H`CURbcCGGB&ooX=L*9wTjT*O7U~}sGhWejw#?CNjx?!a8 zHPC&nga9y5On71Db0B^r1SGf1wOyMJI=aEdQ@@Fx8Gr@=xT*|#PS@#vSJkgc_VBz{ zkmfC^hYfC$IG{s`%a-&5pz6BnI1&a}V@xweBu4*$qi)K$A10y*0t6Hp#o+v+O-I1t-i~tHr%CPl*zgN8O<$XOYJ6S-A3Y?$=po!SQ!|X25qJ`B$kB=B1i2K5h zA9jrCCk3>HuC+h!+n@;OWG0~ZS&Ywq9OdBxKlsYz@>eAmv~2siIsC4l#l8L7W#p*V zhomY8DRYDa9F-^GORcpKu|&9IPizUGx2V}CR#V2J>ou@-jCoYh)4W5bazkQh7`f0nF;RxyOC&f4~M$Henbu#7Y_z%EgReihT zXE`4hc?}$VD#&ZuHO(t)H{fU5Bo@X($|K7X&^f560jh!q%zwodiOmeam*jr4$hCoT zE?r2(PQSH(k(?_-%SFj^UbtNa(gQE7KH(Vm@R0%%4d$YlGI{gytF!{_gWMTX*Ot|P zwx!rsVIVJjEUdI^c{Xerl4j}xdbAQB>pu$;C}965ZB&B|3Bks6on%cpF4Y%@vRQ5q zboKh*QyDfvQxalu7};23y_a#U-r`AX4~QK=;&_`%^v~)YgU($^QxAb$N2f@l@y>SuiciCS6gRN<~GY(dV^CM zUpMczVJuQynvXLE;>iSHx*$8ZruZOvOkG}vDhc+gOY03q!?(P%0-H8yvab{mc1wp< zfS3nks{^@i9Fk$9`Q3$AuE@nBZX2cdq%Ph6y!?T_7y>et4v53B%cnmq9)A+NKon{ps|;SQh#%lOBNU?Sid8jP}7$%%1zS zrE3BAyh^wKU^#c)cX2ZQKfJ`y15uSFm5P1h#9weRxl}nNo_umrv~f1L!IoaPP zK~VukGAs=xiANk0g>``Jb(`#^D8!@w=%3*pkg6L-dT@JxA30kZ&bpQ zJnd;u@184U)hDZ=-<)>T=eyST{430qQlJ0O(ad=`!qcfNbqeW@i3GH2sCV3+p7qmR z788zH;(gynxN9jwFOwB->MVK!dtF_X->jXOuneI4wS1OZ&4en%%@113g) z@w8NF(%097E73sicBj1hd>CKBRFuoN*tkqJN)}iI%MlJ_@F1ji2A9UQ-ES9 z%B&VLL%n;?3WMx1ltIBcTsyW)$t~5+N12<#RJ>p{@1)Vq+(EWVcP_A}4Mz*XL z^uSO*160c**qaA)p9%IO(KD))v2B@yv-b}n$NALI0EKd%uMs%|Ewg#%?qlB0q-xdVYx zB|sg{WT+lK7)$PN7lWKWKCJWmyoa~-vj!SVE=pWE(%j4G1BtIdCn@w)v=nK)iDELq z^~FvR5bo>vpeMq@>D|0Fph=GWI)&Kqegi};yp7BWUbtJd0IWb5h? zL1Ml-D)liV3O;n!Zv3R?>vTH^xsYNPo~#0ptiI?G>gB;dw>IWl*@=9i&SFG;&(Eh$ zPfuW>Xm{+-NcVv;YkX@b&zvbl{w(A()%gc=e>u05^h?pNJTOlVsl8yL_OEMF>;W|V zz*wb=YSU{(ODrXd8Mzs*=1{TvH)PaeJm#8dT8s#x8#5wF&xwRw?iy>+;#FE%%e8sM zf8ZUTVyRQ*BcN?bRSnwA-k5ro5H?XW7Wz_{@4=*{Jlo{Ah5+2~Lg3v)XM9P#I*om+ zd$O;Hep68$_E&tW8f)3Kdy!PlvC5Z>4+GA532;6r7dcd)VD=C1S)$g3Bij1Vm>Y&* z$qmx(*$btzA6%#3lSPiSUoBI}cyHrwXXe|P^1VGPqwHiQM-)@t$~tcNV`e+TxK=Rz zMV!Bh->5B0k-TxT2t^YUb!2(VlgIVw=b?Rb^fztzSmQTWC48Q0$n8gsx8BVcc9La| zYURNqq}ML`aqPLofdlM+ir2yARr0qEp5v!;LgQWQ1v z(n@MzD}!wY#yu*6^zqmR&(3vHBi(QZ7Xg|hFcBT8J_<28znh7el)-!uIi8r|h6@t5 z9)nC#TojpzqD834Qdz!}mn@@?(I*C55$73kEDIE++YcxD zZN~Bf4e&V^GZUcRNkEc$dcl-v+4^E(a;DCtX7Rk@=QD?7L=;YYpA`P`^))J5jXMNu z#E5NMWACeAm1a1bXn9`chK}|2>DN8)P(07~!^KU0LI$ zBt48J^xs<76OSMG z;rM}@f>8STh^MR~I)f1wlu!Qn__wn!5v5>fxa+UkH%4joK;*52QQX5X>wk;CdY?df zEyFJsP}809*)eH0{{gy1KIPAG-Nayg%%xUHkG?Yc`9}mLZCZXYSO~8D=EpX*PCvxz zUV5VF5T9o&m~F2=jQCE~E@Jldr$y0V*Xi8!vkT{6175^`i`a&WK3C#%L6PIFFToSr zb&eRrsK`U<8O&bZADOg&<5c@20K11Hq|+8}h_Zh4$vCH|jNpK1ob=XOlXNp_vMyla z9944{@p_<+&|Cl)&_eihPtbHHV-i$+Pbk8;rHs%~91S8(K5bxJZ+P-vs8`@vvIzf4 zdIBXM!{_Ms=Viq)XJN)LFVZllaUS!@SZ<>o73E647~>o@KV+RlzMRpCvd8oSib#c> z$wR#gEma1@7uRsXuin)?>%1s?T0gd{ZG;Zns;KX*#%Q@ICrr{lw|HB*PIq8^)E2&; z&xTRZ)gHWFE1aHtylWgNSv+W!vjOZCzU;RQ!;=mu9k_{=-YP1ro20$xCYG5sH4gF~c`@)SDJ zP#=J^BNMjbi5*!m4S=UBmN&4a@xD&kSB>dK?j z0W3Qu|A(Lkh7lhA{^|x{CL#)p`t)vLA6*qiBE1G3uV{@7^A*|=Jn8IqHJ{79SeBtj zq#^WX`cvL6lh_A+uRIff(7`~(?zNL!HD4yzJ}}I>b`EUQTiHwry;g6FXJn{%qD-G- zwNo3hQG2gCoIS|KH+VZMk}6nr{Dqcj@K30*dQsq|%a1_ulr{2=D1=m%C*OlA)Ttn+ z&E}v-sHw+1dYfC}_PeOSv&Hi=>@oLEF#T)!hMWnx(8)8n-CA-ZE>@&j1y7d1tB4MD zMp0F9q}I7~@Z1^sbrs2y!wF<1Fno-RrE#|PD~q^YYQR=>*rd|>axywH9niv-D8Tj! z{NqgX-6Vd&_(o4d{Xt6$Htf}4hLY69R@1_fLw)>+kzeKs-r-b#E9qYSC+FxB!zdY3CYK@Curap~LKt1#W5N(+xrSmibD0?-A-5EjYq>PnkmQ=A$Sp#Q^u!)c^n#U8X^^KSZHJ0TB*oBwsmUenA{v8*o#g871^I531 zLBNN^H$4vGpc7EhC;0Tn+WE{^0k3~?8pVVTc>8TWIoUG7o7A&n$&W@Q&K5!{d=qm< zTKBZe7qV?^yP%K>)RzH?P#Z~2b56cIZQ2Tn6Ar<0PxisiR0DeU!8S77o?rZ7LVYxE z^K$Sz`|XGX8KaC|p|C!44&YloOB9Qg*m$$o5W=g$}dmL@@X{(E% zT7M94fd*n=Hr(OG<%iDMmpudU>l>V}PkCOBT`R3YugI3#rK-1?Ejk)d!p|t@+|DB&~ zkN=4qVIkI085!`HGS5Zmc>9@7g_;C-*a~#&#dMFcMnd~hDgogJuj8Y>o>=e8jJq3t_lUbS zYC;L>I%40qh2^3{I6an}gjDWGA4|SI94=4k+C=bvIkpi0l&^94_csHL(e+*x&F_Jk z6DN_8dh$1FM+{sVymqz2Lpa;fuG9blY(}kOqlVJ8F!*dvrFK~v6b&EwtR=fwPK`SZ zg9r%wVV?)K^-`eCic?<Yd<^Gb zMOA{pyQ);=citP9&$g??F9jL2nqt@7c3)M@+QbeJB}I`*SF8-@h7FzvVLH=VPy>D| zqbs^Adc5afL;opV?2d~VZJo*;V{o<%02Wv2NAG*fYa)82a!=P#ys}*5R17OlE#)Bu z9?FDwT}rFrJS8p}#T3)?=%{<~Qe^C^XQcN*r6lU#`dw!AnWN1gUdW$1aqYx<)v`j` z>&5ikY~TKl@1C)_1-DS)Z;*zl$tmD-lFhO$NNFcPVVtXhR^?AJMJ4i}Qz;8jqR_XmF; z2%REv%;D`>$6=eSLa@Jmc@iGqQrxW$Ste;Hvl$vSDR{#Ndg#Cwc!))|13GdV0fJFX z2ppmqLipAZY|Ej;J0Zxkc-6CVHB!U(l! zi_o1ELTzv8@rskcF{D)9n)NKZdQ)s(#aPRrzra=3TaEfOQ;}7CF)W!}^8#e-bvCrdZRO6eEsFW-rn;@ar~qHewI-K=nJjbY`jxw)&d zV%08b6^@swD}NOI=^hkl{{2GJv1k@zK`wEq5%fVFTN)%_=8OG0y91CRwmrd^`={E? zYgWD->8{gh+6z%l+A=1u{}a40RBbKuwKRKLSYwjjvJNF793AnX8e0{bXt@yI<>T*q zDb}6v^=}&P(%B8dx8FS|$ZY_tYwPf~Mbe+f^=5d;;kf0apr2MgFK?V5c^Hr=TDC&L zxC(~a^i~F#|Fq*oK|CDn#-C+4$ZywD4&3Qls{;RiRd7yDjGWLdu7&H*wM-Y4>PYJ$|G4iNCOC%b1H+HID+Km5psp2|B2 z;7TS??wme#s=0TMW`-2d7S&RH4(!z2wcNN-%>;MW%YrWGf5};hV=*3m`PW=pBy%W6 zt16^rE)qu;(3yPsKQBuk$WZ#3eI#k49xa!jZ=C*IlMAdD=>r4#Mb#+9ZkL)%v5m!* zX%D$H`)=gAzdrSJzB*8a{e=vX;@PADp%oF0Fcp1!%u|KYc-LzEPZ#-e_KQ{C$ipEH z7D|%ruBlgny~@tmYYt!Sqh$V$82OA>3fEKKZl=!qRtcH){>pJ&o&_`63s~yzrdLxM z^^&&jn)QS9YbW$L2w#ds`f7#`494EFnMK-W9MsD!mt=H^O{-a!P&<~(stVJ6WCSg$ zt<`mnO!Xjn=wG zsJqgs%l&55<4`B&MM8Ih;7t5);Y&mBHP?oBjf!`JyytsQh3h>{a?M$ZeKoV2ar5cTUZyrfD{dIk z@;kbG2+Iu16J)nxS(^QLuT+@bw4t^Vt3@s9oWUZ13sF{_Qi1S+mvVyW8?np5tfM<~$ zQdbW9*u~ylk)MHrvNC%TLTv^Ebhj)UoR5TpECd8tS1}>oYNn@3E+}Rf{_rRH>nk9?Wa6Eo=-^iA; zt0{6TA-%}o6SBy5ooJhj_hTlNbbYG>d_IwIeNQulaFsPC4+Yb51Y zZX9uB_$TX)9eLjEyG`Wc$jMUId9@tn$Ku`PaPj8gr7|M52f#X*4HCnUDD}# zuMpEak-ArNtDVPxyOz)Tu$X!3WnNEt;Fy-2_lJ+&=RElum*RM2x8PJmPKD)m*UPqt zY1%&kxy+9XQp!D3asraCdaR1afs5ybsJ%h#QucH z((Bqn-Tr^qEZ1T-Ilc?`z(d_R$IIOQ7!QQlB`GP3(|3PoYe_u%7x$i z(KBGuZQRxLp1QuDwo~NX=D?=92UpJyWOH9!F@$=8{zjmr) zq&ZeY_sm=>K!o90I{JnRwfflfO?km$*J{^nDL;7YdX;sV3S;&ZzZSFK=XZ~5pHV%6Kzt zfFt#vy$}Y_-DTi4zal^#h5LMUR}?DnPA+MigXu?!2(~gSB}{FrNBUo2RSkY9Qm67p z^NCvy9XU>#L#1i=T81CqTnRz6HCvgZZ0|heq?*;Z9+;+I>^YPQW*l^9s zRs(_eGQA>)0ax8MZH+>Jo`9x?@2lOaj~~a2Eak&V@HFx^3s91PA8`CS5b z7}-OOGCXtP74=((0Zua9_q@TOnL8O$z5?gyVar^kcxpE)>M36tDrU&+M;&}UmYB-Y z48~p=FAlN+R;@T+Pu~;m7`Wx4=CFR0CrC9Z;dI$?w5agx$74e`-i^prDr#~5Zat$j z){S-mfr8dgzFFTo*3`jum%Pgxb-UL&F3LLc@uKf}ru~MofXmz0uJG5ykq#(o!Fu3Q z-an*;H76P8F9NDAy(yuws5h&aJg2B@o<5>j^2^OPPW*C-AB>SnnWo2j3C7z;bfItTEiub^I$rxt-kR=ep?Ih!s8H6w( zlZ0*1UFPCT!s0PM8U_yAhG8|6sHMg5HQd9Y+oNPNU>HUUHb2y1ar6+4B0&d%4RMzt zmZ8K(<+lWgjTf84G17@!k}A&A9HsK|Q-v>Zu;P9A@LQn~ z4vID4BL+}36Z~Ja1iGSYG9Q27*$7ZGF=K|7cpw%vg2&8x4<7W%UTIGGUKzfuF*n?Hit(Pdu&2 z{_191RTqPJZ~@sRlg&}oESAu3SKDZ6!(Z*;!)x1K1NtJ_S~mya7q5kq5x`3&WIwc6|MA+zV{%E!`L z-tlDPO(b8P&()kHI_kI=)nPQp*fC8CXt{bQ@yfMQeYd#WsHV4n@1^I-W6quUu3AL} zG1c4iFFyA?`$6Gq(Oskv*at(gsUQtk^R0Cq&1U+RLmPkYD@*!(^7{?GPL;fcmQ`aNm_#RuKRrlf+_3Yb2$fd2gysBIZ3Ob-aX znX$_()(DpftNHt-I*r!i$~=aedkWi~ZcU~GZ+A2(rTzdL`BD>3>MQ>jtbY&$xd4y+Dn zX|`k5?EJwZhmKczCk8gbJMZjbeIfU9kBGMLv~wXL_|N>aAM4P;pG`$Bx9T3Ji&T)m z-0m<1=Id_eG``dR@sX{q>eI1zh@cKXG82R%R$Y`i^?O%hnTayCO0=D%3g(7xA>EJs zq|B>>@^-5@?svhQ4}M&@E!8}zA}}XXS9I2c)}`;GsyW!ZoL#u(o(r}a{_%}i^jsqw zZ~PO~Klq#orJyrI>Id3z=r#8TvC^FxuM9riD~^@!`n06~5gsbD z^gHI7)5Gk4e`yDL&m|Z2m%zWR<`@-{3c`bL^Ivm)^MwdfIJ~QUrGX1IXBQRC*w
    ?1Q`^PP^`m|pEzPIe#s~7B^Tg%7|l$LZQZ(+fzZuK=viWqBV zS?%Rs6Wz|+NlAC5-9FUrhKzoLA8H&$nvZwOq-xG)A_ocijI31L2`RoPy0nX54dF-^ z0FDu|_=S1=v{VJsHBCslk!VSO{gM)=9v9*R%r@P#c@C@P1$o$`NV9R~Zi7dzv;)^y zJ#W*(R$V+}56-mv67FzH>IGth0vkK#nW7g%utFU^A9j=a<|g#2qC7V4y->znotoSm zxYcyFDmCtChrz^L>RAo~U*N}~#D>>V@%qKVHupQH zZW-Q`o=1ez7X9vf?v=tOnw1h8Hva=ofmZmJCYCSxM?e$N@t6ncL5qG#3vkbg)}}iR zpT9g$!&VsDT6_`b-=8boQ%0KU@R>#isuIO+ye3XG6>&@oWT+vxEdwL;3>+iEPh>OvVF_nw)pQoPrSw%?5_bw+HuR6V`;jBh_4K*4T zyRpH!L#nY$UK9)-0~ilty4a%~l0-d-S6qx`yvb=r^1>&()q`18hv3alm5qRxD?LpK z@oPLT`A+G_GVQAFwp6aKTH(m$Be3+Gjwkt?l+h2<=Ll2vNb;+4$$F;f8YM8~WZiJT zL8N;0_}FN4!%i>kI;U3h`c@+4TXpHB@3ziCPQs<={AG8ooX_G|wR4Ix_N2yl1yKeo zg++UPwYRLfCz5}qV~d#+CXGObGPub^ef!I8Ll%};cJt>i3URuhXrdVRN$Y2+al_m_ z$HbB;RUf04J;tB}BjG5aHLnajHP+I8k6vK^18!6HUVXo)5#lurRi70CMujBN97R?B+qyj!L%bo~NIO4QZJgPiS4qqa@hQW_Fj`5Du~M zry1E3vk%L-3Vpn?PN11wox5d!8EY6`Px}mFCZ7&Vy?2GKXKI3iMfIY~9MNEv?M;zo z_Kl$EVd%{5_CNMli1v53X*^$=Khr^j8>4_|GsmXiY z?4YMV8rz*m^xG5o#>Q4)&EOSK%h!&6D+h$l!j#OU>3>qZAnQ?IMwszatW!0+3 zeYm=Cm~H!5V}t+q?jz|Rls!gM)2D3i&2{VJXEVlO2h6SeIUA-=TMZv381CRPPupVc zrtm-D6Kxjssb9xWiY^z&=*xsI)x^XoukhjD{0G$6>?=-r`~{)-MWMr;%0rcuJpsRC z-^gaov`f>A^ID>7X4)p&Bk712L-D`N3#&yW1RP;96a;5SX_+Gu#vYE7LjHt!~GU6#Ig z1e@Gsn|?oicBenm_T6e`v>@alP@AGznKoJb9%&q+vt5z<>;(nWWwhDy1UX)B8Z}E+3QiihK)?jhQ)gkhywa>yYgpk5yp-Vr zh%bqj|Ii(AexM#z9zTd69geD9+@{+PxkP?9a{&SqxaO(VL#XbXc+2Wu8fWr;hJ+o- zUukK+&;~9B5C&siLY`{({uy!pgE#E^GYsoU9r^v!R(8McBBFcNpAFw3J(%N34LFN- zN8qd3PGz)poztt>Isrh9Gl>!uK$GI2q#G_Q_`pWR!xE+z)k*II?EPw8E`QWkfa!{xCpfX#`8;buG+qe^wh>tynnBzfQoLU^Tql6P3Qn%|ZTJwn)SDVP% z?|qXwZjw=bH3#zk*YVLnS<+gn)8jbrfKzXeS{SJ8g12qu){)Z-If5^7dVyi9!;pW> z;O#Q{744b*4`J39p7WNG{@B0T$Ovc_X^4CMGCulf><6FTP6a%V-D zr;~kL2*P^g3@yD-^Q#qRda8k@cVjwwhlC3R1>btNhfzfke8oam5Su$pqE{NER|Hn&+%!mz#5SeRJ-Y z>&}g$_dACyqot5I>6dzXD!hENqe6_gpuYv zZMyAz`kiJ0qJE_w)iU!gaG~{-p*7|`G$xy8@P*T@C%x3o2URd31TJ5s>31Qlb_IoW z(vf!*idA`;P?=!J)O`)wGfv9?qQd|UP1_XBixil_(&GFR=QLK4B_o^CRu1k@D$(tP zWHy7Q137{p^la3g+Jw9-`jO~fy>OD_^~`_3h;dQ>iz2s9K65n6yfwOTp!1zr#T$;A z_hnS9u)~Bf$KnMdULp(cjneQtK-^2?wJ4+nFb9!#DhqmFA?Ixmm|tR;M$vX`25sB) z-T{lH>`}XGGTW;dUeSSz((rqCwRB`fX|VeVydF(4v!7imQz-TP{iQDv>;sRHK_PnI z{uItI#_P9R&IvV0acU7|tl!^`6SmWQxZ+FV0@re34tGRdk_E+3&>EyuY3jaLmOL<@ zQ;6?BrlN?)2+9t@5BSE|vR6TetWj>?JV`ykWVt9F!)v^bFV~#PV-^aK^YQIa2_)nPeC`hQE1b zTF}C+dZ9O(dV0Q*V=p8lC%Dk@I-~#7%iOB@xZi&f(}|aYgD=&WoEP(-OU&9IX_ilQ zkohf7$-FpV;dELXHb%&npL+Zv##$jQ2Sq-aK`VPy6FnOI@|a!Qtuk0h%?TxKtxKd8 zx=ZF#kfuYLy4bO7N|qdYcb9Iv?~nt9^Ucexi^|}y#yt`punKNi86j8p8`9J+5Xau} z>{swxjhQM4^bp%UU;0#()&yG%olYy~3|Sd(lhg|)95)MCTux2ll;B?5UOMf^Uo-VQ zv_3@pjSK_jylQjLOG|3>|L86w1SswkNZqtSCMdI2*p8Rp;B|@Yb@Qs~zsn+t)n?-n zgXhPtx=H1FsS_aTY=ulps-X6|qr5JTjcY=8v_zrD@@5<{2-RWMXSk-Z$%pd4J4~kXS}B>-nU64x`_X-Jg21LGYr%2gSSO4XQOT$D0?eS;NwV* zTA@itv-ZhLx~QT}rKTwWYB1P3;8wSxU)>#dE7L&0%`d6UyQHHtE~V}7Xb;ostNbZV zyz1@A%GcPAVUaPe7p_oYp(dNxdD1dCBn4(8abw@cL{)-2o{Kl$uC8|#!^KCmd)Nt# za31MWd8*(?hn^hd)3m->LugA5vLPIiY{kLywdV`kva)`&l3$b4!PFkx)!2{onJpEM z5-mft;T@ssDAg}aQm7evfK7=I^fIUTS2-;NX`YVh0-Sj>`3S}7KL|4WDFf(U7!FoP z4I#Mwgg#e6(b2Rcop4$x?i@FAwrs|pXBhT)YqqcknZ9%6MhL&HWwYK_wyWB@`1?M= zIHnAdRpkSY={{{q`LD>8dKoU4navGDJG2M1C8z;1D|Bsj5TJyDJa*COD4L)|)bi2Wrom+9l%dG z;oHJbS!r8GIfH7q5qt59lI_~`($Niv(-*`t;xing&mY>SEpCaO?{`xP99no_8 zfmWcTcDF~5dyeK5dj3Og62)n#j@D_XOmvOGrR><^vq$FUTfbgwJX&C(CexVtHt{66 zP?{b*aeU;k#8^ce-FK3p@ukIz-^Cl+L$~qv>`4e-x6M`h?fR=iOGYNkT+@+t7Tuqz z_x0>zm~;|=VMqqLUJP+~Brhs_@%!NCh_gzQj^+0mpRDD}9DlWCk%U8yPEsCzhe(VU zo?s77%%FR|S8B*FX-+E5vf<9clDAiWG=Xr8)rU)eqN+2hO@FxlL>i=dRsZ~}fFIu* zb0MLep|;P?5E;8e7{Ui@g%^t{KgL zx=V%LEpwRc;$AiLp>o*Ya1#~#+ubdviC^D8d&Zx2JfBmu>Qg2+0+vN7>U2CE z6|;Mnv)@K1{E79m*~|APPUb(=s~UY_z&LsoZUgnETr=(cOXJI9AOL&U3f{uec-a5~ zDx#d)07y05@qHxm2T!7LR4kVPpr49_hZF>SN_i8C6K3?}b{2EpOfkObTMz|22z(db znXkbq)m&@es(4{)Qtp|D(eteP8g=^l^U3|mslP;V54Ha}Tpr2lJgE9O@y1aJRt4Q* z^54DIF|SK@LM`i>W3bwcGEqC5Tl@jLz8gCQQuu8~&zCCQgAXek^Y`x}=VuMK4RTeC zLi^7xxzAF?o*Hx*?lK>}iID$yDf{<_;7}>C%pWmyb7^C{JmkUYeWy0FFVlc_hIEpR zF4{AWw7?=Q>+-ygkgPa}wl@+=cep$1G#s~)b}7?{3H9e9FgCOE=3=QB~~P<=2-;ZFiYr_OyT|s^n~1(NhCo(=Hn^|6xgKcJMh)?5ibDQz#DBfjw^uzW zwij+9{n|jqLq#LR7CUNBQS$CgPN{ghe?9LIVRM(cV&EIAI(q@Ra_ACkzmvkbQM+W> z`94zPE9FtN-$BK7etWdsSZ{5#03!_l+x|X0?vqFVeg4Nq`jSEplGhaum~nNDx?2Q< zwB;Xor>Jyz=yv&GF24!*OPme*abo(VsWIR@Rsi={+E#R+-h1|CLbP(<(urS{Ltgpw zDCs0s&IVo4ury5SVg9BauiEdR(=$c%==^$zulM)yyiYlQ)ad7Ymm1!b{$BM)hF+qF~r*MFhaN&Wa0-@L-8W}^Azt+ z8b@-M`7`1OkDuh~S%Jx6*x&edtE->P$pK(yn=94+8ru^-!*Xp9U`5`a3$| z({BcZtgoe8^WM3fAy&Wfkm-N<&Xs4#v@$W~nL9ha5ppyC9Deje;N!Nb0(OMKA(+RJ zZ!P};_QBiC(v9RNZy_AK(RrBj_LXoo|EJNWksb%KI-L@4Aq;+4pk9gFABg+19)@XK z@&BKhZ}`?p&)$oPDu0#S7}V+V@%i?Qj?>F8&LNx&xCSnph?>|OXT4J0)3;Ao`Q77{ z-bf2rD5{r!>(m;BQBzmpyf4+@jQ%*!`DUu-`(b_^HjXbK1aa8Ay5{~$U1cVNm3bwZ z_c&ifU(Vlqi{nrH<=wbh(Koa!2Ou2r!hPkUT)LynibHax z4>W&L08iOgvay)dWB;kqW_b$C@D#8ZY)_r3waKM@Hw(Dw-q7)0`Q7A5Zi*Jo3uYIS zCp8MWB;Kf9Zml~#x9Ed|@_`<~E4>Tkp%+HaJkta1^;N3J6*48l;E+OiQMI;N;ZD^> z5lO@solSEeooBfljumjfJ&!ML9?3w4@m-d>iDB8$#7s03deE*S-#4EFrM?gYqHd>h zBY&kgeCVVhX)wvZBctq6qaDGlM-h<&fc7gb@#jbiC@+vShEM=vuq9t;wv{b8NMRT{ z*0MrZ-l^#8+}@$JxOvk7y=21ORIi+7#q4TzskH9k0bRk5Lv*Az=XiXs_bMi3O^figO#^aKD! zL3DRMi^Wls&THJ4S0?Cyd53^`ti$4_Me}vVtb#qC9Z>b8L{+iB=B?%C2X1{TfQuLt zl9~3Jjju#_<-FBO<9Re3_@&7zKwQsg@LAW5h40AUY*(4fF0us1eupYQct_ApaJWm4 z$hg5TPyV7W{Z_u|fx}!|;Y6@xx7h#=cJm07S+Uzn-3ilaUV#_bGUFYbS2)TXcNlqw ztL9$vjd1bPRw%`xRL)^zf!1LafB=zNGaLxBcbHEBHUCYE=nYS>LB zSRxo*9J`}r1@nCv4v>CMxD}(qeWa6im1IWD1WfR1pcgYexQ}+EKXEGW1NU)T8$l@M z-g{?ZaTCWTHc*cO+Z-op)XKlTFyH*Hz}j^8dyiNYPG~f}@oR{wi07#9Nl7@4<8*nx z#Mu-n%^roliqGctS^ohnefu4bCQB!+`Pc7!W}UCktt_o!B$JEEzA`0zTwDc#&a1HT z2bTy1FP*QC{z+ncab~^A@ZYThXu0#~D)X{wT==Pey}S|V=c~^~mQqg@xOo?^+DjV` z_liDi(q8R~EDe0LQvG)EKj1}x>=SpPqO&2G@78R3gL>i@a7G_pQ~z?4tvQW)&L01q z8(F5)xK=2h4;E)4SsnosmS5!_hKt9&z@i}EHT}ho{0BS|5B|Z282t@r!k-=pT%50^jWWWeNJyg2rE*HgM;xkyhjwrUOTG(h6zCTeM>9>*E>>Yo)X8 z9yfDX5!nKimkAOl`1Dd}{yR?h&3*e%maMeSiRGW#ekh7`J=f9|r8iT6iwfA^8Sotl z5AEieiKZCqJ#ksR@=LZ+YL2^!m-@i1rK!R1$F!l=TwiDyC%^i^Hw ztzk`q)^Znqp_dAnmDTiB*y41jJMysf*3i$ZQ2p}EZzs@0`Larfr8ckiO7t`>!GD!W zVme~IjBvW??6A;uV`S|vokh}Jy?emLl63hAJ3=3-*}^#Q-era5J(3%T{Kju@UA-Qr zzya^E@_J$2SkNt^X^|13n15J|w6nP0^U@kxw=Go~cP023hrb8(_q`hTUqd!jtooA+ z>8T9q{ujZuYT$`*{ttL8)7E_Y?E}AW1ZV&6jcGzQfuNJA+(Pu4)R7^&{%H-EZJoU| z-EQN(rZB|4^77#_LO$ilta^}Yll^kyjXNQT_~k!J$*}`x z3O_uJbNrV(vTsxRhx@C3f4e%;w!P#Jj^l*PFO>_`C+bA!?Bl%UX=Ut2e9BO*py|S} zGUt1`U~LABh=>OTJ6d|hOZl_GnVi+SJ;rL$z6bDnYnHKz>u*3xBOH*$i-Fzr%A zCY{};+r_BZb&zjN0lsLaZB(&c859lx5QY!;O@lNgB9LPd-*r)ZWz}Ic80!XVL*3Ic z+RS*EBk{S)d%IvOlLXq1u=oXDU2TRBj{TC1WU#IHmC4xL$kanbe*@&MVJfRrDLDsOyc`IHwOWKQGu71WDUNiF822dbRbqJfwlT!!{? zxtpNMCE1SoJa}T4x`dEiUI#hXf{o%VW-L}-2E!X|n$AYjjx?i6$zEZiYj%8QE-=~K zF$hPO)M{lB{cVWa0mWUcL|#&vw+pbud6h)&&zJFbET?@$L0o-##Z~%%5u;_2icTn5 zSd&aO-!HT80!)_3Hy`1j_P_@pSFoK?%TRlwLJqRE;(mGg{JSb~0`~$PFkVWs^r3%r+zq{>xMT^5_*3pnf|tpsj)djYWE?>zjKE) zq8H{%WzzlGt_DQ>*b$`IMdR5nFThjnM^8nT{{Srnk;gIM$&z3*F|RSPs<&e+Zo0Z^ ztE;4&=+ZWtK_qbdLzUjiH_BRtRiC{l^*G>oQ{NyW9>+sAy|3#~D=(>ozx|wd0I-eZ zq*bI!M2|BuhMd)okwXE%VBj@su8@(bp)@_<-sX4??Mg3=$MLR#%gyZcv6|u34MZ{@ zKS#VM)$u$&B9zr2CWW;6^^}NXzp3m^!QY@qGW&@*(h3ErxR#sD)!F4heP8*2)AADr zF(md>W}bu&mUba_Q75bFr?2J47kkZT_PZp+z0I)maF*V8qDBVsf7iaxr#oJIaTKoh zD5g6UnlU_4@HSgXhb97|PoKq$U^o!uj$^!9X8kP#kf7*)TE-_)$K_EZ z*4ZO80Lejh4em0H=GIKa2qx2xS(}Qd`evgbsxh;OJL?C8f;KVSEsz>%Q8=HARlsvC zlY&6!Vs<7r#i;;x24X|)jh7w;rmL(zOif-RW4t6)^gf5hq7tp{-}(e@#*(A) zF0vSr|A3D{>YW#QSf$w(ceRhQp5K0nNDA_YO8->@qHJ={?1qW4VDUZ8$t=II4@)1V(@IvW6qtp!Ar>9E`LhnKFV;7e^1!A zPhq$o(-f3`{bYfH3sPpQA~>djSqfYXyN;gPu%`&_&@^B$l7{3UiJ_)3+DUOLFX>OVGSTN1qMvLMLVj1O;)KqHIK%{1Jy&^F0}uKu0ocZ1`hy!d6k;Su>oW1%X!1m zIF4JnwsJq zb~?+PY{n{@iYIyWKk`LY~kL`{9ihFchjL?&0`Xxx^wHQKg zB<<*|=TDnil|04FzQiuTO-77h>u_h0+xBdXKbxuHY{60@7T;P1c;yM-&YC8t%~xF? zW!bT%q>`;)Y&lsbsGLYAsjd`q$FiUA@3FL!90g|VQwmw?U1%_6I2Xl)MpSf^Dv}iE zMl6|HQVSgnD2Dq3NNy95)UF*y4*@G>aG+9~-bqizPs1Ssx~yb|z#!r59~`t`Ti;8>9!+SoCmGe}a#`VXq9hKpptHv&FqAuGvWEu3w z_wiF|LxDL8py8dNrd%s<)+kUA;NYI~AsY+68a)Vs#16*hc#(vztJi8N-Nu;!CiS2Y z-EM(mDoTUcs9<8g$?%?$ix<4n$*3ZZ8dL1}l-WWPt^9ioS^3R-;Cn;?RF5Sq1o_b| zILBZpM%WeQJQFHU91E{8UHZ>VL zP2+BU;*$r*kQY}L=O}=fJ~7l9>EnH&fZ%;B?@~VAW_AzUO43yv!v67Kh)*@X< z@8!(?6BZ9Yk?$z?Sh6Vc>G_ra9Aq?hP=k-7ruX;{(xRTnH{M1|TnJI}75*mH;P?GO zI_d4)KZj+p6Z(>TW)_pag{B^9qd}&GpY`t)Bm^AJ-JZcW1%=upZ#^JPr-$15k%Jb& zvX2nO?ju_P6}<*xvG_U~7}au{=KLu3yJwUrK^@xVD^vso#h!98Nn)p>>Gnt3qE{xr z3y@hz(V-9qe+Jl&l3~hg<5WHkc1;P^3LGL=h+Fiu_bhS&vFB);^IKR2$`yQrghTJ? zhw1eCf+Kb_%RSsjpo0#gxjbAVrrtFT++F%MeF6&?B7K}a8PUQ0av60!CPUw z3<=q$521#iv@?S-z}kR#9gDKpsHI3a3h0)=+eh2)a~7AW_P`;cPzie*G&4Uy5nl)vEx)si2lp`n1_X0# z0sfiwo?Vc)nW0)851!4&l&aM%c$AEMs#zJZ%WG zSYbJ`dk%y@2Pj9~-mT&>)fvIiOoH;XRDAFqqINQVxxqyM_X2}sH*w+K!so17PY=kZ9a%GX z0vD<7h_^n`!|dK&%Gd0lG&h~lGT=_(-w^@?I^3LVL8=v zm@S{RV&%cfqtF1_Z~);p($NF&ASmERhdEKScnp7U z7XY=*P8}H@mhIL}&%OL*CEf|jeVIl9%HZS(u63ug{FbJv;Ka*bEQ=tfNkx=~0~YCs zv{6?5m8kOLa3G%n%^Enz1dl`kz%8({Y}nPl0l=yyujo7_k_Jh(*2eQUo<{+PrS0N` z0;VxYtoUA*c`TCgb3PA5pg{%3;}b182oVe5jicYk{;K&Zo=;hhB-2;EqIF)mTm|IS zhrx$6LhW)o%BINxF-Qe7DJ-}>h-UbbPR{Zw%Z!RH=V$?!L}&sy4*eJ4%_`{BoLAn5 zL|h6IE68F)%Px+(at*lhaSfq;IMli{-2XTU2x zXB@;cYY*5OCoGP(^YNPI&9Ukww#?awl*qQ`jCNU2jy51tra$^6H59|)@19S;QA#n= zrm+uI^LCx1EoY;3hoPMe#DHmOwv9xv)rH5*(x13b2o8V90(x%v{4%A*z$J141#Em) z8!@kqPY;kt9UcE`oN%ZN;nVC{GB4xUW%N6tZAmJ8+Z{P`$S#x+wZTupH~oMc<}9MZ z7mY{rASZ-H;vRA2S`5etf2I|a7C2I&eQOp&a9~@1`+IyB(w>?}_cR0_!W;*&c=H~G zc~VgGzXsOKpXIz1Z*b=U6S?NlDYL`4G4(=%%wZW5g1lgL3A7aN9ej#pdfql~p3fA2 z3GgYMkDt2g#s9@UX-PFibx8N9zSa@hD{su5rH$QF?{}H!L%U7n7K2P&!7Eax$I?qB z;g($%^d*O}0E!cGLYKOV3M!%Vm6APj-~F6n}wL&`>6WFW2E}4>9v% zAr3YPPl5=GW|Iw1Lpkn6R8Vy7%MA^K2oUEQm9rexnf!FcP7IucW}cX0Ah`){IGAbX zXcBR`pot9l63%)4wWD}@k)$4YXJdtSE9ZQ+Y~)C%QaA`7Ia!r{k_h8t%4}fRttthv zrs&UhW&I+>^9tE*nFO!UV?IfEY!0^GP0(eX12&wfYXg80C(6DJX|1}B5hz@l%C&|` zjh0r>V7}TF`9sxK9bze^G>F2gT~sdLYhKl0bMJSFs}@;_xaAxvaKqi!(q3w`>xRlz zne!=>crck+$Q=R-i%*^9b>pB78t!d6)O&&V6xSCb2d zaGtD!YO}(k0Bkik0odv&2ZIm`)SPiRMA`+1h{nCDhDuTi-y$p032Unua0-sV5p={H zZo0sf-4P<*bX_TB6hx#Kb@2B?x<6Q5SqjMV>D;a0gtsh{PFJOd5NxWkiinDUE86e*Px710%*(tt^XA=q&bjv*<%v+zGlBTdQI7zk;hGi~jy@R&*(YV+ zuQGM@jOuJ&6nE#_z5Fy&pA~ue)$T3CF4aN@lN4&$#NOe=J(XClv;u>iqJ)b|oU4$X z{d_#7Mo~ikNy11HFWWs8&z0@>#w-noyk=#pPs(Zt`!L9>asG(*{{Zz{#jjK6!OGn z=6*#Cj43{$&VrJx9z*^O_;*i>$Q92J?Y@KPl}nHNO-_~4NKe#T9TMo4oc)6rIlfDB zwF8&jB|koYqdA?e53h(LdDtt~7gxk~_RcA}rL!uD!ZcyVikTOv1M+Ln9M*cpxnkK0xoHjIZvH#iVP2{dfgbIaFWn?fbd>(qlIMd9Tj3FC}sk%cBzD&dA;%eW1Mf zn!jg#31+eyCFo2n_8Z9bwb>r6fmvo~mu|&#KJNGX4mh3vIVLY8hrYmLH#`f{ERQvM zd7!Eb9}$V$mQsQ8iD)|Z%h)Y_DfG1$uWi^>=`Fc$B)s3Eh!Q_~-`9x#hVYm^Mb0>?(Pv{qebJKoe0h zQ`W)ooKu*oi%X2S5K*Gx(J!*2og}m<=^n;5zJ?!2p=X0{UU`Q)8fNGVw~7YXuPCtD z#h+#0{fbPuk9yW!bx2S2btq|Y626579enus(x4{KGiWL=$}fb2D=b9{%b4Y@QN0If z)P^=>okRL)#|n_#z%g}9-e&C$+(t(XI=^(Z)wIa_Lbjpq3LsE2DW3h&cGkj*ukm7s zf&ILd_PSI{q!ojdxEDH;kJ(9BK|&iDI#$yE0MVJE`N3=gRm8zZiz-QB$QfTfysTG-^6L1Obo0`XE34h)dFKZ9d{;}TSe?d*@D2|?g?Rb=E zsNgrN0D|sMjF_Y&NQRVq0&GmO8KfPutjQ@>f-YF>WE>Rh{q1POY>0^Dut=zKl+*zQ zCP*S`F@X>|_z*eMKAhVGUZdQ4VL3VN{+tpohOt94z;WXd%=F>S$e&2;8g4`)K^f*61@ zIma#mxrHqGP@l?iP(qrF>jd0?!G>Q>UX*30Kv_Xe&>+2AkOOE~ZK%U0W|q)gVfHJx zB<}??Uc?tco5~DgO{lSDc<`77n5gFkXZ*sRb`v;xc?xntb00i>pZB9~D#5RUZZ&MM z({=`UyQDz3rcLq&w`Je%x-@$C>b7(1_pQznGj`m!T=sCR@QcFH?8}bnWeI6{2VTC} zV=T+?eO2=q3Dmh)26|QR3+0#x&VSc&sQ6DOjmvSLT;k*GaVShrxZLAE`$j_?$DaKM zJ;GJHOwPo|<2DRvbUwcXw$6V1>%}*}%!gK-Klo>vR<*0x|Mk^xKa7dTqAkBAwBp|B z_x=aHJbO0lkU=t!9D0;`f6J#eMf~$Q9z`ql{(p=Uuavz__CLM#LH_3LTw-i{^>Gno<+Tx?{7C(t| zu~K=Qx_$#T9q2w9-5T}{qV^T#Yx={~(vI-eXxW;n7cNhnV{oG)ZT0RF@~~h2RG!}a(|o|Az};q+wFA`RsSDj8 zpIg?c+)6G92Pmg;E=XI#3g-6vfQ(Wx7sC*W>kr%lyr`d$9mzPLRgk+%bK)1;3{^D+ z4s$JbfNXygE1R2>(t=tx>TnRpZ-K;B0Sf2* zCLd6I+ZB`;iCl!QD0VV+-smKJj%&IFxVmu2uVC5U#0!uX#@`Ql#A#{PXXtsKjsHsH9-VeKYyp~q#fZm{~i>Q=mTQ_{NY|s01+k_ z!InK(b=?~}g`O%F9=?cPxjad?E$(bKDX?Q-L>rDM7J$A8pxKuHZE}{*l~>ZO_&s2) znc(J~d=YWpQ@kuM_g|WCJ@cxyugaH9+yRAa2;G!azPDHLJsBk4qnOpaTS^YSotOFrI{HE6N@jCidB88hM9IQDZVldHm&{7VXQ2&3Vs z{;S>ElN2cGT4YR@+SI+`sDk9r#Rc`M7Yf2r9PRsSPZKY7>XN~;BVJ)X6K5sUlHybL z#tYLok}xY~L7r-(9}ORSS&2-W+Y8+Lt3D|sl zXH8Hu$f+;l;=@il1*t(T`9R&WXdSc;ytulQudewsc%??OY7dojTAm}%!*#Yfv6P0x zugVRene1nmnvbcenNl28de$$nIcZO~|2qRrJbg7Vh#=eirIWgeFVR+u=0K25FtBcN z^;Fl*fV)9o;^42gaUKIL{Bm(+Qi|(?7GePjqcc>oA?Z`>jAfI|HXjr^XPKv__Ri^9 zZR4#m-H}k@&565M+jM?lqu7Bl6(f0Tv=16Zr+c_`+%eCZO`Uq?Ic)DVgS@lEiYe%w zO#TW{*K{e!r-$nF8y?SeYN(eKW~=Q~3uQUK2~JT6o-w)2>+kShA}tK`w{LckCRqCL z|4GAKz53v85YYofU?psm6*UtH){!YY9gYL?WZ4O{*i*So?R+Yri=Vk18coaTJCsJC00&R+{W?;_E!N?$+M2p)a(lz+!9Eq~5XWJy6Jw z4pU^Ep?LHmfMahXXAUQdf0aT;9G8R+COd>0V;8HS@Tj0>^2n(YHvY8Fze0A8owZ62 zZA@0JpzywwOfX!4^|(z8WZPrn*KRxkIB^{pMqr{R8;e&Cvql>79d&}%z;X89@s-K5_nqIQYgJL4qW9S7KL z^T0RCFM)r7j_jD=jh=D3n~(n^;|2Hhte%^O z4A=IX4&)=Nu(RjnbFQNF&~D^7kpF!sGy!)a$`?D{(EPLB#DM=fvQ%oQIcqF<%75BN-55__bpF7hyjcn7iOR!xh%(ZuZ zicg+XnD`7@csTiUs{w}w<2EXss|cO<+Po(NpaMF4!LL3gb$CXXW=8R2ggepjm(m4B zc}yQ(>H!d4n+Sj{KSiQ}ui$3|Pk#Xx4oiWAwkxF~n=RQ;36`mJu6_7K%oPt=*&$TC zubKq{8lrp0q`*rsRW8s2iHRyIhi>8MkUb{r94luN(j;-20$&WuLW|K$NzmN-;gbBtmD9>IIWu_*?B?Haw!xh4?!-*$$4#t@& z%#7UE1@!j@3|i+h9=pw5laf?g1JpI^ba4Z`4DjR!eEmwZL*;)f>pnmZ9H70gkfcnZ zPl&_b0lMuA(quSW=%x#@q~RWZgEo+`swG2JM?A%DLB!+T%1yHL)Ev4wsDcv>+t8^> zTtQq*>61z1`K!Eb*>nrval@$+hw|wdIUiRuR#gl?!Z_`}MO_oJ z89){FjE%c8B;E8=tOu6ft1$oJd^}3c9g(%ZHDa^Spp6s7-@=M`#vJDe7$pEM;iJ-; zJcer9EM_=U-!hLk+K)&UmIP3&!@PaWbf9KNtB*(S0rQ4%`1L^nTwv@c6b$FYn>YyA zNm2wZa$^}YtcKLw0?u<2wtMl3@Ltu#&{=Eceq)BUkVyZcCj}Y%M^00izG_y7^6nKO z%CZEyU7fd|*+kNG?VvrFV*u)}T?$^_32hY&^B-BfhMu&!4dnt*0CMAY__n!rfpfdz zt-}0o)2LqL7!u%p;b41bVYwl_AQ?t9REdJ@Rw{UO+k0=Z+l^tJig$JFW2;}chO&jmCb!u#Q zH;Nspyjzur;(W?qH!q4$5$8l@8^kM?6@X&RT>%W=IgPm`AAd7ZTeA7o7-umGp?O;Q z3SnerC{O%3V9z3iceJ0UB(K6CdUvfQe_6LcX#=nWeN<9y%nLdS_4`Ko#@(k4_v6VC zae_!UKq^!mndF#zI{+SOQB`4J`W^Z|RUisOVg466pMF^>Fjp_Sse@=~f)B(%H4@+& z3g%M}yak=ljs>^GHE=5Wq|SojjzvturB9?1G zuG~Pt6qF>ooYKGHi8r?Cn^Hxl|XlRUaO`mI+-rgS`EgsijKdHc}u~FJ*miHn6MfnH3Co zF|sg8w$$!>#>L$&eVHK9Yq4s(cK(7>a|9?0G(H48pA7es_x*$uRYeD-e~c(e?qd5| zhb&RV+TdLxs5*2&=PLlF8=@Q@oKVF=Zkfn6zI!?FqzG+v#p>1-$fb8$+~fWr1*bH) z9}=z_Q*P-YHhQ7Zv91vn$-Rj%s0z)ZL5=wWkZ#n`pRR(B>!1+D8>PK|HTop9giW}y zS>DDCo>Pww)hr6{RcKotO@E$QH2gOO9RZ`nimh{+7ew*0HZHT)IQ6HyOvE-}nK_ad zYtUB!e9=KGa@C81G!^oyC2kWfU@VeXPO}9+2<}n*?^y<(-oZhS_PPnT0 z$uMuywFe#P#OUnYUNwCB2~PcPvluDV1(MHiQT{EV+Z4IW+x8E%9hY`iq}BQeEjZtY z^qV|W82!HRIw=_{^Y;|HBYHQEch>KMd*QHH{Wpwd3Gc1yU_R*ku-Ckj#qv3eV!6%j&s<4%noO_)Z3B23*Tv1qaW7 z!ofIhHfp%D^*5vpNKZD`_8S|>v+COSY&;=ejVs_-O2qBRItrfz=JB_s?N3f9JS*aX<@NH1 zIn~lc_Fu4k(^9tSj|yW3b&BC4%N0VcOLNub2cC}c=2WkM4Ic_l3J?Gl<02aFa0zey z2V<+#dJw|BSwbH<^&^ctNhd#??H6+Vkixt-3R7bBn)ZQm8Vb!Du+4)Lko3|!LG-mR zK=KE@n+Z=tRfD7u7%;eaAcr|?LBjCh>w?6AUwHEEYoum5(QH4*Y0f)o!_PxvS64&& zxN2i3x)TuerJxSA4fpEq0cS9U@Wqa77;9Tt#_+TVz%G3sya;YDLt&^-p*_O+Y~*ALY;!udo@$)DFp#2m7WHTl%KVNr8t_9lapY9 z(er@+3&P}Cj>cp6z<2><#JT-iq>ueW`E}K5d!W99lolKU;8`nyxNJrrbNp5URuvCq zYiWWjdCiV9F?6%5do)|O%kq>8^Lzr!cWNTyCp*9@ratD3skRZDmX+4_6YRs`J5>GJ zrw9bzZb2$dR#G{b5TWJ9mwC!S&)P*2zev%+XGZF1E5TjtH6nElFw4vmM($+e(XZ6c zLT9*(N5tWPFm>s!z}fBKd$l5^Vt0)t@~lSt7ohH+mCP{Bv~S4l8yyhHtGd|zq>TL= z8{%PXWE~-HxS!ywUxD}*F!>P8Dn)Q)3zn<$f^p_07(1xBAY1P<8l*6}7wKI)0Ay_) z0iuCOw}RbD6u>T-Qp@_TkU%FNQbo`6z_;K`5S&0admw0P20IgC zCP7#BqQ}7J>&b{Y@KdhF5*)waKCeO!8vMcup@55NO;`*1FFtJ9ZaJGk@3AbHj6L-E z|Li~a4QdDDi9pZCPJnB*VulZaul;O(<6%N^IO74ovF5N75Pl@ktzK|cFdHv#e`LTA zu>%(W3uwXn;=0%{&}+(bL_@aUZCb04jgFt}sF@4>jFuk8p6`A7r(ubUWcXvA2= zizy`ukq}LNG39e#!$2!`B2L-o)*OQkay4kYxOD-zT!+eQFdGt)nc%RniMr28aTKO5 zS;id-(9a(Zn1;@w33QSW;C78Q=JUKq;KCueSPOQh-Ep6r2Y=~sa9RmAqbB2=K~CpW5s6Fxy834%qY*R0f3EZl;7*&_m~r&-dMm$@sTXyws^>+vhQA xWnTv)h_l_JE(P6N_?{aJP|M_2Rxs#E&<8MDVloAsYMKA}n(->odzb(I{y(+g2Lk{A literal 0 HcmV?d00001 diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/CMakeLists.txt b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/CMakeLists.txt new file mode 100644 index 0000000..01dcd5a --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/CMakeLists.txt @@ -0,0 +1,6 @@ +# The following lines of boilerplate have to be in your project's +# CMakeLists in this exact order for cmake to work correctly +cmake_minimum_required(VERSION 3.16) + +include($ENV{IDF_PATH}/tools/cmake/project.cmake) +project(bleprph_host_only_vhci) diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/README.md b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/README.md new file mode 100644 index 0000000..63a68f2 --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/README.md @@ -0,0 +1,202 @@ +| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-H2 | ESP32-S3 | ESP32-P4 | +| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | + +# BLE Host-Only Peripheral Hosted HCI Example + +This example uses the Bluetooth Hosted HCI transport provided by ESP-Hosted. + +To use the Hosted HCI transport in the application, the Bluetooth +controller should be disabled and the default uart-transport should +also be disabled (when the controller is disabled, by default the +uart-transport is selected). The Bluetooth Hosted HCI transport in +ESP-Hosted should also be enabled. + +Refer to the `sdkconfig.defaults` file which has the required +configuration. + +To test this demo, any BLE scanner app can be used. + +## How to Use This Example + +Before project configuration and build, be sure to set the correct +chip target using: + +```bash +idf.py set-target +``` + +### Configure the project + +Open the project configuration menu: + +```bash +idf.py menuconfig +``` + +In the `Component config-> Bluetooth` menu: + +* Select `controller` to Disabled. +* Disable `Nimble Options-> Host-controller Transport -> Enable Uart Transport`. + +In the `Component config-> ESP-Hosted config` menu: + +* Enable `Bluetooth Support-> Enable Hosted Bluetooth support` + +### Build and Flash + +Run `idf.py -p PORT flash monitor` to build, flash and monitor the +project. + +(To exit the serial monitor, type ``Ctrl-]``.) + +See the [Getting Started Guide](https://idf.espressif.com/) for full +steps to configure and use ESP-IDF to build projects. + +## Example Output + +This is the console output when `bleprph_host_only_vhci` is running on +the ESP32-P4 and using the Bluetooth Controller of the ESP32C6 on the +ESP32-P4-Function-EV-Board. The data is transferred through SDIO +between the ESP32-P4 and ESP32-C6: + +``` +I (25) boot: ESP-IDF v5.4-dev-2793-g24047f9a04-dirty 2nd stage bootloader +I (26) boot: compile time Sep 9 2024 16:23:48 +I (27) boot: Multicore bootloader +I (32) boot: chip revision: v0.1 +I (34) boot: efuse block revision: v0.0 +I (39) boot.esp32p4: SPI Speed : 80MHz +I (44) boot.esp32p4: SPI Mode : DIO +I (49) boot.esp32p4: SPI Flash Size : 2MB +I (53) boot: Enabling RNG early entropy source... +I (59) boot: Partition Table: +I (62) boot: ## Label Usage Type ST Offset Length +I (70) boot: 0 nvs WiFi data 01 02 00009000 00006000 +I (77) boot: 1 phy_init RF data 01 01 0000f000 00001000 +I (84) boot: 2 factory factory app 00 00 00010000 00100000 +I (93) boot: End of partition table +I (96) esp_image: segment 0: paddr=00010020 vaddr=40070020 size=2ae08h (175624) map +I (135) esp_image: segment 1: paddr=0003ae30 vaddr=30100000 size=0000ch ( 12) load +I (137) esp_image: segment 2: paddr=0003ae44 vaddr=3010000c size=00038h ( 56) load +I (142) esp_image: segment 3: paddr=0003ae84 vaddr=4ff00000 size=05194h ( 20884) load +I (154) esp_image: segment 4: paddr=00040020 vaddr=40000020 size=638b0h (407728) map +I (226) esp_image: segment 5: paddr=000a38d8 vaddr=4ff05194 size=0b9a0h ( 47520) load +I (237) esp_image: segment 6: paddr=000af280 vaddr=4ff10b80 size=02328h ( 9000) load +I (244) boot: Loaded app from partition at offset 0x10000 +I (244) boot: Disabling RNG early entropy source... +I (258) cpu_start: Multicore app +W (267) clk: esp_perip_clk_init() has not been implemented yet +I (274) cpu_start: Pro cpu start user code +I (274) cpu_start: cpu freq: 360000000 Hz +I (274) app_init: Application information: +I (277) app_init: Project name: bleprph_host_only_vhci +I (283) app_init: App version: 1c568c9-dirty +I (288) app_init: Compile time: Sep 9 2024 16:23:43 +I (294) app_init: ELF file SHA256: ee5a16527... +I (299) app_init: ESP-IDF: v5.4-dev-2793-g24047f9a04-dirty +I (306) efuse_init: Min chip rev: v0.1 +I (311) efuse_init: Max chip rev: v0.99 +I (316) efuse_init: Chip rev: v0.1 +I (321) heap_init: Initializing. RAM available for dynamic allocation: +I (328) heap_init: At 4FF160B0 len 00024F10 (147 KiB): RAM +I (334) heap_init: At 4FF3AFC0 len 00004BF0 (18 KiB): RAM +I (340) heap_init: At 4FF40000 len 00060000 (384 KiB): RAM +I (347) heap_init: At 50108080 len 00007F80 (31 KiB): RTCRAM +I (353) heap_init: At 30100044 len 00001FBC (7 KiB): TCM +I (360) spi_flash: detected chip: generic +I (363) spi_flash: flash io: dio +W (367) spi_flash: Detected size(16384k) larger than the size in the binary image header(2048k). Using the size in the binary image header. +I (381) host_init: ESP Hosted : Host chip_ip[18] +I (409) H_API: ESP-Hosted starting. Hosted_Tasks: prio:23, stack: 5120 RPC_task_stack: 5120 +sdio_mempool_create free:181028 min-free:181028 lfb-def:139264 lfb-8bit:139264 + +I (414) gpio: GPIO[18]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 +I (423) gpio: GPIO[19]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 +I (433) gpio: GPIO[14]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 +I (442) gpio: GPIO[15]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 +I (451) gpio: GPIO[16]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 +I (461) gpio: GPIO[17]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 +I (470) H_API: ** add_esp_wifi_remote_channels ** +I (475) transport: Add ESP-Hosted channel IF[1]: S[0] Tx[0x4000d110] Rx[0x4001b4aa] +0x4000d110: transport_drv_sta_tx at /home/kysoh/projects/esp_as_mcu_host/examples/bleprph_host_only_vhci/components/esp_hosted/host/drivers/transport/transport_drv.c:208 +0x4001b4aa: esp_wifi_remote_channel_rx at /home/kysoh/projects/esp_as_mcu_host/examples/bleprph_host_only_vhci/managed_components/espressif__esp_wifi_remote/esp_wifi_remote_net.c:19 + +I (484) transport: Add ESP-Hosted channel IF[2]: S[0] Tx[0x4000d058] Rx[0x4001b4aa] +0x4000d058: transport_drv_ap_tx at /home/kysoh/projects/esp_as_mcu_host/examples/bleprph_host_only_vhci/components/esp_hosted/host/drivers/transport/transport_drv.c:238 +0x4001b4aa: esp_wifi_remote_channel_rx at /home/kysoh/projects/esp_as_mcu_host/examples/bleprph_host_only_vhci/managed_components/espressif__esp_wifi_remote/esp_wifi_remote_net.c:19 + +I (493) main_task: Started on CPU0 +I (503) main_task: Calling app_main() +I (513) transport: Attempt connection with slave: retry[0] +I (513) transport: Reset slave using GPIO[54] +I (513) os_wrapper_esp: GPIO [54] configured +I (513) gpio: GPIO[54]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 +I (1693) sdio_wrapper: SDIO master: Data-Lines: 4-bit Freq(KHz)[40000 KHz] +I (1693) sdio_wrapper: GPIOs: CLK[18] CMD[19] D0[14] D1[15] D2[16] D3[17] Slave_Reset[54] +I (1693) H_SDIO_DRV: Starting SDIO process rx task +I (1693) sdio_wrapper: Queues: Tx[20] Rx[20] SDIO-Rx-Mode[1] +I (1733) gpio: GPIO[15]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 +I (1733) gpio: GPIO[17]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 +Name: +Type: SDIO +Speed: 40.00 MHz (limit: 40.00 MHz) +Size: 0MB +CSD: ver=1, sector_size=0, capacity=0 read_bl_len=0 +SCR: sd_spec=0, bus_width=0 +TUPLE: DEVICE, size: 3: D9 01 FF +TUPLE: MANFID, size: 4 + MANF: 0092, CARD: 6666 +TUPLE: FUNCID, size: 2: 0C 00 +TUPLE: FUNCE, size: 4: 00 00 02 32 +TUPLE: CONFIG, size: 5: 01 01 00 02 07 +TUPLE: CFTABLE_ENTRY, size: 8 + INDX: C1, Intface: 1, Default: 1, Conf-Entry-Num: 1 + IF: 41 + FS: 30, misc: 0, mem_space: 1, irq: 1, io_space: 0, timing: 0, power: 0 + IR: 30, mask: 1, IRQ: FF FF + LEN: FFFF +TUPLE: END +I (1783) sdio_wrapper: Function 0 Blocksize: 512 +I (1793) sdio_wrapper: Function 1 Blocksize: 512 +I (1793) H_SDIO_DRV: SDIO Host operating in STREAMING MODE +I (1803) H_SDIO_DRV: generate slave intr +I (1813) transport: Received INIT event from ESP32 peripheral +I (1813) transport: EVENT: 12 +I (1813) transport: EVENT: 11 +I (1823) transport: capabilities: 0xd +I (1823) transport: Features supported are: +I (1833) transport: * WLAN +I (1833) transport: - HCI over SDIO +I (1843) transport: - BLE only +I (1843) transport: EVENT: 13 +I (1843) transport: ESP board type is : 13 + +I (1853) transport: Base transport is set-up + +I (1853) transport: Slave chip Id[12] +I (1863) vhci_drv: Host BT Support: Enabled +I (1863) vhci_drv: BT Transport Type: VHCI +I (1873) H_SDIO_DRV: Received INIT event +I (1883) rpc_wrap: Received Slave ESP Init +I (2623) NimBLE_BLE_PRPH: BLE Host Task Started +I (2623) uart: queue free spaces: 8 +I (2623) main_task: Returned from app_main() +I (2623) NimBLE: GAP procedure initiated: stop advertising. + +I (2633) NimBLE: Device Address: +I (2633) NimBLE: 40:4c:ca:5b:9a:e2 +I (2633) NimBLE: + +I (2643) NimBLE: GAP procedure initiated: advertise; +I (2643) NimBLE: disc_mode=2 +I (2653) NimBLE: adv_channel_map=0 own_addr_type=0 adv_filter_policy=0 adv_itvl_min=0 adv_itvl_max=0 +I (2663) NimBLE: +``` + +## Troubleshooting + +For any technical queries, please open an [issue](https://github.com/espressif/esp-hosted-mcu/issues) on ESP-Hosted on GitHub. We will get back to you soon. + +## References + +* Bluetooth Implementation in ESP-Hosted: https://github.com/espressif/esp-hosted-mcu/blob/main/docs/bluetooth_design.md diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/CMakeLists.txt b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/CMakeLists.txt new file mode 100644 index 0000000..9e539a9 --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/CMakeLists.txt @@ -0,0 +1,5 @@ +set(srcs "main.c" + "gatt_svr.c") + +idf_component_register(SRCS "${srcs}" + INCLUDE_DIRS ".") diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/Kconfig.projbuild b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/Kconfig.projbuild new file mode 100644 index 0000000..2529f3b --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/Kconfig.projbuild @@ -0,0 +1,80 @@ +menu "Example Configuration" + + choice EXAMPLE_USE_IO_TYPE + prompt "I/O Capability" + default BLE_SM_IO_CAP_NO_IO + help + I/O capability of device. + + config BLE_SM_IO_CAP_DISP_ONLY + bool "DISPLAY ONLY" + config BLE_SM_IO_CAP_DISP_YES_NO + bool "DISPLAY YESNO" + config BLE_SM_IO_CAP_KEYBOARD_ONLY + bool "KEYBOARD ONLY" + config BLE_SM_IO_CAP_NO_IO + bool "Just works" + config BLE_SM_IO_CAP_KEYBOARD_DISP + bool "Both KEYBOARD & DISPLAY" + endchoice + + config EXAMPLE_IO_TYPE + int + default 0 if BLE_SM_IO_CAP_DISP_ONLY + default 1 if BLE_SM_IO_CAP_DISP_YES_NO + default 2 if BLE_SM_IO_CAP_KEYBOARD_ONLY + default 3 if BLE_SM_IO_CAP_NO_IO + default 4 if BLE_SM_IO_CAP_KEYBOARD_DISP + + config EXAMPLE_BONDING + bool + default n + prompt "Use Bonding" + help + Use this option to enable/disable bonding. + + config EXAMPLE_MITM + bool + default n + prompt "MITM security" + help + Use this option to enable/disable MITM security. + + config EXAMPLE_USE_SC + bool + depends on BT_NIMBLE_SM_SC + default n + prompt "Use Secure Connection feature" + help + Use this option to enable/disable Security Manager Secure Connection 4.2 feature. + + config EXAMPLE_EXTENDED_ADV + bool + depends on SOC_BLE_50_SUPPORTED && BT_NIMBLE_50_FEATURE_SUPPORT + default y if SOC_ESP_NIMBLE_CONTROLLER + select BT_NIMBLE_EXT_ADV + prompt "Enable Extended Adv" + help + Use this option to enable extended advertising in the example. + If this option is disabled, ensure config BT_NIMBLE_EXT_ADV is + also disabled from Nimble stack menuconfig + + config EXAMPLE_RANDOM_ADDR + bool + prompt "Advertise RANDOM Address" + help + Use this option to advertise a random address instead of public address + + config EXAMPLE_ENCRYPTION + bool + prompt "Enable Link Encryption" + help + This adds Encrypted Read and Write permissions in the custom GATT server. + + config EXAMPLE_RESOLVE_PEER_ADDR + bool + prompt "Enable resolving peer address" + help + Use this option to enable resolving peer's address. + +endmenu diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/bleprph.h b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/bleprph.h new file mode 100644 index 0000000..9191274 --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/bleprph.h @@ -0,0 +1,35 @@ +/* + * SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ +#ifndef H_BLEPRPH_ +#define H_BLEPRPH_ + +#include +#include "nimble/ble.h" +#include "modlog/modlog.h" +#include "esp_peripheral.h" +#ifdef __cplusplus +extern "C" { +#endif + +struct ble_hs_cfg; +struct ble_gatt_register_ctxt; + +/** GATT server. */ +#define GATT_SVR_SVC_ALERT_UUID 0x1811 +#define GATT_SVR_CHR_SUP_NEW_ALERT_CAT_UUID 0x2A47 +#define GATT_SVR_CHR_NEW_ALERT 0x2A46 +#define GATT_SVR_CHR_SUP_UNR_ALERT_CAT_UUID 0x2A48 +#define GATT_SVR_CHR_UNR_ALERT_STAT_UUID 0x2A45 +#define GATT_SVR_CHR_ALERT_NOT_CTRL_PT 0x2A44 + +void gatt_svr_register_cb(struct ble_gatt_register_ctxt *ctxt, void *arg); +int gatt_svr_init(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/gatt_svr.c b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/gatt_svr.c new file mode 100644 index 0000000..8a9d8b0 --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/gatt_svr.c @@ -0,0 +1,247 @@ +/* + * SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ +#include +#include +#include +#include "host/ble_hs.h" +#include "host/ble_uuid.h" +#include "services/gap/ble_svc_gap.h" +#include "services/gatt/ble_svc_gatt.h" +#include "bleprph.h" +#include "services/ans/ble_svc_ans.h" + +/*** Maximum number of characteristics with the notify flag ***/ +#define MAX_NOTIFY 5 + +static const ble_uuid128_t gatt_svr_svc_uuid = + BLE_UUID128_INIT(0x2d, 0x71, 0xa2, 0x59, 0xb4, 0x58, 0xc8, 0x12, + 0x99, 0x99, 0x43, 0x95, 0x12, 0x2f, 0x46, 0x59); + +/* A characteristic that can be subscribed to */ +static uint8_t gatt_svr_chr_val; +static uint16_t gatt_svr_chr_val_handle; +static const ble_uuid128_t gatt_svr_chr_uuid = + BLE_UUID128_INIT(0x00, 0x00, 0x00, 0x00, 0x11, 0x11, 0x11, 0x11, + 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33); + +/* A custom descriptor */ +static uint8_t gatt_svr_dsc_val; +static const ble_uuid128_t gatt_svr_dsc_uuid = + BLE_UUID128_INIT(0x01, 0x01, 0x01, 0x01, 0x12, 0x12, 0x12, 0x12, + 0x23, 0x23, 0x23, 0x23, 0x34, 0x34, 0x34, 0x34); + +static int +gatt_svc_access(uint16_t conn_handle, uint16_t attr_handle, + struct ble_gatt_access_ctxt *ctxt, + void *arg); + +static const struct ble_gatt_svc_def gatt_svr_svcs[] = { + { + /*** Service ***/ + .type = BLE_GATT_SVC_TYPE_PRIMARY, + .uuid = &gatt_svr_svc_uuid.u, + .characteristics = (struct ble_gatt_chr_def[]) + { { + /*** This characteristic can be subscribed to by writing 0x00 and 0x01 to the CCCD ***/ + .uuid = &gatt_svr_chr_uuid.u, + .access_cb = gatt_svc_access, +#if CONFIG_EXAMPLE_ENCRYPTION + .flags = BLE_GATT_CHR_F_READ | BLE_GATT_CHR_F_WRITE | + BLE_GATT_CHR_F_READ_ENC | BLE_GATT_CHR_F_WRITE_ENC | + BLE_GATT_CHR_F_NOTIFY | BLE_GATT_CHR_F_INDICATE, +#else + .flags = BLE_GATT_CHR_F_READ | BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_NOTIFY | BLE_GATT_CHR_F_INDICATE, +#endif + .val_handle = &gatt_svr_chr_val_handle, + .descriptors = (struct ble_gatt_dsc_def[]) + { { + .uuid = &gatt_svr_dsc_uuid.u, +#if CONFIG_EXAMPLE_ENCRYPTION + .att_flags = BLE_ATT_F_READ | BLE_ATT_F_READ_ENC, +#else + .att_flags = BLE_ATT_F_READ, +#endif + .access_cb = gatt_svc_access, + }, { + 0, /* No more descriptors in this characteristic */ + } + }, + }, { + 0, /* No more characteristics in this service. */ + } + }, + }, + + { + 0, /* No more services. */ + }, +}; + +static int +gatt_svr_write(struct os_mbuf *om, uint16_t min_len, uint16_t max_len, + void *dst, uint16_t *len) +{ + uint16_t om_len; + int rc; + + om_len = OS_MBUF_PKTLEN(om); + if (om_len < min_len || om_len > max_len) { + return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; + } + + rc = ble_hs_mbuf_to_flat(om, dst, max_len, len); + if (rc != 0) { + return BLE_ATT_ERR_UNLIKELY; + } + + return 0; +} + +/** + * Access callback whenever a characteristic/descriptor is read or written to. + * Here reads and writes need to be handled. + * ctxt->op tells weather the operation is read or write and + * weather it is on a characteristic or descriptor, + * ctxt->dsc->uuid tells which characteristic/descriptor is accessed. + * attr_handle give the value handle of the attribute being accessed. + * Accordingly do: + * Append the value to ctxt->om if the operation is READ + * Write ctxt->om to the value if the operation is WRITE + **/ +static int +gatt_svc_access(uint16_t conn_handle, uint16_t attr_handle, + struct ble_gatt_access_ctxt *ctxt, void *arg) +{ + const ble_uuid_t *uuid; + int rc; + + switch (ctxt->op) { + case BLE_GATT_ACCESS_OP_READ_CHR: + if (conn_handle != BLE_HS_CONN_HANDLE_NONE) { + MODLOG_DFLT(INFO, "Characteristic read; conn_handle=%d attr_handle=%d\n", + conn_handle, attr_handle); + } else { + MODLOG_DFLT(INFO, "Characteristic read by NimBLE stack; attr_handle=%d\n", + attr_handle); + } + uuid = ctxt->chr->uuid; + if (attr_handle == gatt_svr_chr_val_handle) { + rc = os_mbuf_append(ctxt->om, + &gatt_svr_chr_val, + sizeof(gatt_svr_chr_val)); + return rc == 0 ? 0 : BLE_ATT_ERR_INSUFFICIENT_RES; + } + goto unknown; + + case BLE_GATT_ACCESS_OP_WRITE_CHR: + if (conn_handle != BLE_HS_CONN_HANDLE_NONE) { + MODLOG_DFLT(INFO, "Characteristic write; conn_handle=%d attr_handle=%d", + conn_handle, attr_handle); + } else { + MODLOG_DFLT(INFO, "Characteristic write by NimBLE stack; attr_handle=%d", + attr_handle); + } + uuid = ctxt->chr->uuid; + if (attr_handle == gatt_svr_chr_val_handle) { + rc = gatt_svr_write(ctxt->om, + sizeof(gatt_svr_chr_val), + sizeof(gatt_svr_chr_val), + &gatt_svr_chr_val, NULL); + ble_gatts_chr_updated(attr_handle); + MODLOG_DFLT(INFO, "Notification/Indication scheduled for " + "all subscribed peers.\n"); + return rc; + } + goto unknown; + + case BLE_GATT_ACCESS_OP_READ_DSC: + if (conn_handle != BLE_HS_CONN_HANDLE_NONE) { + MODLOG_DFLT(INFO, "Descriptor read; conn_handle=%d attr_handle=%d\n", + conn_handle, attr_handle); + } else { + MODLOG_DFLT(INFO, "Descriptor read by NimBLE stack; attr_handle=%d\n", + attr_handle); + } + uuid = ctxt->dsc->uuid; + if (ble_uuid_cmp(uuid, &gatt_svr_dsc_uuid.u) == 0) { + rc = os_mbuf_append(ctxt->om, + &gatt_svr_dsc_val, + sizeof(gatt_svr_chr_val)); + return rc == 0 ? 0 : BLE_ATT_ERR_INSUFFICIENT_RES; + } + goto unknown; + + case BLE_GATT_ACCESS_OP_WRITE_DSC: + goto unknown; + + default: + goto unknown; + } + +unknown: + /* Unknown characteristic/descriptor; + * The NimBLE host should not have called this function; + */ + assert(0); + return BLE_ATT_ERR_UNLIKELY; +} + +void +gatt_svr_register_cb(struct ble_gatt_register_ctxt *ctxt, void *arg) +{ + char buf[BLE_UUID_STR_LEN]; + + switch (ctxt->op) { + case BLE_GATT_REGISTER_OP_SVC: + MODLOG_DFLT(DEBUG, "registered service %s with handle=%d\n", + ble_uuid_to_str(ctxt->svc.svc_def->uuid, buf), + ctxt->svc.handle); + break; + + case BLE_GATT_REGISTER_OP_CHR: + MODLOG_DFLT(DEBUG, "registering characteristic %s with " + "def_handle=%d val_handle=%d\n", + ble_uuid_to_str(ctxt->chr.chr_def->uuid, buf), + ctxt->chr.def_handle, + ctxt->chr.val_handle); + break; + + case BLE_GATT_REGISTER_OP_DSC: + MODLOG_DFLT(DEBUG, "registering descriptor %s with handle=%d\n", + ble_uuid_to_str(ctxt->dsc.dsc_def->uuid, buf), + ctxt->dsc.handle); + break; + + default: + assert(0); + break; + } +} + +int +gatt_svr_init(void) +{ + int rc; + + ble_svc_gap_init(); + ble_svc_gatt_init(); + ble_svc_ans_init(); + + rc = ble_gatts_count_cfg(gatt_svr_svcs); + if (rc != 0) { + return rc; + } + + rc = ble_gatts_add_svcs(gatt_svr_svcs); + if (rc != 0) { + return rc; + } + + /* Setting a value for the read-only descriptor */ + gatt_svr_dsc_val = 0x99; + + return 0; +} diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/idf_component.yml b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/idf_component.yml new file mode 100644 index 0000000..2395bfe --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/idf_component.yml @@ -0,0 +1,11 @@ +dependencies: + espressif/esp_hosted: + rules: + - if: target in [esp32p4, esp32h2] + version: ~2 + espressif/esp_wifi_remote: + rules: + - if: target in [esp32p4, esp32h2] + version: '>=0.10' + nimble_peripheral_utils: + path: ${IDF_PATH}/examples/bluetooth/nimble/common/nimble_peripheral_utils diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/main.c b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/main.c new file mode 100644 index 0000000..8b5b2ec --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/main.c @@ -0,0 +1,550 @@ +/* + * SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "esp_log.h" +#include "nvs_flash.h" +/* BLE */ +#include "nimble/nimble_port.h" +#include "nimble/nimble_port_freertos.h" +#include "host/ble_hs.h" +#include "host/util/util.h" +#include "console/console.h" +#include "services/gap/ble_svc_gap.h" +#include "bleprph.h" + +#if CONFIG_EXAMPLE_EXTENDED_ADV +static uint8_t ext_adv_pattern_1[] = { + 0x02, 0x01, 0x06, + 0x03, 0x03, 0xab, 0xcd, + 0x03, 0x03, 0x18, 0x11, + 0x11, 0X09, 'n', 'i', 'm', 'b', 'l', 'e', '-', 'b', 'l', 'e', 'p', 'r', 'p', 'h', '-', 'e', +}; +#endif + +static const char *tag = "NimBLE_BLE_PRPH"; +static int bleprph_gap_event(struct ble_gap_event *event, void *arg); +#if CONFIG_EXAMPLE_RANDOM_ADDR +static uint8_t own_addr_type = BLE_OWN_ADDR_RANDOM; +#else +static uint8_t own_addr_type; +#endif + +void ble_store_config_init(void); + +/** + * Logs information about a connection to the console. + */ +static void +bleprph_print_conn_desc(struct ble_gap_conn_desc *desc) +{ + MODLOG_DFLT(INFO, "handle=%d our_ota_addr_type=%d our_ota_addr=", + desc->conn_handle, desc->our_ota_addr.type); + print_addr(desc->our_ota_addr.val); + MODLOG_DFLT(INFO, " our_id_addr_type=%d our_id_addr=", + desc->our_id_addr.type); + print_addr(desc->our_id_addr.val); + MODLOG_DFLT(INFO, " peer_ota_addr_type=%d peer_ota_addr=", + desc->peer_ota_addr.type); + print_addr(desc->peer_ota_addr.val); + MODLOG_DFLT(INFO, " peer_id_addr_type=%d peer_id_addr=", + desc->peer_id_addr.type); + print_addr(desc->peer_id_addr.val); + MODLOG_DFLT(INFO, " conn_itvl=%d conn_latency=%d supervision_timeout=%d " + "encrypted=%d authenticated=%d bonded=%d\n", + desc->conn_itvl, desc->conn_latency, + desc->supervision_timeout, + desc->sec_state.encrypted, + desc->sec_state.authenticated, + desc->sec_state.bonded); +} + +#if CONFIG_EXAMPLE_EXTENDED_ADV +/** + * Enables advertising with the following parameters: + * o General discoverable mode. + * o Undirected connectable mode. + */ +static void +ext_bleprph_advertise(void) +{ + struct ble_gap_ext_adv_params params; + struct os_mbuf *data; + uint8_t instance = 0; + int rc; + + /* First check if any instance is already active */ + if(ble_gap_ext_adv_active(instance)) { + return; + } + + /* use defaults for non-set params */ + memset (¶ms, 0, sizeof(params)); + + /* enable connectable advertising */ + params.connectable = 1; + + /* advertise using random addr */ + params.own_addr_type = BLE_OWN_ADDR_PUBLIC; + + params.primary_phy = BLE_HCI_LE_PHY_1M; + params.secondary_phy = BLE_HCI_LE_PHY_2M; + //params.tx_power = 127; + params.sid = 1; + + params.itvl_min = BLE_GAP_ADV_FAST_INTERVAL1_MIN; + params.itvl_max = BLE_GAP_ADV_FAST_INTERVAL1_MIN; + + /* configure instance 0 */ + rc = ble_gap_ext_adv_configure(instance, ¶ms, NULL, + bleprph_gap_event, NULL); + assert (rc == 0); + + /* in this case only scan response is allowed */ + + /* get mbuf for scan rsp data */ + data = os_msys_get_pkthdr(sizeof(ext_adv_pattern_1), 0); + assert(data); + + /* fill mbuf with scan rsp data */ + rc = os_mbuf_append(data, ext_adv_pattern_1, sizeof(ext_adv_pattern_1)); + assert(rc == 0); + + rc = ble_gap_ext_adv_set_data(instance, data); + assert (rc == 0); + + /* start advertising */ + rc = ble_gap_ext_adv_start(instance, 0, 0); + assert (rc == 0); +} +#else +/** + * Enables advertising with the following parameters: + * o General discoverable mode. + * o Undirected connectable mode. + */ +static void +bleprph_advertise(void) +{ + struct ble_gap_adv_params adv_params; + struct ble_hs_adv_fields fields; + const char *name; + int rc; + + /** + * Set the advertisement data included in our advertisements: + * o Flags (indicates advertisement type and other general info). + * o Advertising tx power. + * o Device name. + * o 16-bit service UUIDs (alert notifications). + */ + + memset(&fields, 0, sizeof fields); + + /* Advertise two flags: + * o Discoverability in forthcoming advertisement (general) + * o BLE-only (BR/EDR unsupported). + */ + fields.flags = BLE_HS_ADV_F_DISC_GEN | + BLE_HS_ADV_F_BREDR_UNSUP; + + /* Indicate that the TX power level field should be included; have the + * stack fill this value automatically. This is done by assigning the + * special value BLE_HS_ADV_TX_PWR_LVL_AUTO. + */ + fields.tx_pwr_lvl_is_present = 1; + fields.tx_pwr_lvl = BLE_HS_ADV_TX_PWR_LVL_AUTO; + + name = ble_svc_gap_device_name(); + fields.name = (uint8_t *)name; + fields.name_len = strlen(name); + fields.name_is_complete = 1; + + fields.uuids16 = (ble_uuid16_t[]) { + BLE_UUID16_INIT(GATT_SVR_SVC_ALERT_UUID) + }; + fields.num_uuids16 = 1; + fields.uuids16_is_complete = 1; + + rc = ble_gap_adv_set_fields(&fields); + if (rc != 0) { + MODLOG_DFLT(ERROR, "error setting advertisement data; rc=%d\n", rc); + return; + } + + /* Begin advertising. */ + memset(&adv_params, 0, sizeof adv_params); + adv_params.conn_mode = BLE_GAP_CONN_MODE_UND; + adv_params.disc_mode = BLE_GAP_DISC_MODE_GEN; + rc = ble_gap_adv_start(own_addr_type, NULL, BLE_HS_FOREVER, + &adv_params, bleprph_gap_event, NULL); + if (rc != 0) { + MODLOG_DFLT(ERROR, "error enabling advertisement; rc=%d\n", rc); + return; + } +} +#endif + +#if MYNEWT_VAL(BLE_POWER_CONTROL) +static void bleprph_power_control(uint16_t conn_handle) +{ + int rc; + + rc = ble_gap_read_remote_transmit_power_level(conn_handle, 0x01 ); // Attempting on LE 1M phy + assert (rc == 0); + + rc = ble_gap_set_transmit_power_reporting_enable(conn_handle, 0x1, 0x1); + assert (rc == 0); +} +#endif + +/** + * The nimble host executes this callback when a GAP event occurs. The + * application associates a GAP event callback with each connection that forms. + * bleprph uses the same callback for all connections. + * + * @param event The type of event being signalled. + * @param ctxt Various information pertaining to the event. + * @param arg Application-specified argument; unused by + * bleprph. + * + * @return 0 if the application successfully handled the + * event; nonzero on failure. The semantics + * of the return code is specific to the + * particular GAP event being signalled. + */ +static int +bleprph_gap_event(struct ble_gap_event *event, void *arg) +{ + struct ble_gap_conn_desc desc; + int rc; + + switch (event->type) { +#if defined(BLE_GAP_EVENT_LINK_ESTAB) + case BLE_GAP_EVENT_LINK_ESTAB: +#else + case BLE_GAP_EVENT_CONNECT: +#endif + /* A new connection was established or a connection attempt failed. */ + MODLOG_DFLT(INFO, "connection %s; status=%d ", + event->connect.status == 0 ? "established" : "failed", + event->connect.status); + if (event->connect.status == 0) { + rc = ble_gap_conn_find(event->connect.conn_handle, &desc); + assert(rc == 0); + bleprph_print_conn_desc(&desc); + } + MODLOG_DFLT(INFO, "\n"); + + if (event->connect.status != 0) { + /* Connection failed; resume advertising. */ +#if CONFIG_EXAMPLE_EXTENDED_ADV + ext_bleprph_advertise(); +#else + bleprph_advertise(); +#endif + } + +#if MYNEWT_VAL(BLE_POWER_CONTROL) + bleprph_power_control(event->connect.conn_handle); +#endif + return 0; + + case BLE_GAP_EVENT_DISCONNECT: + MODLOG_DFLT(INFO, "disconnect; reason=%d ", event->disconnect.reason); + bleprph_print_conn_desc(&event->disconnect.conn); + MODLOG_DFLT(INFO, "\n"); + + /* Connection terminated; resume advertising. */ +#if CONFIG_EXAMPLE_EXTENDED_ADV + ext_bleprph_advertise(); +#else + bleprph_advertise(); +#endif + return 0; + + case BLE_GAP_EVENT_CONN_UPDATE: + /* The central has updated the connection parameters. */ + MODLOG_DFLT(INFO, "connection updated; status=%d ", + event->conn_update.status); + rc = ble_gap_conn_find(event->conn_update.conn_handle, &desc); + assert(rc == 0); + bleprph_print_conn_desc(&desc); + MODLOG_DFLT(INFO, "\n"); + return 0; + + case BLE_GAP_EVENT_ADV_COMPLETE: + MODLOG_DFLT(INFO, "advertise complete; reason=%d", + event->adv_complete.reason); +#if CONFIG_EXAMPLE_EXTENDED_ADV + ext_bleprph_advertise(); +#else + bleprph_advertise(); +#endif + return 0; + + case BLE_GAP_EVENT_ENC_CHANGE: + /* Encryption has been enabled or disabled for this connection. */ + MODLOG_DFLT(INFO, "encryption change event; status=%d ", + event->enc_change.status); + rc = ble_gap_conn_find(event->enc_change.conn_handle, &desc); + assert(rc == 0); + bleprph_print_conn_desc(&desc); + MODLOG_DFLT(INFO, "\n"); + return 0; + + case BLE_GAP_EVENT_NOTIFY_TX: + MODLOG_DFLT(INFO, "notify_tx event; conn_handle=%d attr_handle=%d " + "status=%d is_indication=%d", + event->notify_tx.conn_handle, + event->notify_tx.attr_handle, + event->notify_tx.status, + event->notify_tx.indication); + return 0; + + case BLE_GAP_EVENT_SUBSCRIBE: + MODLOG_DFLT(INFO, "subscribe event; conn_handle=%d attr_handle=%d " + "reason=%d prevn=%d curn=%d previ=%d curi=%d\n", + event->subscribe.conn_handle, + event->subscribe.attr_handle, + event->subscribe.reason, + event->subscribe.prev_notify, + event->subscribe.cur_notify, + event->subscribe.prev_indicate, + event->subscribe.cur_indicate); + return 0; + + case BLE_GAP_EVENT_MTU: + MODLOG_DFLT(INFO, "mtu update event; conn_handle=%d cid=%d mtu=%d\n", + event->mtu.conn_handle, + event->mtu.channel_id, + event->mtu.value); + return 0; + + case BLE_GAP_EVENT_REPEAT_PAIRING: + /* We already have a bond with the peer, but it is attempting to + * establish a new secure link. This app sacrifices security for + * convenience: just throw away the old bond and accept the new link. + */ + + /* Delete the old bond. */ + rc = ble_gap_conn_find(event->repeat_pairing.conn_handle, &desc); + assert(rc == 0); + ble_store_util_delete_peer(&desc.peer_id_addr); + + /* Return BLE_GAP_REPEAT_PAIRING_RETRY to indicate that the host should + * continue with the pairing operation. + */ + return BLE_GAP_REPEAT_PAIRING_RETRY; + + case BLE_GAP_EVENT_PASSKEY_ACTION: + ESP_LOGI(tag, "PASSKEY_ACTION_EVENT started"); + struct ble_sm_io pkey = {0}; + int key = 0; + + if (event->passkey.params.action == BLE_SM_IOACT_DISP) { + pkey.action = event->passkey.params.action; + pkey.passkey = 123456; // This is the passkey to be entered on peer + ESP_LOGI(tag, "Enter passkey %" PRIu32 "on the peer side", pkey.passkey); + rc = ble_sm_inject_io(event->passkey.conn_handle, &pkey); + ESP_LOGI(tag, "ble_sm_inject_io result: %d", rc); + } else if (event->passkey.params.action == BLE_SM_IOACT_NUMCMP) { + ESP_LOGI(tag, "Passkey on device's display: %" PRIu32 , event->passkey.params.numcmp); + ESP_LOGI(tag, "Accept or reject the passkey through console in this format -> key Y or key N"); + pkey.action = event->passkey.params.action; + if (scli_receive_key(&key)) { + pkey.numcmp_accept = key; + } else { + pkey.numcmp_accept = 0; + ESP_LOGE(tag, "Timeout! Rejecting the key"); + } + rc = ble_sm_inject_io(event->passkey.conn_handle, &pkey); + ESP_LOGI(tag, "ble_sm_inject_io result: %d", rc); + } else if (event->passkey.params.action == BLE_SM_IOACT_OOB) { + static uint8_t tem_oob[16] = {0}; + pkey.action = event->passkey.params.action; + for (int i = 0; i < 16; i++) { + pkey.oob[i] = tem_oob[i]; + } + rc = ble_sm_inject_io(event->passkey.conn_handle, &pkey); + ESP_LOGI(tag, "ble_sm_inject_io result: %d", rc); + } else if (event->passkey.params.action == BLE_SM_IOACT_INPUT) { + ESP_LOGI(tag, "Enter the passkey through console in this format-> key 123456"); + pkey.action = event->passkey.params.action; + if (scli_receive_key(&key)) { + pkey.passkey = key; + } else { + pkey.passkey = 0; + ESP_LOGE(tag, "Timeout! Passing 0 as the key"); + } + rc = ble_sm_inject_io(event->passkey.conn_handle, &pkey); + ESP_LOGI(tag, "ble_sm_inject_io result: %d", rc); + } + return 0; + +#if MYNEWT_VAL(BLE_POWER_CONTROL) + case BLE_GAP_EVENT_TRANSMIT_POWER: + MODLOG_DFLT(INFO, "Transmit power event : status=%d conn_handle=%d reason=%d " + "phy=%d power_level=%x power_level_flag=%d delta=%d", + event->transmit_power.status, + event->transmit_power.conn_handle, + event->transmit_power.reason, + event->transmit_power.phy, + event->transmit_power.transmit_power_level, + event->transmit_power.transmit_power_level_flag, + event->transmit_power.delta); + return 0; + + case BLE_GAP_EVENT_PATHLOSS_THRESHOLD: + MODLOG_DFLT(INFO, "Pathloss threshold event : conn_handle=%d current path loss=%d " + "zone_entered =%d", + event->pathloss_threshold.conn_handle, + event->pathloss_threshold.current_path_loss, + event->pathloss_threshold.zone_entered); + return 0; +#endif + } + + return 0; +} + +static void +bleprph_on_reset(int reason) +{ + MODLOG_DFLT(ERROR, "Resetting state; reason=%d\n", reason); +} + +#if CONFIG_EXAMPLE_RANDOM_ADDR +static void +ble_app_set_addr(void) +{ + ble_addr_t addr; + int rc; + + /* generate new non-resolvable private address */ + rc = ble_hs_id_gen_rnd(0, &addr); + assert(rc == 0); + + /* set generated address */ + rc = ble_hs_id_set_rnd(addr.val); + + assert(rc == 0); +} +#endif + +static void +bleprph_on_sync(void) +{ + int rc; + +#if CONFIG_EXAMPLE_RANDOM_ADDR + /* Generate a non-resolvable private address. */ + ble_app_set_addr(); +#endif + + /* Make sure we have proper identity address set (public preferred) */ +#if CONFIG_EXAMPLE_RANDOM_ADDR + rc = ble_hs_util_ensure_addr(1); +#else + rc = ble_hs_util_ensure_addr(0); +#endif + assert(rc == 0); + + /* Figure out address to use while advertising (no privacy for now) */ + rc = ble_hs_id_infer_auto(0, &own_addr_type); + if (rc != 0) { + MODLOG_DFLT(ERROR, "error determining address type; rc=%d\n", rc); + return; + } + + /* Printing ADDR */ + uint8_t addr_val[6] = {0}; + rc = ble_hs_id_copy_addr(own_addr_type, addr_val, NULL); + + MODLOG_DFLT(INFO, "Device Address: "); + print_addr(addr_val); + MODLOG_DFLT(INFO, "\n"); + /* Begin advertising. */ +#if CONFIG_EXAMPLE_EXTENDED_ADV + ext_bleprph_advertise(); +#else + bleprph_advertise(); +#endif +} + +void bleprph_host_task(void *param) +{ + ESP_LOGI(tag, "BLE Host Task Started"); + /* This function will return only when nimble_port_stop() is executed */ + nimble_port_run(); + + nimble_port_freertos_deinit(); +} + +void +app_main(void) +{ + int rc; + + /* Initialize NVS — it is used to store PHY calibration data */ + esp_err_t ret = nvs_flash_init(); + if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { + ESP_ERROR_CHECK(nvs_flash_erase()); + ret = nvs_flash_init(); + } + ESP_ERROR_CHECK(ret); + + ret = nimble_port_init(); + if (ret != ESP_OK) { + ESP_LOGE(tag, "Failed to init nimble %d ", ret); + return; + } + /* Initialize the NimBLE host configuration. */ + ble_hs_cfg.reset_cb = bleprph_on_reset; + ble_hs_cfg.sync_cb = bleprph_on_sync; + ble_hs_cfg.gatts_register_cb = gatt_svr_register_cb; + ble_hs_cfg.store_status_cb = ble_store_util_status_rr; + + ble_hs_cfg.sm_io_cap = CONFIG_EXAMPLE_IO_TYPE; +#ifdef CONFIG_EXAMPLE_BONDING + ble_hs_cfg.sm_bonding = 1; + /* Enable the appropriate bit masks to make sure the keys + * that are needed are exchanged + */ + ble_hs_cfg.sm_our_key_dist |= BLE_SM_PAIR_KEY_DIST_ENC; + ble_hs_cfg.sm_their_key_dist |= BLE_SM_PAIR_KEY_DIST_ENC; +#endif +#ifdef CONFIG_EXAMPLE_MITM + ble_hs_cfg.sm_mitm = 1; +#endif +#ifdef CONFIG_EXAMPLE_USE_SC + ble_hs_cfg.sm_sc = 1; +#else + ble_hs_cfg.sm_sc = 0; +#endif +#ifdef CONFIG_EXAMPLE_RESOLVE_PEER_ADDR + /* Stores the IRK */ + ble_hs_cfg.sm_our_key_dist |= BLE_SM_PAIR_KEY_DIST_ID; + ble_hs_cfg.sm_their_key_dist |= BLE_SM_PAIR_KEY_DIST_ID; +#endif + + rc = gatt_svr_init(); + assert(rc == 0); + + /* Set the default device name. */ + rc = ble_svc_gap_device_name_set("nimble-bleprph"); + assert(rc == 0); + + /* XXX Need to have template for store */ + ble_store_config_init(); + + nimble_port_freertos_init(bleprph_host_task); + + /* Initialize command line interface to accept input from user */ + rc = scli_init(); + if (rc != ESP_OK) { + ESP_LOGE(tag, "scli_init() failed"); + } +} diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/sdkconfig.defaults b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/sdkconfig.defaults new file mode 100644 index 0000000..2e66a8a --- /dev/null +++ b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/sdkconfig.defaults @@ -0,0 +1,23 @@ +# Override some defaults so BT stack is enabled +# in this example + +# +# BT config +# +CONFIG_BT_ENABLED=y +CONFIG_BT_CONTROLLER_DISABLED=y +CONFIG_BT_BLUEDROID_ENABLED=n +CONFIG_BT_NIMBLE_ENABLED=y +CONFIG_BT_NIMBLE_TRANSPORT_UART=n + +# +# Wi-Fi Remote +# +CONFIG_ESP_WIFI_REMOTE_LIBRARY_HOSTED=y + +# +# Enable ESP Hosted BT +# Used as VHCI transport between BT Host and Controller +# +CONFIG_ESP_HOSTED_ENABLE_BT_NIMBLE=y +CONFIG_ESP_HOSTED_NIMBLE_HCI_VHCI=y diff --git a/resources/espressif__esp_hosted/external_examples/8d519870/slave/CMakeLists.txt b/resources/espressif__esp_hosted/external_examples/8d519870/slave/CMakeLists.txt new file mode 100644 index 0000000..7ae51de --- /dev/null +++ b/resources/espressif__esp_hosted/external_examples/8d519870/slave/CMakeLists.txt @@ -0,0 +1,34 @@ +# The following lines of boilerplate have to be in your project's CMakeLists +# in this exact order for cmake to work correctly +cmake_minimum_required(VERSION 3.5) + +include($ENV{IDF_PATH}/tools/cmake/project.cmake) +list(APPEND EXCLUDE_COMPONENTS lwip esp_netif) +#set(COMPONENTS main nvs_flash protocomm esp_rom) +set(COMPONENTS esp_timer esptool_py bootloader main nvs_flash esp_rom esp_wifi protocomm driver) +#set(COMPONENTS main nvs_flash protocomm esp_gdbstub) # incase gdbsub needed +project(network_adapter) +idf_build_set_property(COMPILE_OPTIONS "-fdiagnostics-color=always" APPEND) + +### add custom dependency for generated version header file +### reference: https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-guides/build-system.html#source-code-generation +if(EXISTS "${PROJECT_DIR}/main/coprocessor_fw_version.txt") + add_custom_command(OUTPUT "${PROJECT_DIR}/main/coprocessor_fw_version.h" + COMMAND ${CMAKE_COMMAND} -P "${PROJECT_DIR}/ExtractVersion.cmake" + DEPENDS "${PROJECT_DIR}/main/coprocessor_fw_version.txt" + VERBATIM) +elseif(EXISTS "${PROJECT_DIR}/../idf_component.yml") + add_custom_command(OUTPUT "${PROJECT_DIR}/main/coprocessor_fw_version.h" + COMMAND ${CMAKE_COMMAND} -P "${PROJECT_DIR}/ExtractVersion.cmake" + DEPENDS "${PROJECT_DIR}/../idf_component.yml" + VERBATIM) +else() + message(FATAL_ERROR "***** coprocessor_fw_version.txt and idf_component.yml NOT found.\nUnable to generate comprocessor fw version info to build") +endif() + +add_custom_target(version_header DEPENDS "${PROJECT_DIR}/main/coprocessor_fw_version.h") +add_dependencies(${PROJECT_NAME}.elf version_header) + +### clean up generated file when project is cleaned +set_property(DIRECTORY "${PROJECT_DIR}" APPEND PROPERTY + ADDITIONAL_CLEAN_FILES "${PROJECT_DIR}/main/coprocessor_fw_version.h") diff --git a/resources/espressif__esp_hosted/external_examples/8d519870/slave/ExtractVersion.cmake b/resources/espressif__esp_hosted/external_examples/8d519870/slave/ExtractVersion.cmake new file mode 100644 index 0000000..6d77c04 --- /dev/null +++ b/resources/espressif__esp_hosted/external_examples/8d519870/slave/ExtractVersion.cmake @@ -0,0 +1,43 @@ +### if code is from Component Registry, generate from coprocessor_fw_version.txt +### if code is from git, generate from top level idf_component.yml + +if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/main/coprocessor_fw_version.txt") + file(READ "${CMAKE_CURRENT_LIST_DIR}/main/coprocessor_fw_version.txt" VERSION_CONTENTS) + set(VERSION_REGEX "^([0-9]+).([0-9]+).([0-9]+)") + string(REGEX MATCH "${VERSION_REGEX}" VERSION_MATCH "${VERSION_CONTENTS}") + if(VERSION_MATCH) + set(VERSION_GENERATOR "coprocessor_fw_version.txt") + else() + message(FATAL_ERROR "version info not found in coprocessor_fw_version.txt") + endif() +elseif(EXISTS "${CMAKE_CURRENT_LIST_DIR}/../idf_component.yml") + file(READ "${CMAKE_CURRENT_LIST_DIR}/../idf_component.yml" VERSION_CONTENTS) + set(VERSION_REGEX "^version: \"([0-9]+).([0-9]+).([0-9]+)\"") + string(REGEX MATCH "${VERSION_REGEX}" VERSION_MATCH "${VERSION_CONTENTS}") + if(VERSION_MATCH) + set(VERSION_GENERATOR "idf_component.yml") + else() + message(FATAL_ERROR "version info not found in idf_component.yml") + endif() +else() + message(FATAL_ERROR "idf_component.yml not found") +endif() + +# generate header file from the version info +file(WRITE "${CMAKE_CURRENT_LIST_DIR}/main/coprocessor_fw_version.h" + "/* this is a generated file - do not modify\n" + " * generated from ${VERSION_GENERATOR} */\n" + "#ifndef __COPROCESSOR_FW_VERSION_H__\n" + "#define __COPROCESSOR_FW_VERSION_H__\n" + "#define PROJECT_VERSION_MAJOR_1 ${CMAKE_MATCH_1}\n" + "#define PROJECT_VERSION_MINOR_1 ${CMAKE_MATCH_2}\n" + "#define PROJECT_VERSION_PATCH_1 ${CMAKE_MATCH_3}\n" + "#endif\n") + +set(PROJECT_VERSION_MAJOR_1 "${CMAKE_MATCH_1}") +set(PROJECT_VERSION_MINOR_1 "${CMAKE_MATCH_2}") +set(PROJECT_VERSION_PATCH_1 "${CMAKE_MATCH_3}") + +message(*************************************************************************************) +message(" Building ESP-Hosted-MCU FW :: ${PROJECT_VERSION_MAJOR_1}.${PROJECT_VERSION_MINOR_1}.${PROJECT_VERSION_PATCH_1} ") +message(*************************************************************************************) diff --git a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/CMakeLists.txt b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/CMakeLists.txt new file mode 100644 index 0000000..b0d22bb --- /dev/null +++ b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/CMakeLists.txt @@ -0,0 +1,33 @@ +if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/common") + set(common_dir "${CMAKE_CURRENT_SOURCE_DIR}/common") +else() + set(common_dir "../../common") +endif() + +set(COMPONENT_SRCS "slave_control.c" "${common_dir}/proto/esp_hosted_rpc.pb-c.c" "protocomm_pserial.c" "app_main.c" "slave_bt.c" "mempool.c" "stats.c" "mempool_ll.c") +set(COMPONENT_ADD_INCLUDEDIRS "." "${common_dir}" "${common_dir}/log" "${common_dir}/proto" "${common_dir}/rpc" "${common_dir}/transport") + +# Select BT UART code based on IDF Target +if(CONFIG_IDF_TARGET_ESP32) + list(APPEND COMPONENT_SRCS slave_bt_uart_esp32.c) +elseif(CONFIG_IDF_TARGET_ESP32C3 OR CONFIG_IDF_TARGET_ESP32S3) + list(APPEND COMPONENT_SRCS slave_bt_uart_esp32c3_s3.c) +else() + list(APPEND COMPONENT_SRCS slave_bt_uart_esp32xx.c) +endif() + +if(CONFIG_ESP_SDIO_HOST_INTERFACE) + list(APPEND COMPONENT_SRCS sdio_slave_api.c) +elseif(CONFIG_ESP_SPI_HOST_INTERFACE) + list(APPEND COMPONENT_SRCS spi_slave_api.c) +elseif(CONFIG_ESP_SPI_HD_MODE) + list(APPEND COMPONENT_SRCS spi_hd_slave_api.c) +else(CONFIG_ESP_UART_HOST_INTERFACE) + list(APPEND COMPONENT_SRCS uart_slave_api.c) +endif() + +register_component() + +# Add directory of protocomm_priv.h to include paths +idf_component_get_property(protocomm_dir protocomm COMPONENT_DIR) +target_include_directories(${COMPONENT_LIB} PRIVATE "${protocomm_dir}/src/common") diff --git a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/Kconfig.projbuild b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/Kconfig.projbuild new file mode 100644 index 0000000..4025af2 --- /dev/null +++ b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/Kconfig.projbuild @@ -0,0 +1,845 @@ +menu "Example Configuration" + + choice ESP_HOST_DEV_BOARD + bool "Configure GPIOs based on an ESP Development Board" + depends on IDF_TARGET_ESP32C6 + default ESP_HOST_DEV_BOARD_NONE + help + "Preconfigures GPIOs to use based on an ESP Development Board" + + config ESP_HOST_DEV_BOARD_NONE + bool "No specific development board" + + config ESP_HOST_DEV_BOARD_P4_FUNC_BOARD + bool "ESP32-P4-Function-EV-Board" + + endchoice + + choice ESP_HOST_INTERFACE + bool "Transport layer" + default ESP_SDIO_HOST_INTERFACE if SOC_SDIO_SLAVE_SUPPORTED + default ESP_SPI_HOST_INTERFACE + help + Bus interface to be used for communication with the host + + config ESP_SPI_HOST_INTERFACE + bool "SPI Full-duplex" + help + Enable/Disable SPI Full-duplex host interface + + config ESP_SDIO_HOST_INTERFACE + bool "SDIO" + depends on SOC_SDIO_SLAVE_SUPPORTED + help + Enable/Disable SDIO host interface + + # SPI Half Duplex is not supported in ESP32 + config ESP_SPI_HD_HOST_INTERFACE + bool "SPI Half-duplex" + depends on !IDF_TARGET_ESP32 + help + Enable/Disable SPI Half-duplex host interface + + config ESP_UART_HOST_INTERFACE + bool "UART" + help + Enable/Disable UART host interface + endchoice + + menu "SPI Full-duplex Configuration" + depends on ESP_SPI_HOST_INTERFACE + + choice ESP_SPI_PRIV_MODE + bool "Slave SPI mode" + default ESP_SPI_PRIV_MODE_2 if IDF_TARGET_ESP32 + default ESP_SPI_PRIV_MODE_3 + + config ESP_SPI_PRIV_MODE_0 + bool "Slave SPI mode 0" + + config ESP_SPI_PRIV_MODE_1 + bool "Slave SPI mode 1" + + config ESP_SPI_PRIV_MODE_2 + bool "Slave SPI mode 2" + + config ESP_SPI_PRIV_MODE_3 + bool "Slave SPI mode 3" + endchoice + + config ESP_SPI_MODE + int + default 0 if ESP_SPI_PRIV_MODE_0 + default 1 if ESP_SPI_PRIV_MODE_1 + default 2 if ESP_SPI_PRIV_MODE_2 + default 3 if ESP_SPI_PRIV_MODE_3 + default 3 + + + choice SPI_CONTROLLER + bool "SPI controller to use" + default SPI_HSPI + + config SPI_HSPI + bool "FSPI/HSPI" + help + "HSPI/FSPI: SPI_controller_1" + + config SPI_VSPI + depends on IDF_TARGET_ESP32 + bool "VSPI" + help + "VSPI: SPI_controller_2" + + endchoice + + config ESP_SPI_CONTROLLER + int + default 2 if SPI_VSPI + default 1 + + menu "Hosted SPI GPIOs" + config ESP_SPI_HSPI_GPIO_MOSI + depends on SPI_HSPI + int "Slave GPIO pin for Host MOSI" + default 20 if ESP_HOST_DEV_BOARD_P4_FUNC_BOARD + default 13 if IDF_TARGET_ESP32 + default 11 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 + default 7 + help + SPI controller Host MOSI + + config ESP_SPI_HSPI_GPIO_MISO + depends on SPI_HSPI + int "Slave GPIO pin for Host MISO" + default 21 if ESP_HOST_DEV_BOARD_P4_FUNC_BOARD + default 12 if IDF_TARGET_ESP32 + default 13 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 + default 2 + help + SPI controller Host MISO + + config ESP_SPI_HSPI_GPIO_CLK + depends on SPI_HSPI + int "Slave GPIO pin for Host CLK" + default 19 if ESP_HOST_DEV_BOARD_P4_FUNC_BOARD + default 3 if IDF_TARGET_ESP32C5 + default 14 if IDF_TARGET_ESP32 + default 12 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 + default 6 + help + SPI controller Host CLK + + config ESP_SPI_HSPI_GPIO_CS + depends on SPI_HSPI + int "Slave GPIO pin for Host CS" + default 18 if ESP_HOST_DEV_BOARD_P4_FUNC_BOARD + default 15 if IDF_TARGET_ESP32 + default 10 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 + default 10 + help + SPI controller Host CS + + config ESP_SPI_VSPI_GPIO_MOSI + depends on SPI_VSPI + int "Slave GPIO pin for Host MOSI" + default 23 + help + SPI controller Host MOSI + + config ESP_SPI_VSPI_GPIO_MISO + depends on SPI_VSPI + int "Slave GPIO pin for Host MISO" + default 19 + help + SPI controller Host MISO + + config ESP_SPI_VSPI_GPIO_CLK + depends on SPI_VSPI + int "Slave GPIO pin for Host CLK" + default 18 + help + SPI controller Host CLK + + config ESP_SPI_VSPI_GPIO_CS + depends on SPI_VSPI + int "Slave GPIO pin for Host CS" + default 5 + help + SPI controller Host CS + + config ESP_SPI_GPIO_MOSI + int + default ESP_SPI_VSPI_GPIO_MOSI if SPI_VSPI + default ESP_SPI_HSPI_GPIO_MOSI + + config ESP_SPI_GPIO_MISO + int + default ESP_SPI_VSPI_GPIO_MISO if SPI_VSPI + default ESP_SPI_HSPI_GPIO_MISO + + config ESP_SPI_GPIO_CLK + int + default ESP_SPI_VSPI_GPIO_CLK if SPI_VSPI + default ESP_SPI_HSPI_GPIO_CLK + + config ESP_SPI_GPIO_CS + int + default ESP_SPI_VSPI_GPIO_CS if SPI_VSPI + default ESP_SPI_HSPI_GPIO_CS + + config ESP_SPI_GPIO_HANDSHAKE + int "Slave GPIO pin for handshake" + default 22 if ESP_HOST_DEV_BOARD_P4_FUNC_BOARD + default 4 if IDF_TARGET_ESP32C5 + default 3 if IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C6 + default 17 if IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32S2 + default 26 + help + Slave GPIO pin to use for handshake with other spi controller + + config ESP_SPI_GPIO_DATA_READY + int "Slave GPIO pin for data ready interrupt" + default 23 if ESP_HOST_DEV_BOARD_P4_FUNC_BOARD + default 0 if IDF_TARGET_ESP32C5 + default 13 if IDF_TARGET_ESP32C5 + default 4 + help + Slave GPIO pin for indicating host that SPI slave has data to be read by host + + config ESP_SPI_GPIO_RESET + int "Slave GPIO pin to reset itself" + default -1 + help + Host uses this pin to reset the slave ESP. To re-use ESP 'RST' or 'EN' GPIO, set value to -1 + endmenu + + config ESP_SPI_DEASSERT_HS_ON_CS + bool "Deassert Handshake when SPI CS is deasserted" + default y + help + Deassert Handshake and prepare a new SPI transaction only after + CS has been deasserted. This helps prevent data loss with MCUs + that delay deasserting CS after the end of a SPI transaction + by prematurely starting a new slave SPI transaction + since CS is detected by the slave as still asserted. + + config ESP_SPI_TX_Q_SIZE + int "ESP to Host SPI queue size" + default 10 if IDF_TARGET_ESP32 + default 6 if IDF_TARGET_ESP32C2 && BT_ENABLED + default 10 if IDF_TARGET_ESP32C2 + default 20 + help + Very small tx queue will lower ESP -- SPI --> Host data rate + + config ESP_SPI_RX_Q_SIZE + int "Host to ESP SPI queue size" + default 10 if IDF_TARGET_ESP32 + default 6 if IDF_TARGET_ESP32C2 && BT_ENABLED + default 7 if IDF_TARGET_ESP32C2 + default 20 + help + Very small RX queue will lower ESP <-- SPI -- Host data rate + + config ESP_SPI_CHECKSUM + bool "SPI checksum ENABLE/DISABLE" + default y + help + ENABLE/DISABLE software SPI checksum + endmenu + + menu "SDIO Configuration" + depends on ESP_SDIO_HOST_INTERFACE + + config ESP_SDIO_STREAMING_MODE + bool "Enable SDIO Streaming Mode" + default y + help + Enable Streaming Mode. Host to receive queued data from slave + as one stream instead of individual packets. This can improve + host SDIO read performance by doing one large read transaction + instead of many smaller read transactions. + + config ESP_SDIO_GPIO_RESET + int "Slave GPIO pin to reset itself" + default -1 + help + Host uses this pin to reset the slave ESP. To re-use ESP 'RST' or 'EN' GPIO, set value to -1 + + choice + prompt "SDIO Bus Speed" + default ESP_SDIO_HIGH_SPEED + help + Select the SDIO Slave Bus Speed. Actual speed in use depends on SDIO bus speed the SDIO Master can support + + config ESP_SDIO_DEFAULT_SPEED + bool "Default Speed (20 MHz)" + + config ESP_SDIO_HIGH_SPEED + bool "High Speed (40 MHz)" + endchoice + + # from /components/soc//include/soc/sdio_slave_pins.h + menu "Hosted SDIO GPIOs" + config ESP_SDIO_PIN_CMD + int "CMD GPIO number" + range 15 15 if IDF_TARGET_ESP32 + range 18 18 if IDF_TARGET_ESP32C6 + range 10 10 if IDF_TARGET_ESP32C5 + help + "Value cannot be configured. Displayed for reference." + + config ESP_SDIO_PIN_CLK + int "CLK GPIO number" + range 14 14 if IDF_TARGET_ESP32 + range 19 19 if IDF_TARGET_ESP32C6 + range 9 9 if IDF_TARGET_ESP32C5 + help + "Value cannot be configured. Displayed for reference." + + config ESP_SDIO_PIN_D0 + int "D0 GPIO number" + range 2 2 if IDF_TARGET_ESP32 + range 20 20 if IDF_TARGET_ESP32C6 + range 8 8 if IDF_TARGET_ESP32C5 + help + "Value cannot be configured. Displayed for reference." + + config ESP_SDIO_PIN_D1 + int "D1 GPIO number" + range 4 4 if IDF_TARGET_ESP32 + range 21 21 if IDF_TARGET_ESP32C6 + range 7 7 if IDF_TARGET_ESP32C5 + help + "Value cannot be configured. Displayed for reference." + + config ESP_SDIO_PIN_D2 + int "D2 GPIO number" + range 12 12 if IDF_TARGET_ESP32 + range 22 22 if IDF_TARGET_ESP32C6 + range 14 14 if IDF_TARGET_ESP32C5 + help + "Value cannot be configured. Displayed for reference." + + config ESP_SDIO_PIN_D3 + int "D3 GPIO number" + range 13 13 if IDF_TARGET_ESP32 + range 23 23 if IDF_TARGET_ESP32C6 + range 13 13 if IDF_TARGET_ESP32C5 + help + "Value cannot be configured. Displayed for reference." + endmenu + + choice + prompt "SDIO Slave Timing" + default ESP_SDIO_PSEND_PSAMPLE + help + Select the SDIO timing used by slave. Default value works with most + SDMMC controllers but if transfer errors are encountered, selecting a + different timing may help resolve the errors. + See https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/sdio_slave.html#_CPPv419sdio_slave_timing_t + for more information + + config ESP_SDIO_PSEND_PSAMPLE + bool "Send at positive edge, sample at positive edge" + + config ESP_SDIO_NSEND_PSAMPLE + bool "Send at negative edge, sample at positive edge" + + config ESP_SDIO_PSEND_NSAMPLE + bool "Send at positive edge, sample at negative edge" + + config ESP_SDIO_NSEND_NSAMPLE + bool "Send at negative edge, sample at negative edge" + endchoice + + config ESP_SDIO_TX_Q_SIZE + int "SDIO TX queue size" + default 20 + help + Very small TX queue will lower ESP --> SDIO -- Host data rate + + config ESP_SDIO_RX_Q_SIZE + int "SDIO RX queue size" + default 20 + help + Very small RX queue will lower ESP <-- SDIO -- Host data rate + + config ESP_SDIO_CHECKSUM + bool "SDIO checksum ENABLE/DISABLE" + default n + help + ENABLE/DISABLE software SDIO checksum + + endmenu + + menu "SPI Half-duplex Configuration" + depends on ESP_SPI_HD_HOST_INTERFACE + + choice ESP_SPI_HD_PRIV_MODE + bool "Slave SPI mode" + default ESP_SPI_HD_PRIV_MODE_3 + + config ESP_SPI_HD_PRIV_MODE_0 + bool "Slave SPI mode 0" + + config ESP_SPI_HD_PRIV_MODE_1 + bool "Slave SPI mode 1" + + config ESP_SPI_HD_PRIV_MODE_2 + bool "Slave SPI mode 2" + + config ESP_SPI_HD_PRIV_MODE_3 + bool "Slave SPI mode 3" + endchoice + + config ESP_SPI_HD_MODE + int + default 0 if ESP_SPI_HD_PRIV_MODE_0 + default 1 if ESP_SPI_HD_PRIV_MODE_1 + default 2 if ESP_SPI_HD_PRIV_MODE_2 + default 3 if ESP_SPI_HD_PRIV_MODE_3 + help + SPI Mode to use. The same mode must be used on both host and slave. + + choice ESP_SPI_HD_PRIV_INTERFACE_NUM_DATA_LINES + bool "Num Data Lines to use" + default ESP_SPI_HD_PRIV_INTERFACE_4_DATA_LINES + help + Number of Data Lines to use in the SPI HD interface + + config ESP_SPI_HD_PRIV_INTERFACE_4_DATA_LINES + bool "4 data lines" + + config ESP_SPI_HD_PRIV_INTERFACE_2_DATA_LINES + bool "2 data lines" + endchoice + + config ESP_SPI_HD_INTERFACE_NUM_DATA_LINES + int + default 4 if ESP_SPI_HD_PRIV_INTERFACE_4_DATA_LINES + default 2 if ESP_SPI_HD_PRIV_INTERFACE_2_DATA_LINES + + menu "GPIOs" + + config ESP_SPI_HD_GPIO_CS + int "Slave GPIO pin for Host CS" + default 18 if ESP_HOST_DEV_BOARD_P4_FUNC_BOARD + default 10 + help + SPI HD controller Host CS + + config ESP_SPI_HD_GPIO_CLK + int "Slave GPIO pin for Host CLK" + default 19 if ESP_HOST_DEV_BOARD_P4_FUNC_BOARD + default 3 if IDF_TARGET_ESP32C5 + default 6 + help + SPI HD controller Host CS + + config ESP_SPI_HD_GPIO_D0 + int "Slave GPIO pin for Host D0" + default 20 if ESP_HOST_DEV_BOARD_P4_FUNC_BOARD + default 7 + help + SPI HD controller Host D0 + + config ESP_SPI_HD_GPIO_D1 + int "Slave GPIO pin for Host D1" + default 21 if ESP_HOST_DEV_BOARD_P4_FUNC_BOARD + default 2 + help + SPI HD controller Host D1 + + config ESP_SPI_HD_GPIO_D2 + depends on ESP_SPI_HD_PRIV_INTERFACE_4_DATA_LINES + int "Slave GPIO pin for Host D2" + default 22 if ESP_HOST_DEV_BOARD_P4_FUNC_BOARD + default 5 + help + SPI HD controller Host D2 + + config ESP_SPI_HD_GPIO_D3 + depends on ESP_SPI_HD_PRIV_INTERFACE_4_DATA_LINES + int "Slave GPIO pin for Host D3" + default 23 if ESP_HOST_DEV_BOARD_P4_FUNC_BOARD + default 4 + help + SPI HD controller Host D3 + + config ESP_SPI_HD_GPIO_DATA_READY + int "Slave GPIO pin for Data Ready" + default 2 if ESP_HOST_DEV_BOARD_P4_FUNC_BOARD + default 0 if IDF_TARGET_ESP32C5 + default 11 + help + Slave GPIO pin for indicating host that SPI slave has data to be read by host + + choice ESP_SPI_HD_DATAREADY_GPIO_CONFIG + bool "DataReady GPIO Config" + default ESP_DR_ACTIVE_HIGH + help + Configure Data Ready to be active high (default) or active low + + config ESP_DR_ACTIVE_HIGH + bool "Active High" + config ESP_DR_ACTIVE_LOW + bool "Active Low" + endchoice + + config ESP_SPI_HD_GPIO_RESET + int "Slave GPIO pin to reset itself" + default -1 + help + Host uses this pin to reset the slave ESP. To re-use ESP 'RST' or 'EN' GPIO, set value to -1 + + endmenu + + config ESP_SPI_HD_Q_SIZE + int "Queue size" + default 12 if IDF_TARGET_ESP32C2 + default 10 if IDF_TARGET_ESP32C5 + default 20 + help + Very small queue will lower SPI HD data rate + + config ESP_SPI_HD_CHECKSUM + bool "Checksum ENABLE/DISABLE" + default y + help + ENABLE/DISABLE SPI HD software checksum + + endmenu + + menu "UART Configuration" + depends on ESP_UART_HOST_INTERFACE + + config ESP_UART_PORT + int "UART Port to Use" + default 1 + range 0 2 if IDF_TARGET_ESP32 + range 0 1 if IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C5 || IDF_TARGET_ESP32C6 + range 0 2 if IDF_TARGET_ESP32C61 + range 0 1 if IDF_TARGET_ESP32S2 + range 0 2 if IDF_TARGET_ESP32S3 + help + Select UART Port to Use. Do not select the UART Port used for console output (if enabled) + + config ESP_UART_PIN_TX + int "TX GPIO number" + default 13 if IDF_TARGET_ESP32 + default 5 if IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C3 + default 14 if IDF_TARGET_ESP32C5 + default 21 if IDF_TARGET_ESP32C6 + default 5 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 + help + GPIO used for UART TX + + config ESP_UART_PIN_RX + int "RX GPIO number" + default 12 if IDF_TARGET_ESP32 + default 4 if IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C3 + default 13 if IDF_TARGET_ESP32C5 + default 20 if IDF_TARGET_ESP32C6 + default 4 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 + help + GPIO used for UART RX + + config ESP_UART_BAUDRATE + int "Baud Rate" + default 921600 + range 9600 3500000 + help + Baud Rate to Use. Make sure Hardware supports the rate. Standard rates are 9600, 19200, 38400, 57600, 115200, 460800, 921600 + + config ESP_UART_NUM_DATA_BITS + int "Number of Data Bits" + default 8 + range 5 8 + help + Number of Data Bits to use + + choice ESP_UART_PRIV_PARITY + bool "Parity" + + config ESP_UART_PRIV_PARITY_NONE + bool "None" + + config ESP_UART_PRIV_PARITY_EVEN + bool "Even" + + config ESP_UART_PRIV_PARITY_ODD + bool "Odd" + endchoice + + config ESP_UART_PARITY + int + default 0 if ESP_UART_PRIV_PARITY_NONE + default 1 if ESP_UART_PRIV_PARITY_EVEN + default 2 if ESP_UART_PRIV_PARITY_ODD + + choice ESP_UART_PRIV_STOP_BITS + bool "Number of Stop Bits" + + config ESP_UART_PRIV_STOP_BITS_1 + bool "1" + + config ESP_UART_PRIV_STOP_BITS_1_5 + bool "1.5" + + config ESP_UART_PRIV_STOP_BITS_2 + bool "2" + endchoice + + config ESP_UART_STOP_BITS + int + default 0 if ESP_UART_PRIV_STOP_BITS_1 + default 1 if ESP_UART_PRIV_STOP_BITS_1_5 + default 2 if ESP_UART_PRIV_STOP_BITS_2 + + config ESP_UART_GPIO_RESET + int "Slave GPIO pin to reset itself" + default -1 + help + Host uses this pin to reset the slave ESP. To re-use ESP 'RST' or 'EN' GPIO, set value to -1 + + config ESP_UART_TX_Q_SIZE + int "Tx Queue Size" + default 5 + help + UART rates are low, so large queue sizes are not required + + config ESP_UART_RX_Q_SIZE + int "Rx Queue Size" + default 5 + help + UART rates are low, so large queue sizes are not required + + config ESP_UART_CHECKSUM + bool "UART checksum ENABLE/DISABLE" + default y + help + ENABLE/DISABLE software UART checksum + endmenu + + config ESP_GPIO_SLAVE_RESET + int + default ESP_SPI_GPIO_RESET if ESP_SPI_HOST_INTERFACE + default ESP_SDIO_GPIO_RESET if ESP_SDIO_HOST_INTERFACE + default ESP_SPI_HD_GPIO_RESET if ESP_SPI_HD_HOST_INTERFACE + default ESP_UART_GPIO_RESET if ESP_UART_HOST_INTERFACE + + # HCI UART menu for ESP32-C3/S3 + menu "HCI UART Settings" + depends on BT_CTRL_HCI_MODE_UART_H4 && (IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3) + + # only S3 has two UART ports to select from + config ESP_HOSTED_PRIV_BT_UART_PORT_ESP32_S3 + int "HCI UART Port" + depends on IDF_TARGET_ESP32S3 + default 1 + range 1 2 + help + UART Port for HCI + + config ESP_HOSTED_BT_UART_PORT_ESP32_C3_S3 + int + default ESP_HOSTED_PRIV_BT_UART_PORT_ESP32_S3 if IDF_TARGET_ESP32S3 + default 1 + + config ESP_HOSTED_BT_UART_BAUDRATE_ESP32_C3_S3 + int "HCI UART Baudrate" + range 115200 921600 + default 921600 + help + UART Baudrate for HCI. Please use standard baudrate. + + config ESP_HOSTED_BT_UART_TX_PIN_ESP32_C3_S3 + int "HCI UART Tx Pin" + default 5 if IDF_TARGET_ESP32C3 + default 16 + help + UART Tx Pin for HCI + + config ESP_HOSTED_BT_UART_RX_PIN_ESP32_C3_S3 + int "HCI UART Rx Pin" + default 18 + help + UART Rx Pin for HCI + + choice ESP_HOSTED_PRIV_BT_UART_FLOWCONTROL_ESP32_C3_S3 + bool "HCI UART Flow Control" + default ESP_HOSTED_BT_UART_FLOWCONTROL_DISABLED + + config ESP_HOSTED_BT_UART_FLOWCONTROL_DISABLED + bool "Disabled" + + config ESP_HOSTED_BT_UART_FLOWCONTROL_ENABLED + bool "Enabled" + endchoice + + config ESP_HOSTED_BT_UART_FLOWCONTROL_ESP32_C3_S3 + int + default 3 if ESP_HOSTED_BT_UART_FLOWCONTROL_ENABLED + default 0 + + config ESP_HOSTED_BT_UART_RTS_PIN_ESP32_C3_S3 + depends on ESP_HOSTED_BT_UART_FLOWCONTROL_ENABLED + int "HCI UART RTS Pin" + default 19 + help + UART RTS Pin for HCI + + config ESP_HOSTED_BT_UART_CTS_PIN_ESP32_C3_S3 + depends on ESP_HOSTED_BT_UART_FLOWCONTROL_ENABLED + int "HCI UART CTS Pin" + default 1 if IDF_TARGET_ESP32C3 + default 20 + help + UART CTS Pin for HCI + + endmenu + + # HCI UART menu for ESP32 + menu "HCI UART Settings" + depends on BTDM_CTRL_HCI_MODE_UART_H4 && IDF_TARGET_ESP32 + + config ESP_HOSTED_BT_UART_TX_PIN_ESP32 + int "HCI UART Tx Pin" + default 5 + help + UART Tx Pin for HCI + + config ESP_HOSTED_BT_UART_RX_PIN_ESP32 + int "HCI UART Rx Pin" + default 18 + help + UART Rx Pin for HCI + + config ESP_HOSTED_BT_UART_RTS_PIN_ESP32 + depends on BTDM_CTRL_HCI_UART_FLOW_CTRL_EN + int "HCI UART RTS Pin" + default 19 + help + UART RTS Pin for HCI + + config ESP_HOSTED_BT_UART_CTS_PIN_ESP32 + depends on BTDM_CTRL_HCI_UART_FLOW_CTRL_EN + int "HCI UART CTS Pin" + default 23 + help + UART CTS Pin for HCI + + comment "HCI UART Settings from Bluetooth Component" + comment "To change Port, Baud Rate, Flow Control, select Component config ---> Bluetooth ---> Controller Options ---> HCI Config" + + config ESP_HOSTED_BT_UART_PORT_ESP32 + int "HCI UART Port" + range BTDM_CTRL_HCI_UART_NO BTDM_CTRL_HCI_UART_NO + help + UART Port for HCI + + config ESP_HOSTED_BT_UART_BAUDRATE_ESP32 + int "HCI UART Baudrate" + range BTDM_CTRL_HCI_UART_BAUDRATE BTDM_CTRL_HCI_UART_BAUDRATE + help + UART Baudrate for HCI. Please use standard baudrate. + + endmenu + + # HCI UART menu for other ESP32 chips + menu "HCI UART Settings" + depends on BT_LE_HCI_INTERFACE_USE_UART && !IDF_TARGET_ESP32 && !IDF_TARGET_ESP32C3 && !IDF_TARGET_ESP32S3 + comment "HCI UART Settings from Bluetooth Component" + comment "To change, select Component config ---> Bluetooth ---> Controller Options ---> HCI Config" + + config ESP_HOSTED_BT_UART_PORT + int "HCI UART Port" + range BT_LE_HCI_UART_PORT BT_LE_HCI_UART_PORT # kconfig ignore: multiple-definition + help + UART Port for HCI + + config ESP_HOSTED_BT_UART_TX_PIN + int "HCI UART Tx Pin" + range BT_LE_HCI_UART_TX_PIN BT_LE_HCI_UART_TX_PIN + help + UART Tx Pin for HCI + + config ESP_HOSTED_BT_UART_RX_PIN + int "HCI UART Rx Pin" + range BT_LE_HCI_UART_RX_PIN BT_LE_HCI_UART_RX_PIN + help + UART Rx Pin for HCI + + config ESP_HOSTED_BT_UART_RTS_PIN + depends on BT_LE_HCI_UART_FLOWCTRL + int "HCI UART RTS Pin" + range BT_LE_HCI_UART_RTS_PIN BT_LE_HCI_UART_RTS_PIN + help + UART RTS Pin for HCI + + config ESP_HOSTED_BT_UART_CTS_PIN + depends on BT_LE_HCI_UART_FLOWCTRL + int "HCI UART CTS Pin" + range BT_LE_HCI_UART_CTS_PIN BT_LE_HCI_UART_CTS_PIN + help + UART CTS Pin for HCI + + config ESP_HOSTED_BT_UART_BAUDRATE + int "HCI UART Baudrate" + range BT_LE_HCI_UART_BAUD BT_LE_HCI_UART_BAUD + help + UART Baudrate for HCI. Please use standard baudrate. + + endmenu + + config ESP_DEFAULT_TASK_STACK_SIZE + int "ESP-Hosted task stack size" + default 4096 + help + Default task size of ESP-Hosted tasks + + config ESP_DEFAULT_TASK_PRIO + int "ESP-Hosted task priority" + default 22 + help + Default task priority of ESP-Hosted tasks + + config ESP_CACHE_MALLOC + bool "Enable Mempool" + default y + help + Mempool will help to alloc buffer without going to heap for every memory allocation or free + + config ESP_OTA_WORKAROUND + bool "OTA workaround - Add sleeps while OTA write" + default y + help + Enable/disable sleeps while OTA operations + + menu "Hosted Debugging" + config ESP_RAW_THROUGHPUT_TRANSPORT + bool "RawTP: Transport level throughput debug test" + default n + help + Find max transport performance which helps to assess stability of porting done + + config ESP_RAW_TP_ESP_TO_HOST_PKT_LEN + depends on ESP_RAW_THROUGHPUT_TRANSPORT + int "RawTP: ESP to Host packet size" + range 1 1500 + default 1460 + + config ESP_RAW_TP_REPORT_INTERVAL + depends on ESP_RAW_THROUGHPUT_TRANSPORT + int "RawTP: periodic duration to report stats accumulated" + default 10 + + config ESP_PKT_STATS + bool "Transport level packet stats" + default n + help + On comparing with slave packet stats helps to understand any packet loss at hosted + endmenu +endmenu diff --git a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/app_main.c b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/app_main.c new file mode 100644 index 0000000..106f954 --- /dev/null +++ b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/app_main.c @@ -0,0 +1,945 @@ +/* + * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include +#include +#include "esp_log.h" +#include "sys/queue.h" +#include "soc/soc.h" +#include "nvs_flash.h" +#include "sdkconfig.h" +#include +#include +#ifndef CONFIG_IDF_TARGET_ARCH_RISCV +#include "xtensa/core-macros.h" +#endif +#include "esp_private/wifi.h" +#include "interface.h" +#include "esp_wpa.h" +#include "app_main.h" +#include "driver/gpio.h" + +#include "freertos/task.h" +#include "freertos/queue.h" +#if CONFIG_BT_ENABLED +#include "esp_bt.h" +#endif +#include "endian.h" + +#include +#include "protocomm_pserial.h" +#include "slave_control.h" +#include "slave_bt.h" +#include "stats.h" +#include "esp_mac.h" +#include "esp_timer.h" +#include "mempool.h" + +#include "coprocessor_fw_version.h" + +static const char *TAG = "fg_mcu_slave"; + + +//#define BYPASS_TX_PRIORITY_Q 1 +#ifdef CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS +#define STATS_TICKS pdMS_TO_TICKS(1000*2) +#define ARRAY_SIZE_OFFSET 5 +#endif + +#define UNKNOWN_RPC_MSG_ID 0 + +#if CONFIG_ESP_SPI_HOST_INTERFACE + #ifdef CONFIG_IDF_TARGET_ESP32S2 + #define TO_HOST_QUEUE_SIZE 5 + #else + #define TO_HOST_QUEUE_SIZE 20 + #endif +#else + #define TO_HOST_QUEUE_SIZE 20 +#endif + +#define ETH_DATA_LEN 1500 +#define MAX_WIFI_STA_TX_RETRY 6 + +volatile uint8_t datapath = 0; +volatile uint8_t station_connected = 0; +volatile uint8_t softap_started = 0; + +interface_context_t *if_context = NULL; +interface_handle_t *if_handle = NULL; +slave_config_t slv_cfg_g; +slave_state_t slv_state_g; + +#if !BYPASS_TX_PRIORITY_Q +static QueueHandle_t meta_to_host_queue = NULL; +static QueueHandle_t to_host_queue[MAX_PRIORITY_QUEUES] = {NULL}; +#endif + + +static protocomm_t *pc_pserial; + +static struct rx_data { + uint8_t valid; + uint16_t cur_seq_no; + int len; + uint8_t data[4096]; +} r; + +uint8_t ap_mac[BSSID_BYTES_SIZE] = {0}; + +#if CONFIG_ESP_UART_HOST_INTERFACE && BLUETOOTH_UART +#error "Hosted UART Interface cannot be used with Bluetooth HCI over UART" +#endif + +static void print_firmware_version() +{ + ESP_LOGI(TAG, "*********************************************************************"); + ESP_LOGI(TAG, " ESP-Hosted-MCU Slave FW version :: %d.%d.%d ", + PROJECT_VERSION_MAJOR_1, PROJECT_VERSION_MINOR_1, PROJECT_VERSION_PATCH_1); +#if CONFIG_ESP_SPI_HOST_INTERFACE + #if BLUETOOTH_UART + ESP_LOGI(TAG, " Transport used :: SPI + UART "); + #else + ESP_LOGI(TAG, " Transport used :: SPI only "); + #endif +#elif CONFIG_ESP_SPI_HD_HOST_INTERFACE + #if BLUETOOTH_UART + ESP_LOGI(TAG, " Transport used :: SPI HD + UART "); + #else + ESP_LOGI(TAG, " Transport used :: SPI HD only "); + #endif +#elif CONFIG_ESP_UART_HOST_INTERFACE + ESP_LOGI(TAG, " Transport used :: UART only "); +#else + #if BLUETOOTH_UART + ESP_LOGI(TAG, " Transport used :: SDIO + UART "); + #else + ESP_LOGI(TAG, " Transport used :: SDIO only "); + #endif +#endif + ESP_LOGI(TAG, "*********************************************************************"); +} + +static uint8_t get_capabilities(void) +{ + uint8_t cap = 0; + + ESP_LOGI(TAG, "Supported features are:"); +#if CONFIG_ESP_SPI_HOST_INTERFACE + ESP_LOGI(TAG, "- WLAN over SPI"); + cap |= ESP_WLAN_SPI_SUPPORT; +#elif CONFIG_ESP_SDIO_HOST_INTERFACE + ESP_LOGI(TAG, "- WLAN over SDIO"); + cap |= ESP_WLAN_SDIO_SUPPORT; +#endif + +#if CONFIG_ESP_SPI_CHECKSUM || CONFIG_ESP_SDIO_CHECKSUM || CONFIG_ESP_SPI_HD_CHECKSUM || CONFIG_ESP_UART_CHECKSUM + cap |= ESP_CHECKSUM_ENABLED; +#endif + + cap |= get_bluetooth_capabilities(); + ESP_LOGI(TAG, "capabilities: 0x%x", cap); + + return cap; +} + +static uint32_t get_capabilities_ext(void) +{ + uint32_t ext_cap = 0; + + ESP_LOGI(TAG, "Supported extended features are:"); +#if CONFIG_ESP_SPI_HD_HOST_INTERFACE + +#if (CONFIG_ESP_SPI_HD_INTERFACE_NUM_DATA_LINES == 4) + ESP_LOGI(TAG, "- SPI HD 4-bit interface"); + ext_cap |= ESP_SPI_HD_INTERFACE_SUPPORT_4_DATA_LINES; +#elif (CONFIG_ESP_SPI_HD_INTERFACE_NUM_DATA_LINES == 2) + ESP_LOGI(TAG, "- SPI HD 2-bit interface"); + ext_cap |= ESP_SPI_HD_INTERFACE_SUPPORT_2_DATA_LINES; +#else +#error "Invalid SPI HD Number of Data Bits configuration" +#endif + + ESP_LOGI(TAG, "- WLAN over SPI HD"); + ext_cap |= ESP_WLAN_SUPPORT; +#endif + +#if CONFIG_ESP_UART_HOST_INTERFACE + ESP_LOGI(TAG, "- WLAN over UART"); + ext_cap |= ESP_WLAN_UART_SUPPORT; +#endif + +#ifdef CONFIG_BT_ENABLED + ext_cap |= get_bluetooth_ext_capabilities(); +#endif + ESP_LOGI(TAG, "extended capabilities: 0x%"PRIx32, ext_cap); + + return ext_cap; +} + +esp_err_t wlan_ap_rx_callback(void *buffer, uint16_t len, void *eb) +{ + interface_buffer_handle_t buf_handle = {0}; + + if (!buffer || !eb || !datapath) { + if (eb) { + esp_wifi_internal_free_rx_buffer(eb); + } + return ESP_OK; + } + ESP_HEXLOGV("AP_Get", buffer, len); + +#if 0 + /* Only enable this is you want to avoid multi and bradcast + * traffic to be reduced from stations to softap + */ + uint8_t * ap_buf = buffer; + /* Check destination address against self address */ + if (memcmp(ap_buf, ap_mac, BSSID_BYTES_SIZE)) { + /* Check for multicast or broadcast address */ + if (!(ap_buf[0] & 1)) + goto DONE; + } +#endif + + buf_handle.if_type = ESP_AP_IF; + buf_handle.if_num = 0; + buf_handle.payload_len = len; + buf_handle.payload = buffer; + buf_handle.wlan_buf_handle = eb; + buf_handle.free_buf_handle = esp_wifi_internal_free_rx_buffer; + + if (send_to_host_queue(&buf_handle, PRIO_Q_OTHERS)) + goto DONE; + + return ESP_OK; + +DONE: + esp_wifi_internal_free_rx_buffer(eb); + return ESP_OK; +} + +esp_err_t wlan_sta_rx_callback(void *buffer, uint16_t len, void *eb) +{ + interface_buffer_handle_t buf_handle = {0}; + + if (!buffer || !eb || !datapath) { + if (eb) { + esp_wifi_internal_free_rx_buffer(eb); + } + return ESP_OK; + } + ESP_HEXLOGV("STA_Get", buffer, len); + + buf_handle.if_type = ESP_STA_IF; + buf_handle.if_num = 0; + buf_handle.payload_len = len; + buf_handle.payload = buffer; + buf_handle.wlan_buf_handle = eb; + buf_handle.free_buf_handle = esp_wifi_internal_free_rx_buffer; + +#if ESP_PKT_STATS + pkt_stats.sta_sh_in++; +#endif + + if (send_to_host_queue(&buf_handle, PRIO_Q_OTHERS)) + goto DONE; + + + return ESP_OK; + +DONE: + esp_wifi_internal_free_rx_buffer(eb); + return ESP_OK; +} + +void process_tx_pkt(interface_buffer_handle_t *buf_handle) +{ + /* Check if data path is not yet open */ + if (!datapath) { + /* Post processing */ + if (buf_handle->free_buf_handle && buf_handle->priv_buffer_handle) { + buf_handle->free_buf_handle(buf_handle->priv_buffer_handle); + buf_handle->priv_buffer_handle = NULL; + } + ESP_LOGD(TAG, "Data path stopped"); + usleep(100*1000); + return; + } + if (if_context && if_context->if_ops && if_context->if_ops->write) { + if_context->if_ops->write(if_handle, buf_handle); + } + /* Post processing */ + if (buf_handle->free_buf_handle && buf_handle->priv_buffer_handle) { + buf_handle->free_buf_handle(buf_handle->priv_buffer_handle); + buf_handle->priv_buffer_handle = NULL; + } +} + +#if !BYPASS_TX_PRIORITY_Q +/* Send data to host */ +void send_task(void* pvParameters) +{ + uint8_t queue_type = 0; + interface_buffer_handle_t buf_handle = {0}; + + while (1) { + + if (!datapath) { + usleep(100*1000); + continue; + } + + if (xQueueReceive(meta_to_host_queue, &queue_type, portMAX_DELAY)) + if (xQueueReceive(to_host_queue[queue_type], &buf_handle, portMAX_DELAY)) + process_tx_pkt(&buf_handle); + } +} +#endif + +void parse_protobuf_req(void) +{ + protocomm_pserial_data_ready(pc_pserial, r.data, + r.len, UNKNOWN_RPC_MSG_ID); +} + +void send_event_to_host(int event_id) +{ +#if ESP_PKT_STATS + pkt_stats.serial_tx_evt++; +#endif + protocomm_pserial_data_ready(pc_pserial, NULL, 0, event_id); +} + +void send_event_data_to_host(int event_id, void *data, int size) +{ +#if ESP_PKT_STATS + pkt_stats.serial_tx_evt++; +#endif + protocomm_pserial_data_ready(pc_pserial, data, size, event_id); +} + +void process_serial_rx_pkt(uint8_t *buf) +{ + struct esp_payload_header *header = NULL; + uint16_t payload_len = 0; + uint8_t *payload = NULL; + int rem_buff_size; + + header = (struct esp_payload_header *) buf; + payload_len = le16toh(header->len); + payload = buf + le16toh(header->offset); + rem_buff_size = sizeof(r.data) - r.len; + + ESP_HEXLOGV("serial_rx", payload, payload_len); + + while (r.valid) + { + ESP_LOGI(TAG,"More segment: %u curr seq: %u header seq: %u\n", + header->flags & MORE_FRAGMENT, r.cur_seq_no, header->seq_num); + vTaskDelay(10); + } + + if (!r.len) { + /* New Buffer */ + r.cur_seq_no = le16toh(header->seq_num); + } + + if (header->seq_num != r.cur_seq_no) { + /* Sequence number mismatch */ + r.valid = 1; + parse_protobuf_req(); + return; + } + + memcpy((r.data + r.len), payload, min(payload_len, rem_buff_size)); + r.len += min(payload_len, rem_buff_size); + + if (!(header->flags & MORE_FRAGMENT)) { + /* Received complete buffer */ + r.valid = 1; + parse_protobuf_req(); + } +} + + +static int host_to_slave_reconfig(uint8_t *evt_buf, uint16_t len) +{ + uint8_t len_left = len, tag_len; + uint8_t *pos; + + if (!evt_buf) + return ESP_FAIL; + + pos = evt_buf; + ESP_LOGD(TAG, "Init event length: %u", len); + if (len > 64) { + ESP_LOGE(TAG, "Init event length: %u", len); +#if CONFIG_ESP_SPI_HOST_INTERFACE + ESP_LOGE(TAG, "Seems incompatible SPI mode try changing SPI mode. Asserting for now."); +#endif + assert(len < 64); + } + + while (len_left) { + tag_len = *(pos + 1); + + if (*pos == HOST_CAPABILITIES) { + + ESP_LOGI(TAG, "Host capabilities: %2x", *pos); + + } else if (*pos == RCVD_ESP_FIRMWARE_CHIP_ID) { + + if (CONFIG_IDF_FIRMWARE_CHIP_ID != *(pos+2)) { + ESP_LOGE(TAG, "Chip id returned[%u] doesn't match with chip id sent[%u]", + *(pos+2), CONFIG_IDF_FIRMWARE_CHIP_ID); + } + + } else if (*pos == SLV_CONFIG_TEST_RAW_TP) { +#if TEST_RAW_TP + switch (*(pos + 2)) { + + case ESP_TEST_RAW_TP__ESP_TO_HOST: + ESP_LOGI(TAG, "Raw TP ESP --> Host"); + /* TODO */ + break; + + case ESP_TEST_RAW_TP__HOST_TO_ESP: + ESP_LOGI(TAG, "Raw TP ESP <-- Host"); + /* TODO */ + break; + + case ESP_TEST_RAW_TP__BIDIRECTIONAL: + ESP_LOGI(TAG, "Raw TP ESP <--> Host"); + /* TODO */ + break; + + default: + ESP_LOGW(TAG, "Unsupported Raw TP config"); + } + + process_test_capabilities(*(pos + 2)); +#else + if (*(pos + 2)) + ESP_LOGW(TAG, "Host requested raw throughput testing, but not enabled in slave"); +#endif + } else if (*pos == SLV_CONFIG_THROTTLE_HIGH_THRESHOLD) { + + slv_cfg_g.throttle_high_threshold = *(pos + 2); + ESP_LOGI(TAG, "ESP<-Host high data throttle threshold [%u%%]", + slv_cfg_g.throttle_high_threshold); + + /* Warn if FreeRTOS tick is small */ + if ((slv_cfg_g.throttle_low_threshold > 0) && + (CONFIG_FREERTOS_HZ < 1000)) { + ESP_LOGW(TAG, "FreeRTOS tick[%d]<1000. Enabling throttling with lower FrerRTOS tick may result in lower peak data throughput", (int) CONFIG_FREERTOS_HZ); + } + + } else if (*pos == SLV_CONFIG_THROTTLE_LOW_THRESHOLD) { + + slv_cfg_g.throttle_low_threshold = *(pos + 2); + ESP_LOGI(TAG, "ESP<-Host low data throttle threshold [%u%%]", + slv_cfg_g.throttle_low_threshold); + + } else { + + ESP_LOGD(TAG, "Unsupported H->S config: %2x", *pos); + + } + + pos += (tag_len+2); + len_left -= (tag_len+2); + } + + return ESP_OK; +} + +static void process_priv_pkt(uint8_t *payload, uint16_t payload_len) +{ + int ret = 0; + struct esp_priv_event *event; + + if (!payload || !payload_len) + return; + + event = (struct esp_priv_event *) payload; + + if (event->event_type == ESP_PRIV_EVENT_INIT) { + + ESP_LOGI(TAG, "Slave init_config received from host"); + ESP_HEXLOGD("init_config", event->event_data, event->event_len); + + ret = host_to_slave_reconfig(event->event_data, event->event_len); + if (ret) { + ESP_LOGE(TAG, "failed to init event\n\r"); + } + } else { + ESP_LOGW(TAG, "Drop unknown event\n\r"); + } +} + +void process_rx_pkt(interface_buffer_handle_t *buf_handle) +{ + struct esp_payload_header *header = NULL; + uint8_t *payload = NULL; + uint16_t payload_len = 0; + int ret = 0; + int retry_wifi_tx = MAX_WIFI_STA_TX_RETRY; + + header = (struct esp_payload_header *) buf_handle->payload; + payload = buf_handle->payload + le16toh(header->offset); + payload_len = le16toh(header->len); + + ESP_HEXLOGD("rx_new", buf_handle->payload, min(32,buf_handle->payload_len)); + + if (buf_handle->if_type == ESP_STA_IF && station_connected) { + /* Forward data to wlan driver */ + do { + ret = esp_wifi_internal_tx(ESP_IF_WIFI_STA, payload, payload_len); + + /* Delay only if throttling is enabled */ + if (ret && + slv_cfg_g.throttle_high_threshold && + (retry_wifi_tx<(MAX_WIFI_STA_TX_RETRY/2))) { + vTaskDelay(2); + } + + retry_wifi_tx--; + } while (ret && retry_wifi_tx); + + ESP_HEXLOGV("STA_Put", payload, payload_len); + if (ESP_OK == ret) { +#if ESP_PKT_STATS + pkt_stats.hs_bus_sta_out++; +#endif + } else { +#if ESP_PKT_STATS + pkt_stats.hs_bus_sta_fail++; +#endif + } + } else if (buf_handle->if_type == ESP_AP_IF && softap_started) { + /* Forward data to wlan driver */ + esp_wifi_internal_tx(ESP_IF_WIFI_AP, payload, payload_len); + ESP_HEXLOGV("AP_Put", payload, payload_len); + } else if (buf_handle->if_type == ESP_SERIAL_IF) { +#if ESP_PKT_STATS + pkt_stats.serial_rx++; +#endif + process_serial_rx_pkt(buf_handle->payload); + } else if (buf_handle->if_type == ESP_PRIV_IF) { + process_priv_pkt(payload, payload_len); + } +#if defined(CONFIG_BT_ENABLED) && BLUETOOTH_HCI + else if (buf_handle->if_type == ESP_HCI_IF) { + process_hci_rx_pkt(payload, payload_len); + } +#endif +#if TEST_RAW_TP + else if (buf_handle->if_type == ESP_TEST_IF) { + debug_update_raw_tp_rx_count(payload_len); + } +#endif + + /* Free buffer handle */ + if (buf_handle->free_buf_handle && buf_handle->priv_buffer_handle) { + buf_handle->free_buf_handle(buf_handle->priv_buffer_handle); + buf_handle->priv_buffer_handle = NULL; + } +} + +/* Get data from host */ +void recv_task(void* pvParameters) +{ + interface_buffer_handle_t buf_handle = {0}; + + for (;;) { + + if (!datapath) { + /* Datapath is not enabled by host yet*/ + usleep(100*1000); + continue; + } + + /* receive data from transport layer */ + if (if_context && if_context->if_ops && if_context->if_ops->read) { + int len = if_context->if_ops->read(if_handle, &buf_handle); + if (len <= 0) { + usleep(10*1000); + continue; + } + } + + process_rx_pkt(&buf_handle); + } +} + +static ssize_t serial_read_data(uint8_t *data, ssize_t len) +{ + len = min(len, r.len); + if (r.valid) { + memcpy(data, r.data, len); + r.valid = 0; + r.len = 0; + r.cur_seq_no = 0; + } else { + ESP_LOGI(TAG,"No data to be read, len %d", len); + } + return len; +} + +int send_to_host_queue(interface_buffer_handle_t *buf_handle, uint8_t queue_type) +{ +#if BYPASS_TX_PRIORITY_Q + process_tx_pkt(buf_handle); + return ESP_OK; +#else + int ret = xQueueSend(to_host_queue[queue_type], buf_handle, portMAX_DELAY); + if (ret != pdTRUE) { + ESP_LOGE(TAG, "Failed to send buffer into queue[%u]\n",queue_type); + return ESP_FAIL; + } + if (queue_type == PRIO_Q_SERIAL) + ret = xQueueSendToFront(meta_to_host_queue, &queue_type, portMAX_DELAY); + else + ret = xQueueSend(meta_to_host_queue, &queue_type, portMAX_DELAY); + + if (ret != pdTRUE) { + ESP_LOGE(TAG, "Failed to send buffer into meta queue[%u]\n",queue_type); + return ESP_FAIL; + } + + return ESP_OK; +#endif +} + +static esp_err_t serial_write_data(uint8_t* data, ssize_t len) +{ + uint8_t *pos = data; + int32_t left_len = len; + int32_t frag_len = 0; + static uint16_t seq_num = 0; + + do { + interface_buffer_handle_t buf_handle = {0}; + + seq_num++; + + buf_handle.if_type = ESP_SERIAL_IF; + buf_handle.if_num = 0; + buf_handle.seq_num = seq_num; + + if (left_len > ETH_DATA_LEN) { + frag_len = ETH_DATA_LEN; + buf_handle.flag = MORE_FRAGMENT; + } else { + frag_len = left_len; + buf_handle.flag = 0; + buf_handle.priv_buffer_handle = data; + buf_handle.free_buf_handle = free; + } + + buf_handle.payload = pos; + buf_handle.payload_len = frag_len; + + if (send_to_host_queue(&buf_handle, PRIO_Q_SERIAL)) { + if (data) { + free(data); + data = NULL; + } + return ESP_FAIL; + } + + ESP_HEXLOGV("serial_tx_create", data, frag_len); + + left_len -= frag_len; + pos += frag_len; + } while(left_len); + + return ESP_OK; +} + +int event_handler(uint8_t val) +{ + switch(val) { + case ESP_OPEN_DATA_PATH: + if (if_handle) { + if_handle->state = ACTIVE; + datapath = 1; + ESP_EARLY_LOGI(TAG, "Start Data Path"); + } else { + ESP_EARLY_LOGI(TAG, "Failed to Start Data Path"); + } + break; + + case ESP_CLOSE_DATA_PATH: + datapath = 0; + if (if_handle) { + ESP_EARLY_LOGI(TAG, "Stop Data Path"); + if_handle->state = DEACTIVE; + } else { + ESP_EARLY_LOGI(TAG, "Failed to Stop Data Path"); + } + break; + } + return 0; +} + +#ifdef CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS +/* These functions are only for debugging purpose + * Please do not enable in production environments + */ +static esp_err_t print_real_time_stats(TickType_t xTicksToWait) +{ + TaskStatus_t *start_array = NULL, *end_array = NULL; + UBaseType_t start_array_size, end_array_size; + uint32_t start_run_time, end_run_time; + esp_err_t ret; + + /* Allocate array to store current task states */ + start_array_size = uxTaskGetNumberOfTasks() + ARRAY_SIZE_OFFSET; + start_array = malloc(sizeof(TaskStatus_t) * start_array_size); + if (start_array == NULL) { + ret = ESP_ERR_NO_MEM; + goto exit; + } + /* Get current task states */ + start_array_size = uxTaskGetSystemState(start_array, + start_array_size, &start_run_time); + if (start_array_size == 0) { + ret = ESP_ERR_INVALID_SIZE; + goto exit; + } + + vTaskDelay(xTicksToWait); + + /* Allocate array to store tasks states post delay */ + end_array_size = uxTaskGetNumberOfTasks() + ARRAY_SIZE_OFFSET; + end_array = malloc(sizeof(TaskStatus_t) * end_array_size); + if (end_array == NULL) { + ret = ESP_ERR_NO_MEM; + goto exit; + } + /* Get post delay task states */ + end_array_size = uxTaskGetSystemState(end_array, end_array_size, &end_run_time); + if (end_array_size == 0) { + ret = ESP_ERR_INVALID_SIZE; + goto exit; + } + + /* Calculate total_elapsed_time in units of run time stats clock period */ + uint32_t total_elapsed_time = (end_run_time - start_run_time); + if (total_elapsed_time == 0) { + ret = ESP_ERR_INVALID_STATE; + goto exit; + } + + ESP_LOGI(TAG,"| Task | Run Time | Percentage"); + /* Match each task in start_array to those in the end_array */ + for (int i = 0; i < start_array_size; i++) { + int k = -1; + for (int j = 0; j < end_array_size; j++) { + if (start_array[i].xHandle == end_array[j].xHandle) { + k = j; + /* Mark that task have been matched by overwriting their handles */ + start_array[i].xHandle = NULL; + end_array[j].xHandle = NULL; + break; + } + } + /* Check if matching task found */ + if (k >= 0) { + uint32_t task_elapsed_time = end_array[k].ulRunTimeCounter - + start_array[i].ulRunTimeCounter; + uint32_t percentage_time = (task_elapsed_time * 100UL) / + (total_elapsed_time * portNUM_PROCESSORS); + ESP_LOGI(TAG,"| %s | %d | %d%%", start_array[i].pcTaskName, + task_elapsed_time, percentage_time); + } + } + + /* Print unmatched tasks */ + for (int i = 0; i < start_array_size; i++) { + if (start_array[i].xHandle != NULL) { + ESP_LOGI(TAG,"| %s | Deleted", start_array[i].pcTaskName); + } + } + for (int i = 0; i < end_array_size; i++) { + if (end_array[i].xHandle != NULL) { + ESP_LOGI(TAG,"| %s | Created", end_array[i].pcTaskName); + } + } + ret = ESP_OK; + +exit: /* Common return path */ + if (start_array) + free(start_array); + if (end_array) + free(end_array); + return ret; +} + +void task_runtime_stats_task(void* pvParameters) +{ + while (1) { + ESP_LOGI(TAG,"\n\nGetting real time stats over %d ticks", STATS_TICKS); + if (print_real_time_stats(STATS_TICKS) == ESP_OK) { + ESP_LOGI(TAG,"Real time stats obtained"); + } else { + ESP_LOGI(TAG,"Error getting real time stats"); + } + vTaskDelay(pdMS_TO_TICKS(1000*2)); + } +} +#endif + +static void IRAM_ATTR gpio_resetpin_isr_handler(void* arg) +{ + + ESP_EARLY_LOGI(TAG, "*********"); + if (CONFIG_ESP_GPIO_SLAVE_RESET == -1) { + ESP_EARLY_LOGI(TAG, "%s: using EN pin for slave reset", __func__); + return; + } + + static uint32_t lasthandshaketime_us; + uint32_t currtime_us = esp_timer_get_time(); + + if (gpio_get_level(CONFIG_ESP_GPIO_SLAVE_RESET) == 0) { + lasthandshaketime_us = currtime_us; + } else { + uint32_t diff = currtime_us - lasthandshaketime_us; + ESP_EARLY_LOGI(TAG, "%s Diff: %u", __func__, diff); + if (diff < 500) { + return; //ignore everything < half ms after an earlier irq + } else { + ESP_EARLY_LOGI(TAG, "Host triggered slave reset"); + esp_restart(); + } + } +} + +static void register_reset_pin(uint32_t gpio_num) +{ + if (gpio_num != -1) { + ESP_LOGI(TAG, "Using GPIO [%lu] as slave reset pin", gpio_num); + gpio_reset_pin(gpio_num); + + gpio_config_t slave_reset_pin_conf={ + .intr_type=GPIO_INTR_DISABLE, + .mode=GPIO_MODE_INPUT, + .pull_up_en=1, + .pin_bit_mask=(1<if_ops) { + ESP_LOGE(TAG, "Failed to insert driver\n"); + return; + } + + if_handle = if_context->if_ops->init(); + + if (!if_handle) { + ESP_LOGE(TAG, "Failed to initialize driver\n"); + return; + } + + + assert(xTaskCreate(recv_task , "recv_task" , + CONFIG_ESP_DEFAULT_TASK_STACK_SIZE, NULL , + CONFIG_ESP_DEFAULT_TASK_PRIO, NULL) == pdTRUE); +#if !BYPASS_TX_PRIORITY_Q + meta_to_host_queue = xQueueCreate(TO_HOST_QUEUE_SIZE*3, sizeof(uint8_t)); + assert(meta_to_host_queue); + for (prio_q_idx=0; prio_q_idx= curr_level) { \ + ESP_LOG_LEVEL_LOCAL(curr_level, tag1, "%s: len[%d]", tag2, (int)len); \ + ESP_LOG_BUFFER_HEXDUMP(tag2, buff, len, curr_level); \ + } + +#define ESP_HEXLOGE(tag2, buff, len) ESP_PRIV_HEXDUMP(TAG, tag2, buff, len, ESP_LOG_ERROR) +#define ESP_HEXLOGW(tag2, buff, len) ESP_PRIV_HEXDUMP(TAG, tag2, buff, len, ESP_LOG_WARN) +#define ESP_HEXLOGI(tag2, buff, len) ESP_PRIV_HEXDUMP(TAG, tag2, buff, len, ESP_LOG_INFO) +#define ESP_HEXLOGD(tag2, buff, len) ESP_PRIV_HEXDUMP(TAG, tag2, buff, len, ESP_LOG_DEBUG) +#define ESP_HEXLOGV(tag2, buff, len) ESP_PRIV_HEXDUMP(TAG, tag2, buff, len, ESP_LOG_VERBOSE) + +#endif + diff --git a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/README.md b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/README.md new file mode 100644 index 0000000..57c0e94 --- /dev/null +++ b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/README.md @@ -0,0 +1,53 @@ +# About Proto Files + + +## Protobuf Submodule + +[protobuf-c](https://github.com/protobuf-c/protobuf-c) is open source code used as submodule in ESP-Hosted-FG in directory `../protobuf-c/` +If this directory is empty, please run +```sh +$ cd esp-hosted +$ git submodule update --init --recursive +``` + +## Files + +- `esp_hosted_rpc.proto` + - This is Ready-To-Use protobuf file which has messages for Request / Response / Events to communicate between Host and ESP + - User can add his own message field in `.proto` file and generate respective C files using 'protoc' + +- `esp_hosted_rpc.pb-c.c` & `esp_hosted_rpc.pb-c.h` + - Ready-To-Use Source Generated files using `esp_hosted_rpc.proto` + - These files also cached which was generated with current `esp_hosted_rpc.proto` file for easy use (No need to generate again) + - If any addition or modifications `esp_hosted_rpc.proto` done, these files need to be re-generated + + +## Generate esp_hosted_rpc.pb-c.c & esp_hosted_rpc.pb-c.h + +If you want to add or modify existing set of RPC procedures supported, you need to modify `esp_hosted_rpc.proto` as needed and build it to generate new set of `esp_hosted_rpc.pb-c.c` & `esp_hosted_rpc.pb-c.h`. +For this, third party software for protobuf C compiler is needed to be installed +- Debian/Ubuntu + - sudo apt install protobuf-c-compiler +- Mac OS + - brew install protobuf +- Windows + - check https://github.com/protobuf-c/protobuf-c + +`protoc-c` command should be available once installed. + +This software might only be needed on development environment, Once esp_hosted_rpc.pb-c.c & esp_hosted_rpc.pb-c.h files are generated, could also be uninstalled. + +##### Steps to generate +```sh +$ cd /common/proto +$ protoc-c esp_hosted_rpc.proto --c_out=. +``` + +## Add new RPC message +To send an new RPC request/response + +1. Add C function in `host/host_common/commands.c` +2. Create python binding in `host/linux/host_control/python_support/commands_map_py_to_c.py` and its python function in `host/linux/host_control/python_support/commands_lib.py`. +3. Add ESP side C function in `esp/esp_driver/network_adapter/main/slave_commands.c`, respective to python function, to handle added message field. + +User can test added functionality using `host/linux/host_control/python_support/test.py`. diff --git a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/esp_hosted_rpc.pb-c.c b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/esp_hosted_rpc.pb-c.c new file mode 100644 index 0000000..eb1a1e3 --- /dev/null +++ b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/esp_hosted_rpc.pb-c.c @@ -0,0 +1,17767 @@ +/* Generated by the protocol buffer compiler. DO NOT EDIT! */ +/* Generated from: esp_hosted_rpc.proto */ + +/* Do not generate deprecated warnings for self */ +#ifndef PROTOBUF_C__NO_DEPRECATED +#define PROTOBUF_C__NO_DEPRECATED +#endif + +#include "esp_hosted_rpc.pb-c.h" +void wifi_init_config__init + (WifiInitConfig *message) +{ + static const WifiInitConfig init_value = WIFI_INIT_CONFIG__INIT; + *message = init_value; +} +size_t wifi_init_config__get_packed_size + (const WifiInitConfig *message) +{ + assert(message->base.descriptor == &wifi_init_config__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_init_config__pack + (const WifiInitConfig *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_init_config__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_init_config__pack_to_buffer + (const WifiInitConfig *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_init_config__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiInitConfig * + wifi_init_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiInitConfig *) + protobuf_c_message_unpack (&wifi_init_config__descriptor, + allocator, len, data); +} +void wifi_init_config__free_unpacked + (WifiInitConfig *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_init_config__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_country__init + (WifiCountry *message) +{ + static const WifiCountry init_value = WIFI_COUNTRY__INIT; + *message = init_value; +} +size_t wifi_country__get_packed_size + (const WifiCountry *message) +{ + assert(message->base.descriptor == &wifi_country__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_country__pack + (const WifiCountry *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_country__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_country__pack_to_buffer + (const WifiCountry *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_country__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiCountry * + wifi_country__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiCountry *) + protobuf_c_message_unpack (&wifi_country__descriptor, + allocator, len, data); +} +void wifi_country__free_unpacked + (WifiCountry *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_country__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_active_scan_time__init + (WifiActiveScanTime *message) +{ + static const WifiActiveScanTime init_value = WIFI_ACTIVE_SCAN_TIME__INIT; + *message = init_value; +} +size_t wifi_active_scan_time__get_packed_size + (const WifiActiveScanTime *message) +{ + assert(message->base.descriptor == &wifi_active_scan_time__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_active_scan_time__pack + (const WifiActiveScanTime *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_active_scan_time__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_active_scan_time__pack_to_buffer + (const WifiActiveScanTime *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_active_scan_time__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiActiveScanTime * + wifi_active_scan_time__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiActiveScanTime *) + protobuf_c_message_unpack (&wifi_active_scan_time__descriptor, + allocator, len, data); +} +void wifi_active_scan_time__free_unpacked + (WifiActiveScanTime *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_active_scan_time__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_scan_time__init + (WifiScanTime *message) +{ + static const WifiScanTime init_value = WIFI_SCAN_TIME__INIT; + *message = init_value; +} +size_t wifi_scan_time__get_packed_size + (const WifiScanTime *message) +{ + assert(message->base.descriptor == &wifi_scan_time__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_scan_time__pack + (const WifiScanTime *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_scan_time__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_scan_time__pack_to_buffer + (const WifiScanTime *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_scan_time__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiScanTime * + wifi_scan_time__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiScanTime *) + protobuf_c_message_unpack (&wifi_scan_time__descriptor, + allocator, len, data); +} +void wifi_scan_time__free_unpacked + (WifiScanTime *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_scan_time__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_scan_config__init + (WifiScanConfig *message) +{ + static const WifiScanConfig init_value = WIFI_SCAN_CONFIG__INIT; + *message = init_value; +} +size_t wifi_scan_config__get_packed_size + (const WifiScanConfig *message) +{ + assert(message->base.descriptor == &wifi_scan_config__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_scan_config__pack + (const WifiScanConfig *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_scan_config__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_scan_config__pack_to_buffer + (const WifiScanConfig *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_scan_config__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiScanConfig * + wifi_scan_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiScanConfig *) + protobuf_c_message_unpack (&wifi_scan_config__descriptor, + allocator, len, data); +} +void wifi_scan_config__free_unpacked + (WifiScanConfig *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_scan_config__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_he_ap_info__init + (WifiHeApInfo *message) +{ + static const WifiHeApInfo init_value = WIFI_HE_AP_INFO__INIT; + *message = init_value; +} +size_t wifi_he_ap_info__get_packed_size + (const WifiHeApInfo *message) +{ + assert(message->base.descriptor == &wifi_he_ap_info__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_he_ap_info__pack + (const WifiHeApInfo *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_he_ap_info__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_he_ap_info__pack_to_buffer + (const WifiHeApInfo *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_he_ap_info__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiHeApInfo * + wifi_he_ap_info__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiHeApInfo *) + protobuf_c_message_unpack (&wifi_he_ap_info__descriptor, + allocator, len, data); +} +void wifi_he_ap_info__free_unpacked + (WifiHeApInfo *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_he_ap_info__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_ap_record__init + (WifiApRecord *message) +{ + static const WifiApRecord init_value = WIFI_AP_RECORD__INIT; + *message = init_value; +} +size_t wifi_ap_record__get_packed_size + (const WifiApRecord *message) +{ + assert(message->base.descriptor == &wifi_ap_record__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_ap_record__pack + (const WifiApRecord *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_ap_record__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_ap_record__pack_to_buffer + (const WifiApRecord *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_ap_record__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiApRecord * + wifi_ap_record__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiApRecord *) + protobuf_c_message_unpack (&wifi_ap_record__descriptor, + allocator, len, data); +} +void wifi_ap_record__free_unpacked + (WifiApRecord *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_ap_record__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_scan_threshold__init + (WifiScanThreshold *message) +{ + static const WifiScanThreshold init_value = WIFI_SCAN_THRESHOLD__INIT; + *message = init_value; +} +size_t wifi_scan_threshold__get_packed_size + (const WifiScanThreshold *message) +{ + assert(message->base.descriptor == &wifi_scan_threshold__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_scan_threshold__pack + (const WifiScanThreshold *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_scan_threshold__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_scan_threshold__pack_to_buffer + (const WifiScanThreshold *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_scan_threshold__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiScanThreshold * + wifi_scan_threshold__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiScanThreshold *) + protobuf_c_message_unpack (&wifi_scan_threshold__descriptor, + allocator, len, data); +} +void wifi_scan_threshold__free_unpacked + (WifiScanThreshold *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_scan_threshold__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_pmf_config__init + (WifiPmfConfig *message) +{ + static const WifiPmfConfig init_value = WIFI_PMF_CONFIG__INIT; + *message = init_value; +} +size_t wifi_pmf_config__get_packed_size + (const WifiPmfConfig *message) +{ + assert(message->base.descriptor == &wifi_pmf_config__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_pmf_config__pack + (const WifiPmfConfig *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_pmf_config__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_pmf_config__pack_to_buffer + (const WifiPmfConfig *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_pmf_config__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiPmfConfig * + wifi_pmf_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiPmfConfig *) + protobuf_c_message_unpack (&wifi_pmf_config__descriptor, + allocator, len, data); +} +void wifi_pmf_config__free_unpacked + (WifiPmfConfig *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_pmf_config__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_ap_config__init + (WifiApConfig *message) +{ + static const WifiApConfig init_value = WIFI_AP_CONFIG__INIT; + *message = init_value; +} +size_t wifi_ap_config__get_packed_size + (const WifiApConfig *message) +{ + assert(message->base.descriptor == &wifi_ap_config__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_ap_config__pack + (const WifiApConfig *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_ap_config__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_ap_config__pack_to_buffer + (const WifiApConfig *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_ap_config__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiApConfig * + wifi_ap_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiApConfig *) + protobuf_c_message_unpack (&wifi_ap_config__descriptor, + allocator, len, data); +} +void wifi_ap_config__free_unpacked + (WifiApConfig *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_ap_config__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_sta_config__init + (WifiStaConfig *message) +{ + static const WifiStaConfig init_value = WIFI_STA_CONFIG__INIT; + *message = init_value; +} +size_t wifi_sta_config__get_packed_size + (const WifiStaConfig *message) +{ + assert(message->base.descriptor == &wifi_sta_config__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_sta_config__pack + (const WifiStaConfig *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_sta_config__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_sta_config__pack_to_buffer + (const WifiStaConfig *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_sta_config__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiStaConfig * + wifi_sta_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiStaConfig *) + protobuf_c_message_unpack (&wifi_sta_config__descriptor, + allocator, len, data); +} +void wifi_sta_config__free_unpacked + (WifiStaConfig *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_sta_config__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_config__init + (WifiConfig *message) +{ + static const WifiConfig init_value = WIFI_CONFIG__INIT; + *message = init_value; +} +size_t wifi_config__get_packed_size + (const WifiConfig *message) +{ + assert(message->base.descriptor == &wifi_config__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_config__pack + (const WifiConfig *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_config__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_config__pack_to_buffer + (const WifiConfig *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_config__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiConfig * + wifi_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiConfig *) + protobuf_c_message_unpack (&wifi_config__descriptor, + allocator, len, data); +} +void wifi_config__free_unpacked + (WifiConfig *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_config__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_sta_info__init + (WifiStaInfo *message) +{ + static const WifiStaInfo init_value = WIFI_STA_INFO__INIT; + *message = init_value; +} +size_t wifi_sta_info__get_packed_size + (const WifiStaInfo *message) +{ + assert(message->base.descriptor == &wifi_sta_info__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_sta_info__pack + (const WifiStaInfo *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_sta_info__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_sta_info__pack_to_buffer + (const WifiStaInfo *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_sta_info__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiStaInfo * + wifi_sta_info__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiStaInfo *) + protobuf_c_message_unpack (&wifi_sta_info__descriptor, + allocator, len, data); +} +void wifi_sta_info__free_unpacked + (WifiStaInfo *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_sta_info__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_sta_list__init + (WifiStaList *message) +{ + static const WifiStaList init_value = WIFI_STA_LIST__INIT; + *message = init_value; +} +size_t wifi_sta_list__get_packed_size + (const WifiStaList *message) +{ + assert(message->base.descriptor == &wifi_sta_list__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_sta_list__pack + (const WifiStaList *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_sta_list__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_sta_list__pack_to_buffer + (const WifiStaList *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_sta_list__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiStaList * + wifi_sta_list__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiStaList *) + protobuf_c_message_unpack (&wifi_sta_list__descriptor, + allocator, len, data); +} +void wifi_sta_list__free_unpacked + (WifiStaList *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_sta_list__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_pkt_rx_ctrl__init + (WifiPktRxCtrl *message) +{ + static const WifiPktRxCtrl init_value = WIFI_PKT_RX_CTRL__INIT; + *message = init_value; +} +size_t wifi_pkt_rx_ctrl__get_packed_size + (const WifiPktRxCtrl *message) +{ + assert(message->base.descriptor == &wifi_pkt_rx_ctrl__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_pkt_rx_ctrl__pack + (const WifiPktRxCtrl *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_pkt_rx_ctrl__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_pkt_rx_ctrl__pack_to_buffer + (const WifiPktRxCtrl *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_pkt_rx_ctrl__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiPktRxCtrl * + wifi_pkt_rx_ctrl__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiPktRxCtrl *) + protobuf_c_message_unpack (&wifi_pkt_rx_ctrl__descriptor, + allocator, len, data); +} +void wifi_pkt_rx_ctrl__free_unpacked + (WifiPktRxCtrl *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_pkt_rx_ctrl__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_promiscuous_pkt__init + (WifiPromiscuousPkt *message) +{ + static const WifiPromiscuousPkt init_value = WIFI_PROMISCUOUS_PKT__INIT; + *message = init_value; +} +size_t wifi_promiscuous_pkt__get_packed_size + (const WifiPromiscuousPkt *message) +{ + assert(message->base.descriptor == &wifi_promiscuous_pkt__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_promiscuous_pkt__pack + (const WifiPromiscuousPkt *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_promiscuous_pkt__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_promiscuous_pkt__pack_to_buffer + (const WifiPromiscuousPkt *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_promiscuous_pkt__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiPromiscuousPkt * + wifi_promiscuous_pkt__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiPromiscuousPkt *) + protobuf_c_message_unpack (&wifi_promiscuous_pkt__descriptor, + allocator, len, data); +} +void wifi_promiscuous_pkt__free_unpacked + (WifiPromiscuousPkt *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_promiscuous_pkt__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_promiscuous_filter__init + (WifiPromiscuousFilter *message) +{ + static const WifiPromiscuousFilter init_value = WIFI_PROMISCUOUS_FILTER__INIT; + *message = init_value; +} +size_t wifi_promiscuous_filter__get_packed_size + (const WifiPromiscuousFilter *message) +{ + assert(message->base.descriptor == &wifi_promiscuous_filter__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_promiscuous_filter__pack + (const WifiPromiscuousFilter *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_promiscuous_filter__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_promiscuous_filter__pack_to_buffer + (const WifiPromiscuousFilter *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_promiscuous_filter__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiPromiscuousFilter * + wifi_promiscuous_filter__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiPromiscuousFilter *) + protobuf_c_message_unpack (&wifi_promiscuous_filter__descriptor, + allocator, len, data); +} +void wifi_promiscuous_filter__free_unpacked + (WifiPromiscuousFilter *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_promiscuous_filter__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_csi_config__init + (WifiCsiConfig *message) +{ + static const WifiCsiConfig init_value = WIFI_CSI_CONFIG__INIT; + *message = init_value; +} +size_t wifi_csi_config__get_packed_size + (const WifiCsiConfig *message) +{ + assert(message->base.descriptor == &wifi_csi_config__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_csi_config__pack + (const WifiCsiConfig *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_csi_config__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_csi_config__pack_to_buffer + (const WifiCsiConfig *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_csi_config__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiCsiConfig * + wifi_csi_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiCsiConfig *) + protobuf_c_message_unpack (&wifi_csi_config__descriptor, + allocator, len, data); +} +void wifi_csi_config__free_unpacked + (WifiCsiConfig *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_csi_config__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_csi_info__init + (WifiCsiInfo *message) +{ + static const WifiCsiInfo init_value = WIFI_CSI_INFO__INIT; + *message = init_value; +} +size_t wifi_csi_info__get_packed_size + (const WifiCsiInfo *message) +{ + assert(message->base.descriptor == &wifi_csi_info__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_csi_info__pack + (const WifiCsiInfo *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_csi_info__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_csi_info__pack_to_buffer + (const WifiCsiInfo *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_csi_info__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiCsiInfo * + wifi_csi_info__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiCsiInfo *) + protobuf_c_message_unpack (&wifi_csi_info__descriptor, + allocator, len, data); +} +void wifi_csi_info__free_unpacked + (WifiCsiInfo *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_csi_info__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_ant_gpio__init + (WifiAntGpio *message) +{ + static const WifiAntGpio init_value = WIFI_ANT_GPIO__INIT; + *message = init_value; +} +size_t wifi_ant_gpio__get_packed_size + (const WifiAntGpio *message) +{ + assert(message->base.descriptor == &wifi_ant_gpio__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_ant_gpio__pack + (const WifiAntGpio *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_ant_gpio__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_ant_gpio__pack_to_buffer + (const WifiAntGpio *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_ant_gpio__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiAntGpio * + wifi_ant_gpio__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiAntGpio *) + protobuf_c_message_unpack (&wifi_ant_gpio__descriptor, + allocator, len, data); +} +void wifi_ant_gpio__free_unpacked + (WifiAntGpio *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_ant_gpio__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_ant_gpio_config__init + (WifiAntGpioConfig *message) +{ + static const WifiAntGpioConfig init_value = WIFI_ANT_GPIO_CONFIG__INIT; + *message = init_value; +} +size_t wifi_ant_gpio_config__get_packed_size + (const WifiAntGpioConfig *message) +{ + assert(message->base.descriptor == &wifi_ant_gpio_config__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_ant_gpio_config__pack + (const WifiAntGpioConfig *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_ant_gpio_config__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_ant_gpio_config__pack_to_buffer + (const WifiAntGpioConfig *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_ant_gpio_config__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiAntGpioConfig * + wifi_ant_gpio_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiAntGpioConfig *) + protobuf_c_message_unpack (&wifi_ant_gpio_config__descriptor, + allocator, len, data); +} +void wifi_ant_gpio_config__free_unpacked + (WifiAntGpioConfig *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_ant_gpio_config__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_ant_config__init + (WifiAntConfig *message) +{ + static const WifiAntConfig init_value = WIFI_ANT_CONFIG__INIT; + *message = init_value; +} +size_t wifi_ant_config__get_packed_size + (const WifiAntConfig *message) +{ + assert(message->base.descriptor == &wifi_ant_config__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_ant_config__pack + (const WifiAntConfig *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_ant_config__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_ant_config__pack_to_buffer + (const WifiAntConfig *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_ant_config__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiAntConfig * + wifi_ant_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiAntConfig *) + protobuf_c_message_unpack (&wifi_ant_config__descriptor, + allocator, len, data); +} +void wifi_ant_config__free_unpacked + (WifiAntConfig *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_ant_config__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_action_tx_req__init + (WifiActionTxReq *message) +{ + static const WifiActionTxReq init_value = WIFI_ACTION_TX_REQ__INIT; + *message = init_value; +} +size_t wifi_action_tx_req__get_packed_size + (const WifiActionTxReq *message) +{ + assert(message->base.descriptor == &wifi_action_tx_req__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_action_tx_req__pack + (const WifiActionTxReq *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_action_tx_req__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_action_tx_req__pack_to_buffer + (const WifiActionTxReq *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_action_tx_req__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiActionTxReq * + wifi_action_tx_req__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiActionTxReq *) + protobuf_c_message_unpack (&wifi_action_tx_req__descriptor, + allocator, len, data); +} +void wifi_action_tx_req__free_unpacked + (WifiActionTxReq *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_action_tx_req__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_ftm_initiator_cfg__init + (WifiFtmInitiatorCfg *message) +{ + static const WifiFtmInitiatorCfg init_value = WIFI_FTM_INITIATOR_CFG__INIT; + *message = init_value; +} +size_t wifi_ftm_initiator_cfg__get_packed_size + (const WifiFtmInitiatorCfg *message) +{ + assert(message->base.descriptor == &wifi_ftm_initiator_cfg__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_ftm_initiator_cfg__pack + (const WifiFtmInitiatorCfg *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_ftm_initiator_cfg__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_ftm_initiator_cfg__pack_to_buffer + (const WifiFtmInitiatorCfg *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_ftm_initiator_cfg__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiFtmInitiatorCfg * + wifi_ftm_initiator_cfg__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiFtmInitiatorCfg *) + protobuf_c_message_unpack (&wifi_ftm_initiator_cfg__descriptor, + allocator, len, data); +} +void wifi_ftm_initiator_cfg__free_unpacked + (WifiFtmInitiatorCfg *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_ftm_initiator_cfg__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_event_sta_scan_done__init + (WifiEventStaScanDone *message) +{ + static const WifiEventStaScanDone init_value = WIFI_EVENT_STA_SCAN_DONE__INIT; + *message = init_value; +} +size_t wifi_event_sta_scan_done__get_packed_size + (const WifiEventStaScanDone *message) +{ + assert(message->base.descriptor == &wifi_event_sta_scan_done__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_event_sta_scan_done__pack + (const WifiEventStaScanDone *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_event_sta_scan_done__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_event_sta_scan_done__pack_to_buffer + (const WifiEventStaScanDone *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_event_sta_scan_done__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiEventStaScanDone * + wifi_event_sta_scan_done__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiEventStaScanDone *) + protobuf_c_message_unpack (&wifi_event_sta_scan_done__descriptor, + allocator, len, data); +} +void wifi_event_sta_scan_done__free_unpacked + (WifiEventStaScanDone *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_event_sta_scan_done__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_event_sta_connected__init + (WifiEventStaConnected *message) +{ + static const WifiEventStaConnected init_value = WIFI_EVENT_STA_CONNECTED__INIT; + *message = init_value; +} +size_t wifi_event_sta_connected__get_packed_size + (const WifiEventStaConnected *message) +{ + assert(message->base.descriptor == &wifi_event_sta_connected__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_event_sta_connected__pack + (const WifiEventStaConnected *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_event_sta_connected__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_event_sta_connected__pack_to_buffer + (const WifiEventStaConnected *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_event_sta_connected__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiEventStaConnected * + wifi_event_sta_connected__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiEventStaConnected *) + protobuf_c_message_unpack (&wifi_event_sta_connected__descriptor, + allocator, len, data); +} +void wifi_event_sta_connected__free_unpacked + (WifiEventStaConnected *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_event_sta_connected__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_event_sta_disconnected__init + (WifiEventStaDisconnected *message) +{ + static const WifiEventStaDisconnected init_value = WIFI_EVENT_STA_DISCONNECTED__INIT; + *message = init_value; +} +size_t wifi_event_sta_disconnected__get_packed_size + (const WifiEventStaDisconnected *message) +{ + assert(message->base.descriptor == &wifi_event_sta_disconnected__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_event_sta_disconnected__pack + (const WifiEventStaDisconnected *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_event_sta_disconnected__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_event_sta_disconnected__pack_to_buffer + (const WifiEventStaDisconnected *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_event_sta_disconnected__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiEventStaDisconnected * + wifi_event_sta_disconnected__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiEventStaDisconnected *) + protobuf_c_message_unpack (&wifi_event_sta_disconnected__descriptor, + allocator, len, data); +} +void wifi_event_sta_disconnected__free_unpacked + (WifiEventStaDisconnected *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_event_sta_disconnected__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_event_sta_authmode_change__init + (WifiEventStaAuthmodeChange *message) +{ + static const WifiEventStaAuthmodeChange init_value = WIFI_EVENT_STA_AUTHMODE_CHANGE__INIT; + *message = init_value; +} +size_t wifi_event_sta_authmode_change__get_packed_size + (const WifiEventStaAuthmodeChange *message) +{ + assert(message->base.descriptor == &wifi_event_sta_authmode_change__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_event_sta_authmode_change__pack + (const WifiEventStaAuthmodeChange *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_event_sta_authmode_change__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_event_sta_authmode_change__pack_to_buffer + (const WifiEventStaAuthmodeChange *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_event_sta_authmode_change__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiEventStaAuthmodeChange * + wifi_event_sta_authmode_change__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiEventStaAuthmodeChange *) + protobuf_c_message_unpack (&wifi_event_sta_authmode_change__descriptor, + allocator, len, data); +} +void wifi_event_sta_authmode_change__free_unpacked + (WifiEventStaAuthmodeChange *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_event_sta_authmode_change__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_event_sta_wps_er_pin__init + (WifiEventStaWpsErPin *message) +{ + static const WifiEventStaWpsErPin init_value = WIFI_EVENT_STA_WPS_ER_PIN__INIT; + *message = init_value; +} +size_t wifi_event_sta_wps_er_pin__get_packed_size + (const WifiEventStaWpsErPin *message) +{ + assert(message->base.descriptor == &wifi_event_sta_wps_er_pin__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_event_sta_wps_er_pin__pack + (const WifiEventStaWpsErPin *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_event_sta_wps_er_pin__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_event_sta_wps_er_pin__pack_to_buffer + (const WifiEventStaWpsErPin *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_event_sta_wps_er_pin__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiEventStaWpsErPin * + wifi_event_sta_wps_er_pin__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiEventStaWpsErPin *) + protobuf_c_message_unpack (&wifi_event_sta_wps_er_pin__descriptor, + allocator, len, data); +} +void wifi_event_sta_wps_er_pin__free_unpacked + (WifiEventStaWpsErPin *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_event_sta_wps_er_pin__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void ap_cred__init + (ApCred *message) +{ + static const ApCred init_value = AP_CRED__INIT; + *message = init_value; +} +size_t ap_cred__get_packed_size + (const ApCred *message) +{ + assert(message->base.descriptor == &ap_cred__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t ap_cred__pack + (const ApCred *message, + uint8_t *out) +{ + assert(message->base.descriptor == &ap_cred__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t ap_cred__pack_to_buffer + (const ApCred *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &ap_cred__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +ApCred * + ap_cred__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (ApCred *) + protobuf_c_message_unpack (&ap_cred__descriptor, + allocator, len, data); +} +void ap_cred__free_unpacked + (ApCred *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &ap_cred__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_event_sta_wps_er_success__init + (WifiEventStaWpsErSuccess *message) +{ + static const WifiEventStaWpsErSuccess init_value = WIFI_EVENT_STA_WPS_ER_SUCCESS__INIT; + *message = init_value; +} +size_t wifi_event_sta_wps_er_success__get_packed_size + (const WifiEventStaWpsErSuccess *message) +{ + assert(message->base.descriptor == &wifi_event_sta_wps_er_success__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_event_sta_wps_er_success__pack + (const WifiEventStaWpsErSuccess *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_event_sta_wps_er_success__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_event_sta_wps_er_success__pack_to_buffer + (const WifiEventStaWpsErSuccess *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_event_sta_wps_er_success__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiEventStaWpsErSuccess * + wifi_event_sta_wps_er_success__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiEventStaWpsErSuccess *) + protobuf_c_message_unpack (&wifi_event_sta_wps_er_success__descriptor, + allocator, len, data); +} +void wifi_event_sta_wps_er_success__free_unpacked + (WifiEventStaWpsErSuccess *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_event_sta_wps_er_success__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_event_ap_probe_req_rx__init + (WifiEventApProbeReqRx *message) +{ + static const WifiEventApProbeReqRx init_value = WIFI_EVENT_AP_PROBE_REQ_RX__INIT; + *message = init_value; +} +size_t wifi_event_ap_probe_req_rx__get_packed_size + (const WifiEventApProbeReqRx *message) +{ + assert(message->base.descriptor == &wifi_event_ap_probe_req_rx__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_event_ap_probe_req_rx__pack + (const WifiEventApProbeReqRx *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_event_ap_probe_req_rx__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_event_ap_probe_req_rx__pack_to_buffer + (const WifiEventApProbeReqRx *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_event_ap_probe_req_rx__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiEventApProbeReqRx * + wifi_event_ap_probe_req_rx__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiEventApProbeReqRx *) + protobuf_c_message_unpack (&wifi_event_ap_probe_req_rx__descriptor, + allocator, len, data); +} +void wifi_event_ap_probe_req_rx__free_unpacked + (WifiEventApProbeReqRx *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_event_ap_probe_req_rx__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_event_bss_rssi_low__init + (WifiEventBssRssiLow *message) +{ + static const WifiEventBssRssiLow init_value = WIFI_EVENT_BSS_RSSI_LOW__INIT; + *message = init_value; +} +size_t wifi_event_bss_rssi_low__get_packed_size + (const WifiEventBssRssiLow *message) +{ + assert(message->base.descriptor == &wifi_event_bss_rssi_low__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_event_bss_rssi_low__pack + (const WifiEventBssRssiLow *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_event_bss_rssi_low__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_event_bss_rssi_low__pack_to_buffer + (const WifiEventBssRssiLow *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_event_bss_rssi_low__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiEventBssRssiLow * + wifi_event_bss_rssi_low__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiEventBssRssiLow *) + protobuf_c_message_unpack (&wifi_event_bss_rssi_low__descriptor, + allocator, len, data); +} +void wifi_event_bss_rssi_low__free_unpacked + (WifiEventBssRssiLow *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_event_bss_rssi_low__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_ftm_report_entry__init + (WifiFtmReportEntry *message) +{ + static const WifiFtmReportEntry init_value = WIFI_FTM_REPORT_ENTRY__INIT; + *message = init_value; +} +size_t wifi_ftm_report_entry__get_packed_size + (const WifiFtmReportEntry *message) +{ + assert(message->base.descriptor == &wifi_ftm_report_entry__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_ftm_report_entry__pack + (const WifiFtmReportEntry *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_ftm_report_entry__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_ftm_report_entry__pack_to_buffer + (const WifiFtmReportEntry *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_ftm_report_entry__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiFtmReportEntry * + wifi_ftm_report_entry__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiFtmReportEntry *) + protobuf_c_message_unpack (&wifi_ftm_report_entry__descriptor, + allocator, len, data); +} +void wifi_ftm_report_entry__free_unpacked + (WifiFtmReportEntry *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_ftm_report_entry__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_event_ftm_report__init + (WifiEventFtmReport *message) +{ + static const WifiEventFtmReport init_value = WIFI_EVENT_FTM_REPORT__INIT; + *message = init_value; +} +size_t wifi_event_ftm_report__get_packed_size + (const WifiEventFtmReport *message) +{ + assert(message->base.descriptor == &wifi_event_ftm_report__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_event_ftm_report__pack + (const WifiEventFtmReport *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_event_ftm_report__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_event_ftm_report__pack_to_buffer + (const WifiEventFtmReport *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_event_ftm_report__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiEventFtmReport * + wifi_event_ftm_report__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiEventFtmReport *) + protobuf_c_message_unpack (&wifi_event_ftm_report__descriptor, + allocator, len, data); +} +void wifi_event_ftm_report__free_unpacked + (WifiEventFtmReport *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_event_ftm_report__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_event_action_tx_status__init + (WifiEventActionTxStatus *message) +{ + static const WifiEventActionTxStatus init_value = WIFI_EVENT_ACTION_TX_STATUS__INIT; + *message = init_value; +} +size_t wifi_event_action_tx_status__get_packed_size + (const WifiEventActionTxStatus *message) +{ + assert(message->base.descriptor == &wifi_event_action_tx_status__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_event_action_tx_status__pack + (const WifiEventActionTxStatus *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_event_action_tx_status__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_event_action_tx_status__pack_to_buffer + (const WifiEventActionTxStatus *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_event_action_tx_status__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiEventActionTxStatus * + wifi_event_action_tx_status__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiEventActionTxStatus *) + protobuf_c_message_unpack (&wifi_event_action_tx_status__descriptor, + allocator, len, data); +} +void wifi_event_action_tx_status__free_unpacked + (WifiEventActionTxStatus *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_event_action_tx_status__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_event_roc_done__init + (WifiEventRocDone *message) +{ + static const WifiEventRocDone init_value = WIFI_EVENT_ROC_DONE__INIT; + *message = init_value; +} +size_t wifi_event_roc_done__get_packed_size + (const WifiEventRocDone *message) +{ + assert(message->base.descriptor == &wifi_event_roc_done__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_event_roc_done__pack + (const WifiEventRocDone *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_event_roc_done__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_event_roc_done__pack_to_buffer + (const WifiEventRocDone *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_event_roc_done__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiEventRocDone * + wifi_event_roc_done__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiEventRocDone *) + protobuf_c_message_unpack (&wifi_event_roc_done__descriptor, + allocator, len, data); +} +void wifi_event_roc_done__free_unpacked + (WifiEventRocDone *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_event_roc_done__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_event_ap_wps_rg_pin__init + (WifiEventApWpsRgPin *message) +{ + static const WifiEventApWpsRgPin init_value = WIFI_EVENT_AP_WPS_RG_PIN__INIT; + *message = init_value; +} +size_t wifi_event_ap_wps_rg_pin__get_packed_size + (const WifiEventApWpsRgPin *message) +{ + assert(message->base.descriptor == &wifi_event_ap_wps_rg_pin__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_event_ap_wps_rg_pin__pack + (const WifiEventApWpsRgPin *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_event_ap_wps_rg_pin__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_event_ap_wps_rg_pin__pack_to_buffer + (const WifiEventApWpsRgPin *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_event_ap_wps_rg_pin__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiEventApWpsRgPin * + wifi_event_ap_wps_rg_pin__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiEventApWpsRgPin *) + protobuf_c_message_unpack (&wifi_event_ap_wps_rg_pin__descriptor, + allocator, len, data); +} +void wifi_event_ap_wps_rg_pin__free_unpacked + (WifiEventApWpsRgPin *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_event_ap_wps_rg_pin__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_event_ap_wps_rg_fail_reason__init + (WifiEventApWpsRgFailReason *message) +{ + static const WifiEventApWpsRgFailReason init_value = WIFI_EVENT_AP_WPS_RG_FAIL_REASON__INIT; + *message = init_value; +} +size_t wifi_event_ap_wps_rg_fail_reason__get_packed_size + (const WifiEventApWpsRgFailReason *message) +{ + assert(message->base.descriptor == &wifi_event_ap_wps_rg_fail_reason__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_event_ap_wps_rg_fail_reason__pack + (const WifiEventApWpsRgFailReason *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_event_ap_wps_rg_fail_reason__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_event_ap_wps_rg_fail_reason__pack_to_buffer + (const WifiEventApWpsRgFailReason *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_event_ap_wps_rg_fail_reason__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiEventApWpsRgFailReason * + wifi_event_ap_wps_rg_fail_reason__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiEventApWpsRgFailReason *) + protobuf_c_message_unpack (&wifi_event_ap_wps_rg_fail_reason__descriptor, + allocator, len, data); +} +void wifi_event_ap_wps_rg_fail_reason__free_unpacked + (WifiEventApWpsRgFailReason *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_event_ap_wps_rg_fail_reason__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_event_ap_wps_rg_success__init + (WifiEventApWpsRgSuccess *message) +{ + static const WifiEventApWpsRgSuccess init_value = WIFI_EVENT_AP_WPS_RG_SUCCESS__INIT; + *message = init_value; +} +size_t wifi_event_ap_wps_rg_success__get_packed_size + (const WifiEventApWpsRgSuccess *message) +{ + assert(message->base.descriptor == &wifi_event_ap_wps_rg_success__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_event_ap_wps_rg_success__pack + (const WifiEventApWpsRgSuccess *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_event_ap_wps_rg_success__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_event_ap_wps_rg_success__pack_to_buffer + (const WifiEventApWpsRgSuccess *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_event_ap_wps_rg_success__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiEventApWpsRgSuccess * + wifi_event_ap_wps_rg_success__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiEventApWpsRgSuccess *) + protobuf_c_message_unpack (&wifi_event_ap_wps_rg_success__descriptor, + allocator, len, data); +} +void wifi_event_ap_wps_rg_success__free_unpacked + (WifiEventApWpsRgSuccess *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_event_ap_wps_rg_success__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_protocols__init + (WifiProtocols *message) +{ + static const WifiProtocols init_value = WIFI_PROTOCOLS__INIT; + *message = init_value; +} +size_t wifi_protocols__get_packed_size + (const WifiProtocols *message) +{ + assert(message->base.descriptor == &wifi_protocols__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_protocols__pack + (const WifiProtocols *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_protocols__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_protocols__pack_to_buffer + (const WifiProtocols *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_protocols__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiProtocols * + wifi_protocols__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiProtocols *) + protobuf_c_message_unpack (&wifi_protocols__descriptor, + allocator, len, data); +} +void wifi_protocols__free_unpacked + (WifiProtocols *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_protocols__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void wifi_bandwidths__init + (WifiBandwidths *message) +{ + static const WifiBandwidths init_value = WIFI_BANDWIDTHS__INIT; + *message = init_value; +} +size_t wifi_bandwidths__get_packed_size + (const WifiBandwidths *message) +{ + assert(message->base.descriptor == &wifi_bandwidths__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t wifi_bandwidths__pack + (const WifiBandwidths *message, + uint8_t *out) +{ + assert(message->base.descriptor == &wifi_bandwidths__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t wifi_bandwidths__pack_to_buffer + (const WifiBandwidths *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &wifi_bandwidths__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +WifiBandwidths * + wifi_bandwidths__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (WifiBandwidths *) + protobuf_c_message_unpack (&wifi_bandwidths__descriptor, + allocator, len, data); +} +void wifi_bandwidths__free_unpacked + (WifiBandwidths *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &wifi_bandwidths__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void connected_stalist__init + (ConnectedSTAList *message) +{ + static const ConnectedSTAList init_value = CONNECTED_STALIST__INIT; + *message = init_value; +} +size_t connected_stalist__get_packed_size + (const ConnectedSTAList *message) +{ + assert(message->base.descriptor == &connected_stalist__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t connected_stalist__pack + (const ConnectedSTAList *message, + uint8_t *out) +{ + assert(message->base.descriptor == &connected_stalist__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t connected_stalist__pack_to_buffer + (const ConnectedSTAList *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &connected_stalist__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +ConnectedSTAList * + connected_stalist__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (ConnectedSTAList *) + protobuf_c_message_unpack (&connected_stalist__descriptor, + allocator, len, data); +} +void connected_stalist__free_unpacked + (ConnectedSTAList *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &connected_stalist__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__get_mac_address__init + (RpcReqGetMacAddress *message) +{ + static const RpcReqGetMacAddress init_value = RPC__REQ__GET_MAC_ADDRESS__INIT; + *message = init_value; +} +size_t rpc__req__get_mac_address__get_packed_size + (const RpcReqGetMacAddress *message) +{ + assert(message->base.descriptor == &rpc__req__get_mac_address__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__get_mac_address__pack + (const RpcReqGetMacAddress *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__get_mac_address__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__get_mac_address__pack_to_buffer + (const RpcReqGetMacAddress *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__get_mac_address__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqGetMacAddress * + rpc__req__get_mac_address__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqGetMacAddress *) + protobuf_c_message_unpack (&rpc__req__get_mac_address__descriptor, + allocator, len, data); +} +void rpc__req__get_mac_address__free_unpacked + (RpcReqGetMacAddress *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__get_mac_address__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__get_mac_address__init + (RpcRespGetMacAddress *message) +{ + static const RpcRespGetMacAddress init_value = RPC__RESP__GET_MAC_ADDRESS__INIT; + *message = init_value; +} +size_t rpc__resp__get_mac_address__get_packed_size + (const RpcRespGetMacAddress *message) +{ + assert(message->base.descriptor == &rpc__resp__get_mac_address__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__get_mac_address__pack + (const RpcRespGetMacAddress *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__get_mac_address__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__get_mac_address__pack_to_buffer + (const RpcRespGetMacAddress *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__get_mac_address__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespGetMacAddress * + rpc__resp__get_mac_address__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespGetMacAddress *) + protobuf_c_message_unpack (&rpc__resp__get_mac_address__descriptor, + allocator, len, data); +} +void rpc__resp__get_mac_address__free_unpacked + (RpcRespGetMacAddress *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__get_mac_address__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__get_mode__init + (RpcReqGetMode *message) +{ + static const RpcReqGetMode init_value = RPC__REQ__GET_MODE__INIT; + *message = init_value; +} +size_t rpc__req__get_mode__get_packed_size + (const RpcReqGetMode *message) +{ + assert(message->base.descriptor == &rpc__req__get_mode__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__get_mode__pack + (const RpcReqGetMode *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__get_mode__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__get_mode__pack_to_buffer + (const RpcReqGetMode *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__get_mode__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqGetMode * + rpc__req__get_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqGetMode *) + protobuf_c_message_unpack (&rpc__req__get_mode__descriptor, + allocator, len, data); +} +void rpc__req__get_mode__free_unpacked + (RpcReqGetMode *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__get_mode__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__get_mode__init + (RpcRespGetMode *message) +{ + static const RpcRespGetMode init_value = RPC__RESP__GET_MODE__INIT; + *message = init_value; +} +size_t rpc__resp__get_mode__get_packed_size + (const RpcRespGetMode *message) +{ + assert(message->base.descriptor == &rpc__resp__get_mode__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__get_mode__pack + (const RpcRespGetMode *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__get_mode__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__get_mode__pack_to_buffer + (const RpcRespGetMode *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__get_mode__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespGetMode * + rpc__resp__get_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespGetMode *) + protobuf_c_message_unpack (&rpc__resp__get_mode__descriptor, + allocator, len, data); +} +void rpc__resp__get_mode__free_unpacked + (RpcRespGetMode *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__get_mode__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__set_mode__init + (RpcReqSetMode *message) +{ + static const RpcReqSetMode init_value = RPC__REQ__SET_MODE__INIT; + *message = init_value; +} +size_t rpc__req__set_mode__get_packed_size + (const RpcReqSetMode *message) +{ + assert(message->base.descriptor == &rpc__req__set_mode__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__set_mode__pack + (const RpcReqSetMode *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__set_mode__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__set_mode__pack_to_buffer + (const RpcReqSetMode *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__set_mode__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqSetMode * + rpc__req__set_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqSetMode *) + protobuf_c_message_unpack (&rpc__req__set_mode__descriptor, + allocator, len, data); +} +void rpc__req__set_mode__free_unpacked + (RpcReqSetMode *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__set_mode__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__set_mode__init + (RpcRespSetMode *message) +{ + static const RpcRespSetMode init_value = RPC__RESP__SET_MODE__INIT; + *message = init_value; +} +size_t rpc__resp__set_mode__get_packed_size + (const RpcRespSetMode *message) +{ + assert(message->base.descriptor == &rpc__resp__set_mode__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__set_mode__pack + (const RpcRespSetMode *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__set_mode__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__set_mode__pack_to_buffer + (const RpcRespSetMode *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__set_mode__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespSetMode * + rpc__resp__set_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespSetMode *) + protobuf_c_message_unpack (&rpc__resp__set_mode__descriptor, + allocator, len, data); +} +void rpc__resp__set_mode__free_unpacked + (RpcRespSetMode *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__set_mode__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__get_ps__init + (RpcReqGetPs *message) +{ + static const RpcReqGetPs init_value = RPC__REQ__GET_PS__INIT; + *message = init_value; +} +size_t rpc__req__get_ps__get_packed_size + (const RpcReqGetPs *message) +{ + assert(message->base.descriptor == &rpc__req__get_ps__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__get_ps__pack + (const RpcReqGetPs *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__get_ps__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__get_ps__pack_to_buffer + (const RpcReqGetPs *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__get_ps__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqGetPs * + rpc__req__get_ps__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqGetPs *) + protobuf_c_message_unpack (&rpc__req__get_ps__descriptor, + allocator, len, data); +} +void rpc__req__get_ps__free_unpacked + (RpcReqGetPs *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__get_ps__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__get_ps__init + (RpcRespGetPs *message) +{ + static const RpcRespGetPs init_value = RPC__RESP__GET_PS__INIT; + *message = init_value; +} +size_t rpc__resp__get_ps__get_packed_size + (const RpcRespGetPs *message) +{ + assert(message->base.descriptor == &rpc__resp__get_ps__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__get_ps__pack + (const RpcRespGetPs *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__get_ps__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__get_ps__pack_to_buffer + (const RpcRespGetPs *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__get_ps__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespGetPs * + rpc__resp__get_ps__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespGetPs *) + protobuf_c_message_unpack (&rpc__resp__get_ps__descriptor, + allocator, len, data); +} +void rpc__resp__get_ps__free_unpacked + (RpcRespGetPs *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__get_ps__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__set_ps__init + (RpcReqSetPs *message) +{ + static const RpcReqSetPs init_value = RPC__REQ__SET_PS__INIT; + *message = init_value; +} +size_t rpc__req__set_ps__get_packed_size + (const RpcReqSetPs *message) +{ + assert(message->base.descriptor == &rpc__req__set_ps__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__set_ps__pack + (const RpcReqSetPs *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__set_ps__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__set_ps__pack_to_buffer + (const RpcReqSetPs *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__set_ps__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqSetPs * + rpc__req__set_ps__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqSetPs *) + protobuf_c_message_unpack (&rpc__req__set_ps__descriptor, + allocator, len, data); +} +void rpc__req__set_ps__free_unpacked + (RpcReqSetPs *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__set_ps__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__set_ps__init + (RpcRespSetPs *message) +{ + static const RpcRespSetPs init_value = RPC__RESP__SET_PS__INIT; + *message = init_value; +} +size_t rpc__resp__set_ps__get_packed_size + (const RpcRespSetPs *message) +{ + assert(message->base.descriptor == &rpc__resp__set_ps__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__set_ps__pack + (const RpcRespSetPs *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__set_ps__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__set_ps__pack_to_buffer + (const RpcRespSetPs *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__set_ps__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespSetPs * + rpc__resp__set_ps__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespSetPs *) + protobuf_c_message_unpack (&rpc__resp__set_ps__descriptor, + allocator, len, data); +} +void rpc__resp__set_ps__free_unpacked + (RpcRespSetPs *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__set_ps__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__set_mac_address__init + (RpcReqSetMacAddress *message) +{ + static const RpcReqSetMacAddress init_value = RPC__REQ__SET_MAC_ADDRESS__INIT; + *message = init_value; +} +size_t rpc__req__set_mac_address__get_packed_size + (const RpcReqSetMacAddress *message) +{ + assert(message->base.descriptor == &rpc__req__set_mac_address__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__set_mac_address__pack + (const RpcReqSetMacAddress *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__set_mac_address__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__set_mac_address__pack_to_buffer + (const RpcReqSetMacAddress *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__set_mac_address__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqSetMacAddress * + rpc__req__set_mac_address__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqSetMacAddress *) + protobuf_c_message_unpack (&rpc__req__set_mac_address__descriptor, + allocator, len, data); +} +void rpc__req__set_mac_address__free_unpacked + (RpcReqSetMacAddress *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__set_mac_address__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__set_mac_address__init + (RpcRespSetMacAddress *message) +{ + static const RpcRespSetMacAddress init_value = RPC__RESP__SET_MAC_ADDRESS__INIT; + *message = init_value; +} +size_t rpc__resp__set_mac_address__get_packed_size + (const RpcRespSetMacAddress *message) +{ + assert(message->base.descriptor == &rpc__resp__set_mac_address__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__set_mac_address__pack + (const RpcRespSetMacAddress *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__set_mac_address__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__set_mac_address__pack_to_buffer + (const RpcRespSetMacAddress *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__set_mac_address__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespSetMacAddress * + rpc__resp__set_mac_address__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespSetMacAddress *) + protobuf_c_message_unpack (&rpc__resp__set_mac_address__descriptor, + allocator, len, data); +} +void rpc__resp__set_mac_address__free_unpacked + (RpcRespSetMacAddress *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__set_mac_address__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__otabegin__init + (RpcReqOTABegin *message) +{ + static const RpcReqOTABegin init_value = RPC__REQ__OTABEGIN__INIT; + *message = init_value; +} +size_t rpc__req__otabegin__get_packed_size + (const RpcReqOTABegin *message) +{ + assert(message->base.descriptor == &rpc__req__otabegin__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__otabegin__pack + (const RpcReqOTABegin *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__otabegin__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__otabegin__pack_to_buffer + (const RpcReqOTABegin *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__otabegin__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqOTABegin * + rpc__req__otabegin__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqOTABegin *) + protobuf_c_message_unpack (&rpc__req__otabegin__descriptor, + allocator, len, data); +} +void rpc__req__otabegin__free_unpacked + (RpcReqOTABegin *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__otabegin__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__otabegin__init + (RpcRespOTABegin *message) +{ + static const RpcRespOTABegin init_value = RPC__RESP__OTABEGIN__INIT; + *message = init_value; +} +size_t rpc__resp__otabegin__get_packed_size + (const RpcRespOTABegin *message) +{ + assert(message->base.descriptor == &rpc__resp__otabegin__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__otabegin__pack + (const RpcRespOTABegin *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__otabegin__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__otabegin__pack_to_buffer + (const RpcRespOTABegin *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__otabegin__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespOTABegin * + rpc__resp__otabegin__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespOTABegin *) + protobuf_c_message_unpack (&rpc__resp__otabegin__descriptor, + allocator, len, data); +} +void rpc__resp__otabegin__free_unpacked + (RpcRespOTABegin *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__otabegin__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__otawrite__init + (RpcReqOTAWrite *message) +{ + static const RpcReqOTAWrite init_value = RPC__REQ__OTAWRITE__INIT; + *message = init_value; +} +size_t rpc__req__otawrite__get_packed_size + (const RpcReqOTAWrite *message) +{ + assert(message->base.descriptor == &rpc__req__otawrite__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__otawrite__pack + (const RpcReqOTAWrite *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__otawrite__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__otawrite__pack_to_buffer + (const RpcReqOTAWrite *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__otawrite__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqOTAWrite * + rpc__req__otawrite__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqOTAWrite *) + protobuf_c_message_unpack (&rpc__req__otawrite__descriptor, + allocator, len, data); +} +void rpc__req__otawrite__free_unpacked + (RpcReqOTAWrite *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__otawrite__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__otawrite__init + (RpcRespOTAWrite *message) +{ + static const RpcRespOTAWrite init_value = RPC__RESP__OTAWRITE__INIT; + *message = init_value; +} +size_t rpc__resp__otawrite__get_packed_size + (const RpcRespOTAWrite *message) +{ + assert(message->base.descriptor == &rpc__resp__otawrite__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__otawrite__pack + (const RpcRespOTAWrite *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__otawrite__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__otawrite__pack_to_buffer + (const RpcRespOTAWrite *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__otawrite__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespOTAWrite * + rpc__resp__otawrite__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespOTAWrite *) + protobuf_c_message_unpack (&rpc__resp__otawrite__descriptor, + allocator, len, data); +} +void rpc__resp__otawrite__free_unpacked + (RpcRespOTAWrite *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__otawrite__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__otaend__init + (RpcReqOTAEnd *message) +{ + static const RpcReqOTAEnd init_value = RPC__REQ__OTAEND__INIT; + *message = init_value; +} +size_t rpc__req__otaend__get_packed_size + (const RpcReqOTAEnd *message) +{ + assert(message->base.descriptor == &rpc__req__otaend__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__otaend__pack + (const RpcReqOTAEnd *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__otaend__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__otaend__pack_to_buffer + (const RpcReqOTAEnd *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__otaend__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqOTAEnd * + rpc__req__otaend__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqOTAEnd *) + protobuf_c_message_unpack (&rpc__req__otaend__descriptor, + allocator, len, data); +} +void rpc__req__otaend__free_unpacked + (RpcReqOTAEnd *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__otaend__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__otaend__init + (RpcRespOTAEnd *message) +{ + static const RpcRespOTAEnd init_value = RPC__RESP__OTAEND__INIT; + *message = init_value; +} +size_t rpc__resp__otaend__get_packed_size + (const RpcRespOTAEnd *message) +{ + assert(message->base.descriptor == &rpc__resp__otaend__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__otaend__pack + (const RpcRespOTAEnd *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__otaend__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__otaend__pack_to_buffer + (const RpcRespOTAEnd *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__otaend__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespOTAEnd * + rpc__resp__otaend__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespOTAEnd *) + protobuf_c_message_unpack (&rpc__resp__otaend__descriptor, + allocator, len, data); +} +void rpc__resp__otaend__free_unpacked + (RpcRespOTAEnd *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__otaend__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_set_max_tx_power__init + (RpcReqWifiSetMaxTxPower *message) +{ + static const RpcReqWifiSetMaxTxPower init_value = RPC__REQ__WIFI_SET_MAX_TX_POWER__INIT; + *message = init_value; +} +size_t rpc__req__wifi_set_max_tx_power__get_packed_size + (const RpcReqWifiSetMaxTxPower *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_max_tx_power__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_set_max_tx_power__pack + (const RpcReqWifiSetMaxTxPower *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_max_tx_power__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_set_max_tx_power__pack_to_buffer + (const RpcReqWifiSetMaxTxPower *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_max_tx_power__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiSetMaxTxPower * + rpc__req__wifi_set_max_tx_power__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiSetMaxTxPower *) + protobuf_c_message_unpack (&rpc__req__wifi_set_max_tx_power__descriptor, + allocator, len, data); +} +void rpc__req__wifi_set_max_tx_power__free_unpacked + (RpcReqWifiSetMaxTxPower *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_set_max_tx_power__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_set_max_tx_power__init + (RpcRespWifiSetMaxTxPower *message) +{ + static const RpcRespWifiSetMaxTxPower init_value = RPC__RESP__WIFI_SET_MAX_TX_POWER__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_set_max_tx_power__get_packed_size + (const RpcRespWifiSetMaxTxPower *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_max_tx_power__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_set_max_tx_power__pack + (const RpcRespWifiSetMaxTxPower *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_max_tx_power__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_set_max_tx_power__pack_to_buffer + (const RpcRespWifiSetMaxTxPower *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_max_tx_power__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiSetMaxTxPower * + rpc__resp__wifi_set_max_tx_power__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiSetMaxTxPower *) + protobuf_c_message_unpack (&rpc__resp__wifi_set_max_tx_power__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_set_max_tx_power__free_unpacked + (RpcRespWifiSetMaxTxPower *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_set_max_tx_power__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_get_max_tx_power__init + (RpcReqWifiGetMaxTxPower *message) +{ + static const RpcReqWifiGetMaxTxPower init_value = RPC__REQ__WIFI_GET_MAX_TX_POWER__INIT; + *message = init_value; +} +size_t rpc__req__wifi_get_max_tx_power__get_packed_size + (const RpcReqWifiGetMaxTxPower *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_max_tx_power__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_get_max_tx_power__pack + (const RpcReqWifiGetMaxTxPower *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_max_tx_power__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_get_max_tx_power__pack_to_buffer + (const RpcReqWifiGetMaxTxPower *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_max_tx_power__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiGetMaxTxPower * + rpc__req__wifi_get_max_tx_power__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiGetMaxTxPower *) + protobuf_c_message_unpack (&rpc__req__wifi_get_max_tx_power__descriptor, + allocator, len, data); +} +void rpc__req__wifi_get_max_tx_power__free_unpacked + (RpcReqWifiGetMaxTxPower *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_get_max_tx_power__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_get_max_tx_power__init + (RpcRespWifiGetMaxTxPower *message) +{ + static const RpcRespWifiGetMaxTxPower init_value = RPC__RESP__WIFI_GET_MAX_TX_POWER__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_get_max_tx_power__get_packed_size + (const RpcRespWifiGetMaxTxPower *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_max_tx_power__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_get_max_tx_power__pack + (const RpcRespWifiGetMaxTxPower *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_max_tx_power__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_get_max_tx_power__pack_to_buffer + (const RpcRespWifiGetMaxTxPower *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_max_tx_power__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiGetMaxTxPower * + rpc__resp__wifi_get_max_tx_power__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiGetMaxTxPower *) + protobuf_c_message_unpack (&rpc__resp__wifi_get_max_tx_power__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_get_max_tx_power__free_unpacked + (RpcRespWifiGetMaxTxPower *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_get_max_tx_power__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__config_heartbeat__init + (RpcReqConfigHeartbeat *message) +{ + static const RpcReqConfigHeartbeat init_value = RPC__REQ__CONFIG_HEARTBEAT__INIT; + *message = init_value; +} +size_t rpc__req__config_heartbeat__get_packed_size + (const RpcReqConfigHeartbeat *message) +{ + assert(message->base.descriptor == &rpc__req__config_heartbeat__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__config_heartbeat__pack + (const RpcReqConfigHeartbeat *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__config_heartbeat__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__config_heartbeat__pack_to_buffer + (const RpcReqConfigHeartbeat *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__config_heartbeat__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqConfigHeartbeat * + rpc__req__config_heartbeat__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqConfigHeartbeat *) + protobuf_c_message_unpack (&rpc__req__config_heartbeat__descriptor, + allocator, len, data); +} +void rpc__req__config_heartbeat__free_unpacked + (RpcReqConfigHeartbeat *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__config_heartbeat__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__config_heartbeat__init + (RpcRespConfigHeartbeat *message) +{ + static const RpcRespConfigHeartbeat init_value = RPC__RESP__CONFIG_HEARTBEAT__INIT; + *message = init_value; +} +size_t rpc__resp__config_heartbeat__get_packed_size + (const RpcRespConfigHeartbeat *message) +{ + assert(message->base.descriptor == &rpc__resp__config_heartbeat__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__config_heartbeat__pack + (const RpcRespConfigHeartbeat *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__config_heartbeat__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__config_heartbeat__pack_to_buffer + (const RpcRespConfigHeartbeat *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__config_heartbeat__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespConfigHeartbeat * + rpc__resp__config_heartbeat__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespConfigHeartbeat *) + protobuf_c_message_unpack (&rpc__resp__config_heartbeat__descriptor, + allocator, len, data); +} +void rpc__resp__config_heartbeat__free_unpacked + (RpcRespConfigHeartbeat *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__config_heartbeat__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_init__init + (RpcReqWifiInit *message) +{ + static const RpcReqWifiInit init_value = RPC__REQ__WIFI_INIT__INIT; + *message = init_value; +} +size_t rpc__req__wifi_init__get_packed_size + (const RpcReqWifiInit *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_init__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_init__pack + (const RpcReqWifiInit *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_init__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_init__pack_to_buffer + (const RpcReqWifiInit *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_init__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiInit * + rpc__req__wifi_init__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiInit *) + protobuf_c_message_unpack (&rpc__req__wifi_init__descriptor, + allocator, len, data); +} +void rpc__req__wifi_init__free_unpacked + (RpcReqWifiInit *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_init__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_init__init + (RpcRespWifiInit *message) +{ + static const RpcRespWifiInit init_value = RPC__RESP__WIFI_INIT__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_init__get_packed_size + (const RpcRespWifiInit *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_init__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_init__pack + (const RpcRespWifiInit *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_init__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_init__pack_to_buffer + (const RpcRespWifiInit *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_init__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiInit * + rpc__resp__wifi_init__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiInit *) + protobuf_c_message_unpack (&rpc__resp__wifi_init__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_init__free_unpacked + (RpcRespWifiInit *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_init__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_deinit__init + (RpcReqWifiDeinit *message) +{ + static const RpcReqWifiDeinit init_value = RPC__REQ__WIFI_DEINIT__INIT; + *message = init_value; +} +size_t rpc__req__wifi_deinit__get_packed_size + (const RpcReqWifiDeinit *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_deinit__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_deinit__pack + (const RpcReqWifiDeinit *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_deinit__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_deinit__pack_to_buffer + (const RpcReqWifiDeinit *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_deinit__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiDeinit * + rpc__req__wifi_deinit__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiDeinit *) + protobuf_c_message_unpack (&rpc__req__wifi_deinit__descriptor, + allocator, len, data); +} +void rpc__req__wifi_deinit__free_unpacked + (RpcReqWifiDeinit *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_deinit__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_deinit__init + (RpcRespWifiDeinit *message) +{ + static const RpcRespWifiDeinit init_value = RPC__RESP__WIFI_DEINIT__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_deinit__get_packed_size + (const RpcRespWifiDeinit *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_deinit__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_deinit__pack + (const RpcRespWifiDeinit *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_deinit__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_deinit__pack_to_buffer + (const RpcRespWifiDeinit *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_deinit__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiDeinit * + rpc__resp__wifi_deinit__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiDeinit *) + protobuf_c_message_unpack (&rpc__resp__wifi_deinit__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_deinit__free_unpacked + (RpcRespWifiDeinit *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_deinit__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_set_config__init + (RpcReqWifiSetConfig *message) +{ + static const RpcReqWifiSetConfig init_value = RPC__REQ__WIFI_SET_CONFIG__INIT; + *message = init_value; +} +size_t rpc__req__wifi_set_config__get_packed_size + (const RpcReqWifiSetConfig *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_config__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_set_config__pack + (const RpcReqWifiSetConfig *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_config__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_set_config__pack_to_buffer + (const RpcReqWifiSetConfig *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_config__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiSetConfig * + rpc__req__wifi_set_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiSetConfig *) + protobuf_c_message_unpack (&rpc__req__wifi_set_config__descriptor, + allocator, len, data); +} +void rpc__req__wifi_set_config__free_unpacked + (RpcReqWifiSetConfig *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_set_config__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_set_config__init + (RpcRespWifiSetConfig *message) +{ + static const RpcRespWifiSetConfig init_value = RPC__RESP__WIFI_SET_CONFIG__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_set_config__get_packed_size + (const RpcRespWifiSetConfig *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_config__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_set_config__pack + (const RpcRespWifiSetConfig *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_config__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_set_config__pack_to_buffer + (const RpcRespWifiSetConfig *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_config__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiSetConfig * + rpc__resp__wifi_set_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiSetConfig *) + protobuf_c_message_unpack (&rpc__resp__wifi_set_config__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_set_config__free_unpacked + (RpcRespWifiSetConfig *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_set_config__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_get_config__init + (RpcReqWifiGetConfig *message) +{ + static const RpcReqWifiGetConfig init_value = RPC__REQ__WIFI_GET_CONFIG__INIT; + *message = init_value; +} +size_t rpc__req__wifi_get_config__get_packed_size + (const RpcReqWifiGetConfig *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_config__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_get_config__pack + (const RpcReqWifiGetConfig *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_config__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_get_config__pack_to_buffer + (const RpcReqWifiGetConfig *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_config__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiGetConfig * + rpc__req__wifi_get_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiGetConfig *) + protobuf_c_message_unpack (&rpc__req__wifi_get_config__descriptor, + allocator, len, data); +} +void rpc__req__wifi_get_config__free_unpacked + (RpcReqWifiGetConfig *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_get_config__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_get_config__init + (RpcRespWifiGetConfig *message) +{ + static const RpcRespWifiGetConfig init_value = RPC__RESP__WIFI_GET_CONFIG__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_get_config__get_packed_size + (const RpcRespWifiGetConfig *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_config__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_get_config__pack + (const RpcRespWifiGetConfig *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_config__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_get_config__pack_to_buffer + (const RpcRespWifiGetConfig *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_config__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiGetConfig * + rpc__resp__wifi_get_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiGetConfig *) + protobuf_c_message_unpack (&rpc__resp__wifi_get_config__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_get_config__free_unpacked + (RpcRespWifiGetConfig *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_get_config__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_connect__init + (RpcReqWifiConnect *message) +{ + static const RpcReqWifiConnect init_value = RPC__REQ__WIFI_CONNECT__INIT; + *message = init_value; +} +size_t rpc__req__wifi_connect__get_packed_size + (const RpcReqWifiConnect *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_connect__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_connect__pack + (const RpcReqWifiConnect *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_connect__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_connect__pack_to_buffer + (const RpcReqWifiConnect *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_connect__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiConnect * + rpc__req__wifi_connect__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiConnect *) + protobuf_c_message_unpack (&rpc__req__wifi_connect__descriptor, + allocator, len, data); +} +void rpc__req__wifi_connect__free_unpacked + (RpcReqWifiConnect *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_connect__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_connect__init + (RpcRespWifiConnect *message) +{ + static const RpcRespWifiConnect init_value = RPC__RESP__WIFI_CONNECT__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_connect__get_packed_size + (const RpcRespWifiConnect *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_connect__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_connect__pack + (const RpcRespWifiConnect *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_connect__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_connect__pack_to_buffer + (const RpcRespWifiConnect *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_connect__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiConnect * + rpc__resp__wifi_connect__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiConnect *) + protobuf_c_message_unpack (&rpc__resp__wifi_connect__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_connect__free_unpacked + (RpcRespWifiConnect *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_connect__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_disconnect__init + (RpcReqWifiDisconnect *message) +{ + static const RpcReqWifiDisconnect init_value = RPC__REQ__WIFI_DISCONNECT__INIT; + *message = init_value; +} +size_t rpc__req__wifi_disconnect__get_packed_size + (const RpcReqWifiDisconnect *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_disconnect__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_disconnect__pack + (const RpcReqWifiDisconnect *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_disconnect__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_disconnect__pack_to_buffer + (const RpcReqWifiDisconnect *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_disconnect__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiDisconnect * + rpc__req__wifi_disconnect__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiDisconnect *) + protobuf_c_message_unpack (&rpc__req__wifi_disconnect__descriptor, + allocator, len, data); +} +void rpc__req__wifi_disconnect__free_unpacked + (RpcReqWifiDisconnect *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_disconnect__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_disconnect__init + (RpcRespWifiDisconnect *message) +{ + static const RpcRespWifiDisconnect init_value = RPC__RESP__WIFI_DISCONNECT__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_disconnect__get_packed_size + (const RpcRespWifiDisconnect *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_disconnect__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_disconnect__pack + (const RpcRespWifiDisconnect *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_disconnect__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_disconnect__pack_to_buffer + (const RpcRespWifiDisconnect *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_disconnect__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiDisconnect * + rpc__resp__wifi_disconnect__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiDisconnect *) + protobuf_c_message_unpack (&rpc__resp__wifi_disconnect__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_disconnect__free_unpacked + (RpcRespWifiDisconnect *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_disconnect__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_start__init + (RpcReqWifiStart *message) +{ + static const RpcReqWifiStart init_value = RPC__REQ__WIFI_START__INIT; + *message = init_value; +} +size_t rpc__req__wifi_start__get_packed_size + (const RpcReqWifiStart *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_start__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_start__pack + (const RpcReqWifiStart *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_start__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_start__pack_to_buffer + (const RpcReqWifiStart *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_start__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiStart * + rpc__req__wifi_start__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiStart *) + protobuf_c_message_unpack (&rpc__req__wifi_start__descriptor, + allocator, len, data); +} +void rpc__req__wifi_start__free_unpacked + (RpcReqWifiStart *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_start__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_start__init + (RpcRespWifiStart *message) +{ + static const RpcRespWifiStart init_value = RPC__RESP__WIFI_START__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_start__get_packed_size + (const RpcRespWifiStart *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_start__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_start__pack + (const RpcRespWifiStart *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_start__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_start__pack_to_buffer + (const RpcRespWifiStart *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_start__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiStart * + rpc__resp__wifi_start__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiStart *) + protobuf_c_message_unpack (&rpc__resp__wifi_start__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_start__free_unpacked + (RpcRespWifiStart *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_start__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_stop__init + (RpcReqWifiStop *message) +{ + static const RpcReqWifiStop init_value = RPC__REQ__WIFI_STOP__INIT; + *message = init_value; +} +size_t rpc__req__wifi_stop__get_packed_size + (const RpcReqWifiStop *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_stop__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_stop__pack + (const RpcReqWifiStop *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_stop__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_stop__pack_to_buffer + (const RpcReqWifiStop *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_stop__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiStop * + rpc__req__wifi_stop__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiStop *) + protobuf_c_message_unpack (&rpc__req__wifi_stop__descriptor, + allocator, len, data); +} +void rpc__req__wifi_stop__free_unpacked + (RpcReqWifiStop *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_stop__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_stop__init + (RpcRespWifiStop *message) +{ + static const RpcRespWifiStop init_value = RPC__RESP__WIFI_STOP__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_stop__get_packed_size + (const RpcRespWifiStop *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_stop__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_stop__pack + (const RpcRespWifiStop *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_stop__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_stop__pack_to_buffer + (const RpcRespWifiStop *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_stop__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiStop * + rpc__resp__wifi_stop__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiStop *) + protobuf_c_message_unpack (&rpc__resp__wifi_stop__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_stop__free_unpacked + (RpcRespWifiStop *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_stop__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_scan_start__init + (RpcReqWifiScanStart *message) +{ + static const RpcReqWifiScanStart init_value = RPC__REQ__WIFI_SCAN_START__INIT; + *message = init_value; +} +size_t rpc__req__wifi_scan_start__get_packed_size + (const RpcReqWifiScanStart *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_scan_start__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_scan_start__pack + (const RpcReqWifiScanStart *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_scan_start__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_scan_start__pack_to_buffer + (const RpcReqWifiScanStart *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_scan_start__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiScanStart * + rpc__req__wifi_scan_start__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiScanStart *) + protobuf_c_message_unpack (&rpc__req__wifi_scan_start__descriptor, + allocator, len, data); +} +void rpc__req__wifi_scan_start__free_unpacked + (RpcReqWifiScanStart *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_scan_start__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_scan_start__init + (RpcRespWifiScanStart *message) +{ + static const RpcRespWifiScanStart init_value = RPC__RESP__WIFI_SCAN_START__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_scan_start__get_packed_size + (const RpcRespWifiScanStart *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_scan_start__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_scan_start__pack + (const RpcRespWifiScanStart *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_scan_start__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_scan_start__pack_to_buffer + (const RpcRespWifiScanStart *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_scan_start__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiScanStart * + rpc__resp__wifi_scan_start__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiScanStart *) + protobuf_c_message_unpack (&rpc__resp__wifi_scan_start__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_scan_start__free_unpacked + (RpcRespWifiScanStart *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_scan_start__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_scan_stop__init + (RpcReqWifiScanStop *message) +{ + static const RpcReqWifiScanStop init_value = RPC__REQ__WIFI_SCAN_STOP__INIT; + *message = init_value; +} +size_t rpc__req__wifi_scan_stop__get_packed_size + (const RpcReqWifiScanStop *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_scan_stop__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_scan_stop__pack + (const RpcReqWifiScanStop *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_scan_stop__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_scan_stop__pack_to_buffer + (const RpcReqWifiScanStop *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_scan_stop__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiScanStop * + rpc__req__wifi_scan_stop__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiScanStop *) + protobuf_c_message_unpack (&rpc__req__wifi_scan_stop__descriptor, + allocator, len, data); +} +void rpc__req__wifi_scan_stop__free_unpacked + (RpcReqWifiScanStop *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_scan_stop__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_scan_stop__init + (RpcRespWifiScanStop *message) +{ + static const RpcRespWifiScanStop init_value = RPC__RESP__WIFI_SCAN_STOP__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_scan_stop__get_packed_size + (const RpcRespWifiScanStop *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_scan_stop__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_scan_stop__pack + (const RpcRespWifiScanStop *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_scan_stop__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_scan_stop__pack_to_buffer + (const RpcRespWifiScanStop *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_scan_stop__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiScanStop * + rpc__resp__wifi_scan_stop__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiScanStop *) + protobuf_c_message_unpack (&rpc__resp__wifi_scan_stop__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_scan_stop__free_unpacked + (RpcRespWifiScanStop *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_scan_stop__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_scan_get_ap_num__init + (RpcReqWifiScanGetApNum *message) +{ + static const RpcReqWifiScanGetApNum init_value = RPC__REQ__WIFI_SCAN_GET_AP_NUM__INIT; + *message = init_value; +} +size_t rpc__req__wifi_scan_get_ap_num__get_packed_size + (const RpcReqWifiScanGetApNum *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_num__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_scan_get_ap_num__pack + (const RpcReqWifiScanGetApNum *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_num__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_scan_get_ap_num__pack_to_buffer + (const RpcReqWifiScanGetApNum *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_num__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiScanGetApNum * + rpc__req__wifi_scan_get_ap_num__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiScanGetApNum *) + protobuf_c_message_unpack (&rpc__req__wifi_scan_get_ap_num__descriptor, + allocator, len, data); +} +void rpc__req__wifi_scan_get_ap_num__free_unpacked + (RpcReqWifiScanGetApNum *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_num__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_scan_get_ap_num__init + (RpcRespWifiScanGetApNum *message) +{ + static const RpcRespWifiScanGetApNum init_value = RPC__RESP__WIFI_SCAN_GET_AP_NUM__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_scan_get_ap_num__get_packed_size + (const RpcRespWifiScanGetApNum *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_num__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_scan_get_ap_num__pack + (const RpcRespWifiScanGetApNum *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_num__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_scan_get_ap_num__pack_to_buffer + (const RpcRespWifiScanGetApNum *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_num__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiScanGetApNum * + rpc__resp__wifi_scan_get_ap_num__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiScanGetApNum *) + protobuf_c_message_unpack (&rpc__resp__wifi_scan_get_ap_num__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_scan_get_ap_num__free_unpacked + (RpcRespWifiScanGetApNum *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_num__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_scan_get_ap_records__init + (RpcReqWifiScanGetApRecords *message) +{ + static const RpcReqWifiScanGetApRecords init_value = RPC__REQ__WIFI_SCAN_GET_AP_RECORDS__INIT; + *message = init_value; +} +size_t rpc__req__wifi_scan_get_ap_records__get_packed_size + (const RpcReqWifiScanGetApRecords *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_records__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_scan_get_ap_records__pack + (const RpcReqWifiScanGetApRecords *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_records__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_scan_get_ap_records__pack_to_buffer + (const RpcReqWifiScanGetApRecords *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_records__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiScanGetApRecords * + rpc__req__wifi_scan_get_ap_records__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiScanGetApRecords *) + protobuf_c_message_unpack (&rpc__req__wifi_scan_get_ap_records__descriptor, + allocator, len, data); +} +void rpc__req__wifi_scan_get_ap_records__free_unpacked + (RpcReqWifiScanGetApRecords *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_records__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_scan_get_ap_records__init + (RpcRespWifiScanGetApRecords *message) +{ + static const RpcRespWifiScanGetApRecords init_value = RPC__RESP__WIFI_SCAN_GET_AP_RECORDS__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_scan_get_ap_records__get_packed_size + (const RpcRespWifiScanGetApRecords *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_records__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_scan_get_ap_records__pack + (const RpcRespWifiScanGetApRecords *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_records__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_scan_get_ap_records__pack_to_buffer + (const RpcRespWifiScanGetApRecords *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_records__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiScanGetApRecords * + rpc__resp__wifi_scan_get_ap_records__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiScanGetApRecords *) + protobuf_c_message_unpack (&rpc__resp__wifi_scan_get_ap_records__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_scan_get_ap_records__free_unpacked + (RpcRespWifiScanGetApRecords *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_records__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_scan_get_ap_record__init + (RpcReqWifiScanGetApRecord *message) +{ + static const RpcReqWifiScanGetApRecord init_value = RPC__REQ__WIFI_SCAN_GET_AP_RECORD__INIT; + *message = init_value; +} +size_t rpc__req__wifi_scan_get_ap_record__get_packed_size + (const RpcReqWifiScanGetApRecord *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_record__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_scan_get_ap_record__pack + (const RpcReqWifiScanGetApRecord *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_record__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_scan_get_ap_record__pack_to_buffer + (const RpcReqWifiScanGetApRecord *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_record__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiScanGetApRecord * + rpc__req__wifi_scan_get_ap_record__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiScanGetApRecord *) + protobuf_c_message_unpack (&rpc__req__wifi_scan_get_ap_record__descriptor, + allocator, len, data); +} +void rpc__req__wifi_scan_get_ap_record__free_unpacked + (RpcReqWifiScanGetApRecord *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_record__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_scan_get_ap_record__init + (RpcRespWifiScanGetApRecord *message) +{ + static const RpcRespWifiScanGetApRecord init_value = RPC__RESP__WIFI_SCAN_GET_AP_RECORD__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_scan_get_ap_record__get_packed_size + (const RpcRespWifiScanGetApRecord *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_record__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_scan_get_ap_record__pack + (const RpcRespWifiScanGetApRecord *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_record__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_scan_get_ap_record__pack_to_buffer + (const RpcRespWifiScanGetApRecord *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_record__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiScanGetApRecord * + rpc__resp__wifi_scan_get_ap_record__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiScanGetApRecord *) + protobuf_c_message_unpack (&rpc__resp__wifi_scan_get_ap_record__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_scan_get_ap_record__free_unpacked + (RpcRespWifiScanGetApRecord *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_record__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_clear_ap_list__init + (RpcReqWifiClearApList *message) +{ + static const RpcReqWifiClearApList init_value = RPC__REQ__WIFI_CLEAR_AP_LIST__INIT; + *message = init_value; +} +size_t rpc__req__wifi_clear_ap_list__get_packed_size + (const RpcReqWifiClearApList *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_clear_ap_list__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_clear_ap_list__pack + (const RpcReqWifiClearApList *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_clear_ap_list__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_clear_ap_list__pack_to_buffer + (const RpcReqWifiClearApList *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_clear_ap_list__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiClearApList * + rpc__req__wifi_clear_ap_list__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiClearApList *) + protobuf_c_message_unpack (&rpc__req__wifi_clear_ap_list__descriptor, + allocator, len, data); +} +void rpc__req__wifi_clear_ap_list__free_unpacked + (RpcReqWifiClearApList *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_clear_ap_list__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_clear_ap_list__init + (RpcRespWifiClearApList *message) +{ + static const RpcRespWifiClearApList init_value = RPC__RESP__WIFI_CLEAR_AP_LIST__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_clear_ap_list__get_packed_size + (const RpcRespWifiClearApList *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_clear_ap_list__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_clear_ap_list__pack + (const RpcRespWifiClearApList *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_clear_ap_list__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_clear_ap_list__pack_to_buffer + (const RpcRespWifiClearApList *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_clear_ap_list__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiClearApList * + rpc__resp__wifi_clear_ap_list__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiClearApList *) + protobuf_c_message_unpack (&rpc__resp__wifi_clear_ap_list__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_clear_ap_list__free_unpacked + (RpcRespWifiClearApList *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_clear_ap_list__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_restore__init + (RpcReqWifiRestore *message) +{ + static const RpcReqWifiRestore init_value = RPC__REQ__WIFI_RESTORE__INIT; + *message = init_value; +} +size_t rpc__req__wifi_restore__get_packed_size + (const RpcReqWifiRestore *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_restore__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_restore__pack + (const RpcReqWifiRestore *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_restore__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_restore__pack_to_buffer + (const RpcReqWifiRestore *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_restore__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiRestore * + rpc__req__wifi_restore__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiRestore *) + protobuf_c_message_unpack (&rpc__req__wifi_restore__descriptor, + allocator, len, data); +} +void rpc__req__wifi_restore__free_unpacked + (RpcReqWifiRestore *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_restore__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_restore__init + (RpcRespWifiRestore *message) +{ + static const RpcRespWifiRestore init_value = RPC__RESP__WIFI_RESTORE__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_restore__get_packed_size + (const RpcRespWifiRestore *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_restore__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_restore__pack + (const RpcRespWifiRestore *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_restore__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_restore__pack_to_buffer + (const RpcRespWifiRestore *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_restore__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiRestore * + rpc__resp__wifi_restore__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiRestore *) + protobuf_c_message_unpack (&rpc__resp__wifi_restore__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_restore__free_unpacked + (RpcRespWifiRestore *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_restore__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_clear_fast_connect__init + (RpcReqWifiClearFastConnect *message) +{ + static const RpcReqWifiClearFastConnect init_value = RPC__REQ__WIFI_CLEAR_FAST_CONNECT__INIT; + *message = init_value; +} +size_t rpc__req__wifi_clear_fast_connect__get_packed_size + (const RpcReqWifiClearFastConnect *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_clear_fast_connect__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_clear_fast_connect__pack + (const RpcReqWifiClearFastConnect *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_clear_fast_connect__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_clear_fast_connect__pack_to_buffer + (const RpcReqWifiClearFastConnect *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_clear_fast_connect__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiClearFastConnect * + rpc__req__wifi_clear_fast_connect__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiClearFastConnect *) + protobuf_c_message_unpack (&rpc__req__wifi_clear_fast_connect__descriptor, + allocator, len, data); +} +void rpc__req__wifi_clear_fast_connect__free_unpacked + (RpcReqWifiClearFastConnect *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_clear_fast_connect__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_clear_fast_connect__init + (RpcRespWifiClearFastConnect *message) +{ + static const RpcRespWifiClearFastConnect init_value = RPC__RESP__WIFI_CLEAR_FAST_CONNECT__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_clear_fast_connect__get_packed_size + (const RpcRespWifiClearFastConnect *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_clear_fast_connect__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_clear_fast_connect__pack + (const RpcRespWifiClearFastConnect *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_clear_fast_connect__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_clear_fast_connect__pack_to_buffer + (const RpcRespWifiClearFastConnect *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_clear_fast_connect__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiClearFastConnect * + rpc__resp__wifi_clear_fast_connect__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiClearFastConnect *) + protobuf_c_message_unpack (&rpc__resp__wifi_clear_fast_connect__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_clear_fast_connect__free_unpacked + (RpcRespWifiClearFastConnect *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_clear_fast_connect__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_deauth_sta__init + (RpcReqWifiDeauthSta *message) +{ + static const RpcReqWifiDeauthSta init_value = RPC__REQ__WIFI_DEAUTH_STA__INIT; + *message = init_value; +} +size_t rpc__req__wifi_deauth_sta__get_packed_size + (const RpcReqWifiDeauthSta *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_deauth_sta__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_deauth_sta__pack + (const RpcReqWifiDeauthSta *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_deauth_sta__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_deauth_sta__pack_to_buffer + (const RpcReqWifiDeauthSta *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_deauth_sta__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiDeauthSta * + rpc__req__wifi_deauth_sta__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiDeauthSta *) + protobuf_c_message_unpack (&rpc__req__wifi_deauth_sta__descriptor, + allocator, len, data); +} +void rpc__req__wifi_deauth_sta__free_unpacked + (RpcReqWifiDeauthSta *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_deauth_sta__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_deauth_sta__init + (RpcRespWifiDeauthSta *message) +{ + static const RpcRespWifiDeauthSta init_value = RPC__RESP__WIFI_DEAUTH_STA__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_deauth_sta__get_packed_size + (const RpcRespWifiDeauthSta *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_deauth_sta__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_deauth_sta__pack + (const RpcRespWifiDeauthSta *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_deauth_sta__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_deauth_sta__pack_to_buffer + (const RpcRespWifiDeauthSta *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_deauth_sta__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiDeauthSta * + rpc__resp__wifi_deauth_sta__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiDeauthSta *) + protobuf_c_message_unpack (&rpc__resp__wifi_deauth_sta__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_deauth_sta__free_unpacked + (RpcRespWifiDeauthSta *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_deauth_sta__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_sta_get_ap_info__init + (RpcReqWifiStaGetApInfo *message) +{ + static const RpcReqWifiStaGetApInfo init_value = RPC__REQ__WIFI_STA_GET_AP_INFO__INIT; + *message = init_value; +} +size_t rpc__req__wifi_sta_get_ap_info__get_packed_size + (const RpcReqWifiStaGetApInfo *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_sta_get_ap_info__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_sta_get_ap_info__pack + (const RpcReqWifiStaGetApInfo *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_sta_get_ap_info__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_sta_get_ap_info__pack_to_buffer + (const RpcReqWifiStaGetApInfo *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_sta_get_ap_info__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiStaGetApInfo * + rpc__req__wifi_sta_get_ap_info__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiStaGetApInfo *) + protobuf_c_message_unpack (&rpc__req__wifi_sta_get_ap_info__descriptor, + allocator, len, data); +} +void rpc__req__wifi_sta_get_ap_info__free_unpacked + (RpcReqWifiStaGetApInfo *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_sta_get_ap_info__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_sta_get_ap_info__init + (RpcRespWifiStaGetApInfo *message) +{ + static const RpcRespWifiStaGetApInfo init_value = RPC__RESP__WIFI_STA_GET_AP_INFO__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_sta_get_ap_info__get_packed_size + (const RpcRespWifiStaGetApInfo *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_ap_info__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_sta_get_ap_info__pack + (const RpcRespWifiStaGetApInfo *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_ap_info__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_sta_get_ap_info__pack_to_buffer + (const RpcRespWifiStaGetApInfo *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_ap_info__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiStaGetApInfo * + rpc__resp__wifi_sta_get_ap_info__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiStaGetApInfo *) + protobuf_c_message_unpack (&rpc__resp__wifi_sta_get_ap_info__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_sta_get_ap_info__free_unpacked + (RpcRespWifiStaGetApInfo *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_ap_info__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_set_protocol__init + (RpcReqWifiSetProtocol *message) +{ + static const RpcReqWifiSetProtocol init_value = RPC__REQ__WIFI_SET_PROTOCOL__INIT; + *message = init_value; +} +size_t rpc__req__wifi_set_protocol__get_packed_size + (const RpcReqWifiSetProtocol *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_protocol__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_set_protocol__pack + (const RpcReqWifiSetProtocol *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_protocol__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_set_protocol__pack_to_buffer + (const RpcReqWifiSetProtocol *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_protocol__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiSetProtocol * + rpc__req__wifi_set_protocol__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiSetProtocol *) + protobuf_c_message_unpack (&rpc__req__wifi_set_protocol__descriptor, + allocator, len, data); +} +void rpc__req__wifi_set_protocol__free_unpacked + (RpcReqWifiSetProtocol *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_set_protocol__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_set_protocol__init + (RpcRespWifiSetProtocol *message) +{ + static const RpcRespWifiSetProtocol init_value = RPC__RESP__WIFI_SET_PROTOCOL__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_set_protocol__get_packed_size + (const RpcRespWifiSetProtocol *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_protocol__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_set_protocol__pack + (const RpcRespWifiSetProtocol *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_protocol__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_set_protocol__pack_to_buffer + (const RpcRespWifiSetProtocol *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_protocol__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiSetProtocol * + rpc__resp__wifi_set_protocol__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiSetProtocol *) + protobuf_c_message_unpack (&rpc__resp__wifi_set_protocol__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_set_protocol__free_unpacked + (RpcRespWifiSetProtocol *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_set_protocol__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_get_protocol__init + (RpcReqWifiGetProtocol *message) +{ + static const RpcReqWifiGetProtocol init_value = RPC__REQ__WIFI_GET_PROTOCOL__INIT; + *message = init_value; +} +size_t rpc__req__wifi_get_protocol__get_packed_size + (const RpcReqWifiGetProtocol *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_protocol__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_get_protocol__pack + (const RpcReqWifiGetProtocol *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_protocol__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_get_protocol__pack_to_buffer + (const RpcReqWifiGetProtocol *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_protocol__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiGetProtocol * + rpc__req__wifi_get_protocol__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiGetProtocol *) + protobuf_c_message_unpack (&rpc__req__wifi_get_protocol__descriptor, + allocator, len, data); +} +void rpc__req__wifi_get_protocol__free_unpacked + (RpcReqWifiGetProtocol *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_get_protocol__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_get_protocol__init + (RpcRespWifiGetProtocol *message) +{ + static const RpcRespWifiGetProtocol init_value = RPC__RESP__WIFI_GET_PROTOCOL__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_get_protocol__get_packed_size + (const RpcRespWifiGetProtocol *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_protocol__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_get_protocol__pack + (const RpcRespWifiGetProtocol *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_protocol__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_get_protocol__pack_to_buffer + (const RpcRespWifiGetProtocol *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_protocol__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiGetProtocol * + rpc__resp__wifi_get_protocol__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiGetProtocol *) + protobuf_c_message_unpack (&rpc__resp__wifi_get_protocol__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_get_protocol__free_unpacked + (RpcRespWifiGetProtocol *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_get_protocol__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_set_bandwidth__init + (RpcReqWifiSetBandwidth *message) +{ + static const RpcReqWifiSetBandwidth init_value = RPC__REQ__WIFI_SET_BANDWIDTH__INIT; + *message = init_value; +} +size_t rpc__req__wifi_set_bandwidth__get_packed_size + (const RpcReqWifiSetBandwidth *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_bandwidth__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_set_bandwidth__pack + (const RpcReqWifiSetBandwidth *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_bandwidth__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_set_bandwidth__pack_to_buffer + (const RpcReqWifiSetBandwidth *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_bandwidth__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiSetBandwidth * + rpc__req__wifi_set_bandwidth__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiSetBandwidth *) + protobuf_c_message_unpack (&rpc__req__wifi_set_bandwidth__descriptor, + allocator, len, data); +} +void rpc__req__wifi_set_bandwidth__free_unpacked + (RpcReqWifiSetBandwidth *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_set_bandwidth__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_set_bandwidth__init + (RpcRespWifiSetBandwidth *message) +{ + static const RpcRespWifiSetBandwidth init_value = RPC__RESP__WIFI_SET_BANDWIDTH__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_set_bandwidth__get_packed_size + (const RpcRespWifiSetBandwidth *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidth__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_set_bandwidth__pack + (const RpcRespWifiSetBandwidth *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidth__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_set_bandwidth__pack_to_buffer + (const RpcRespWifiSetBandwidth *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidth__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiSetBandwidth * + rpc__resp__wifi_set_bandwidth__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiSetBandwidth *) + protobuf_c_message_unpack (&rpc__resp__wifi_set_bandwidth__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_set_bandwidth__free_unpacked + (RpcRespWifiSetBandwidth *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidth__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_get_bandwidth__init + (RpcReqWifiGetBandwidth *message) +{ + static const RpcReqWifiGetBandwidth init_value = RPC__REQ__WIFI_GET_BANDWIDTH__INIT; + *message = init_value; +} +size_t rpc__req__wifi_get_bandwidth__get_packed_size + (const RpcReqWifiGetBandwidth *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_bandwidth__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_get_bandwidth__pack + (const RpcReqWifiGetBandwidth *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_bandwidth__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_get_bandwidth__pack_to_buffer + (const RpcReqWifiGetBandwidth *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_bandwidth__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiGetBandwidth * + rpc__req__wifi_get_bandwidth__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiGetBandwidth *) + protobuf_c_message_unpack (&rpc__req__wifi_get_bandwidth__descriptor, + allocator, len, data); +} +void rpc__req__wifi_get_bandwidth__free_unpacked + (RpcReqWifiGetBandwidth *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_get_bandwidth__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_get_bandwidth__init + (RpcRespWifiGetBandwidth *message) +{ + static const RpcRespWifiGetBandwidth init_value = RPC__RESP__WIFI_GET_BANDWIDTH__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_get_bandwidth__get_packed_size + (const RpcRespWifiGetBandwidth *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidth__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_get_bandwidth__pack + (const RpcRespWifiGetBandwidth *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidth__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_get_bandwidth__pack_to_buffer + (const RpcRespWifiGetBandwidth *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidth__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiGetBandwidth * + rpc__resp__wifi_get_bandwidth__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiGetBandwidth *) + protobuf_c_message_unpack (&rpc__resp__wifi_get_bandwidth__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_get_bandwidth__free_unpacked + (RpcRespWifiGetBandwidth *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidth__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_set_channel__init + (RpcReqWifiSetChannel *message) +{ + static const RpcReqWifiSetChannel init_value = RPC__REQ__WIFI_SET_CHANNEL__INIT; + *message = init_value; +} +size_t rpc__req__wifi_set_channel__get_packed_size + (const RpcReqWifiSetChannel *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_channel__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_set_channel__pack + (const RpcReqWifiSetChannel *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_channel__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_set_channel__pack_to_buffer + (const RpcReqWifiSetChannel *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_channel__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiSetChannel * + rpc__req__wifi_set_channel__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiSetChannel *) + protobuf_c_message_unpack (&rpc__req__wifi_set_channel__descriptor, + allocator, len, data); +} +void rpc__req__wifi_set_channel__free_unpacked + (RpcReqWifiSetChannel *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_set_channel__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_set_channel__init + (RpcRespWifiSetChannel *message) +{ + static const RpcRespWifiSetChannel init_value = RPC__RESP__WIFI_SET_CHANNEL__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_set_channel__get_packed_size + (const RpcRespWifiSetChannel *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_channel__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_set_channel__pack + (const RpcRespWifiSetChannel *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_channel__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_set_channel__pack_to_buffer + (const RpcRespWifiSetChannel *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_channel__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiSetChannel * + rpc__resp__wifi_set_channel__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiSetChannel *) + protobuf_c_message_unpack (&rpc__resp__wifi_set_channel__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_set_channel__free_unpacked + (RpcRespWifiSetChannel *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_set_channel__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_get_channel__init + (RpcReqWifiGetChannel *message) +{ + static const RpcReqWifiGetChannel init_value = RPC__REQ__WIFI_GET_CHANNEL__INIT; + *message = init_value; +} +size_t rpc__req__wifi_get_channel__get_packed_size + (const RpcReqWifiGetChannel *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_channel__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_get_channel__pack + (const RpcReqWifiGetChannel *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_channel__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_get_channel__pack_to_buffer + (const RpcReqWifiGetChannel *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_channel__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiGetChannel * + rpc__req__wifi_get_channel__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiGetChannel *) + protobuf_c_message_unpack (&rpc__req__wifi_get_channel__descriptor, + allocator, len, data); +} +void rpc__req__wifi_get_channel__free_unpacked + (RpcReqWifiGetChannel *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_get_channel__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_get_channel__init + (RpcRespWifiGetChannel *message) +{ + static const RpcRespWifiGetChannel init_value = RPC__RESP__WIFI_GET_CHANNEL__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_get_channel__get_packed_size + (const RpcRespWifiGetChannel *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_channel__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_get_channel__pack + (const RpcRespWifiGetChannel *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_channel__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_get_channel__pack_to_buffer + (const RpcRespWifiGetChannel *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_channel__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiGetChannel * + rpc__resp__wifi_get_channel__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiGetChannel *) + protobuf_c_message_unpack (&rpc__resp__wifi_get_channel__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_get_channel__free_unpacked + (RpcRespWifiGetChannel *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_get_channel__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_set_storage__init + (RpcReqWifiSetStorage *message) +{ + static const RpcReqWifiSetStorage init_value = RPC__REQ__WIFI_SET_STORAGE__INIT; + *message = init_value; +} +size_t rpc__req__wifi_set_storage__get_packed_size + (const RpcReqWifiSetStorage *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_storage__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_set_storage__pack + (const RpcReqWifiSetStorage *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_storage__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_set_storage__pack_to_buffer + (const RpcReqWifiSetStorage *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_storage__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiSetStorage * + rpc__req__wifi_set_storage__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiSetStorage *) + protobuf_c_message_unpack (&rpc__req__wifi_set_storage__descriptor, + allocator, len, data); +} +void rpc__req__wifi_set_storage__free_unpacked + (RpcReqWifiSetStorage *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_set_storage__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_set_storage__init + (RpcRespWifiSetStorage *message) +{ + static const RpcRespWifiSetStorage init_value = RPC__RESP__WIFI_SET_STORAGE__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_set_storage__get_packed_size + (const RpcRespWifiSetStorage *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_storage__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_set_storage__pack + (const RpcRespWifiSetStorage *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_storage__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_set_storage__pack_to_buffer + (const RpcRespWifiSetStorage *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_storage__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiSetStorage * + rpc__resp__wifi_set_storage__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiSetStorage *) + protobuf_c_message_unpack (&rpc__resp__wifi_set_storage__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_set_storage__free_unpacked + (RpcRespWifiSetStorage *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_set_storage__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_set_country_code__init + (RpcReqWifiSetCountryCode *message) +{ + static const RpcReqWifiSetCountryCode init_value = RPC__REQ__WIFI_SET_COUNTRY_CODE__INIT; + *message = init_value; +} +size_t rpc__req__wifi_set_country_code__get_packed_size + (const RpcReqWifiSetCountryCode *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_country_code__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_set_country_code__pack + (const RpcReqWifiSetCountryCode *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_country_code__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_set_country_code__pack_to_buffer + (const RpcReqWifiSetCountryCode *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_country_code__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiSetCountryCode * + rpc__req__wifi_set_country_code__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiSetCountryCode *) + protobuf_c_message_unpack (&rpc__req__wifi_set_country_code__descriptor, + allocator, len, data); +} +void rpc__req__wifi_set_country_code__free_unpacked + (RpcReqWifiSetCountryCode *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_set_country_code__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_set_country_code__init + (RpcRespWifiSetCountryCode *message) +{ + static const RpcRespWifiSetCountryCode init_value = RPC__RESP__WIFI_SET_COUNTRY_CODE__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_set_country_code__get_packed_size + (const RpcRespWifiSetCountryCode *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_country_code__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_set_country_code__pack + (const RpcRespWifiSetCountryCode *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_country_code__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_set_country_code__pack_to_buffer + (const RpcRespWifiSetCountryCode *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_country_code__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiSetCountryCode * + rpc__resp__wifi_set_country_code__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiSetCountryCode *) + protobuf_c_message_unpack (&rpc__resp__wifi_set_country_code__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_set_country_code__free_unpacked + (RpcRespWifiSetCountryCode *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_set_country_code__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_get_country_code__init + (RpcReqWifiGetCountryCode *message) +{ + static const RpcReqWifiGetCountryCode init_value = RPC__REQ__WIFI_GET_COUNTRY_CODE__INIT; + *message = init_value; +} +size_t rpc__req__wifi_get_country_code__get_packed_size + (const RpcReqWifiGetCountryCode *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_country_code__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_get_country_code__pack + (const RpcReqWifiGetCountryCode *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_country_code__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_get_country_code__pack_to_buffer + (const RpcReqWifiGetCountryCode *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_country_code__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiGetCountryCode * + rpc__req__wifi_get_country_code__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiGetCountryCode *) + protobuf_c_message_unpack (&rpc__req__wifi_get_country_code__descriptor, + allocator, len, data); +} +void rpc__req__wifi_get_country_code__free_unpacked + (RpcReqWifiGetCountryCode *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_get_country_code__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_get_country_code__init + (RpcRespWifiGetCountryCode *message) +{ + static const RpcRespWifiGetCountryCode init_value = RPC__RESP__WIFI_GET_COUNTRY_CODE__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_get_country_code__get_packed_size + (const RpcRespWifiGetCountryCode *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_country_code__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_get_country_code__pack + (const RpcRespWifiGetCountryCode *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_country_code__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_get_country_code__pack_to_buffer + (const RpcRespWifiGetCountryCode *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_country_code__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiGetCountryCode * + rpc__resp__wifi_get_country_code__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiGetCountryCode *) + protobuf_c_message_unpack (&rpc__resp__wifi_get_country_code__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_get_country_code__free_unpacked + (RpcRespWifiGetCountryCode *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_get_country_code__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_set_country__init + (RpcReqWifiSetCountry *message) +{ + static const RpcReqWifiSetCountry init_value = RPC__REQ__WIFI_SET_COUNTRY__INIT; + *message = init_value; +} +size_t rpc__req__wifi_set_country__get_packed_size + (const RpcReqWifiSetCountry *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_country__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_set_country__pack + (const RpcReqWifiSetCountry *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_country__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_set_country__pack_to_buffer + (const RpcReqWifiSetCountry *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_country__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiSetCountry * + rpc__req__wifi_set_country__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiSetCountry *) + protobuf_c_message_unpack (&rpc__req__wifi_set_country__descriptor, + allocator, len, data); +} +void rpc__req__wifi_set_country__free_unpacked + (RpcReqWifiSetCountry *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_set_country__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_set_country__init + (RpcRespWifiSetCountry *message) +{ + static const RpcRespWifiSetCountry init_value = RPC__RESP__WIFI_SET_COUNTRY__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_set_country__get_packed_size + (const RpcRespWifiSetCountry *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_country__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_set_country__pack + (const RpcRespWifiSetCountry *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_country__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_set_country__pack_to_buffer + (const RpcRespWifiSetCountry *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_country__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiSetCountry * + rpc__resp__wifi_set_country__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiSetCountry *) + protobuf_c_message_unpack (&rpc__resp__wifi_set_country__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_set_country__free_unpacked + (RpcRespWifiSetCountry *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_set_country__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_get_country__init + (RpcReqWifiGetCountry *message) +{ + static const RpcReqWifiGetCountry init_value = RPC__REQ__WIFI_GET_COUNTRY__INIT; + *message = init_value; +} +size_t rpc__req__wifi_get_country__get_packed_size + (const RpcReqWifiGetCountry *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_country__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_get_country__pack + (const RpcReqWifiGetCountry *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_country__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_get_country__pack_to_buffer + (const RpcReqWifiGetCountry *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_country__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiGetCountry * + rpc__req__wifi_get_country__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiGetCountry *) + protobuf_c_message_unpack (&rpc__req__wifi_get_country__descriptor, + allocator, len, data); +} +void rpc__req__wifi_get_country__free_unpacked + (RpcReqWifiGetCountry *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_get_country__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_get_country__init + (RpcRespWifiGetCountry *message) +{ + static const RpcRespWifiGetCountry init_value = RPC__RESP__WIFI_GET_COUNTRY__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_get_country__get_packed_size + (const RpcRespWifiGetCountry *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_country__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_get_country__pack + (const RpcRespWifiGetCountry *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_country__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_get_country__pack_to_buffer + (const RpcRespWifiGetCountry *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_country__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiGetCountry * + rpc__resp__wifi_get_country__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiGetCountry *) + protobuf_c_message_unpack (&rpc__resp__wifi_get_country__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_get_country__free_unpacked + (RpcRespWifiGetCountry *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_get_country__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_ap_get_sta_list__init + (RpcReqWifiApGetStaList *message) +{ + static const RpcReqWifiApGetStaList init_value = RPC__REQ__WIFI_AP_GET_STA_LIST__INIT; + *message = init_value; +} +size_t rpc__req__wifi_ap_get_sta_list__get_packed_size + (const RpcReqWifiApGetStaList *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_list__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_ap_get_sta_list__pack + (const RpcReqWifiApGetStaList *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_list__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_ap_get_sta_list__pack_to_buffer + (const RpcReqWifiApGetStaList *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_list__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiApGetStaList * + rpc__req__wifi_ap_get_sta_list__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiApGetStaList *) + protobuf_c_message_unpack (&rpc__req__wifi_ap_get_sta_list__descriptor, + allocator, len, data); +} +void rpc__req__wifi_ap_get_sta_list__free_unpacked + (RpcReqWifiApGetStaList *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_list__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_ap_get_sta_list__init + (RpcRespWifiApGetStaList *message) +{ + static const RpcRespWifiApGetStaList init_value = RPC__RESP__WIFI_AP_GET_STA_LIST__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_ap_get_sta_list__get_packed_size + (const RpcRespWifiApGetStaList *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_list__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_ap_get_sta_list__pack + (const RpcRespWifiApGetStaList *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_list__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_ap_get_sta_list__pack_to_buffer + (const RpcRespWifiApGetStaList *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_list__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiApGetStaList * + rpc__resp__wifi_ap_get_sta_list__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiApGetStaList *) + protobuf_c_message_unpack (&rpc__resp__wifi_ap_get_sta_list__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_ap_get_sta_list__free_unpacked + (RpcRespWifiApGetStaList *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_list__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_ap_get_sta_aid__init + (RpcReqWifiApGetStaAid *message) +{ + static const RpcReqWifiApGetStaAid init_value = RPC__REQ__WIFI_AP_GET_STA_AID__INIT; + *message = init_value; +} +size_t rpc__req__wifi_ap_get_sta_aid__get_packed_size + (const RpcReqWifiApGetStaAid *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_aid__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_ap_get_sta_aid__pack + (const RpcReqWifiApGetStaAid *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_aid__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_ap_get_sta_aid__pack_to_buffer + (const RpcReqWifiApGetStaAid *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_aid__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiApGetStaAid * + rpc__req__wifi_ap_get_sta_aid__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiApGetStaAid *) + protobuf_c_message_unpack (&rpc__req__wifi_ap_get_sta_aid__descriptor, + allocator, len, data); +} +void rpc__req__wifi_ap_get_sta_aid__free_unpacked + (RpcReqWifiApGetStaAid *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_aid__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_sta_get_negotiated_phymode__init + (RpcReqWifiStaGetNegotiatedPhymode *message) +{ + static const RpcReqWifiStaGetNegotiatedPhymode init_value = RPC__REQ__WIFI_STA_GET_NEGOTIATED_PHYMODE__INIT; + *message = init_value; +} +size_t rpc__req__wifi_sta_get_negotiated_phymode__get_packed_size + (const RpcReqWifiStaGetNegotiatedPhymode *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_sta_get_negotiated_phymode__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_sta_get_negotiated_phymode__pack + (const RpcReqWifiStaGetNegotiatedPhymode *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_sta_get_negotiated_phymode__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_sta_get_negotiated_phymode__pack_to_buffer + (const RpcReqWifiStaGetNegotiatedPhymode *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_sta_get_negotiated_phymode__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiStaGetNegotiatedPhymode * + rpc__req__wifi_sta_get_negotiated_phymode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiStaGetNegotiatedPhymode *) + protobuf_c_message_unpack (&rpc__req__wifi_sta_get_negotiated_phymode__descriptor, + allocator, len, data); +} +void rpc__req__wifi_sta_get_negotiated_phymode__free_unpacked + (RpcReqWifiStaGetNegotiatedPhymode *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_sta_get_negotiated_phymode__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_sta_get_negotiated_phymode__init + (RpcRespWifiStaGetNegotiatedPhymode *message) +{ + static const RpcRespWifiStaGetNegotiatedPhymode init_value = RPC__RESP__WIFI_STA_GET_NEGOTIATED_PHYMODE__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_sta_get_negotiated_phymode__get_packed_size + (const RpcRespWifiStaGetNegotiatedPhymode *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_negotiated_phymode__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_sta_get_negotiated_phymode__pack + (const RpcRespWifiStaGetNegotiatedPhymode *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_negotiated_phymode__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_sta_get_negotiated_phymode__pack_to_buffer + (const RpcRespWifiStaGetNegotiatedPhymode *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_negotiated_phymode__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiStaGetNegotiatedPhymode * + rpc__resp__wifi_sta_get_negotiated_phymode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiStaGetNegotiatedPhymode *) + protobuf_c_message_unpack (&rpc__resp__wifi_sta_get_negotiated_phymode__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_sta_get_negotiated_phymode__free_unpacked + (RpcRespWifiStaGetNegotiatedPhymode *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_negotiated_phymode__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_ap_get_sta_aid__init + (RpcRespWifiApGetStaAid *message) +{ + static const RpcRespWifiApGetStaAid init_value = RPC__RESP__WIFI_AP_GET_STA_AID__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_ap_get_sta_aid__get_packed_size + (const RpcRespWifiApGetStaAid *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_aid__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_ap_get_sta_aid__pack + (const RpcRespWifiApGetStaAid *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_aid__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_ap_get_sta_aid__pack_to_buffer + (const RpcRespWifiApGetStaAid *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_aid__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiApGetStaAid * + rpc__resp__wifi_ap_get_sta_aid__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiApGetStaAid *) + protobuf_c_message_unpack (&rpc__resp__wifi_ap_get_sta_aid__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_ap_get_sta_aid__free_unpacked + (RpcRespWifiApGetStaAid *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_aid__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_sta_get_rssi__init + (RpcReqWifiStaGetRssi *message) +{ + static const RpcReqWifiStaGetRssi init_value = RPC__REQ__WIFI_STA_GET_RSSI__INIT; + *message = init_value; +} +size_t rpc__req__wifi_sta_get_rssi__get_packed_size + (const RpcReqWifiStaGetRssi *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_sta_get_rssi__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_sta_get_rssi__pack + (const RpcReqWifiStaGetRssi *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_sta_get_rssi__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_sta_get_rssi__pack_to_buffer + (const RpcReqWifiStaGetRssi *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_sta_get_rssi__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiStaGetRssi * + rpc__req__wifi_sta_get_rssi__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiStaGetRssi *) + protobuf_c_message_unpack (&rpc__req__wifi_sta_get_rssi__descriptor, + allocator, len, data); +} +void rpc__req__wifi_sta_get_rssi__free_unpacked + (RpcReqWifiStaGetRssi *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_sta_get_rssi__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_sta_get_rssi__init + (RpcRespWifiStaGetRssi *message) +{ + static const RpcRespWifiStaGetRssi init_value = RPC__RESP__WIFI_STA_GET_RSSI__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_sta_get_rssi__get_packed_size + (const RpcRespWifiStaGetRssi *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_rssi__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_sta_get_rssi__pack + (const RpcRespWifiStaGetRssi *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_rssi__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_sta_get_rssi__pack_to_buffer + (const RpcRespWifiStaGetRssi *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_rssi__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiStaGetRssi * + rpc__resp__wifi_sta_get_rssi__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiStaGetRssi *) + protobuf_c_message_unpack (&rpc__resp__wifi_sta_get_rssi__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_sta_get_rssi__free_unpacked + (RpcRespWifiStaGetRssi *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_rssi__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_sta_get_aid__init + (RpcReqWifiStaGetAid *message) +{ + static const RpcReqWifiStaGetAid init_value = RPC__REQ__WIFI_STA_GET_AID__INIT; + *message = init_value; +} +size_t rpc__req__wifi_sta_get_aid__get_packed_size + (const RpcReqWifiStaGetAid *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_sta_get_aid__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_sta_get_aid__pack + (const RpcReqWifiStaGetAid *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_sta_get_aid__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_sta_get_aid__pack_to_buffer + (const RpcReqWifiStaGetAid *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_sta_get_aid__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiStaGetAid * + rpc__req__wifi_sta_get_aid__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiStaGetAid *) + protobuf_c_message_unpack (&rpc__req__wifi_sta_get_aid__descriptor, + allocator, len, data); +} +void rpc__req__wifi_sta_get_aid__free_unpacked + (RpcReqWifiStaGetAid *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_sta_get_aid__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_sta_get_aid__init + (RpcRespWifiStaGetAid *message) +{ + static const RpcRespWifiStaGetAid init_value = RPC__RESP__WIFI_STA_GET_AID__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_sta_get_aid__get_packed_size + (const RpcRespWifiStaGetAid *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_aid__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_sta_get_aid__pack + (const RpcRespWifiStaGetAid *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_aid__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_sta_get_aid__pack_to_buffer + (const RpcRespWifiStaGetAid *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_aid__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiStaGetAid * + rpc__resp__wifi_sta_get_aid__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiStaGetAid *) + protobuf_c_message_unpack (&rpc__resp__wifi_sta_get_aid__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_sta_get_aid__free_unpacked + (RpcRespWifiStaGetAid *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_sta_get_aid__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_set_protocols__init + (RpcReqWifiSetProtocols *message) +{ + static const RpcReqWifiSetProtocols init_value = RPC__REQ__WIFI_SET_PROTOCOLS__INIT; + *message = init_value; +} +size_t rpc__req__wifi_set_protocols__get_packed_size + (const RpcReqWifiSetProtocols *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_protocols__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_set_protocols__pack + (const RpcReqWifiSetProtocols *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_protocols__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_set_protocols__pack_to_buffer + (const RpcReqWifiSetProtocols *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_protocols__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiSetProtocols * + rpc__req__wifi_set_protocols__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiSetProtocols *) + protobuf_c_message_unpack (&rpc__req__wifi_set_protocols__descriptor, + allocator, len, data); +} +void rpc__req__wifi_set_protocols__free_unpacked + (RpcReqWifiSetProtocols *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_set_protocols__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_set_protocols__init + (RpcRespWifiSetProtocols *message) +{ + static const RpcRespWifiSetProtocols init_value = RPC__RESP__WIFI_SET_PROTOCOLS__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_set_protocols__get_packed_size + (const RpcRespWifiSetProtocols *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_protocols__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_set_protocols__pack + (const RpcRespWifiSetProtocols *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_protocols__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_set_protocols__pack_to_buffer + (const RpcRespWifiSetProtocols *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_protocols__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiSetProtocols * + rpc__resp__wifi_set_protocols__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiSetProtocols *) + protobuf_c_message_unpack (&rpc__resp__wifi_set_protocols__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_set_protocols__free_unpacked + (RpcRespWifiSetProtocols *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_set_protocols__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_get_protocols__init + (RpcReqWifiGetProtocols *message) +{ + static const RpcReqWifiGetProtocols init_value = RPC__REQ__WIFI_GET_PROTOCOLS__INIT; + *message = init_value; +} +size_t rpc__req__wifi_get_protocols__get_packed_size + (const RpcReqWifiGetProtocols *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_protocols__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_get_protocols__pack + (const RpcReqWifiGetProtocols *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_protocols__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_get_protocols__pack_to_buffer + (const RpcReqWifiGetProtocols *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_protocols__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiGetProtocols * + rpc__req__wifi_get_protocols__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiGetProtocols *) + protobuf_c_message_unpack (&rpc__req__wifi_get_protocols__descriptor, + allocator, len, data); +} +void rpc__req__wifi_get_protocols__free_unpacked + (RpcReqWifiGetProtocols *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_get_protocols__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_get_protocols__init + (RpcRespWifiGetProtocols *message) +{ + static const RpcRespWifiGetProtocols init_value = RPC__RESP__WIFI_GET_PROTOCOLS__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_get_protocols__get_packed_size + (const RpcRespWifiGetProtocols *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_protocols__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_get_protocols__pack + (const RpcRespWifiGetProtocols *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_protocols__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_get_protocols__pack_to_buffer + (const RpcRespWifiGetProtocols *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_protocols__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiGetProtocols * + rpc__resp__wifi_get_protocols__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiGetProtocols *) + protobuf_c_message_unpack (&rpc__resp__wifi_get_protocols__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_get_protocols__free_unpacked + (RpcRespWifiGetProtocols *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_get_protocols__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_set_bandwidths__init + (RpcReqWifiSetBandwidths *message) +{ + static const RpcReqWifiSetBandwidths init_value = RPC__REQ__WIFI_SET_BANDWIDTHS__INIT; + *message = init_value; +} +size_t rpc__req__wifi_set_bandwidths__get_packed_size + (const RpcReqWifiSetBandwidths *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_bandwidths__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_set_bandwidths__pack + (const RpcReqWifiSetBandwidths *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_bandwidths__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_set_bandwidths__pack_to_buffer + (const RpcReqWifiSetBandwidths *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_bandwidths__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiSetBandwidths * + rpc__req__wifi_set_bandwidths__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiSetBandwidths *) + protobuf_c_message_unpack (&rpc__req__wifi_set_bandwidths__descriptor, + allocator, len, data); +} +void rpc__req__wifi_set_bandwidths__free_unpacked + (RpcReqWifiSetBandwidths *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_set_bandwidths__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_set_bandwidths__init + (RpcRespWifiSetBandwidths *message) +{ + static const RpcRespWifiSetBandwidths init_value = RPC__RESP__WIFI_SET_BANDWIDTHS__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_set_bandwidths__get_packed_size + (const RpcRespWifiSetBandwidths *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidths__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_set_bandwidths__pack + (const RpcRespWifiSetBandwidths *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidths__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_set_bandwidths__pack_to_buffer + (const RpcRespWifiSetBandwidths *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidths__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiSetBandwidths * + rpc__resp__wifi_set_bandwidths__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiSetBandwidths *) + protobuf_c_message_unpack (&rpc__resp__wifi_set_bandwidths__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_set_bandwidths__free_unpacked + (RpcRespWifiSetBandwidths *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidths__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_get_bandwidths__init + (RpcReqWifiGetBandwidths *message) +{ + static const RpcReqWifiGetBandwidths init_value = RPC__REQ__WIFI_GET_BANDWIDTHS__INIT; + *message = init_value; +} +size_t rpc__req__wifi_get_bandwidths__get_packed_size + (const RpcReqWifiGetBandwidths *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_bandwidths__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_get_bandwidths__pack + (const RpcReqWifiGetBandwidths *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_bandwidths__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_get_bandwidths__pack_to_buffer + (const RpcReqWifiGetBandwidths *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_bandwidths__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiGetBandwidths * + rpc__req__wifi_get_bandwidths__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiGetBandwidths *) + protobuf_c_message_unpack (&rpc__req__wifi_get_bandwidths__descriptor, + allocator, len, data); +} +void rpc__req__wifi_get_bandwidths__free_unpacked + (RpcReqWifiGetBandwidths *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_get_bandwidths__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_get_bandwidths__init + (RpcRespWifiGetBandwidths *message) +{ + static const RpcRespWifiGetBandwidths init_value = RPC__RESP__WIFI_GET_BANDWIDTHS__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_get_bandwidths__get_packed_size + (const RpcRespWifiGetBandwidths *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidths__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_get_bandwidths__pack + (const RpcRespWifiGetBandwidths *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidths__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_get_bandwidths__pack_to_buffer + (const RpcRespWifiGetBandwidths *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidths__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiGetBandwidths * + rpc__resp__wifi_get_bandwidths__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiGetBandwidths *) + protobuf_c_message_unpack (&rpc__resp__wifi_get_bandwidths__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_get_bandwidths__free_unpacked + (RpcRespWifiGetBandwidths *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidths__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_set_band__init + (RpcReqWifiSetBand *message) +{ + static const RpcReqWifiSetBand init_value = RPC__REQ__WIFI_SET_BAND__INIT; + *message = init_value; +} +size_t rpc__req__wifi_set_band__get_packed_size + (const RpcReqWifiSetBand *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_band__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_set_band__pack + (const RpcReqWifiSetBand *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_band__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_set_band__pack_to_buffer + (const RpcReqWifiSetBand *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_band__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiSetBand * + rpc__req__wifi_set_band__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiSetBand *) + protobuf_c_message_unpack (&rpc__req__wifi_set_band__descriptor, + allocator, len, data); +} +void rpc__req__wifi_set_band__free_unpacked + (RpcReqWifiSetBand *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_set_band__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_set_band__init + (RpcRespWifiSetBand *message) +{ + static const RpcRespWifiSetBand init_value = RPC__RESP__WIFI_SET_BAND__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_set_band__get_packed_size + (const RpcRespWifiSetBand *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_band__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_set_band__pack + (const RpcRespWifiSetBand *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_band__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_set_band__pack_to_buffer + (const RpcRespWifiSetBand *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_band__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiSetBand * + rpc__resp__wifi_set_band__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiSetBand *) + protobuf_c_message_unpack (&rpc__resp__wifi_set_band__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_set_band__free_unpacked + (RpcRespWifiSetBand *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_set_band__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_get_band__init + (RpcReqWifiGetBand *message) +{ + static const RpcReqWifiGetBand init_value = RPC__REQ__WIFI_GET_BAND__INIT; + *message = init_value; +} +size_t rpc__req__wifi_get_band__get_packed_size + (const RpcReqWifiGetBand *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_band__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_get_band__pack + (const RpcReqWifiGetBand *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_band__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_get_band__pack_to_buffer + (const RpcReqWifiGetBand *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_band__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiGetBand * + rpc__req__wifi_get_band__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiGetBand *) + protobuf_c_message_unpack (&rpc__req__wifi_get_band__descriptor, + allocator, len, data); +} +void rpc__req__wifi_get_band__free_unpacked + (RpcReqWifiGetBand *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_get_band__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_get_band__init + (RpcRespWifiGetBand *message) +{ + static const RpcRespWifiGetBand init_value = RPC__RESP__WIFI_GET_BAND__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_get_band__get_packed_size + (const RpcRespWifiGetBand *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_band__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_get_band__pack + (const RpcRespWifiGetBand *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_band__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_get_band__pack_to_buffer + (const RpcRespWifiGetBand *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_band__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiGetBand * + rpc__resp__wifi_get_band__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiGetBand *) + protobuf_c_message_unpack (&rpc__resp__wifi_get_band__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_get_band__free_unpacked + (RpcRespWifiGetBand *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_get_band__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_set_band_mode__init + (RpcReqWifiSetBandMode *message) +{ + static const RpcReqWifiSetBandMode init_value = RPC__REQ__WIFI_SET_BAND_MODE__INIT; + *message = init_value; +} +size_t rpc__req__wifi_set_band_mode__get_packed_size + (const RpcReqWifiSetBandMode *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_band_mode__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_set_band_mode__pack + (const RpcReqWifiSetBandMode *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_band_mode__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_set_band_mode__pack_to_buffer + (const RpcReqWifiSetBandMode *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_set_band_mode__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiSetBandMode * + rpc__req__wifi_set_band_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiSetBandMode *) + protobuf_c_message_unpack (&rpc__req__wifi_set_band_mode__descriptor, + allocator, len, data); +} +void rpc__req__wifi_set_band_mode__free_unpacked + (RpcReqWifiSetBandMode *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_set_band_mode__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_set_band_mode__init + (RpcRespWifiSetBandMode *message) +{ + static const RpcRespWifiSetBandMode init_value = RPC__RESP__WIFI_SET_BAND_MODE__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_set_band_mode__get_packed_size + (const RpcRespWifiSetBandMode *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_band_mode__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_set_band_mode__pack + (const RpcRespWifiSetBandMode *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_band_mode__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_set_band_mode__pack_to_buffer + (const RpcRespWifiSetBandMode *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_set_band_mode__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiSetBandMode * + rpc__resp__wifi_set_band_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiSetBandMode *) + protobuf_c_message_unpack (&rpc__resp__wifi_set_band_mode__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_set_band_mode__free_unpacked + (RpcRespWifiSetBandMode *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_set_band_mode__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__wifi_get_band_mode__init + (RpcReqWifiGetBandMode *message) +{ + static const RpcReqWifiGetBandMode init_value = RPC__REQ__WIFI_GET_BAND_MODE__INIT; + *message = init_value; +} +size_t rpc__req__wifi_get_band_mode__get_packed_size + (const RpcReqWifiGetBandMode *message) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_band_mode__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__wifi_get_band_mode__pack + (const RpcReqWifiGetBandMode *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_band_mode__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__wifi_get_band_mode__pack_to_buffer + (const RpcReqWifiGetBandMode *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__wifi_get_band_mode__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqWifiGetBandMode * + rpc__req__wifi_get_band_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqWifiGetBandMode *) + protobuf_c_message_unpack (&rpc__req__wifi_get_band_mode__descriptor, + allocator, len, data); +} +void rpc__req__wifi_get_band_mode__free_unpacked + (RpcReqWifiGetBandMode *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__wifi_get_band_mode__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__wifi_get_band_mode__init + (RpcRespWifiGetBandMode *message) +{ + static const RpcRespWifiGetBandMode init_value = RPC__RESP__WIFI_GET_BAND_MODE__INIT; + *message = init_value; +} +size_t rpc__resp__wifi_get_band_mode__get_packed_size + (const RpcRespWifiGetBandMode *message) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_band_mode__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__wifi_get_band_mode__pack + (const RpcRespWifiGetBandMode *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_band_mode__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__wifi_get_band_mode__pack_to_buffer + (const RpcRespWifiGetBandMode *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__wifi_get_band_mode__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespWifiGetBandMode * + rpc__resp__wifi_get_band_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespWifiGetBandMode *) + protobuf_c_message_unpack (&rpc__resp__wifi_get_band_mode__descriptor, + allocator, len, data); +} +void rpc__resp__wifi_get_band_mode__free_unpacked + (RpcRespWifiGetBandMode *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__wifi_get_band_mode__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__req__get_coprocessor_fw_version__init + (RpcReqGetCoprocessorFwVersion *message) +{ + static const RpcReqGetCoprocessorFwVersion init_value = RPC__REQ__GET_COPROCESSOR_FW_VERSION__INIT; + *message = init_value; +} +size_t rpc__req__get_coprocessor_fw_version__get_packed_size + (const RpcReqGetCoprocessorFwVersion *message) +{ + assert(message->base.descriptor == &rpc__req__get_coprocessor_fw_version__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__req__get_coprocessor_fw_version__pack + (const RpcReqGetCoprocessorFwVersion *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__req__get_coprocessor_fw_version__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__req__get_coprocessor_fw_version__pack_to_buffer + (const RpcReqGetCoprocessorFwVersion *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__req__get_coprocessor_fw_version__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcReqGetCoprocessorFwVersion * + rpc__req__get_coprocessor_fw_version__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcReqGetCoprocessorFwVersion *) + protobuf_c_message_unpack (&rpc__req__get_coprocessor_fw_version__descriptor, + allocator, len, data); +} +void rpc__req__get_coprocessor_fw_version__free_unpacked + (RpcReqGetCoprocessorFwVersion *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__req__get_coprocessor_fw_version__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__resp__get_coprocessor_fw_version__init + (RpcRespGetCoprocessorFwVersion *message) +{ + static const RpcRespGetCoprocessorFwVersion init_value = RPC__RESP__GET_COPROCESSOR_FW_VERSION__INIT; + *message = init_value; +} +size_t rpc__resp__get_coprocessor_fw_version__get_packed_size + (const RpcRespGetCoprocessorFwVersion *message) +{ + assert(message->base.descriptor == &rpc__resp__get_coprocessor_fw_version__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__resp__get_coprocessor_fw_version__pack + (const RpcRespGetCoprocessorFwVersion *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__resp__get_coprocessor_fw_version__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__resp__get_coprocessor_fw_version__pack_to_buffer + (const RpcRespGetCoprocessorFwVersion *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__resp__get_coprocessor_fw_version__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcRespGetCoprocessorFwVersion * + rpc__resp__get_coprocessor_fw_version__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcRespGetCoprocessorFwVersion *) + protobuf_c_message_unpack (&rpc__resp__get_coprocessor_fw_version__descriptor, + allocator, len, data); +} +void rpc__resp__get_coprocessor_fw_version__free_unpacked + (RpcRespGetCoprocessorFwVersion *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__resp__get_coprocessor_fw_version__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__event__wifi_event_no_args__init + (RpcEventWifiEventNoArgs *message) +{ + static const RpcEventWifiEventNoArgs init_value = RPC__EVENT__WIFI_EVENT_NO_ARGS__INIT; + *message = init_value; +} +size_t rpc__event__wifi_event_no_args__get_packed_size + (const RpcEventWifiEventNoArgs *message) +{ + assert(message->base.descriptor == &rpc__event__wifi_event_no_args__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__event__wifi_event_no_args__pack + (const RpcEventWifiEventNoArgs *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__event__wifi_event_no_args__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__event__wifi_event_no_args__pack_to_buffer + (const RpcEventWifiEventNoArgs *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__event__wifi_event_no_args__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcEventWifiEventNoArgs * + rpc__event__wifi_event_no_args__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcEventWifiEventNoArgs *) + protobuf_c_message_unpack (&rpc__event__wifi_event_no_args__descriptor, + allocator, len, data); +} +void rpc__event__wifi_event_no_args__free_unpacked + (RpcEventWifiEventNoArgs *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__event__wifi_event_no_args__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__event__espinit__init + (RpcEventESPInit *message) +{ + static const RpcEventESPInit init_value = RPC__EVENT__ESPINIT__INIT; + *message = init_value; +} +size_t rpc__event__espinit__get_packed_size + (const RpcEventESPInit *message) +{ + assert(message->base.descriptor == &rpc__event__espinit__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__event__espinit__pack + (const RpcEventESPInit *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__event__espinit__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__event__espinit__pack_to_buffer + (const RpcEventESPInit *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__event__espinit__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcEventESPInit * + rpc__event__espinit__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcEventESPInit *) + protobuf_c_message_unpack (&rpc__event__espinit__descriptor, + allocator, len, data); +} +void rpc__event__espinit__free_unpacked + (RpcEventESPInit *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__event__espinit__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__event__heartbeat__init + (RpcEventHeartbeat *message) +{ + static const RpcEventHeartbeat init_value = RPC__EVENT__HEARTBEAT__INIT; + *message = init_value; +} +size_t rpc__event__heartbeat__get_packed_size + (const RpcEventHeartbeat *message) +{ + assert(message->base.descriptor == &rpc__event__heartbeat__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__event__heartbeat__pack + (const RpcEventHeartbeat *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__event__heartbeat__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__event__heartbeat__pack_to_buffer + (const RpcEventHeartbeat *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__event__heartbeat__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcEventHeartbeat * + rpc__event__heartbeat__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcEventHeartbeat *) + protobuf_c_message_unpack (&rpc__event__heartbeat__descriptor, + allocator, len, data); +} +void rpc__event__heartbeat__free_unpacked + (RpcEventHeartbeat *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__event__heartbeat__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__event__ap__sta_disconnected__init + (RpcEventAPStaDisconnected *message) +{ + static const RpcEventAPStaDisconnected init_value = RPC__EVENT__AP__STA_DISCONNECTED__INIT; + *message = init_value; +} +size_t rpc__event__ap__sta_disconnected__get_packed_size + (const RpcEventAPStaDisconnected *message) +{ + assert(message->base.descriptor == &rpc__event__ap__sta_disconnected__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__event__ap__sta_disconnected__pack + (const RpcEventAPStaDisconnected *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__event__ap__sta_disconnected__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__event__ap__sta_disconnected__pack_to_buffer + (const RpcEventAPStaDisconnected *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__event__ap__sta_disconnected__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcEventAPStaDisconnected * + rpc__event__ap__sta_disconnected__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcEventAPStaDisconnected *) + protobuf_c_message_unpack (&rpc__event__ap__sta_disconnected__descriptor, + allocator, len, data); +} +void rpc__event__ap__sta_disconnected__free_unpacked + (RpcEventAPStaDisconnected *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__event__ap__sta_disconnected__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__event__ap__sta_connected__init + (RpcEventAPStaConnected *message) +{ + static const RpcEventAPStaConnected init_value = RPC__EVENT__AP__STA_CONNECTED__INIT; + *message = init_value; +} +size_t rpc__event__ap__sta_connected__get_packed_size + (const RpcEventAPStaConnected *message) +{ + assert(message->base.descriptor == &rpc__event__ap__sta_connected__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__event__ap__sta_connected__pack + (const RpcEventAPStaConnected *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__event__ap__sta_connected__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__event__ap__sta_connected__pack_to_buffer + (const RpcEventAPStaConnected *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__event__ap__sta_connected__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcEventAPStaConnected * + rpc__event__ap__sta_connected__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcEventAPStaConnected *) + protobuf_c_message_unpack (&rpc__event__ap__sta_connected__descriptor, + allocator, len, data); +} +void rpc__event__ap__sta_connected__free_unpacked + (RpcEventAPStaConnected *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__event__ap__sta_connected__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__event__sta_scan_done__init + (RpcEventStaScanDone *message) +{ + static const RpcEventStaScanDone init_value = RPC__EVENT__STA_SCAN_DONE__INIT; + *message = init_value; +} +size_t rpc__event__sta_scan_done__get_packed_size + (const RpcEventStaScanDone *message) +{ + assert(message->base.descriptor == &rpc__event__sta_scan_done__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__event__sta_scan_done__pack + (const RpcEventStaScanDone *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__event__sta_scan_done__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__event__sta_scan_done__pack_to_buffer + (const RpcEventStaScanDone *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__event__sta_scan_done__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcEventStaScanDone * + rpc__event__sta_scan_done__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcEventStaScanDone *) + protobuf_c_message_unpack (&rpc__event__sta_scan_done__descriptor, + allocator, len, data); +} +void rpc__event__sta_scan_done__free_unpacked + (RpcEventStaScanDone *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__event__sta_scan_done__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__event__sta_connected__init + (RpcEventStaConnected *message) +{ + static const RpcEventStaConnected init_value = RPC__EVENT__STA_CONNECTED__INIT; + *message = init_value; +} +size_t rpc__event__sta_connected__get_packed_size + (const RpcEventStaConnected *message) +{ + assert(message->base.descriptor == &rpc__event__sta_connected__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__event__sta_connected__pack + (const RpcEventStaConnected *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__event__sta_connected__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__event__sta_connected__pack_to_buffer + (const RpcEventStaConnected *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__event__sta_connected__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcEventStaConnected * + rpc__event__sta_connected__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcEventStaConnected *) + protobuf_c_message_unpack (&rpc__event__sta_connected__descriptor, + allocator, len, data); +} +void rpc__event__sta_connected__free_unpacked + (RpcEventStaConnected *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__event__sta_connected__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__event__sta_disconnected__init + (RpcEventStaDisconnected *message) +{ + static const RpcEventStaDisconnected init_value = RPC__EVENT__STA_DISCONNECTED__INIT; + *message = init_value; +} +size_t rpc__event__sta_disconnected__get_packed_size + (const RpcEventStaDisconnected *message) +{ + assert(message->base.descriptor == &rpc__event__sta_disconnected__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__event__sta_disconnected__pack + (const RpcEventStaDisconnected *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__event__sta_disconnected__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__event__sta_disconnected__pack_to_buffer + (const RpcEventStaDisconnected *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__event__sta_disconnected__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +RpcEventStaDisconnected * + rpc__event__sta_disconnected__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (RpcEventStaDisconnected *) + protobuf_c_message_unpack (&rpc__event__sta_disconnected__descriptor, + allocator, len, data); +} +void rpc__event__sta_disconnected__free_unpacked + (RpcEventStaDisconnected *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__event__sta_disconnected__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +void rpc__init + (Rpc *message) +{ + static const Rpc init_value = RPC__INIT; + *message = init_value; +} +size_t rpc__get_packed_size + (const Rpc *message) +{ + assert(message->base.descriptor == &rpc__descriptor); + return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); +} +size_t rpc__pack + (const Rpc *message, + uint8_t *out) +{ + assert(message->base.descriptor == &rpc__descriptor); + return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); +} +size_t rpc__pack_to_buffer + (const Rpc *message, + ProtobufCBuffer *buffer) +{ + assert(message->base.descriptor == &rpc__descriptor); + return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); +} +Rpc * + rpc__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data) +{ + return (Rpc *) + protobuf_c_message_unpack (&rpc__descriptor, + allocator, len, data); +} +void rpc__free_unpacked + (Rpc *message, + ProtobufCAllocator *allocator) +{ + if(!message) + return; + assert(message->base.descriptor == &rpc__descriptor); + protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); +} +static const ProtobufCFieldDescriptor wifi_init_config__field_descriptors[20] = +{ + { + "static_rx_buf_num", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, static_rx_buf_num), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "dynamic_rx_buf_num", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, dynamic_rx_buf_num), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "tx_buf_type", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, tx_buf_type), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "static_tx_buf_num", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, static_tx_buf_num), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "dynamic_tx_buf_num", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, dynamic_tx_buf_num), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "cache_tx_buf_num", + 6, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, cache_tx_buf_num), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "csi_enable", + 7, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, csi_enable), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ampdu_rx_enable", + 8, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, ampdu_rx_enable), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ampdu_tx_enable", + 9, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, ampdu_tx_enable), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "amsdu_tx_enable", + 10, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, amsdu_tx_enable), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "nvs_enable", + 11, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, nvs_enable), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "nano_enable", + 12, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, nano_enable), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "rx_ba_win", + 13, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, rx_ba_win), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "wifi_task_core_id", + 14, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, wifi_task_core_id), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "beacon_max_len", + 15, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, beacon_max_len), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "mgmt_sbuf_num", + 16, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, mgmt_sbuf_num), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "feature_caps", + 17, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT64, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, feature_caps), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "sta_disconnected_pm", + 18, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, sta_disconnected_pm), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "espnow_max_encrypt_num", + 19, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, espnow_max_encrypt_num), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "magic", + 20, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiInitConfig, magic), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_init_config__field_indices_by_name[] = { + 7, /* field[7] = ampdu_rx_enable */ + 8, /* field[8] = ampdu_tx_enable */ + 9, /* field[9] = amsdu_tx_enable */ + 14, /* field[14] = beacon_max_len */ + 5, /* field[5] = cache_tx_buf_num */ + 6, /* field[6] = csi_enable */ + 1, /* field[1] = dynamic_rx_buf_num */ + 4, /* field[4] = dynamic_tx_buf_num */ + 18, /* field[18] = espnow_max_encrypt_num */ + 16, /* field[16] = feature_caps */ + 19, /* field[19] = magic */ + 15, /* field[15] = mgmt_sbuf_num */ + 11, /* field[11] = nano_enable */ + 10, /* field[10] = nvs_enable */ + 12, /* field[12] = rx_ba_win */ + 17, /* field[17] = sta_disconnected_pm */ + 0, /* field[0] = static_rx_buf_num */ + 3, /* field[3] = static_tx_buf_num */ + 2, /* field[2] = tx_buf_type */ + 13, /* field[13] = wifi_task_core_id */ +}; +static const ProtobufCIntRange wifi_init_config__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 20 } +}; +const ProtobufCMessageDescriptor wifi_init_config__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_init_config", + "WifiInitConfig", + "WifiInitConfig", + "", + sizeof(WifiInitConfig), + 20, + wifi_init_config__field_descriptors, + wifi_init_config__field_indices_by_name, + 1, wifi_init_config__number_ranges, + (ProtobufCMessageInit) wifi_init_config__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_country__field_descriptors[5] = +{ + { + "cc", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiCountry, cc), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "schan", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiCountry, schan), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "nchan", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiCountry, nchan), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "max_tx_power", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiCountry, max_tx_power), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "policy", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiCountry, policy), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_country__field_indices_by_name[] = { + 0, /* field[0] = cc */ + 3, /* field[3] = max_tx_power */ + 2, /* field[2] = nchan */ + 4, /* field[4] = policy */ + 1, /* field[1] = schan */ +}; +static const ProtobufCIntRange wifi_country__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 5 } +}; +const ProtobufCMessageDescriptor wifi_country__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_country", + "WifiCountry", + "WifiCountry", + "", + sizeof(WifiCountry), + 5, + wifi_country__field_descriptors, + wifi_country__field_indices_by_name, + 1, wifi_country__number_ranges, + (ProtobufCMessageInit) wifi_country__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_active_scan_time__field_descriptors[2] = +{ + { + "min", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiActiveScanTime, min), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "max", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiActiveScanTime, max), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_active_scan_time__field_indices_by_name[] = { + 1, /* field[1] = max */ + 0, /* field[0] = min */ +}; +static const ProtobufCIntRange wifi_active_scan_time__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor wifi_active_scan_time__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_active_scan_time", + "WifiActiveScanTime", + "WifiActiveScanTime", + "", + sizeof(WifiActiveScanTime), + 2, + wifi_active_scan_time__field_descriptors, + wifi_active_scan_time__field_indices_by_name, + 1, wifi_active_scan_time__number_ranges, + (ProtobufCMessageInit) wifi_active_scan_time__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_scan_time__field_descriptors[2] = +{ + { + "active", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(WifiScanTime, active), + &wifi_active_scan_time__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "passive", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiScanTime, passive), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_scan_time__field_indices_by_name[] = { + 0, /* field[0] = active */ + 1, /* field[1] = passive */ +}; +static const ProtobufCIntRange wifi_scan_time__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor wifi_scan_time__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_scan_time", + "WifiScanTime", + "WifiScanTime", + "", + sizeof(WifiScanTime), + 2, + wifi_scan_time__field_descriptors, + wifi_scan_time__field_indices_by_name, + 1, wifi_scan_time__number_ranges, + (ProtobufCMessageInit) wifi_scan_time__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_scan_config__field_descriptors[7] = +{ + { + "ssid", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiScanConfig, ssid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "bssid", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiScanConfig, bssid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "channel", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiScanConfig, channel), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "show_hidden", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(WifiScanConfig, show_hidden), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "scan_type", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiScanConfig, scan_type), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "scan_time", + 6, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(WifiScanConfig, scan_time), + &wifi_scan_time__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "home_chan_dwell_time", + 7, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiScanConfig, home_chan_dwell_time), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_scan_config__field_indices_by_name[] = { + 1, /* field[1] = bssid */ + 2, /* field[2] = channel */ + 6, /* field[6] = home_chan_dwell_time */ + 5, /* field[5] = scan_time */ + 4, /* field[4] = scan_type */ + 3, /* field[3] = show_hidden */ + 0, /* field[0] = ssid */ +}; +static const ProtobufCIntRange wifi_scan_config__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 7 } +}; +const ProtobufCMessageDescriptor wifi_scan_config__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_scan_config", + "WifiScanConfig", + "WifiScanConfig", + "", + sizeof(WifiScanConfig), + 7, + wifi_scan_config__field_descriptors, + wifi_scan_config__field_indices_by_name, + 1, wifi_scan_config__number_ranges, + (ProtobufCMessageInit) wifi_scan_config__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_he_ap_info__field_descriptors[2] = +{ + { + "bitmask", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiHeApInfo, bitmask), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "bssid_index", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiHeApInfo, bssid_index), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_he_ap_info__field_indices_by_name[] = { + 0, /* field[0] = bitmask */ + 1, /* field[1] = bssid_index */ +}; +static const ProtobufCIntRange wifi_he_ap_info__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor wifi_he_ap_info__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_he_ap_info", + "WifiHeApInfo", + "WifiHeApInfo", + "", + sizeof(WifiHeApInfo), + 2, + wifi_he_ap_info__field_descriptors, + wifi_he_ap_info__field_indices_by_name, + 1, wifi_he_ap_info__number_ranges, + (ProtobufCMessageInit) wifi_he_ap_info__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_ap_record__field_descriptors[15] = +{ + { + "bssid", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiApRecord, bssid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ssid", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiApRecord, ssid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "primary", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiApRecord, primary), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "second", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiApRecord, second), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "rssi", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiApRecord, rssi), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "authmode", + 6, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiApRecord, authmode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "pairwise_cipher", + 7, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiApRecord, pairwise_cipher), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "group_cipher", + 8, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiApRecord, group_cipher), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ant", + 9, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiApRecord, ant), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "bitmask", + 10, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiApRecord, bitmask), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "country", + 11, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(WifiApRecord, country), + &wifi_country__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "he_ap", + 12, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(WifiApRecord, he_ap), + &wifi_he_ap_info__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "bandwidth", + 13, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiApRecord, bandwidth), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "vht_ch_freq1", + 14, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiApRecord, vht_ch_freq1), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "vht_ch_freq2", + 15, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiApRecord, vht_ch_freq2), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_ap_record__field_indices_by_name[] = { + 8, /* field[8] = ant */ + 5, /* field[5] = authmode */ + 12, /* field[12] = bandwidth */ + 9, /* field[9] = bitmask */ + 0, /* field[0] = bssid */ + 10, /* field[10] = country */ + 7, /* field[7] = group_cipher */ + 11, /* field[11] = he_ap */ + 6, /* field[6] = pairwise_cipher */ + 2, /* field[2] = primary */ + 4, /* field[4] = rssi */ + 3, /* field[3] = second */ + 1, /* field[1] = ssid */ + 13, /* field[13] = vht_ch_freq1 */ + 14, /* field[14] = vht_ch_freq2 */ +}; +static const ProtobufCIntRange wifi_ap_record__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 15 } +}; +const ProtobufCMessageDescriptor wifi_ap_record__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_ap_record", + "WifiApRecord", + "WifiApRecord", + "", + sizeof(WifiApRecord), + 15, + wifi_ap_record__field_descriptors, + wifi_ap_record__field_indices_by_name, + 1, wifi_ap_record__number_ranges, + (ProtobufCMessageInit) wifi_ap_record__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_scan_threshold__field_descriptors[2] = +{ + { + "rssi", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiScanThreshold, rssi), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "authmode", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiScanThreshold, authmode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_scan_threshold__field_indices_by_name[] = { + 1, /* field[1] = authmode */ + 0, /* field[0] = rssi */ +}; +static const ProtobufCIntRange wifi_scan_threshold__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor wifi_scan_threshold__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_scan_threshold", + "WifiScanThreshold", + "WifiScanThreshold", + "", + sizeof(WifiScanThreshold), + 2, + wifi_scan_threshold__field_descriptors, + wifi_scan_threshold__field_indices_by_name, + 1, wifi_scan_threshold__number_ranges, + (ProtobufCMessageInit) wifi_scan_threshold__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_pmf_config__field_descriptors[2] = +{ + { + "capable", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(WifiPmfConfig, capable), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "required", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(WifiPmfConfig, required), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_pmf_config__field_indices_by_name[] = { + 0, /* field[0] = capable */ + 1, /* field[1] = required */ +}; +static const ProtobufCIntRange wifi_pmf_config__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor wifi_pmf_config__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_pmf_config", + "WifiPmfConfig", + "WifiPmfConfig", + "", + sizeof(WifiPmfConfig), + 2, + wifi_pmf_config__field_descriptors, + wifi_pmf_config__field_indices_by_name, + 1, wifi_pmf_config__number_ranges, + (ProtobufCMessageInit) wifi_pmf_config__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_ap_config__field_descriptors[12] = +{ + { + "ssid", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiApConfig, ssid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "password", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiApConfig, password), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ssid_len", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiApConfig, ssid_len), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "channel", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiApConfig, channel), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "authmode", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiApConfig, authmode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ssid_hidden", + 6, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiApConfig, ssid_hidden), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "max_connection", + 7, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiApConfig, max_connection), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "beacon_interval", + 8, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiApConfig, beacon_interval), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "pairwise_cipher", + 9, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiApConfig, pairwise_cipher), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ftm_responder", + 10, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(WifiApConfig, ftm_responder), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "pmf_cfg", + 11, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(WifiApConfig, pmf_cfg), + &wifi_pmf_config__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "sae_pwe_h2e", + 12, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiApConfig, sae_pwe_h2e), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_ap_config__field_indices_by_name[] = { + 4, /* field[4] = authmode */ + 7, /* field[7] = beacon_interval */ + 3, /* field[3] = channel */ + 9, /* field[9] = ftm_responder */ + 6, /* field[6] = max_connection */ + 8, /* field[8] = pairwise_cipher */ + 1, /* field[1] = password */ + 10, /* field[10] = pmf_cfg */ + 11, /* field[11] = sae_pwe_h2e */ + 0, /* field[0] = ssid */ + 5, /* field[5] = ssid_hidden */ + 2, /* field[2] = ssid_len */ +}; +static const ProtobufCIntRange wifi_ap_config__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 12 } +}; +const ProtobufCMessageDescriptor wifi_ap_config__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_ap_config", + "WifiApConfig", + "WifiApConfig", + "", + sizeof(WifiApConfig), + 12, + wifi_ap_config__field_descriptors, + wifi_ap_config__field_indices_by_name, + 1, wifi_ap_config__number_ranges, + (ProtobufCMessageInit) wifi_ap_config__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_sta_config__field_descriptors[15] = +{ + { + "ssid", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiStaConfig, ssid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "password", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiStaConfig, password), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "scan_method", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiStaConfig, scan_method), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "bssid_set", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(WifiStaConfig, bssid_set), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "bssid", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiStaConfig, bssid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "channel", + 6, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiStaConfig, channel), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "listen_interval", + 7, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiStaConfig, listen_interval), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "sort_method", + 8, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiStaConfig, sort_method), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "threshold", + 9, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(WifiStaConfig, threshold), + &wifi_scan_threshold__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "pmf_cfg", + 10, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(WifiStaConfig, pmf_cfg), + &wifi_pmf_config__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "bitmask", + 11, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiStaConfig, bitmask), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "sae_pwe_h2e", + 12, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiStaConfig, sae_pwe_h2e), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "failure_retry_cnt", + 13, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiStaConfig, failure_retry_cnt), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "he_bitmask", + 14, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiStaConfig, he_bitmask), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "sae_h2e_identifier", + 15, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiStaConfig, sae_h2e_identifier), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_sta_config__field_indices_by_name[] = { + 10, /* field[10] = bitmask */ + 4, /* field[4] = bssid */ + 3, /* field[3] = bssid_set */ + 5, /* field[5] = channel */ + 12, /* field[12] = failure_retry_cnt */ + 13, /* field[13] = he_bitmask */ + 6, /* field[6] = listen_interval */ + 1, /* field[1] = password */ + 9, /* field[9] = pmf_cfg */ + 14, /* field[14] = sae_h2e_identifier */ + 11, /* field[11] = sae_pwe_h2e */ + 2, /* field[2] = scan_method */ + 7, /* field[7] = sort_method */ + 0, /* field[0] = ssid */ + 8, /* field[8] = threshold */ +}; +static const ProtobufCIntRange wifi_sta_config__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 15 } +}; +const ProtobufCMessageDescriptor wifi_sta_config__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_sta_config", + "WifiStaConfig", + "WifiStaConfig", + "", + sizeof(WifiStaConfig), + 15, + wifi_sta_config__field_descriptors, + wifi_sta_config__field_indices_by_name, + 1, wifi_sta_config__number_ranges, + (ProtobufCMessageInit) wifi_sta_config__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_config__field_descriptors[2] = +{ + { + "ap", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(WifiConfig, u_case), + offsetof(WifiConfig, ap), + &wifi_ap_config__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "sta", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(WifiConfig, u_case), + offsetof(WifiConfig, sta), + &wifi_sta_config__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_config__field_indices_by_name[] = { + 0, /* field[0] = ap */ + 1, /* field[1] = sta */ +}; +static const ProtobufCIntRange wifi_config__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor wifi_config__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_config", + "WifiConfig", + "WifiConfig", + "", + sizeof(WifiConfig), + 2, + wifi_config__field_descriptors, + wifi_config__field_indices_by_name, + 1, wifi_config__number_ranges, + (ProtobufCMessageInit) wifi_config__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_sta_info__field_descriptors[3] = +{ + { + "mac", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiStaInfo, mac), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "rssi", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiStaInfo, rssi), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "bitmask", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiStaInfo, bitmask), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_sta_info__field_indices_by_name[] = { + 2, /* field[2] = bitmask */ + 0, /* field[0] = mac */ + 1, /* field[1] = rssi */ +}; +static const ProtobufCIntRange wifi_sta_info__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 3 } +}; +const ProtobufCMessageDescriptor wifi_sta_info__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_sta_info", + "WifiStaInfo", + "WifiStaInfo", + "", + sizeof(WifiStaInfo), + 3, + wifi_sta_info__field_descriptors, + wifi_sta_info__field_indices_by_name, + 1, wifi_sta_info__number_ranges, + (ProtobufCMessageInit) wifi_sta_info__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_sta_list__field_descriptors[2] = +{ + { + "sta", + 1, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(WifiStaList, n_sta), + offsetof(WifiStaList, sta), + &wifi_sta_info__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "num", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiStaList, num), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_sta_list__field_indices_by_name[] = { + 1, /* field[1] = num */ + 0, /* field[0] = sta */ +}; +static const ProtobufCIntRange wifi_sta_list__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor wifi_sta_list__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_sta_list", + "WifiStaList", + "WifiStaList", + "", + sizeof(WifiStaList), + 2, + wifi_sta_list__field_descriptors, + wifi_sta_list__field_indices_by_name, + 1, wifi_sta_list__number_ranges, + (ProtobufCMessageInit) wifi_sta_list__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_pkt_rx_ctrl__field_descriptors[19] = +{ + { + "rssi", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, rssi), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "rate", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, rate), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "sig_mode", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, sig_mode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "mcs", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, mcs), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "cwb", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, cwb), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "smoothing", + 6, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, smoothing), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "not_sounding", + 7, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, not_sounding), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "aggregation", + 8, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, aggregation), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "stbc", + 9, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, stbc), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "fec_coding", + 10, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, fec_coding), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "sgi", + 11, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, sgi), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "noise_floor", + 12, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, noise_floor), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ampdu_cnt", + 13, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, ampdu_cnt), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "channel", + 14, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, channel), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "secondary_channel", + 15, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, secondary_channel), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "timestamp", + 16, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, timestamp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ant", + 17, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, ant), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "sig_len", + 18, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, sig_len), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "rx_state", + 19, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPktRxCtrl, rx_state), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_pkt_rx_ctrl__field_indices_by_name[] = { + 7, /* field[7] = aggregation */ + 12, /* field[12] = ampdu_cnt */ + 16, /* field[16] = ant */ + 13, /* field[13] = channel */ + 4, /* field[4] = cwb */ + 9, /* field[9] = fec_coding */ + 3, /* field[3] = mcs */ + 11, /* field[11] = noise_floor */ + 6, /* field[6] = not_sounding */ + 1, /* field[1] = rate */ + 0, /* field[0] = rssi */ + 18, /* field[18] = rx_state */ + 14, /* field[14] = secondary_channel */ + 10, /* field[10] = sgi */ + 17, /* field[17] = sig_len */ + 2, /* field[2] = sig_mode */ + 5, /* field[5] = smoothing */ + 8, /* field[8] = stbc */ + 15, /* field[15] = timestamp */ +}; +static const ProtobufCIntRange wifi_pkt_rx_ctrl__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 19 } +}; +const ProtobufCMessageDescriptor wifi_pkt_rx_ctrl__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_pkt_rx_ctrl", + "WifiPktRxCtrl", + "WifiPktRxCtrl", + "", + sizeof(WifiPktRxCtrl), + 19, + wifi_pkt_rx_ctrl__field_descriptors, + wifi_pkt_rx_ctrl__field_indices_by_name, + 1, wifi_pkt_rx_ctrl__number_ranges, + (ProtobufCMessageInit) wifi_pkt_rx_ctrl__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_promiscuous_pkt__field_descriptors[2] = +{ + { + "rx_ctrl", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(WifiPromiscuousPkt, rx_ctrl), + &wifi_pkt_rx_ctrl__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "payload", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiPromiscuousPkt, payload), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_promiscuous_pkt__field_indices_by_name[] = { + 1, /* field[1] = payload */ + 0, /* field[0] = rx_ctrl */ +}; +static const ProtobufCIntRange wifi_promiscuous_pkt__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor wifi_promiscuous_pkt__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_promiscuous_pkt", + "WifiPromiscuousPkt", + "WifiPromiscuousPkt", + "", + sizeof(WifiPromiscuousPkt), + 2, + wifi_promiscuous_pkt__field_descriptors, + wifi_promiscuous_pkt__field_indices_by_name, + 1, wifi_promiscuous_pkt__number_ranges, + (ProtobufCMessageInit) wifi_promiscuous_pkt__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_promiscuous_filter__field_descriptors[1] = +{ + { + "filter_mask", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiPromiscuousFilter, filter_mask), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_promiscuous_filter__field_indices_by_name[] = { + 0, /* field[0] = filter_mask */ +}; +static const ProtobufCIntRange wifi_promiscuous_filter__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor wifi_promiscuous_filter__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_promiscuous_filter", + "WifiPromiscuousFilter", + "WifiPromiscuousFilter", + "", + sizeof(WifiPromiscuousFilter), + 1, + wifi_promiscuous_filter__field_descriptors, + wifi_promiscuous_filter__field_indices_by_name, + 1, wifi_promiscuous_filter__number_ranges, + (ProtobufCMessageInit) wifi_promiscuous_filter__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_csi_config__field_descriptors[7] = +{ + { + "lltf_en", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(WifiCsiConfig, lltf_en), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "htltf_en", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(WifiCsiConfig, htltf_en), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "stbc_htltf2_en", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(WifiCsiConfig, stbc_htltf2_en), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ltf_merge_en", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(WifiCsiConfig, ltf_merge_en), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "channel_filter_en", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(WifiCsiConfig, channel_filter_en), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "manu_scale", + 6, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(WifiCsiConfig, manu_scale), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "shift", + 7, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiCsiConfig, shift), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_csi_config__field_indices_by_name[] = { + 4, /* field[4] = channel_filter_en */ + 1, /* field[1] = htltf_en */ + 0, /* field[0] = lltf_en */ + 3, /* field[3] = ltf_merge_en */ + 5, /* field[5] = manu_scale */ + 6, /* field[6] = shift */ + 2, /* field[2] = stbc_htltf2_en */ +}; +static const ProtobufCIntRange wifi_csi_config__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 7 } +}; +const ProtobufCMessageDescriptor wifi_csi_config__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_csi_config", + "WifiCsiConfig", + "WifiCsiConfig", + "", + sizeof(WifiCsiConfig), + 7, + wifi_csi_config__field_descriptors, + wifi_csi_config__field_indices_by_name, + 1, wifi_csi_config__number_ranges, + (ProtobufCMessageInit) wifi_csi_config__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_csi_info__field_descriptors[6] = +{ + { + "rx_ctrl", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(WifiCsiInfo, rx_ctrl), + &wifi_pkt_rx_ctrl__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "mac", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiCsiInfo, mac), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "dmac", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiCsiInfo, dmac), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "first_word_invalid", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(WifiCsiInfo, first_word_invalid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "buf", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiCsiInfo, buf), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "len", + 6, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiCsiInfo, len), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_csi_info__field_indices_by_name[] = { + 4, /* field[4] = buf */ + 2, /* field[2] = dmac */ + 3, /* field[3] = first_word_invalid */ + 5, /* field[5] = len */ + 1, /* field[1] = mac */ + 0, /* field[0] = rx_ctrl */ +}; +static const ProtobufCIntRange wifi_csi_info__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 6 } +}; +const ProtobufCMessageDescriptor wifi_csi_info__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_csi_info", + "WifiCsiInfo", + "WifiCsiInfo", + "", + sizeof(WifiCsiInfo), + 6, + wifi_csi_info__field_descriptors, + wifi_csi_info__field_indices_by_name, + 1, wifi_csi_info__number_ranges, + (ProtobufCMessageInit) wifi_csi_info__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_ant_gpio__field_descriptors[2] = +{ + { + "gpio_select", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiAntGpio, gpio_select), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "gpio_num", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiAntGpio, gpio_num), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_ant_gpio__field_indices_by_name[] = { + 1, /* field[1] = gpio_num */ + 0, /* field[0] = gpio_select */ +}; +static const ProtobufCIntRange wifi_ant_gpio__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor wifi_ant_gpio__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_ant_gpio", + "WifiAntGpio", + "WifiAntGpio", + "", + sizeof(WifiAntGpio), + 2, + wifi_ant_gpio__field_descriptors, + wifi_ant_gpio__field_indices_by_name, + 1, wifi_ant_gpio__number_ranges, + (ProtobufCMessageInit) wifi_ant_gpio__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_ant_gpio_config__field_descriptors[1] = +{ + { + "gpio_cfgs", + 1, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(WifiAntGpioConfig, n_gpio_cfgs), + offsetof(WifiAntGpioConfig, gpio_cfgs), + &wifi_ant_gpio__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_ant_gpio_config__field_indices_by_name[] = { + 0, /* field[0] = gpio_cfgs */ +}; +static const ProtobufCIntRange wifi_ant_gpio_config__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor wifi_ant_gpio_config__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_ant_gpio_config", + "WifiAntGpioConfig", + "WifiAntGpioConfig", + "", + sizeof(WifiAntGpioConfig), + 1, + wifi_ant_gpio_config__field_descriptors, + wifi_ant_gpio_config__field_indices_by_name, + 1, wifi_ant_gpio_config__number_ranges, + (ProtobufCMessageInit) wifi_ant_gpio_config__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_ant_config__field_descriptors[5] = +{ + { + "rx_ant_mode", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiAntConfig, rx_ant_mode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "rx_ant_default", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiAntConfig, rx_ant_default), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "tx_ant_mode", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiAntConfig, tx_ant_mode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "enabled_ant0", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiAntConfig, enabled_ant0), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "enabled_ant1", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiAntConfig, enabled_ant1), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_ant_config__field_indices_by_name[] = { + 3, /* field[3] = enabled_ant0 */ + 4, /* field[4] = enabled_ant1 */ + 1, /* field[1] = rx_ant_default */ + 0, /* field[0] = rx_ant_mode */ + 2, /* field[2] = tx_ant_mode */ +}; +static const ProtobufCIntRange wifi_ant_config__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 5 } +}; +const ProtobufCMessageDescriptor wifi_ant_config__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_ant_config", + "WifiAntConfig", + "WifiAntConfig", + "", + sizeof(WifiAntConfig), + 5, + wifi_ant_config__field_descriptors, + wifi_ant_config__field_indices_by_name, + 1, wifi_ant_config__number_ranges, + (ProtobufCMessageInit) wifi_ant_config__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_action_tx_req__field_descriptors[5] = +{ + { + "ifx", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiActionTxReq, ifx), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "dest_mac", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiActionTxReq, dest_mac), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "no_ack", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(WifiActionTxReq, no_ack), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "data_len", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiActionTxReq, data_len), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "data", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiActionTxReq, data), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_action_tx_req__field_indices_by_name[] = { + 4, /* field[4] = data */ + 3, /* field[3] = data_len */ + 1, /* field[1] = dest_mac */ + 0, /* field[0] = ifx */ + 2, /* field[2] = no_ack */ +}; +static const ProtobufCIntRange wifi_action_tx_req__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 5 } +}; +const ProtobufCMessageDescriptor wifi_action_tx_req__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_action_tx_req", + "WifiActionTxReq", + "WifiActionTxReq", + "", + sizeof(WifiActionTxReq), + 5, + wifi_action_tx_req__field_descriptors, + wifi_action_tx_req__field_indices_by_name, + 1, wifi_action_tx_req__number_ranges, + (ProtobufCMessageInit) wifi_action_tx_req__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_ftm_initiator_cfg__field_descriptors[4] = +{ + { + "resp_mac", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiFtmInitiatorCfg, resp_mac), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "channel", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiFtmInitiatorCfg, channel), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "frm_count", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiFtmInitiatorCfg, frm_count), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "burst_period", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiFtmInitiatorCfg, burst_period), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_ftm_initiator_cfg__field_indices_by_name[] = { + 3, /* field[3] = burst_period */ + 1, /* field[1] = channel */ + 2, /* field[2] = frm_count */ + 0, /* field[0] = resp_mac */ +}; +static const ProtobufCIntRange wifi_ftm_initiator_cfg__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 4 } +}; +const ProtobufCMessageDescriptor wifi_ftm_initiator_cfg__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_ftm_initiator_cfg", + "WifiFtmInitiatorCfg", + "WifiFtmInitiatorCfg", + "", + sizeof(WifiFtmInitiatorCfg), + 4, + wifi_ftm_initiator_cfg__field_descriptors, + wifi_ftm_initiator_cfg__field_indices_by_name, + 1, wifi_ftm_initiator_cfg__number_ranges, + (ProtobufCMessageInit) wifi_ftm_initiator_cfg__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_event_sta_scan_done__field_descriptors[3] = +{ + { + "status", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventStaScanDone, status), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "number", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventStaScanDone, number), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "scan_id", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventStaScanDone, scan_id), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_event_sta_scan_done__field_indices_by_name[] = { + 1, /* field[1] = number */ + 2, /* field[2] = scan_id */ + 0, /* field[0] = status */ +}; +static const ProtobufCIntRange wifi_event_sta_scan_done__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 3 } +}; +const ProtobufCMessageDescriptor wifi_event_sta_scan_done__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_event_sta_scan_done", + "WifiEventStaScanDone", + "WifiEventStaScanDone", + "", + sizeof(WifiEventStaScanDone), + 3, + wifi_event_sta_scan_done__field_descriptors, + wifi_event_sta_scan_done__field_indices_by_name, + 1, wifi_event_sta_scan_done__number_ranges, + (ProtobufCMessageInit) wifi_event_sta_scan_done__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_event_sta_connected__field_descriptors[6] = +{ + { + "ssid", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiEventStaConnected, ssid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ssid_len", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventStaConnected, ssid_len), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "bssid", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiEventStaConnected, bssid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "channel", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventStaConnected, channel), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "authmode", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiEventStaConnected, authmode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "aid", + 6, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiEventStaConnected, aid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_event_sta_connected__field_indices_by_name[] = { + 5, /* field[5] = aid */ + 4, /* field[4] = authmode */ + 2, /* field[2] = bssid */ + 3, /* field[3] = channel */ + 0, /* field[0] = ssid */ + 1, /* field[1] = ssid_len */ +}; +static const ProtobufCIntRange wifi_event_sta_connected__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 6 } +}; +const ProtobufCMessageDescriptor wifi_event_sta_connected__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_event_sta_connected", + "WifiEventStaConnected", + "WifiEventStaConnected", + "", + sizeof(WifiEventStaConnected), + 6, + wifi_event_sta_connected__field_descriptors, + wifi_event_sta_connected__field_indices_by_name, + 1, wifi_event_sta_connected__number_ranges, + (ProtobufCMessageInit) wifi_event_sta_connected__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_event_sta_disconnected__field_descriptors[5] = +{ + { + "ssid", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiEventStaDisconnected, ssid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ssid_len", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventStaDisconnected, ssid_len), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "bssid", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiEventStaDisconnected, bssid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "reason", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventStaDisconnected, reason), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "rssi", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiEventStaDisconnected, rssi), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_event_sta_disconnected__field_indices_by_name[] = { + 2, /* field[2] = bssid */ + 3, /* field[3] = reason */ + 4, /* field[4] = rssi */ + 0, /* field[0] = ssid */ + 1, /* field[1] = ssid_len */ +}; +static const ProtobufCIntRange wifi_event_sta_disconnected__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 5 } +}; +const ProtobufCMessageDescriptor wifi_event_sta_disconnected__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_event_sta_disconnected", + "WifiEventStaDisconnected", + "WifiEventStaDisconnected", + "", + sizeof(WifiEventStaDisconnected), + 5, + wifi_event_sta_disconnected__field_descriptors, + wifi_event_sta_disconnected__field_indices_by_name, + 1, wifi_event_sta_disconnected__number_ranges, + (ProtobufCMessageInit) wifi_event_sta_disconnected__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_event_sta_authmode_change__field_descriptors[2] = +{ + { + "old_mode", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiEventStaAuthmodeChange, old_mode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "new_mode", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiEventStaAuthmodeChange, new_mode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_event_sta_authmode_change__field_indices_by_name[] = { + 1, /* field[1] = new_mode */ + 0, /* field[0] = old_mode */ +}; +static const ProtobufCIntRange wifi_event_sta_authmode_change__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor wifi_event_sta_authmode_change__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_event_sta_authmode_change", + "WifiEventStaAuthmodeChange", + "WifiEventStaAuthmodeChange", + "", + sizeof(WifiEventStaAuthmodeChange), + 2, + wifi_event_sta_authmode_change__field_descriptors, + wifi_event_sta_authmode_change__field_indices_by_name, + 1, wifi_event_sta_authmode_change__number_ranges, + (ProtobufCMessageInit) wifi_event_sta_authmode_change__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_event_sta_wps_er_pin__field_descriptors[1] = +{ + { + "pin_code", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiEventStaWpsErPin, pin_code), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_event_sta_wps_er_pin__field_indices_by_name[] = { + 0, /* field[0] = pin_code */ +}; +static const ProtobufCIntRange wifi_event_sta_wps_er_pin__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor wifi_event_sta_wps_er_pin__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_event_sta_wps_er_pin", + "WifiEventStaWpsErPin", + "WifiEventStaWpsErPin", + "", + sizeof(WifiEventStaWpsErPin), + 1, + wifi_event_sta_wps_er_pin__field_descriptors, + wifi_event_sta_wps_er_pin__field_indices_by_name, + 1, wifi_event_sta_wps_er_pin__number_ranges, + (ProtobufCMessageInit) wifi_event_sta_wps_er_pin__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor ap_cred__field_descriptors[2] = +{ + { + "ssid", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(ApCred, ssid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "passphrase", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(ApCred, passphrase), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned ap_cred__field_indices_by_name[] = { + 1, /* field[1] = passphrase */ + 0, /* field[0] = ssid */ +}; +static const ProtobufCIntRange ap_cred__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor ap_cred__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "ap_cred", + "ApCred", + "ApCred", + "", + sizeof(ApCred), + 2, + ap_cred__field_descriptors, + ap_cred__field_indices_by_name, + 1, ap_cred__number_ranges, + (ProtobufCMessageInit) ap_cred__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_event_sta_wps_er_success__field_descriptors[2] = +{ + { + "ap_cred_cnt", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventStaWpsErSuccess, ap_cred_cnt), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ap_creds", + 2, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(WifiEventStaWpsErSuccess, n_ap_creds), + offsetof(WifiEventStaWpsErSuccess, ap_creds), + &ap_cred__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_event_sta_wps_er_success__field_indices_by_name[] = { + 0, /* field[0] = ap_cred_cnt */ + 1, /* field[1] = ap_creds */ +}; +static const ProtobufCIntRange wifi_event_sta_wps_er_success__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor wifi_event_sta_wps_er_success__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_event_sta_wps_er_success", + "WifiEventStaWpsErSuccess", + "WifiEventStaWpsErSuccess", + "", + sizeof(WifiEventStaWpsErSuccess), + 2, + wifi_event_sta_wps_er_success__field_descriptors, + wifi_event_sta_wps_er_success__field_indices_by_name, + 1, wifi_event_sta_wps_er_success__number_ranges, + (ProtobufCMessageInit) wifi_event_sta_wps_er_success__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_event_ap_probe_req_rx__field_descriptors[2] = +{ + { + "rssi", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiEventApProbeReqRx, rssi), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "mac", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventApProbeReqRx, mac), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_event_ap_probe_req_rx__field_indices_by_name[] = { + 1, /* field[1] = mac */ + 0, /* field[0] = rssi */ +}; +static const ProtobufCIntRange wifi_event_ap_probe_req_rx__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor wifi_event_ap_probe_req_rx__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_event_ap_probe_req_rx", + "WifiEventApProbeReqRx", + "WifiEventApProbeReqRx", + "", + sizeof(WifiEventApProbeReqRx), + 2, + wifi_event_ap_probe_req_rx__field_descriptors, + wifi_event_ap_probe_req_rx__field_indices_by_name, + 1, wifi_event_ap_probe_req_rx__number_ranges, + (ProtobufCMessageInit) wifi_event_ap_probe_req_rx__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_event_bss_rssi_low__field_descriptors[1] = +{ + { + "rssi", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiEventBssRssiLow, rssi), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_event_bss_rssi_low__field_indices_by_name[] = { + 0, /* field[0] = rssi */ +}; +static const ProtobufCIntRange wifi_event_bss_rssi_low__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor wifi_event_bss_rssi_low__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_event_bss_rssi_low", + "WifiEventBssRssiLow", + "WifiEventBssRssiLow", + "", + sizeof(WifiEventBssRssiLow), + 1, + wifi_event_bss_rssi_low__field_descriptors, + wifi_event_bss_rssi_low__field_indices_by_name, + 1, wifi_event_bss_rssi_low__number_ranges, + (ProtobufCMessageInit) wifi_event_bss_rssi_low__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_ftm_report_entry__field_descriptors[7] = +{ + { + "dlog_token", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiFtmReportEntry, dlog_token), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "rssi", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiFtmReportEntry, rssi), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "rtt", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiFtmReportEntry, rtt), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "t1", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT64, + 0, /* quantifier_offset */ + offsetof(WifiFtmReportEntry, t1), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "t2", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT64, + 0, /* quantifier_offset */ + offsetof(WifiFtmReportEntry, t2), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "t3", + 6, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT64, + 0, /* quantifier_offset */ + offsetof(WifiFtmReportEntry, t3), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "t4", + 7, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT64, + 0, /* quantifier_offset */ + offsetof(WifiFtmReportEntry, t4), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_ftm_report_entry__field_indices_by_name[] = { + 0, /* field[0] = dlog_token */ + 1, /* field[1] = rssi */ + 2, /* field[2] = rtt */ + 3, /* field[3] = t1 */ + 4, /* field[4] = t2 */ + 5, /* field[5] = t3 */ + 6, /* field[6] = t4 */ +}; +static const ProtobufCIntRange wifi_ftm_report_entry__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 7 } +}; +const ProtobufCMessageDescriptor wifi_ftm_report_entry__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_ftm_report_entry", + "WifiFtmReportEntry", + "WifiFtmReportEntry", + "", + sizeof(WifiFtmReportEntry), + 7, + wifi_ftm_report_entry__field_descriptors, + wifi_ftm_report_entry__field_indices_by_name, + 1, wifi_ftm_report_entry__number_ranges, + (ProtobufCMessageInit) wifi_ftm_report_entry__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_event_ftm_report__field_descriptors[7] = +{ + { + "peer_mac", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiEventFtmReport, peer_mac), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "status", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiEventFtmReport, status), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "rtt_raw", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventFtmReport, rtt_raw), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "rtt_est", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventFtmReport, rtt_est), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "dist_est", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventFtmReport, dist_est), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ftm_report_data", + 6, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(WifiEventFtmReport, n_ftm_report_data), + offsetof(WifiEventFtmReport, ftm_report_data), + &wifi_ftm_report_entry__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ftm_report_num_entries", + 7, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventFtmReport, ftm_report_num_entries), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_event_ftm_report__field_indices_by_name[] = { + 4, /* field[4] = dist_est */ + 5, /* field[5] = ftm_report_data */ + 6, /* field[6] = ftm_report_num_entries */ + 0, /* field[0] = peer_mac */ + 3, /* field[3] = rtt_est */ + 2, /* field[2] = rtt_raw */ + 1, /* field[1] = status */ +}; +static const ProtobufCIntRange wifi_event_ftm_report__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 7 } +}; +const ProtobufCMessageDescriptor wifi_event_ftm_report__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_event_ftm_report", + "WifiEventFtmReport", + "WifiEventFtmReport", + "", + sizeof(WifiEventFtmReport), + 7, + wifi_event_ftm_report__field_descriptors, + wifi_event_ftm_report__field_indices_by_name, + 1, wifi_event_ftm_report__number_ranges, + (ProtobufCMessageInit) wifi_event_ftm_report__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_event_action_tx_status__field_descriptors[4] = +{ + { + "ifx", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiEventActionTxStatus, ifx), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "context", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventActionTxStatus, context), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "da", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiEventActionTxStatus, da), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "status", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventActionTxStatus, status), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_event_action_tx_status__field_indices_by_name[] = { + 1, /* field[1] = context */ + 2, /* field[2] = da */ + 0, /* field[0] = ifx */ + 3, /* field[3] = status */ +}; +static const ProtobufCIntRange wifi_event_action_tx_status__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 4 } +}; +const ProtobufCMessageDescriptor wifi_event_action_tx_status__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_event_action_tx_status", + "WifiEventActionTxStatus", + "WifiEventActionTxStatus", + "", + sizeof(WifiEventActionTxStatus), + 4, + wifi_event_action_tx_status__field_descriptors, + wifi_event_action_tx_status__field_indices_by_name, + 1, wifi_event_action_tx_status__number_ranges, + (ProtobufCMessageInit) wifi_event_action_tx_status__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_event_roc_done__field_descriptors[1] = +{ + { + "context", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiEventRocDone, context), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_event_roc_done__field_indices_by_name[] = { + 0, /* field[0] = context */ +}; +static const ProtobufCIntRange wifi_event_roc_done__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor wifi_event_roc_done__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_event_roc_done", + "WifiEventRocDone", + "WifiEventRocDone", + "", + sizeof(WifiEventRocDone), + 1, + wifi_event_roc_done__field_descriptors, + wifi_event_roc_done__field_indices_by_name, + 1, wifi_event_roc_done__number_ranges, + (ProtobufCMessageInit) wifi_event_roc_done__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_event_ap_wps_rg_pin__field_descriptors[1] = +{ + { + "pin_code", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiEventApWpsRgPin, pin_code), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_event_ap_wps_rg_pin__field_indices_by_name[] = { + 0, /* field[0] = pin_code */ +}; +static const ProtobufCIntRange wifi_event_ap_wps_rg_pin__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor wifi_event_ap_wps_rg_pin__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_event_ap_wps_rg_pin", + "WifiEventApWpsRgPin", + "WifiEventApWpsRgPin", + "", + sizeof(WifiEventApWpsRgPin), + 1, + wifi_event_ap_wps_rg_pin__field_descriptors, + wifi_event_ap_wps_rg_pin__field_indices_by_name, + 1, wifi_event_ap_wps_rg_pin__number_ranges, + (ProtobufCMessageInit) wifi_event_ap_wps_rg_pin__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_event_ap_wps_rg_fail_reason__field_descriptors[2] = +{ + { + "reason", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(WifiEventApWpsRgFailReason, reason), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "peer_macaddr", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiEventApWpsRgFailReason, peer_macaddr), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_event_ap_wps_rg_fail_reason__field_indices_by_name[] = { + 1, /* field[1] = peer_macaddr */ + 0, /* field[0] = reason */ +}; +static const ProtobufCIntRange wifi_event_ap_wps_rg_fail_reason__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor wifi_event_ap_wps_rg_fail_reason__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_event_ap_wps_rg_fail_reason", + "WifiEventApWpsRgFailReason", + "WifiEventApWpsRgFailReason", + "", + sizeof(WifiEventApWpsRgFailReason), + 2, + wifi_event_ap_wps_rg_fail_reason__field_descriptors, + wifi_event_ap_wps_rg_fail_reason__field_indices_by_name, + 1, wifi_event_ap_wps_rg_fail_reason__number_ranges, + (ProtobufCMessageInit) wifi_event_ap_wps_rg_fail_reason__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_event_ap_wps_rg_success__field_descriptors[1] = +{ + { + "peer_macaddr", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(WifiEventApWpsRgSuccess, peer_macaddr), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_event_ap_wps_rg_success__field_indices_by_name[] = { + 0, /* field[0] = peer_macaddr */ +}; +static const ProtobufCIntRange wifi_event_ap_wps_rg_success__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor wifi_event_ap_wps_rg_success__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_event_ap_wps_rg_success", + "WifiEventApWpsRgSuccess", + "WifiEventApWpsRgSuccess", + "", + sizeof(WifiEventApWpsRgSuccess), + 1, + wifi_event_ap_wps_rg_success__field_descriptors, + wifi_event_ap_wps_rg_success__field_indices_by_name, + 1, wifi_event_ap_wps_rg_success__number_ranges, + (ProtobufCMessageInit) wifi_event_ap_wps_rg_success__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_protocols__field_descriptors[2] = +{ + { + "ghz_2g", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiProtocols, ghz_2g), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ghz_5g", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiProtocols, ghz_5g), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_protocols__field_indices_by_name[] = { + 0, /* field[0] = ghz_2g */ + 1, /* field[1] = ghz_5g */ +}; +static const ProtobufCIntRange wifi_protocols__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor wifi_protocols__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_protocols", + "WifiProtocols", + "WifiProtocols", + "", + sizeof(WifiProtocols), + 2, + wifi_protocols__field_descriptors, + wifi_protocols__field_indices_by_name, + 1, wifi_protocols__number_ranges, + (ProtobufCMessageInit) wifi_protocols__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor wifi_bandwidths__field_descriptors[2] = +{ + { + "ghz_2g", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiBandwidths, ghz_2g), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ghz_5g", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(WifiBandwidths, ghz_5g), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned wifi_bandwidths__field_indices_by_name[] = { + 0, /* field[0] = ghz_2g */ + 1, /* field[1] = ghz_5g */ +}; +static const ProtobufCIntRange wifi_bandwidths__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor wifi_bandwidths__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "wifi_bandwidths", + "WifiBandwidths", + "WifiBandwidths", + "", + sizeof(WifiBandwidths), + 2, + wifi_bandwidths__field_descriptors, + wifi_bandwidths__field_indices_by_name, + 1, wifi_bandwidths__number_ranges, + (ProtobufCMessageInit) wifi_bandwidths__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor connected_stalist__field_descriptors[2] = +{ + { + "mac", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(ConnectedSTAList, mac), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "rssi", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(ConnectedSTAList, rssi), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned connected_stalist__field_indices_by_name[] = { + 0, /* field[0] = mac */ + 1, /* field[1] = rssi */ +}; +static const ProtobufCIntRange connected_stalist__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor connected_stalist__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "ConnectedSTAList", + "ConnectedSTAList", + "ConnectedSTAList", + "", + sizeof(ConnectedSTAList), + 2, + connected_stalist__field_descriptors, + connected_stalist__field_indices_by_name, + 1, connected_stalist__number_ranges, + (ProtobufCMessageInit) connected_stalist__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__get_mac_address__field_descriptors[1] = +{ + { + "mode", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqGetMacAddress, mode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__get_mac_address__field_indices_by_name[] = { + 0, /* field[0] = mode */ +}; +static const ProtobufCIntRange rpc__req__get_mac_address__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__get_mac_address__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_GetMacAddress", + "RpcReqGetMacAddress", + "RpcReqGetMacAddress", + "", + sizeof(RpcReqGetMacAddress), + 1, + rpc__req__get_mac_address__field_descriptors, + rpc__req__get_mac_address__field_indices_by_name, + 1, rpc__req__get_mac_address__number_ranges, + (ProtobufCMessageInit) rpc__req__get_mac_address__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__get_mac_address__field_descriptors[2] = +{ + { + "mac", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(RpcRespGetMacAddress, mac), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespGetMacAddress, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__get_mac_address__field_indices_by_name[] = { + 0, /* field[0] = mac */ + 1, /* field[1] = resp */ +}; +static const ProtobufCIntRange rpc__resp__get_mac_address__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__get_mac_address__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_GetMacAddress", + "RpcRespGetMacAddress", + "RpcRespGetMacAddress", + "", + sizeof(RpcRespGetMacAddress), + 2, + rpc__resp__get_mac_address__field_descriptors, + rpc__resp__get_mac_address__field_indices_by_name, + 1, rpc__resp__get_mac_address__number_ranges, + (ProtobufCMessageInit) rpc__resp__get_mac_address__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__get_mode__field_descriptors NULL +#define rpc__req__get_mode__field_indices_by_name NULL +#define rpc__req__get_mode__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__get_mode__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_GetMode", + "RpcReqGetMode", + "RpcReqGetMode", + "", + sizeof(RpcReqGetMode), + 0, + rpc__req__get_mode__field_descriptors, + rpc__req__get_mode__field_indices_by_name, + 0, rpc__req__get_mode__number_ranges, + (ProtobufCMessageInit) rpc__req__get_mode__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__get_mode__field_descriptors[2] = +{ + { + "mode", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespGetMode, mode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespGetMode, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__get_mode__field_indices_by_name[] = { + 0, /* field[0] = mode */ + 1, /* field[1] = resp */ +}; +static const ProtobufCIntRange rpc__resp__get_mode__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__get_mode__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_GetMode", + "RpcRespGetMode", + "RpcRespGetMode", + "", + sizeof(RpcRespGetMode), + 2, + rpc__resp__get_mode__field_descriptors, + rpc__resp__get_mode__field_indices_by_name, + 1, rpc__resp__get_mode__number_ranges, + (ProtobufCMessageInit) rpc__resp__get_mode__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__set_mode__field_descriptors[1] = +{ + { + "mode", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqSetMode, mode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__set_mode__field_indices_by_name[] = { + 0, /* field[0] = mode */ +}; +static const ProtobufCIntRange rpc__req__set_mode__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__set_mode__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_SetMode", + "RpcReqSetMode", + "RpcReqSetMode", + "", + sizeof(RpcReqSetMode), + 1, + rpc__req__set_mode__field_descriptors, + rpc__req__set_mode__field_indices_by_name, + 1, rpc__req__set_mode__number_ranges, + (ProtobufCMessageInit) rpc__req__set_mode__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__set_mode__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespSetMode, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__set_mode__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__set_mode__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__set_mode__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_SetMode", + "RpcRespSetMode", + "RpcRespSetMode", + "", + sizeof(RpcRespSetMode), + 1, + rpc__resp__set_mode__field_descriptors, + rpc__resp__set_mode__field_indices_by_name, + 1, rpc__resp__set_mode__number_ranges, + (ProtobufCMessageInit) rpc__resp__set_mode__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__get_ps__field_descriptors NULL +#define rpc__req__get_ps__field_indices_by_name NULL +#define rpc__req__get_ps__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__get_ps__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_GetPs", + "RpcReqGetPs", + "RpcReqGetPs", + "", + sizeof(RpcReqGetPs), + 0, + rpc__req__get_ps__field_descriptors, + rpc__req__get_ps__field_indices_by_name, + 0, rpc__req__get_ps__number_ranges, + (ProtobufCMessageInit) rpc__req__get_ps__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__get_ps__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespGetPs, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "type", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespGetPs, type), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__get_ps__field_indices_by_name[] = { + 0, /* field[0] = resp */ + 1, /* field[1] = type */ +}; +static const ProtobufCIntRange rpc__resp__get_ps__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__get_ps__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_GetPs", + "RpcRespGetPs", + "RpcRespGetPs", + "", + sizeof(RpcRespGetPs), + 2, + rpc__resp__get_ps__field_descriptors, + rpc__resp__get_ps__field_indices_by_name, + 1, rpc__resp__get_ps__number_ranges, + (ProtobufCMessageInit) rpc__resp__get_ps__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__set_ps__field_descriptors[1] = +{ + { + "type", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqSetPs, type), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__set_ps__field_indices_by_name[] = { + 0, /* field[0] = type */ +}; +static const ProtobufCIntRange rpc__req__set_ps__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__set_ps__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_SetPs", + "RpcReqSetPs", + "RpcReqSetPs", + "", + sizeof(RpcReqSetPs), + 1, + rpc__req__set_ps__field_descriptors, + rpc__req__set_ps__field_indices_by_name, + 1, rpc__req__set_ps__number_ranges, + (ProtobufCMessageInit) rpc__req__set_ps__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__set_ps__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespSetPs, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__set_ps__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__set_ps__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__set_ps__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_SetPs", + "RpcRespSetPs", + "RpcRespSetPs", + "", + sizeof(RpcRespSetPs), + 1, + rpc__resp__set_ps__field_descriptors, + rpc__resp__set_ps__field_indices_by_name, + 1, rpc__resp__set_ps__number_ranges, + (ProtobufCMessageInit) rpc__resp__set_ps__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__set_mac_address__field_descriptors[2] = +{ + { + "mac", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(RpcReqSetMacAddress, mac), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "mode", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqSetMacAddress, mode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__set_mac_address__field_indices_by_name[] = { + 0, /* field[0] = mac */ + 1, /* field[1] = mode */ +}; +static const ProtobufCIntRange rpc__req__set_mac_address__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__req__set_mac_address__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_SetMacAddress", + "RpcReqSetMacAddress", + "RpcReqSetMacAddress", + "", + sizeof(RpcReqSetMacAddress), + 2, + rpc__req__set_mac_address__field_descriptors, + rpc__req__set_mac_address__field_indices_by_name, + 1, rpc__req__set_mac_address__number_ranges, + (ProtobufCMessageInit) rpc__req__set_mac_address__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__set_mac_address__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespSetMacAddress, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__set_mac_address__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__set_mac_address__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__set_mac_address__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_SetMacAddress", + "RpcRespSetMacAddress", + "RpcRespSetMacAddress", + "", + sizeof(RpcRespSetMacAddress), + 1, + rpc__resp__set_mac_address__field_descriptors, + rpc__resp__set_mac_address__field_indices_by_name, + 1, rpc__resp__set_mac_address__number_ranges, + (ProtobufCMessageInit) rpc__resp__set_mac_address__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__otabegin__field_descriptors NULL +#define rpc__req__otabegin__field_indices_by_name NULL +#define rpc__req__otabegin__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__otabegin__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_OTABegin", + "RpcReqOTABegin", + "RpcReqOTABegin", + "", + sizeof(RpcReqOTABegin), + 0, + rpc__req__otabegin__field_descriptors, + rpc__req__otabegin__field_indices_by_name, + 0, rpc__req__otabegin__number_ranges, + (ProtobufCMessageInit) rpc__req__otabegin__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__otabegin__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespOTABegin, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__otabegin__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__otabegin__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__otabegin__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_OTABegin", + "RpcRespOTABegin", + "RpcRespOTABegin", + "", + sizeof(RpcRespOTABegin), + 1, + rpc__resp__otabegin__field_descriptors, + rpc__resp__otabegin__field_indices_by_name, + 1, rpc__resp__otabegin__number_ranges, + (ProtobufCMessageInit) rpc__resp__otabegin__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__otawrite__field_descriptors[1] = +{ + { + "ota_data", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(RpcReqOTAWrite, ota_data), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__otawrite__field_indices_by_name[] = { + 0, /* field[0] = ota_data */ +}; +static const ProtobufCIntRange rpc__req__otawrite__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__otawrite__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_OTAWrite", + "RpcReqOTAWrite", + "RpcReqOTAWrite", + "", + sizeof(RpcReqOTAWrite), + 1, + rpc__req__otawrite__field_descriptors, + rpc__req__otawrite__field_indices_by_name, + 1, rpc__req__otawrite__number_ranges, + (ProtobufCMessageInit) rpc__req__otawrite__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__otawrite__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespOTAWrite, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__otawrite__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__otawrite__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__otawrite__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_OTAWrite", + "RpcRespOTAWrite", + "RpcRespOTAWrite", + "", + sizeof(RpcRespOTAWrite), + 1, + rpc__resp__otawrite__field_descriptors, + rpc__resp__otawrite__field_indices_by_name, + 1, rpc__resp__otawrite__number_ranges, + (ProtobufCMessageInit) rpc__resp__otawrite__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__otaend__field_descriptors NULL +#define rpc__req__otaend__field_indices_by_name NULL +#define rpc__req__otaend__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__otaend__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_OTAEnd", + "RpcReqOTAEnd", + "RpcReqOTAEnd", + "", + sizeof(RpcReqOTAEnd), + 0, + rpc__req__otaend__field_descriptors, + rpc__req__otaend__field_indices_by_name, + 0, rpc__req__otaend__number_ranges, + (ProtobufCMessageInit) rpc__req__otaend__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__otaend__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespOTAEnd, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__otaend__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__otaend__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__otaend__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_OTAEnd", + "RpcRespOTAEnd", + "RpcRespOTAEnd", + "", + sizeof(RpcRespOTAEnd), + 1, + rpc__resp__otaend__field_descriptors, + rpc__resp__otaend__field_indices_by_name, + 1, rpc__resp__otaend__number_ranges, + (ProtobufCMessageInit) rpc__resp__otaend__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_set_max_tx_power__field_descriptors[1] = +{ + { + "power", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetMaxTxPower, power), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_set_max_tx_power__field_indices_by_name[] = { + 0, /* field[0] = power */ +}; +static const ProtobufCIntRange rpc__req__wifi_set_max_tx_power__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_set_max_tx_power__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiSetMaxTxPower", + "RpcReqWifiSetMaxTxPower", + "RpcReqWifiSetMaxTxPower", + "", + sizeof(RpcReqWifiSetMaxTxPower), + 1, + rpc__req__wifi_set_max_tx_power__field_descriptors, + rpc__req__wifi_set_max_tx_power__field_indices_by_name, + 1, rpc__req__wifi_set_max_tx_power__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_set_max_tx_power__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_set_max_tx_power__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiSetMaxTxPower, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_set_max_tx_power__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_set_max_tx_power__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_set_max_tx_power__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiSetMaxTxPower", + "RpcRespWifiSetMaxTxPower", + "RpcRespWifiSetMaxTxPower", + "", + sizeof(RpcRespWifiSetMaxTxPower), + 1, + rpc__resp__wifi_set_max_tx_power__field_descriptors, + rpc__resp__wifi_set_max_tx_power__field_indices_by_name, + 1, rpc__resp__wifi_set_max_tx_power__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_set_max_tx_power__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_get_max_tx_power__field_descriptors NULL +#define rpc__req__wifi_get_max_tx_power__field_indices_by_name NULL +#define rpc__req__wifi_get_max_tx_power__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_get_max_tx_power__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiGetMaxTxPower", + "RpcReqWifiGetMaxTxPower", + "RpcReqWifiGetMaxTxPower", + "", + sizeof(RpcReqWifiGetMaxTxPower), + 0, + rpc__req__wifi_get_max_tx_power__field_descriptors, + rpc__req__wifi_get_max_tx_power__field_indices_by_name, + 0, rpc__req__wifi_get_max_tx_power__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_get_max_tx_power__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_get_max_tx_power__field_descriptors[2] = +{ + { + "power", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetMaxTxPower, power), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetMaxTxPower, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_get_max_tx_power__field_indices_by_name[] = { + 0, /* field[0] = power */ + 1, /* field[1] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_get_max_tx_power__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_get_max_tx_power__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiGetMaxTxPower", + "RpcRespWifiGetMaxTxPower", + "RpcRespWifiGetMaxTxPower", + "", + sizeof(RpcRespWifiGetMaxTxPower), + 2, + rpc__resp__wifi_get_max_tx_power__field_descriptors, + rpc__resp__wifi_get_max_tx_power__field_indices_by_name, + 1, rpc__resp__wifi_get_max_tx_power__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_get_max_tx_power__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__config_heartbeat__field_descriptors[2] = +{ + { + "enable", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(RpcReqConfigHeartbeat, enable), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "duration", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqConfigHeartbeat, duration), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__config_heartbeat__field_indices_by_name[] = { + 1, /* field[1] = duration */ + 0, /* field[0] = enable */ +}; +static const ProtobufCIntRange rpc__req__config_heartbeat__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__req__config_heartbeat__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_ConfigHeartbeat", + "RpcReqConfigHeartbeat", + "RpcReqConfigHeartbeat", + "", + sizeof(RpcReqConfigHeartbeat), + 2, + rpc__req__config_heartbeat__field_descriptors, + rpc__req__config_heartbeat__field_indices_by_name, + 1, rpc__req__config_heartbeat__number_ranges, + (ProtobufCMessageInit) rpc__req__config_heartbeat__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__config_heartbeat__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespConfigHeartbeat, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__config_heartbeat__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__config_heartbeat__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__config_heartbeat__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_ConfigHeartbeat", + "RpcRespConfigHeartbeat", + "RpcRespConfigHeartbeat", + "", + sizeof(RpcRespConfigHeartbeat), + 1, + rpc__resp__config_heartbeat__field_descriptors, + rpc__resp__config_heartbeat__field_indices_by_name, + 1, rpc__resp__config_heartbeat__number_ranges, + (ProtobufCMessageInit) rpc__resp__config_heartbeat__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_init__field_descriptors[1] = +{ + { + "cfg", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiInit, cfg), + &wifi_init_config__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_init__field_indices_by_name[] = { + 0, /* field[0] = cfg */ +}; +static const ProtobufCIntRange rpc__req__wifi_init__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_init__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiInit", + "RpcReqWifiInit", + "RpcReqWifiInit", + "", + sizeof(RpcReqWifiInit), + 1, + rpc__req__wifi_init__field_descriptors, + rpc__req__wifi_init__field_indices_by_name, + 1, rpc__req__wifi_init__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_init__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_init__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiInit, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_init__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_init__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_init__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiInit", + "RpcRespWifiInit", + "RpcRespWifiInit", + "", + sizeof(RpcRespWifiInit), + 1, + rpc__resp__wifi_init__field_descriptors, + rpc__resp__wifi_init__field_indices_by_name, + 1, rpc__resp__wifi_init__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_init__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_deinit__field_descriptors NULL +#define rpc__req__wifi_deinit__field_indices_by_name NULL +#define rpc__req__wifi_deinit__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_deinit__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiDeinit", + "RpcReqWifiDeinit", + "RpcReqWifiDeinit", + "", + sizeof(RpcReqWifiDeinit), + 0, + rpc__req__wifi_deinit__field_descriptors, + rpc__req__wifi_deinit__field_indices_by_name, + 0, rpc__req__wifi_deinit__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_deinit__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_deinit__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiDeinit, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_deinit__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_deinit__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_deinit__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiDeinit", + "RpcRespWifiDeinit", + "RpcRespWifiDeinit", + "", + sizeof(RpcRespWifiDeinit), + 1, + rpc__resp__wifi_deinit__field_descriptors, + rpc__resp__wifi_deinit__field_indices_by_name, + 1, rpc__resp__wifi_deinit__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_deinit__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_set_config__field_descriptors[2] = +{ + { + "iface", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetConfig, iface), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "cfg", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetConfig, cfg), + &wifi_config__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_set_config__field_indices_by_name[] = { + 1, /* field[1] = cfg */ + 0, /* field[0] = iface */ +}; +static const ProtobufCIntRange rpc__req__wifi_set_config__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_set_config__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiSetConfig", + "RpcReqWifiSetConfig", + "RpcReqWifiSetConfig", + "", + sizeof(RpcReqWifiSetConfig), + 2, + rpc__req__wifi_set_config__field_descriptors, + rpc__req__wifi_set_config__field_indices_by_name, + 1, rpc__req__wifi_set_config__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_set_config__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_set_config__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiSetConfig, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_set_config__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_set_config__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_set_config__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiSetConfig", + "RpcRespWifiSetConfig", + "RpcRespWifiSetConfig", + "", + sizeof(RpcRespWifiSetConfig), + 1, + rpc__resp__wifi_set_config__field_descriptors, + rpc__resp__wifi_set_config__field_indices_by_name, + 1, rpc__resp__wifi_set_config__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_set_config__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_get_config__field_descriptors[1] = +{ + { + "iface", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiGetConfig, iface), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_get_config__field_indices_by_name[] = { + 0, /* field[0] = iface */ +}; +static const ProtobufCIntRange rpc__req__wifi_get_config__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_get_config__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiGetConfig", + "RpcReqWifiGetConfig", + "RpcReqWifiGetConfig", + "", + sizeof(RpcReqWifiGetConfig), + 1, + rpc__req__wifi_get_config__field_descriptors, + rpc__req__wifi_get_config__field_indices_by_name, + 1, rpc__req__wifi_get_config__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_get_config__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_get_config__field_descriptors[3] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetConfig, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "iface", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetConfig, iface), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "cfg", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetConfig, cfg), + &wifi_config__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_get_config__field_indices_by_name[] = { + 2, /* field[2] = cfg */ + 1, /* field[1] = iface */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_get_config__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 3 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_get_config__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiGetConfig", + "RpcRespWifiGetConfig", + "RpcRespWifiGetConfig", + "", + sizeof(RpcRespWifiGetConfig), + 3, + rpc__resp__wifi_get_config__field_descriptors, + rpc__resp__wifi_get_config__field_indices_by_name, + 1, rpc__resp__wifi_get_config__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_get_config__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_connect__field_descriptors NULL +#define rpc__req__wifi_connect__field_indices_by_name NULL +#define rpc__req__wifi_connect__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_connect__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiConnect", + "RpcReqWifiConnect", + "RpcReqWifiConnect", + "", + sizeof(RpcReqWifiConnect), + 0, + rpc__req__wifi_connect__field_descriptors, + rpc__req__wifi_connect__field_indices_by_name, + 0, rpc__req__wifi_connect__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_connect__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_connect__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiConnect, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_connect__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_connect__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_connect__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiConnect", + "RpcRespWifiConnect", + "RpcRespWifiConnect", + "", + sizeof(RpcRespWifiConnect), + 1, + rpc__resp__wifi_connect__field_descriptors, + rpc__resp__wifi_connect__field_indices_by_name, + 1, rpc__resp__wifi_connect__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_connect__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_disconnect__field_descriptors NULL +#define rpc__req__wifi_disconnect__field_indices_by_name NULL +#define rpc__req__wifi_disconnect__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_disconnect__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiDisconnect", + "RpcReqWifiDisconnect", + "RpcReqWifiDisconnect", + "", + sizeof(RpcReqWifiDisconnect), + 0, + rpc__req__wifi_disconnect__field_descriptors, + rpc__req__wifi_disconnect__field_indices_by_name, + 0, rpc__req__wifi_disconnect__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_disconnect__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_disconnect__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiDisconnect, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_disconnect__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_disconnect__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_disconnect__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiDisconnect", + "RpcRespWifiDisconnect", + "RpcRespWifiDisconnect", + "", + sizeof(RpcRespWifiDisconnect), + 1, + rpc__resp__wifi_disconnect__field_descriptors, + rpc__resp__wifi_disconnect__field_indices_by_name, + 1, rpc__resp__wifi_disconnect__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_disconnect__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_start__field_descriptors NULL +#define rpc__req__wifi_start__field_indices_by_name NULL +#define rpc__req__wifi_start__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_start__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiStart", + "RpcReqWifiStart", + "RpcReqWifiStart", + "", + sizeof(RpcReqWifiStart), + 0, + rpc__req__wifi_start__field_descriptors, + rpc__req__wifi_start__field_indices_by_name, + 0, rpc__req__wifi_start__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_start__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_start__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiStart, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_start__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_start__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_start__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiStart", + "RpcRespWifiStart", + "RpcRespWifiStart", + "", + sizeof(RpcRespWifiStart), + 1, + rpc__resp__wifi_start__field_descriptors, + rpc__resp__wifi_start__field_indices_by_name, + 1, rpc__resp__wifi_start__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_start__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_stop__field_descriptors NULL +#define rpc__req__wifi_stop__field_indices_by_name NULL +#define rpc__req__wifi_stop__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_stop__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiStop", + "RpcReqWifiStop", + "RpcReqWifiStop", + "", + sizeof(RpcReqWifiStop), + 0, + rpc__req__wifi_stop__field_descriptors, + rpc__req__wifi_stop__field_indices_by_name, + 0, rpc__req__wifi_stop__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_stop__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_stop__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiStop, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_stop__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_stop__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_stop__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiStop", + "RpcRespWifiStop", + "RpcRespWifiStop", + "", + sizeof(RpcRespWifiStop), + 1, + rpc__resp__wifi_stop__field_descriptors, + rpc__resp__wifi_stop__field_indices_by_name, + 1, rpc__resp__wifi_stop__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_stop__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_scan_start__field_descriptors[3] = +{ + { + "config", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiScanStart, config), + &wifi_scan_config__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "block", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiScanStart, block), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "config_set", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiScanStart, config_set), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_scan_start__field_indices_by_name[] = { + 1, /* field[1] = block */ + 0, /* field[0] = config */ + 2, /* field[2] = config_set */ +}; +static const ProtobufCIntRange rpc__req__wifi_scan_start__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 3 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_scan_start__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiScanStart", + "RpcReqWifiScanStart", + "RpcReqWifiScanStart", + "", + sizeof(RpcReqWifiScanStart), + 3, + rpc__req__wifi_scan_start__field_descriptors, + rpc__req__wifi_scan_start__field_indices_by_name, + 1, rpc__req__wifi_scan_start__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_scan_start__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_scan_start__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiScanStart, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_scan_start__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_scan_start__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_scan_start__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiScanStart", + "RpcRespWifiScanStart", + "RpcRespWifiScanStart", + "", + sizeof(RpcRespWifiScanStart), + 1, + rpc__resp__wifi_scan_start__field_descriptors, + rpc__resp__wifi_scan_start__field_indices_by_name, + 1, rpc__resp__wifi_scan_start__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_scan_start__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_scan_stop__field_descriptors NULL +#define rpc__req__wifi_scan_stop__field_indices_by_name NULL +#define rpc__req__wifi_scan_stop__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_scan_stop__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiScanStop", + "RpcReqWifiScanStop", + "RpcReqWifiScanStop", + "", + sizeof(RpcReqWifiScanStop), + 0, + rpc__req__wifi_scan_stop__field_descriptors, + rpc__req__wifi_scan_stop__field_indices_by_name, + 0, rpc__req__wifi_scan_stop__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_scan_stop__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_scan_stop__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiScanStop, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_scan_stop__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_scan_stop__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_scan_stop__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiScanStop", + "RpcRespWifiScanStop", + "RpcRespWifiScanStop", + "", + sizeof(RpcRespWifiScanStop), + 1, + rpc__resp__wifi_scan_stop__field_descriptors, + rpc__resp__wifi_scan_stop__field_indices_by_name, + 1, rpc__resp__wifi_scan_stop__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_scan_stop__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_scan_get_ap_num__field_descriptors NULL +#define rpc__req__wifi_scan_get_ap_num__field_indices_by_name NULL +#define rpc__req__wifi_scan_get_ap_num__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_scan_get_ap_num__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiScanGetApNum", + "RpcReqWifiScanGetApNum", + "RpcReqWifiScanGetApNum", + "", + sizeof(RpcReqWifiScanGetApNum), + 0, + rpc__req__wifi_scan_get_ap_num__field_descriptors, + rpc__req__wifi_scan_get_ap_num__field_indices_by_name, + 0, rpc__req__wifi_scan_get_ap_num__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_scan_get_ap_num__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_scan_get_ap_num__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiScanGetApNum, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "number", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiScanGetApNum, number), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_scan_get_ap_num__field_indices_by_name[] = { + 1, /* field[1] = number */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_scan_get_ap_num__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_scan_get_ap_num__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiScanGetApNum", + "RpcRespWifiScanGetApNum", + "RpcRespWifiScanGetApNum", + "", + sizeof(RpcRespWifiScanGetApNum), + 2, + rpc__resp__wifi_scan_get_ap_num__field_descriptors, + rpc__resp__wifi_scan_get_ap_num__field_indices_by_name, + 1, rpc__resp__wifi_scan_get_ap_num__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_scan_get_ap_num__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_scan_get_ap_records__field_descriptors[1] = +{ + { + "number", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiScanGetApRecords, number), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_scan_get_ap_records__field_indices_by_name[] = { + 0, /* field[0] = number */ +}; +static const ProtobufCIntRange rpc__req__wifi_scan_get_ap_records__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_scan_get_ap_records__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiScanGetApRecords", + "RpcReqWifiScanGetApRecords", + "RpcReqWifiScanGetApRecords", + "", + sizeof(RpcReqWifiScanGetApRecords), + 1, + rpc__req__wifi_scan_get_ap_records__field_descriptors, + rpc__req__wifi_scan_get_ap_records__field_indices_by_name, + 1, rpc__req__wifi_scan_get_ap_records__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_scan_get_ap_records__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_scan_get_ap_records__field_descriptors[3] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiScanGetApRecords, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "number", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiScanGetApRecords, number), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ap_records", + 3, + PROTOBUF_C_LABEL_REPEATED, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(RpcRespWifiScanGetApRecords, n_ap_records), + offsetof(RpcRespWifiScanGetApRecords, ap_records), + &wifi_ap_record__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_scan_get_ap_records__field_indices_by_name[] = { + 2, /* field[2] = ap_records */ + 1, /* field[1] = number */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_scan_get_ap_records__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 3 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_scan_get_ap_records__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiScanGetApRecords", + "RpcRespWifiScanGetApRecords", + "RpcRespWifiScanGetApRecords", + "", + sizeof(RpcRespWifiScanGetApRecords), + 3, + rpc__resp__wifi_scan_get_ap_records__field_descriptors, + rpc__resp__wifi_scan_get_ap_records__field_indices_by_name, + 1, rpc__resp__wifi_scan_get_ap_records__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_scan_get_ap_records__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_scan_get_ap_record__field_descriptors NULL +#define rpc__req__wifi_scan_get_ap_record__field_indices_by_name NULL +#define rpc__req__wifi_scan_get_ap_record__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_scan_get_ap_record__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiScanGetApRecord", + "RpcReqWifiScanGetApRecord", + "RpcReqWifiScanGetApRecord", + "", + sizeof(RpcReqWifiScanGetApRecord), + 0, + rpc__req__wifi_scan_get_ap_record__field_descriptors, + rpc__req__wifi_scan_get_ap_record__field_indices_by_name, + 0, rpc__req__wifi_scan_get_ap_record__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_scan_get_ap_record__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_scan_get_ap_record__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiScanGetApRecord, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ap_record", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiScanGetApRecord, ap_record), + &wifi_ap_record__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_scan_get_ap_record__field_indices_by_name[] = { + 1, /* field[1] = ap_record */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_scan_get_ap_record__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_scan_get_ap_record__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiScanGetApRecord", + "RpcRespWifiScanGetApRecord", + "RpcRespWifiScanGetApRecord", + "", + sizeof(RpcRespWifiScanGetApRecord), + 2, + rpc__resp__wifi_scan_get_ap_record__field_descriptors, + rpc__resp__wifi_scan_get_ap_record__field_indices_by_name, + 1, rpc__resp__wifi_scan_get_ap_record__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_scan_get_ap_record__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_clear_ap_list__field_descriptors NULL +#define rpc__req__wifi_clear_ap_list__field_indices_by_name NULL +#define rpc__req__wifi_clear_ap_list__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_clear_ap_list__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiClearApList", + "RpcReqWifiClearApList", + "RpcReqWifiClearApList", + "", + sizeof(RpcReqWifiClearApList), + 0, + rpc__req__wifi_clear_ap_list__field_descriptors, + rpc__req__wifi_clear_ap_list__field_indices_by_name, + 0, rpc__req__wifi_clear_ap_list__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_clear_ap_list__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_clear_ap_list__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiClearApList, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_clear_ap_list__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_clear_ap_list__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_clear_ap_list__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiClearApList", + "RpcRespWifiClearApList", + "RpcRespWifiClearApList", + "", + sizeof(RpcRespWifiClearApList), + 1, + rpc__resp__wifi_clear_ap_list__field_descriptors, + rpc__resp__wifi_clear_ap_list__field_indices_by_name, + 1, rpc__resp__wifi_clear_ap_list__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_clear_ap_list__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_restore__field_descriptors NULL +#define rpc__req__wifi_restore__field_indices_by_name NULL +#define rpc__req__wifi_restore__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_restore__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiRestore", + "RpcReqWifiRestore", + "RpcReqWifiRestore", + "", + sizeof(RpcReqWifiRestore), + 0, + rpc__req__wifi_restore__field_descriptors, + rpc__req__wifi_restore__field_indices_by_name, + 0, rpc__req__wifi_restore__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_restore__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_restore__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiRestore, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_restore__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_restore__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_restore__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiRestore", + "RpcRespWifiRestore", + "RpcRespWifiRestore", + "", + sizeof(RpcRespWifiRestore), + 1, + rpc__resp__wifi_restore__field_descriptors, + rpc__resp__wifi_restore__field_indices_by_name, + 1, rpc__resp__wifi_restore__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_restore__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_clear_fast_connect__field_descriptors NULL +#define rpc__req__wifi_clear_fast_connect__field_indices_by_name NULL +#define rpc__req__wifi_clear_fast_connect__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_clear_fast_connect__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiClearFastConnect", + "RpcReqWifiClearFastConnect", + "RpcReqWifiClearFastConnect", + "", + sizeof(RpcReqWifiClearFastConnect), + 0, + rpc__req__wifi_clear_fast_connect__field_descriptors, + rpc__req__wifi_clear_fast_connect__field_indices_by_name, + 0, rpc__req__wifi_clear_fast_connect__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_clear_fast_connect__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_clear_fast_connect__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiClearFastConnect, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_clear_fast_connect__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_clear_fast_connect__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_clear_fast_connect__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiClearFastConnect", + "RpcRespWifiClearFastConnect", + "RpcRespWifiClearFastConnect", + "", + sizeof(RpcRespWifiClearFastConnect), + 1, + rpc__resp__wifi_clear_fast_connect__field_descriptors, + rpc__resp__wifi_clear_fast_connect__field_indices_by_name, + 1, rpc__resp__wifi_clear_fast_connect__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_clear_fast_connect__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_deauth_sta__field_descriptors[1] = +{ + { + "aid", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiDeauthSta, aid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_deauth_sta__field_indices_by_name[] = { + 0, /* field[0] = aid */ +}; +static const ProtobufCIntRange rpc__req__wifi_deauth_sta__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_deauth_sta__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiDeauthSta", + "RpcReqWifiDeauthSta", + "RpcReqWifiDeauthSta", + "", + sizeof(RpcReqWifiDeauthSta), + 1, + rpc__req__wifi_deauth_sta__field_descriptors, + rpc__req__wifi_deauth_sta__field_indices_by_name, + 1, rpc__req__wifi_deauth_sta__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_deauth_sta__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_deauth_sta__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiDeauthSta, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "aid", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiDeauthSta, aid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_deauth_sta__field_indices_by_name[] = { + 1, /* field[1] = aid */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_deauth_sta__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_deauth_sta__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiDeauthSta", + "RpcRespWifiDeauthSta", + "RpcRespWifiDeauthSta", + "", + sizeof(RpcRespWifiDeauthSta), + 2, + rpc__resp__wifi_deauth_sta__field_descriptors, + rpc__resp__wifi_deauth_sta__field_indices_by_name, + 1, rpc__resp__wifi_deauth_sta__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_deauth_sta__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_sta_get_ap_info__field_descriptors NULL +#define rpc__req__wifi_sta_get_ap_info__field_indices_by_name NULL +#define rpc__req__wifi_sta_get_ap_info__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_ap_info__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiStaGetApInfo", + "RpcReqWifiStaGetApInfo", + "RpcReqWifiStaGetApInfo", + "", + sizeof(RpcReqWifiStaGetApInfo), + 0, + rpc__req__wifi_sta_get_ap_info__field_descriptors, + rpc__req__wifi_sta_get_ap_info__field_indices_by_name, + 0, rpc__req__wifi_sta_get_ap_info__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_sta_get_ap_info__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_sta_get_ap_info__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiStaGetApInfo, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ap_record", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiStaGetApInfo, ap_record), + &wifi_ap_record__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_sta_get_ap_info__field_indices_by_name[] = { + 1, /* field[1] = ap_record */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_sta_get_ap_info__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_ap_info__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiStaGetApInfo", + "RpcRespWifiStaGetApInfo", + "RpcRespWifiStaGetApInfo", + "", + sizeof(RpcRespWifiStaGetApInfo), + 2, + rpc__resp__wifi_sta_get_ap_info__field_descriptors, + rpc__resp__wifi_sta_get_ap_info__field_indices_by_name, + 1, rpc__resp__wifi_sta_get_ap_info__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_sta_get_ap_info__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_set_protocol__field_descriptors[2] = +{ + { + "ifx", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetProtocol, ifx), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "protocol_bitmap", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetProtocol, protocol_bitmap), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_set_protocol__field_indices_by_name[] = { + 0, /* field[0] = ifx */ + 1, /* field[1] = protocol_bitmap */ +}; +static const ProtobufCIntRange rpc__req__wifi_set_protocol__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_set_protocol__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiSetProtocol", + "RpcReqWifiSetProtocol", + "RpcReqWifiSetProtocol", + "", + sizeof(RpcReqWifiSetProtocol), + 2, + rpc__req__wifi_set_protocol__field_descriptors, + rpc__req__wifi_set_protocol__field_indices_by_name, + 1, rpc__req__wifi_set_protocol__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_set_protocol__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_set_protocol__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiSetProtocol, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_set_protocol__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_set_protocol__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_set_protocol__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiSetProtocol", + "RpcRespWifiSetProtocol", + "RpcRespWifiSetProtocol", + "", + sizeof(RpcRespWifiSetProtocol), + 1, + rpc__resp__wifi_set_protocol__field_descriptors, + rpc__resp__wifi_set_protocol__field_indices_by_name, + 1, rpc__resp__wifi_set_protocol__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_set_protocol__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_get_protocol__field_descriptors[1] = +{ + { + "ifx", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiGetProtocol, ifx), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_get_protocol__field_indices_by_name[] = { + 0, /* field[0] = ifx */ +}; +static const ProtobufCIntRange rpc__req__wifi_get_protocol__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_get_protocol__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiGetProtocol", + "RpcReqWifiGetProtocol", + "RpcReqWifiGetProtocol", + "", + sizeof(RpcReqWifiGetProtocol), + 1, + rpc__req__wifi_get_protocol__field_descriptors, + rpc__req__wifi_get_protocol__field_indices_by_name, + 1, rpc__req__wifi_get_protocol__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_get_protocol__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_get_protocol__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetProtocol, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "protocol_bitmap", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetProtocol, protocol_bitmap), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_get_protocol__field_indices_by_name[] = { + 1, /* field[1] = protocol_bitmap */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_get_protocol__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_get_protocol__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiGetProtocol", + "RpcRespWifiGetProtocol", + "RpcRespWifiGetProtocol", + "", + sizeof(RpcRespWifiGetProtocol), + 2, + rpc__resp__wifi_get_protocol__field_descriptors, + rpc__resp__wifi_get_protocol__field_indices_by_name, + 1, rpc__resp__wifi_get_protocol__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_get_protocol__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_set_bandwidth__field_descriptors[2] = +{ + { + "ifx", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetBandwidth, ifx), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "bw", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetBandwidth, bw), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_set_bandwidth__field_indices_by_name[] = { + 1, /* field[1] = bw */ + 0, /* field[0] = ifx */ +}; +static const ProtobufCIntRange rpc__req__wifi_set_bandwidth__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_set_bandwidth__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiSetBandwidth", + "RpcReqWifiSetBandwidth", + "RpcReqWifiSetBandwidth", + "", + sizeof(RpcReqWifiSetBandwidth), + 2, + rpc__req__wifi_set_bandwidth__field_descriptors, + rpc__req__wifi_set_bandwidth__field_indices_by_name, + 1, rpc__req__wifi_set_bandwidth__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_set_bandwidth__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_set_bandwidth__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiSetBandwidth, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_set_bandwidth__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_set_bandwidth__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_set_bandwidth__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiSetBandwidth", + "RpcRespWifiSetBandwidth", + "RpcRespWifiSetBandwidth", + "", + sizeof(RpcRespWifiSetBandwidth), + 1, + rpc__resp__wifi_set_bandwidth__field_descriptors, + rpc__resp__wifi_set_bandwidth__field_indices_by_name, + 1, rpc__resp__wifi_set_bandwidth__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_set_bandwidth__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_get_bandwidth__field_descriptors[1] = +{ + { + "ifx", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiGetBandwidth, ifx), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_get_bandwidth__field_indices_by_name[] = { + 0, /* field[0] = ifx */ +}; +static const ProtobufCIntRange rpc__req__wifi_get_bandwidth__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_get_bandwidth__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiGetBandwidth", + "RpcReqWifiGetBandwidth", + "RpcReqWifiGetBandwidth", + "", + sizeof(RpcReqWifiGetBandwidth), + 1, + rpc__req__wifi_get_bandwidth__field_descriptors, + rpc__req__wifi_get_bandwidth__field_indices_by_name, + 1, rpc__req__wifi_get_bandwidth__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_get_bandwidth__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_get_bandwidth__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetBandwidth, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "bw", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetBandwidth, bw), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_get_bandwidth__field_indices_by_name[] = { + 1, /* field[1] = bw */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_get_bandwidth__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_get_bandwidth__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiGetBandwidth", + "RpcRespWifiGetBandwidth", + "RpcRespWifiGetBandwidth", + "", + sizeof(RpcRespWifiGetBandwidth), + 2, + rpc__resp__wifi_get_bandwidth__field_descriptors, + rpc__resp__wifi_get_bandwidth__field_indices_by_name, + 1, rpc__resp__wifi_get_bandwidth__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_get_bandwidth__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_set_channel__field_descriptors[2] = +{ + { + "primary", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetChannel, primary), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "second", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetChannel, second), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_set_channel__field_indices_by_name[] = { + 0, /* field[0] = primary */ + 1, /* field[1] = second */ +}; +static const ProtobufCIntRange rpc__req__wifi_set_channel__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_set_channel__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiSetChannel", + "RpcReqWifiSetChannel", + "RpcReqWifiSetChannel", + "", + sizeof(RpcReqWifiSetChannel), + 2, + rpc__req__wifi_set_channel__field_descriptors, + rpc__req__wifi_set_channel__field_indices_by_name, + 1, rpc__req__wifi_set_channel__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_set_channel__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_set_channel__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiSetChannel, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_set_channel__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_set_channel__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_set_channel__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiSetChannel", + "RpcRespWifiSetChannel", + "RpcRespWifiSetChannel", + "", + sizeof(RpcRespWifiSetChannel), + 1, + rpc__resp__wifi_set_channel__field_descriptors, + rpc__resp__wifi_set_channel__field_indices_by_name, + 1, rpc__resp__wifi_set_channel__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_set_channel__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_get_channel__field_descriptors NULL +#define rpc__req__wifi_get_channel__field_indices_by_name NULL +#define rpc__req__wifi_get_channel__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_get_channel__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiGetChannel", + "RpcReqWifiGetChannel", + "RpcReqWifiGetChannel", + "", + sizeof(RpcReqWifiGetChannel), + 0, + rpc__req__wifi_get_channel__field_descriptors, + rpc__req__wifi_get_channel__field_indices_by_name, + 0, rpc__req__wifi_get_channel__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_get_channel__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_get_channel__field_descriptors[3] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetChannel, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "primary", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetChannel, primary), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "second", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetChannel, second), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_get_channel__field_indices_by_name[] = { + 1, /* field[1] = primary */ + 0, /* field[0] = resp */ + 2, /* field[2] = second */ +}; +static const ProtobufCIntRange rpc__resp__wifi_get_channel__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 3 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_get_channel__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiGetChannel", + "RpcRespWifiGetChannel", + "RpcRespWifiGetChannel", + "", + sizeof(RpcRespWifiGetChannel), + 3, + rpc__resp__wifi_get_channel__field_descriptors, + rpc__resp__wifi_get_channel__field_indices_by_name, + 1, rpc__resp__wifi_get_channel__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_get_channel__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_set_storage__field_descriptors[1] = +{ + { + "storage", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetStorage, storage), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_set_storage__field_indices_by_name[] = { + 0, /* field[0] = storage */ +}; +static const ProtobufCIntRange rpc__req__wifi_set_storage__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_set_storage__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiSetStorage", + "RpcReqWifiSetStorage", + "RpcReqWifiSetStorage", + "", + sizeof(RpcReqWifiSetStorage), + 1, + rpc__req__wifi_set_storage__field_descriptors, + rpc__req__wifi_set_storage__field_indices_by_name, + 1, rpc__req__wifi_set_storage__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_set_storage__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_set_storage__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiSetStorage, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_set_storage__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_set_storage__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_set_storage__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiSetStorage", + "RpcRespWifiSetStorage", + "RpcRespWifiSetStorage", + "", + sizeof(RpcRespWifiSetStorage), + 1, + rpc__resp__wifi_set_storage__field_descriptors, + rpc__resp__wifi_set_storage__field_indices_by_name, + 1, rpc__resp__wifi_set_storage__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_set_storage__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_set_country_code__field_descriptors[2] = +{ + { + "country", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetCountryCode, country), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ieee80211d_enabled", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetCountryCode, ieee80211d_enabled), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_set_country_code__field_indices_by_name[] = { + 0, /* field[0] = country */ + 1, /* field[1] = ieee80211d_enabled */ +}; +static const ProtobufCIntRange rpc__req__wifi_set_country_code__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_set_country_code__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiSetCountryCode", + "RpcReqWifiSetCountryCode", + "RpcReqWifiSetCountryCode", + "", + sizeof(RpcReqWifiSetCountryCode), + 2, + rpc__req__wifi_set_country_code__field_descriptors, + rpc__req__wifi_set_country_code__field_indices_by_name, + 1, rpc__req__wifi_set_country_code__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_set_country_code__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_set_country_code__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiSetCountryCode, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_set_country_code__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_set_country_code__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_set_country_code__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiSetCountryCode", + "RpcRespWifiSetCountryCode", + "RpcRespWifiSetCountryCode", + "", + sizeof(RpcRespWifiSetCountryCode), + 1, + rpc__resp__wifi_set_country_code__field_descriptors, + rpc__resp__wifi_set_country_code__field_indices_by_name, + 1, rpc__resp__wifi_set_country_code__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_set_country_code__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_get_country_code__field_descriptors NULL +#define rpc__req__wifi_get_country_code__field_indices_by_name NULL +#define rpc__req__wifi_get_country_code__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_get_country_code__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiGetCountryCode", + "RpcReqWifiGetCountryCode", + "RpcReqWifiGetCountryCode", + "", + sizeof(RpcReqWifiGetCountryCode), + 0, + rpc__req__wifi_get_country_code__field_descriptors, + rpc__req__wifi_get_country_code__field_indices_by_name, + 0, rpc__req__wifi_get_country_code__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_get_country_code__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_get_country_code__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetCountryCode, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "country", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetCountryCode, country), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_get_country_code__field_indices_by_name[] = { + 1, /* field[1] = country */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_get_country_code__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_get_country_code__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiGetCountryCode", + "RpcRespWifiGetCountryCode", + "RpcRespWifiGetCountryCode", + "", + sizeof(RpcRespWifiGetCountryCode), + 2, + rpc__resp__wifi_get_country_code__field_descriptors, + rpc__resp__wifi_get_country_code__field_indices_by_name, + 1, rpc__resp__wifi_get_country_code__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_get_country_code__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_set_country__field_descriptors[1] = +{ + { + "country", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetCountry, country), + &wifi_country__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_set_country__field_indices_by_name[] = { + 0, /* field[0] = country */ +}; +static const ProtobufCIntRange rpc__req__wifi_set_country__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_set_country__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiSetCountry", + "RpcReqWifiSetCountry", + "RpcReqWifiSetCountry", + "", + sizeof(RpcReqWifiSetCountry), + 1, + rpc__req__wifi_set_country__field_descriptors, + rpc__req__wifi_set_country__field_indices_by_name, + 1, rpc__req__wifi_set_country__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_set_country__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_set_country__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiSetCountry, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_set_country__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_set_country__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_set_country__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiSetCountry", + "RpcRespWifiSetCountry", + "RpcRespWifiSetCountry", + "", + sizeof(RpcRespWifiSetCountry), + 1, + rpc__resp__wifi_set_country__field_descriptors, + rpc__resp__wifi_set_country__field_indices_by_name, + 1, rpc__resp__wifi_set_country__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_set_country__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_get_country__field_descriptors NULL +#define rpc__req__wifi_get_country__field_indices_by_name NULL +#define rpc__req__wifi_get_country__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_get_country__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiGetCountry", + "RpcReqWifiGetCountry", + "RpcReqWifiGetCountry", + "", + sizeof(RpcReqWifiGetCountry), + 0, + rpc__req__wifi_get_country__field_descriptors, + rpc__req__wifi_get_country__field_indices_by_name, + 0, rpc__req__wifi_get_country__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_get_country__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_get_country__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetCountry, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "country", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetCountry, country), + &wifi_country__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_get_country__field_indices_by_name[] = { + 1, /* field[1] = country */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_get_country__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_get_country__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiGetCountry", + "RpcRespWifiGetCountry", + "RpcRespWifiGetCountry", + "", + sizeof(RpcRespWifiGetCountry), + 2, + rpc__resp__wifi_get_country__field_descriptors, + rpc__resp__wifi_get_country__field_indices_by_name, + 1, rpc__resp__wifi_get_country__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_get_country__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_ap_get_sta_list__field_descriptors NULL +#define rpc__req__wifi_ap_get_sta_list__field_indices_by_name NULL +#define rpc__req__wifi_ap_get_sta_list__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_ap_get_sta_list__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiApGetStaList", + "RpcReqWifiApGetStaList", + "RpcReqWifiApGetStaList", + "", + sizeof(RpcReqWifiApGetStaList), + 0, + rpc__req__wifi_ap_get_sta_list__field_descriptors, + rpc__req__wifi_ap_get_sta_list__field_indices_by_name, + 0, rpc__req__wifi_ap_get_sta_list__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_ap_get_sta_list__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_ap_get_sta_list__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiApGetStaList, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "sta_list", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiApGetStaList, sta_list), + &wifi_sta_list__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_ap_get_sta_list__field_indices_by_name[] = { + 0, /* field[0] = resp */ + 1, /* field[1] = sta_list */ +}; +static const ProtobufCIntRange rpc__resp__wifi_ap_get_sta_list__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_ap_get_sta_list__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiApGetStaList", + "RpcRespWifiApGetStaList", + "RpcRespWifiApGetStaList", + "", + sizeof(RpcRespWifiApGetStaList), + 2, + rpc__resp__wifi_ap_get_sta_list__field_descriptors, + rpc__resp__wifi_ap_get_sta_list__field_indices_by_name, + 1, rpc__resp__wifi_ap_get_sta_list__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_ap_get_sta_list__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_ap_get_sta_aid__field_descriptors[1] = +{ + { + "mac", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiApGetStaAid, mac), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_ap_get_sta_aid__field_indices_by_name[] = { + 0, /* field[0] = mac */ +}; +static const ProtobufCIntRange rpc__req__wifi_ap_get_sta_aid__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_ap_get_sta_aid__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiApGetStaAid", + "RpcReqWifiApGetStaAid", + "RpcReqWifiApGetStaAid", + "", + sizeof(RpcReqWifiApGetStaAid), + 1, + rpc__req__wifi_ap_get_sta_aid__field_descriptors, + rpc__req__wifi_ap_get_sta_aid__field_indices_by_name, + 1, rpc__req__wifi_ap_get_sta_aid__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_ap_get_sta_aid__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_sta_get_negotiated_phymode__field_descriptors NULL +#define rpc__req__wifi_sta_get_negotiated_phymode__field_indices_by_name NULL +#define rpc__req__wifi_sta_get_negotiated_phymode__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_negotiated_phymode__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiStaGetNegotiatedPhymode", + "RpcReqWifiStaGetNegotiatedPhymode", + "RpcReqWifiStaGetNegotiatedPhymode", + "", + sizeof(RpcReqWifiStaGetNegotiatedPhymode), + 0, + rpc__req__wifi_sta_get_negotiated_phymode__field_descriptors, + rpc__req__wifi_sta_get_negotiated_phymode__field_indices_by_name, + 0, rpc__req__wifi_sta_get_negotiated_phymode__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_sta_get_negotiated_phymode__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_sta_get_negotiated_phymode__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiStaGetNegotiatedPhymode, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "phymode", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiStaGetNegotiatedPhymode, phymode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_sta_get_negotiated_phymode__field_indices_by_name[] = { + 1, /* field[1] = phymode */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_sta_get_negotiated_phymode__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_negotiated_phymode__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiStaGetNegotiatedPhymode", + "RpcRespWifiStaGetNegotiatedPhymode", + "RpcRespWifiStaGetNegotiatedPhymode", + "", + sizeof(RpcRespWifiStaGetNegotiatedPhymode), + 2, + rpc__resp__wifi_sta_get_negotiated_phymode__field_descriptors, + rpc__resp__wifi_sta_get_negotiated_phymode__field_indices_by_name, + 1, rpc__resp__wifi_sta_get_negotiated_phymode__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_sta_get_negotiated_phymode__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_ap_get_sta_aid__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiApGetStaAid, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "aid", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiApGetStaAid, aid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_ap_get_sta_aid__field_indices_by_name[] = { + 1, /* field[1] = aid */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_ap_get_sta_aid__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_ap_get_sta_aid__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiApGetStaAid", + "RpcRespWifiApGetStaAid", + "RpcRespWifiApGetStaAid", + "", + sizeof(RpcRespWifiApGetStaAid), + 2, + rpc__resp__wifi_ap_get_sta_aid__field_descriptors, + rpc__resp__wifi_ap_get_sta_aid__field_indices_by_name, + 1, rpc__resp__wifi_ap_get_sta_aid__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_ap_get_sta_aid__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_sta_get_rssi__field_descriptors NULL +#define rpc__req__wifi_sta_get_rssi__field_indices_by_name NULL +#define rpc__req__wifi_sta_get_rssi__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_rssi__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiStaGetRssi", + "RpcReqWifiStaGetRssi", + "RpcReqWifiStaGetRssi", + "", + sizeof(RpcReqWifiStaGetRssi), + 0, + rpc__req__wifi_sta_get_rssi__field_descriptors, + rpc__req__wifi_sta_get_rssi__field_indices_by_name, + 0, rpc__req__wifi_sta_get_rssi__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_sta_get_rssi__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_sta_get_rssi__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiStaGetRssi, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "rssi", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiStaGetRssi, rssi), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_sta_get_rssi__field_indices_by_name[] = { + 0, /* field[0] = resp */ + 1, /* field[1] = rssi */ +}; +static const ProtobufCIntRange rpc__resp__wifi_sta_get_rssi__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_rssi__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiStaGetRssi", + "RpcRespWifiStaGetRssi", + "RpcRespWifiStaGetRssi", + "", + sizeof(RpcRespWifiStaGetRssi), + 2, + rpc__resp__wifi_sta_get_rssi__field_descriptors, + rpc__resp__wifi_sta_get_rssi__field_indices_by_name, + 1, rpc__resp__wifi_sta_get_rssi__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_sta_get_rssi__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_sta_get_aid__field_descriptors NULL +#define rpc__req__wifi_sta_get_aid__field_indices_by_name NULL +#define rpc__req__wifi_sta_get_aid__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_aid__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiStaGetAid", + "RpcReqWifiStaGetAid", + "RpcReqWifiStaGetAid", + "", + sizeof(RpcReqWifiStaGetAid), + 0, + rpc__req__wifi_sta_get_aid__field_descriptors, + rpc__req__wifi_sta_get_aid__field_indices_by_name, + 0, rpc__req__wifi_sta_get_aid__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_sta_get_aid__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_sta_get_aid__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiStaGetAid, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "aid", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiStaGetAid, aid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_sta_get_aid__field_indices_by_name[] = { + 1, /* field[1] = aid */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_sta_get_aid__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_aid__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiStaGetAid", + "RpcRespWifiStaGetAid", + "RpcRespWifiStaGetAid", + "", + sizeof(RpcRespWifiStaGetAid), + 2, + rpc__resp__wifi_sta_get_aid__field_descriptors, + rpc__resp__wifi_sta_get_aid__field_indices_by_name, + 1, rpc__resp__wifi_sta_get_aid__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_sta_get_aid__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_set_protocols__field_descriptors[2] = +{ + { + "ifx", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetProtocols, ifx), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "protocols", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetProtocols, protocols), + &wifi_protocols__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_set_protocols__field_indices_by_name[] = { + 0, /* field[0] = ifx */ + 1, /* field[1] = protocols */ +}; +static const ProtobufCIntRange rpc__req__wifi_set_protocols__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_set_protocols__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiSetProtocols", + "RpcReqWifiSetProtocols", + "RpcReqWifiSetProtocols", + "", + sizeof(RpcReqWifiSetProtocols), + 2, + rpc__req__wifi_set_protocols__field_descriptors, + rpc__req__wifi_set_protocols__field_indices_by_name, + 1, rpc__req__wifi_set_protocols__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_set_protocols__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_set_protocols__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiSetProtocols, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ifx", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiSetProtocols, ifx), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_set_protocols__field_indices_by_name[] = { + 1, /* field[1] = ifx */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_set_protocols__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_set_protocols__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiSetProtocols", + "RpcRespWifiSetProtocols", + "RpcRespWifiSetProtocols", + "", + sizeof(RpcRespWifiSetProtocols), + 2, + rpc__resp__wifi_set_protocols__field_descriptors, + rpc__resp__wifi_set_protocols__field_indices_by_name, + 1, rpc__resp__wifi_set_protocols__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_set_protocols__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_get_protocols__field_descriptors[1] = +{ + { + "ifx", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiGetProtocols, ifx), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_get_protocols__field_indices_by_name[] = { + 0, /* field[0] = ifx */ +}; +static const ProtobufCIntRange rpc__req__wifi_get_protocols__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_get_protocols__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiGetProtocols", + "RpcReqWifiGetProtocols", + "RpcReqWifiGetProtocols", + "", + sizeof(RpcReqWifiGetProtocols), + 1, + rpc__req__wifi_get_protocols__field_descriptors, + rpc__req__wifi_get_protocols__field_indices_by_name, + 1, rpc__req__wifi_get_protocols__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_get_protocols__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_get_protocols__field_descriptors[3] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetProtocols, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ifx", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetProtocols, ifx), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "protocols", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetProtocols, protocols), + &wifi_protocols__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_get_protocols__field_indices_by_name[] = { + 1, /* field[1] = ifx */ + 2, /* field[2] = protocols */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_get_protocols__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 3 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_get_protocols__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiGetProtocols", + "RpcRespWifiGetProtocols", + "RpcRespWifiGetProtocols", + "", + sizeof(RpcRespWifiGetProtocols), + 3, + rpc__resp__wifi_get_protocols__field_descriptors, + rpc__resp__wifi_get_protocols__field_indices_by_name, + 1, rpc__resp__wifi_get_protocols__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_get_protocols__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_set_bandwidths__field_descriptors[2] = +{ + { + "ifx", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetBandwidths, ifx), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "bandwidths", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetBandwidths, bandwidths), + &wifi_bandwidths__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_set_bandwidths__field_indices_by_name[] = { + 1, /* field[1] = bandwidths */ + 0, /* field[0] = ifx */ +}; +static const ProtobufCIntRange rpc__req__wifi_set_bandwidths__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_set_bandwidths__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiSetBandwidths", + "RpcReqWifiSetBandwidths", + "RpcReqWifiSetBandwidths", + "", + sizeof(RpcReqWifiSetBandwidths), + 2, + rpc__req__wifi_set_bandwidths__field_descriptors, + rpc__req__wifi_set_bandwidths__field_indices_by_name, + 1, rpc__req__wifi_set_bandwidths__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_set_bandwidths__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_set_bandwidths__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiSetBandwidths, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ifx", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiSetBandwidths, ifx), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_set_bandwidths__field_indices_by_name[] = { + 1, /* field[1] = ifx */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_set_bandwidths__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_set_bandwidths__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiSetBandwidths", + "RpcRespWifiSetBandwidths", + "RpcRespWifiSetBandwidths", + "", + sizeof(RpcRespWifiSetBandwidths), + 2, + rpc__resp__wifi_set_bandwidths__field_descriptors, + rpc__resp__wifi_set_bandwidths__field_indices_by_name, + 1, rpc__resp__wifi_set_bandwidths__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_set_bandwidths__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_get_bandwidths__field_descriptors[1] = +{ + { + "ifx", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiGetBandwidths, ifx), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_get_bandwidths__field_indices_by_name[] = { + 0, /* field[0] = ifx */ +}; +static const ProtobufCIntRange rpc__req__wifi_get_bandwidths__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_get_bandwidths__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiGetBandwidths", + "RpcReqWifiGetBandwidths", + "RpcReqWifiGetBandwidths", + "", + sizeof(RpcReqWifiGetBandwidths), + 1, + rpc__req__wifi_get_bandwidths__field_descriptors, + rpc__req__wifi_get_bandwidths__field_indices_by_name, + 1, rpc__req__wifi_get_bandwidths__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_get_bandwidths__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_get_bandwidths__field_descriptors[3] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetBandwidths, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "ifx", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetBandwidths, ifx), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "bandwidths", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetBandwidths, bandwidths), + &wifi_bandwidths__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_get_bandwidths__field_indices_by_name[] = { + 2, /* field[2] = bandwidths */ + 1, /* field[1] = ifx */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_get_bandwidths__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 3 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_get_bandwidths__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiGetBandwidths", + "RpcRespWifiGetBandwidths", + "RpcRespWifiGetBandwidths", + "", + sizeof(RpcRespWifiGetBandwidths), + 3, + rpc__resp__wifi_get_bandwidths__field_descriptors, + rpc__resp__wifi_get_bandwidths__field_indices_by_name, + 1, rpc__resp__wifi_get_bandwidths__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_get_bandwidths__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_set_band__field_descriptors[1] = +{ + { + "band", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetBand, band), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_set_band__field_indices_by_name[] = { + 0, /* field[0] = band */ +}; +static const ProtobufCIntRange rpc__req__wifi_set_band__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_set_band__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiSetBand", + "RpcReqWifiSetBand", + "RpcReqWifiSetBand", + "", + sizeof(RpcReqWifiSetBand), + 1, + rpc__req__wifi_set_band__field_descriptors, + rpc__req__wifi_set_band__field_indices_by_name, + 1, rpc__req__wifi_set_band__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_set_band__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_set_band__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiSetBand, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_set_band__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_set_band__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_set_band__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiSetBand", + "RpcRespWifiSetBand", + "RpcRespWifiSetBand", + "", + sizeof(RpcRespWifiSetBand), + 1, + rpc__resp__wifi_set_band__field_descriptors, + rpc__resp__wifi_set_band__field_indices_by_name, + 1, rpc__resp__wifi_set_band__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_set_band__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_get_band__field_descriptors NULL +#define rpc__req__wifi_get_band__field_indices_by_name NULL +#define rpc__req__wifi_get_band__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_get_band__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiGetBand", + "RpcReqWifiGetBand", + "RpcReqWifiGetBand", + "", + sizeof(RpcReqWifiGetBand), + 0, + rpc__req__wifi_get_band__field_descriptors, + rpc__req__wifi_get_band__field_indices_by_name, + 0, rpc__req__wifi_get_band__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_get_band__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_get_band__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetBand, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "band", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetBand, band), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_get_band__field_indices_by_name[] = { + 1, /* field[1] = band */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_get_band__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_get_band__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiGetBand", + "RpcRespWifiGetBand", + "RpcRespWifiGetBand", + "", + sizeof(RpcRespWifiGetBand), + 2, + rpc__resp__wifi_get_band__field_descriptors, + rpc__resp__wifi_get_band__field_indices_by_name, + 1, rpc__resp__wifi_get_band__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_get_band__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__req__wifi_set_band_mode__field_descriptors[1] = +{ + { + "bandmode", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(RpcReqWifiSetBandMode, bandmode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__req__wifi_set_band_mode__field_indices_by_name[] = { + 0, /* field[0] = bandmode */ +}; +static const ProtobufCIntRange rpc__req__wifi_set_band_mode__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__req__wifi_set_band_mode__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiSetBandMode", + "RpcReqWifiSetBandMode", + "RpcReqWifiSetBandMode", + "", + sizeof(RpcReqWifiSetBandMode), + 1, + rpc__req__wifi_set_band_mode__field_descriptors, + rpc__req__wifi_set_band_mode__field_indices_by_name, + 1, rpc__req__wifi_set_band_mode__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_set_band_mode__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_set_band_mode__field_descriptors[1] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiSetBandMode, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_set_band_mode__field_indices_by_name[] = { + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_set_band_mode__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_set_band_mode__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiSetBandMode", + "RpcRespWifiSetBandMode", + "RpcRespWifiSetBandMode", + "", + sizeof(RpcRespWifiSetBandMode), + 1, + rpc__resp__wifi_set_band_mode__field_descriptors, + rpc__resp__wifi_set_band_mode__field_indices_by_name, + 1, rpc__resp__wifi_set_band_mode__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_set_band_mode__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__wifi_get_band_mode__field_descriptors NULL +#define rpc__req__wifi_get_band_mode__field_indices_by_name NULL +#define rpc__req__wifi_get_band_mode__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__wifi_get_band_mode__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_WifiGetBandMode", + "RpcReqWifiGetBandMode", + "RpcReqWifiGetBandMode", + "", + sizeof(RpcReqWifiGetBandMode), + 0, + rpc__req__wifi_get_band_mode__field_descriptors, + rpc__req__wifi_get_band_mode__field_indices_by_name, + 0, rpc__req__wifi_get_band_mode__number_ranges, + (ProtobufCMessageInit) rpc__req__wifi_get_band_mode__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__wifi_get_band_mode__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetBandMode, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "bandmode", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(RpcRespWifiGetBandMode, bandmode), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__wifi_get_band_mode__field_indices_by_name[] = { + 1, /* field[1] = bandmode */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__wifi_get_band_mode__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__resp__wifi_get_band_mode__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_WifiGetBandMode", + "RpcRespWifiGetBandMode", + "RpcRespWifiGetBandMode", + "", + sizeof(RpcRespWifiGetBandMode), + 2, + rpc__resp__wifi_get_band_mode__field_descriptors, + rpc__resp__wifi_get_band_mode__field_indices_by_name, + 1, rpc__resp__wifi_get_band_mode__number_ranges, + (ProtobufCMessageInit) rpc__resp__wifi_get_band_mode__init, + NULL,NULL,NULL /* reserved[123] */ +}; +#define rpc__req__get_coprocessor_fw_version__field_descriptors NULL +#define rpc__req__get_coprocessor_fw_version__field_indices_by_name NULL +#define rpc__req__get_coprocessor_fw_version__number_ranges NULL +const ProtobufCMessageDescriptor rpc__req__get_coprocessor_fw_version__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Req_GetCoprocessorFwVersion", + "RpcReqGetCoprocessorFwVersion", + "RpcReqGetCoprocessorFwVersion", + "", + sizeof(RpcReqGetCoprocessorFwVersion), + 0, + rpc__req__get_coprocessor_fw_version__field_descriptors, + rpc__req__get_coprocessor_fw_version__field_indices_by_name, + 0, rpc__req__get_coprocessor_fw_version__number_ranges, + (ProtobufCMessageInit) rpc__req__get_coprocessor_fw_version__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__resp__get_coprocessor_fw_version__field_descriptors[4] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcRespGetCoprocessorFwVersion, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "major1", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(RpcRespGetCoprocessorFwVersion, major1), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "minor1", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(RpcRespGetCoprocessorFwVersion, minor1), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "patch1", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(RpcRespGetCoprocessorFwVersion, patch1), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__resp__get_coprocessor_fw_version__field_indices_by_name[] = { + 1, /* field[1] = major1 */ + 2, /* field[2] = minor1 */ + 3, /* field[3] = patch1 */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__resp__get_coprocessor_fw_version__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 4 } +}; +const ProtobufCMessageDescriptor rpc__resp__get_coprocessor_fw_version__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Resp_GetCoprocessorFwVersion", + "RpcRespGetCoprocessorFwVersion", + "RpcRespGetCoprocessorFwVersion", + "", + sizeof(RpcRespGetCoprocessorFwVersion), + 4, + rpc__resp__get_coprocessor_fw_version__field_descriptors, + rpc__resp__get_coprocessor_fw_version__field_indices_by_name, + 1, rpc__resp__get_coprocessor_fw_version__number_ranges, + (ProtobufCMessageInit) rpc__resp__get_coprocessor_fw_version__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__event__wifi_event_no_args__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcEventWifiEventNoArgs, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "event_id", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcEventWifiEventNoArgs, event_id), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__event__wifi_event_no_args__field_indices_by_name[] = { + 1, /* field[1] = event_id */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__event__wifi_event_no_args__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__event__wifi_event_no_args__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Event_WifiEventNoArgs", + "RpcEventWifiEventNoArgs", + "RpcEventWifiEventNoArgs", + "", + sizeof(RpcEventWifiEventNoArgs), + 2, + rpc__event__wifi_event_no_args__field_descriptors, + rpc__event__wifi_event_no_args__field_indices_by_name, + 1, rpc__event__wifi_event_no_args__number_ranges, + (ProtobufCMessageInit) rpc__event__wifi_event_no_args__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__event__espinit__field_descriptors[1] = +{ + { + "init_data", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(RpcEventESPInit, init_data), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__event__espinit__field_indices_by_name[] = { + 0, /* field[0] = init_data */ +}; +static const ProtobufCIntRange rpc__event__espinit__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__event__espinit__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Event_ESPInit", + "RpcEventESPInit", + "RpcEventESPInit", + "", + sizeof(RpcEventESPInit), + 1, + rpc__event__espinit__field_descriptors, + rpc__event__espinit__field_indices_by_name, + 1, rpc__event__espinit__number_ranges, + (ProtobufCMessageInit) rpc__event__espinit__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__event__heartbeat__field_descriptors[1] = +{ + { + "hb_num", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcEventHeartbeat, hb_num), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__event__heartbeat__field_indices_by_name[] = { + 0, /* field[0] = hb_num */ +}; +static const ProtobufCIntRange rpc__event__heartbeat__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 1 } +}; +const ProtobufCMessageDescriptor rpc__event__heartbeat__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Event_Heartbeat", + "RpcEventHeartbeat", + "RpcEventHeartbeat", + "", + sizeof(RpcEventHeartbeat), + 1, + rpc__event__heartbeat__field_descriptors, + rpc__event__heartbeat__field_indices_by_name, + 1, rpc__event__heartbeat__number_ranges, + (ProtobufCMessageInit) rpc__event__heartbeat__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__event__ap__sta_disconnected__field_descriptors[5] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcEventAPStaDisconnected, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "mac", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(RpcEventAPStaDisconnected, mac), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "aid", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(RpcEventAPStaDisconnected, aid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "is_mesh_child", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(RpcEventAPStaDisconnected, is_mesh_child), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "reason", + 5, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(RpcEventAPStaDisconnected, reason), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__event__ap__sta_disconnected__field_indices_by_name[] = { + 2, /* field[2] = aid */ + 3, /* field[3] = is_mesh_child */ + 1, /* field[1] = mac */ + 4, /* field[4] = reason */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__event__ap__sta_disconnected__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 5 } +}; +const ProtobufCMessageDescriptor rpc__event__ap__sta_disconnected__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Event_AP_StaDisconnected", + "RpcEventAPStaDisconnected", + "RpcEventAPStaDisconnected", + "", + sizeof(RpcEventAPStaDisconnected), + 5, + rpc__event__ap__sta_disconnected__field_descriptors, + rpc__event__ap__sta_disconnected__field_indices_by_name, + 1, rpc__event__ap__sta_disconnected__number_ranges, + (ProtobufCMessageInit) rpc__event__ap__sta_disconnected__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__event__ap__sta_connected__field_descriptors[4] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcEventAPStaConnected, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "mac", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BYTES, + 0, /* quantifier_offset */ + offsetof(RpcEventAPStaConnected, mac), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "aid", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(RpcEventAPStaConnected, aid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "is_mesh_child", + 4, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_BOOL, + 0, /* quantifier_offset */ + offsetof(RpcEventAPStaConnected, is_mesh_child), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__event__ap__sta_connected__field_indices_by_name[] = { + 2, /* field[2] = aid */ + 3, /* field[3] = is_mesh_child */ + 1, /* field[1] = mac */ + 0, /* field[0] = resp */ +}; +static const ProtobufCIntRange rpc__event__ap__sta_connected__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 4 } +}; +const ProtobufCMessageDescriptor rpc__event__ap__sta_connected__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Event_AP_StaConnected", + "RpcEventAPStaConnected", + "RpcEventAPStaConnected", + "", + sizeof(RpcEventAPStaConnected), + 4, + rpc__event__ap__sta_connected__field_descriptors, + rpc__event__ap__sta_connected__field_indices_by_name, + 1, rpc__event__ap__sta_connected__number_ranges, + (ProtobufCMessageInit) rpc__event__ap__sta_connected__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__event__sta_scan_done__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcEventStaScanDone, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "scan_done", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcEventStaScanDone, scan_done), + &wifi_event_sta_scan_done__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__event__sta_scan_done__field_indices_by_name[] = { + 0, /* field[0] = resp */ + 1, /* field[1] = scan_done */ +}; +static const ProtobufCIntRange rpc__event__sta_scan_done__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__event__sta_scan_done__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Event_StaScanDone", + "RpcEventStaScanDone", + "RpcEventStaScanDone", + "", + sizeof(RpcEventStaScanDone), + 2, + rpc__event__sta_scan_done__field_descriptors, + rpc__event__sta_scan_done__field_indices_by_name, + 1, rpc__event__sta_scan_done__number_ranges, + (ProtobufCMessageInit) rpc__event__sta_scan_done__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__event__sta_connected__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcEventStaConnected, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "sta_connected", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcEventStaConnected, sta_connected), + &wifi_event_sta_connected__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__event__sta_connected__field_indices_by_name[] = { + 0, /* field[0] = resp */ + 1, /* field[1] = sta_connected */ +}; +static const ProtobufCIntRange rpc__event__sta_connected__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__event__sta_connected__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Event_StaConnected", + "RpcEventStaConnected", + "RpcEventStaConnected", + "", + sizeof(RpcEventStaConnected), + 2, + rpc__event__sta_connected__field_descriptors, + rpc__event__sta_connected__field_indices_by_name, + 1, rpc__event__sta_connected__number_ranges, + (ProtobufCMessageInit) rpc__event__sta_connected__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__event__sta_disconnected__field_descriptors[2] = +{ + { + "resp", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_INT32, + 0, /* quantifier_offset */ + offsetof(RpcEventStaDisconnected, resp), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "sta_disconnected", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + 0, /* quantifier_offset */ + offsetof(RpcEventStaDisconnected, sta_disconnected), + &wifi_event_sta_disconnected__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__event__sta_disconnected__field_indices_by_name[] = { + 0, /* field[0] = resp */ + 1, /* field[1] = sta_disconnected */ +}; +static const ProtobufCIntRange rpc__event__sta_disconnected__number_ranges[1 + 1] = +{ + { 1, 0 }, + { 0, 2 } +}; +const ProtobufCMessageDescriptor rpc__event__sta_disconnected__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc_Event_StaDisconnected", + "RpcEventStaDisconnected", + "RpcEventStaDisconnected", + "", + sizeof(RpcEventStaDisconnected), + 2, + rpc__event__sta_disconnected__field_descriptors, + rpc__event__sta_disconnected__field_indices_by_name, + 1, rpc__event__sta_disconnected__number_ranges, + (ProtobufCMessageInit) rpc__event__sta_disconnected__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCFieldDescriptor rpc__field_descriptors[121] = +{ + { + "msg_type", + 1, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_ENUM, + 0, /* quantifier_offset */ + offsetof(Rpc, msg_type), + &rpc_type__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "msg_id", + 2, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_ENUM, + 0, /* quantifier_offset */ + offsetof(Rpc, msg_id), + &rpc_id__descriptor, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "uid", + 3, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_UINT32, + 0, /* quantifier_offset */ + offsetof(Rpc, uid), + NULL, + NULL, + 0, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_get_mac_address", + 257, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_get_mac_address), + &rpc__req__get_mac_address__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_set_mac_address", + 258, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_set_mac_address), + &rpc__req__set_mac_address__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_get_wifi_mode", + 259, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_get_wifi_mode), + &rpc__req__get_mode__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_set_wifi_mode", + 260, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_set_wifi_mode), + &rpc__req__set_mode__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_set_ps", + 270, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_set_ps), + &rpc__req__set_ps__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_get_ps", + 271, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_get_ps), + &rpc__req__get_ps__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_ota_begin", + 272, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_ota_begin), + &rpc__req__otabegin__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_ota_write", + 273, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_ota_write), + &rpc__req__otawrite__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_ota_end", + 274, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_ota_end), + &rpc__req__otaend__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_set_wifi_max_tx_power", + 275, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_set_wifi_max_tx_power), + &rpc__req__wifi_set_max_tx_power__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_get_wifi_max_tx_power", + 276, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_get_wifi_max_tx_power), + &rpc__req__wifi_get_max_tx_power__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_config_heartbeat", + 277, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_config_heartbeat), + &rpc__req__config_heartbeat__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_init", + 278, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_init), + &rpc__req__wifi_init__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_deinit", + 279, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_deinit), + &rpc__req__wifi_deinit__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_start", + 280, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_start), + &rpc__req__wifi_start__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_stop", + 281, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_stop), + &rpc__req__wifi_stop__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_connect", + 282, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_connect), + &rpc__req__wifi_connect__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_disconnect", + 283, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_disconnect), + &rpc__req__wifi_disconnect__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_set_config", + 284, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_set_config), + &rpc__req__wifi_set_config__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_get_config", + 285, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_get_config), + &rpc__req__wifi_get_config__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_scan_start", + 286, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_scan_start), + &rpc__req__wifi_scan_start__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_scan_stop", + 287, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_scan_stop), + &rpc__req__wifi_scan_stop__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_scan_get_ap_num", + 288, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_scan_get_ap_num), + &rpc__req__wifi_scan_get_ap_num__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_scan_get_ap_records", + 289, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_scan_get_ap_records), + &rpc__req__wifi_scan_get_ap_records__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_clear_ap_list", + 290, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_clear_ap_list), + &rpc__req__wifi_clear_ap_list__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_restore", + 291, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_restore), + &rpc__req__wifi_restore__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_clear_fast_connect", + 292, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_clear_fast_connect), + &rpc__req__wifi_clear_fast_connect__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_deauth_sta", + 293, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_deauth_sta), + &rpc__req__wifi_deauth_sta__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_sta_get_ap_info", + 294, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_sta_get_ap_info), + &rpc__req__wifi_sta_get_ap_info__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_set_protocol", + 297, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_set_protocol), + &rpc__req__wifi_set_protocol__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_get_protocol", + 298, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_get_protocol), + &rpc__req__wifi_get_protocol__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_set_bandwidth", + 299, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_set_bandwidth), + &rpc__req__wifi_set_bandwidth__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_get_bandwidth", + 300, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_get_bandwidth), + &rpc__req__wifi_get_bandwidth__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_set_channel", + 301, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_set_channel), + &rpc__req__wifi_set_channel__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_get_channel", + 302, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_get_channel), + &rpc__req__wifi_get_channel__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_set_country", + 303, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_set_country), + &rpc__req__wifi_set_country__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_get_country", + 304, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_get_country), + &rpc__req__wifi_get_country__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_ap_get_sta_list", + 311, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_ap_get_sta_list), + &rpc__req__wifi_ap_get_sta_list__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_ap_get_sta_aid", + 312, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_ap_get_sta_aid), + &rpc__req__wifi_ap_get_sta_aid__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_set_storage", + 313, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_set_storage), + &rpc__req__wifi_set_storage__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_set_country_code", + 334, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_set_country_code), + &rpc__req__wifi_set_country_code__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_get_country_code", + 335, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_get_country_code), + &rpc__req__wifi_get_country_code__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_sta_get_aid", + 338, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_sta_get_aid), + &rpc__req__wifi_sta_get_aid__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_sta_get_negotiated_phymode", + 339, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_sta_get_negotiated_phymode), + &rpc__req__wifi_sta_get_negotiated_phymode__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_sta_get_rssi", + 341, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_sta_get_rssi), + &rpc__req__wifi_sta_get_rssi__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_set_protocols", + 342, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_set_protocols), + &rpc__req__wifi_set_protocols__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_get_protocols", + 343, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_get_protocols), + &rpc__req__wifi_get_protocols__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_set_bandwidths", + 344, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_set_bandwidths), + &rpc__req__wifi_set_bandwidths__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_get_bandwidths", + 345, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_get_bandwidths), + &rpc__req__wifi_get_bandwidths__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_set_band", + 346, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_set_band), + &rpc__req__wifi_set_band__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_get_band", + 347, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_get_band), + &rpc__req__wifi_get_band__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_set_bandmode", + 348, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_set_bandmode), + &rpc__req__wifi_set_band_mode__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_get_bandmode", + 349, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_get_bandmode), + &rpc__req__wifi_get_band_mode__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_get_coprocessor_fwversion", + 350, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_get_coprocessor_fwversion), + &rpc__req__get_coprocessor_fw_version__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "req_wifi_scan_get_ap_record", + 351, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, req_wifi_scan_get_ap_record), + &rpc__req__wifi_scan_get_ap_record__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_get_mac_address", + 513, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_get_mac_address), + &rpc__resp__get_mac_address__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_set_mac_address", + 514, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_set_mac_address), + &rpc__resp__set_mac_address__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_get_wifi_mode", + 515, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_get_wifi_mode), + &rpc__resp__get_mode__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_set_wifi_mode", + 516, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_set_wifi_mode), + &rpc__resp__set_mode__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_set_ps", + 526, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_set_ps), + &rpc__resp__set_ps__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_get_ps", + 527, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_get_ps), + &rpc__resp__get_ps__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_ota_begin", + 528, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_ota_begin), + &rpc__resp__otabegin__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_ota_write", + 529, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_ota_write), + &rpc__resp__otawrite__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_ota_end", + 530, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_ota_end), + &rpc__resp__otaend__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_set_wifi_max_tx_power", + 531, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_set_wifi_max_tx_power), + &rpc__resp__wifi_set_max_tx_power__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_get_wifi_max_tx_power", + 532, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_get_wifi_max_tx_power), + &rpc__resp__wifi_get_max_tx_power__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_config_heartbeat", + 533, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_config_heartbeat), + &rpc__resp__config_heartbeat__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_init", + 534, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_init), + &rpc__resp__wifi_init__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_deinit", + 535, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_deinit), + &rpc__resp__wifi_deinit__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_start", + 536, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_start), + &rpc__resp__wifi_start__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_stop", + 537, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_stop), + &rpc__resp__wifi_stop__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_connect", + 538, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_connect), + &rpc__resp__wifi_connect__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_disconnect", + 539, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_disconnect), + &rpc__resp__wifi_disconnect__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_set_config", + 540, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_set_config), + &rpc__resp__wifi_set_config__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_get_config", + 541, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_get_config), + &rpc__resp__wifi_get_config__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_scan_start", + 542, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_scan_start), + &rpc__resp__wifi_scan_start__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_scan_stop", + 543, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_scan_stop), + &rpc__resp__wifi_scan_stop__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_scan_get_ap_num", + 544, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_scan_get_ap_num), + &rpc__resp__wifi_scan_get_ap_num__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_scan_get_ap_records", + 545, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_scan_get_ap_records), + &rpc__resp__wifi_scan_get_ap_records__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_clear_ap_list", + 546, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_clear_ap_list), + &rpc__resp__wifi_clear_ap_list__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_restore", + 547, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_restore), + &rpc__resp__wifi_restore__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_clear_fast_connect", + 548, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_clear_fast_connect), + &rpc__resp__wifi_clear_fast_connect__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_deauth_sta", + 549, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_deauth_sta), + &rpc__resp__wifi_deauth_sta__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_sta_get_ap_info", + 550, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_sta_get_ap_info), + &rpc__resp__wifi_sta_get_ap_info__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_set_protocol", + 553, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_set_protocol), + &rpc__resp__wifi_set_protocol__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_get_protocol", + 554, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_get_protocol), + &rpc__resp__wifi_get_protocol__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_set_bandwidth", + 555, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_set_bandwidth), + &rpc__resp__wifi_set_bandwidth__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_get_bandwidth", + 556, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_get_bandwidth), + &rpc__resp__wifi_get_bandwidth__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_set_channel", + 557, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_set_channel), + &rpc__resp__wifi_set_channel__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_get_channel", + 558, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_get_channel), + &rpc__resp__wifi_get_channel__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_set_country", + 559, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_set_country), + &rpc__resp__wifi_set_country__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_get_country", + 560, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_get_country), + &rpc__resp__wifi_get_country__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_ap_get_sta_list", + 567, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_ap_get_sta_list), + &rpc__resp__wifi_ap_get_sta_list__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_ap_get_sta_aid", + 568, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_ap_get_sta_aid), + &rpc__resp__wifi_ap_get_sta_aid__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_set_storage", + 569, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_set_storage), + &rpc__resp__wifi_set_storage__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_set_country_code", + 590, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_set_country_code), + &rpc__resp__wifi_set_country_code__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_get_country_code", + 591, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_get_country_code), + &rpc__resp__wifi_get_country_code__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_sta_get_aid", + 594, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_sta_get_aid), + &rpc__resp__wifi_sta_get_aid__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_sta_get_negotiated_phymode", + 595, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_sta_get_negotiated_phymode), + &rpc__resp__wifi_sta_get_negotiated_phymode__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_sta_get_rssi", + 597, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_sta_get_rssi), + &rpc__resp__wifi_sta_get_rssi__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_set_protocols", + 598, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_set_protocols), + &rpc__resp__wifi_set_protocols__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_get_protocols", + 599, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_get_protocols), + &rpc__resp__wifi_get_protocols__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_set_bandwidths", + 600, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_set_bandwidths), + &rpc__resp__wifi_set_bandwidths__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_get_bandwidths", + 601, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_get_bandwidths), + &rpc__resp__wifi_get_bandwidths__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_set_band", + 602, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_set_band), + &rpc__resp__wifi_set_band__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_get_band", + 603, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_get_band), + &rpc__resp__wifi_get_band__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_set_bandmode", + 604, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_set_bandmode), + &rpc__resp__wifi_set_band_mode__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_get_bandmode", + 605, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_get_bandmode), + &rpc__resp__wifi_get_band_mode__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_get_coprocessor_fwversion", + 606, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_get_coprocessor_fwversion), + &rpc__resp__get_coprocessor_fw_version__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "resp_wifi_scan_get_ap_record", + 607, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, resp_wifi_scan_get_ap_record), + &rpc__resp__wifi_scan_get_ap_record__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "event_esp_init", + 769, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, event_esp_init), + &rpc__event__espinit__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "event_heartbeat", + 770, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, event_heartbeat), + &rpc__event__heartbeat__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "event_ap_sta_connected", + 771, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, event_ap_sta_connected), + &rpc__event__ap__sta_connected__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "event_ap_sta_disconnected", + 772, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, event_ap_sta_disconnected), + &rpc__event__ap__sta_disconnected__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "event_wifi_event_no_args", + 773, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, event_wifi_event_no_args), + &rpc__event__wifi_event_no_args__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "event_sta_scan_done", + 774, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, event_sta_scan_done), + &rpc__event__sta_scan_done__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "event_sta_connected", + 775, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, event_sta_connected), + &rpc__event__sta_connected__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, + { + "event_sta_disconnected", + 776, + PROTOBUF_C_LABEL_NONE, + PROTOBUF_C_TYPE_MESSAGE, + offsetof(Rpc, payload_case), + offsetof(Rpc, event_sta_disconnected), + &rpc__event__sta_disconnected__descriptor, + NULL, + 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ + 0,NULL,NULL /* reserved1,reserved2, etc */ + }, +}; +static const unsigned rpc__field_indices_by_name[] = { + 115, /* field[115] = event_ap_sta_connected */ + 116, /* field[116] = event_ap_sta_disconnected */ + 113, /* field[113] = event_esp_init */ + 114, /* field[114] = event_heartbeat */ + 119, /* field[119] = event_sta_connected */ + 120, /* field[120] = event_sta_disconnected */ + 118, /* field[118] = event_sta_scan_done */ + 117, /* field[117] = event_wifi_event_no_args */ + 1, /* field[1] = msg_id */ + 0, /* field[0] = msg_type */ + 14, /* field[14] = req_config_heartbeat */ + 56, /* field[56] = req_get_coprocessor_fwversion */ + 3, /* field[3] = req_get_mac_address */ + 13, /* field[13] = req_get_wifi_max_tx_power */ + 5, /* field[5] = req_get_wifi_mode */ + 9, /* field[9] = req_ota_begin */ + 11, /* field[11] = req_ota_end */ + 10, /* field[10] = req_ota_write */ + 4, /* field[4] = req_set_mac_address */ + 12, /* field[12] = req_set_wifi_max_tx_power */ + 6, /* field[6] = req_set_wifi_mode */ + 41, /* field[41] = req_wifi_ap_get_sta_aid */ + 40, /* field[40] = req_wifi_ap_get_sta_list */ + 27, /* field[27] = req_wifi_clear_ap_list */ + 29, /* field[29] = req_wifi_clear_fast_connect */ + 19, /* field[19] = req_wifi_connect */ + 30, /* field[30] = req_wifi_deauth_sta */ + 16, /* field[16] = req_wifi_deinit */ + 20, /* field[20] = req_wifi_disconnect */ + 53, /* field[53] = req_wifi_get_band */ + 55, /* field[55] = req_wifi_get_bandmode */ + 35, /* field[35] = req_wifi_get_bandwidth */ + 51, /* field[51] = req_wifi_get_bandwidths */ + 37, /* field[37] = req_wifi_get_channel */ + 22, /* field[22] = req_wifi_get_config */ + 39, /* field[39] = req_wifi_get_country */ + 44, /* field[44] = req_wifi_get_country_code */ + 33, /* field[33] = req_wifi_get_protocol */ + 49, /* field[49] = req_wifi_get_protocols */ + 8, /* field[8] = req_wifi_get_ps */ + 15, /* field[15] = req_wifi_init */ + 28, /* field[28] = req_wifi_restore */ + 25, /* field[25] = req_wifi_scan_get_ap_num */ + 57, /* field[57] = req_wifi_scan_get_ap_record */ + 26, /* field[26] = req_wifi_scan_get_ap_records */ + 23, /* field[23] = req_wifi_scan_start */ + 24, /* field[24] = req_wifi_scan_stop */ + 52, /* field[52] = req_wifi_set_band */ + 54, /* field[54] = req_wifi_set_bandmode */ + 34, /* field[34] = req_wifi_set_bandwidth */ + 50, /* field[50] = req_wifi_set_bandwidths */ + 36, /* field[36] = req_wifi_set_channel */ + 21, /* field[21] = req_wifi_set_config */ + 38, /* field[38] = req_wifi_set_country */ + 43, /* field[43] = req_wifi_set_country_code */ + 32, /* field[32] = req_wifi_set_protocol */ + 48, /* field[48] = req_wifi_set_protocols */ + 7, /* field[7] = req_wifi_set_ps */ + 42, /* field[42] = req_wifi_set_storage */ + 45, /* field[45] = req_wifi_sta_get_aid */ + 31, /* field[31] = req_wifi_sta_get_ap_info */ + 46, /* field[46] = req_wifi_sta_get_negotiated_phymode */ + 47, /* field[47] = req_wifi_sta_get_rssi */ + 17, /* field[17] = req_wifi_start */ + 18, /* field[18] = req_wifi_stop */ + 69, /* field[69] = resp_config_heartbeat */ + 111, /* field[111] = resp_get_coprocessor_fwversion */ + 58, /* field[58] = resp_get_mac_address */ + 68, /* field[68] = resp_get_wifi_max_tx_power */ + 60, /* field[60] = resp_get_wifi_mode */ + 64, /* field[64] = resp_ota_begin */ + 66, /* field[66] = resp_ota_end */ + 65, /* field[65] = resp_ota_write */ + 59, /* field[59] = resp_set_mac_address */ + 67, /* field[67] = resp_set_wifi_max_tx_power */ + 61, /* field[61] = resp_set_wifi_mode */ + 96, /* field[96] = resp_wifi_ap_get_sta_aid */ + 95, /* field[95] = resp_wifi_ap_get_sta_list */ + 82, /* field[82] = resp_wifi_clear_ap_list */ + 84, /* field[84] = resp_wifi_clear_fast_connect */ + 74, /* field[74] = resp_wifi_connect */ + 85, /* field[85] = resp_wifi_deauth_sta */ + 71, /* field[71] = resp_wifi_deinit */ + 75, /* field[75] = resp_wifi_disconnect */ + 108, /* field[108] = resp_wifi_get_band */ + 110, /* field[110] = resp_wifi_get_bandmode */ + 90, /* field[90] = resp_wifi_get_bandwidth */ + 106, /* field[106] = resp_wifi_get_bandwidths */ + 92, /* field[92] = resp_wifi_get_channel */ + 77, /* field[77] = resp_wifi_get_config */ + 94, /* field[94] = resp_wifi_get_country */ + 99, /* field[99] = resp_wifi_get_country_code */ + 88, /* field[88] = resp_wifi_get_protocol */ + 104, /* field[104] = resp_wifi_get_protocols */ + 63, /* field[63] = resp_wifi_get_ps */ + 70, /* field[70] = resp_wifi_init */ + 83, /* field[83] = resp_wifi_restore */ + 80, /* field[80] = resp_wifi_scan_get_ap_num */ + 112, /* field[112] = resp_wifi_scan_get_ap_record */ + 81, /* field[81] = resp_wifi_scan_get_ap_records */ + 78, /* field[78] = resp_wifi_scan_start */ + 79, /* field[79] = resp_wifi_scan_stop */ + 107, /* field[107] = resp_wifi_set_band */ + 109, /* field[109] = resp_wifi_set_bandmode */ + 89, /* field[89] = resp_wifi_set_bandwidth */ + 105, /* field[105] = resp_wifi_set_bandwidths */ + 91, /* field[91] = resp_wifi_set_channel */ + 76, /* field[76] = resp_wifi_set_config */ + 93, /* field[93] = resp_wifi_set_country */ + 98, /* field[98] = resp_wifi_set_country_code */ + 87, /* field[87] = resp_wifi_set_protocol */ + 103, /* field[103] = resp_wifi_set_protocols */ + 62, /* field[62] = resp_wifi_set_ps */ + 97, /* field[97] = resp_wifi_set_storage */ + 100, /* field[100] = resp_wifi_sta_get_aid */ + 86, /* field[86] = resp_wifi_sta_get_ap_info */ + 101, /* field[101] = resp_wifi_sta_get_negotiated_phymode */ + 102, /* field[102] = resp_wifi_sta_get_rssi */ + 72, /* field[72] = resp_wifi_start */ + 73, /* field[73] = resp_wifi_stop */ + 2, /* field[2] = uid */ +}; +static const ProtobufCIntRange rpc__number_ranges[16 + 1] = +{ + { 1, 0 }, + { 257, 3 }, + { 270, 7 }, + { 297, 32 }, + { 311, 40 }, + { 334, 43 }, + { 338, 45 }, + { 341, 47 }, + { 513, 58 }, + { 526, 62 }, + { 553, 87 }, + { 567, 95 }, + { 590, 98 }, + { 594, 100 }, + { 597, 102 }, + { 769, 113 }, + { 0, 121 } +}; +const ProtobufCMessageDescriptor rpc__descriptor = +{ + PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, + "Rpc", + "Rpc", + "Rpc", + "", + sizeof(Rpc), + 121, + rpc__field_descriptors, + rpc__field_indices_by_name, + 16, rpc__number_ranges, + (ProtobufCMessageInit) rpc__init, + NULL,NULL,NULL /* reserved[123] */ +}; +static const ProtobufCEnumValue rpc__wifi_bw__enum_values_by_number[3] = +{ + { "BW_Invalid", "RPC__WIFI_BW__BW_Invalid", 0 }, + { "HT20", "RPC__WIFI_BW__HT20", 1 }, + { "HT40", "RPC__WIFI_BW__HT40", 2 }, +}; +static const ProtobufCIntRange rpc__wifi_bw__value_ranges[] = { +{0, 0},{0, 3} +}; +static const ProtobufCEnumValueIndex rpc__wifi_bw__enum_values_by_name[3] = +{ + { "BW_Invalid", 0 }, + { "HT20", 1 }, + { "HT40", 2 }, +}; +const ProtobufCEnumDescriptor rpc__wifi_bw__descriptor = +{ + PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, + "Rpc_WifiBw", + "Rpc_WifiBw", + "RpcWifiBw", + "", + 3, + rpc__wifi_bw__enum_values_by_number, + 3, + rpc__wifi_bw__enum_values_by_name, + 1, + rpc__wifi_bw__value_ranges, + NULL,NULL,NULL,NULL /* reserved[1234] */ +}; +static const ProtobufCEnumValue rpc__wifi_power_save__enum_values_by_number[3] = +{ + { "PS_Invalid", "RPC__WIFI_POWER_SAVE__PS_Invalid", 0 }, + { "MIN_MODEM", "RPC__WIFI_POWER_SAVE__MIN_MODEM", 1 }, + { "MAX_MODEM", "RPC__WIFI_POWER_SAVE__MAX_MODEM", 2 }, +}; +static const ProtobufCIntRange rpc__wifi_power_save__value_ranges[] = { +{0, 0},{0, 3} +}; +static const ProtobufCEnumValueIndex rpc__wifi_power_save__enum_values_by_name[3] = +{ + { "MAX_MODEM", 2 }, + { "MIN_MODEM", 1 }, + { "PS_Invalid", 0 }, +}; +const ProtobufCEnumDescriptor rpc__wifi_power_save__descriptor = +{ + PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, + "Rpc_WifiPowerSave", + "Rpc_WifiPowerSave", + "RpcWifiPowerSave", + "", + 3, + rpc__wifi_power_save__enum_values_by_number, + 3, + rpc__wifi_power_save__enum_values_by_name, + 1, + rpc__wifi_power_save__value_ranges, + NULL,NULL,NULL,NULL /* reserved[1234] */ +}; +static const ProtobufCEnumValue rpc__wifi_sec_prot__enum_values_by_number[8] = +{ + { "Open", "RPC__WIFI_SEC_PROT__Open", 0 }, + { "WEP", "RPC__WIFI_SEC_PROT__WEP", 1 }, + { "WPA_PSK", "RPC__WIFI_SEC_PROT__WPA_PSK", 2 }, + { "WPA2_PSK", "RPC__WIFI_SEC_PROT__WPA2_PSK", 3 }, + { "WPA_WPA2_PSK", "RPC__WIFI_SEC_PROT__WPA_WPA2_PSK", 4 }, + { "WPA2_ENTERPRISE", "RPC__WIFI_SEC_PROT__WPA2_ENTERPRISE", 5 }, + { "WPA3_PSK", "RPC__WIFI_SEC_PROT__WPA3_PSK", 6 }, + { "WPA2_WPA3_PSK", "RPC__WIFI_SEC_PROT__WPA2_WPA3_PSK", 7 }, +}; +static const ProtobufCIntRange rpc__wifi_sec_prot__value_ranges[] = { +{0, 0},{0, 8} +}; +static const ProtobufCEnumValueIndex rpc__wifi_sec_prot__enum_values_by_name[8] = +{ + { "Open", 0 }, + { "WEP", 1 }, + { "WPA2_ENTERPRISE", 5 }, + { "WPA2_PSK", 3 }, + { "WPA2_WPA3_PSK", 7 }, + { "WPA3_PSK", 6 }, + { "WPA_PSK", 2 }, + { "WPA_WPA2_PSK", 4 }, +}; +const ProtobufCEnumDescriptor rpc__wifi_sec_prot__descriptor = +{ + PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, + "Rpc_WifiSecProt", + "Rpc_WifiSecProt", + "RpcWifiSecProt", + "", + 8, + rpc__wifi_sec_prot__enum_values_by_number, + 8, + rpc__wifi_sec_prot__enum_values_by_name, + 1, + rpc__wifi_sec_prot__value_ranges, + NULL,NULL,NULL,NULL /* reserved[1234] */ +}; +static const ProtobufCEnumValue rpc__status__enum_values_by_number[6] = +{ + { "Connected", "RPC__STATUS__Connected", 0 }, + { "Not_Connected", "RPC__STATUS__Not_Connected", 1 }, + { "No_AP_Found", "RPC__STATUS__No_AP_Found", 2 }, + { "Connection_Fail", "RPC__STATUS__Connection_Fail", 3 }, + { "Invalid_Argument", "RPC__STATUS__Invalid_Argument", 4 }, + { "Out_Of_Range", "RPC__STATUS__Out_Of_Range", 5 }, +}; +static const ProtobufCIntRange rpc__status__value_ranges[] = { +{0, 0},{0, 6} +}; +static const ProtobufCEnumValueIndex rpc__status__enum_values_by_name[6] = +{ + { "Connected", 0 }, + { "Connection_Fail", 3 }, + { "Invalid_Argument", 4 }, + { "No_AP_Found", 2 }, + { "Not_Connected", 1 }, + { "Out_Of_Range", 5 }, +}; +const ProtobufCEnumDescriptor rpc__status__descriptor = +{ + PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, + "Rpc_Status", + "Rpc_Status", + "RpcStatus", + "", + 6, + rpc__status__enum_values_by_number, + 6, + rpc__status__enum_values_by_name, + 1, + rpc__status__value_ranges, + NULL,NULL,NULL,NULL /* reserved[1234] */ +}; +static const ProtobufCEnumValue rpc_type__enum_values_by_number[5] = +{ + { "MsgType_Invalid", "RPC_TYPE__MsgType_Invalid", 0 }, + { "Req", "RPC_TYPE__Req", 1 }, + { "Resp", "RPC_TYPE__Resp", 2 }, + { "Event", "RPC_TYPE__Event", 3 }, + { "MsgType_Max", "RPC_TYPE__MsgType_Max", 4 }, +}; +static const ProtobufCIntRange rpc_type__value_ranges[] = { +{0, 0},{0, 5} +}; +static const ProtobufCEnumValueIndex rpc_type__enum_values_by_name[5] = +{ + { "Event", 3 }, + { "MsgType_Invalid", 0 }, + { "MsgType_Max", 4 }, + { "Req", 1 }, + { "Resp", 2 }, +}; +const ProtobufCEnumDescriptor rpc_type__descriptor = +{ + PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, + "RpcType", + "RpcType", + "RpcType", + "", + 5, + rpc_type__enum_values_by_number, + 5, + rpc_type__enum_values_by_name, + 1, + rpc_type__value_ranges, + NULL,NULL,NULL,NULL /* reserved[1234] */ +}; +static const ProtobufCEnumValue rpc_id__enum_values_by_number[183] = +{ + { "MsgId_Invalid", "RPC_ID__MsgId_Invalid", 0 }, + { "Req_Base", "RPC_ID__Req_Base", 256 }, + { "Req_GetMACAddress", "RPC_ID__Req_GetMACAddress", 257 }, + { "Req_SetMacAddress", "RPC_ID__Req_SetMacAddress", 258 }, + { "Req_GetWifiMode", "RPC_ID__Req_GetWifiMode", 259 }, + { "Req_SetWifiMode", "RPC_ID__Req_SetWifiMode", 260 }, + { "Req_WifiSetPs", "RPC_ID__Req_WifiSetPs", 270 }, + { "Req_WifiGetPs", "RPC_ID__Req_WifiGetPs", 271 }, + { "Req_OTABegin", "RPC_ID__Req_OTABegin", 272 }, + { "Req_OTAWrite", "RPC_ID__Req_OTAWrite", 273 }, + { "Req_OTAEnd", "RPC_ID__Req_OTAEnd", 274 }, + { "Req_WifiSetMaxTxPower", "RPC_ID__Req_WifiSetMaxTxPower", 275 }, + { "Req_WifiGetMaxTxPower", "RPC_ID__Req_WifiGetMaxTxPower", 276 }, + { "Req_ConfigHeartbeat", "RPC_ID__Req_ConfigHeartbeat", 277 }, + { "Req_WifiInit", "RPC_ID__Req_WifiInit", 278 }, + { "Req_WifiDeinit", "RPC_ID__Req_WifiDeinit", 279 }, + { "Req_WifiStart", "RPC_ID__Req_WifiStart", 280 }, + { "Req_WifiStop", "RPC_ID__Req_WifiStop", 281 }, + { "Req_WifiConnect", "RPC_ID__Req_WifiConnect", 282 }, + { "Req_WifiDisconnect", "RPC_ID__Req_WifiDisconnect", 283 }, + { "Req_WifiSetConfig", "RPC_ID__Req_WifiSetConfig", 284 }, + { "Req_WifiGetConfig", "RPC_ID__Req_WifiGetConfig", 285 }, + { "Req_WifiScanStart", "RPC_ID__Req_WifiScanStart", 286 }, + { "Req_WifiScanStop", "RPC_ID__Req_WifiScanStop", 287 }, + { "Req_WifiScanGetApNum", "RPC_ID__Req_WifiScanGetApNum", 288 }, + { "Req_WifiScanGetApRecords", "RPC_ID__Req_WifiScanGetApRecords", 289 }, + { "Req_WifiClearApList", "RPC_ID__Req_WifiClearApList", 290 }, + { "Req_WifiRestore", "RPC_ID__Req_WifiRestore", 291 }, + { "Req_WifiClearFastConnect", "RPC_ID__Req_WifiClearFastConnect", 292 }, + { "Req_WifiDeauthSta", "RPC_ID__Req_WifiDeauthSta", 293 }, + { "Req_WifiStaGetApInfo", "RPC_ID__Req_WifiStaGetApInfo", 294 }, + { "Req_WifiSetProtocol", "RPC_ID__Req_WifiSetProtocol", 297 }, + { "Req_WifiGetProtocol", "RPC_ID__Req_WifiGetProtocol", 298 }, + { "Req_WifiSetBandwidth", "RPC_ID__Req_WifiSetBandwidth", 299 }, + { "Req_WifiGetBandwidth", "RPC_ID__Req_WifiGetBandwidth", 300 }, + { "Req_WifiSetChannel", "RPC_ID__Req_WifiSetChannel", 301 }, + { "Req_WifiGetChannel", "RPC_ID__Req_WifiGetChannel", 302 }, + { "Req_WifiSetCountry", "RPC_ID__Req_WifiSetCountry", 303 }, + { "Req_WifiGetCountry", "RPC_ID__Req_WifiGetCountry", 304 }, + { "Req_WifiSetPromiscuous", "RPC_ID__Req_WifiSetPromiscuous", 305 }, + { "Req_WifiGetPromiscuous", "RPC_ID__Req_WifiGetPromiscuous", 306 }, + { "Req_WifiSetPromiscuousFilter", "RPC_ID__Req_WifiSetPromiscuousFilter", 307 }, + { "Req_WifiGetPromiscuousFilter", "RPC_ID__Req_WifiGetPromiscuousFilter", 308 }, + { "Req_WifiSetPromiscuousCtrlFilter", "RPC_ID__Req_WifiSetPromiscuousCtrlFilter", 309 }, + { "Req_WifiGetPromiscuousCtrlFilter", "RPC_ID__Req_WifiGetPromiscuousCtrlFilter", 310 }, + { "Req_WifiApGetStaList", "RPC_ID__Req_WifiApGetStaList", 311 }, + { "Req_WifiApGetStaAid", "RPC_ID__Req_WifiApGetStaAid", 312 }, + { "Req_WifiSetStorage", "RPC_ID__Req_WifiSetStorage", 313 }, + { "Req_WifiSetVendorIe", "RPC_ID__Req_WifiSetVendorIe", 314 }, + { "Req_WifiSetEventMask", "RPC_ID__Req_WifiSetEventMask", 315 }, + { "Req_WifiGetEventMask", "RPC_ID__Req_WifiGetEventMask", 316 }, + { "Req_Wifi80211Tx", "RPC_ID__Req_Wifi80211Tx", 317 }, + { "Req_WifiSetCsiConfig", "RPC_ID__Req_WifiSetCsiConfig", 318 }, + { "Req_WifiSetCsi", "RPC_ID__Req_WifiSetCsi", 319 }, + { "Req_WifiSetAntGpio", "RPC_ID__Req_WifiSetAntGpio", 320 }, + { "Req_WifiGetAntGpio", "RPC_ID__Req_WifiGetAntGpio", 321 }, + { "Req_WifiSetAnt", "RPC_ID__Req_WifiSetAnt", 322 }, + { "Req_WifiGetAnt", "RPC_ID__Req_WifiGetAnt", 323 }, + { "Req_WifiGetTsfTime", "RPC_ID__Req_WifiGetTsfTime", 324 }, + { "Req_WifiSetInactiveTime", "RPC_ID__Req_WifiSetInactiveTime", 325 }, + { "Req_WifiGetInactiveTime", "RPC_ID__Req_WifiGetInactiveTime", 326 }, + { "Req_WifiStatisDump", "RPC_ID__Req_WifiStatisDump", 327 }, + { "Req_WifiSetRssiThreshold", "RPC_ID__Req_WifiSetRssiThreshold", 328 }, + { "Req_WifiFtmInitiateSession", "RPC_ID__Req_WifiFtmInitiateSession", 329 }, + { "Req_WifiFtmEndSession", "RPC_ID__Req_WifiFtmEndSession", 330 }, + { "Req_WifiFtmRespSetOffset", "RPC_ID__Req_WifiFtmRespSetOffset", 331 }, + { "Req_WifiConfig11bRate", "RPC_ID__Req_WifiConfig11bRate", 332 }, + { "Req_WifiConnectionlessModuleSetWakeInterval", "RPC_ID__Req_WifiConnectionlessModuleSetWakeInterval", 333 }, + { "Req_WifiSetCountryCode", "RPC_ID__Req_WifiSetCountryCode", 334 }, + { "Req_WifiGetCountryCode", "RPC_ID__Req_WifiGetCountryCode", 335 }, + { "Req_WifiConfig80211TxRate", "RPC_ID__Req_WifiConfig80211TxRate", 336 }, + { "Req_WifiDisablePmfConfig", "RPC_ID__Req_WifiDisablePmfConfig", 337 }, + { "Req_WifiStaGetAid", "RPC_ID__Req_WifiStaGetAid", 338 }, + { "Req_WifiStaGetNegotiatedPhymode", "RPC_ID__Req_WifiStaGetNegotiatedPhymode", 339 }, + { "Req_WifiSetDynamicCs", "RPC_ID__Req_WifiSetDynamicCs", 340 }, + { "Req_WifiStaGetRssi", "RPC_ID__Req_WifiStaGetRssi", 341 }, + { "Req_WifiSetProtocols", "RPC_ID__Req_WifiSetProtocols", 342 }, + { "Req_WifiGetProtocols", "RPC_ID__Req_WifiGetProtocols", 343 }, + { "Req_WifiSetBandwidths", "RPC_ID__Req_WifiSetBandwidths", 344 }, + { "Req_WifiGetBandwidths", "RPC_ID__Req_WifiGetBandwidths", 345 }, + { "Req_WifiSetBand", "RPC_ID__Req_WifiSetBand", 346 }, + { "Req_WifiGetBand", "RPC_ID__Req_WifiGetBand", 347 }, + { "Req_WifiSetBandMode", "RPC_ID__Req_WifiSetBandMode", 348 }, + { "Req_WifiGetBandMode", "RPC_ID__Req_WifiGetBandMode", 349 }, + { "Req_GetCoprocessorFwVersion", "RPC_ID__Req_GetCoprocessorFwVersion", 350 }, + { "Req_WifiScanGetApRecord", "RPC_ID__Req_WifiScanGetApRecord", 351 }, + { "Req_Max", "RPC_ID__Req_Max", 352 }, + { "Resp_Base", "RPC_ID__Resp_Base", 512 }, + { "Resp_GetMACAddress", "RPC_ID__Resp_GetMACAddress", 513 }, + { "Resp_SetMacAddress", "RPC_ID__Resp_SetMacAddress", 514 }, + { "Resp_GetWifiMode", "RPC_ID__Resp_GetWifiMode", 515 }, + { "Resp_SetWifiMode", "RPC_ID__Resp_SetWifiMode", 516 }, + { "Resp_WifiSetPs", "RPC_ID__Resp_WifiSetPs", 526 }, + { "Resp_WifiGetPs", "RPC_ID__Resp_WifiGetPs", 527 }, + { "Resp_OTABegin", "RPC_ID__Resp_OTABegin", 528 }, + { "Resp_OTAWrite", "RPC_ID__Resp_OTAWrite", 529 }, + { "Resp_OTAEnd", "RPC_ID__Resp_OTAEnd", 530 }, + { "Resp_WifiSetMaxTxPower", "RPC_ID__Resp_WifiSetMaxTxPower", 531 }, + { "Resp_WifiGetMaxTxPower", "RPC_ID__Resp_WifiGetMaxTxPower", 532 }, + { "Resp_ConfigHeartbeat", "RPC_ID__Resp_ConfigHeartbeat", 533 }, + { "Resp_WifiInit", "RPC_ID__Resp_WifiInit", 534 }, + { "Resp_WifiDeinit", "RPC_ID__Resp_WifiDeinit", 535 }, + { "Resp_WifiStart", "RPC_ID__Resp_WifiStart", 536 }, + { "Resp_WifiStop", "RPC_ID__Resp_WifiStop", 537 }, + { "Resp_WifiConnect", "RPC_ID__Resp_WifiConnect", 538 }, + { "Resp_WifiDisconnect", "RPC_ID__Resp_WifiDisconnect", 539 }, + { "Resp_WifiSetConfig", "RPC_ID__Resp_WifiSetConfig", 540 }, + { "Resp_WifiGetConfig", "RPC_ID__Resp_WifiGetConfig", 541 }, + { "Resp_WifiScanStart", "RPC_ID__Resp_WifiScanStart", 542 }, + { "Resp_WifiScanStop", "RPC_ID__Resp_WifiScanStop", 543 }, + { "Resp_WifiScanGetApNum", "RPC_ID__Resp_WifiScanGetApNum", 544 }, + { "Resp_WifiScanGetApRecords", "RPC_ID__Resp_WifiScanGetApRecords", 545 }, + { "Resp_WifiClearApList", "RPC_ID__Resp_WifiClearApList", 546 }, + { "Resp_WifiRestore", "RPC_ID__Resp_WifiRestore", 547 }, + { "Resp_WifiClearFastConnect", "RPC_ID__Resp_WifiClearFastConnect", 548 }, + { "Resp_WifiDeauthSta", "RPC_ID__Resp_WifiDeauthSta", 549 }, + { "Resp_WifiStaGetApInfo", "RPC_ID__Resp_WifiStaGetApInfo", 550 }, + { "Resp_WifiSetProtocol", "RPC_ID__Resp_WifiSetProtocol", 553 }, + { "Resp_WifiGetProtocol", "RPC_ID__Resp_WifiGetProtocol", 554 }, + { "Resp_WifiSetBandwidth", "RPC_ID__Resp_WifiSetBandwidth", 555 }, + { "Resp_WifiGetBandwidth", "RPC_ID__Resp_WifiGetBandwidth", 556 }, + { "Resp_WifiSetChannel", "RPC_ID__Resp_WifiSetChannel", 557 }, + { "Resp_WifiGetChannel", "RPC_ID__Resp_WifiGetChannel", 558 }, + { "Resp_WifiSetCountry", "RPC_ID__Resp_WifiSetCountry", 559 }, + { "Resp_WifiGetCountry", "RPC_ID__Resp_WifiGetCountry", 560 }, + { "Resp_WifiSetPromiscuous", "RPC_ID__Resp_WifiSetPromiscuous", 561 }, + { "Resp_WifiGetPromiscuous", "RPC_ID__Resp_WifiGetPromiscuous", 562 }, + { "Resp_WifiSetPromiscuousFilter", "RPC_ID__Resp_WifiSetPromiscuousFilter", 563 }, + { "Resp_WifiGetPromiscuousFilter", "RPC_ID__Resp_WifiGetPromiscuousFilter", 564 }, + { "Resp_WifiSetPromiscuousCtrlFilter", "RPC_ID__Resp_WifiSetPromiscuousCtrlFilter", 565 }, + { "Resp_WifiGetPromiscuousCtrlFilter", "RPC_ID__Resp_WifiGetPromiscuousCtrlFilter", 566 }, + { "Resp_WifiApGetStaList", "RPC_ID__Resp_WifiApGetStaList", 567 }, + { "Resp_WifiApGetStaAid", "RPC_ID__Resp_WifiApGetStaAid", 568 }, + { "Resp_WifiSetStorage", "RPC_ID__Resp_WifiSetStorage", 569 }, + { "Resp_WifiSetVendorIe", "RPC_ID__Resp_WifiSetVendorIe", 570 }, + { "Resp_WifiSetEventMask", "RPC_ID__Resp_WifiSetEventMask", 571 }, + { "Resp_WifiGetEventMask", "RPC_ID__Resp_WifiGetEventMask", 572 }, + { "Resp_Wifi80211Tx", "RPC_ID__Resp_Wifi80211Tx", 573 }, + { "Resp_WifiSetCsiConfig", "RPC_ID__Resp_WifiSetCsiConfig", 574 }, + { "Resp_WifiSetCsi", "RPC_ID__Resp_WifiSetCsi", 575 }, + { "Resp_WifiSetAntGpio", "RPC_ID__Resp_WifiSetAntGpio", 576 }, + { "Resp_WifiGetAntGpio", "RPC_ID__Resp_WifiGetAntGpio", 577 }, + { "Resp_WifiSetAnt", "RPC_ID__Resp_WifiSetAnt", 578 }, + { "Resp_WifiGetAnt", "RPC_ID__Resp_WifiGetAnt", 579 }, + { "Resp_WifiGetTsfTime", "RPC_ID__Resp_WifiGetTsfTime", 580 }, + { "Resp_WifiSetInactiveTime", "RPC_ID__Resp_WifiSetInactiveTime", 581 }, + { "Resp_WifiGetInactiveTime", "RPC_ID__Resp_WifiGetInactiveTime", 582 }, + { "Resp_WifiStatisDump", "RPC_ID__Resp_WifiStatisDump", 583 }, + { "Resp_WifiSetRssiThreshold", "RPC_ID__Resp_WifiSetRssiThreshold", 584 }, + { "Resp_WifiFtmInitiateSession", "RPC_ID__Resp_WifiFtmInitiateSession", 585 }, + { "Resp_WifiFtmEndSession", "RPC_ID__Resp_WifiFtmEndSession", 586 }, + { "Resp_WifiFtmRespSetOffset", "RPC_ID__Resp_WifiFtmRespSetOffset", 587 }, + { "Resp_WifiConfig11bRate", "RPC_ID__Resp_WifiConfig11bRate", 588 }, + { "Resp_WifiConnectionlessModuleSetWakeInterval", "RPC_ID__Resp_WifiConnectionlessModuleSetWakeInterval", 589 }, + { "Resp_WifiSetCountryCode", "RPC_ID__Resp_WifiSetCountryCode", 590 }, + { "Resp_WifiGetCountryCode", "RPC_ID__Resp_WifiGetCountryCode", 591 }, + { "Resp_WifiConfig80211TxRate", "RPC_ID__Resp_WifiConfig80211TxRate", 592 }, + { "Resp_WifiDisablePmfConfig", "RPC_ID__Resp_WifiDisablePmfConfig", 593 }, + { "Resp_WifiStaGetAid", "RPC_ID__Resp_WifiStaGetAid", 594 }, + { "Resp_WifiStaGetNegotiatedPhymode", "RPC_ID__Resp_WifiStaGetNegotiatedPhymode", 595 }, + { "Resp_WifiSetDynamicCs", "RPC_ID__Resp_WifiSetDynamicCs", 596 }, + { "Resp_WifiStaGetRssi", "RPC_ID__Resp_WifiStaGetRssi", 597 }, + { "Resp_WifiSetProtocols", "RPC_ID__Resp_WifiSetProtocols", 598 }, + { "Resp_WifiGetProtocols", "RPC_ID__Resp_WifiGetProtocols", 599 }, + { "Resp_WifiSetBandwidths", "RPC_ID__Resp_WifiSetBandwidths", 600 }, + { "Resp_WifiGetBandwidths", "RPC_ID__Resp_WifiGetBandwidths", 601 }, + { "Resp_WifiSetBand", "RPC_ID__Resp_WifiSetBand", 602 }, + { "Resp_WifiGetBand", "RPC_ID__Resp_WifiGetBand", 603 }, + { "Resp_WifiSetBandMode", "RPC_ID__Resp_WifiSetBandMode", 604 }, + { "Resp_WifiGetBandMode", "RPC_ID__Resp_WifiGetBandMode", 605 }, + { "Resp_GetCoprocessorFwVersion", "RPC_ID__Resp_GetCoprocessorFwVersion", 606 }, + { "Resp_WifiScanGetApRecord", "RPC_ID__Resp_WifiScanGetApRecord", 607 }, + { "Resp_Max", "RPC_ID__Resp_Max", 608 }, + { "Event_Base", "RPC_ID__Event_Base", 768 }, + { "Event_ESPInit", "RPC_ID__Event_ESPInit", 769 }, + { "Event_Heartbeat", "RPC_ID__Event_Heartbeat", 770 }, + { "Event_AP_StaConnected", "RPC_ID__Event_AP_StaConnected", 771 }, + { "Event_AP_StaDisconnected", "RPC_ID__Event_AP_StaDisconnected", 772 }, + { "Event_WifiEventNoArgs", "RPC_ID__Event_WifiEventNoArgs", 773 }, + { "Event_StaScanDone", "RPC_ID__Event_StaScanDone", 774 }, + { "Event_StaConnected", "RPC_ID__Event_StaConnected", 775 }, + { "Event_StaDisconnected", "RPC_ID__Event_StaDisconnected", 776 }, + { "Event_Max", "RPC_ID__Event_Max", 777 }, +}; +static const ProtobufCIntRange rpc_id__value_ranges[] = { +{0, 0},{256, 1},{270, 6},{297, 31},{512, 87},{526, 92},{553, 117},{768, 173},{0, 183} +}; +static const ProtobufCEnumValueIndex rpc_id__enum_values_by_name[183] = +{ + { "Event_AP_StaConnected", 176 }, + { "Event_AP_StaDisconnected", 177 }, + { "Event_Base", 173 }, + { "Event_ESPInit", 174 }, + { "Event_Heartbeat", 175 }, + { "Event_Max", 182 }, + { "Event_StaConnected", 180 }, + { "Event_StaDisconnected", 181 }, + { "Event_StaScanDone", 179 }, + { "Event_WifiEventNoArgs", 178 }, + { "MsgId_Invalid", 0 }, + { "Req_Base", 1 }, + { "Req_ConfigHeartbeat", 13 }, + { "Req_GetCoprocessorFwVersion", 84 }, + { "Req_GetMACAddress", 2 }, + { "Req_GetWifiMode", 4 }, + { "Req_Max", 86 }, + { "Req_OTABegin", 8 }, + { "Req_OTAEnd", 10 }, + { "Req_OTAWrite", 9 }, + { "Req_SetMacAddress", 3 }, + { "Req_SetWifiMode", 5 }, + { "Req_Wifi80211Tx", 51 }, + { "Req_WifiApGetStaAid", 46 }, + { "Req_WifiApGetStaList", 45 }, + { "Req_WifiClearApList", 26 }, + { "Req_WifiClearFastConnect", 28 }, + { "Req_WifiConfig11bRate", 66 }, + { "Req_WifiConfig80211TxRate", 70 }, + { "Req_WifiConnect", 18 }, + { "Req_WifiConnectionlessModuleSetWakeInterval", 67 }, + { "Req_WifiDeauthSta", 29 }, + { "Req_WifiDeinit", 15 }, + { "Req_WifiDisablePmfConfig", 71 }, + { "Req_WifiDisconnect", 19 }, + { "Req_WifiFtmEndSession", 64 }, + { "Req_WifiFtmInitiateSession", 63 }, + { "Req_WifiFtmRespSetOffset", 65 }, + { "Req_WifiGetAnt", 57 }, + { "Req_WifiGetAntGpio", 55 }, + { "Req_WifiGetBand", 81 }, + { "Req_WifiGetBandMode", 83 }, + { "Req_WifiGetBandwidth", 34 }, + { "Req_WifiGetBandwidths", 79 }, + { "Req_WifiGetChannel", 36 }, + { "Req_WifiGetConfig", 21 }, + { "Req_WifiGetCountry", 38 }, + { "Req_WifiGetCountryCode", 69 }, + { "Req_WifiGetEventMask", 50 }, + { "Req_WifiGetInactiveTime", 60 }, + { "Req_WifiGetMaxTxPower", 12 }, + { "Req_WifiGetPromiscuous", 40 }, + { "Req_WifiGetPromiscuousCtrlFilter", 44 }, + { "Req_WifiGetPromiscuousFilter", 42 }, + { "Req_WifiGetProtocol", 32 }, + { "Req_WifiGetProtocols", 77 }, + { "Req_WifiGetPs", 7 }, + { "Req_WifiGetTsfTime", 58 }, + { "Req_WifiInit", 14 }, + { "Req_WifiRestore", 27 }, + { "Req_WifiScanGetApNum", 24 }, + { "Req_WifiScanGetApRecord", 85 }, + { "Req_WifiScanGetApRecords", 25 }, + { "Req_WifiScanStart", 22 }, + { "Req_WifiScanStop", 23 }, + { "Req_WifiSetAnt", 56 }, + { "Req_WifiSetAntGpio", 54 }, + { "Req_WifiSetBand", 80 }, + { "Req_WifiSetBandMode", 82 }, + { "Req_WifiSetBandwidth", 33 }, + { "Req_WifiSetBandwidths", 78 }, + { "Req_WifiSetChannel", 35 }, + { "Req_WifiSetConfig", 20 }, + { "Req_WifiSetCountry", 37 }, + { "Req_WifiSetCountryCode", 68 }, + { "Req_WifiSetCsi", 53 }, + { "Req_WifiSetCsiConfig", 52 }, + { "Req_WifiSetDynamicCs", 74 }, + { "Req_WifiSetEventMask", 49 }, + { "Req_WifiSetInactiveTime", 59 }, + { "Req_WifiSetMaxTxPower", 11 }, + { "Req_WifiSetPromiscuous", 39 }, + { "Req_WifiSetPromiscuousCtrlFilter", 43 }, + { "Req_WifiSetPromiscuousFilter", 41 }, + { "Req_WifiSetProtocol", 31 }, + { "Req_WifiSetProtocols", 76 }, + { "Req_WifiSetPs", 6 }, + { "Req_WifiSetRssiThreshold", 62 }, + { "Req_WifiSetStorage", 47 }, + { "Req_WifiSetVendorIe", 48 }, + { "Req_WifiStaGetAid", 72 }, + { "Req_WifiStaGetApInfo", 30 }, + { "Req_WifiStaGetNegotiatedPhymode", 73 }, + { "Req_WifiStaGetRssi", 75 }, + { "Req_WifiStart", 16 }, + { "Req_WifiStatisDump", 61 }, + { "Req_WifiStop", 17 }, + { "Resp_Base", 87 }, + { "Resp_ConfigHeartbeat", 99 }, + { "Resp_GetCoprocessorFwVersion", 170 }, + { "Resp_GetMACAddress", 88 }, + { "Resp_GetWifiMode", 90 }, + { "Resp_Max", 172 }, + { "Resp_OTABegin", 94 }, + { "Resp_OTAEnd", 96 }, + { "Resp_OTAWrite", 95 }, + { "Resp_SetMacAddress", 89 }, + { "Resp_SetWifiMode", 91 }, + { "Resp_Wifi80211Tx", 137 }, + { "Resp_WifiApGetStaAid", 132 }, + { "Resp_WifiApGetStaList", 131 }, + { "Resp_WifiClearApList", 112 }, + { "Resp_WifiClearFastConnect", 114 }, + { "Resp_WifiConfig11bRate", 152 }, + { "Resp_WifiConfig80211TxRate", 156 }, + { "Resp_WifiConnect", 104 }, + { "Resp_WifiConnectionlessModuleSetWakeInterval", 153 }, + { "Resp_WifiDeauthSta", 115 }, + { "Resp_WifiDeinit", 101 }, + { "Resp_WifiDisablePmfConfig", 157 }, + { "Resp_WifiDisconnect", 105 }, + { "Resp_WifiFtmEndSession", 150 }, + { "Resp_WifiFtmInitiateSession", 149 }, + { "Resp_WifiFtmRespSetOffset", 151 }, + { "Resp_WifiGetAnt", 143 }, + { "Resp_WifiGetAntGpio", 141 }, + { "Resp_WifiGetBand", 167 }, + { "Resp_WifiGetBandMode", 169 }, + { "Resp_WifiGetBandwidth", 120 }, + { "Resp_WifiGetBandwidths", 165 }, + { "Resp_WifiGetChannel", 122 }, + { "Resp_WifiGetConfig", 107 }, + { "Resp_WifiGetCountry", 124 }, + { "Resp_WifiGetCountryCode", 155 }, + { "Resp_WifiGetEventMask", 136 }, + { "Resp_WifiGetInactiveTime", 146 }, + { "Resp_WifiGetMaxTxPower", 98 }, + { "Resp_WifiGetPromiscuous", 126 }, + { "Resp_WifiGetPromiscuousCtrlFilter", 130 }, + { "Resp_WifiGetPromiscuousFilter", 128 }, + { "Resp_WifiGetProtocol", 118 }, + { "Resp_WifiGetProtocols", 163 }, + { "Resp_WifiGetPs", 93 }, + { "Resp_WifiGetTsfTime", 144 }, + { "Resp_WifiInit", 100 }, + { "Resp_WifiRestore", 113 }, + { "Resp_WifiScanGetApNum", 110 }, + { "Resp_WifiScanGetApRecord", 171 }, + { "Resp_WifiScanGetApRecords", 111 }, + { "Resp_WifiScanStart", 108 }, + { "Resp_WifiScanStop", 109 }, + { "Resp_WifiSetAnt", 142 }, + { "Resp_WifiSetAntGpio", 140 }, + { "Resp_WifiSetBand", 166 }, + { "Resp_WifiSetBandMode", 168 }, + { "Resp_WifiSetBandwidth", 119 }, + { "Resp_WifiSetBandwidths", 164 }, + { "Resp_WifiSetChannel", 121 }, + { "Resp_WifiSetConfig", 106 }, + { "Resp_WifiSetCountry", 123 }, + { "Resp_WifiSetCountryCode", 154 }, + { "Resp_WifiSetCsi", 139 }, + { "Resp_WifiSetCsiConfig", 138 }, + { "Resp_WifiSetDynamicCs", 160 }, + { "Resp_WifiSetEventMask", 135 }, + { "Resp_WifiSetInactiveTime", 145 }, + { "Resp_WifiSetMaxTxPower", 97 }, + { "Resp_WifiSetPromiscuous", 125 }, + { "Resp_WifiSetPromiscuousCtrlFilter", 129 }, + { "Resp_WifiSetPromiscuousFilter", 127 }, + { "Resp_WifiSetProtocol", 117 }, + { "Resp_WifiSetProtocols", 162 }, + { "Resp_WifiSetPs", 92 }, + { "Resp_WifiSetRssiThreshold", 148 }, + { "Resp_WifiSetStorage", 133 }, + { "Resp_WifiSetVendorIe", 134 }, + { "Resp_WifiStaGetAid", 158 }, + { "Resp_WifiStaGetApInfo", 116 }, + { "Resp_WifiStaGetNegotiatedPhymode", 159 }, + { "Resp_WifiStaGetRssi", 161 }, + { "Resp_WifiStart", 102 }, + { "Resp_WifiStatisDump", 147 }, + { "Resp_WifiStop", 103 }, +}; +const ProtobufCEnumDescriptor rpc_id__descriptor = +{ + PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, + "RpcId", + "RpcId", + "RpcId", + "", + 183, + rpc_id__enum_values_by_number, + 183, + rpc_id__enum_values_by_name, + 8, + rpc_id__value_ranges, + NULL,NULL,NULL,NULL /* reserved[1234] */ +}; diff --git a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/esp_hosted_rpc.pb-c.h b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/esp_hosted_rpc.pb-c.h new file mode 100644 index 0000000..03a11fc --- /dev/null +++ b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/esp_hosted_rpc.pb-c.h @@ -0,0 +1,7219 @@ +/* Generated by the protocol buffer compiler. DO NOT EDIT! */ +/* Generated from: esp_hosted_rpc.proto */ + +#ifndef PROTOBUF_C_esp_5fhosted_5frpc_2eproto__INCLUDED +#define PROTOBUF_C_esp_5fhosted_5frpc_2eproto__INCLUDED + +#include + +PROTOBUF_C__BEGIN_DECLS + +#if PROTOBUF_C_VERSION_NUMBER < 1003000 +# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers. +#elif 1004001 < PROTOBUF_C_MIN_COMPILER_VERSION +# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c. +#endif + + +typedef struct WifiInitConfig WifiInitConfig; +typedef struct WifiCountry WifiCountry; +typedef struct WifiActiveScanTime WifiActiveScanTime; +typedef struct WifiScanTime WifiScanTime; +typedef struct WifiScanConfig WifiScanConfig; +typedef struct WifiHeApInfo WifiHeApInfo; +typedef struct WifiApRecord WifiApRecord; +typedef struct WifiScanThreshold WifiScanThreshold; +typedef struct WifiPmfConfig WifiPmfConfig; +typedef struct WifiApConfig WifiApConfig; +typedef struct WifiStaConfig WifiStaConfig; +typedef struct WifiConfig WifiConfig; +typedef struct WifiStaInfo WifiStaInfo; +typedef struct WifiStaList WifiStaList; +typedef struct WifiPktRxCtrl WifiPktRxCtrl; +typedef struct WifiPromiscuousPkt WifiPromiscuousPkt; +typedef struct WifiPromiscuousFilter WifiPromiscuousFilter; +typedef struct WifiCsiConfig WifiCsiConfig; +typedef struct WifiCsiInfo WifiCsiInfo; +typedef struct WifiAntGpio WifiAntGpio; +typedef struct WifiAntGpioConfig WifiAntGpioConfig; +typedef struct WifiAntConfig WifiAntConfig; +typedef struct WifiActionTxReq WifiActionTxReq; +typedef struct WifiFtmInitiatorCfg WifiFtmInitiatorCfg; +typedef struct WifiEventStaScanDone WifiEventStaScanDone; +typedef struct WifiEventStaConnected WifiEventStaConnected; +typedef struct WifiEventStaDisconnected WifiEventStaDisconnected; +typedef struct WifiEventStaAuthmodeChange WifiEventStaAuthmodeChange; +typedef struct WifiEventStaWpsErPin WifiEventStaWpsErPin; +typedef struct ApCred ApCred; +typedef struct WifiEventStaWpsErSuccess WifiEventStaWpsErSuccess; +typedef struct WifiEventApProbeReqRx WifiEventApProbeReqRx; +typedef struct WifiEventBssRssiLow WifiEventBssRssiLow; +typedef struct WifiFtmReportEntry WifiFtmReportEntry; +typedef struct WifiEventFtmReport WifiEventFtmReport; +typedef struct WifiEventActionTxStatus WifiEventActionTxStatus; +typedef struct WifiEventRocDone WifiEventRocDone; +typedef struct WifiEventApWpsRgPin WifiEventApWpsRgPin; +typedef struct WifiEventApWpsRgFailReason WifiEventApWpsRgFailReason; +typedef struct WifiEventApWpsRgSuccess WifiEventApWpsRgSuccess; +typedef struct WifiProtocols WifiProtocols; +typedef struct WifiBandwidths WifiBandwidths; +typedef struct ConnectedSTAList ConnectedSTAList; +typedef struct RpcReqGetMacAddress RpcReqGetMacAddress; +typedef struct RpcRespGetMacAddress RpcRespGetMacAddress; +typedef struct RpcReqGetMode RpcReqGetMode; +typedef struct RpcRespGetMode RpcRespGetMode; +typedef struct RpcReqSetMode RpcReqSetMode; +typedef struct RpcRespSetMode RpcRespSetMode; +typedef struct RpcReqGetPs RpcReqGetPs; +typedef struct RpcRespGetPs RpcRespGetPs; +typedef struct RpcReqSetPs RpcReqSetPs; +typedef struct RpcRespSetPs RpcRespSetPs; +typedef struct RpcReqSetMacAddress RpcReqSetMacAddress; +typedef struct RpcRespSetMacAddress RpcRespSetMacAddress; +typedef struct RpcReqOTABegin RpcReqOTABegin; +typedef struct RpcRespOTABegin RpcRespOTABegin; +typedef struct RpcReqOTAWrite RpcReqOTAWrite; +typedef struct RpcRespOTAWrite RpcRespOTAWrite; +typedef struct RpcReqOTAEnd RpcReqOTAEnd; +typedef struct RpcRespOTAEnd RpcRespOTAEnd; +typedef struct RpcReqWifiSetMaxTxPower RpcReqWifiSetMaxTxPower; +typedef struct RpcRespWifiSetMaxTxPower RpcRespWifiSetMaxTxPower; +typedef struct RpcReqWifiGetMaxTxPower RpcReqWifiGetMaxTxPower; +typedef struct RpcRespWifiGetMaxTxPower RpcRespWifiGetMaxTxPower; +typedef struct RpcReqConfigHeartbeat RpcReqConfigHeartbeat; +typedef struct RpcRespConfigHeartbeat RpcRespConfigHeartbeat; +typedef struct RpcReqWifiInit RpcReqWifiInit; +typedef struct RpcRespWifiInit RpcRespWifiInit; +typedef struct RpcReqWifiDeinit RpcReqWifiDeinit; +typedef struct RpcRespWifiDeinit RpcRespWifiDeinit; +typedef struct RpcReqWifiSetConfig RpcReqWifiSetConfig; +typedef struct RpcRespWifiSetConfig RpcRespWifiSetConfig; +typedef struct RpcReqWifiGetConfig RpcReqWifiGetConfig; +typedef struct RpcRespWifiGetConfig RpcRespWifiGetConfig; +typedef struct RpcReqWifiConnect RpcReqWifiConnect; +typedef struct RpcRespWifiConnect RpcRespWifiConnect; +typedef struct RpcReqWifiDisconnect RpcReqWifiDisconnect; +typedef struct RpcRespWifiDisconnect RpcRespWifiDisconnect; +typedef struct RpcReqWifiStart RpcReqWifiStart; +typedef struct RpcRespWifiStart RpcRespWifiStart; +typedef struct RpcReqWifiStop RpcReqWifiStop; +typedef struct RpcRespWifiStop RpcRespWifiStop; +typedef struct RpcReqWifiScanStart RpcReqWifiScanStart; +typedef struct RpcRespWifiScanStart RpcRespWifiScanStart; +typedef struct RpcReqWifiScanStop RpcReqWifiScanStop; +typedef struct RpcRespWifiScanStop RpcRespWifiScanStop; +typedef struct RpcReqWifiScanGetApNum RpcReqWifiScanGetApNum; +typedef struct RpcRespWifiScanGetApNum RpcRespWifiScanGetApNum; +typedef struct RpcReqWifiScanGetApRecords RpcReqWifiScanGetApRecords; +typedef struct RpcRespWifiScanGetApRecords RpcRespWifiScanGetApRecords; +typedef struct RpcReqWifiScanGetApRecord RpcReqWifiScanGetApRecord; +typedef struct RpcRespWifiScanGetApRecord RpcRespWifiScanGetApRecord; +typedef struct RpcReqWifiClearApList RpcReqWifiClearApList; +typedef struct RpcRespWifiClearApList RpcRespWifiClearApList; +typedef struct RpcReqWifiRestore RpcReqWifiRestore; +typedef struct RpcRespWifiRestore RpcRespWifiRestore; +typedef struct RpcReqWifiClearFastConnect RpcReqWifiClearFastConnect; +typedef struct RpcRespWifiClearFastConnect RpcRespWifiClearFastConnect; +typedef struct RpcReqWifiDeauthSta RpcReqWifiDeauthSta; +typedef struct RpcRespWifiDeauthSta RpcRespWifiDeauthSta; +typedef struct RpcReqWifiStaGetApInfo RpcReqWifiStaGetApInfo; +typedef struct RpcRespWifiStaGetApInfo RpcRespWifiStaGetApInfo; +typedef struct RpcReqWifiSetProtocol RpcReqWifiSetProtocol; +typedef struct RpcRespWifiSetProtocol RpcRespWifiSetProtocol; +typedef struct RpcReqWifiGetProtocol RpcReqWifiGetProtocol; +typedef struct RpcRespWifiGetProtocol RpcRespWifiGetProtocol; +typedef struct RpcReqWifiSetBandwidth RpcReqWifiSetBandwidth; +typedef struct RpcRespWifiSetBandwidth RpcRespWifiSetBandwidth; +typedef struct RpcReqWifiGetBandwidth RpcReqWifiGetBandwidth; +typedef struct RpcRespWifiGetBandwidth RpcRespWifiGetBandwidth; +typedef struct RpcReqWifiSetChannel RpcReqWifiSetChannel; +typedef struct RpcRespWifiSetChannel RpcRespWifiSetChannel; +typedef struct RpcReqWifiGetChannel RpcReqWifiGetChannel; +typedef struct RpcRespWifiGetChannel RpcRespWifiGetChannel; +typedef struct RpcReqWifiSetStorage RpcReqWifiSetStorage; +typedef struct RpcRespWifiSetStorage RpcRespWifiSetStorage; +typedef struct RpcReqWifiSetCountryCode RpcReqWifiSetCountryCode; +typedef struct RpcRespWifiSetCountryCode RpcRespWifiSetCountryCode; +typedef struct RpcReqWifiGetCountryCode RpcReqWifiGetCountryCode; +typedef struct RpcRespWifiGetCountryCode RpcRespWifiGetCountryCode; +typedef struct RpcReqWifiSetCountry RpcReqWifiSetCountry; +typedef struct RpcRespWifiSetCountry RpcRespWifiSetCountry; +typedef struct RpcReqWifiGetCountry RpcReqWifiGetCountry; +typedef struct RpcRespWifiGetCountry RpcRespWifiGetCountry; +typedef struct RpcReqWifiApGetStaList RpcReqWifiApGetStaList; +typedef struct RpcRespWifiApGetStaList RpcRespWifiApGetStaList; +typedef struct RpcReqWifiApGetStaAid RpcReqWifiApGetStaAid; +typedef struct RpcReqWifiStaGetNegotiatedPhymode RpcReqWifiStaGetNegotiatedPhymode; +typedef struct RpcRespWifiStaGetNegotiatedPhymode RpcRespWifiStaGetNegotiatedPhymode; +typedef struct RpcRespWifiApGetStaAid RpcRespWifiApGetStaAid; +typedef struct RpcReqWifiStaGetRssi RpcReqWifiStaGetRssi; +typedef struct RpcRespWifiStaGetRssi RpcRespWifiStaGetRssi; +typedef struct RpcReqWifiStaGetAid RpcReqWifiStaGetAid; +typedef struct RpcRespWifiStaGetAid RpcRespWifiStaGetAid; +typedef struct RpcReqWifiSetProtocols RpcReqWifiSetProtocols; +typedef struct RpcRespWifiSetProtocols RpcRespWifiSetProtocols; +typedef struct RpcReqWifiGetProtocols RpcReqWifiGetProtocols; +typedef struct RpcRespWifiGetProtocols RpcRespWifiGetProtocols; +typedef struct RpcReqWifiSetBandwidths RpcReqWifiSetBandwidths; +typedef struct RpcRespWifiSetBandwidths RpcRespWifiSetBandwidths; +typedef struct RpcReqWifiGetBandwidths RpcReqWifiGetBandwidths; +typedef struct RpcRespWifiGetBandwidths RpcRespWifiGetBandwidths; +typedef struct RpcReqWifiSetBand RpcReqWifiSetBand; +typedef struct RpcRespWifiSetBand RpcRespWifiSetBand; +typedef struct RpcReqWifiGetBand RpcReqWifiGetBand; +typedef struct RpcRespWifiGetBand RpcRespWifiGetBand; +typedef struct RpcReqWifiSetBandMode RpcReqWifiSetBandMode; +typedef struct RpcRespWifiSetBandMode RpcRespWifiSetBandMode; +typedef struct RpcReqWifiGetBandMode RpcReqWifiGetBandMode; +typedef struct RpcRespWifiGetBandMode RpcRespWifiGetBandMode; +typedef struct RpcReqGetCoprocessorFwVersion RpcReqGetCoprocessorFwVersion; +typedef struct RpcRespGetCoprocessorFwVersion RpcRespGetCoprocessorFwVersion; +typedef struct RpcEventWifiEventNoArgs RpcEventWifiEventNoArgs; +typedef struct RpcEventESPInit RpcEventESPInit; +typedef struct RpcEventHeartbeat RpcEventHeartbeat; +typedef struct RpcEventAPStaDisconnected RpcEventAPStaDisconnected; +typedef struct RpcEventAPStaConnected RpcEventAPStaConnected; +typedef struct RpcEventStaScanDone RpcEventStaScanDone; +typedef struct RpcEventStaConnected RpcEventStaConnected; +typedef struct RpcEventStaDisconnected RpcEventStaDisconnected; +typedef struct Rpc Rpc; + + +/* --- enums --- */ + +typedef enum _RpcWifiBw { + RPC__WIFI_BW__BW_Invalid = 0, + RPC__WIFI_BW__HT20 = 1, + RPC__WIFI_BW__HT40 = 2 + PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RPC__WIFI_BW) +} RpcWifiBw; +typedef enum _RpcWifiPowerSave { + RPC__WIFI_POWER_SAVE__PS_Invalid = 0, + RPC__WIFI_POWER_SAVE__MIN_MODEM = 1, + RPC__WIFI_POWER_SAVE__MAX_MODEM = 2 + PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RPC__WIFI_POWER_SAVE) +} RpcWifiPowerSave; +typedef enum _RpcWifiSecProt { + RPC__WIFI_SEC_PROT__Open = 0, + RPC__WIFI_SEC_PROT__WEP = 1, + RPC__WIFI_SEC_PROT__WPA_PSK = 2, + RPC__WIFI_SEC_PROT__WPA2_PSK = 3, + RPC__WIFI_SEC_PROT__WPA_WPA2_PSK = 4, + RPC__WIFI_SEC_PROT__WPA2_ENTERPRISE = 5, + RPC__WIFI_SEC_PROT__WPA3_PSK = 6, + RPC__WIFI_SEC_PROT__WPA2_WPA3_PSK = 7 + PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RPC__WIFI_SEC_PROT) +} RpcWifiSecProt; +/* + * enums for Control path + */ +typedef enum _RpcStatus { + RPC__STATUS__Connected = 0, + RPC__STATUS__Not_Connected = 1, + RPC__STATUS__No_AP_Found = 2, + RPC__STATUS__Connection_Fail = 3, + RPC__STATUS__Invalid_Argument = 4, + RPC__STATUS__Out_Of_Range = 5 + PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RPC__STATUS) +} RpcStatus; +typedef enum _RpcType { + RPC_TYPE__MsgType_Invalid = 0, + RPC_TYPE__Req = 1, + RPC_TYPE__Resp = 2, + RPC_TYPE__Event = 3, + RPC_TYPE__MsgType_Max = 4 + PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RPC_TYPE) +} RpcType; +typedef enum _RpcId { + RPC_ID__MsgId_Invalid = 0, + /* + ** Request Msgs * + */ + /* + *0x100 + */ + RPC_ID__Req_Base = 256, + /* + *0x101 + */ + RPC_ID__Req_GetMACAddress = 257, + /* + *0x102 + */ + RPC_ID__Req_SetMacAddress = 258, + /* + *0x103 + */ + RPC_ID__Req_GetWifiMode = 259, + /* + *0x104 + */ + RPC_ID__Req_SetWifiMode = 260, + /* + *0x10e + */ + RPC_ID__Req_WifiSetPs = 270, + /* + *0x10f + */ + RPC_ID__Req_WifiGetPs = 271, + /* + *0x110 + */ + RPC_ID__Req_OTABegin = 272, + /* + *0x111 + */ + RPC_ID__Req_OTAWrite = 273, + /* + *0x112 + */ + RPC_ID__Req_OTAEnd = 274, + /* + *0x113 + */ + RPC_ID__Req_WifiSetMaxTxPower = 275, + /* + *0x114 + */ + RPC_ID__Req_WifiGetMaxTxPower = 276, + /* + *0x115 + */ + RPC_ID__Req_ConfigHeartbeat = 277, + /* + *0x116 + */ + RPC_ID__Req_WifiInit = 278, + /* + *0x117 + */ + RPC_ID__Req_WifiDeinit = 279, + /* + *0x118 + */ + RPC_ID__Req_WifiStart = 280, + /* + *0x119 + */ + RPC_ID__Req_WifiStop = 281, + /* + *0x11a + */ + RPC_ID__Req_WifiConnect = 282, + /* + *0x11b + */ + RPC_ID__Req_WifiDisconnect = 283, + /* + *0x11c + */ + RPC_ID__Req_WifiSetConfig = 284, + /* + *0x11d + */ + RPC_ID__Req_WifiGetConfig = 285, + /* + *0x11e + */ + RPC_ID__Req_WifiScanStart = 286, + /* + *0x11f + */ + RPC_ID__Req_WifiScanStop = 287, + /* + *0x120 + */ + RPC_ID__Req_WifiScanGetApNum = 288, + /* + *0x121 + */ + RPC_ID__Req_WifiScanGetApRecords = 289, + /* + *0x122 + */ + RPC_ID__Req_WifiClearApList = 290, + /* + *0x123 + */ + RPC_ID__Req_WifiRestore = 291, + /* + *0x124 + */ + RPC_ID__Req_WifiClearFastConnect = 292, + /* + *0x125 + */ + RPC_ID__Req_WifiDeauthSta = 293, + /* + *0x126 + */ + RPC_ID__Req_WifiStaGetApInfo = 294, + /* + *Req_WifiSetPs = 295; //0x127 + *Req_WifiGetPs = 296; //0x128 + */ + /* + *0x129 + */ + RPC_ID__Req_WifiSetProtocol = 297, + /* + *0x12a + */ + RPC_ID__Req_WifiGetProtocol = 298, + /* + *0x12b + */ + RPC_ID__Req_WifiSetBandwidth = 299, + /* + *0x12c + */ + RPC_ID__Req_WifiGetBandwidth = 300, + /* + *0x12d + */ + RPC_ID__Req_WifiSetChannel = 301, + /* + *0x12e + */ + RPC_ID__Req_WifiGetChannel = 302, + /* + *0x12f + */ + RPC_ID__Req_WifiSetCountry = 303, + /* + *0x130 + */ + RPC_ID__Req_WifiGetCountry = 304, + /* + * Req_WifiSetPromiscuousRxCb = 305; //0x131 + */ + /* + *0x131 + */ + RPC_ID__Req_WifiSetPromiscuous = 305, + /* + *0x132 + */ + RPC_ID__Req_WifiGetPromiscuous = 306, + /* + *0x133 + */ + RPC_ID__Req_WifiSetPromiscuousFilter = 307, + /* + *0x134 + */ + RPC_ID__Req_WifiGetPromiscuousFilter = 308, + /* + *0x135 + */ + RPC_ID__Req_WifiSetPromiscuousCtrlFilter = 309, + /* + *0x136 + */ + RPC_ID__Req_WifiGetPromiscuousCtrlFilter = 310, + /* + *0x137 + */ + RPC_ID__Req_WifiApGetStaList = 311, + /* + *0x138 + */ + RPC_ID__Req_WifiApGetStaAid = 312, + /* + *0x139 + */ + RPC_ID__Req_WifiSetStorage = 313, + /* + *0x13a + */ + RPC_ID__Req_WifiSetVendorIe = 314, + /* + * Req_WifiSetVendorIeCb = 315; //0x13b + */ + /* + *0x13b + */ + RPC_ID__Req_WifiSetEventMask = 315, + /* + *0x13c + */ + RPC_ID__Req_WifiGetEventMask = 316, + /* + *0x13d + */ + RPC_ID__Req_Wifi80211Tx = 317, + /* + * Req_WifiSetCsiRxCb = 318; //0x13e + */ + /* + *0x13e + */ + RPC_ID__Req_WifiSetCsiConfig = 318, + /* + *0x13f + */ + RPC_ID__Req_WifiSetCsi = 319, + /* + *0x140 + */ + RPC_ID__Req_WifiSetAntGpio = 320, + /* + *0x141 + */ + RPC_ID__Req_WifiGetAntGpio = 321, + /* + *0x142 + */ + RPC_ID__Req_WifiSetAnt = 322, + /* + *0x143 + */ + RPC_ID__Req_WifiGetAnt = 323, + /* + *0x144 + */ + RPC_ID__Req_WifiGetTsfTime = 324, + /* + *0x145 + */ + RPC_ID__Req_WifiSetInactiveTime = 325, + /* + *0x146 + */ + RPC_ID__Req_WifiGetInactiveTime = 326, + /* + *0x147 + */ + RPC_ID__Req_WifiStatisDump = 327, + /* + *0x148 + */ + RPC_ID__Req_WifiSetRssiThreshold = 328, + /* + *0x149 + */ + RPC_ID__Req_WifiFtmInitiateSession = 329, + /* + *0x14a + */ + RPC_ID__Req_WifiFtmEndSession = 330, + /* + *0x14b + */ + RPC_ID__Req_WifiFtmRespSetOffset = 331, + /* + *0x14c + */ + RPC_ID__Req_WifiConfig11bRate = 332, + /* + *0x14d + */ + RPC_ID__Req_WifiConnectionlessModuleSetWakeInterval = 333, + /* + *0x14e + */ + RPC_ID__Req_WifiSetCountryCode = 334, + /* + *0x14f + */ + RPC_ID__Req_WifiGetCountryCode = 335, + /* + *0x150 + */ + RPC_ID__Req_WifiConfig80211TxRate = 336, + /* + *0x151 + */ + RPC_ID__Req_WifiDisablePmfConfig = 337, + /* + *0x152 + */ + RPC_ID__Req_WifiStaGetAid = 338, + /* + *0x153 + */ + RPC_ID__Req_WifiStaGetNegotiatedPhymode = 339, + /* + *0x154 + */ + RPC_ID__Req_WifiSetDynamicCs = 340, + /* + *0x155 + */ + RPC_ID__Req_WifiStaGetRssi = 341, + /* + *0x156 + */ + RPC_ID__Req_WifiSetProtocols = 342, + /* + *0x157 + */ + RPC_ID__Req_WifiGetProtocols = 343, + /* + *0x158 + */ + RPC_ID__Req_WifiSetBandwidths = 344, + /* + *0x159 + */ + RPC_ID__Req_WifiGetBandwidths = 345, + /* + *0x15a + */ + RPC_ID__Req_WifiSetBand = 346, + /* + *0x15b + */ + RPC_ID__Req_WifiGetBand = 347, + /* + *0x15c + */ + RPC_ID__Req_WifiSetBandMode = 348, + /* + *0x15d + */ + RPC_ID__Req_WifiGetBandMode = 349, + /* + *0x15e + */ + RPC_ID__Req_GetCoprocessorFwVersion = 350, + /* + *0x15f + */ + RPC_ID__Req_WifiScanGetApRecord = 351, + /* + * Add new control path command response before Req_Max + * and update Req_Max + */ + /* + *0x160 + */ + RPC_ID__Req_Max = 352, + /* + ** Response Msgs * + */ + RPC_ID__Resp_Base = 512, + RPC_ID__Resp_GetMACAddress = 513, + RPC_ID__Resp_SetMacAddress = 514, + RPC_ID__Resp_GetWifiMode = 515, + RPC_ID__Resp_SetWifiMode = 516, + RPC_ID__Resp_WifiSetPs = 526, + RPC_ID__Resp_WifiGetPs = 527, + RPC_ID__Resp_OTABegin = 528, + RPC_ID__Resp_OTAWrite = 529, + RPC_ID__Resp_OTAEnd = 530, + RPC_ID__Resp_WifiSetMaxTxPower = 531, + RPC_ID__Resp_WifiGetMaxTxPower = 532, + RPC_ID__Resp_ConfigHeartbeat = 533, + RPC_ID__Resp_WifiInit = 534, + RPC_ID__Resp_WifiDeinit = 535, + RPC_ID__Resp_WifiStart = 536, + RPC_ID__Resp_WifiStop = 537, + RPC_ID__Resp_WifiConnect = 538, + RPC_ID__Resp_WifiDisconnect = 539, + RPC_ID__Resp_WifiSetConfig = 540, + RPC_ID__Resp_WifiGetConfig = 541, + RPC_ID__Resp_WifiScanStart = 542, + RPC_ID__Resp_WifiScanStop = 543, + RPC_ID__Resp_WifiScanGetApNum = 544, + RPC_ID__Resp_WifiScanGetApRecords = 545, + RPC_ID__Resp_WifiClearApList = 546, + RPC_ID__Resp_WifiRestore = 547, + RPC_ID__Resp_WifiClearFastConnect = 548, + RPC_ID__Resp_WifiDeauthSta = 549, + RPC_ID__Resp_WifiStaGetApInfo = 550, + /* + *Resp_WifiSetPs = 551; + *Resp_WifiGetPs = 552; + */ + RPC_ID__Resp_WifiSetProtocol = 553, + RPC_ID__Resp_WifiGetProtocol = 554, + RPC_ID__Resp_WifiSetBandwidth = 555, + RPC_ID__Resp_WifiGetBandwidth = 556, + RPC_ID__Resp_WifiSetChannel = 557, + RPC_ID__Resp_WifiGetChannel = 558, + RPC_ID__Resp_WifiSetCountry = 559, + RPC_ID__Resp_WifiGetCountry = 560, + /* + * Resp_WifiSetPromiscuousRxCb = 561; + */ + RPC_ID__Resp_WifiSetPromiscuous = 561, + RPC_ID__Resp_WifiGetPromiscuous = 562, + RPC_ID__Resp_WifiSetPromiscuousFilter = 563, + RPC_ID__Resp_WifiGetPromiscuousFilter = 564, + RPC_ID__Resp_WifiSetPromiscuousCtrlFilter = 565, + RPC_ID__Resp_WifiGetPromiscuousCtrlFilter = 566, + RPC_ID__Resp_WifiApGetStaList = 567, + RPC_ID__Resp_WifiApGetStaAid = 568, + RPC_ID__Resp_WifiSetStorage = 569, + RPC_ID__Resp_WifiSetVendorIe = 570, + /* + * Resp_WifiSetVendorIeCb = 571; + */ + RPC_ID__Resp_WifiSetEventMask = 571, + RPC_ID__Resp_WifiGetEventMask = 572, + RPC_ID__Resp_Wifi80211Tx = 573, + /* + * Resp_WifiSetCsiRxCb = 573; + */ + RPC_ID__Resp_WifiSetCsiConfig = 574, + RPC_ID__Resp_WifiSetCsi = 575, + RPC_ID__Resp_WifiSetAntGpio = 576, + RPC_ID__Resp_WifiGetAntGpio = 577, + RPC_ID__Resp_WifiSetAnt = 578, + RPC_ID__Resp_WifiGetAnt = 579, + RPC_ID__Resp_WifiGetTsfTime = 580, + RPC_ID__Resp_WifiSetInactiveTime = 581, + RPC_ID__Resp_WifiGetInactiveTime = 582, + RPC_ID__Resp_WifiStatisDump = 583, + RPC_ID__Resp_WifiSetRssiThreshold = 584, + RPC_ID__Resp_WifiFtmInitiateSession = 585, + RPC_ID__Resp_WifiFtmEndSession = 586, + RPC_ID__Resp_WifiFtmRespSetOffset = 587, + RPC_ID__Resp_WifiConfig11bRate = 588, + RPC_ID__Resp_WifiConnectionlessModuleSetWakeInterval = 589, + RPC_ID__Resp_WifiSetCountryCode = 590, + RPC_ID__Resp_WifiGetCountryCode = 591, + RPC_ID__Resp_WifiConfig80211TxRate = 592, + RPC_ID__Resp_WifiDisablePmfConfig = 593, + RPC_ID__Resp_WifiStaGetAid = 594, + RPC_ID__Resp_WifiStaGetNegotiatedPhymode = 595, + RPC_ID__Resp_WifiSetDynamicCs = 596, + RPC_ID__Resp_WifiStaGetRssi = 597, + RPC_ID__Resp_WifiSetProtocols = 598, + RPC_ID__Resp_WifiGetProtocols = 599, + RPC_ID__Resp_WifiSetBandwidths = 600, + RPC_ID__Resp_WifiGetBandwidths = 601, + RPC_ID__Resp_WifiSetBand = 602, + RPC_ID__Resp_WifiGetBand = 603, + RPC_ID__Resp_WifiSetBandMode = 604, + RPC_ID__Resp_WifiGetBandMode = 605, + RPC_ID__Resp_GetCoprocessorFwVersion = 606, + RPC_ID__Resp_WifiScanGetApRecord = 607, + /* + * Add new control path command response before Resp_Max + * and update Resp_Max + */ + RPC_ID__Resp_Max = 608, + /* + ** Event Msgs * + */ + RPC_ID__Event_Base = 768, + RPC_ID__Event_ESPInit = 769, + RPC_ID__Event_Heartbeat = 770, + RPC_ID__Event_AP_StaConnected = 771, + RPC_ID__Event_AP_StaDisconnected = 772, + RPC_ID__Event_WifiEventNoArgs = 773, + RPC_ID__Event_StaScanDone = 774, + RPC_ID__Event_StaConnected = 775, + RPC_ID__Event_StaDisconnected = 776, + /* + * Add new control path command notification before Event_Max + * and update Event_Max + */ + RPC_ID__Event_Max = 777 + PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RPC_ID) +} RpcId; + +/* --- messages --- */ + +struct WifiInitConfig +{ + ProtobufCMessage base; + /* + **< WiFi static RX buffer number + */ + int32_t static_rx_buf_num; + /* + **< WiFi dynamic RX buffer number + */ + int32_t dynamic_rx_buf_num; + /* + **< WiFi TX buffer type + */ + int32_t tx_buf_type; + /* + **< WiFi static TX buffer number + */ + int32_t static_tx_buf_num; + /* + **< WiFi dynamic TX buffer number + */ + int32_t dynamic_tx_buf_num; + /* + **< WiFi TX cache buffer number + */ + int32_t cache_tx_buf_num; + /* + **< WiFi channel state information enable flag + */ + int32_t csi_enable; + /* + **< WiFi AMPDU RX feature enable flag + */ + int32_t ampdu_rx_enable; + /* + **< WiFi AMPDU TX feature enable flag + */ + int32_t ampdu_tx_enable; + /* + **< WiFi AMSDU TX feature enable flag + */ + int32_t amsdu_tx_enable; + /* + **< WiFi NVS flash enable flag + */ + int32_t nvs_enable; + /* + **< Nano option for printf/scan family enable flag + */ + int32_t nano_enable; + /* + **< WiFi Block Ack RX window size + */ + int32_t rx_ba_win; + /* + **< WiFi Task Core ID + */ + int32_t wifi_task_core_id; + /* + **< WiFi softAP maximum length of the beacon + */ + int32_t beacon_max_len; + /* + **< WiFi management short buffer number, the minimum value is 6, the maximum value is 32 + */ + int32_t mgmt_sbuf_num; + /* + **< Enables additional WiFi features and capabilities + */ + uint64_t feature_caps; + /* + **< WiFi Power Management for station at disconnected status + */ + protobuf_c_boolean sta_disconnected_pm; + /* + **< Maximum encrypt number of peers supported by espnow + */ + int32_t espnow_max_encrypt_num; + /* + **< WiFi init magic number, it should be the last field + */ + int32_t magic; +}; +#define WIFI_INIT_CONFIG__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_init_config__descriptor) \ + , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } + + +struct WifiCountry +{ + ProtobufCMessage base; + /* + **< country code string of 3 chars + */ + ProtobufCBinaryData cc; + /* + **< start channel + */ + uint32_t schan; + /* + **< total channel number + */ + uint32_t nchan; + /* + **< This field is used for getting WiFi maximum transmitting power, + *call esp_wifi_set_max_tx_power to set the maximum transmitting power. + */ + int32_t max_tx_power; + /* + **< country policy + */ + int32_t policy; +}; +#define WIFI_COUNTRY__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_country__descriptor) \ + , {0,NULL}, 0, 0, 0, 0 } + + +struct WifiActiveScanTime +{ + ProtobufCMessage base; + /* + **< minimum active scan time per channel, units: millisecond + */ + uint32_t min; + /* + **< maximum active scan time per channel, units: millisecond, values above 1500ms may + *cause station to disconnect from AP and are not recommended. + */ + uint32_t max; +}; +#define WIFI_ACTIVE_SCAN_TIME__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_active_scan_time__descriptor) \ + , 0, 0 } + + +struct WifiScanTime +{ + ProtobufCMessage base; + /* + **< active scan time per channel, units: millisecond. + */ + WifiActiveScanTime *active; + /* + **< passive scan time per channel, units: millisecond, values above 1500ms may + *cause station to disconnect from AP and are not recommended. + */ + uint32_t passive; +}; +#define WIFI_SCAN_TIME__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_scan_time__descriptor) \ + , NULL, 0 } + + +struct WifiScanConfig +{ + ProtobufCMessage base; + /* + **< SSID of AP 33char + */ + ProtobufCBinaryData ssid; + /* + **< MAC address of AP 6char + */ + ProtobufCBinaryData bssid; + /* + **< channel, scan the specific channel + */ + uint32_t channel; + /* + **< enable to scan AP whose SSID is hidden + */ + protobuf_c_boolean show_hidden; + /* + **< scan type, active or passive + */ + int32_t scan_type; + /* + **< scan time per channel + */ + WifiScanTime *scan_time; + /* + **< time spent at home channel between scanning consecutive channels. + */ + uint32_t home_chan_dwell_time; +}; +#define WIFI_SCAN_CONFIG__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_scan_config__descriptor) \ + , {0,NULL}, {0,NULL}, 0, 0, 0, NULL, 0 } + + +struct WifiHeApInfo +{ + ProtobufCMessage base; + /* + *uint8_t bss_color:6; **< an unsigned integer whose value is the BSS Color of the BSS corresponding to the AP * + *uint8_t partial_bss_color:1; **< indicate if an AID assignment rule based on the BSS color * + *uint8_t bss_color_disabled:1; **< indicate if the use of BSS color is disabled * + */ + /* + * Manually have to parse for above bits + */ + uint32_t bitmask; + /* + **< in M-BSSID set, identifies the nontransmitted BSSID + */ + uint32_t bssid_index; +}; +#define WIFI_HE_AP_INFO__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_he_ap_info__descriptor) \ + , 0, 0 } + + +struct WifiApRecord +{ + ProtobufCMessage base; + /* + **< MAC address of AP 6char + */ + ProtobufCBinaryData bssid; + /* + **< SSID of AP 33char + */ + ProtobufCBinaryData ssid; + /* + **< channel of AP + */ + uint32_t primary; + /* + **< secondary channel of AP + */ + int32_t second; + /* + **< signal strength of AP + */ + int32_t rssi; + /* + **< authmode of AP + */ + int32_t authmode; + /* + **< pairwise cipher of AP + */ + int32_t pairwise_cipher; + /* + **< group cipher of AP + */ + int32_t group_cipher; + /* + **< antenna used to receive beacon from AP + */ + int32_t ant; + /* + *uint32_t phy_11b:1; **< bit: 0 flag to identify if 11b mode is enabled or not * + *uint32_t phy_11g:1; **< bit: 1 flag to identify if 11g mode is enabled or not * + *uint32_t phy_11n:1; **< bit: 2 flag to identify if 11n mode is enabled or not * + *uint32_t phy_lr:1; **< bit: 3 flag to identify if low rate is enabled or not * + *uint32_t wps:1; **< bit: 4 flag to identify if WPS is supported or not * + *uint32_t ftm_responder:1; **< bit: 5 flag to identify if FTM is supported in responder mode * + *uint32_t ftm_initiator:1; **< bit: 6 flag to identify if FTM is supported in initiator mode * + *uint32_t reserved:25; **< bit: 7..31 reserved * + */ + /* + * Manually have to parse for above bits + */ + uint32_t bitmask; + /* + **< country information of AP + */ + WifiCountry *country; + WifiHeApInfo *he_ap; + /* + **< For AP 20 MHz this value is set to 1. For AP 40 MHz this value is set to 2. + *For AP 80 MHz this value is set to 3. For AP 160MHz this value is set to 4. + *For AP 80+80MHz this value is set to 5 + */ + uint32_t bandwidth; + /* + **< This fields are used only AP bandwidth is 80 and 160 MHz, to transmit the center channel + *frequency of the BSS. For AP bandwidth is 80 + 80 MHz, it is the center channel frequency + *of the lower frequency segment. + */ + uint32_t vht_ch_freq1; + /* + **< This fields are used only AP bandwidth is 80 + 80 MHz, and is used to transmit the center + *channel frequency of the second segment. + */ + uint32_t vht_ch_freq2; +}; +#define WIFI_AP_RECORD__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_ap_record__descriptor) \ + , {0,NULL}, {0,NULL}, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0 } + + +struct WifiScanThreshold +{ + ProtobufCMessage base; + /* + **< The minimum rssi to accept in the fast scan mode + */ + int32_t rssi; + /* + **< The weakest authmode to accept in the fast scan mode + *Note: Incase this value is not set and password is set as per WPA2 standards(password len >= 8), + *it will be defaulted to WPA2 and device won't connect to deprecated WEP/WPA networks. + *Please set authmode threshold as WIFI_AUTH_WEP/WIFI_AUTH_WPA_PSK to connect to WEP/WPA networks + */ + int32_t authmode; +}; +#define WIFI_SCAN_THRESHOLD__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_scan_threshold__descriptor) \ + , 0, 0 } + + +struct WifiPmfConfig +{ + ProtobufCMessage base; + /* + **< Deprecated variable. Device will always connect in PMF mode if other device also advertizes PMF capability. + */ + protobuf_c_boolean capable; + /* + **< Advertizes that Protected Management Frame is required. Device will not associate to non-PMF capable devices. + */ + protobuf_c_boolean required; +}; +#define WIFI_PMF_CONFIG__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_pmf_config__descriptor) \ + , 0, 0 } + + +struct WifiApConfig +{ + ProtobufCMessage base; + /* + **< SSID of ESP32 soft-AP. If ssid_len field is 0, this must be a Null terminated string. Otherwise, length is set according to ssid_len. 32 char + */ + ProtobufCBinaryData ssid; + /* + **< Password of ESP32 soft-AP. 64 char + */ + ProtobufCBinaryData password; + /* + **< Optional length of SSID field. + */ + uint32_t ssid_len; + /* + **< Channel of ESP32 soft-AP + */ + uint32_t channel; + /* + **< Auth mode of ESP32 soft-AP. Do not support AUTH_WEP in soft-AP mode + */ + int32_t authmode; + /* + **< Broadcast SSID or not, default 0, broadcast the SSID + */ + uint32_t ssid_hidden; + /* + **< Max number of stations allowed to connect in + */ + uint32_t max_connection; + /* + **< Beacon interval which should be multiples of 100. Unit: TU(time unit, 1 TU = 1024 us). Range: 100 ~ 60000. Default value: 100 + */ + uint32_t beacon_interval; + /* + **< pairwise cipher of SoftAP, group cipher will be derived using this. + *cipher values are valid starting from WIFI_CIPHER_TYPE_TKIP, enum values before that will be considered as invalid and default cipher suites(TKIP+CCMP) will be used. + *Valid cipher suites in softAP mode are WIFI_CIPHER_TYPE_TKIP, WIFI_CIPHER_TYPE_CCMP and WIFI_CIPHER_TYPE_TKIP_CCMP. + */ + int32_t pairwise_cipher; + /* + **< Enable FTM Responder mode + */ + protobuf_c_boolean ftm_responder; + /* + **< Configuration for Protected Management Frame + */ + WifiPmfConfig *pmf_cfg; + /* + **< Configuration for SAE PWE derivation method + */ + int32_t sae_pwe_h2e; +}; +#define WIFI_AP_CONFIG__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_ap_config__descriptor) \ + , {0,NULL}, {0,NULL}, 0, 0, 0, 0, 0, 0, 0, 0, NULL, 0 } + + +struct WifiStaConfig +{ + ProtobufCMessage base; + /* + **< SSID of target AP. 32char + */ + ProtobufCBinaryData ssid; + /* + **< Password of target AP. 64char + */ + ProtobufCBinaryData password; + /* + **< do all channel scan or fast scan + */ + int32_t scan_method; + /* + **< whether set MAC address of target AP or not. Generally, station_config.bssid_set needs to be 0, + *and it needs to be 1 only when users need to check the MAC address of the AP. + */ + protobuf_c_boolean bssid_set; + /* + **< MAC address of target AP 6char + */ + ProtobufCBinaryData bssid; + /* + **< channel of target AP. Set to 1~13 to scan starting from the specified channel + *before connecting to AP. If the channel of AP is unknown, set it to 0. + */ + uint32_t channel; + /* + **< Listen interval for ESP32 station to receive beacon when WIFI_PS_MAX_MODEM is set. + *Units: AP beacon intervals. Defaults to 3 if set to 0. + */ + uint32_t listen_interval; + /* + **< sort the connect AP in the list by rssi or security mode + */ + int32_t sort_method; + /* + **< When sort_method is set, only APs which have an auth mode that is more secure + *than the selected auth mode and a signal stronger than the minimum RSSI will be used. + */ + WifiScanThreshold *threshold; + /* + **< Configuration for Protected Management Frame. Will be advertized in RSN Capabilities in RSN IE. + */ + WifiPmfConfig *pmf_cfg; + /* + *uint32_t rm_enabled:1; **< Whether Radio Measurements are enabled for the connection * + *uint32_t btm_enabled:1; **< Whether BSS Transition Management is enabled for the connection * + *uint32_t mbo_enabled:1; **< Whether MBO is enabled for the connection * + *uint32_t ft_enabled:1; **< Whether FT is enabled for the connection * + *uint32_t owe_enabled:1; **< Whether OWE is enabled for the connection * + *uint32_t transition_disable:1; **< Whether to enable transition disable feature * + *uint32_t reserved:26; **< Reserved for future feature set * + */ + uint32_t bitmask; + /* + **< Whether SAE hash to element is enabled + */ + int32_t sae_pwe_h2e; + /* + **< Number of connection retries station will do before moving to next AP. + *scan_method should be set as WIFI_ALL_CHANNEL_SCAN to use this config. + *Note: Enabling this may cause connection time to increase incase best AP doesn't behave properly. + */ + uint32_t failure_retry_cnt; + /* + *uint32_t he_dcm_set:1; **< Whether DCM max.constellation for transmission and reception is set. * + *uint32_t he_dcm_max_constellation_tx:2; **< Indicate the max.constellation for DCM in TB PPDU the STA supported. 0: not supported. 1: BPSK, 2: QPSK, 3: 16-QAM. The default value is 3. * + *uint32_t he_dcm_max_constellation_rx:2; **< Indicate the max.constellation for DCM in both Data field and HE-SIG-B field the STA supported. 0: not supported. 1: BPSK, 2: QPSK, 3: 16-QAM. The default value is 3. * + *uint32_t he_mcs9_enabled:1; **< Whether to support HE-MCS 0 to 9. The default value is 0. * + *uint32_t he_su_beamformee_disabled:1; **< Whether to disable support for operation as an SU beamformee. * + *uint32_t he_trig_su_bmforming_feedback_disabled:1; **< Whether to disable support the transmission of SU feedback in an HE TB sounding sequence. * + *uint32_t he_trig_mu_bmforming_partial_feedback_disabled:1; **< Whether to disable support the transmission of partial-bandwidth MU feedback in an HE TB sounding sequence. * + * uint32_t he_trig_cqi_feedback_disabled:1; **< Whether to disable support the transmission of CQI feedback in an HE TB sounding sequence. * + * uint32_t he_reserved:22; **< Reserved for future feature set * + */ + uint32_t he_bitmask; + /* + **< Password identifier for H2E. this needs to be null terminated string. SAE_H2E_IDENTIFIER_LEN chars + */ + ProtobufCBinaryData sae_h2e_identifier; +}; +#define WIFI_STA_CONFIG__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_sta_config__descriptor) \ + , {0,NULL}, {0,NULL}, 0, 0, {0,NULL}, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, {0,NULL} } + + +typedef enum { + WIFI_CONFIG__U__NOT_SET = 0, + WIFI_CONFIG__U_AP = 1, + WIFI_CONFIG__U_STA = 2 + PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(WIFI_CONFIG__U__CASE) +} WifiConfig__UCase; + +struct WifiConfig +{ + ProtobufCMessage base; + WifiConfig__UCase u_case; + union { + /* + **< configuration of AP + */ + WifiApConfig *ap; + /* + **< configuration of STA + */ + WifiStaConfig *sta; + }; +}; +#define WIFI_CONFIG__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_config__descriptor) \ + , WIFI_CONFIG__U__NOT_SET, {0} } + + +struct WifiStaInfo +{ + ProtobufCMessage base; + /* + **< mac address 6 char + */ + ProtobufCBinaryData mac; + /* + **< current average rssi of sta connected + */ + int32_t rssi; + /* + *uint32_t phy_11b:1; **< bit: 0 flag to identify if 11b mode is enabled or not * + *uint32_t phy_11g:1; **< bit: 1 flag to identify if 11g mode is enabled or not * + *uint32_t phy_11n:1; **< bit: 2 flag to identify if 11n mode is enabled or not * + *uint32_t phy_lr:1; **< bit: 3 flag to identify if low rate is enabled or not * + *uint32_t phy_11x:1; **< bit: 4 flag to identify identify if 11ax mode is enabled or not * + *uint32_t is_mesh_child:1; **< bit: 5 flag to identify mesh child * + *uint32_t reserved:26; **< bit: 6..31 reserved * + */ + uint32_t bitmask; +}; +#define WIFI_STA_INFO__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_sta_info__descriptor) \ + , {0,NULL}, 0, 0 } + + +struct WifiStaList +{ + ProtobufCMessage base; + /* + **< station list + */ + size_t n_sta; + WifiStaInfo **sta; + /* + **< number of stations in the list (other entries are invalid) + */ + int32_t num; +}; +#define WIFI_STA_LIST__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_sta_list__descriptor) \ + , 0,NULL, 0 } + + +struct WifiPktRxCtrl +{ + ProtobufCMessage base; + /* + **< 8bits Received Signal Strength Indicator(RSSI) of packet. unit: dBm + */ + int32_t rssi; + /* + **< 5bits PHY rate encoding of the packet. Only valid for non HT(11bg) packet + */ + uint32_t rate; + /* + *uint32 :1; **< reserved * + */ + /* + **< 2bits 0: non HT(11bg) packet; 1: HT(11n) packet; 3: VHT(11ac) packet + */ + uint32_t sig_mode; + /* + *uint32 :16; **< reserved * + */ + /* + **< 7bits Modulation Coding Scheme. If is HT(11n) packet, shows the modulation, range from 0 to 76(MSC0 ~ MCS76) + */ + uint32_t mcs; + /* + **< 1bit Channel Bandwidth of the packet. 0: 20MHz; 1: 40MHz + */ + uint32_t cwb; + /* + *uint32 :16; **< reserved * + */ + /* + **< 1bit reserved + */ + uint32_t smoothing; + /* + **< 1bit reserved + */ + uint32_t not_sounding; + /* + *uint32 :1; **< reserved * + */ + /* + **< 1bit Aggregation. 0: MPDU packet; 1: AMPDU packet + */ + uint32_t aggregation; + /* + **< 2bits Space Time Block Code(STBC). 0: non STBC packet; 1: STBC packet + */ + uint32_t stbc; + /* + **< 1bit Flag is set for 11n packets which are LDPC + */ + uint32_t fec_coding; + /* + **< 1bit Short Guide Interval(SGI). 0: Long GI; 1: Short GI + */ + uint32_t sgi; + /* + **< 8bits noise floor of Radio Frequency Module(RF). unit: dBm + */ + int32_t noise_floor; + /* + **< 8bits ampdu cnt + */ + uint32_t ampdu_cnt; + /* + **< 4bits primary channel on which this packet is received + */ + uint32_t channel; + /* + **< 4bits secondary channel on which this packet is received. 0: none; 1: above; 2: below + */ + uint32_t secondary_channel; + /* + *uint32 :8; **< reserved * + */ + /* + **< 32bit timestamp. The local time when this packet is received. It is precise only if modem sleep or light sleep is not enabled. unit: microsecond + */ + uint32_t timestamp; + /* + *uint32 :32; **< reserved * + *unsigned :32; **< reserved * + *unsigned :31; **< reserved * + */ + /* + **< 1bit antenna number from which this packet is received. 0: WiFi antenna 0; 1: WiFi antenna 1 + */ + uint32_t ant; + /* + **< 12bits length of packet including Frame Check Sequence(FCS) + */ + uint32_t sig_len; + /* + *unsigned :12; **< reserved * + */ + /* + **< 8bits state of the packet. 0: no error; others: error numbers which are not public + */ + uint32_t rx_state; +}; +#define WIFI_PKT_RX_CTRL__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_pkt_rx_ctrl__descriptor) \ + , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } + + +struct WifiPromiscuousPkt +{ + ProtobufCMessage base; + /* + **< metadata header + */ + WifiPktRxCtrl *rx_ctrl; + /* + **< Note: variable length. Data or management payload. Length of payload is described by rx_ctrl.sig_len. Type of content determined by packet type argument of callback. + */ + ProtobufCBinaryData payload; +}; +#define WIFI_PROMISCUOUS_PKT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_promiscuous_pkt__descriptor) \ + , NULL, {0,NULL} } + + +struct WifiPromiscuousFilter +{ + ProtobufCMessage base; + /* + **< OR of one or more filter values WIFI_PROMIS_FILTER_* + */ + uint32_t filter_mask; +}; +#define WIFI_PROMISCUOUS_FILTER__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_promiscuous_filter__descriptor) \ + , 0 } + + +struct WifiCsiConfig +{ + ProtobufCMessage base; + /* + **< enable to receive legacy long training field(lltf) data. Default enabled + */ + protobuf_c_boolean lltf_en; + /* + **< enable to receive HT long training field(htltf) data. Default enabled + */ + protobuf_c_boolean htltf_en; + /* + **< enable to receive space time block code HT long training field(stbc-htltf2) data. Default enabled + */ + protobuf_c_boolean stbc_htltf2_en; + /* + **< enable to generate htlft data by averaging lltf and ht_ltf data when receiving HT packet. Otherwise, use ht_ltf data directly. Default enabled + */ + protobuf_c_boolean ltf_merge_en; + /* + **< enable to turn on channel filter to smooth adjacent sub-carrier. Disable it to keep independence of adjacent sub-carrier. Default enabled + */ + protobuf_c_boolean channel_filter_en; + /* + **< manually scale the CSI data by left shifting or automatically scale the CSI data. + *If set true, please set the shift bits. false: automatically. true: manually. Default false + */ + protobuf_c_boolean manu_scale; + /* + **< manually left shift bits of the scale of the CSI data. The range of the left shift bits is 0~15 + */ + uint32_t shift; +}; +#define WIFI_CSI_CONFIG__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_csi_config__descriptor) \ + , 0, 0, 0, 0, 0, 0, 0 } + + +struct WifiCsiInfo +{ + ProtobufCMessage base; + /* + **< received packet radio metadata header of the CSI data + */ + WifiPktRxCtrl *rx_ctrl; + /* + **< 6bits source MAC address of the CSI data + */ + ProtobufCBinaryData mac; + /* + **< 6bits destination MAC address of the CSI data + */ + ProtobufCBinaryData dmac; + /* + **< first four bytes of the CSI data is invalid or not + */ + protobuf_c_boolean first_word_invalid; + /* + **< Note: variable length. buffer of CSI data + */ + ProtobufCBinaryData buf; + /* + **< length of CSI data + */ + uint32_t len; +}; +#define WIFI_CSI_INFO__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_csi_info__descriptor) \ + , NULL, {0,NULL}, {0,NULL}, 0, {0,NULL}, 0 } + + +struct WifiAntGpio +{ + ProtobufCMessage base; + /* + **< 1bit Whether this GPIO is connected to external antenna switch + */ + uint32_t gpio_select; + /* + **< 7bits The GPIO number that connects to external antenna switch + */ + uint32_t gpio_num; +}; +#define WIFI_ANT_GPIO__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_ant_gpio__descriptor) \ + , 0, 0 } + + +struct WifiAntGpioConfig +{ + ProtobufCMessage base; + /* + **< The configurations of GPIOs that connect to external antenna switch + */ + size_t n_gpio_cfgs; + WifiAntGpio **gpio_cfgs; +}; +#define WIFI_ANT_GPIO_CONFIG__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_ant_gpio_config__descriptor) \ + , 0,NULL } + + +struct WifiAntConfig +{ + ProtobufCMessage base; + /* + **< WiFi antenna mode for receiving + */ + int32_t rx_ant_mode; + /* + **< Default antenna mode for receiving, it's ignored if rx_ant_mode is not WIFI_ANT_MODE_AUTO + */ + int32_t rx_ant_default; + /* + **< WiFi antenna mode for transmission, it can be set to WIFI_ANT_MODE_AUTO only if rx_ant_mode is set to WIFI_ANT_MODE_AUTO + */ + int32_t tx_ant_mode; + /* + **< 4bits Index (in antenna GPIO configuration) of enabled WIFI_ANT_MODE_ANT0 + */ + uint32_t enabled_ant0; + /* + **< 4bits Index (in antenna GPIO configuration) of enabled WIFI_ANT_MODE_ANT1 + */ + uint32_t enabled_ant1; +}; +#define WIFI_ANT_CONFIG__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_ant_config__descriptor) \ + , 0, 0, 0, 0, 0 } + + +struct WifiActionTxReq +{ + ProtobufCMessage base; + /* + **< WiFi interface to send request to + */ + int32_t ifx; + /* + **< 6bits Destination MAC address + */ + ProtobufCBinaryData dest_mac; + /* + **< Indicates no ack required + */ + protobuf_c_boolean no_ack; + /* + *TODO + *wifi_action_rx_cb_t rx_cb; **< Rx Callback to receive any response * + */ + /* + **< Length of the appended Data + */ + uint32_t data_len; + /* + **< note: variable length. Appended Data payload + */ + ProtobufCBinaryData data; +}; +#define WIFI_ACTION_TX_REQ__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_action_tx_req__descriptor) \ + , 0, {0,NULL}, 0, 0, {0,NULL} } + + +struct WifiFtmInitiatorCfg +{ + ProtobufCMessage base; + /* + **< 6bits MAC address of the FTM Responder + */ + ProtobufCBinaryData resp_mac; + /* + **< Primary channel of the FTM Responder + */ + uint32_t channel; + /* + **< No. of FTM frames requested in terms of 4 or 8 bursts (allowed values - 0(No pref), 16, 24, 32, 64) + */ + uint32_t frm_count; + /* + **< Requested time period between consecutive FTM bursts in 100's of milliseconds (0 - No pref) + */ + uint32_t burst_period; +}; +#define WIFI_FTM_INITIATOR_CFG__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_ftm_initiator_cfg__descriptor) \ + , {0,NULL}, 0, 0, 0 } + + +struct WifiEventStaScanDone +{ + ProtobufCMessage base; + /* + **< status of scanning APs: 0 — success, 1 - failure + */ + uint32_t status; + /* + **< number of scan results + */ + uint32_t number; + /* + **< scan sequence number, used for block scan + */ + uint32_t scan_id; +}; +#define WIFI_EVENT_STA_SCAN_DONE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_event_sta_scan_done__descriptor) \ + , 0, 0, 0 } + + +struct WifiEventStaConnected +{ + ProtobufCMessage base; + /* + **< 32bytes SSID of connected AP + */ + ProtobufCBinaryData ssid; + /* + **< SSID length of connected AP + */ + uint32_t ssid_len; + /* + **< 6bytes BSSID of connected AP + */ + ProtobufCBinaryData bssid; + /* + **< channel of connected AP + */ + uint32_t channel; + /* + **< authentication mode used by AP + */ + int32_t authmode; + /* + **< authentication id assigned by the connected AP + */ + int32_t aid; +}; +#define WIFI_EVENT_STA_CONNECTED__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_event_sta_connected__descriptor) \ + , {0,NULL}, 0, {0,NULL}, 0, 0, 0 } + + +struct WifiEventStaDisconnected +{ + ProtobufCMessage base; + /* + **< SSID of disconnected AP + */ + ProtobufCBinaryData ssid; + /* + **< SSID length of disconnected AP + */ + uint32_t ssid_len; + /* + **< BSSID of disconnected AP + */ + ProtobufCBinaryData bssid; + /* + **< reason of disconnection + */ + uint32_t reason; + /* + **< rssi of disconnection + */ + int32_t rssi; +}; +#define WIFI_EVENT_STA_DISCONNECTED__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_event_sta_disconnected__descriptor) \ + , {0,NULL}, 0, {0,NULL}, 0, 0 } + + +struct WifiEventStaAuthmodeChange +{ + ProtobufCMessage base; + /* + **< the old auth mode of AP + */ + int32_t old_mode; + /* + **< the new auth mode of AP + */ + int32_t new_mode; +}; +#define WIFI_EVENT_STA_AUTHMODE_CHANGE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_event_sta_authmode_change__descriptor) \ + , 0, 0 } + + +struct WifiEventStaWpsErPin +{ + ProtobufCMessage base; + /* + **< 8bytes PIN code of station in enrollee mode + */ + ProtobufCBinaryData pin_code; +}; +#define WIFI_EVENT_STA_WPS_ER_PIN__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_event_sta_wps_er_pin__descriptor) \ + , {0,NULL} } + + +struct ApCred +{ + ProtobufCMessage base; + /* + **< 32bytes SSID of AP + */ + ProtobufCBinaryData ssid; + /* + **< 64bytes Passphrase for the AP + */ + ProtobufCBinaryData passphrase; +}; +#define AP_CRED__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&ap_cred__descriptor) \ + , {0,NULL}, {0,NULL} } + + +struct WifiEventStaWpsErSuccess +{ + ProtobufCMessage base; + /* + **< Number of AP credentials received + */ + uint32_t ap_cred_cnt; + /* + **< All AP credentials received from WPS handshake + */ + size_t n_ap_creds; + ApCred **ap_creds; +}; +#define WIFI_EVENT_STA_WPS_ER_SUCCESS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_event_sta_wps_er_success__descriptor) \ + , 0, 0,NULL } + + +/* + ** Argument structure for WIFI_EVENT_AP_PROBEREQRECVED event + */ +struct WifiEventApProbeReqRx +{ + ProtobufCMessage base; + /* + **< Received probe request signal strength + */ + int32_t rssi; + /* + **< MAC address of the station which send probe request + */ + uint32_t mac; +}; +#define WIFI_EVENT_AP_PROBE_REQ_RX__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_event_ap_probe_req_rx__descriptor) \ + , 0, 0 } + + +/* + ** Argument structure for WIFI_EVENT_STA_BSS_RSSI_LOW event + */ +struct WifiEventBssRssiLow +{ + ProtobufCMessage base; + /* + **< RSSI value of bss + */ + int32_t rssi; +}; +#define WIFI_EVENT_BSS_RSSI_LOW__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_event_bss_rssi_low__descriptor) \ + , 0 } + + +struct WifiFtmReportEntry +{ + ProtobufCMessage base; + /* + * *< Dialog Token of the FTM frame + */ + uint32_t dlog_token; + /* + * *< RSSI of the FTM frame received + */ + int32_t rssi; + /* + * *< Round Trip Time in pSec with a peer + */ + uint32_t rtt; + /* + * TODO: uint32 is supported by proto? + */ + /* + * *< Time of departure of FTM frame from FTM Responder in pSec + */ + uint64_t t1; + /* + * *< Time of arrival of FTM frame at FTM Initiator in pSec + */ + uint64_t t2; + /* + * *< Time of departure of ACK from FTM Initiator in pSec + */ + uint64_t t3; + /* + * *< Time of arrival of ACK at FTM Responder in pSec + */ + uint64_t t4; +}; +#define WIFI_FTM_REPORT_ENTRY__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_ftm_report_entry__descriptor) \ + , 0, 0, 0, 0, 0, 0, 0 } + + +struct WifiEventFtmReport +{ + ProtobufCMessage base; + /* + * *< 6bytes MAC address of the FTM Peer + */ + ProtobufCBinaryData peer_mac; + /* + * *< Status of the FTM operation + */ + int32_t status; + /* + * *< Raw average Round-Trip-Time with peer in Nano-Seconds + */ + uint32_t rtt_raw; + /* + * *< Estimated Round-Trip-Time with peer in Nano-Seconds + */ + uint32_t rtt_est; + /* + * *< Estimated one-way distance in Centi-Meters + */ + uint32_t dist_est; + /* + * *< Note var len Pointer to FTM Report with multiple entries, should be freed after use + */ + size_t n_ftm_report_data; + WifiFtmReportEntry **ftm_report_data; + /* + * *< Number of entries in the FTM Report data + */ + uint32_t ftm_report_num_entries; +}; +#define WIFI_EVENT_FTM_REPORT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_event_ftm_report__descriptor) \ + , {0,NULL}, 0, 0, 0, 0, 0,NULL, 0 } + + +struct WifiEventActionTxStatus +{ + ProtobufCMessage base; + /* + **< WiFi interface to send request to + */ + int32_t ifx; + /* + **< Context to identify the request + */ + uint32_t context; + /* + **< 6bytes Destination MAC address + */ + ProtobufCBinaryData da; + /* + **< Status of the operation + */ + uint32_t status; +}; +#define WIFI_EVENT_ACTION_TX_STATUS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_event_action_tx_status__descriptor) \ + , 0, 0, {0,NULL}, 0 } + + +struct WifiEventRocDone +{ + ProtobufCMessage base; + /* + **< Context to identify the request + */ + uint32_t context; +}; +#define WIFI_EVENT_ROC_DONE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_event_roc_done__descriptor) \ + , 0 } + + +struct WifiEventApWpsRgPin +{ + ProtobufCMessage base; + /* + **< 8bytes PIN code of station in enrollee mode + */ + ProtobufCBinaryData pin_code; +}; +#define WIFI_EVENT_AP_WPS_RG_PIN__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_event_ap_wps_rg_pin__descriptor) \ + , {0,NULL} } + + +struct WifiEventApWpsRgFailReason +{ + ProtobufCMessage base; + /* + **< WPS failure reason wps_fail_reason_t + */ + int32_t reason; + /* + **< 6bytes Enrollee mac address + */ + ProtobufCBinaryData peer_macaddr; +}; +#define WIFI_EVENT_AP_WPS_RG_FAIL_REASON__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_event_ap_wps_rg_fail_reason__descriptor) \ + , 0, {0,NULL} } + + +struct WifiEventApWpsRgSuccess +{ + ProtobufCMessage base; + /* + **< 6bytes Enrollee mac address + */ + ProtobufCBinaryData peer_macaddr; +}; +#define WIFI_EVENT_AP_WPS_RG_SUCCESS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_event_ap_wps_rg_success__descriptor) \ + , {0,NULL} } + + +struct WifiProtocols +{ + ProtobufCMessage base; + /* + **< Represents 2.4 GHz protocol, support 802.11b or 802.11g or 802.11n or 802.11ax or LR mode + */ + uint32_t ghz_2g; + /* + **< Represents 5 GHz protocol, support 802.11a or 802.11n or 802.11ac or 802.11ax + */ + uint32_t ghz_5g; +}; +#define WIFI_PROTOCOLS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_protocols__descriptor) \ + , 0, 0 } + + +struct WifiBandwidths +{ + ProtobufCMessage base; + /* + * Represents 2.4 GHz bandwidth + */ + uint32_t ghz_2g; + /* + * Represents 5 GHz bandwidth + */ + uint32_t ghz_5g; +}; +#define WIFI_BANDWIDTHS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&wifi_bandwidths__descriptor) \ + , 0, 0 } + + +struct ConnectedSTAList +{ + ProtobufCMessage base; + ProtobufCBinaryData mac; + int32_t rssi; +}; +#define CONNECTED_STALIST__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&connected_stalist__descriptor) \ + , {0,NULL}, 0 } + + +/* + ** Req/Resp structure * + */ +struct RpcReqGetMacAddress +{ + ProtobufCMessage base; + int32_t mode; +}; +#define RPC__REQ__GET_MAC_ADDRESS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__get_mac_address__descriptor) \ + , 0 } + + +struct RpcRespGetMacAddress +{ + ProtobufCMessage base; + ProtobufCBinaryData mac; + int32_t resp; +}; +#define RPC__RESP__GET_MAC_ADDRESS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__get_mac_address__descriptor) \ + , {0,NULL}, 0 } + + +struct RpcReqGetMode +{ + ProtobufCMessage base; +}; +#define RPC__REQ__GET_MODE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__get_mode__descriptor) \ + } + + +struct RpcRespGetMode +{ + ProtobufCMessage base; + int32_t mode; + int32_t resp; +}; +#define RPC__RESP__GET_MODE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__get_mode__descriptor) \ + , 0, 0 } + + +struct RpcReqSetMode +{ + ProtobufCMessage base; + int32_t mode; +}; +#define RPC__REQ__SET_MODE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__set_mode__descriptor) \ + , 0 } + + +struct RpcRespSetMode +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__SET_MODE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__set_mode__descriptor) \ + , 0 } + + +struct RpcReqGetPs +{ + ProtobufCMessage base; +}; +#define RPC__REQ__GET_PS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__get_ps__descriptor) \ + } + + +struct RpcRespGetPs +{ + ProtobufCMessage base; + int32_t resp; + int32_t type; +}; +#define RPC__RESP__GET_PS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__get_ps__descriptor) \ + , 0, 0 } + + +struct RpcReqSetPs +{ + ProtobufCMessage base; + int32_t type; +}; +#define RPC__REQ__SET_PS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__set_ps__descriptor) \ + , 0 } + + +struct RpcRespSetPs +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__SET_PS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__set_ps__descriptor) \ + , 0 } + + +struct RpcReqSetMacAddress +{ + ProtobufCMessage base; + ProtobufCBinaryData mac; + int32_t mode; +}; +#define RPC__REQ__SET_MAC_ADDRESS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__set_mac_address__descriptor) \ + , {0,NULL}, 0 } + + +struct RpcRespSetMacAddress +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__SET_MAC_ADDRESS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__set_mac_address__descriptor) \ + , 0 } + + +struct RpcReqOTABegin +{ + ProtobufCMessage base; +}; +#define RPC__REQ__OTABEGIN__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__otabegin__descriptor) \ + } + + +struct RpcRespOTABegin +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__OTABEGIN__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__otabegin__descriptor) \ + , 0 } + + +struct RpcReqOTAWrite +{ + ProtobufCMessage base; + ProtobufCBinaryData ota_data; +}; +#define RPC__REQ__OTAWRITE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__otawrite__descriptor) \ + , {0,NULL} } + + +struct RpcRespOTAWrite +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__OTAWRITE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__otawrite__descriptor) \ + , 0 } + + +struct RpcReqOTAEnd +{ + ProtobufCMessage base; +}; +#define RPC__REQ__OTAEND__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__otaend__descriptor) \ + } + + +struct RpcRespOTAEnd +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__OTAEND__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__otaend__descriptor) \ + , 0 } + + +struct RpcReqWifiSetMaxTxPower +{ + ProtobufCMessage base; + int32_t power; +}; +#define RPC__REQ__WIFI_SET_MAX_TX_POWER__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_max_tx_power__descriptor) \ + , 0 } + + +struct RpcRespWifiSetMaxTxPower +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_SET_MAX_TX_POWER__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_max_tx_power__descriptor) \ + , 0 } + + +struct RpcReqWifiGetMaxTxPower +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_GET_MAX_TX_POWER__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_max_tx_power__descriptor) \ + } + + +struct RpcRespWifiGetMaxTxPower +{ + ProtobufCMessage base; + int32_t power; + int32_t resp; +}; +#define RPC__RESP__WIFI_GET_MAX_TX_POWER__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_max_tx_power__descriptor) \ + , 0, 0 } + + +struct RpcReqConfigHeartbeat +{ + ProtobufCMessage base; + protobuf_c_boolean enable; + int32_t duration; +}; +#define RPC__REQ__CONFIG_HEARTBEAT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__config_heartbeat__descriptor) \ + , 0, 0 } + + +struct RpcRespConfigHeartbeat +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__CONFIG_HEARTBEAT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__config_heartbeat__descriptor) \ + , 0 } + + +struct RpcReqWifiInit +{ + ProtobufCMessage base; + WifiInitConfig *cfg; +}; +#define RPC__REQ__WIFI_INIT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_init__descriptor) \ + , NULL } + + +struct RpcRespWifiInit +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_INIT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_init__descriptor) \ + , 0 } + + +struct RpcReqWifiDeinit +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_DEINIT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_deinit__descriptor) \ + } + + +struct RpcRespWifiDeinit +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_DEINIT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_deinit__descriptor) \ + , 0 } + + +struct RpcReqWifiSetConfig +{ + ProtobufCMessage base; + int32_t iface; + WifiConfig *cfg; +}; +#define RPC__REQ__WIFI_SET_CONFIG__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_config__descriptor) \ + , 0, NULL } + + +struct RpcRespWifiSetConfig +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_SET_CONFIG__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_config__descriptor) \ + , 0 } + + +struct RpcReqWifiGetConfig +{ + ProtobufCMessage base; + int32_t iface; +}; +#define RPC__REQ__WIFI_GET_CONFIG__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_config__descriptor) \ + , 0 } + + +struct RpcRespWifiGetConfig +{ + ProtobufCMessage base; + int32_t resp; + int32_t iface; + WifiConfig *cfg; +}; +#define RPC__RESP__WIFI_GET_CONFIG__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_config__descriptor) \ + , 0, 0, NULL } + + +struct RpcReqWifiConnect +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_CONNECT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_connect__descriptor) \ + } + + +struct RpcRespWifiConnect +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_CONNECT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_connect__descriptor) \ + , 0 } + + +struct RpcReqWifiDisconnect +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_DISCONNECT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_disconnect__descriptor) \ + } + + +struct RpcRespWifiDisconnect +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_DISCONNECT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_disconnect__descriptor) \ + , 0 } + + +struct RpcReqWifiStart +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_START__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_start__descriptor) \ + } + + +struct RpcRespWifiStart +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_START__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_start__descriptor) \ + , 0 } + + +struct RpcReqWifiStop +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_STOP__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_stop__descriptor) \ + } + + +struct RpcRespWifiStop +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_STOP__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_stop__descriptor) \ + , 0 } + + +struct RpcReqWifiScanStart +{ + ProtobufCMessage base; + WifiScanConfig *config; + protobuf_c_boolean block; + int32_t config_set; +}; +#define RPC__REQ__WIFI_SCAN_START__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_scan_start__descriptor) \ + , NULL, 0, 0 } + + +struct RpcRespWifiScanStart +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_SCAN_START__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_scan_start__descriptor) \ + , 0 } + + +struct RpcReqWifiScanStop +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_SCAN_STOP__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_scan_stop__descriptor) \ + } + + +struct RpcRespWifiScanStop +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_SCAN_STOP__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_scan_stop__descriptor) \ + , 0 } + + +struct RpcReqWifiScanGetApNum +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_SCAN_GET_AP_NUM__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_scan_get_ap_num__descriptor) \ + } + + +struct RpcRespWifiScanGetApNum +{ + ProtobufCMessage base; + int32_t resp; + int32_t number; +}; +#define RPC__RESP__WIFI_SCAN_GET_AP_NUM__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_scan_get_ap_num__descriptor) \ + , 0, 0 } + + +struct RpcReqWifiScanGetApRecords +{ + ProtobufCMessage base; + int32_t number; +}; +#define RPC__REQ__WIFI_SCAN_GET_AP_RECORDS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_scan_get_ap_records__descriptor) \ + , 0 } + + +struct RpcRespWifiScanGetApRecords +{ + ProtobufCMessage base; + int32_t resp; + int32_t number; + size_t n_ap_records; + WifiApRecord **ap_records; +}; +#define RPC__RESP__WIFI_SCAN_GET_AP_RECORDS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_scan_get_ap_records__descriptor) \ + , 0, 0, 0,NULL } + + +struct RpcReqWifiScanGetApRecord +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_SCAN_GET_AP_RECORD__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_scan_get_ap_record__descriptor) \ + } + + +struct RpcRespWifiScanGetApRecord +{ + ProtobufCMessage base; + int32_t resp; + WifiApRecord *ap_record; +}; +#define RPC__RESP__WIFI_SCAN_GET_AP_RECORD__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_scan_get_ap_record__descriptor) \ + , 0, NULL } + + +struct RpcReqWifiClearApList +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_CLEAR_AP_LIST__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_clear_ap_list__descriptor) \ + } + + +struct RpcRespWifiClearApList +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_CLEAR_AP_LIST__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_clear_ap_list__descriptor) \ + , 0 } + + +struct RpcReqWifiRestore +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_RESTORE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_restore__descriptor) \ + } + + +struct RpcRespWifiRestore +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_RESTORE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_restore__descriptor) \ + , 0 } + + +struct RpcReqWifiClearFastConnect +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_CLEAR_FAST_CONNECT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_clear_fast_connect__descriptor) \ + } + + +struct RpcRespWifiClearFastConnect +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_CLEAR_FAST_CONNECT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_clear_fast_connect__descriptor) \ + , 0 } + + +struct RpcReqWifiDeauthSta +{ + ProtobufCMessage base; + int32_t aid; +}; +#define RPC__REQ__WIFI_DEAUTH_STA__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_deauth_sta__descriptor) \ + , 0 } + + +struct RpcRespWifiDeauthSta +{ + ProtobufCMessage base; + int32_t resp; + int32_t aid; +}; +#define RPC__RESP__WIFI_DEAUTH_STA__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_deauth_sta__descriptor) \ + , 0, 0 } + + +struct RpcReqWifiStaGetApInfo +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_STA_GET_AP_INFO__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_sta_get_ap_info__descriptor) \ + } + + +struct RpcRespWifiStaGetApInfo +{ + ProtobufCMessage base; + int32_t resp; + WifiApRecord *ap_record; +}; +#define RPC__RESP__WIFI_STA_GET_AP_INFO__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_sta_get_ap_info__descriptor) \ + , 0, NULL } + + +struct RpcReqWifiSetProtocol +{ + ProtobufCMessage base; + int32_t ifx; + int32_t protocol_bitmap; +}; +#define RPC__REQ__WIFI_SET_PROTOCOL__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_protocol__descriptor) \ + , 0, 0 } + + +struct RpcRespWifiSetProtocol +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_SET_PROTOCOL__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_protocol__descriptor) \ + , 0 } + + +struct RpcReqWifiGetProtocol +{ + ProtobufCMessage base; + int32_t ifx; +}; +#define RPC__REQ__WIFI_GET_PROTOCOL__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_protocol__descriptor) \ + , 0 } + + +struct RpcRespWifiGetProtocol +{ + ProtobufCMessage base; + int32_t resp; + int32_t protocol_bitmap; +}; +#define RPC__RESP__WIFI_GET_PROTOCOL__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_protocol__descriptor) \ + , 0, 0 } + + +struct RpcReqWifiSetBandwidth +{ + ProtobufCMessage base; + int32_t ifx; + int32_t bw; +}; +#define RPC__REQ__WIFI_SET_BANDWIDTH__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_bandwidth__descriptor) \ + , 0, 0 } + + +struct RpcRespWifiSetBandwidth +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_SET_BANDWIDTH__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_bandwidth__descriptor) \ + , 0 } + + +struct RpcReqWifiGetBandwidth +{ + ProtobufCMessage base; + int32_t ifx; +}; +#define RPC__REQ__WIFI_GET_BANDWIDTH__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_bandwidth__descriptor) \ + , 0 } + + +struct RpcRespWifiGetBandwidth +{ + ProtobufCMessage base; + int32_t resp; + int32_t bw; +}; +#define RPC__RESP__WIFI_GET_BANDWIDTH__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_bandwidth__descriptor) \ + , 0, 0 } + + +struct RpcReqWifiSetChannel +{ + ProtobufCMessage base; + int32_t primary; + int32_t second; +}; +#define RPC__REQ__WIFI_SET_CHANNEL__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_channel__descriptor) \ + , 0, 0 } + + +struct RpcRespWifiSetChannel +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_SET_CHANNEL__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_channel__descriptor) \ + , 0 } + + +struct RpcReqWifiGetChannel +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_GET_CHANNEL__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_channel__descriptor) \ + } + + +struct RpcRespWifiGetChannel +{ + ProtobufCMessage base; + int32_t resp; + int32_t primary; + int32_t second; +}; +#define RPC__RESP__WIFI_GET_CHANNEL__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_channel__descriptor) \ + , 0, 0, 0 } + + +struct RpcReqWifiSetStorage +{ + ProtobufCMessage base; + int32_t storage; +}; +#define RPC__REQ__WIFI_SET_STORAGE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_storage__descriptor) \ + , 0 } + + +struct RpcRespWifiSetStorage +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_SET_STORAGE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_storage__descriptor) \ + , 0 } + + +struct RpcReqWifiSetCountryCode +{ + ProtobufCMessage base; + ProtobufCBinaryData country; + protobuf_c_boolean ieee80211d_enabled; +}; +#define RPC__REQ__WIFI_SET_COUNTRY_CODE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_country_code__descriptor) \ + , {0,NULL}, 0 } + + +struct RpcRespWifiSetCountryCode +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_SET_COUNTRY_CODE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_country_code__descriptor) \ + , 0 } + + +struct RpcReqWifiGetCountryCode +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_GET_COUNTRY_CODE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_country_code__descriptor) \ + } + + +struct RpcRespWifiGetCountryCode +{ + ProtobufCMessage base; + int32_t resp; + ProtobufCBinaryData country; +}; +#define RPC__RESP__WIFI_GET_COUNTRY_CODE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_country_code__descriptor) \ + , 0, {0,NULL} } + + +struct RpcReqWifiSetCountry +{ + ProtobufCMessage base; + WifiCountry *country; +}; +#define RPC__REQ__WIFI_SET_COUNTRY__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_country__descriptor) \ + , NULL } + + +struct RpcRespWifiSetCountry +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_SET_COUNTRY__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_country__descriptor) \ + , 0 } + + +struct RpcReqWifiGetCountry +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_GET_COUNTRY__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_country__descriptor) \ + } + + +struct RpcRespWifiGetCountry +{ + ProtobufCMessage base; + int32_t resp; + WifiCountry *country; +}; +#define RPC__RESP__WIFI_GET_COUNTRY__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_country__descriptor) \ + , 0, NULL } + + +struct RpcReqWifiApGetStaList +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_AP_GET_STA_LIST__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_ap_get_sta_list__descriptor) \ + } + + +struct RpcRespWifiApGetStaList +{ + ProtobufCMessage base; + int32_t resp; + WifiStaList *sta_list; +}; +#define RPC__RESP__WIFI_AP_GET_STA_LIST__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_ap_get_sta_list__descriptor) \ + , 0, NULL } + + +struct RpcReqWifiApGetStaAid +{ + ProtobufCMessage base; + ProtobufCBinaryData mac; +}; +#define RPC__REQ__WIFI_AP_GET_STA_AID__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_ap_get_sta_aid__descriptor) \ + , {0,NULL} } + + +struct RpcReqWifiStaGetNegotiatedPhymode +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_STA_GET_NEGOTIATED_PHYMODE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_sta_get_negotiated_phymode__descriptor) \ + } + + +struct RpcRespWifiStaGetNegotiatedPhymode +{ + ProtobufCMessage base; + int32_t resp; + uint32_t phymode; +}; +#define RPC__RESP__WIFI_STA_GET_NEGOTIATED_PHYMODE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_sta_get_negotiated_phymode__descriptor) \ + , 0, 0 } + + +struct RpcRespWifiApGetStaAid +{ + ProtobufCMessage base; + int32_t resp; + uint32_t aid; +}; +#define RPC__RESP__WIFI_AP_GET_STA_AID__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_ap_get_sta_aid__descriptor) \ + , 0, 0 } + + +struct RpcReqWifiStaGetRssi +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_STA_GET_RSSI__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_sta_get_rssi__descriptor) \ + } + + +struct RpcRespWifiStaGetRssi +{ + ProtobufCMessage base; + int32_t resp; + int32_t rssi; +}; +#define RPC__RESP__WIFI_STA_GET_RSSI__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_sta_get_rssi__descriptor) \ + , 0, 0 } + + +struct RpcReqWifiStaGetAid +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_STA_GET_AID__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_sta_get_aid__descriptor) \ + } + + +struct RpcRespWifiStaGetAid +{ + ProtobufCMessage base; + int32_t resp; + uint32_t aid; +}; +#define RPC__RESP__WIFI_STA_GET_AID__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_sta_get_aid__descriptor) \ + , 0, 0 } + + +struct RpcReqWifiSetProtocols +{ + ProtobufCMessage base; + int32_t ifx; + WifiProtocols *protocols; +}; +#define RPC__REQ__WIFI_SET_PROTOCOLS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_protocols__descriptor) \ + , 0, NULL } + + +struct RpcRespWifiSetProtocols +{ + ProtobufCMessage base; + int32_t resp; + uint32_t ifx; +}; +#define RPC__RESP__WIFI_SET_PROTOCOLS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_protocols__descriptor) \ + , 0, 0 } + + +struct RpcReqWifiGetProtocols +{ + ProtobufCMessage base; + int32_t ifx; +}; +#define RPC__REQ__WIFI_GET_PROTOCOLS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_protocols__descriptor) \ + , 0 } + + +struct RpcRespWifiGetProtocols +{ + ProtobufCMessage base; + int32_t resp; + int32_t ifx; + WifiProtocols *protocols; +}; +#define RPC__RESP__WIFI_GET_PROTOCOLS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_protocols__descriptor) \ + , 0, 0, NULL } + + +struct RpcReqWifiSetBandwidths +{ + ProtobufCMessage base; + int32_t ifx; + WifiBandwidths *bandwidths; +}; +#define RPC__REQ__WIFI_SET_BANDWIDTHS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_bandwidths__descriptor) \ + , 0, NULL } + + +struct RpcRespWifiSetBandwidths +{ + ProtobufCMessage base; + int32_t resp; + int32_t ifx; +}; +#define RPC__RESP__WIFI_SET_BANDWIDTHS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_bandwidths__descriptor) \ + , 0, 0 } + + +struct RpcReqWifiGetBandwidths +{ + ProtobufCMessage base; + int32_t ifx; +}; +#define RPC__REQ__WIFI_GET_BANDWIDTHS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_bandwidths__descriptor) \ + , 0 } + + +struct RpcRespWifiGetBandwidths +{ + ProtobufCMessage base; + int32_t resp; + int32_t ifx; + WifiBandwidths *bandwidths; +}; +#define RPC__RESP__WIFI_GET_BANDWIDTHS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_bandwidths__descriptor) \ + , 0, 0, NULL } + + +struct RpcReqWifiSetBand +{ + ProtobufCMessage base; + uint32_t band; +}; +#define RPC__REQ__WIFI_SET_BAND__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_band__descriptor) \ + , 0 } + + +struct RpcRespWifiSetBand +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_SET_BAND__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_band__descriptor) \ + , 0 } + + +struct RpcReqWifiGetBand +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_GET_BAND__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_band__descriptor) \ + } + + +struct RpcRespWifiGetBand +{ + ProtobufCMessage base; + int32_t resp; + uint32_t band; +}; +#define RPC__RESP__WIFI_GET_BAND__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_band__descriptor) \ + , 0, 0 } + + +struct RpcReqWifiSetBandMode +{ + ProtobufCMessage base; + uint32_t bandmode; +}; +#define RPC__REQ__WIFI_SET_BAND_MODE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_band_mode__descriptor) \ + , 0 } + + +struct RpcRespWifiSetBandMode +{ + ProtobufCMessage base; + int32_t resp; +}; +#define RPC__RESP__WIFI_SET_BAND_MODE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_band_mode__descriptor) \ + , 0 } + + +struct RpcReqWifiGetBandMode +{ + ProtobufCMessage base; +}; +#define RPC__REQ__WIFI_GET_BAND_MODE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_band_mode__descriptor) \ + } + + +struct RpcRespWifiGetBandMode +{ + ProtobufCMessage base; + int32_t resp; + uint32_t bandmode; +}; +#define RPC__RESP__WIFI_GET_BAND_MODE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_band_mode__descriptor) \ + , 0, 0 } + + +struct RpcReqGetCoprocessorFwVersion +{ + ProtobufCMessage base; +}; +#define RPC__REQ__GET_COPROCESSOR_FW_VERSION__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__req__get_coprocessor_fw_version__descriptor) \ + } + + +struct RpcRespGetCoprocessorFwVersion +{ + ProtobufCMessage base; + int32_t resp; + uint32_t major1; + uint32_t minor1; + uint32_t patch1; +}; +#define RPC__RESP__GET_COPROCESSOR_FW_VERSION__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__get_coprocessor_fw_version__descriptor) \ + , 0, 0, 0, 0 } + + +struct RpcEventWifiEventNoArgs +{ + ProtobufCMessage base; + int32_t resp; + int32_t event_id; +}; +#define RPC__EVENT__WIFI_EVENT_NO_ARGS__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__event__wifi_event_no_args__descriptor) \ + , 0, 0 } + + +struct RpcEventESPInit +{ + ProtobufCMessage base; + ProtobufCBinaryData init_data; +}; +#define RPC__EVENT__ESPINIT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__event__espinit__descriptor) \ + , {0,NULL} } + + +struct RpcEventHeartbeat +{ + ProtobufCMessage base; + int32_t hb_num; +}; +#define RPC__EVENT__HEARTBEAT__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__event__heartbeat__descriptor) \ + , 0 } + + +struct RpcEventAPStaDisconnected +{ + ProtobufCMessage base; + int32_t resp; + ProtobufCBinaryData mac; + uint32_t aid; + protobuf_c_boolean is_mesh_child; + uint32_t reason; +}; +#define RPC__EVENT__AP__STA_DISCONNECTED__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__event__ap__sta_disconnected__descriptor) \ + , 0, {0,NULL}, 0, 0, 0 } + + +struct RpcEventAPStaConnected +{ + ProtobufCMessage base; + int32_t resp; + ProtobufCBinaryData mac; + uint32_t aid; + protobuf_c_boolean is_mesh_child; +}; +#define RPC__EVENT__AP__STA_CONNECTED__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__event__ap__sta_connected__descriptor) \ + , 0, {0,NULL}, 0, 0 } + + +struct RpcEventStaScanDone +{ + ProtobufCMessage base; + int32_t resp; + WifiEventStaScanDone *scan_done; +}; +#define RPC__EVENT__STA_SCAN_DONE__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__event__sta_scan_done__descriptor) \ + , 0, NULL } + + +struct RpcEventStaConnected +{ + ProtobufCMessage base; + int32_t resp; + WifiEventStaConnected *sta_connected; +}; +#define RPC__EVENT__STA_CONNECTED__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__event__sta_connected__descriptor) \ + , 0, NULL } + + +struct RpcEventStaDisconnected +{ + ProtobufCMessage base; + int32_t resp; + WifiEventStaDisconnected *sta_disconnected; +}; +#define RPC__EVENT__STA_DISCONNECTED__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__event__sta_disconnected__descriptor) \ + , 0, NULL } + + +typedef enum { + RPC__PAYLOAD__NOT_SET = 0, + RPC__PAYLOAD_REQ_GET_MAC_ADDRESS = 257, + RPC__PAYLOAD_REQ_SET_MAC_ADDRESS = 258, + RPC__PAYLOAD_REQ_GET_WIFI_MODE = 259, + RPC__PAYLOAD_REQ_SET_WIFI_MODE = 260, + RPC__PAYLOAD_REQ_WIFI_SET_PS = 270, + RPC__PAYLOAD_REQ_WIFI_GET_PS = 271, + RPC__PAYLOAD_REQ_OTA_BEGIN = 272, + RPC__PAYLOAD_REQ_OTA_WRITE = 273, + RPC__PAYLOAD_REQ_OTA_END = 274, + RPC__PAYLOAD_REQ_SET_WIFI_MAX_TX_POWER = 275, + RPC__PAYLOAD_REQ_GET_WIFI_MAX_TX_POWER = 276, + RPC__PAYLOAD_REQ_CONFIG_HEARTBEAT = 277, + RPC__PAYLOAD_REQ_WIFI_INIT = 278, + RPC__PAYLOAD_REQ_WIFI_DEINIT = 279, + RPC__PAYLOAD_REQ_WIFI_START = 280, + RPC__PAYLOAD_REQ_WIFI_STOP = 281, + RPC__PAYLOAD_REQ_WIFI_CONNECT = 282, + RPC__PAYLOAD_REQ_WIFI_DISCONNECT = 283, + RPC__PAYLOAD_REQ_WIFI_SET_CONFIG = 284, + RPC__PAYLOAD_REQ_WIFI_GET_CONFIG = 285, + RPC__PAYLOAD_REQ_WIFI_SCAN_START = 286, + RPC__PAYLOAD_REQ_WIFI_SCAN_STOP = 287, + RPC__PAYLOAD_REQ_WIFI_SCAN_GET_AP_NUM = 288, + RPC__PAYLOAD_REQ_WIFI_SCAN_GET_AP_RECORDS = 289, + RPC__PAYLOAD_REQ_WIFI_CLEAR_AP_LIST = 290, + RPC__PAYLOAD_REQ_WIFI_RESTORE = 291, + RPC__PAYLOAD_REQ_WIFI_CLEAR_FAST_CONNECT = 292, + RPC__PAYLOAD_REQ_WIFI_DEAUTH_STA = 293, + RPC__PAYLOAD_REQ_WIFI_STA_GET_AP_INFO = 294, + RPC__PAYLOAD_REQ_WIFI_SET_PROTOCOL = 297, + RPC__PAYLOAD_REQ_WIFI_GET_PROTOCOL = 298, + RPC__PAYLOAD_REQ_WIFI_SET_BANDWIDTH = 299, + RPC__PAYLOAD_REQ_WIFI_GET_BANDWIDTH = 300, + RPC__PAYLOAD_REQ_WIFI_SET_CHANNEL = 301, + RPC__PAYLOAD_REQ_WIFI_GET_CHANNEL = 302, + RPC__PAYLOAD_REQ_WIFI_SET_COUNTRY = 303, + RPC__PAYLOAD_REQ_WIFI_GET_COUNTRY = 304, + RPC__PAYLOAD_REQ_WIFI_AP_GET_STA_LIST = 311, + RPC__PAYLOAD_REQ_WIFI_AP_GET_STA_AID = 312, + RPC__PAYLOAD_REQ_WIFI_SET_STORAGE = 313, + RPC__PAYLOAD_REQ_WIFI_SET_COUNTRY_CODE = 334, + RPC__PAYLOAD_REQ_WIFI_GET_COUNTRY_CODE = 335, + RPC__PAYLOAD_REQ_WIFI_STA_GET_AID = 338, + RPC__PAYLOAD_REQ_WIFI_STA_GET_NEGOTIATED_PHYMODE = 339, + RPC__PAYLOAD_REQ_WIFI_STA_GET_RSSI = 341, + RPC__PAYLOAD_REQ_WIFI_SET_PROTOCOLS = 342, + RPC__PAYLOAD_REQ_WIFI_GET_PROTOCOLS = 343, + RPC__PAYLOAD_REQ_WIFI_SET_BANDWIDTHS = 344, + RPC__PAYLOAD_REQ_WIFI_GET_BANDWIDTHS = 345, + RPC__PAYLOAD_REQ_WIFI_SET_BAND = 346, + RPC__PAYLOAD_REQ_WIFI_GET_BAND = 347, + RPC__PAYLOAD_REQ_WIFI_SET_BANDMODE = 348, + RPC__PAYLOAD_REQ_WIFI_GET_BANDMODE = 349, + RPC__PAYLOAD_REQ_GET_COPROCESSOR_FWVERSION = 350, + RPC__PAYLOAD_REQ_WIFI_SCAN_GET_AP_RECORD = 351, + RPC__PAYLOAD_RESP_GET_MAC_ADDRESS = 513, + RPC__PAYLOAD_RESP_SET_MAC_ADDRESS = 514, + RPC__PAYLOAD_RESP_GET_WIFI_MODE = 515, + RPC__PAYLOAD_RESP_SET_WIFI_MODE = 516, + RPC__PAYLOAD_RESP_WIFI_SET_PS = 526, + RPC__PAYLOAD_RESP_WIFI_GET_PS = 527, + RPC__PAYLOAD_RESP_OTA_BEGIN = 528, + RPC__PAYLOAD_RESP_OTA_WRITE = 529, + RPC__PAYLOAD_RESP_OTA_END = 530, + RPC__PAYLOAD_RESP_SET_WIFI_MAX_TX_POWER = 531, + RPC__PAYLOAD_RESP_GET_WIFI_MAX_TX_POWER = 532, + RPC__PAYLOAD_RESP_CONFIG_HEARTBEAT = 533, + RPC__PAYLOAD_RESP_WIFI_INIT = 534, + RPC__PAYLOAD_RESP_WIFI_DEINIT = 535, + RPC__PAYLOAD_RESP_WIFI_START = 536, + RPC__PAYLOAD_RESP_WIFI_STOP = 537, + RPC__PAYLOAD_RESP_WIFI_CONNECT = 538, + RPC__PAYLOAD_RESP_WIFI_DISCONNECT = 539, + RPC__PAYLOAD_RESP_WIFI_SET_CONFIG = 540, + RPC__PAYLOAD_RESP_WIFI_GET_CONFIG = 541, + RPC__PAYLOAD_RESP_WIFI_SCAN_START = 542, + RPC__PAYLOAD_RESP_WIFI_SCAN_STOP = 543, + RPC__PAYLOAD_RESP_WIFI_SCAN_GET_AP_NUM = 544, + RPC__PAYLOAD_RESP_WIFI_SCAN_GET_AP_RECORDS = 545, + RPC__PAYLOAD_RESP_WIFI_CLEAR_AP_LIST = 546, + RPC__PAYLOAD_RESP_WIFI_RESTORE = 547, + RPC__PAYLOAD_RESP_WIFI_CLEAR_FAST_CONNECT = 548, + RPC__PAYLOAD_RESP_WIFI_DEAUTH_STA = 549, + RPC__PAYLOAD_RESP_WIFI_STA_GET_AP_INFO = 550, + RPC__PAYLOAD_RESP_WIFI_SET_PROTOCOL = 553, + RPC__PAYLOAD_RESP_WIFI_GET_PROTOCOL = 554, + RPC__PAYLOAD_RESP_WIFI_SET_BANDWIDTH = 555, + RPC__PAYLOAD_RESP_WIFI_GET_BANDWIDTH = 556, + RPC__PAYLOAD_RESP_WIFI_SET_CHANNEL = 557, + RPC__PAYLOAD_RESP_WIFI_GET_CHANNEL = 558, + RPC__PAYLOAD_RESP_WIFI_SET_COUNTRY = 559, + RPC__PAYLOAD_RESP_WIFI_GET_COUNTRY = 560, + RPC__PAYLOAD_RESP_WIFI_AP_GET_STA_LIST = 567, + RPC__PAYLOAD_RESP_WIFI_AP_GET_STA_AID = 568, + RPC__PAYLOAD_RESP_WIFI_SET_STORAGE = 569, + RPC__PAYLOAD_RESP_WIFI_SET_COUNTRY_CODE = 590, + RPC__PAYLOAD_RESP_WIFI_GET_COUNTRY_CODE = 591, + RPC__PAYLOAD_RESP_WIFI_STA_GET_AID = 594, + RPC__PAYLOAD_RESP_WIFI_STA_GET_NEGOTIATED_PHYMODE = 595, + RPC__PAYLOAD_RESP_WIFI_STA_GET_RSSI = 597, + RPC__PAYLOAD_RESP_WIFI_SET_PROTOCOLS = 598, + RPC__PAYLOAD_RESP_WIFI_GET_PROTOCOLS = 599, + RPC__PAYLOAD_RESP_WIFI_SET_BANDWIDTHS = 600, + RPC__PAYLOAD_RESP_WIFI_GET_BANDWIDTHS = 601, + RPC__PAYLOAD_RESP_WIFI_SET_BAND = 602, + RPC__PAYLOAD_RESP_WIFI_GET_BAND = 603, + RPC__PAYLOAD_RESP_WIFI_SET_BANDMODE = 604, + RPC__PAYLOAD_RESP_WIFI_GET_BANDMODE = 605, + RPC__PAYLOAD_RESP_GET_COPROCESSOR_FWVERSION = 606, + RPC__PAYLOAD_RESP_WIFI_SCAN_GET_AP_RECORD = 607, + RPC__PAYLOAD_EVENT_ESP_INIT = 769, + RPC__PAYLOAD_EVENT_HEARTBEAT = 770, + RPC__PAYLOAD_EVENT_AP_STA_CONNECTED = 771, + RPC__PAYLOAD_EVENT_AP_STA_DISCONNECTED = 772, + RPC__PAYLOAD_EVENT_WIFI_EVENT_NO_ARGS = 773, + RPC__PAYLOAD_EVENT_STA_SCAN_DONE = 774, + RPC__PAYLOAD_EVENT_STA_CONNECTED = 775, + RPC__PAYLOAD_EVENT_STA_DISCONNECTED = 776 + PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RPC__PAYLOAD__CASE) +} Rpc__PayloadCase; + +struct Rpc +{ + ProtobufCMessage base; + /* + * msg_type could be req, resp or Event + */ + RpcType msg_type; + /* + * msg id + */ + RpcId msg_id; + /* + * UID of message + */ + uint32_t uid; + Rpc__PayloadCase payload_case; + union { + /* + ** Requests * + */ + RpcReqGetMacAddress *req_get_mac_address; + RpcReqSetMacAddress *req_set_mac_address; + RpcReqGetMode *req_get_wifi_mode; + RpcReqSetMode *req_set_wifi_mode; + RpcReqSetPs *req_wifi_set_ps; + RpcReqGetPs *req_wifi_get_ps; + RpcReqOTABegin *req_ota_begin; + RpcReqOTAWrite *req_ota_write; + RpcReqOTAEnd *req_ota_end; + RpcReqWifiSetMaxTxPower *req_set_wifi_max_tx_power; + RpcReqWifiGetMaxTxPower *req_get_wifi_max_tx_power; + RpcReqConfigHeartbeat *req_config_heartbeat; + RpcReqWifiInit *req_wifi_init; + RpcReqWifiDeinit *req_wifi_deinit; + RpcReqWifiStart *req_wifi_start; + RpcReqWifiStop *req_wifi_stop; + RpcReqWifiConnect *req_wifi_connect; + RpcReqWifiDisconnect *req_wifi_disconnect; + RpcReqWifiSetConfig *req_wifi_set_config; + RpcReqWifiGetConfig *req_wifi_get_config; + RpcReqWifiScanStart *req_wifi_scan_start; + RpcReqWifiScanStop *req_wifi_scan_stop; + RpcReqWifiScanGetApNum *req_wifi_scan_get_ap_num; + RpcReqWifiScanGetApRecords *req_wifi_scan_get_ap_records; + RpcReqWifiClearApList *req_wifi_clear_ap_list; + RpcReqWifiRestore *req_wifi_restore; + RpcReqWifiClearFastConnect *req_wifi_clear_fast_connect; + RpcReqWifiDeauthSta *req_wifi_deauth_sta; + RpcReqWifiStaGetApInfo *req_wifi_sta_get_ap_info; + RpcReqWifiSetProtocol *req_wifi_set_protocol; + RpcReqWifiGetProtocol *req_wifi_get_protocol; + RpcReqWifiSetBandwidth *req_wifi_set_bandwidth; + RpcReqWifiGetBandwidth *req_wifi_get_bandwidth; + RpcReqWifiSetChannel *req_wifi_set_channel; + RpcReqWifiGetChannel *req_wifi_get_channel; + RpcReqWifiSetCountry *req_wifi_set_country; + RpcReqWifiGetCountry *req_wifi_get_country; + RpcReqWifiApGetStaList *req_wifi_ap_get_sta_list; + RpcReqWifiApGetStaAid *req_wifi_ap_get_sta_aid; + RpcReqWifiSetStorage *req_wifi_set_storage; + RpcReqWifiSetCountryCode *req_wifi_set_country_code; + RpcReqWifiGetCountryCode *req_wifi_get_country_code; + RpcReqWifiStaGetAid *req_wifi_sta_get_aid; + RpcReqWifiStaGetNegotiatedPhymode *req_wifi_sta_get_negotiated_phymode; + RpcReqWifiStaGetRssi *req_wifi_sta_get_rssi; + RpcReqWifiSetProtocols *req_wifi_set_protocols; + RpcReqWifiGetProtocols *req_wifi_get_protocols; + RpcReqWifiSetBandwidths *req_wifi_set_bandwidths; + RpcReqWifiGetBandwidths *req_wifi_get_bandwidths; + RpcReqWifiSetBand *req_wifi_set_band; + RpcReqWifiGetBand *req_wifi_get_band; + RpcReqWifiSetBandMode *req_wifi_set_bandmode; + RpcReqWifiGetBandMode *req_wifi_get_bandmode; + RpcReqGetCoprocessorFwVersion *req_get_coprocessor_fwversion; + RpcReqWifiScanGetApRecord *req_wifi_scan_get_ap_record; + /* + ** Responses * + */ + RpcRespGetMacAddress *resp_get_mac_address; + RpcRespSetMacAddress *resp_set_mac_address; + RpcRespGetMode *resp_get_wifi_mode; + RpcRespSetMode *resp_set_wifi_mode; + RpcRespSetPs *resp_wifi_set_ps; + RpcRespGetPs *resp_wifi_get_ps; + RpcRespOTABegin *resp_ota_begin; + RpcRespOTAWrite *resp_ota_write; + RpcRespOTAEnd *resp_ota_end; + RpcRespWifiSetMaxTxPower *resp_set_wifi_max_tx_power; + RpcRespWifiGetMaxTxPower *resp_get_wifi_max_tx_power; + RpcRespConfigHeartbeat *resp_config_heartbeat; + RpcRespWifiInit *resp_wifi_init; + RpcRespWifiDeinit *resp_wifi_deinit; + RpcRespWifiStart *resp_wifi_start; + RpcRespWifiStop *resp_wifi_stop; + RpcRespWifiConnect *resp_wifi_connect; + RpcRespWifiDisconnect *resp_wifi_disconnect; + RpcRespWifiSetConfig *resp_wifi_set_config; + RpcRespWifiGetConfig *resp_wifi_get_config; + RpcRespWifiScanStart *resp_wifi_scan_start; + RpcRespWifiScanStop *resp_wifi_scan_stop; + RpcRespWifiScanGetApNum *resp_wifi_scan_get_ap_num; + RpcRespWifiScanGetApRecords *resp_wifi_scan_get_ap_records; + RpcRespWifiClearApList *resp_wifi_clear_ap_list; + RpcRespWifiRestore *resp_wifi_restore; + RpcRespWifiClearFastConnect *resp_wifi_clear_fast_connect; + RpcRespWifiDeauthSta *resp_wifi_deauth_sta; + RpcRespWifiStaGetApInfo *resp_wifi_sta_get_ap_info; + RpcRespWifiSetProtocol *resp_wifi_set_protocol; + RpcRespWifiGetProtocol *resp_wifi_get_protocol; + RpcRespWifiSetBandwidth *resp_wifi_set_bandwidth; + RpcRespWifiGetBandwidth *resp_wifi_get_bandwidth; + RpcRespWifiSetChannel *resp_wifi_set_channel; + RpcRespWifiGetChannel *resp_wifi_get_channel; + RpcRespWifiSetCountry *resp_wifi_set_country; + RpcRespWifiGetCountry *resp_wifi_get_country; + RpcRespWifiApGetStaList *resp_wifi_ap_get_sta_list; + RpcRespWifiApGetStaAid *resp_wifi_ap_get_sta_aid; + RpcRespWifiSetStorage *resp_wifi_set_storage; + RpcRespWifiSetCountryCode *resp_wifi_set_country_code; + RpcRespWifiGetCountryCode *resp_wifi_get_country_code; + RpcRespWifiStaGetAid *resp_wifi_sta_get_aid; + RpcRespWifiStaGetNegotiatedPhymode *resp_wifi_sta_get_negotiated_phymode; + RpcRespWifiStaGetRssi *resp_wifi_sta_get_rssi; + RpcRespWifiSetProtocols *resp_wifi_set_protocols; + RpcRespWifiGetProtocols *resp_wifi_get_protocols; + RpcRespWifiSetBandwidths *resp_wifi_set_bandwidths; + RpcRespWifiGetBandwidths *resp_wifi_get_bandwidths; + RpcRespWifiSetBand *resp_wifi_set_band; + RpcRespWifiGetBand *resp_wifi_get_band; + RpcRespWifiSetBandMode *resp_wifi_set_bandmode; + RpcRespWifiGetBandMode *resp_wifi_get_bandmode; + RpcRespGetCoprocessorFwVersion *resp_get_coprocessor_fwversion; + RpcRespWifiScanGetApRecord *resp_wifi_scan_get_ap_record; + /* + ** Notifications * + */ + RpcEventESPInit *event_esp_init; + RpcEventHeartbeat *event_heartbeat; + RpcEventAPStaConnected *event_ap_sta_connected; + RpcEventAPStaDisconnected *event_ap_sta_disconnected; + RpcEventWifiEventNoArgs *event_wifi_event_no_args; + RpcEventStaScanDone *event_sta_scan_done; + RpcEventStaConnected *event_sta_connected; + RpcEventStaDisconnected *event_sta_disconnected; + }; +}; +#define RPC__INIT \ + { PROTOBUF_C_MESSAGE_INIT (&rpc__descriptor) \ + , RPC_TYPE__MsgType_Invalid, RPC_ID__MsgId_Invalid, 0, RPC__PAYLOAD__NOT_SET, {0} } + + +/* WifiInitConfig methods */ +void wifi_init_config__init + (WifiInitConfig *message); +size_t wifi_init_config__get_packed_size + (const WifiInitConfig *message); +size_t wifi_init_config__pack + (const WifiInitConfig *message, + uint8_t *out); +size_t wifi_init_config__pack_to_buffer + (const WifiInitConfig *message, + ProtobufCBuffer *buffer); +WifiInitConfig * + wifi_init_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_init_config__free_unpacked + (WifiInitConfig *message, + ProtobufCAllocator *allocator); +/* WifiCountry methods */ +void wifi_country__init + (WifiCountry *message); +size_t wifi_country__get_packed_size + (const WifiCountry *message); +size_t wifi_country__pack + (const WifiCountry *message, + uint8_t *out); +size_t wifi_country__pack_to_buffer + (const WifiCountry *message, + ProtobufCBuffer *buffer); +WifiCountry * + wifi_country__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_country__free_unpacked + (WifiCountry *message, + ProtobufCAllocator *allocator); +/* WifiActiveScanTime methods */ +void wifi_active_scan_time__init + (WifiActiveScanTime *message); +size_t wifi_active_scan_time__get_packed_size + (const WifiActiveScanTime *message); +size_t wifi_active_scan_time__pack + (const WifiActiveScanTime *message, + uint8_t *out); +size_t wifi_active_scan_time__pack_to_buffer + (const WifiActiveScanTime *message, + ProtobufCBuffer *buffer); +WifiActiveScanTime * + wifi_active_scan_time__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_active_scan_time__free_unpacked + (WifiActiveScanTime *message, + ProtobufCAllocator *allocator); +/* WifiScanTime methods */ +void wifi_scan_time__init + (WifiScanTime *message); +size_t wifi_scan_time__get_packed_size + (const WifiScanTime *message); +size_t wifi_scan_time__pack + (const WifiScanTime *message, + uint8_t *out); +size_t wifi_scan_time__pack_to_buffer + (const WifiScanTime *message, + ProtobufCBuffer *buffer); +WifiScanTime * + wifi_scan_time__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_scan_time__free_unpacked + (WifiScanTime *message, + ProtobufCAllocator *allocator); +/* WifiScanConfig methods */ +void wifi_scan_config__init + (WifiScanConfig *message); +size_t wifi_scan_config__get_packed_size + (const WifiScanConfig *message); +size_t wifi_scan_config__pack + (const WifiScanConfig *message, + uint8_t *out); +size_t wifi_scan_config__pack_to_buffer + (const WifiScanConfig *message, + ProtobufCBuffer *buffer); +WifiScanConfig * + wifi_scan_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_scan_config__free_unpacked + (WifiScanConfig *message, + ProtobufCAllocator *allocator); +/* WifiHeApInfo methods */ +void wifi_he_ap_info__init + (WifiHeApInfo *message); +size_t wifi_he_ap_info__get_packed_size + (const WifiHeApInfo *message); +size_t wifi_he_ap_info__pack + (const WifiHeApInfo *message, + uint8_t *out); +size_t wifi_he_ap_info__pack_to_buffer + (const WifiHeApInfo *message, + ProtobufCBuffer *buffer); +WifiHeApInfo * + wifi_he_ap_info__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_he_ap_info__free_unpacked + (WifiHeApInfo *message, + ProtobufCAllocator *allocator); +/* WifiApRecord methods */ +void wifi_ap_record__init + (WifiApRecord *message); +size_t wifi_ap_record__get_packed_size + (const WifiApRecord *message); +size_t wifi_ap_record__pack + (const WifiApRecord *message, + uint8_t *out); +size_t wifi_ap_record__pack_to_buffer + (const WifiApRecord *message, + ProtobufCBuffer *buffer); +WifiApRecord * + wifi_ap_record__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_ap_record__free_unpacked + (WifiApRecord *message, + ProtobufCAllocator *allocator); +/* WifiScanThreshold methods */ +void wifi_scan_threshold__init + (WifiScanThreshold *message); +size_t wifi_scan_threshold__get_packed_size + (const WifiScanThreshold *message); +size_t wifi_scan_threshold__pack + (const WifiScanThreshold *message, + uint8_t *out); +size_t wifi_scan_threshold__pack_to_buffer + (const WifiScanThreshold *message, + ProtobufCBuffer *buffer); +WifiScanThreshold * + wifi_scan_threshold__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_scan_threshold__free_unpacked + (WifiScanThreshold *message, + ProtobufCAllocator *allocator); +/* WifiPmfConfig methods */ +void wifi_pmf_config__init + (WifiPmfConfig *message); +size_t wifi_pmf_config__get_packed_size + (const WifiPmfConfig *message); +size_t wifi_pmf_config__pack + (const WifiPmfConfig *message, + uint8_t *out); +size_t wifi_pmf_config__pack_to_buffer + (const WifiPmfConfig *message, + ProtobufCBuffer *buffer); +WifiPmfConfig * + wifi_pmf_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_pmf_config__free_unpacked + (WifiPmfConfig *message, + ProtobufCAllocator *allocator); +/* WifiApConfig methods */ +void wifi_ap_config__init + (WifiApConfig *message); +size_t wifi_ap_config__get_packed_size + (const WifiApConfig *message); +size_t wifi_ap_config__pack + (const WifiApConfig *message, + uint8_t *out); +size_t wifi_ap_config__pack_to_buffer + (const WifiApConfig *message, + ProtobufCBuffer *buffer); +WifiApConfig * + wifi_ap_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_ap_config__free_unpacked + (WifiApConfig *message, + ProtobufCAllocator *allocator); +/* WifiStaConfig methods */ +void wifi_sta_config__init + (WifiStaConfig *message); +size_t wifi_sta_config__get_packed_size + (const WifiStaConfig *message); +size_t wifi_sta_config__pack + (const WifiStaConfig *message, + uint8_t *out); +size_t wifi_sta_config__pack_to_buffer + (const WifiStaConfig *message, + ProtobufCBuffer *buffer); +WifiStaConfig * + wifi_sta_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_sta_config__free_unpacked + (WifiStaConfig *message, + ProtobufCAllocator *allocator); +/* WifiConfig methods */ +void wifi_config__init + (WifiConfig *message); +size_t wifi_config__get_packed_size + (const WifiConfig *message); +size_t wifi_config__pack + (const WifiConfig *message, + uint8_t *out); +size_t wifi_config__pack_to_buffer + (const WifiConfig *message, + ProtobufCBuffer *buffer); +WifiConfig * + wifi_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_config__free_unpacked + (WifiConfig *message, + ProtobufCAllocator *allocator); +/* WifiStaInfo methods */ +void wifi_sta_info__init + (WifiStaInfo *message); +size_t wifi_sta_info__get_packed_size + (const WifiStaInfo *message); +size_t wifi_sta_info__pack + (const WifiStaInfo *message, + uint8_t *out); +size_t wifi_sta_info__pack_to_buffer + (const WifiStaInfo *message, + ProtobufCBuffer *buffer); +WifiStaInfo * + wifi_sta_info__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_sta_info__free_unpacked + (WifiStaInfo *message, + ProtobufCAllocator *allocator); +/* WifiStaList methods */ +void wifi_sta_list__init + (WifiStaList *message); +size_t wifi_sta_list__get_packed_size + (const WifiStaList *message); +size_t wifi_sta_list__pack + (const WifiStaList *message, + uint8_t *out); +size_t wifi_sta_list__pack_to_buffer + (const WifiStaList *message, + ProtobufCBuffer *buffer); +WifiStaList * + wifi_sta_list__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_sta_list__free_unpacked + (WifiStaList *message, + ProtobufCAllocator *allocator); +/* WifiPktRxCtrl methods */ +void wifi_pkt_rx_ctrl__init + (WifiPktRxCtrl *message); +size_t wifi_pkt_rx_ctrl__get_packed_size + (const WifiPktRxCtrl *message); +size_t wifi_pkt_rx_ctrl__pack + (const WifiPktRxCtrl *message, + uint8_t *out); +size_t wifi_pkt_rx_ctrl__pack_to_buffer + (const WifiPktRxCtrl *message, + ProtobufCBuffer *buffer); +WifiPktRxCtrl * + wifi_pkt_rx_ctrl__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_pkt_rx_ctrl__free_unpacked + (WifiPktRxCtrl *message, + ProtobufCAllocator *allocator); +/* WifiPromiscuousPkt methods */ +void wifi_promiscuous_pkt__init + (WifiPromiscuousPkt *message); +size_t wifi_promiscuous_pkt__get_packed_size + (const WifiPromiscuousPkt *message); +size_t wifi_promiscuous_pkt__pack + (const WifiPromiscuousPkt *message, + uint8_t *out); +size_t wifi_promiscuous_pkt__pack_to_buffer + (const WifiPromiscuousPkt *message, + ProtobufCBuffer *buffer); +WifiPromiscuousPkt * + wifi_promiscuous_pkt__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_promiscuous_pkt__free_unpacked + (WifiPromiscuousPkt *message, + ProtobufCAllocator *allocator); +/* WifiPromiscuousFilter methods */ +void wifi_promiscuous_filter__init + (WifiPromiscuousFilter *message); +size_t wifi_promiscuous_filter__get_packed_size + (const WifiPromiscuousFilter *message); +size_t wifi_promiscuous_filter__pack + (const WifiPromiscuousFilter *message, + uint8_t *out); +size_t wifi_promiscuous_filter__pack_to_buffer + (const WifiPromiscuousFilter *message, + ProtobufCBuffer *buffer); +WifiPromiscuousFilter * + wifi_promiscuous_filter__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_promiscuous_filter__free_unpacked + (WifiPromiscuousFilter *message, + ProtobufCAllocator *allocator); +/* WifiCsiConfig methods */ +void wifi_csi_config__init + (WifiCsiConfig *message); +size_t wifi_csi_config__get_packed_size + (const WifiCsiConfig *message); +size_t wifi_csi_config__pack + (const WifiCsiConfig *message, + uint8_t *out); +size_t wifi_csi_config__pack_to_buffer + (const WifiCsiConfig *message, + ProtobufCBuffer *buffer); +WifiCsiConfig * + wifi_csi_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_csi_config__free_unpacked + (WifiCsiConfig *message, + ProtobufCAllocator *allocator); +/* WifiCsiInfo methods */ +void wifi_csi_info__init + (WifiCsiInfo *message); +size_t wifi_csi_info__get_packed_size + (const WifiCsiInfo *message); +size_t wifi_csi_info__pack + (const WifiCsiInfo *message, + uint8_t *out); +size_t wifi_csi_info__pack_to_buffer + (const WifiCsiInfo *message, + ProtobufCBuffer *buffer); +WifiCsiInfo * + wifi_csi_info__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_csi_info__free_unpacked + (WifiCsiInfo *message, + ProtobufCAllocator *allocator); +/* WifiAntGpio methods */ +void wifi_ant_gpio__init + (WifiAntGpio *message); +size_t wifi_ant_gpio__get_packed_size + (const WifiAntGpio *message); +size_t wifi_ant_gpio__pack + (const WifiAntGpio *message, + uint8_t *out); +size_t wifi_ant_gpio__pack_to_buffer + (const WifiAntGpio *message, + ProtobufCBuffer *buffer); +WifiAntGpio * + wifi_ant_gpio__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_ant_gpio__free_unpacked + (WifiAntGpio *message, + ProtobufCAllocator *allocator); +/* WifiAntGpioConfig methods */ +void wifi_ant_gpio_config__init + (WifiAntGpioConfig *message); +size_t wifi_ant_gpio_config__get_packed_size + (const WifiAntGpioConfig *message); +size_t wifi_ant_gpio_config__pack + (const WifiAntGpioConfig *message, + uint8_t *out); +size_t wifi_ant_gpio_config__pack_to_buffer + (const WifiAntGpioConfig *message, + ProtobufCBuffer *buffer); +WifiAntGpioConfig * + wifi_ant_gpio_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_ant_gpio_config__free_unpacked + (WifiAntGpioConfig *message, + ProtobufCAllocator *allocator); +/* WifiAntConfig methods */ +void wifi_ant_config__init + (WifiAntConfig *message); +size_t wifi_ant_config__get_packed_size + (const WifiAntConfig *message); +size_t wifi_ant_config__pack + (const WifiAntConfig *message, + uint8_t *out); +size_t wifi_ant_config__pack_to_buffer + (const WifiAntConfig *message, + ProtobufCBuffer *buffer); +WifiAntConfig * + wifi_ant_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_ant_config__free_unpacked + (WifiAntConfig *message, + ProtobufCAllocator *allocator); +/* WifiActionTxReq methods */ +void wifi_action_tx_req__init + (WifiActionTxReq *message); +size_t wifi_action_tx_req__get_packed_size + (const WifiActionTxReq *message); +size_t wifi_action_tx_req__pack + (const WifiActionTxReq *message, + uint8_t *out); +size_t wifi_action_tx_req__pack_to_buffer + (const WifiActionTxReq *message, + ProtobufCBuffer *buffer); +WifiActionTxReq * + wifi_action_tx_req__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_action_tx_req__free_unpacked + (WifiActionTxReq *message, + ProtobufCAllocator *allocator); +/* WifiFtmInitiatorCfg methods */ +void wifi_ftm_initiator_cfg__init + (WifiFtmInitiatorCfg *message); +size_t wifi_ftm_initiator_cfg__get_packed_size + (const WifiFtmInitiatorCfg *message); +size_t wifi_ftm_initiator_cfg__pack + (const WifiFtmInitiatorCfg *message, + uint8_t *out); +size_t wifi_ftm_initiator_cfg__pack_to_buffer + (const WifiFtmInitiatorCfg *message, + ProtobufCBuffer *buffer); +WifiFtmInitiatorCfg * + wifi_ftm_initiator_cfg__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_ftm_initiator_cfg__free_unpacked + (WifiFtmInitiatorCfg *message, + ProtobufCAllocator *allocator); +/* WifiEventStaScanDone methods */ +void wifi_event_sta_scan_done__init + (WifiEventStaScanDone *message); +size_t wifi_event_sta_scan_done__get_packed_size + (const WifiEventStaScanDone *message); +size_t wifi_event_sta_scan_done__pack + (const WifiEventStaScanDone *message, + uint8_t *out); +size_t wifi_event_sta_scan_done__pack_to_buffer + (const WifiEventStaScanDone *message, + ProtobufCBuffer *buffer); +WifiEventStaScanDone * + wifi_event_sta_scan_done__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_event_sta_scan_done__free_unpacked + (WifiEventStaScanDone *message, + ProtobufCAllocator *allocator); +/* WifiEventStaConnected methods */ +void wifi_event_sta_connected__init + (WifiEventStaConnected *message); +size_t wifi_event_sta_connected__get_packed_size + (const WifiEventStaConnected *message); +size_t wifi_event_sta_connected__pack + (const WifiEventStaConnected *message, + uint8_t *out); +size_t wifi_event_sta_connected__pack_to_buffer + (const WifiEventStaConnected *message, + ProtobufCBuffer *buffer); +WifiEventStaConnected * + wifi_event_sta_connected__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_event_sta_connected__free_unpacked + (WifiEventStaConnected *message, + ProtobufCAllocator *allocator); +/* WifiEventStaDisconnected methods */ +void wifi_event_sta_disconnected__init + (WifiEventStaDisconnected *message); +size_t wifi_event_sta_disconnected__get_packed_size + (const WifiEventStaDisconnected *message); +size_t wifi_event_sta_disconnected__pack + (const WifiEventStaDisconnected *message, + uint8_t *out); +size_t wifi_event_sta_disconnected__pack_to_buffer + (const WifiEventStaDisconnected *message, + ProtobufCBuffer *buffer); +WifiEventStaDisconnected * + wifi_event_sta_disconnected__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_event_sta_disconnected__free_unpacked + (WifiEventStaDisconnected *message, + ProtobufCAllocator *allocator); +/* WifiEventStaAuthmodeChange methods */ +void wifi_event_sta_authmode_change__init + (WifiEventStaAuthmodeChange *message); +size_t wifi_event_sta_authmode_change__get_packed_size + (const WifiEventStaAuthmodeChange *message); +size_t wifi_event_sta_authmode_change__pack + (const WifiEventStaAuthmodeChange *message, + uint8_t *out); +size_t wifi_event_sta_authmode_change__pack_to_buffer + (const WifiEventStaAuthmodeChange *message, + ProtobufCBuffer *buffer); +WifiEventStaAuthmodeChange * + wifi_event_sta_authmode_change__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_event_sta_authmode_change__free_unpacked + (WifiEventStaAuthmodeChange *message, + ProtobufCAllocator *allocator); +/* WifiEventStaWpsErPin methods */ +void wifi_event_sta_wps_er_pin__init + (WifiEventStaWpsErPin *message); +size_t wifi_event_sta_wps_er_pin__get_packed_size + (const WifiEventStaWpsErPin *message); +size_t wifi_event_sta_wps_er_pin__pack + (const WifiEventStaWpsErPin *message, + uint8_t *out); +size_t wifi_event_sta_wps_er_pin__pack_to_buffer + (const WifiEventStaWpsErPin *message, + ProtobufCBuffer *buffer); +WifiEventStaWpsErPin * + wifi_event_sta_wps_er_pin__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_event_sta_wps_er_pin__free_unpacked + (WifiEventStaWpsErPin *message, + ProtobufCAllocator *allocator); +/* ApCred methods */ +void ap_cred__init + (ApCred *message); +size_t ap_cred__get_packed_size + (const ApCred *message); +size_t ap_cred__pack + (const ApCred *message, + uint8_t *out); +size_t ap_cred__pack_to_buffer + (const ApCred *message, + ProtobufCBuffer *buffer); +ApCred * + ap_cred__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void ap_cred__free_unpacked + (ApCred *message, + ProtobufCAllocator *allocator); +/* WifiEventStaWpsErSuccess methods */ +void wifi_event_sta_wps_er_success__init + (WifiEventStaWpsErSuccess *message); +size_t wifi_event_sta_wps_er_success__get_packed_size + (const WifiEventStaWpsErSuccess *message); +size_t wifi_event_sta_wps_er_success__pack + (const WifiEventStaWpsErSuccess *message, + uint8_t *out); +size_t wifi_event_sta_wps_er_success__pack_to_buffer + (const WifiEventStaWpsErSuccess *message, + ProtobufCBuffer *buffer); +WifiEventStaWpsErSuccess * + wifi_event_sta_wps_er_success__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_event_sta_wps_er_success__free_unpacked + (WifiEventStaWpsErSuccess *message, + ProtobufCAllocator *allocator); +/* WifiEventApProbeReqRx methods */ +void wifi_event_ap_probe_req_rx__init + (WifiEventApProbeReqRx *message); +size_t wifi_event_ap_probe_req_rx__get_packed_size + (const WifiEventApProbeReqRx *message); +size_t wifi_event_ap_probe_req_rx__pack + (const WifiEventApProbeReqRx *message, + uint8_t *out); +size_t wifi_event_ap_probe_req_rx__pack_to_buffer + (const WifiEventApProbeReqRx *message, + ProtobufCBuffer *buffer); +WifiEventApProbeReqRx * + wifi_event_ap_probe_req_rx__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_event_ap_probe_req_rx__free_unpacked + (WifiEventApProbeReqRx *message, + ProtobufCAllocator *allocator); +/* WifiEventBssRssiLow methods */ +void wifi_event_bss_rssi_low__init + (WifiEventBssRssiLow *message); +size_t wifi_event_bss_rssi_low__get_packed_size + (const WifiEventBssRssiLow *message); +size_t wifi_event_bss_rssi_low__pack + (const WifiEventBssRssiLow *message, + uint8_t *out); +size_t wifi_event_bss_rssi_low__pack_to_buffer + (const WifiEventBssRssiLow *message, + ProtobufCBuffer *buffer); +WifiEventBssRssiLow * + wifi_event_bss_rssi_low__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_event_bss_rssi_low__free_unpacked + (WifiEventBssRssiLow *message, + ProtobufCAllocator *allocator); +/* WifiFtmReportEntry methods */ +void wifi_ftm_report_entry__init + (WifiFtmReportEntry *message); +size_t wifi_ftm_report_entry__get_packed_size + (const WifiFtmReportEntry *message); +size_t wifi_ftm_report_entry__pack + (const WifiFtmReportEntry *message, + uint8_t *out); +size_t wifi_ftm_report_entry__pack_to_buffer + (const WifiFtmReportEntry *message, + ProtobufCBuffer *buffer); +WifiFtmReportEntry * + wifi_ftm_report_entry__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_ftm_report_entry__free_unpacked + (WifiFtmReportEntry *message, + ProtobufCAllocator *allocator); +/* WifiEventFtmReport methods */ +void wifi_event_ftm_report__init + (WifiEventFtmReport *message); +size_t wifi_event_ftm_report__get_packed_size + (const WifiEventFtmReport *message); +size_t wifi_event_ftm_report__pack + (const WifiEventFtmReport *message, + uint8_t *out); +size_t wifi_event_ftm_report__pack_to_buffer + (const WifiEventFtmReport *message, + ProtobufCBuffer *buffer); +WifiEventFtmReport * + wifi_event_ftm_report__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_event_ftm_report__free_unpacked + (WifiEventFtmReport *message, + ProtobufCAllocator *allocator); +/* WifiEventActionTxStatus methods */ +void wifi_event_action_tx_status__init + (WifiEventActionTxStatus *message); +size_t wifi_event_action_tx_status__get_packed_size + (const WifiEventActionTxStatus *message); +size_t wifi_event_action_tx_status__pack + (const WifiEventActionTxStatus *message, + uint8_t *out); +size_t wifi_event_action_tx_status__pack_to_buffer + (const WifiEventActionTxStatus *message, + ProtobufCBuffer *buffer); +WifiEventActionTxStatus * + wifi_event_action_tx_status__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_event_action_tx_status__free_unpacked + (WifiEventActionTxStatus *message, + ProtobufCAllocator *allocator); +/* WifiEventRocDone methods */ +void wifi_event_roc_done__init + (WifiEventRocDone *message); +size_t wifi_event_roc_done__get_packed_size + (const WifiEventRocDone *message); +size_t wifi_event_roc_done__pack + (const WifiEventRocDone *message, + uint8_t *out); +size_t wifi_event_roc_done__pack_to_buffer + (const WifiEventRocDone *message, + ProtobufCBuffer *buffer); +WifiEventRocDone * + wifi_event_roc_done__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_event_roc_done__free_unpacked + (WifiEventRocDone *message, + ProtobufCAllocator *allocator); +/* WifiEventApWpsRgPin methods */ +void wifi_event_ap_wps_rg_pin__init + (WifiEventApWpsRgPin *message); +size_t wifi_event_ap_wps_rg_pin__get_packed_size + (const WifiEventApWpsRgPin *message); +size_t wifi_event_ap_wps_rg_pin__pack + (const WifiEventApWpsRgPin *message, + uint8_t *out); +size_t wifi_event_ap_wps_rg_pin__pack_to_buffer + (const WifiEventApWpsRgPin *message, + ProtobufCBuffer *buffer); +WifiEventApWpsRgPin * + wifi_event_ap_wps_rg_pin__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_event_ap_wps_rg_pin__free_unpacked + (WifiEventApWpsRgPin *message, + ProtobufCAllocator *allocator); +/* WifiEventApWpsRgFailReason methods */ +void wifi_event_ap_wps_rg_fail_reason__init + (WifiEventApWpsRgFailReason *message); +size_t wifi_event_ap_wps_rg_fail_reason__get_packed_size + (const WifiEventApWpsRgFailReason *message); +size_t wifi_event_ap_wps_rg_fail_reason__pack + (const WifiEventApWpsRgFailReason *message, + uint8_t *out); +size_t wifi_event_ap_wps_rg_fail_reason__pack_to_buffer + (const WifiEventApWpsRgFailReason *message, + ProtobufCBuffer *buffer); +WifiEventApWpsRgFailReason * + wifi_event_ap_wps_rg_fail_reason__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_event_ap_wps_rg_fail_reason__free_unpacked + (WifiEventApWpsRgFailReason *message, + ProtobufCAllocator *allocator); +/* WifiEventApWpsRgSuccess methods */ +void wifi_event_ap_wps_rg_success__init + (WifiEventApWpsRgSuccess *message); +size_t wifi_event_ap_wps_rg_success__get_packed_size + (const WifiEventApWpsRgSuccess *message); +size_t wifi_event_ap_wps_rg_success__pack + (const WifiEventApWpsRgSuccess *message, + uint8_t *out); +size_t wifi_event_ap_wps_rg_success__pack_to_buffer + (const WifiEventApWpsRgSuccess *message, + ProtobufCBuffer *buffer); +WifiEventApWpsRgSuccess * + wifi_event_ap_wps_rg_success__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_event_ap_wps_rg_success__free_unpacked + (WifiEventApWpsRgSuccess *message, + ProtobufCAllocator *allocator); +/* WifiProtocols methods */ +void wifi_protocols__init + (WifiProtocols *message); +size_t wifi_protocols__get_packed_size + (const WifiProtocols *message); +size_t wifi_protocols__pack + (const WifiProtocols *message, + uint8_t *out); +size_t wifi_protocols__pack_to_buffer + (const WifiProtocols *message, + ProtobufCBuffer *buffer); +WifiProtocols * + wifi_protocols__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_protocols__free_unpacked + (WifiProtocols *message, + ProtobufCAllocator *allocator); +/* WifiBandwidths methods */ +void wifi_bandwidths__init + (WifiBandwidths *message); +size_t wifi_bandwidths__get_packed_size + (const WifiBandwidths *message); +size_t wifi_bandwidths__pack + (const WifiBandwidths *message, + uint8_t *out); +size_t wifi_bandwidths__pack_to_buffer + (const WifiBandwidths *message, + ProtobufCBuffer *buffer); +WifiBandwidths * + wifi_bandwidths__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void wifi_bandwidths__free_unpacked + (WifiBandwidths *message, + ProtobufCAllocator *allocator); +/* ConnectedSTAList methods */ +void connected_stalist__init + (ConnectedSTAList *message); +size_t connected_stalist__get_packed_size + (const ConnectedSTAList *message); +size_t connected_stalist__pack + (const ConnectedSTAList *message, + uint8_t *out); +size_t connected_stalist__pack_to_buffer + (const ConnectedSTAList *message, + ProtobufCBuffer *buffer); +ConnectedSTAList * + connected_stalist__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void connected_stalist__free_unpacked + (ConnectedSTAList *message, + ProtobufCAllocator *allocator); +/* RpcReqGetMacAddress methods */ +void rpc__req__get_mac_address__init + (RpcReqGetMacAddress *message); +size_t rpc__req__get_mac_address__get_packed_size + (const RpcReqGetMacAddress *message); +size_t rpc__req__get_mac_address__pack + (const RpcReqGetMacAddress *message, + uint8_t *out); +size_t rpc__req__get_mac_address__pack_to_buffer + (const RpcReqGetMacAddress *message, + ProtobufCBuffer *buffer); +RpcReqGetMacAddress * + rpc__req__get_mac_address__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__get_mac_address__free_unpacked + (RpcReqGetMacAddress *message, + ProtobufCAllocator *allocator); +/* RpcRespGetMacAddress methods */ +void rpc__resp__get_mac_address__init + (RpcRespGetMacAddress *message); +size_t rpc__resp__get_mac_address__get_packed_size + (const RpcRespGetMacAddress *message); +size_t rpc__resp__get_mac_address__pack + (const RpcRespGetMacAddress *message, + uint8_t *out); +size_t rpc__resp__get_mac_address__pack_to_buffer + (const RpcRespGetMacAddress *message, + ProtobufCBuffer *buffer); +RpcRespGetMacAddress * + rpc__resp__get_mac_address__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__get_mac_address__free_unpacked + (RpcRespGetMacAddress *message, + ProtobufCAllocator *allocator); +/* RpcReqGetMode methods */ +void rpc__req__get_mode__init + (RpcReqGetMode *message); +size_t rpc__req__get_mode__get_packed_size + (const RpcReqGetMode *message); +size_t rpc__req__get_mode__pack + (const RpcReqGetMode *message, + uint8_t *out); +size_t rpc__req__get_mode__pack_to_buffer + (const RpcReqGetMode *message, + ProtobufCBuffer *buffer); +RpcReqGetMode * + rpc__req__get_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__get_mode__free_unpacked + (RpcReqGetMode *message, + ProtobufCAllocator *allocator); +/* RpcRespGetMode methods */ +void rpc__resp__get_mode__init + (RpcRespGetMode *message); +size_t rpc__resp__get_mode__get_packed_size + (const RpcRespGetMode *message); +size_t rpc__resp__get_mode__pack + (const RpcRespGetMode *message, + uint8_t *out); +size_t rpc__resp__get_mode__pack_to_buffer + (const RpcRespGetMode *message, + ProtobufCBuffer *buffer); +RpcRespGetMode * + rpc__resp__get_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__get_mode__free_unpacked + (RpcRespGetMode *message, + ProtobufCAllocator *allocator); +/* RpcReqSetMode methods */ +void rpc__req__set_mode__init + (RpcReqSetMode *message); +size_t rpc__req__set_mode__get_packed_size + (const RpcReqSetMode *message); +size_t rpc__req__set_mode__pack + (const RpcReqSetMode *message, + uint8_t *out); +size_t rpc__req__set_mode__pack_to_buffer + (const RpcReqSetMode *message, + ProtobufCBuffer *buffer); +RpcReqSetMode * + rpc__req__set_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__set_mode__free_unpacked + (RpcReqSetMode *message, + ProtobufCAllocator *allocator); +/* RpcRespSetMode methods */ +void rpc__resp__set_mode__init + (RpcRespSetMode *message); +size_t rpc__resp__set_mode__get_packed_size + (const RpcRespSetMode *message); +size_t rpc__resp__set_mode__pack + (const RpcRespSetMode *message, + uint8_t *out); +size_t rpc__resp__set_mode__pack_to_buffer + (const RpcRespSetMode *message, + ProtobufCBuffer *buffer); +RpcRespSetMode * + rpc__resp__set_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__set_mode__free_unpacked + (RpcRespSetMode *message, + ProtobufCAllocator *allocator); +/* RpcReqGetPs methods */ +void rpc__req__get_ps__init + (RpcReqGetPs *message); +size_t rpc__req__get_ps__get_packed_size + (const RpcReqGetPs *message); +size_t rpc__req__get_ps__pack + (const RpcReqGetPs *message, + uint8_t *out); +size_t rpc__req__get_ps__pack_to_buffer + (const RpcReqGetPs *message, + ProtobufCBuffer *buffer); +RpcReqGetPs * + rpc__req__get_ps__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__get_ps__free_unpacked + (RpcReqGetPs *message, + ProtobufCAllocator *allocator); +/* RpcRespGetPs methods */ +void rpc__resp__get_ps__init + (RpcRespGetPs *message); +size_t rpc__resp__get_ps__get_packed_size + (const RpcRespGetPs *message); +size_t rpc__resp__get_ps__pack + (const RpcRespGetPs *message, + uint8_t *out); +size_t rpc__resp__get_ps__pack_to_buffer + (const RpcRespGetPs *message, + ProtobufCBuffer *buffer); +RpcRespGetPs * + rpc__resp__get_ps__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__get_ps__free_unpacked + (RpcRespGetPs *message, + ProtobufCAllocator *allocator); +/* RpcReqSetPs methods */ +void rpc__req__set_ps__init + (RpcReqSetPs *message); +size_t rpc__req__set_ps__get_packed_size + (const RpcReqSetPs *message); +size_t rpc__req__set_ps__pack + (const RpcReqSetPs *message, + uint8_t *out); +size_t rpc__req__set_ps__pack_to_buffer + (const RpcReqSetPs *message, + ProtobufCBuffer *buffer); +RpcReqSetPs * + rpc__req__set_ps__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__set_ps__free_unpacked + (RpcReqSetPs *message, + ProtobufCAllocator *allocator); +/* RpcRespSetPs methods */ +void rpc__resp__set_ps__init + (RpcRespSetPs *message); +size_t rpc__resp__set_ps__get_packed_size + (const RpcRespSetPs *message); +size_t rpc__resp__set_ps__pack + (const RpcRespSetPs *message, + uint8_t *out); +size_t rpc__resp__set_ps__pack_to_buffer + (const RpcRespSetPs *message, + ProtobufCBuffer *buffer); +RpcRespSetPs * + rpc__resp__set_ps__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__set_ps__free_unpacked + (RpcRespSetPs *message, + ProtobufCAllocator *allocator); +/* RpcReqSetMacAddress methods */ +void rpc__req__set_mac_address__init + (RpcReqSetMacAddress *message); +size_t rpc__req__set_mac_address__get_packed_size + (const RpcReqSetMacAddress *message); +size_t rpc__req__set_mac_address__pack + (const RpcReqSetMacAddress *message, + uint8_t *out); +size_t rpc__req__set_mac_address__pack_to_buffer + (const RpcReqSetMacAddress *message, + ProtobufCBuffer *buffer); +RpcReqSetMacAddress * + rpc__req__set_mac_address__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__set_mac_address__free_unpacked + (RpcReqSetMacAddress *message, + ProtobufCAllocator *allocator); +/* RpcRespSetMacAddress methods */ +void rpc__resp__set_mac_address__init + (RpcRespSetMacAddress *message); +size_t rpc__resp__set_mac_address__get_packed_size + (const RpcRespSetMacAddress *message); +size_t rpc__resp__set_mac_address__pack + (const RpcRespSetMacAddress *message, + uint8_t *out); +size_t rpc__resp__set_mac_address__pack_to_buffer + (const RpcRespSetMacAddress *message, + ProtobufCBuffer *buffer); +RpcRespSetMacAddress * + rpc__resp__set_mac_address__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__set_mac_address__free_unpacked + (RpcRespSetMacAddress *message, + ProtobufCAllocator *allocator); +/* RpcReqOTABegin methods */ +void rpc__req__otabegin__init + (RpcReqOTABegin *message); +size_t rpc__req__otabegin__get_packed_size + (const RpcReqOTABegin *message); +size_t rpc__req__otabegin__pack + (const RpcReqOTABegin *message, + uint8_t *out); +size_t rpc__req__otabegin__pack_to_buffer + (const RpcReqOTABegin *message, + ProtobufCBuffer *buffer); +RpcReqOTABegin * + rpc__req__otabegin__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__otabegin__free_unpacked + (RpcReqOTABegin *message, + ProtobufCAllocator *allocator); +/* RpcRespOTABegin methods */ +void rpc__resp__otabegin__init + (RpcRespOTABegin *message); +size_t rpc__resp__otabegin__get_packed_size + (const RpcRespOTABegin *message); +size_t rpc__resp__otabegin__pack + (const RpcRespOTABegin *message, + uint8_t *out); +size_t rpc__resp__otabegin__pack_to_buffer + (const RpcRespOTABegin *message, + ProtobufCBuffer *buffer); +RpcRespOTABegin * + rpc__resp__otabegin__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__otabegin__free_unpacked + (RpcRespOTABegin *message, + ProtobufCAllocator *allocator); +/* RpcReqOTAWrite methods */ +void rpc__req__otawrite__init + (RpcReqOTAWrite *message); +size_t rpc__req__otawrite__get_packed_size + (const RpcReqOTAWrite *message); +size_t rpc__req__otawrite__pack + (const RpcReqOTAWrite *message, + uint8_t *out); +size_t rpc__req__otawrite__pack_to_buffer + (const RpcReqOTAWrite *message, + ProtobufCBuffer *buffer); +RpcReqOTAWrite * + rpc__req__otawrite__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__otawrite__free_unpacked + (RpcReqOTAWrite *message, + ProtobufCAllocator *allocator); +/* RpcRespOTAWrite methods */ +void rpc__resp__otawrite__init + (RpcRespOTAWrite *message); +size_t rpc__resp__otawrite__get_packed_size + (const RpcRespOTAWrite *message); +size_t rpc__resp__otawrite__pack + (const RpcRespOTAWrite *message, + uint8_t *out); +size_t rpc__resp__otawrite__pack_to_buffer + (const RpcRespOTAWrite *message, + ProtobufCBuffer *buffer); +RpcRespOTAWrite * + rpc__resp__otawrite__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__otawrite__free_unpacked + (RpcRespOTAWrite *message, + ProtobufCAllocator *allocator); +/* RpcReqOTAEnd methods */ +void rpc__req__otaend__init + (RpcReqOTAEnd *message); +size_t rpc__req__otaend__get_packed_size + (const RpcReqOTAEnd *message); +size_t rpc__req__otaend__pack + (const RpcReqOTAEnd *message, + uint8_t *out); +size_t rpc__req__otaend__pack_to_buffer + (const RpcReqOTAEnd *message, + ProtobufCBuffer *buffer); +RpcReqOTAEnd * + rpc__req__otaend__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__otaend__free_unpacked + (RpcReqOTAEnd *message, + ProtobufCAllocator *allocator); +/* RpcRespOTAEnd methods */ +void rpc__resp__otaend__init + (RpcRespOTAEnd *message); +size_t rpc__resp__otaend__get_packed_size + (const RpcRespOTAEnd *message); +size_t rpc__resp__otaend__pack + (const RpcRespOTAEnd *message, + uint8_t *out); +size_t rpc__resp__otaend__pack_to_buffer + (const RpcRespOTAEnd *message, + ProtobufCBuffer *buffer); +RpcRespOTAEnd * + rpc__resp__otaend__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__otaend__free_unpacked + (RpcRespOTAEnd *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiSetMaxTxPower methods */ +void rpc__req__wifi_set_max_tx_power__init + (RpcReqWifiSetMaxTxPower *message); +size_t rpc__req__wifi_set_max_tx_power__get_packed_size + (const RpcReqWifiSetMaxTxPower *message); +size_t rpc__req__wifi_set_max_tx_power__pack + (const RpcReqWifiSetMaxTxPower *message, + uint8_t *out); +size_t rpc__req__wifi_set_max_tx_power__pack_to_buffer + (const RpcReqWifiSetMaxTxPower *message, + ProtobufCBuffer *buffer); +RpcReqWifiSetMaxTxPower * + rpc__req__wifi_set_max_tx_power__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_set_max_tx_power__free_unpacked + (RpcReqWifiSetMaxTxPower *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiSetMaxTxPower methods */ +void rpc__resp__wifi_set_max_tx_power__init + (RpcRespWifiSetMaxTxPower *message); +size_t rpc__resp__wifi_set_max_tx_power__get_packed_size + (const RpcRespWifiSetMaxTxPower *message); +size_t rpc__resp__wifi_set_max_tx_power__pack + (const RpcRespWifiSetMaxTxPower *message, + uint8_t *out); +size_t rpc__resp__wifi_set_max_tx_power__pack_to_buffer + (const RpcRespWifiSetMaxTxPower *message, + ProtobufCBuffer *buffer); +RpcRespWifiSetMaxTxPower * + rpc__resp__wifi_set_max_tx_power__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_set_max_tx_power__free_unpacked + (RpcRespWifiSetMaxTxPower *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiGetMaxTxPower methods */ +void rpc__req__wifi_get_max_tx_power__init + (RpcReqWifiGetMaxTxPower *message); +size_t rpc__req__wifi_get_max_tx_power__get_packed_size + (const RpcReqWifiGetMaxTxPower *message); +size_t rpc__req__wifi_get_max_tx_power__pack + (const RpcReqWifiGetMaxTxPower *message, + uint8_t *out); +size_t rpc__req__wifi_get_max_tx_power__pack_to_buffer + (const RpcReqWifiGetMaxTxPower *message, + ProtobufCBuffer *buffer); +RpcReqWifiGetMaxTxPower * + rpc__req__wifi_get_max_tx_power__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_get_max_tx_power__free_unpacked + (RpcReqWifiGetMaxTxPower *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiGetMaxTxPower methods */ +void rpc__resp__wifi_get_max_tx_power__init + (RpcRespWifiGetMaxTxPower *message); +size_t rpc__resp__wifi_get_max_tx_power__get_packed_size + (const RpcRespWifiGetMaxTxPower *message); +size_t rpc__resp__wifi_get_max_tx_power__pack + (const RpcRespWifiGetMaxTxPower *message, + uint8_t *out); +size_t rpc__resp__wifi_get_max_tx_power__pack_to_buffer + (const RpcRespWifiGetMaxTxPower *message, + ProtobufCBuffer *buffer); +RpcRespWifiGetMaxTxPower * + rpc__resp__wifi_get_max_tx_power__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_get_max_tx_power__free_unpacked + (RpcRespWifiGetMaxTxPower *message, + ProtobufCAllocator *allocator); +/* RpcReqConfigHeartbeat methods */ +void rpc__req__config_heartbeat__init + (RpcReqConfigHeartbeat *message); +size_t rpc__req__config_heartbeat__get_packed_size + (const RpcReqConfigHeartbeat *message); +size_t rpc__req__config_heartbeat__pack + (const RpcReqConfigHeartbeat *message, + uint8_t *out); +size_t rpc__req__config_heartbeat__pack_to_buffer + (const RpcReqConfigHeartbeat *message, + ProtobufCBuffer *buffer); +RpcReqConfigHeartbeat * + rpc__req__config_heartbeat__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__config_heartbeat__free_unpacked + (RpcReqConfigHeartbeat *message, + ProtobufCAllocator *allocator); +/* RpcRespConfigHeartbeat methods */ +void rpc__resp__config_heartbeat__init + (RpcRespConfigHeartbeat *message); +size_t rpc__resp__config_heartbeat__get_packed_size + (const RpcRespConfigHeartbeat *message); +size_t rpc__resp__config_heartbeat__pack + (const RpcRespConfigHeartbeat *message, + uint8_t *out); +size_t rpc__resp__config_heartbeat__pack_to_buffer + (const RpcRespConfigHeartbeat *message, + ProtobufCBuffer *buffer); +RpcRespConfigHeartbeat * + rpc__resp__config_heartbeat__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__config_heartbeat__free_unpacked + (RpcRespConfigHeartbeat *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiInit methods */ +void rpc__req__wifi_init__init + (RpcReqWifiInit *message); +size_t rpc__req__wifi_init__get_packed_size + (const RpcReqWifiInit *message); +size_t rpc__req__wifi_init__pack + (const RpcReqWifiInit *message, + uint8_t *out); +size_t rpc__req__wifi_init__pack_to_buffer + (const RpcReqWifiInit *message, + ProtobufCBuffer *buffer); +RpcReqWifiInit * + rpc__req__wifi_init__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_init__free_unpacked + (RpcReqWifiInit *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiInit methods */ +void rpc__resp__wifi_init__init + (RpcRespWifiInit *message); +size_t rpc__resp__wifi_init__get_packed_size + (const RpcRespWifiInit *message); +size_t rpc__resp__wifi_init__pack + (const RpcRespWifiInit *message, + uint8_t *out); +size_t rpc__resp__wifi_init__pack_to_buffer + (const RpcRespWifiInit *message, + ProtobufCBuffer *buffer); +RpcRespWifiInit * + rpc__resp__wifi_init__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_init__free_unpacked + (RpcRespWifiInit *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiDeinit methods */ +void rpc__req__wifi_deinit__init + (RpcReqWifiDeinit *message); +size_t rpc__req__wifi_deinit__get_packed_size + (const RpcReqWifiDeinit *message); +size_t rpc__req__wifi_deinit__pack + (const RpcReqWifiDeinit *message, + uint8_t *out); +size_t rpc__req__wifi_deinit__pack_to_buffer + (const RpcReqWifiDeinit *message, + ProtobufCBuffer *buffer); +RpcReqWifiDeinit * + rpc__req__wifi_deinit__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_deinit__free_unpacked + (RpcReqWifiDeinit *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiDeinit methods */ +void rpc__resp__wifi_deinit__init + (RpcRespWifiDeinit *message); +size_t rpc__resp__wifi_deinit__get_packed_size + (const RpcRespWifiDeinit *message); +size_t rpc__resp__wifi_deinit__pack + (const RpcRespWifiDeinit *message, + uint8_t *out); +size_t rpc__resp__wifi_deinit__pack_to_buffer + (const RpcRespWifiDeinit *message, + ProtobufCBuffer *buffer); +RpcRespWifiDeinit * + rpc__resp__wifi_deinit__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_deinit__free_unpacked + (RpcRespWifiDeinit *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiSetConfig methods */ +void rpc__req__wifi_set_config__init + (RpcReqWifiSetConfig *message); +size_t rpc__req__wifi_set_config__get_packed_size + (const RpcReqWifiSetConfig *message); +size_t rpc__req__wifi_set_config__pack + (const RpcReqWifiSetConfig *message, + uint8_t *out); +size_t rpc__req__wifi_set_config__pack_to_buffer + (const RpcReqWifiSetConfig *message, + ProtobufCBuffer *buffer); +RpcReqWifiSetConfig * + rpc__req__wifi_set_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_set_config__free_unpacked + (RpcReqWifiSetConfig *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiSetConfig methods */ +void rpc__resp__wifi_set_config__init + (RpcRespWifiSetConfig *message); +size_t rpc__resp__wifi_set_config__get_packed_size + (const RpcRespWifiSetConfig *message); +size_t rpc__resp__wifi_set_config__pack + (const RpcRespWifiSetConfig *message, + uint8_t *out); +size_t rpc__resp__wifi_set_config__pack_to_buffer + (const RpcRespWifiSetConfig *message, + ProtobufCBuffer *buffer); +RpcRespWifiSetConfig * + rpc__resp__wifi_set_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_set_config__free_unpacked + (RpcRespWifiSetConfig *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiGetConfig methods */ +void rpc__req__wifi_get_config__init + (RpcReqWifiGetConfig *message); +size_t rpc__req__wifi_get_config__get_packed_size + (const RpcReqWifiGetConfig *message); +size_t rpc__req__wifi_get_config__pack + (const RpcReqWifiGetConfig *message, + uint8_t *out); +size_t rpc__req__wifi_get_config__pack_to_buffer + (const RpcReqWifiGetConfig *message, + ProtobufCBuffer *buffer); +RpcReqWifiGetConfig * + rpc__req__wifi_get_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_get_config__free_unpacked + (RpcReqWifiGetConfig *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiGetConfig methods */ +void rpc__resp__wifi_get_config__init + (RpcRespWifiGetConfig *message); +size_t rpc__resp__wifi_get_config__get_packed_size + (const RpcRespWifiGetConfig *message); +size_t rpc__resp__wifi_get_config__pack + (const RpcRespWifiGetConfig *message, + uint8_t *out); +size_t rpc__resp__wifi_get_config__pack_to_buffer + (const RpcRespWifiGetConfig *message, + ProtobufCBuffer *buffer); +RpcRespWifiGetConfig * + rpc__resp__wifi_get_config__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_get_config__free_unpacked + (RpcRespWifiGetConfig *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiConnect methods */ +void rpc__req__wifi_connect__init + (RpcReqWifiConnect *message); +size_t rpc__req__wifi_connect__get_packed_size + (const RpcReqWifiConnect *message); +size_t rpc__req__wifi_connect__pack + (const RpcReqWifiConnect *message, + uint8_t *out); +size_t rpc__req__wifi_connect__pack_to_buffer + (const RpcReqWifiConnect *message, + ProtobufCBuffer *buffer); +RpcReqWifiConnect * + rpc__req__wifi_connect__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_connect__free_unpacked + (RpcReqWifiConnect *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiConnect methods */ +void rpc__resp__wifi_connect__init + (RpcRespWifiConnect *message); +size_t rpc__resp__wifi_connect__get_packed_size + (const RpcRespWifiConnect *message); +size_t rpc__resp__wifi_connect__pack + (const RpcRespWifiConnect *message, + uint8_t *out); +size_t rpc__resp__wifi_connect__pack_to_buffer + (const RpcRespWifiConnect *message, + ProtobufCBuffer *buffer); +RpcRespWifiConnect * + rpc__resp__wifi_connect__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_connect__free_unpacked + (RpcRespWifiConnect *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiDisconnect methods */ +void rpc__req__wifi_disconnect__init + (RpcReqWifiDisconnect *message); +size_t rpc__req__wifi_disconnect__get_packed_size + (const RpcReqWifiDisconnect *message); +size_t rpc__req__wifi_disconnect__pack + (const RpcReqWifiDisconnect *message, + uint8_t *out); +size_t rpc__req__wifi_disconnect__pack_to_buffer + (const RpcReqWifiDisconnect *message, + ProtobufCBuffer *buffer); +RpcReqWifiDisconnect * + rpc__req__wifi_disconnect__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_disconnect__free_unpacked + (RpcReqWifiDisconnect *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiDisconnect methods */ +void rpc__resp__wifi_disconnect__init + (RpcRespWifiDisconnect *message); +size_t rpc__resp__wifi_disconnect__get_packed_size + (const RpcRespWifiDisconnect *message); +size_t rpc__resp__wifi_disconnect__pack + (const RpcRespWifiDisconnect *message, + uint8_t *out); +size_t rpc__resp__wifi_disconnect__pack_to_buffer + (const RpcRespWifiDisconnect *message, + ProtobufCBuffer *buffer); +RpcRespWifiDisconnect * + rpc__resp__wifi_disconnect__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_disconnect__free_unpacked + (RpcRespWifiDisconnect *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiStart methods */ +void rpc__req__wifi_start__init + (RpcReqWifiStart *message); +size_t rpc__req__wifi_start__get_packed_size + (const RpcReqWifiStart *message); +size_t rpc__req__wifi_start__pack + (const RpcReqWifiStart *message, + uint8_t *out); +size_t rpc__req__wifi_start__pack_to_buffer + (const RpcReqWifiStart *message, + ProtobufCBuffer *buffer); +RpcReqWifiStart * + rpc__req__wifi_start__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_start__free_unpacked + (RpcReqWifiStart *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiStart methods */ +void rpc__resp__wifi_start__init + (RpcRespWifiStart *message); +size_t rpc__resp__wifi_start__get_packed_size + (const RpcRespWifiStart *message); +size_t rpc__resp__wifi_start__pack + (const RpcRespWifiStart *message, + uint8_t *out); +size_t rpc__resp__wifi_start__pack_to_buffer + (const RpcRespWifiStart *message, + ProtobufCBuffer *buffer); +RpcRespWifiStart * + rpc__resp__wifi_start__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_start__free_unpacked + (RpcRespWifiStart *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiStop methods */ +void rpc__req__wifi_stop__init + (RpcReqWifiStop *message); +size_t rpc__req__wifi_stop__get_packed_size + (const RpcReqWifiStop *message); +size_t rpc__req__wifi_stop__pack + (const RpcReqWifiStop *message, + uint8_t *out); +size_t rpc__req__wifi_stop__pack_to_buffer + (const RpcReqWifiStop *message, + ProtobufCBuffer *buffer); +RpcReqWifiStop * + rpc__req__wifi_stop__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_stop__free_unpacked + (RpcReqWifiStop *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiStop methods */ +void rpc__resp__wifi_stop__init + (RpcRespWifiStop *message); +size_t rpc__resp__wifi_stop__get_packed_size + (const RpcRespWifiStop *message); +size_t rpc__resp__wifi_stop__pack + (const RpcRespWifiStop *message, + uint8_t *out); +size_t rpc__resp__wifi_stop__pack_to_buffer + (const RpcRespWifiStop *message, + ProtobufCBuffer *buffer); +RpcRespWifiStop * + rpc__resp__wifi_stop__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_stop__free_unpacked + (RpcRespWifiStop *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiScanStart methods */ +void rpc__req__wifi_scan_start__init + (RpcReqWifiScanStart *message); +size_t rpc__req__wifi_scan_start__get_packed_size + (const RpcReqWifiScanStart *message); +size_t rpc__req__wifi_scan_start__pack + (const RpcReqWifiScanStart *message, + uint8_t *out); +size_t rpc__req__wifi_scan_start__pack_to_buffer + (const RpcReqWifiScanStart *message, + ProtobufCBuffer *buffer); +RpcReqWifiScanStart * + rpc__req__wifi_scan_start__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_scan_start__free_unpacked + (RpcReqWifiScanStart *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiScanStart methods */ +void rpc__resp__wifi_scan_start__init + (RpcRespWifiScanStart *message); +size_t rpc__resp__wifi_scan_start__get_packed_size + (const RpcRespWifiScanStart *message); +size_t rpc__resp__wifi_scan_start__pack + (const RpcRespWifiScanStart *message, + uint8_t *out); +size_t rpc__resp__wifi_scan_start__pack_to_buffer + (const RpcRespWifiScanStart *message, + ProtobufCBuffer *buffer); +RpcRespWifiScanStart * + rpc__resp__wifi_scan_start__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_scan_start__free_unpacked + (RpcRespWifiScanStart *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiScanStop methods */ +void rpc__req__wifi_scan_stop__init + (RpcReqWifiScanStop *message); +size_t rpc__req__wifi_scan_stop__get_packed_size + (const RpcReqWifiScanStop *message); +size_t rpc__req__wifi_scan_stop__pack + (const RpcReqWifiScanStop *message, + uint8_t *out); +size_t rpc__req__wifi_scan_stop__pack_to_buffer + (const RpcReqWifiScanStop *message, + ProtobufCBuffer *buffer); +RpcReqWifiScanStop * + rpc__req__wifi_scan_stop__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_scan_stop__free_unpacked + (RpcReqWifiScanStop *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiScanStop methods */ +void rpc__resp__wifi_scan_stop__init + (RpcRespWifiScanStop *message); +size_t rpc__resp__wifi_scan_stop__get_packed_size + (const RpcRespWifiScanStop *message); +size_t rpc__resp__wifi_scan_stop__pack + (const RpcRespWifiScanStop *message, + uint8_t *out); +size_t rpc__resp__wifi_scan_stop__pack_to_buffer + (const RpcRespWifiScanStop *message, + ProtobufCBuffer *buffer); +RpcRespWifiScanStop * + rpc__resp__wifi_scan_stop__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_scan_stop__free_unpacked + (RpcRespWifiScanStop *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiScanGetApNum methods */ +void rpc__req__wifi_scan_get_ap_num__init + (RpcReqWifiScanGetApNum *message); +size_t rpc__req__wifi_scan_get_ap_num__get_packed_size + (const RpcReqWifiScanGetApNum *message); +size_t rpc__req__wifi_scan_get_ap_num__pack + (const RpcReqWifiScanGetApNum *message, + uint8_t *out); +size_t rpc__req__wifi_scan_get_ap_num__pack_to_buffer + (const RpcReqWifiScanGetApNum *message, + ProtobufCBuffer *buffer); +RpcReqWifiScanGetApNum * + rpc__req__wifi_scan_get_ap_num__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_scan_get_ap_num__free_unpacked + (RpcReqWifiScanGetApNum *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiScanGetApNum methods */ +void rpc__resp__wifi_scan_get_ap_num__init + (RpcRespWifiScanGetApNum *message); +size_t rpc__resp__wifi_scan_get_ap_num__get_packed_size + (const RpcRespWifiScanGetApNum *message); +size_t rpc__resp__wifi_scan_get_ap_num__pack + (const RpcRespWifiScanGetApNum *message, + uint8_t *out); +size_t rpc__resp__wifi_scan_get_ap_num__pack_to_buffer + (const RpcRespWifiScanGetApNum *message, + ProtobufCBuffer *buffer); +RpcRespWifiScanGetApNum * + rpc__resp__wifi_scan_get_ap_num__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_scan_get_ap_num__free_unpacked + (RpcRespWifiScanGetApNum *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiScanGetApRecords methods */ +void rpc__req__wifi_scan_get_ap_records__init + (RpcReqWifiScanGetApRecords *message); +size_t rpc__req__wifi_scan_get_ap_records__get_packed_size + (const RpcReqWifiScanGetApRecords *message); +size_t rpc__req__wifi_scan_get_ap_records__pack + (const RpcReqWifiScanGetApRecords *message, + uint8_t *out); +size_t rpc__req__wifi_scan_get_ap_records__pack_to_buffer + (const RpcReqWifiScanGetApRecords *message, + ProtobufCBuffer *buffer); +RpcReqWifiScanGetApRecords * + rpc__req__wifi_scan_get_ap_records__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_scan_get_ap_records__free_unpacked + (RpcReqWifiScanGetApRecords *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiScanGetApRecords methods */ +void rpc__resp__wifi_scan_get_ap_records__init + (RpcRespWifiScanGetApRecords *message); +size_t rpc__resp__wifi_scan_get_ap_records__get_packed_size + (const RpcRespWifiScanGetApRecords *message); +size_t rpc__resp__wifi_scan_get_ap_records__pack + (const RpcRespWifiScanGetApRecords *message, + uint8_t *out); +size_t rpc__resp__wifi_scan_get_ap_records__pack_to_buffer + (const RpcRespWifiScanGetApRecords *message, + ProtobufCBuffer *buffer); +RpcRespWifiScanGetApRecords * + rpc__resp__wifi_scan_get_ap_records__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_scan_get_ap_records__free_unpacked + (RpcRespWifiScanGetApRecords *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiScanGetApRecord methods */ +void rpc__req__wifi_scan_get_ap_record__init + (RpcReqWifiScanGetApRecord *message); +size_t rpc__req__wifi_scan_get_ap_record__get_packed_size + (const RpcReqWifiScanGetApRecord *message); +size_t rpc__req__wifi_scan_get_ap_record__pack + (const RpcReqWifiScanGetApRecord *message, + uint8_t *out); +size_t rpc__req__wifi_scan_get_ap_record__pack_to_buffer + (const RpcReqWifiScanGetApRecord *message, + ProtobufCBuffer *buffer); +RpcReqWifiScanGetApRecord * + rpc__req__wifi_scan_get_ap_record__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_scan_get_ap_record__free_unpacked + (RpcReqWifiScanGetApRecord *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiScanGetApRecord methods */ +void rpc__resp__wifi_scan_get_ap_record__init + (RpcRespWifiScanGetApRecord *message); +size_t rpc__resp__wifi_scan_get_ap_record__get_packed_size + (const RpcRespWifiScanGetApRecord *message); +size_t rpc__resp__wifi_scan_get_ap_record__pack + (const RpcRespWifiScanGetApRecord *message, + uint8_t *out); +size_t rpc__resp__wifi_scan_get_ap_record__pack_to_buffer + (const RpcRespWifiScanGetApRecord *message, + ProtobufCBuffer *buffer); +RpcRespWifiScanGetApRecord * + rpc__resp__wifi_scan_get_ap_record__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_scan_get_ap_record__free_unpacked + (RpcRespWifiScanGetApRecord *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiClearApList methods */ +void rpc__req__wifi_clear_ap_list__init + (RpcReqWifiClearApList *message); +size_t rpc__req__wifi_clear_ap_list__get_packed_size + (const RpcReqWifiClearApList *message); +size_t rpc__req__wifi_clear_ap_list__pack + (const RpcReqWifiClearApList *message, + uint8_t *out); +size_t rpc__req__wifi_clear_ap_list__pack_to_buffer + (const RpcReqWifiClearApList *message, + ProtobufCBuffer *buffer); +RpcReqWifiClearApList * + rpc__req__wifi_clear_ap_list__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_clear_ap_list__free_unpacked + (RpcReqWifiClearApList *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiClearApList methods */ +void rpc__resp__wifi_clear_ap_list__init + (RpcRespWifiClearApList *message); +size_t rpc__resp__wifi_clear_ap_list__get_packed_size + (const RpcRespWifiClearApList *message); +size_t rpc__resp__wifi_clear_ap_list__pack + (const RpcRespWifiClearApList *message, + uint8_t *out); +size_t rpc__resp__wifi_clear_ap_list__pack_to_buffer + (const RpcRespWifiClearApList *message, + ProtobufCBuffer *buffer); +RpcRespWifiClearApList * + rpc__resp__wifi_clear_ap_list__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_clear_ap_list__free_unpacked + (RpcRespWifiClearApList *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiRestore methods */ +void rpc__req__wifi_restore__init + (RpcReqWifiRestore *message); +size_t rpc__req__wifi_restore__get_packed_size + (const RpcReqWifiRestore *message); +size_t rpc__req__wifi_restore__pack + (const RpcReqWifiRestore *message, + uint8_t *out); +size_t rpc__req__wifi_restore__pack_to_buffer + (const RpcReqWifiRestore *message, + ProtobufCBuffer *buffer); +RpcReqWifiRestore * + rpc__req__wifi_restore__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_restore__free_unpacked + (RpcReqWifiRestore *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiRestore methods */ +void rpc__resp__wifi_restore__init + (RpcRespWifiRestore *message); +size_t rpc__resp__wifi_restore__get_packed_size + (const RpcRespWifiRestore *message); +size_t rpc__resp__wifi_restore__pack + (const RpcRespWifiRestore *message, + uint8_t *out); +size_t rpc__resp__wifi_restore__pack_to_buffer + (const RpcRespWifiRestore *message, + ProtobufCBuffer *buffer); +RpcRespWifiRestore * + rpc__resp__wifi_restore__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_restore__free_unpacked + (RpcRespWifiRestore *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiClearFastConnect methods */ +void rpc__req__wifi_clear_fast_connect__init + (RpcReqWifiClearFastConnect *message); +size_t rpc__req__wifi_clear_fast_connect__get_packed_size + (const RpcReqWifiClearFastConnect *message); +size_t rpc__req__wifi_clear_fast_connect__pack + (const RpcReqWifiClearFastConnect *message, + uint8_t *out); +size_t rpc__req__wifi_clear_fast_connect__pack_to_buffer + (const RpcReqWifiClearFastConnect *message, + ProtobufCBuffer *buffer); +RpcReqWifiClearFastConnect * + rpc__req__wifi_clear_fast_connect__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_clear_fast_connect__free_unpacked + (RpcReqWifiClearFastConnect *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiClearFastConnect methods */ +void rpc__resp__wifi_clear_fast_connect__init + (RpcRespWifiClearFastConnect *message); +size_t rpc__resp__wifi_clear_fast_connect__get_packed_size + (const RpcRespWifiClearFastConnect *message); +size_t rpc__resp__wifi_clear_fast_connect__pack + (const RpcRespWifiClearFastConnect *message, + uint8_t *out); +size_t rpc__resp__wifi_clear_fast_connect__pack_to_buffer + (const RpcRespWifiClearFastConnect *message, + ProtobufCBuffer *buffer); +RpcRespWifiClearFastConnect * + rpc__resp__wifi_clear_fast_connect__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_clear_fast_connect__free_unpacked + (RpcRespWifiClearFastConnect *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiDeauthSta methods */ +void rpc__req__wifi_deauth_sta__init + (RpcReqWifiDeauthSta *message); +size_t rpc__req__wifi_deauth_sta__get_packed_size + (const RpcReqWifiDeauthSta *message); +size_t rpc__req__wifi_deauth_sta__pack + (const RpcReqWifiDeauthSta *message, + uint8_t *out); +size_t rpc__req__wifi_deauth_sta__pack_to_buffer + (const RpcReqWifiDeauthSta *message, + ProtobufCBuffer *buffer); +RpcReqWifiDeauthSta * + rpc__req__wifi_deauth_sta__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_deauth_sta__free_unpacked + (RpcReqWifiDeauthSta *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiDeauthSta methods */ +void rpc__resp__wifi_deauth_sta__init + (RpcRespWifiDeauthSta *message); +size_t rpc__resp__wifi_deauth_sta__get_packed_size + (const RpcRespWifiDeauthSta *message); +size_t rpc__resp__wifi_deauth_sta__pack + (const RpcRespWifiDeauthSta *message, + uint8_t *out); +size_t rpc__resp__wifi_deauth_sta__pack_to_buffer + (const RpcRespWifiDeauthSta *message, + ProtobufCBuffer *buffer); +RpcRespWifiDeauthSta * + rpc__resp__wifi_deauth_sta__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_deauth_sta__free_unpacked + (RpcRespWifiDeauthSta *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiStaGetApInfo methods */ +void rpc__req__wifi_sta_get_ap_info__init + (RpcReqWifiStaGetApInfo *message); +size_t rpc__req__wifi_sta_get_ap_info__get_packed_size + (const RpcReqWifiStaGetApInfo *message); +size_t rpc__req__wifi_sta_get_ap_info__pack + (const RpcReqWifiStaGetApInfo *message, + uint8_t *out); +size_t rpc__req__wifi_sta_get_ap_info__pack_to_buffer + (const RpcReqWifiStaGetApInfo *message, + ProtobufCBuffer *buffer); +RpcReqWifiStaGetApInfo * + rpc__req__wifi_sta_get_ap_info__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_sta_get_ap_info__free_unpacked + (RpcReqWifiStaGetApInfo *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiStaGetApInfo methods */ +void rpc__resp__wifi_sta_get_ap_info__init + (RpcRespWifiStaGetApInfo *message); +size_t rpc__resp__wifi_sta_get_ap_info__get_packed_size + (const RpcRespWifiStaGetApInfo *message); +size_t rpc__resp__wifi_sta_get_ap_info__pack + (const RpcRespWifiStaGetApInfo *message, + uint8_t *out); +size_t rpc__resp__wifi_sta_get_ap_info__pack_to_buffer + (const RpcRespWifiStaGetApInfo *message, + ProtobufCBuffer *buffer); +RpcRespWifiStaGetApInfo * + rpc__resp__wifi_sta_get_ap_info__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_sta_get_ap_info__free_unpacked + (RpcRespWifiStaGetApInfo *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiSetProtocol methods */ +void rpc__req__wifi_set_protocol__init + (RpcReqWifiSetProtocol *message); +size_t rpc__req__wifi_set_protocol__get_packed_size + (const RpcReqWifiSetProtocol *message); +size_t rpc__req__wifi_set_protocol__pack + (const RpcReqWifiSetProtocol *message, + uint8_t *out); +size_t rpc__req__wifi_set_protocol__pack_to_buffer + (const RpcReqWifiSetProtocol *message, + ProtobufCBuffer *buffer); +RpcReqWifiSetProtocol * + rpc__req__wifi_set_protocol__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_set_protocol__free_unpacked + (RpcReqWifiSetProtocol *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiSetProtocol methods */ +void rpc__resp__wifi_set_protocol__init + (RpcRespWifiSetProtocol *message); +size_t rpc__resp__wifi_set_protocol__get_packed_size + (const RpcRespWifiSetProtocol *message); +size_t rpc__resp__wifi_set_protocol__pack + (const RpcRespWifiSetProtocol *message, + uint8_t *out); +size_t rpc__resp__wifi_set_protocol__pack_to_buffer + (const RpcRespWifiSetProtocol *message, + ProtobufCBuffer *buffer); +RpcRespWifiSetProtocol * + rpc__resp__wifi_set_protocol__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_set_protocol__free_unpacked + (RpcRespWifiSetProtocol *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiGetProtocol methods */ +void rpc__req__wifi_get_protocol__init + (RpcReqWifiGetProtocol *message); +size_t rpc__req__wifi_get_protocol__get_packed_size + (const RpcReqWifiGetProtocol *message); +size_t rpc__req__wifi_get_protocol__pack + (const RpcReqWifiGetProtocol *message, + uint8_t *out); +size_t rpc__req__wifi_get_protocol__pack_to_buffer + (const RpcReqWifiGetProtocol *message, + ProtobufCBuffer *buffer); +RpcReqWifiGetProtocol * + rpc__req__wifi_get_protocol__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_get_protocol__free_unpacked + (RpcReqWifiGetProtocol *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiGetProtocol methods */ +void rpc__resp__wifi_get_protocol__init + (RpcRespWifiGetProtocol *message); +size_t rpc__resp__wifi_get_protocol__get_packed_size + (const RpcRespWifiGetProtocol *message); +size_t rpc__resp__wifi_get_protocol__pack + (const RpcRespWifiGetProtocol *message, + uint8_t *out); +size_t rpc__resp__wifi_get_protocol__pack_to_buffer + (const RpcRespWifiGetProtocol *message, + ProtobufCBuffer *buffer); +RpcRespWifiGetProtocol * + rpc__resp__wifi_get_protocol__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_get_protocol__free_unpacked + (RpcRespWifiGetProtocol *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiSetBandwidth methods */ +void rpc__req__wifi_set_bandwidth__init + (RpcReqWifiSetBandwidth *message); +size_t rpc__req__wifi_set_bandwidth__get_packed_size + (const RpcReqWifiSetBandwidth *message); +size_t rpc__req__wifi_set_bandwidth__pack + (const RpcReqWifiSetBandwidth *message, + uint8_t *out); +size_t rpc__req__wifi_set_bandwidth__pack_to_buffer + (const RpcReqWifiSetBandwidth *message, + ProtobufCBuffer *buffer); +RpcReqWifiSetBandwidth * + rpc__req__wifi_set_bandwidth__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_set_bandwidth__free_unpacked + (RpcReqWifiSetBandwidth *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiSetBandwidth methods */ +void rpc__resp__wifi_set_bandwidth__init + (RpcRespWifiSetBandwidth *message); +size_t rpc__resp__wifi_set_bandwidth__get_packed_size + (const RpcRespWifiSetBandwidth *message); +size_t rpc__resp__wifi_set_bandwidth__pack + (const RpcRespWifiSetBandwidth *message, + uint8_t *out); +size_t rpc__resp__wifi_set_bandwidth__pack_to_buffer + (const RpcRespWifiSetBandwidth *message, + ProtobufCBuffer *buffer); +RpcRespWifiSetBandwidth * + rpc__resp__wifi_set_bandwidth__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_set_bandwidth__free_unpacked + (RpcRespWifiSetBandwidth *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiGetBandwidth methods */ +void rpc__req__wifi_get_bandwidth__init + (RpcReqWifiGetBandwidth *message); +size_t rpc__req__wifi_get_bandwidth__get_packed_size + (const RpcReqWifiGetBandwidth *message); +size_t rpc__req__wifi_get_bandwidth__pack + (const RpcReqWifiGetBandwidth *message, + uint8_t *out); +size_t rpc__req__wifi_get_bandwidth__pack_to_buffer + (const RpcReqWifiGetBandwidth *message, + ProtobufCBuffer *buffer); +RpcReqWifiGetBandwidth * + rpc__req__wifi_get_bandwidth__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_get_bandwidth__free_unpacked + (RpcReqWifiGetBandwidth *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiGetBandwidth methods */ +void rpc__resp__wifi_get_bandwidth__init + (RpcRespWifiGetBandwidth *message); +size_t rpc__resp__wifi_get_bandwidth__get_packed_size + (const RpcRespWifiGetBandwidth *message); +size_t rpc__resp__wifi_get_bandwidth__pack + (const RpcRespWifiGetBandwidth *message, + uint8_t *out); +size_t rpc__resp__wifi_get_bandwidth__pack_to_buffer + (const RpcRespWifiGetBandwidth *message, + ProtobufCBuffer *buffer); +RpcRespWifiGetBandwidth * + rpc__resp__wifi_get_bandwidth__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_get_bandwidth__free_unpacked + (RpcRespWifiGetBandwidth *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiSetChannel methods */ +void rpc__req__wifi_set_channel__init + (RpcReqWifiSetChannel *message); +size_t rpc__req__wifi_set_channel__get_packed_size + (const RpcReqWifiSetChannel *message); +size_t rpc__req__wifi_set_channel__pack + (const RpcReqWifiSetChannel *message, + uint8_t *out); +size_t rpc__req__wifi_set_channel__pack_to_buffer + (const RpcReqWifiSetChannel *message, + ProtobufCBuffer *buffer); +RpcReqWifiSetChannel * + rpc__req__wifi_set_channel__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_set_channel__free_unpacked + (RpcReqWifiSetChannel *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiSetChannel methods */ +void rpc__resp__wifi_set_channel__init + (RpcRespWifiSetChannel *message); +size_t rpc__resp__wifi_set_channel__get_packed_size + (const RpcRespWifiSetChannel *message); +size_t rpc__resp__wifi_set_channel__pack + (const RpcRespWifiSetChannel *message, + uint8_t *out); +size_t rpc__resp__wifi_set_channel__pack_to_buffer + (const RpcRespWifiSetChannel *message, + ProtobufCBuffer *buffer); +RpcRespWifiSetChannel * + rpc__resp__wifi_set_channel__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_set_channel__free_unpacked + (RpcRespWifiSetChannel *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiGetChannel methods */ +void rpc__req__wifi_get_channel__init + (RpcReqWifiGetChannel *message); +size_t rpc__req__wifi_get_channel__get_packed_size + (const RpcReqWifiGetChannel *message); +size_t rpc__req__wifi_get_channel__pack + (const RpcReqWifiGetChannel *message, + uint8_t *out); +size_t rpc__req__wifi_get_channel__pack_to_buffer + (const RpcReqWifiGetChannel *message, + ProtobufCBuffer *buffer); +RpcReqWifiGetChannel * + rpc__req__wifi_get_channel__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_get_channel__free_unpacked + (RpcReqWifiGetChannel *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiGetChannel methods */ +void rpc__resp__wifi_get_channel__init + (RpcRespWifiGetChannel *message); +size_t rpc__resp__wifi_get_channel__get_packed_size + (const RpcRespWifiGetChannel *message); +size_t rpc__resp__wifi_get_channel__pack + (const RpcRespWifiGetChannel *message, + uint8_t *out); +size_t rpc__resp__wifi_get_channel__pack_to_buffer + (const RpcRespWifiGetChannel *message, + ProtobufCBuffer *buffer); +RpcRespWifiGetChannel * + rpc__resp__wifi_get_channel__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_get_channel__free_unpacked + (RpcRespWifiGetChannel *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiSetStorage methods */ +void rpc__req__wifi_set_storage__init + (RpcReqWifiSetStorage *message); +size_t rpc__req__wifi_set_storage__get_packed_size + (const RpcReqWifiSetStorage *message); +size_t rpc__req__wifi_set_storage__pack + (const RpcReqWifiSetStorage *message, + uint8_t *out); +size_t rpc__req__wifi_set_storage__pack_to_buffer + (const RpcReqWifiSetStorage *message, + ProtobufCBuffer *buffer); +RpcReqWifiSetStorage * + rpc__req__wifi_set_storage__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_set_storage__free_unpacked + (RpcReqWifiSetStorage *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiSetStorage methods */ +void rpc__resp__wifi_set_storage__init + (RpcRespWifiSetStorage *message); +size_t rpc__resp__wifi_set_storage__get_packed_size + (const RpcRespWifiSetStorage *message); +size_t rpc__resp__wifi_set_storage__pack + (const RpcRespWifiSetStorage *message, + uint8_t *out); +size_t rpc__resp__wifi_set_storage__pack_to_buffer + (const RpcRespWifiSetStorage *message, + ProtobufCBuffer *buffer); +RpcRespWifiSetStorage * + rpc__resp__wifi_set_storage__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_set_storage__free_unpacked + (RpcRespWifiSetStorage *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiSetCountryCode methods */ +void rpc__req__wifi_set_country_code__init + (RpcReqWifiSetCountryCode *message); +size_t rpc__req__wifi_set_country_code__get_packed_size + (const RpcReqWifiSetCountryCode *message); +size_t rpc__req__wifi_set_country_code__pack + (const RpcReqWifiSetCountryCode *message, + uint8_t *out); +size_t rpc__req__wifi_set_country_code__pack_to_buffer + (const RpcReqWifiSetCountryCode *message, + ProtobufCBuffer *buffer); +RpcReqWifiSetCountryCode * + rpc__req__wifi_set_country_code__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_set_country_code__free_unpacked + (RpcReqWifiSetCountryCode *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiSetCountryCode methods */ +void rpc__resp__wifi_set_country_code__init + (RpcRespWifiSetCountryCode *message); +size_t rpc__resp__wifi_set_country_code__get_packed_size + (const RpcRespWifiSetCountryCode *message); +size_t rpc__resp__wifi_set_country_code__pack + (const RpcRespWifiSetCountryCode *message, + uint8_t *out); +size_t rpc__resp__wifi_set_country_code__pack_to_buffer + (const RpcRespWifiSetCountryCode *message, + ProtobufCBuffer *buffer); +RpcRespWifiSetCountryCode * + rpc__resp__wifi_set_country_code__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_set_country_code__free_unpacked + (RpcRespWifiSetCountryCode *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiGetCountryCode methods */ +void rpc__req__wifi_get_country_code__init + (RpcReqWifiGetCountryCode *message); +size_t rpc__req__wifi_get_country_code__get_packed_size + (const RpcReqWifiGetCountryCode *message); +size_t rpc__req__wifi_get_country_code__pack + (const RpcReqWifiGetCountryCode *message, + uint8_t *out); +size_t rpc__req__wifi_get_country_code__pack_to_buffer + (const RpcReqWifiGetCountryCode *message, + ProtobufCBuffer *buffer); +RpcReqWifiGetCountryCode * + rpc__req__wifi_get_country_code__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_get_country_code__free_unpacked + (RpcReqWifiGetCountryCode *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiGetCountryCode methods */ +void rpc__resp__wifi_get_country_code__init + (RpcRespWifiGetCountryCode *message); +size_t rpc__resp__wifi_get_country_code__get_packed_size + (const RpcRespWifiGetCountryCode *message); +size_t rpc__resp__wifi_get_country_code__pack + (const RpcRespWifiGetCountryCode *message, + uint8_t *out); +size_t rpc__resp__wifi_get_country_code__pack_to_buffer + (const RpcRespWifiGetCountryCode *message, + ProtobufCBuffer *buffer); +RpcRespWifiGetCountryCode * + rpc__resp__wifi_get_country_code__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_get_country_code__free_unpacked + (RpcRespWifiGetCountryCode *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiSetCountry methods */ +void rpc__req__wifi_set_country__init + (RpcReqWifiSetCountry *message); +size_t rpc__req__wifi_set_country__get_packed_size + (const RpcReqWifiSetCountry *message); +size_t rpc__req__wifi_set_country__pack + (const RpcReqWifiSetCountry *message, + uint8_t *out); +size_t rpc__req__wifi_set_country__pack_to_buffer + (const RpcReqWifiSetCountry *message, + ProtobufCBuffer *buffer); +RpcReqWifiSetCountry * + rpc__req__wifi_set_country__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_set_country__free_unpacked + (RpcReqWifiSetCountry *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiSetCountry methods */ +void rpc__resp__wifi_set_country__init + (RpcRespWifiSetCountry *message); +size_t rpc__resp__wifi_set_country__get_packed_size + (const RpcRespWifiSetCountry *message); +size_t rpc__resp__wifi_set_country__pack + (const RpcRespWifiSetCountry *message, + uint8_t *out); +size_t rpc__resp__wifi_set_country__pack_to_buffer + (const RpcRespWifiSetCountry *message, + ProtobufCBuffer *buffer); +RpcRespWifiSetCountry * + rpc__resp__wifi_set_country__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_set_country__free_unpacked + (RpcRespWifiSetCountry *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiGetCountry methods */ +void rpc__req__wifi_get_country__init + (RpcReqWifiGetCountry *message); +size_t rpc__req__wifi_get_country__get_packed_size + (const RpcReqWifiGetCountry *message); +size_t rpc__req__wifi_get_country__pack + (const RpcReqWifiGetCountry *message, + uint8_t *out); +size_t rpc__req__wifi_get_country__pack_to_buffer + (const RpcReqWifiGetCountry *message, + ProtobufCBuffer *buffer); +RpcReqWifiGetCountry * + rpc__req__wifi_get_country__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_get_country__free_unpacked + (RpcReqWifiGetCountry *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiGetCountry methods */ +void rpc__resp__wifi_get_country__init + (RpcRespWifiGetCountry *message); +size_t rpc__resp__wifi_get_country__get_packed_size + (const RpcRespWifiGetCountry *message); +size_t rpc__resp__wifi_get_country__pack + (const RpcRespWifiGetCountry *message, + uint8_t *out); +size_t rpc__resp__wifi_get_country__pack_to_buffer + (const RpcRespWifiGetCountry *message, + ProtobufCBuffer *buffer); +RpcRespWifiGetCountry * + rpc__resp__wifi_get_country__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_get_country__free_unpacked + (RpcRespWifiGetCountry *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiApGetStaList methods */ +void rpc__req__wifi_ap_get_sta_list__init + (RpcReqWifiApGetStaList *message); +size_t rpc__req__wifi_ap_get_sta_list__get_packed_size + (const RpcReqWifiApGetStaList *message); +size_t rpc__req__wifi_ap_get_sta_list__pack + (const RpcReqWifiApGetStaList *message, + uint8_t *out); +size_t rpc__req__wifi_ap_get_sta_list__pack_to_buffer + (const RpcReqWifiApGetStaList *message, + ProtobufCBuffer *buffer); +RpcReqWifiApGetStaList * + rpc__req__wifi_ap_get_sta_list__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_ap_get_sta_list__free_unpacked + (RpcReqWifiApGetStaList *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiApGetStaList methods */ +void rpc__resp__wifi_ap_get_sta_list__init + (RpcRespWifiApGetStaList *message); +size_t rpc__resp__wifi_ap_get_sta_list__get_packed_size + (const RpcRespWifiApGetStaList *message); +size_t rpc__resp__wifi_ap_get_sta_list__pack + (const RpcRespWifiApGetStaList *message, + uint8_t *out); +size_t rpc__resp__wifi_ap_get_sta_list__pack_to_buffer + (const RpcRespWifiApGetStaList *message, + ProtobufCBuffer *buffer); +RpcRespWifiApGetStaList * + rpc__resp__wifi_ap_get_sta_list__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_ap_get_sta_list__free_unpacked + (RpcRespWifiApGetStaList *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiApGetStaAid methods */ +void rpc__req__wifi_ap_get_sta_aid__init + (RpcReqWifiApGetStaAid *message); +size_t rpc__req__wifi_ap_get_sta_aid__get_packed_size + (const RpcReqWifiApGetStaAid *message); +size_t rpc__req__wifi_ap_get_sta_aid__pack + (const RpcReqWifiApGetStaAid *message, + uint8_t *out); +size_t rpc__req__wifi_ap_get_sta_aid__pack_to_buffer + (const RpcReqWifiApGetStaAid *message, + ProtobufCBuffer *buffer); +RpcReqWifiApGetStaAid * + rpc__req__wifi_ap_get_sta_aid__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_ap_get_sta_aid__free_unpacked + (RpcReqWifiApGetStaAid *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiStaGetNegotiatedPhymode methods */ +void rpc__req__wifi_sta_get_negotiated_phymode__init + (RpcReqWifiStaGetNegotiatedPhymode *message); +size_t rpc__req__wifi_sta_get_negotiated_phymode__get_packed_size + (const RpcReqWifiStaGetNegotiatedPhymode *message); +size_t rpc__req__wifi_sta_get_negotiated_phymode__pack + (const RpcReqWifiStaGetNegotiatedPhymode *message, + uint8_t *out); +size_t rpc__req__wifi_sta_get_negotiated_phymode__pack_to_buffer + (const RpcReqWifiStaGetNegotiatedPhymode *message, + ProtobufCBuffer *buffer); +RpcReqWifiStaGetNegotiatedPhymode * + rpc__req__wifi_sta_get_negotiated_phymode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_sta_get_negotiated_phymode__free_unpacked + (RpcReqWifiStaGetNegotiatedPhymode *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiStaGetNegotiatedPhymode methods */ +void rpc__resp__wifi_sta_get_negotiated_phymode__init + (RpcRespWifiStaGetNegotiatedPhymode *message); +size_t rpc__resp__wifi_sta_get_negotiated_phymode__get_packed_size + (const RpcRespWifiStaGetNegotiatedPhymode *message); +size_t rpc__resp__wifi_sta_get_negotiated_phymode__pack + (const RpcRespWifiStaGetNegotiatedPhymode *message, + uint8_t *out); +size_t rpc__resp__wifi_sta_get_negotiated_phymode__pack_to_buffer + (const RpcRespWifiStaGetNegotiatedPhymode *message, + ProtobufCBuffer *buffer); +RpcRespWifiStaGetNegotiatedPhymode * + rpc__resp__wifi_sta_get_negotiated_phymode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_sta_get_negotiated_phymode__free_unpacked + (RpcRespWifiStaGetNegotiatedPhymode *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiApGetStaAid methods */ +void rpc__resp__wifi_ap_get_sta_aid__init + (RpcRespWifiApGetStaAid *message); +size_t rpc__resp__wifi_ap_get_sta_aid__get_packed_size + (const RpcRespWifiApGetStaAid *message); +size_t rpc__resp__wifi_ap_get_sta_aid__pack + (const RpcRespWifiApGetStaAid *message, + uint8_t *out); +size_t rpc__resp__wifi_ap_get_sta_aid__pack_to_buffer + (const RpcRespWifiApGetStaAid *message, + ProtobufCBuffer *buffer); +RpcRespWifiApGetStaAid * + rpc__resp__wifi_ap_get_sta_aid__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_ap_get_sta_aid__free_unpacked + (RpcRespWifiApGetStaAid *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiStaGetRssi methods */ +void rpc__req__wifi_sta_get_rssi__init + (RpcReqWifiStaGetRssi *message); +size_t rpc__req__wifi_sta_get_rssi__get_packed_size + (const RpcReqWifiStaGetRssi *message); +size_t rpc__req__wifi_sta_get_rssi__pack + (const RpcReqWifiStaGetRssi *message, + uint8_t *out); +size_t rpc__req__wifi_sta_get_rssi__pack_to_buffer + (const RpcReqWifiStaGetRssi *message, + ProtobufCBuffer *buffer); +RpcReqWifiStaGetRssi * + rpc__req__wifi_sta_get_rssi__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_sta_get_rssi__free_unpacked + (RpcReqWifiStaGetRssi *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiStaGetRssi methods */ +void rpc__resp__wifi_sta_get_rssi__init + (RpcRespWifiStaGetRssi *message); +size_t rpc__resp__wifi_sta_get_rssi__get_packed_size + (const RpcRespWifiStaGetRssi *message); +size_t rpc__resp__wifi_sta_get_rssi__pack + (const RpcRespWifiStaGetRssi *message, + uint8_t *out); +size_t rpc__resp__wifi_sta_get_rssi__pack_to_buffer + (const RpcRespWifiStaGetRssi *message, + ProtobufCBuffer *buffer); +RpcRespWifiStaGetRssi * + rpc__resp__wifi_sta_get_rssi__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_sta_get_rssi__free_unpacked + (RpcRespWifiStaGetRssi *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiStaGetAid methods */ +void rpc__req__wifi_sta_get_aid__init + (RpcReqWifiStaGetAid *message); +size_t rpc__req__wifi_sta_get_aid__get_packed_size + (const RpcReqWifiStaGetAid *message); +size_t rpc__req__wifi_sta_get_aid__pack + (const RpcReqWifiStaGetAid *message, + uint8_t *out); +size_t rpc__req__wifi_sta_get_aid__pack_to_buffer + (const RpcReqWifiStaGetAid *message, + ProtobufCBuffer *buffer); +RpcReqWifiStaGetAid * + rpc__req__wifi_sta_get_aid__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_sta_get_aid__free_unpacked + (RpcReqWifiStaGetAid *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiStaGetAid methods */ +void rpc__resp__wifi_sta_get_aid__init + (RpcRespWifiStaGetAid *message); +size_t rpc__resp__wifi_sta_get_aid__get_packed_size + (const RpcRespWifiStaGetAid *message); +size_t rpc__resp__wifi_sta_get_aid__pack + (const RpcRespWifiStaGetAid *message, + uint8_t *out); +size_t rpc__resp__wifi_sta_get_aid__pack_to_buffer + (const RpcRespWifiStaGetAid *message, + ProtobufCBuffer *buffer); +RpcRespWifiStaGetAid * + rpc__resp__wifi_sta_get_aid__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_sta_get_aid__free_unpacked + (RpcRespWifiStaGetAid *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiSetProtocols methods */ +void rpc__req__wifi_set_protocols__init + (RpcReqWifiSetProtocols *message); +size_t rpc__req__wifi_set_protocols__get_packed_size + (const RpcReqWifiSetProtocols *message); +size_t rpc__req__wifi_set_protocols__pack + (const RpcReqWifiSetProtocols *message, + uint8_t *out); +size_t rpc__req__wifi_set_protocols__pack_to_buffer + (const RpcReqWifiSetProtocols *message, + ProtobufCBuffer *buffer); +RpcReqWifiSetProtocols * + rpc__req__wifi_set_protocols__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_set_protocols__free_unpacked + (RpcReqWifiSetProtocols *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiSetProtocols methods */ +void rpc__resp__wifi_set_protocols__init + (RpcRespWifiSetProtocols *message); +size_t rpc__resp__wifi_set_protocols__get_packed_size + (const RpcRespWifiSetProtocols *message); +size_t rpc__resp__wifi_set_protocols__pack + (const RpcRespWifiSetProtocols *message, + uint8_t *out); +size_t rpc__resp__wifi_set_protocols__pack_to_buffer + (const RpcRespWifiSetProtocols *message, + ProtobufCBuffer *buffer); +RpcRespWifiSetProtocols * + rpc__resp__wifi_set_protocols__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_set_protocols__free_unpacked + (RpcRespWifiSetProtocols *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiGetProtocols methods */ +void rpc__req__wifi_get_protocols__init + (RpcReqWifiGetProtocols *message); +size_t rpc__req__wifi_get_protocols__get_packed_size + (const RpcReqWifiGetProtocols *message); +size_t rpc__req__wifi_get_protocols__pack + (const RpcReqWifiGetProtocols *message, + uint8_t *out); +size_t rpc__req__wifi_get_protocols__pack_to_buffer + (const RpcReqWifiGetProtocols *message, + ProtobufCBuffer *buffer); +RpcReqWifiGetProtocols * + rpc__req__wifi_get_protocols__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_get_protocols__free_unpacked + (RpcReqWifiGetProtocols *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiGetProtocols methods */ +void rpc__resp__wifi_get_protocols__init + (RpcRespWifiGetProtocols *message); +size_t rpc__resp__wifi_get_protocols__get_packed_size + (const RpcRespWifiGetProtocols *message); +size_t rpc__resp__wifi_get_protocols__pack + (const RpcRespWifiGetProtocols *message, + uint8_t *out); +size_t rpc__resp__wifi_get_protocols__pack_to_buffer + (const RpcRespWifiGetProtocols *message, + ProtobufCBuffer *buffer); +RpcRespWifiGetProtocols * + rpc__resp__wifi_get_protocols__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_get_protocols__free_unpacked + (RpcRespWifiGetProtocols *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiSetBandwidths methods */ +void rpc__req__wifi_set_bandwidths__init + (RpcReqWifiSetBandwidths *message); +size_t rpc__req__wifi_set_bandwidths__get_packed_size + (const RpcReqWifiSetBandwidths *message); +size_t rpc__req__wifi_set_bandwidths__pack + (const RpcReqWifiSetBandwidths *message, + uint8_t *out); +size_t rpc__req__wifi_set_bandwidths__pack_to_buffer + (const RpcReqWifiSetBandwidths *message, + ProtobufCBuffer *buffer); +RpcReqWifiSetBandwidths * + rpc__req__wifi_set_bandwidths__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_set_bandwidths__free_unpacked + (RpcReqWifiSetBandwidths *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiSetBandwidths methods */ +void rpc__resp__wifi_set_bandwidths__init + (RpcRespWifiSetBandwidths *message); +size_t rpc__resp__wifi_set_bandwidths__get_packed_size + (const RpcRespWifiSetBandwidths *message); +size_t rpc__resp__wifi_set_bandwidths__pack + (const RpcRespWifiSetBandwidths *message, + uint8_t *out); +size_t rpc__resp__wifi_set_bandwidths__pack_to_buffer + (const RpcRespWifiSetBandwidths *message, + ProtobufCBuffer *buffer); +RpcRespWifiSetBandwidths * + rpc__resp__wifi_set_bandwidths__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_set_bandwidths__free_unpacked + (RpcRespWifiSetBandwidths *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiGetBandwidths methods */ +void rpc__req__wifi_get_bandwidths__init + (RpcReqWifiGetBandwidths *message); +size_t rpc__req__wifi_get_bandwidths__get_packed_size + (const RpcReqWifiGetBandwidths *message); +size_t rpc__req__wifi_get_bandwidths__pack + (const RpcReqWifiGetBandwidths *message, + uint8_t *out); +size_t rpc__req__wifi_get_bandwidths__pack_to_buffer + (const RpcReqWifiGetBandwidths *message, + ProtobufCBuffer *buffer); +RpcReqWifiGetBandwidths * + rpc__req__wifi_get_bandwidths__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_get_bandwidths__free_unpacked + (RpcReqWifiGetBandwidths *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiGetBandwidths methods */ +void rpc__resp__wifi_get_bandwidths__init + (RpcRespWifiGetBandwidths *message); +size_t rpc__resp__wifi_get_bandwidths__get_packed_size + (const RpcRespWifiGetBandwidths *message); +size_t rpc__resp__wifi_get_bandwidths__pack + (const RpcRespWifiGetBandwidths *message, + uint8_t *out); +size_t rpc__resp__wifi_get_bandwidths__pack_to_buffer + (const RpcRespWifiGetBandwidths *message, + ProtobufCBuffer *buffer); +RpcRespWifiGetBandwidths * + rpc__resp__wifi_get_bandwidths__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_get_bandwidths__free_unpacked + (RpcRespWifiGetBandwidths *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiSetBand methods */ +void rpc__req__wifi_set_band__init + (RpcReqWifiSetBand *message); +size_t rpc__req__wifi_set_band__get_packed_size + (const RpcReqWifiSetBand *message); +size_t rpc__req__wifi_set_band__pack + (const RpcReqWifiSetBand *message, + uint8_t *out); +size_t rpc__req__wifi_set_band__pack_to_buffer + (const RpcReqWifiSetBand *message, + ProtobufCBuffer *buffer); +RpcReqWifiSetBand * + rpc__req__wifi_set_band__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_set_band__free_unpacked + (RpcReqWifiSetBand *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiSetBand methods */ +void rpc__resp__wifi_set_band__init + (RpcRespWifiSetBand *message); +size_t rpc__resp__wifi_set_band__get_packed_size + (const RpcRespWifiSetBand *message); +size_t rpc__resp__wifi_set_band__pack + (const RpcRespWifiSetBand *message, + uint8_t *out); +size_t rpc__resp__wifi_set_band__pack_to_buffer + (const RpcRespWifiSetBand *message, + ProtobufCBuffer *buffer); +RpcRespWifiSetBand * + rpc__resp__wifi_set_band__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_set_band__free_unpacked + (RpcRespWifiSetBand *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiGetBand methods */ +void rpc__req__wifi_get_band__init + (RpcReqWifiGetBand *message); +size_t rpc__req__wifi_get_band__get_packed_size + (const RpcReqWifiGetBand *message); +size_t rpc__req__wifi_get_band__pack + (const RpcReqWifiGetBand *message, + uint8_t *out); +size_t rpc__req__wifi_get_band__pack_to_buffer + (const RpcReqWifiGetBand *message, + ProtobufCBuffer *buffer); +RpcReqWifiGetBand * + rpc__req__wifi_get_band__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_get_band__free_unpacked + (RpcReqWifiGetBand *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiGetBand methods */ +void rpc__resp__wifi_get_band__init + (RpcRespWifiGetBand *message); +size_t rpc__resp__wifi_get_band__get_packed_size + (const RpcRespWifiGetBand *message); +size_t rpc__resp__wifi_get_band__pack + (const RpcRespWifiGetBand *message, + uint8_t *out); +size_t rpc__resp__wifi_get_band__pack_to_buffer + (const RpcRespWifiGetBand *message, + ProtobufCBuffer *buffer); +RpcRespWifiGetBand * + rpc__resp__wifi_get_band__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_get_band__free_unpacked + (RpcRespWifiGetBand *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiSetBandMode methods */ +void rpc__req__wifi_set_band_mode__init + (RpcReqWifiSetBandMode *message); +size_t rpc__req__wifi_set_band_mode__get_packed_size + (const RpcReqWifiSetBandMode *message); +size_t rpc__req__wifi_set_band_mode__pack + (const RpcReqWifiSetBandMode *message, + uint8_t *out); +size_t rpc__req__wifi_set_band_mode__pack_to_buffer + (const RpcReqWifiSetBandMode *message, + ProtobufCBuffer *buffer); +RpcReqWifiSetBandMode * + rpc__req__wifi_set_band_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_set_band_mode__free_unpacked + (RpcReqWifiSetBandMode *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiSetBandMode methods */ +void rpc__resp__wifi_set_band_mode__init + (RpcRespWifiSetBandMode *message); +size_t rpc__resp__wifi_set_band_mode__get_packed_size + (const RpcRespWifiSetBandMode *message); +size_t rpc__resp__wifi_set_band_mode__pack + (const RpcRespWifiSetBandMode *message, + uint8_t *out); +size_t rpc__resp__wifi_set_band_mode__pack_to_buffer + (const RpcRespWifiSetBandMode *message, + ProtobufCBuffer *buffer); +RpcRespWifiSetBandMode * + rpc__resp__wifi_set_band_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_set_band_mode__free_unpacked + (RpcRespWifiSetBandMode *message, + ProtobufCAllocator *allocator); +/* RpcReqWifiGetBandMode methods */ +void rpc__req__wifi_get_band_mode__init + (RpcReqWifiGetBandMode *message); +size_t rpc__req__wifi_get_band_mode__get_packed_size + (const RpcReqWifiGetBandMode *message); +size_t rpc__req__wifi_get_band_mode__pack + (const RpcReqWifiGetBandMode *message, + uint8_t *out); +size_t rpc__req__wifi_get_band_mode__pack_to_buffer + (const RpcReqWifiGetBandMode *message, + ProtobufCBuffer *buffer); +RpcReqWifiGetBandMode * + rpc__req__wifi_get_band_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__wifi_get_band_mode__free_unpacked + (RpcReqWifiGetBandMode *message, + ProtobufCAllocator *allocator); +/* RpcRespWifiGetBandMode methods */ +void rpc__resp__wifi_get_band_mode__init + (RpcRespWifiGetBandMode *message); +size_t rpc__resp__wifi_get_band_mode__get_packed_size + (const RpcRespWifiGetBandMode *message); +size_t rpc__resp__wifi_get_band_mode__pack + (const RpcRespWifiGetBandMode *message, + uint8_t *out); +size_t rpc__resp__wifi_get_band_mode__pack_to_buffer + (const RpcRespWifiGetBandMode *message, + ProtobufCBuffer *buffer); +RpcRespWifiGetBandMode * + rpc__resp__wifi_get_band_mode__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__wifi_get_band_mode__free_unpacked + (RpcRespWifiGetBandMode *message, + ProtobufCAllocator *allocator); +/* RpcReqGetCoprocessorFwVersion methods */ +void rpc__req__get_coprocessor_fw_version__init + (RpcReqGetCoprocessorFwVersion *message); +size_t rpc__req__get_coprocessor_fw_version__get_packed_size + (const RpcReqGetCoprocessorFwVersion *message); +size_t rpc__req__get_coprocessor_fw_version__pack + (const RpcReqGetCoprocessorFwVersion *message, + uint8_t *out); +size_t rpc__req__get_coprocessor_fw_version__pack_to_buffer + (const RpcReqGetCoprocessorFwVersion *message, + ProtobufCBuffer *buffer); +RpcReqGetCoprocessorFwVersion * + rpc__req__get_coprocessor_fw_version__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__req__get_coprocessor_fw_version__free_unpacked + (RpcReqGetCoprocessorFwVersion *message, + ProtobufCAllocator *allocator); +/* RpcRespGetCoprocessorFwVersion methods */ +void rpc__resp__get_coprocessor_fw_version__init + (RpcRespGetCoprocessorFwVersion *message); +size_t rpc__resp__get_coprocessor_fw_version__get_packed_size + (const RpcRespGetCoprocessorFwVersion *message); +size_t rpc__resp__get_coprocessor_fw_version__pack + (const RpcRespGetCoprocessorFwVersion *message, + uint8_t *out); +size_t rpc__resp__get_coprocessor_fw_version__pack_to_buffer + (const RpcRespGetCoprocessorFwVersion *message, + ProtobufCBuffer *buffer); +RpcRespGetCoprocessorFwVersion * + rpc__resp__get_coprocessor_fw_version__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__resp__get_coprocessor_fw_version__free_unpacked + (RpcRespGetCoprocessorFwVersion *message, + ProtobufCAllocator *allocator); +/* RpcEventWifiEventNoArgs methods */ +void rpc__event__wifi_event_no_args__init + (RpcEventWifiEventNoArgs *message); +size_t rpc__event__wifi_event_no_args__get_packed_size + (const RpcEventWifiEventNoArgs *message); +size_t rpc__event__wifi_event_no_args__pack + (const RpcEventWifiEventNoArgs *message, + uint8_t *out); +size_t rpc__event__wifi_event_no_args__pack_to_buffer + (const RpcEventWifiEventNoArgs *message, + ProtobufCBuffer *buffer); +RpcEventWifiEventNoArgs * + rpc__event__wifi_event_no_args__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__event__wifi_event_no_args__free_unpacked + (RpcEventWifiEventNoArgs *message, + ProtobufCAllocator *allocator); +/* RpcEventESPInit methods */ +void rpc__event__espinit__init + (RpcEventESPInit *message); +size_t rpc__event__espinit__get_packed_size + (const RpcEventESPInit *message); +size_t rpc__event__espinit__pack + (const RpcEventESPInit *message, + uint8_t *out); +size_t rpc__event__espinit__pack_to_buffer + (const RpcEventESPInit *message, + ProtobufCBuffer *buffer); +RpcEventESPInit * + rpc__event__espinit__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__event__espinit__free_unpacked + (RpcEventESPInit *message, + ProtobufCAllocator *allocator); +/* RpcEventHeartbeat methods */ +void rpc__event__heartbeat__init + (RpcEventHeartbeat *message); +size_t rpc__event__heartbeat__get_packed_size + (const RpcEventHeartbeat *message); +size_t rpc__event__heartbeat__pack + (const RpcEventHeartbeat *message, + uint8_t *out); +size_t rpc__event__heartbeat__pack_to_buffer + (const RpcEventHeartbeat *message, + ProtobufCBuffer *buffer); +RpcEventHeartbeat * + rpc__event__heartbeat__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__event__heartbeat__free_unpacked + (RpcEventHeartbeat *message, + ProtobufCAllocator *allocator); +/* RpcEventAPStaDisconnected methods */ +void rpc__event__ap__sta_disconnected__init + (RpcEventAPStaDisconnected *message); +size_t rpc__event__ap__sta_disconnected__get_packed_size + (const RpcEventAPStaDisconnected *message); +size_t rpc__event__ap__sta_disconnected__pack + (const RpcEventAPStaDisconnected *message, + uint8_t *out); +size_t rpc__event__ap__sta_disconnected__pack_to_buffer + (const RpcEventAPStaDisconnected *message, + ProtobufCBuffer *buffer); +RpcEventAPStaDisconnected * + rpc__event__ap__sta_disconnected__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__event__ap__sta_disconnected__free_unpacked + (RpcEventAPStaDisconnected *message, + ProtobufCAllocator *allocator); +/* RpcEventAPStaConnected methods */ +void rpc__event__ap__sta_connected__init + (RpcEventAPStaConnected *message); +size_t rpc__event__ap__sta_connected__get_packed_size + (const RpcEventAPStaConnected *message); +size_t rpc__event__ap__sta_connected__pack + (const RpcEventAPStaConnected *message, + uint8_t *out); +size_t rpc__event__ap__sta_connected__pack_to_buffer + (const RpcEventAPStaConnected *message, + ProtobufCBuffer *buffer); +RpcEventAPStaConnected * + rpc__event__ap__sta_connected__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__event__ap__sta_connected__free_unpacked + (RpcEventAPStaConnected *message, + ProtobufCAllocator *allocator); +/* RpcEventStaScanDone methods */ +void rpc__event__sta_scan_done__init + (RpcEventStaScanDone *message); +size_t rpc__event__sta_scan_done__get_packed_size + (const RpcEventStaScanDone *message); +size_t rpc__event__sta_scan_done__pack + (const RpcEventStaScanDone *message, + uint8_t *out); +size_t rpc__event__sta_scan_done__pack_to_buffer + (const RpcEventStaScanDone *message, + ProtobufCBuffer *buffer); +RpcEventStaScanDone * + rpc__event__sta_scan_done__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__event__sta_scan_done__free_unpacked + (RpcEventStaScanDone *message, + ProtobufCAllocator *allocator); +/* RpcEventStaConnected methods */ +void rpc__event__sta_connected__init + (RpcEventStaConnected *message); +size_t rpc__event__sta_connected__get_packed_size + (const RpcEventStaConnected *message); +size_t rpc__event__sta_connected__pack + (const RpcEventStaConnected *message, + uint8_t *out); +size_t rpc__event__sta_connected__pack_to_buffer + (const RpcEventStaConnected *message, + ProtobufCBuffer *buffer); +RpcEventStaConnected * + rpc__event__sta_connected__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__event__sta_connected__free_unpacked + (RpcEventStaConnected *message, + ProtobufCAllocator *allocator); +/* RpcEventStaDisconnected methods */ +void rpc__event__sta_disconnected__init + (RpcEventStaDisconnected *message); +size_t rpc__event__sta_disconnected__get_packed_size + (const RpcEventStaDisconnected *message); +size_t rpc__event__sta_disconnected__pack + (const RpcEventStaDisconnected *message, + uint8_t *out); +size_t rpc__event__sta_disconnected__pack_to_buffer + (const RpcEventStaDisconnected *message, + ProtobufCBuffer *buffer); +RpcEventStaDisconnected * + rpc__event__sta_disconnected__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__event__sta_disconnected__free_unpacked + (RpcEventStaDisconnected *message, + ProtobufCAllocator *allocator); +/* Rpc methods */ +void rpc__init + (Rpc *message); +size_t rpc__get_packed_size + (const Rpc *message); +size_t rpc__pack + (const Rpc *message, + uint8_t *out); +size_t rpc__pack_to_buffer + (const Rpc *message, + ProtobufCBuffer *buffer); +Rpc * + rpc__unpack + (ProtobufCAllocator *allocator, + size_t len, + const uint8_t *data); +void rpc__free_unpacked + (Rpc *message, + ProtobufCAllocator *allocator); +/* --- per-message closures --- */ + +typedef void (*WifiInitConfig_Closure) + (const WifiInitConfig *message, + void *closure_data); +typedef void (*WifiCountry_Closure) + (const WifiCountry *message, + void *closure_data); +typedef void (*WifiActiveScanTime_Closure) + (const WifiActiveScanTime *message, + void *closure_data); +typedef void (*WifiScanTime_Closure) + (const WifiScanTime *message, + void *closure_data); +typedef void (*WifiScanConfig_Closure) + (const WifiScanConfig *message, + void *closure_data); +typedef void (*WifiHeApInfo_Closure) + (const WifiHeApInfo *message, + void *closure_data); +typedef void (*WifiApRecord_Closure) + (const WifiApRecord *message, + void *closure_data); +typedef void (*WifiScanThreshold_Closure) + (const WifiScanThreshold *message, + void *closure_data); +typedef void (*WifiPmfConfig_Closure) + (const WifiPmfConfig *message, + void *closure_data); +typedef void (*WifiApConfig_Closure) + (const WifiApConfig *message, + void *closure_data); +typedef void (*WifiStaConfig_Closure) + (const WifiStaConfig *message, + void *closure_data); +typedef void (*WifiConfig_Closure) + (const WifiConfig *message, + void *closure_data); +typedef void (*WifiStaInfo_Closure) + (const WifiStaInfo *message, + void *closure_data); +typedef void (*WifiStaList_Closure) + (const WifiStaList *message, + void *closure_data); +typedef void (*WifiPktRxCtrl_Closure) + (const WifiPktRxCtrl *message, + void *closure_data); +typedef void (*WifiPromiscuousPkt_Closure) + (const WifiPromiscuousPkt *message, + void *closure_data); +typedef void (*WifiPromiscuousFilter_Closure) + (const WifiPromiscuousFilter *message, + void *closure_data); +typedef void (*WifiCsiConfig_Closure) + (const WifiCsiConfig *message, + void *closure_data); +typedef void (*WifiCsiInfo_Closure) + (const WifiCsiInfo *message, + void *closure_data); +typedef void (*WifiAntGpio_Closure) + (const WifiAntGpio *message, + void *closure_data); +typedef void (*WifiAntGpioConfig_Closure) + (const WifiAntGpioConfig *message, + void *closure_data); +typedef void (*WifiAntConfig_Closure) + (const WifiAntConfig *message, + void *closure_data); +typedef void (*WifiActionTxReq_Closure) + (const WifiActionTxReq *message, + void *closure_data); +typedef void (*WifiFtmInitiatorCfg_Closure) + (const WifiFtmInitiatorCfg *message, + void *closure_data); +typedef void (*WifiEventStaScanDone_Closure) + (const WifiEventStaScanDone *message, + void *closure_data); +typedef void (*WifiEventStaConnected_Closure) + (const WifiEventStaConnected *message, + void *closure_data); +typedef void (*WifiEventStaDisconnected_Closure) + (const WifiEventStaDisconnected *message, + void *closure_data); +typedef void (*WifiEventStaAuthmodeChange_Closure) + (const WifiEventStaAuthmodeChange *message, + void *closure_data); +typedef void (*WifiEventStaWpsErPin_Closure) + (const WifiEventStaWpsErPin *message, + void *closure_data); +typedef void (*ApCred_Closure) + (const ApCred *message, + void *closure_data); +typedef void (*WifiEventStaWpsErSuccess_Closure) + (const WifiEventStaWpsErSuccess *message, + void *closure_data); +typedef void (*WifiEventApProbeReqRx_Closure) + (const WifiEventApProbeReqRx *message, + void *closure_data); +typedef void (*WifiEventBssRssiLow_Closure) + (const WifiEventBssRssiLow *message, + void *closure_data); +typedef void (*WifiFtmReportEntry_Closure) + (const WifiFtmReportEntry *message, + void *closure_data); +typedef void (*WifiEventFtmReport_Closure) + (const WifiEventFtmReport *message, + void *closure_data); +typedef void (*WifiEventActionTxStatus_Closure) + (const WifiEventActionTxStatus *message, + void *closure_data); +typedef void (*WifiEventRocDone_Closure) + (const WifiEventRocDone *message, + void *closure_data); +typedef void (*WifiEventApWpsRgPin_Closure) + (const WifiEventApWpsRgPin *message, + void *closure_data); +typedef void (*WifiEventApWpsRgFailReason_Closure) + (const WifiEventApWpsRgFailReason *message, + void *closure_data); +typedef void (*WifiEventApWpsRgSuccess_Closure) + (const WifiEventApWpsRgSuccess *message, + void *closure_data); +typedef void (*WifiProtocols_Closure) + (const WifiProtocols *message, + void *closure_data); +typedef void (*WifiBandwidths_Closure) + (const WifiBandwidths *message, + void *closure_data); +typedef void (*ConnectedSTAList_Closure) + (const ConnectedSTAList *message, + void *closure_data); +typedef void (*RpcReqGetMacAddress_Closure) + (const RpcReqGetMacAddress *message, + void *closure_data); +typedef void (*RpcRespGetMacAddress_Closure) + (const RpcRespGetMacAddress *message, + void *closure_data); +typedef void (*RpcReqGetMode_Closure) + (const RpcReqGetMode *message, + void *closure_data); +typedef void (*RpcRespGetMode_Closure) + (const RpcRespGetMode *message, + void *closure_data); +typedef void (*RpcReqSetMode_Closure) + (const RpcReqSetMode *message, + void *closure_data); +typedef void (*RpcRespSetMode_Closure) + (const RpcRespSetMode *message, + void *closure_data); +typedef void (*RpcReqGetPs_Closure) + (const RpcReqGetPs *message, + void *closure_data); +typedef void (*RpcRespGetPs_Closure) + (const RpcRespGetPs *message, + void *closure_data); +typedef void (*RpcReqSetPs_Closure) + (const RpcReqSetPs *message, + void *closure_data); +typedef void (*RpcRespSetPs_Closure) + (const RpcRespSetPs *message, + void *closure_data); +typedef void (*RpcReqSetMacAddress_Closure) + (const RpcReqSetMacAddress *message, + void *closure_data); +typedef void (*RpcRespSetMacAddress_Closure) + (const RpcRespSetMacAddress *message, + void *closure_data); +typedef void (*RpcReqOTABegin_Closure) + (const RpcReqOTABegin *message, + void *closure_data); +typedef void (*RpcRespOTABegin_Closure) + (const RpcRespOTABegin *message, + void *closure_data); +typedef void (*RpcReqOTAWrite_Closure) + (const RpcReqOTAWrite *message, + void *closure_data); +typedef void (*RpcRespOTAWrite_Closure) + (const RpcRespOTAWrite *message, + void *closure_data); +typedef void (*RpcReqOTAEnd_Closure) + (const RpcReqOTAEnd *message, + void *closure_data); +typedef void (*RpcRespOTAEnd_Closure) + (const RpcRespOTAEnd *message, + void *closure_data); +typedef void (*RpcReqWifiSetMaxTxPower_Closure) + (const RpcReqWifiSetMaxTxPower *message, + void *closure_data); +typedef void (*RpcRespWifiSetMaxTxPower_Closure) + (const RpcRespWifiSetMaxTxPower *message, + void *closure_data); +typedef void (*RpcReqWifiGetMaxTxPower_Closure) + (const RpcReqWifiGetMaxTxPower *message, + void *closure_data); +typedef void (*RpcRespWifiGetMaxTxPower_Closure) + (const RpcRespWifiGetMaxTxPower *message, + void *closure_data); +typedef void (*RpcReqConfigHeartbeat_Closure) + (const RpcReqConfigHeartbeat *message, + void *closure_data); +typedef void (*RpcRespConfigHeartbeat_Closure) + (const RpcRespConfigHeartbeat *message, + void *closure_data); +typedef void (*RpcReqWifiInit_Closure) + (const RpcReqWifiInit *message, + void *closure_data); +typedef void (*RpcRespWifiInit_Closure) + (const RpcRespWifiInit *message, + void *closure_data); +typedef void (*RpcReqWifiDeinit_Closure) + (const RpcReqWifiDeinit *message, + void *closure_data); +typedef void (*RpcRespWifiDeinit_Closure) + (const RpcRespWifiDeinit *message, + void *closure_data); +typedef void (*RpcReqWifiSetConfig_Closure) + (const RpcReqWifiSetConfig *message, + void *closure_data); +typedef void (*RpcRespWifiSetConfig_Closure) + (const RpcRespWifiSetConfig *message, + void *closure_data); +typedef void (*RpcReqWifiGetConfig_Closure) + (const RpcReqWifiGetConfig *message, + void *closure_data); +typedef void (*RpcRespWifiGetConfig_Closure) + (const RpcRespWifiGetConfig *message, + void *closure_data); +typedef void (*RpcReqWifiConnect_Closure) + (const RpcReqWifiConnect *message, + void *closure_data); +typedef void (*RpcRespWifiConnect_Closure) + (const RpcRespWifiConnect *message, + void *closure_data); +typedef void (*RpcReqWifiDisconnect_Closure) + (const RpcReqWifiDisconnect *message, + void *closure_data); +typedef void (*RpcRespWifiDisconnect_Closure) + (const RpcRespWifiDisconnect *message, + void *closure_data); +typedef void (*RpcReqWifiStart_Closure) + (const RpcReqWifiStart *message, + void *closure_data); +typedef void (*RpcRespWifiStart_Closure) + (const RpcRespWifiStart *message, + void *closure_data); +typedef void (*RpcReqWifiStop_Closure) + (const RpcReqWifiStop *message, + void *closure_data); +typedef void (*RpcRespWifiStop_Closure) + (const RpcRespWifiStop *message, + void *closure_data); +typedef void (*RpcReqWifiScanStart_Closure) + (const RpcReqWifiScanStart *message, + void *closure_data); +typedef void (*RpcRespWifiScanStart_Closure) + (const RpcRespWifiScanStart *message, + void *closure_data); +typedef void (*RpcReqWifiScanStop_Closure) + (const RpcReqWifiScanStop *message, + void *closure_data); +typedef void (*RpcRespWifiScanStop_Closure) + (const RpcRespWifiScanStop *message, + void *closure_data); +typedef void (*RpcReqWifiScanGetApNum_Closure) + (const RpcReqWifiScanGetApNum *message, + void *closure_data); +typedef void (*RpcRespWifiScanGetApNum_Closure) + (const RpcRespWifiScanGetApNum *message, + void *closure_data); +typedef void (*RpcReqWifiScanGetApRecords_Closure) + (const RpcReqWifiScanGetApRecords *message, + void *closure_data); +typedef void (*RpcRespWifiScanGetApRecords_Closure) + (const RpcRespWifiScanGetApRecords *message, + void *closure_data); +typedef void (*RpcReqWifiScanGetApRecord_Closure) + (const RpcReqWifiScanGetApRecord *message, + void *closure_data); +typedef void (*RpcRespWifiScanGetApRecord_Closure) + (const RpcRespWifiScanGetApRecord *message, + void *closure_data); +typedef void (*RpcReqWifiClearApList_Closure) + (const RpcReqWifiClearApList *message, + void *closure_data); +typedef void (*RpcRespWifiClearApList_Closure) + (const RpcRespWifiClearApList *message, + void *closure_data); +typedef void (*RpcReqWifiRestore_Closure) + (const RpcReqWifiRestore *message, + void *closure_data); +typedef void (*RpcRespWifiRestore_Closure) + (const RpcRespWifiRestore *message, + void *closure_data); +typedef void (*RpcReqWifiClearFastConnect_Closure) + (const RpcReqWifiClearFastConnect *message, + void *closure_data); +typedef void (*RpcRespWifiClearFastConnect_Closure) + (const RpcRespWifiClearFastConnect *message, + void *closure_data); +typedef void (*RpcReqWifiDeauthSta_Closure) + (const RpcReqWifiDeauthSta *message, + void *closure_data); +typedef void (*RpcRespWifiDeauthSta_Closure) + (const RpcRespWifiDeauthSta *message, + void *closure_data); +typedef void (*RpcReqWifiStaGetApInfo_Closure) + (const RpcReqWifiStaGetApInfo *message, + void *closure_data); +typedef void (*RpcRespWifiStaGetApInfo_Closure) + (const RpcRespWifiStaGetApInfo *message, + void *closure_data); +typedef void (*RpcReqWifiSetProtocol_Closure) + (const RpcReqWifiSetProtocol *message, + void *closure_data); +typedef void (*RpcRespWifiSetProtocol_Closure) + (const RpcRespWifiSetProtocol *message, + void *closure_data); +typedef void (*RpcReqWifiGetProtocol_Closure) + (const RpcReqWifiGetProtocol *message, + void *closure_data); +typedef void (*RpcRespWifiGetProtocol_Closure) + (const RpcRespWifiGetProtocol *message, + void *closure_data); +typedef void (*RpcReqWifiSetBandwidth_Closure) + (const RpcReqWifiSetBandwidth *message, + void *closure_data); +typedef void (*RpcRespWifiSetBandwidth_Closure) + (const RpcRespWifiSetBandwidth *message, + void *closure_data); +typedef void (*RpcReqWifiGetBandwidth_Closure) + (const RpcReqWifiGetBandwidth *message, + void *closure_data); +typedef void (*RpcRespWifiGetBandwidth_Closure) + (const RpcRespWifiGetBandwidth *message, + void *closure_data); +typedef void (*RpcReqWifiSetChannel_Closure) + (const RpcReqWifiSetChannel *message, + void *closure_data); +typedef void (*RpcRespWifiSetChannel_Closure) + (const RpcRespWifiSetChannel *message, + void *closure_data); +typedef void (*RpcReqWifiGetChannel_Closure) + (const RpcReqWifiGetChannel *message, + void *closure_data); +typedef void (*RpcRespWifiGetChannel_Closure) + (const RpcRespWifiGetChannel *message, + void *closure_data); +typedef void (*RpcReqWifiSetStorage_Closure) + (const RpcReqWifiSetStorage *message, + void *closure_data); +typedef void (*RpcRespWifiSetStorage_Closure) + (const RpcRespWifiSetStorage *message, + void *closure_data); +typedef void (*RpcReqWifiSetCountryCode_Closure) + (const RpcReqWifiSetCountryCode *message, + void *closure_data); +typedef void (*RpcRespWifiSetCountryCode_Closure) + (const RpcRespWifiSetCountryCode *message, + void *closure_data); +typedef void (*RpcReqWifiGetCountryCode_Closure) + (const RpcReqWifiGetCountryCode *message, + void *closure_data); +typedef void (*RpcRespWifiGetCountryCode_Closure) + (const RpcRespWifiGetCountryCode *message, + void *closure_data); +typedef void (*RpcReqWifiSetCountry_Closure) + (const RpcReqWifiSetCountry *message, + void *closure_data); +typedef void (*RpcRespWifiSetCountry_Closure) + (const RpcRespWifiSetCountry *message, + void *closure_data); +typedef void (*RpcReqWifiGetCountry_Closure) + (const RpcReqWifiGetCountry *message, + void *closure_data); +typedef void (*RpcRespWifiGetCountry_Closure) + (const RpcRespWifiGetCountry *message, + void *closure_data); +typedef void (*RpcReqWifiApGetStaList_Closure) + (const RpcReqWifiApGetStaList *message, + void *closure_data); +typedef void (*RpcRespWifiApGetStaList_Closure) + (const RpcRespWifiApGetStaList *message, + void *closure_data); +typedef void (*RpcReqWifiApGetStaAid_Closure) + (const RpcReqWifiApGetStaAid *message, + void *closure_data); +typedef void (*RpcReqWifiStaGetNegotiatedPhymode_Closure) + (const RpcReqWifiStaGetNegotiatedPhymode *message, + void *closure_data); +typedef void (*RpcRespWifiStaGetNegotiatedPhymode_Closure) + (const RpcRespWifiStaGetNegotiatedPhymode *message, + void *closure_data); +typedef void (*RpcRespWifiApGetStaAid_Closure) + (const RpcRespWifiApGetStaAid *message, + void *closure_data); +typedef void (*RpcReqWifiStaGetRssi_Closure) + (const RpcReqWifiStaGetRssi *message, + void *closure_data); +typedef void (*RpcRespWifiStaGetRssi_Closure) + (const RpcRespWifiStaGetRssi *message, + void *closure_data); +typedef void (*RpcReqWifiStaGetAid_Closure) + (const RpcReqWifiStaGetAid *message, + void *closure_data); +typedef void (*RpcRespWifiStaGetAid_Closure) + (const RpcRespWifiStaGetAid *message, + void *closure_data); +typedef void (*RpcReqWifiSetProtocols_Closure) + (const RpcReqWifiSetProtocols *message, + void *closure_data); +typedef void (*RpcRespWifiSetProtocols_Closure) + (const RpcRespWifiSetProtocols *message, + void *closure_data); +typedef void (*RpcReqWifiGetProtocols_Closure) + (const RpcReqWifiGetProtocols *message, + void *closure_data); +typedef void (*RpcRespWifiGetProtocols_Closure) + (const RpcRespWifiGetProtocols *message, + void *closure_data); +typedef void (*RpcReqWifiSetBandwidths_Closure) + (const RpcReqWifiSetBandwidths *message, + void *closure_data); +typedef void (*RpcRespWifiSetBandwidths_Closure) + (const RpcRespWifiSetBandwidths *message, + void *closure_data); +typedef void (*RpcReqWifiGetBandwidths_Closure) + (const RpcReqWifiGetBandwidths *message, + void *closure_data); +typedef void (*RpcRespWifiGetBandwidths_Closure) + (const RpcRespWifiGetBandwidths *message, + void *closure_data); +typedef void (*RpcReqWifiSetBand_Closure) + (const RpcReqWifiSetBand *message, + void *closure_data); +typedef void (*RpcRespWifiSetBand_Closure) + (const RpcRespWifiSetBand *message, + void *closure_data); +typedef void (*RpcReqWifiGetBand_Closure) + (const RpcReqWifiGetBand *message, + void *closure_data); +typedef void (*RpcRespWifiGetBand_Closure) + (const RpcRespWifiGetBand *message, + void *closure_data); +typedef void (*RpcReqWifiSetBandMode_Closure) + (const RpcReqWifiSetBandMode *message, + void *closure_data); +typedef void (*RpcRespWifiSetBandMode_Closure) + (const RpcRespWifiSetBandMode *message, + void *closure_data); +typedef void (*RpcReqWifiGetBandMode_Closure) + (const RpcReqWifiGetBandMode *message, + void *closure_data); +typedef void (*RpcRespWifiGetBandMode_Closure) + (const RpcRespWifiGetBandMode *message, + void *closure_data); +typedef void (*RpcReqGetCoprocessorFwVersion_Closure) + (const RpcReqGetCoprocessorFwVersion *message, + void *closure_data); +typedef void (*RpcRespGetCoprocessorFwVersion_Closure) + (const RpcRespGetCoprocessorFwVersion *message, + void *closure_data); +typedef void (*RpcEventWifiEventNoArgs_Closure) + (const RpcEventWifiEventNoArgs *message, + void *closure_data); +typedef void (*RpcEventESPInit_Closure) + (const RpcEventESPInit *message, + void *closure_data); +typedef void (*RpcEventHeartbeat_Closure) + (const RpcEventHeartbeat *message, + void *closure_data); +typedef void (*RpcEventAPStaDisconnected_Closure) + (const RpcEventAPStaDisconnected *message, + void *closure_data); +typedef void (*RpcEventAPStaConnected_Closure) + (const RpcEventAPStaConnected *message, + void *closure_data); +typedef void (*RpcEventStaScanDone_Closure) + (const RpcEventStaScanDone *message, + void *closure_data); +typedef void (*RpcEventStaConnected_Closure) + (const RpcEventStaConnected *message, + void *closure_data); +typedef void (*RpcEventStaDisconnected_Closure) + (const RpcEventStaDisconnected *message, + void *closure_data); +typedef void (*Rpc_Closure) + (const Rpc *message, + void *closure_data); + +/* --- services --- */ + + +/* --- descriptors --- */ + +extern const ProtobufCEnumDescriptor rpc__wifi_bw__descriptor; +extern const ProtobufCEnumDescriptor rpc__wifi_power_save__descriptor; +extern const ProtobufCEnumDescriptor rpc__wifi_sec_prot__descriptor; +extern const ProtobufCEnumDescriptor rpc__status__descriptor; +extern const ProtobufCEnumDescriptor rpc_type__descriptor; +extern const ProtobufCEnumDescriptor rpc_id__descriptor; +extern const ProtobufCMessageDescriptor wifi_init_config__descriptor; +extern const ProtobufCMessageDescriptor wifi_country__descriptor; +extern const ProtobufCMessageDescriptor wifi_active_scan_time__descriptor; +extern const ProtobufCMessageDescriptor wifi_scan_time__descriptor; +extern const ProtobufCMessageDescriptor wifi_scan_config__descriptor; +extern const ProtobufCMessageDescriptor wifi_he_ap_info__descriptor; +extern const ProtobufCMessageDescriptor wifi_ap_record__descriptor; +extern const ProtobufCMessageDescriptor wifi_scan_threshold__descriptor; +extern const ProtobufCMessageDescriptor wifi_pmf_config__descriptor; +extern const ProtobufCMessageDescriptor wifi_ap_config__descriptor; +extern const ProtobufCMessageDescriptor wifi_sta_config__descriptor; +extern const ProtobufCMessageDescriptor wifi_config__descriptor; +extern const ProtobufCMessageDescriptor wifi_sta_info__descriptor; +extern const ProtobufCMessageDescriptor wifi_sta_list__descriptor; +extern const ProtobufCMessageDescriptor wifi_pkt_rx_ctrl__descriptor; +extern const ProtobufCMessageDescriptor wifi_promiscuous_pkt__descriptor; +extern const ProtobufCMessageDescriptor wifi_promiscuous_filter__descriptor; +extern const ProtobufCMessageDescriptor wifi_csi_config__descriptor; +extern const ProtobufCMessageDescriptor wifi_csi_info__descriptor; +extern const ProtobufCMessageDescriptor wifi_ant_gpio__descriptor; +extern const ProtobufCMessageDescriptor wifi_ant_gpio_config__descriptor; +extern const ProtobufCMessageDescriptor wifi_ant_config__descriptor; +extern const ProtobufCMessageDescriptor wifi_action_tx_req__descriptor; +extern const ProtobufCMessageDescriptor wifi_ftm_initiator_cfg__descriptor; +extern const ProtobufCMessageDescriptor wifi_event_sta_scan_done__descriptor; +extern const ProtobufCMessageDescriptor wifi_event_sta_connected__descriptor; +extern const ProtobufCMessageDescriptor wifi_event_sta_disconnected__descriptor; +extern const ProtobufCMessageDescriptor wifi_event_sta_authmode_change__descriptor; +extern const ProtobufCMessageDescriptor wifi_event_sta_wps_er_pin__descriptor; +extern const ProtobufCMessageDescriptor ap_cred__descriptor; +extern const ProtobufCMessageDescriptor wifi_event_sta_wps_er_success__descriptor; +extern const ProtobufCMessageDescriptor wifi_event_ap_probe_req_rx__descriptor; +extern const ProtobufCMessageDescriptor wifi_event_bss_rssi_low__descriptor; +extern const ProtobufCMessageDescriptor wifi_ftm_report_entry__descriptor; +extern const ProtobufCMessageDescriptor wifi_event_ftm_report__descriptor; +extern const ProtobufCMessageDescriptor wifi_event_action_tx_status__descriptor; +extern const ProtobufCMessageDescriptor wifi_event_roc_done__descriptor; +extern const ProtobufCMessageDescriptor wifi_event_ap_wps_rg_pin__descriptor; +extern const ProtobufCMessageDescriptor wifi_event_ap_wps_rg_fail_reason__descriptor; +extern const ProtobufCMessageDescriptor wifi_event_ap_wps_rg_success__descriptor; +extern const ProtobufCMessageDescriptor wifi_protocols__descriptor; +extern const ProtobufCMessageDescriptor wifi_bandwidths__descriptor; +extern const ProtobufCMessageDescriptor connected_stalist__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__get_mac_address__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__get_mac_address__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__get_mode__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__get_mode__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__set_mode__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__set_mode__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__get_ps__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__get_ps__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__set_ps__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__set_ps__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__set_mac_address__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__set_mac_address__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__otabegin__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__otabegin__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__otawrite__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__otawrite__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__otaend__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__otaend__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_set_max_tx_power__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_max_tx_power__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_get_max_tx_power__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_max_tx_power__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__config_heartbeat__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__config_heartbeat__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_init__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_init__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_deinit__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_deinit__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_set_config__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_config__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_get_config__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_config__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_connect__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_connect__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_disconnect__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_disconnect__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_start__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_start__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_stop__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_stop__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_scan_start__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_scan_start__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_scan_stop__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_scan_stop__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_scan_get_ap_num__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_scan_get_ap_num__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_scan_get_ap_records__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_scan_get_ap_records__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_scan_get_ap_record__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_scan_get_ap_record__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_clear_ap_list__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_clear_ap_list__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_restore__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_restore__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_clear_fast_connect__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_clear_fast_connect__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_deauth_sta__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_deauth_sta__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_ap_info__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_ap_info__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_set_protocol__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_protocol__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_get_protocol__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_protocol__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_set_bandwidth__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_bandwidth__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_get_bandwidth__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_bandwidth__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_set_channel__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_channel__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_get_channel__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_channel__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_set_storage__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_storage__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_set_country_code__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_country_code__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_get_country_code__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_country_code__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_set_country__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_country__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_get_country__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_country__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_ap_get_sta_list__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_ap_get_sta_list__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_ap_get_sta_aid__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_negotiated_phymode__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_negotiated_phymode__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_ap_get_sta_aid__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_rssi__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_rssi__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_aid__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_aid__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_set_protocols__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_protocols__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_get_protocols__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_protocols__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_set_bandwidths__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_bandwidths__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_get_bandwidths__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_bandwidths__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_set_band__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_band__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_get_band__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_band__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_set_band_mode__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_band_mode__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__wifi_get_band_mode__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_band_mode__descriptor; +extern const ProtobufCMessageDescriptor rpc__req__get_coprocessor_fw_version__descriptor; +extern const ProtobufCMessageDescriptor rpc__resp__get_coprocessor_fw_version__descriptor; +extern const ProtobufCMessageDescriptor rpc__event__wifi_event_no_args__descriptor; +extern const ProtobufCMessageDescriptor rpc__event__espinit__descriptor; +extern const ProtobufCMessageDescriptor rpc__event__heartbeat__descriptor; +extern const ProtobufCMessageDescriptor rpc__event__ap__sta_disconnected__descriptor; +extern const ProtobufCMessageDescriptor rpc__event__ap__sta_connected__descriptor; +extern const ProtobufCMessageDescriptor rpc__event__sta_scan_done__descriptor; +extern const ProtobufCMessageDescriptor rpc__event__sta_connected__descriptor; +extern const ProtobufCMessageDescriptor rpc__event__sta_disconnected__descriptor; +extern const ProtobufCMessageDescriptor rpc__descriptor; + +PROTOBUF_C__END_DECLS + + +#endif /* PROTOBUF_C_esp_5fhosted_5frpc_2eproto__INCLUDED */ diff --git a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/esp_hosted_rpc.proto b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/esp_hosted_rpc.proto new file mode 100644 index 0000000..db37ac4 --- /dev/null +++ b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/esp_hosted_rpc.proto @@ -0,0 +1,1830 @@ +/* Copyright (C) 2015-2023 Espressif Systems (Shanghai) PTE LTD */ +/* SPDX-License-Identifier: GPL-2.0-only OR Apache-2.0 */ + +syntax = "proto3"; + +/* Enums similar to ESP IDF */ +//enum Rpc_VendorIEType { +// Beacon = 0; +// Probe_req = 1; +// Probe_resp = 2; +// Assoc_req = 3; +// Assoc_resp = 4; +//} +// +//enum Rpc_VendorIEID { +// ID_0 = 0; +// ID_1 = 1; +//} + + +enum Rpc_WifiBw { + BW_Invalid = 0; + HT20 = 1; + HT40 = 2; +} + +enum Rpc_WifiPowerSave { + PS_Invalid = 0; + MIN_MODEM = 1; + MAX_MODEM = 2; +} + +enum Rpc_WifiSecProt { + Open = 0; + WEP = 1; + WPA_PSK = 2; + WPA2_PSK = 3; + WPA_WPA2_PSK = 4; + WPA2_ENTERPRISE = 5; + WPA3_PSK = 6; + WPA2_WPA3_PSK = 7; +} + +/* enums for Control path */ +enum Rpc_Status { + Connected = 0; + Not_Connected = 1; + No_AP_Found = 2; + Connection_Fail = 3; + Invalid_Argument = 4; + Out_Of_Range = 5; +} + + +enum RpcType { +MsgType_Invalid = 0; + Req = 1; + Resp = 2; + Event = 3; + MsgType_Max = 4; +} +// +//enum Rpc { +// ESP_ERR_WIFI_BASE = 0x3000; +// ESP_ERR_WIFI_NOT_INIT = 0x3001; +// ESP_ERR_WIFI_NOT_STARTED = 0x3002; +// ESP_ERR_WIFI_NOT_STOPPED = 0x3003; +// ESP_ERR_WIFI_IF = 0x3004; +// ESP_ERR_WIFI_MODE = 0x3005; +// ESP_ERR_WIFI_STATE = 0x3006; +// ESP_ERR_WIFI_CONN = 0x3007; +// ESP_ERR_WIFI_NVS = 0x3008; +// ESP_ERR_WIFI_MAC = 0x3009; +// ESP_ERR_WIFI_SSID = 0x300a; +// ESP_ERR_WIFI_PASSWORD = 0x300b; +// ESP_ERR_WIFI_TIMEOUT = 0x300c; +// ESP_ERR_WIFI_WAKE_FAIL = 0x300d; +// ESP_ERR_WIFI_WOULD_BLOCK = 0x300e; +// ESP_ERR_WIFI_NOT_CONNECT = 0x300f; +// /* 0x3010 0x3011 not present intentionally */ +// ESP_ERR_WIFI_POST = 0x3012; +// ESP_ERR_WIFI_INIT_STATE = 0x3013; +// ESP_ERR_WIFI_STOP_STATE = 0x3014; +// ESP_ERR_WIFI_NOT_ASSOC = 0x3015; +// ESP_ERR_WIFI_TX_DISALLOW = 0x3016; +//} + + +//enum ctrl_msg_type { +// invalid = 0; +// req = 1; +// resp = 2; +// event = 3; +// max = 4; +//} +// +//enum ctrl_msg_id { +// invalid = 0; +// req_base = 400; +// req_w_init = 401; +// req_w_deinit = 402; +// req_w_set_mode = 403; +// req_w_get_mode = 404; +// req_w_start = 405; +// req_w_stop = 406; +// req_w_restore = 407; +// req_w_connect = 408; +// req_w_disconnect = 409; +// req_w_clear_fast_connect = 410; +// req_w_deauth_sta = 411; +// req_w_scan_start = 412; +// req_w_scan_stop = 413; +// req_w_scan_get_ap_name = 414; +// req_w_scan_get_ap_records = 415; +// req_w_clear_ap_list = 416; +// req_w_sta_get_ap_info = 417; +// req_w_set_ps = 418; +// req_w_get_ps = 419; +// req_w_set_protocol = 420; +// req_w_get_protocol = 421; +// req_w_set_bandwidth = 422; +// req_w_get_bandwidth = 423; +// req_w_set_channel = 424; +// req_w_get_channel = 425; +// req_w_set_country = 426; +// req_w_get_country = 427; +// req_w_set_mac = 428; +// req_w_get_mac = 429; +// req_w_set_promiscuous_cb = 430; +// req_w_set_promiscuous = 431; +// req_w_get_promiscuous = 432; +// req_w_set_promiscuous_filter = 433; +// req_w_get_promiscuous_filter = 434; +// req_w_set_promiscuous_ctrl_filter = 435; +// req_w_get_promiscuous_ctrl_filter = 436; +// req_w_set_config = 437; +// req_w_get_config = 438; +// req_w_ap_get_sta_list = 439; +// req_w_ap_get_sta_aid = 440; +// req_w_set_storage = 441; +// req_w_set_vendor_ie = 442; +// req_w_set_vendor_ie_cb = 443; +// req_w_set_max_tx_power = 444; +// req_w_get_max_tx_power = 445; +// req_w_set_event_mask = 446; +// req_w_get_event_mask = 447; +// req_w_80211_tx = 448; +// req_w_set_csi_rx_cb = 449; +// req_w_set_csi_config = 450; +// req_w_set_csi = 451; +// req_w_set_ant_gpio = 452; +// req_w_get_ant_gpio = 453; +// req_w_set_ant = 454; +// req_w_get_ant = 455; +// req_w_get_tsf_time = 456; +// req_w_set_inactive_time = 457; +// req_w_get_inactive_time = 458; +// req_w_statis_dump = 459; +// req_w_set_rssi_threshold = 460; +// req_w_ftm_initiate_session = 461; +// req_w_ftm_end_session = 462; +// req_w_ftm_resp_set_offset = 463; +// req_w_config_11b_rate = 464; +// req_w_connectionless_module_set_wake_interval = 465; +// req_w_set_country_code = 466; +// req_w_get_country_code = 467; +// req_w_config_80211_tx_rate = 468; +// req_w_disable_pmf_config = 469; +// +// req_max = 470; +// +// +// rsp_base = 600; +// rsp_w_init = 601; +// rsp_w_deinit = 602; +// rsp_w_set_mode = 603; +// rsp_w_get_mode = 604; +// rsp_w_start = 605; +// rsp_w_stop = 606; +// rsp_w_restore = 607; +// rsp_w_connect = 608; +// rsp_w_disconnect = 609; +// rsp_w_clear_fast_connect = 610; +// rsp_w_deauth_sta = 611; +// rsp_w_scan_start = 612; +// rsp_w_scan_stop = 613; +// rsp_w_scan_get_ap_name = 614; +// rsp_w_scan_get_ap_records = 615; +// rsp_w_clear_ap_list = 616; +// rsp_w_sta_get_ap_info = 617; +// rsp_w_set_ps = 618; +// rsp_w_get_ps = 619; +// rsp_w_set_protocol = 620; +// rsp_w_get_protocol = 621; +// rsp_w_set_bandwidth = 622; +// rsp_w_get_bandwidth = 623; +// rsp_w_set_channel = 624; +// rsp_w_get_channel = 625; +// rsp_w_set_country = 626; +// rsp_w_get_country = 627; +// rsp_w_set_mac = 628; +// rsp_w_get_mac = 629; +// rsp_w_set_promiscuous_cb = 630; +// rsp_w_set_promiscuous = 631; +// rsp_w_get_promiscuous = 632; +// rsp_w_set_promiscuous_filter = 633; +// rsp_w_get_promiscuous_filter = 634; +// rsp_w_set_promiscuous_ctrl_filter = 635; +// rsp_w_get_promiscuous_ctrl_filter = 636; +// rsp_w_set_config = 637; +// rsp_w_get_config = 638; +// rsp_w_ap_get_sta_list = 639; +// rsp_w_ap_get_sta_aid = 640; +// rsp_w_set_storage = 641; +// rsp_w_set_vendor_ie = 642; +// rsp_w_set_vendor_ie_cb = 643; +// rsp_w_set_max_tx_power = 644; +// rsp_w_get_max_tx_power = 645; +// rsp_w_set_event_mask = 646; +// rsp_w_get_event_mask = 647; +// rsp_w_80211_tx = 648; +// rsp_w_set_csi_rx_cb = 649; +// rsp_w_set_csi_config = 650; +// rsp_w_set_csi = 651; +// rsp_w_set_ant_gpio = 652; +// rsp_w_get_ant_gpio = 653; +// rsp_w_set_ant = 654; +// rsp_w_get_ant = 655; +// rsp_w_get_tsf_time = 656; +// rsp_w_set_inactive_time = 657; +// rsp_w_get_inactive_time = 658; +// rsp_w_statis_dump = 659; +// rsp_w_set_rssi_threshold = 660; +// rsp_w_ftm_initiate_session = 661; +// rsp_w_ftm_end_session = 662; +// rsp_w_ftm_resp_set_offset = 663; +// rsp_w_config_11b_rate = 664; +// rsp_w_connectionless_module_set_wake_interval = 665; +// rsp_w_set_country_code = 666; +// rsp_w_get_country_code = 667; +// rsp_w_config_80211_tx_rate = 668; +// rsp_w_disable_pmf_config = 669; +// +// rsp_max = 670; +// +// +// evt_base = 800; +// evt_esp_started = 801; +// evt_heartbeat = 802; +// evt_w_ready = 803; /**< ESP32 WiFi ready */ +// evt_w_scan_done = 804; /**< ESP32 finish scanning AP */ +// evt_w_sta_start = 805; /**< ESP32 station start */ +// evt_w_sta_stop = 806; /**< ESP32 station stop */ +// evt_w_sta_connected = 807; /**< ESP32 station connected to AP */ +// evt_w_sta_disconnected = 808; /**< ESP32 station disconnected from AP */ +// evt_w_sta_authmode_change = 809; /**< the auth mode of AP connected by ESP32 station changed */ +// +// evt_w_sta_wps_er_success = 810; /**< ESP32 station wps succeeds in enrollee mode */ +// evt_w_sta_wps_er_failed = 811; /**< ESP32 station wps fails in enrollee mode */ +// evt_w_sta_wps_er_timeout = 812; /**< ESP32 station wps timeout in enrollee mode */ +// evt_w_sta_wps_er_pin = 813; /**< ESP32 station wps pin code in enrollee mode */ +// evt_w_sta_wps_er_pbc_overlap = 814; /**< ESP32 station wps overlap in enrollee mode */ +// +// evt_w_ap_start = 815; /**< ESP32 soft-AP start */ +// evt_w_ap_stop = 816; /**< ESP32 soft-AP stop */ +// evt_w_ap_staconnected = 817; /**< a station connected to ESP32 soft-AP */ +// evt_w_ap_stadisconnected = 818; /**< a station disconnected from ESP32 soft-AP */ +// evt_w_ap_probereqrecved = 819; /**< Receive probe request packet in soft-AP interface */ +// +// evt_w_ftm_report = 820; /**< Receive report of FTM procedure */ +// +// /* Add next events after this only */ +// evt_w_sta_bss_rssi_low = 821; /**< AP's RSSI crossed configured threshold */ +// evt_w_action_tx_status = 822; /**< Status indication of Action Tx operation */ +// evt_w_roc_done = 823; /**< Remain-on-Channel operation complete */ +// +// evt_w_sta_beacon_timeout = 824; /**< ESP32 station beacon timeout */ +// +// evt_w_connectionless_module_wake_interval_start = 825; /**< ESP32 connectionless module wake interval start */ +// +// evt_w_ap_wps_rg_success = 826; /**< Soft-AP wps succeeds in registrar mode */ +// evt_w_ap_wps_rg_failed = 827; /**< Soft-AP wps fails in registrar mode */ +// evt_w_ap_wps_rg_timeout = 828; /**< Soft-AP wps timeout in registrar mode */ +// evt_w_ap_wps_rg_pin = 829; /**< Soft-AP wps pin code in registrar mode */ +// evt_w_ap_wps_rg_pbc_overlap = 830; /**< Soft-AP wps overlap in registrar mode */ +// +// evt_max = 831; /**< Invalid WiFi event ID */ +// +//} + + +enum RpcId { + MsgId_Invalid = 0; + + /** Request Msgs **/ + Req_Base = 256; //0x100 + + Req_GetMACAddress = 257; //0x101 + Req_SetMacAddress = 258; //0x102 + Req_GetWifiMode = 259; //0x103 + Req_SetWifiMode = 260; //0x104 + + //Req_GetAPScanList = 261; //0x105 + //Req_GetAPConfig = 262; //0x106 + //Req_ConnectAP = 263; //0x107 + //Req_DisconnectAP = 264; //0x108 + + //Req_GetSoftAPConfig = 265; //0x109 + //Req_SetSoftAPVendorSpecificIE = 266; //0x10a + //Req_StartSoftAP = 267; //0x10b + //Req_GetSoftAPConnectedSTAList = 268; //0x10c + //Req_StopSoftAP = 269; //0x10d + + Req_WifiSetPs = 270; //0x10e + Req_WifiGetPs = 271; //0x10f + + Req_OTABegin = 272; //0x110 + Req_OTAWrite = 273; //0x111 + Req_OTAEnd = 274; //0x112 + + Req_WifiSetMaxTxPower = 275; //0x113 + Req_WifiGetMaxTxPower = 276; //0x114 + + Req_ConfigHeartbeat = 277; //0x115 + + Req_WifiInit = 278; //0x116 + Req_WifiDeinit = 279; //0x117 + Req_WifiStart = 280; //0x118 + Req_WifiStop = 281; //0x119 + Req_WifiConnect = 282; //0x11a + Req_WifiDisconnect = 283; //0x11b + Req_WifiSetConfig = 284; //0x11c + Req_WifiGetConfig = 285; //0x11d + + Req_WifiScanStart = 286; //0x11e + Req_WifiScanStop = 287; //0x11f + Req_WifiScanGetApNum = 288; //0x120 + Req_WifiScanGetApRecords = 289; //0x121 + Req_WifiClearApList = 290; //0x122 + + Req_WifiRestore = 291; //0x123 + Req_WifiClearFastConnect = 292; //0x124 + Req_WifiDeauthSta = 293; //0x125 + Req_WifiStaGetApInfo = 294; //0x126 + //Req_WifiSetPs = 295; //0x127 + //Req_WifiGetPs = 296; //0x128 + Req_WifiSetProtocol = 297; //0x129 + Req_WifiGetProtocol = 298; //0x12a + Req_WifiSetBandwidth = 299; //0x12b + Req_WifiGetBandwidth = 300; //0x12c + Req_WifiSetChannel = 301; //0x12d + Req_WifiGetChannel = 302; //0x12e + Req_WifiSetCountry = 303; //0x12f + Req_WifiGetCountry = 304; //0x130 + +// Req_WifiSetPromiscuousRxCb = 305; //0x131 + Req_WifiSetPromiscuous = 305; //0x131 + Req_WifiGetPromiscuous = 306; //0x132 + Req_WifiSetPromiscuousFilter = 307; //0x133 + Req_WifiGetPromiscuousFilter = 308; //0x134 + Req_WifiSetPromiscuousCtrlFilter = 309; //0x135 + Req_WifiGetPromiscuousCtrlFilter = 310; //0x136 + + Req_WifiApGetStaList = 311; //0x137 + Req_WifiApGetStaAid = 312; //0x138 + Req_WifiSetStorage = 313; //0x139 + Req_WifiSetVendorIe = 314; //0x13a +// Req_WifiSetVendorIeCb = 315; //0x13b + Req_WifiSetEventMask = 315; //0x13b + Req_WifiGetEventMask = 316; //0x13c + Req_Wifi80211Tx = 317; //0x13d + +// Req_WifiSetCsiRxCb = 318; //0x13e + Req_WifiSetCsiConfig = 318; //0x13e + Req_WifiSetCsi = 319; //0x13f + + Req_WifiSetAntGpio = 320; //0x140 + Req_WifiGetAntGpio = 321; //0x141 + Req_WifiSetAnt = 322; //0x142 + Req_WifiGetAnt = 323; //0x143 + + Req_WifiGetTsfTime = 324; //0x144 + Req_WifiSetInactiveTime = 325; //0x145 + Req_WifiGetInactiveTime = 326; //0x146 + Req_WifiStatisDump = 327; //0x147 + Req_WifiSetRssiThreshold = 328; //0x148 + + Req_WifiFtmInitiateSession = 329; //0x149 + Req_WifiFtmEndSession = 330; //0x14a + Req_WifiFtmRespSetOffset = 331; //0x14b + + Req_WifiConfig11bRate = 332; //0x14c + Req_WifiConnectionlessModuleSetWakeInterval = 333; //0x14d + Req_WifiSetCountryCode = 334; //0x14e + Req_WifiGetCountryCode = 335; //0x14f + Req_WifiConfig80211TxRate = 336; //0x150 + Req_WifiDisablePmfConfig = 337; //0x151 + Req_WifiStaGetAid = 338; //0x152 + Req_WifiStaGetNegotiatedPhymode = 339; //0x153 + Req_WifiSetDynamicCs = 340; //0x154 + Req_WifiStaGetRssi = 341; //0x155 + + Req_WifiSetProtocols = 342; //0x156 + Req_WifiGetProtocols = 343; //0x157 + Req_WifiSetBandwidths = 344; //0x158 + Req_WifiGetBandwidths = 345; //0x159 + + Req_WifiSetBand = 346; //0x15a + Req_WifiGetBand = 347; //0x15b + Req_WifiSetBandMode = 348; //0x15c + Req_WifiGetBandMode = 349; //0x15d + + Req_GetCoprocessorFwVersion = 350; //0x15e + + Req_WifiScanGetApRecord = 351; //0x15f + +/* Add new control path command response before Req_Max + * and update Req_Max */ + Req_Max = 352; //0x160 + + /** Response Msgs **/ + Resp_Base = 512; + + Resp_GetMACAddress = 513; + Resp_SetMacAddress = 514; + Resp_GetWifiMode = 515; + Resp_SetWifiMode = 516; + + //Resp_GetAPScanList = 517; + //Resp_GetAPConfig = 518; + //Resp_ConnectAP = 519; + //Resp_DisconnectAP = 520; + + //Resp_GetSoftAPConfig = 521; + //Resp_SetSoftAPVendorSpecificIE = 522; + //Resp_StartSoftAP = 523; + //Resp_GetSoftAPConnectedSTAList = 524; + //Resp_StopSoftAP = 525; + + Resp_WifiSetPs = 526; + Resp_WifiGetPs = 527; + + Resp_OTABegin = 528; + Resp_OTAWrite = 529; + Resp_OTAEnd = 530; + + Resp_WifiSetMaxTxPower = 531; + Resp_WifiGetMaxTxPower = 532; + + Resp_ConfigHeartbeat = 533; + + Resp_WifiInit = 534; + Resp_WifiDeinit = 535; + Resp_WifiStart = 536; + Resp_WifiStop = 537; + Resp_WifiConnect = 538; + Resp_WifiDisconnect = 539; + Resp_WifiSetConfig = 540; + Resp_WifiGetConfig = 541; + + Resp_WifiScanStart = 542; + Resp_WifiScanStop = 543; + Resp_WifiScanGetApNum = 544; + Resp_WifiScanGetApRecords = 545; + Resp_WifiClearApList = 546; + + Resp_WifiRestore = 547; + Resp_WifiClearFastConnect = 548; + Resp_WifiDeauthSta = 549; + Resp_WifiStaGetApInfo = 550; + //Resp_WifiSetPs = 551; + //Resp_WifiGetPs = 552; + Resp_WifiSetProtocol = 553; + Resp_WifiGetProtocol = 554; + Resp_WifiSetBandwidth = 555; + Resp_WifiGetBandwidth = 556; + Resp_WifiSetChannel = 557; + Resp_WifiGetChannel = 558; + Resp_WifiSetCountry = 559; + Resp_WifiGetCountry = 560; + +// Resp_WifiSetPromiscuousRxCb = 561; + Resp_WifiSetPromiscuous = 561; + Resp_WifiGetPromiscuous = 562; + Resp_WifiSetPromiscuousFilter = 563; + Resp_WifiGetPromiscuousFilter = 564; + Resp_WifiSetPromiscuousCtrlFilter = 565; + Resp_WifiGetPromiscuousCtrlFilter = 566; + + Resp_WifiApGetStaList = 567; + Resp_WifiApGetStaAid = 568; + Resp_WifiSetStorage = 569; + Resp_WifiSetVendorIe = 570; +// Resp_WifiSetVendorIeCb = 571; + Resp_WifiSetEventMask = 571; + Resp_WifiGetEventMask = 572; + Resp_Wifi80211Tx = 573; + +// Resp_WifiSetCsiRxCb = 573; + Resp_WifiSetCsiConfig = 574; + Resp_WifiSetCsi = 575; + + Resp_WifiSetAntGpio = 576; + Resp_WifiGetAntGpio = 577; + Resp_WifiSetAnt = 578; + Resp_WifiGetAnt = 579; + + Resp_WifiGetTsfTime = 580; + Resp_WifiSetInactiveTime = 581; + Resp_WifiGetInactiveTime = 582; + Resp_WifiStatisDump = 583; + Resp_WifiSetRssiThreshold = 584; + + Resp_WifiFtmInitiateSession = 585; + Resp_WifiFtmEndSession = 586; + Resp_WifiFtmRespSetOffset = 587; + + Resp_WifiConfig11bRate = 588; + Resp_WifiConnectionlessModuleSetWakeInterval = 589; + Resp_WifiSetCountryCode = 590; + Resp_WifiGetCountryCode = 591; + Resp_WifiConfig80211TxRate = 592; + Resp_WifiDisablePmfConfig = 593; + Resp_WifiStaGetAid = 594; + Resp_WifiStaGetNegotiatedPhymode = 595; + Resp_WifiSetDynamicCs = 596; + Resp_WifiStaGetRssi = 597; + + Resp_WifiSetProtocols = 598; + Resp_WifiGetProtocols = 599; + Resp_WifiSetBandwidths = 600; + Resp_WifiGetBandwidths = 601; + + Resp_WifiSetBand = 602; + Resp_WifiGetBand = 603; + Resp_WifiSetBandMode = 604; + Resp_WifiGetBandMode = 605; + + Resp_GetCoprocessorFwVersion = 606; + + Resp_WifiScanGetApRecord = 607; + + /* Add new control path command response before Resp_Max + * and update Resp_Max */ + Resp_Max = 608; + + /** Event Msgs **/ + Event_Base = 768; + Event_ESPInit = 769; + Event_Heartbeat = 770; + Event_AP_StaConnected = 771; + Event_AP_StaDisconnected = 772; + Event_WifiEventNoArgs = 773; + Event_StaScanDone = 774; + Event_StaConnected = 775; + Event_StaDisconnected = 776; + + /* Add new control path command notification before Event_Max + * and update Event_Max */ + Event_Max = 777; +} + +message wifi_init_config { + int32 static_rx_buf_num = 1; /**< WiFi static RX buffer number */ + int32 dynamic_rx_buf_num = 2; /**< WiFi dynamic RX buffer number */ + int32 tx_buf_type = 3; /**< WiFi TX buffer type */ + int32 static_tx_buf_num = 4; /**< WiFi static TX buffer number */ + int32 dynamic_tx_buf_num = 5; /**< WiFi dynamic TX buffer number */ + int32 cache_tx_buf_num = 6; /**< WiFi TX cache buffer number */ + int32 csi_enable = 7; /**< WiFi channel state information enable flag */ + int32 ampdu_rx_enable = 8; /**< WiFi AMPDU RX feature enable flag */ + int32 ampdu_tx_enable = 9; /**< WiFi AMPDU TX feature enable flag */ + int32 amsdu_tx_enable = 10; /**< WiFi AMSDU TX feature enable flag */ + int32 nvs_enable = 11; /**< WiFi NVS flash enable flag */ + int32 nano_enable = 12; /**< Nano option for printf/scan family enable flag */ + int32 rx_ba_win = 13; /**< WiFi Block Ack RX window size */ + int32 wifi_task_core_id = 14; /**< WiFi Task Core ID */ + int32 beacon_max_len = 15; /**< WiFi softAP maximum length of the beacon */ + int32 mgmt_sbuf_num = 16; /**< WiFi management short buffer number, the minimum value is 6, the maximum value is 32 */ + uint64 feature_caps = 17; /**< Enables additional WiFi features and capabilities */ + bool sta_disconnected_pm = 18; /**< WiFi Power Management for station at disconnected status */ + int32 espnow_max_encrypt_num = 19; /**< Maximum encrypt number of peers supported by espnow */ + int32 magic = 20; /**< WiFi init magic number, it should be the last field */ +} + +message wifi_country { + bytes cc = 1; /**< country code string of 3 chars*/ + uint32 schan = 2; /**< start channel */ + uint32 nchan = 3; /**< total channel number */ + int32 max_tx_power = 4; /**< This field is used for getting WiFi maximum transmitting power, + call esp_wifi_set_max_tx_power to set the maximum transmitting power. */ + int32 policy = 5; /**< country policy */ +} + + +message wifi_active_scan_time { + uint32 min = 1; /**< minimum active scan time per channel, units: millisecond */ + uint32 max = 2; /**< maximum active scan time per channel, units: millisecond, values above 1500ms may + cause station to disconnect from AP and are not recommended. */ +} ; + +message wifi_scan_time { + wifi_active_scan_time active = 1; /**< active scan time per channel, units: millisecond. */ + uint32 passive = 2; /**< passive scan time per channel, units: millisecond, values above 1500ms may + cause station to disconnect from AP and are not recommended. */ +} + +message wifi_scan_config { + bytes ssid = 1; /**< SSID of AP 33char*/ + bytes bssid = 2; /**< MAC address of AP 6char */ + uint32 channel = 3; /**< channel, scan the specific channel */ + bool show_hidden = 4; /**< enable to scan AP whose SSID is hidden */ + int32 scan_type = 5; /**< scan type, active or passive */ + wifi_scan_time scan_time = 6; /**< scan time per channel */ + uint32 home_chan_dwell_time = 7; /**< time spent at home channel between scanning consecutive channels.*/ +} + +message wifi_he_ap_info { + //uint8_t bss_color:6; /**< an unsigned integer whose value is the BSS Color of the BSS corresponding to the AP */ + //uint8_t partial_bss_color:1; /**< indicate if an AID assignment rule based on the BSS color */ + //uint8_t bss_color_disabled:1; /**< indicate if the use of BSS color is disabled */ + uint32 bitmask = 1; /* Manually have to parse for above bits */ + uint32 bssid_index = 2; /**< in M-BSSID set, identifies the nontransmitted BSSID */ +} + +message wifi_ap_record { + bytes bssid = 1; /**< MAC address of AP 6char */ + bytes ssid = 2; /**< SSID of AP 33char */ + uint32 primary = 3; /**< channel of AP */ + int32 second = 4; /**< secondary channel of AP */ + int32 rssi = 5; /**< signal strength of AP */ + int32 authmode = 6; /**< authmode of AP */ + int32 pairwise_cipher = 7; /**< pairwise cipher of AP */ + int32 group_cipher = 8; /**< group cipher of AP */ + int32 ant = 9; /**< antenna used to receive beacon from AP */ + //uint32_t phy_11b:1; /**< bit: 0 flag to identify if 11b mode is enabled or not */ + //uint32_t phy_11g:1; /**< bit: 1 flag to identify if 11g mode is enabled or not */ + //uint32_t phy_11n:1; /**< bit: 2 flag to identify if 11n mode is enabled or not */ + //uint32_t phy_lr:1; /**< bit: 3 flag to identify if low rate is enabled or not */ + //uint32_t wps:1; /**< bit: 4 flag to identify if WPS is supported or not */ + //uint32_t ftm_responder:1; /**< bit: 5 flag to identify if FTM is supported in responder mode */ + //uint32_t ftm_initiator:1; /**< bit: 6 flag to identify if FTM is supported in initiator mode */ + //uint32_t reserved:25; /**< bit: 7..31 reserved */ + uint32 bitmask = 10; /* Manually have to parse for above bits */ + + wifi_country country = 11; /**< country information of AP */ + wifi_he_ap_info he_ap = 12; + uint32 bandwidth = 13; /**< For AP 20 MHz this value is set to 1. For AP 40 MHz this value is set to 2. + For AP 80 MHz this value is set to 3. For AP 160MHz this value is set to 4. + For AP 80+80MHz this value is set to 5*/ + uint32 vht_ch_freq1 = 14; /**< This fields are used only AP bandwidth is 80 and 160 MHz, to transmit the center channel + frequency of the BSS. For AP bandwidth is 80 + 80 MHz, it is the center channel frequency + of the lower frequency segment.*/ + uint32 vht_ch_freq2 = 15; /**< This fields are used only AP bandwidth is 80 + 80 MHz, and is used to transmit the center + channel frequency of the second segment. */ +} + +message wifi_scan_threshold { + int32 rssi = 1; /**< The minimum rssi to accept in the fast scan mode */ + int32 authmode = 2; /**< The weakest authmode to accept in the fast scan mode +Note: Incase this value is not set and password is set as per WPA2 standards(password len >= 8), +it will be defaulted to WPA2 and device won't connect to deprecated WEP/WPA networks. +Please set authmode threshold as WIFI_AUTH_WEP/WIFI_AUTH_WPA_PSK to connect to WEP/WPA networks */ +} + +message wifi_pmf_config { + bool capable = 1; /**< Deprecated variable. Device will always connect in PMF mode if other device also advertizes PMF capability. */ + bool required = 2; /**< Advertizes that Protected Management Frame is required. Device will not associate to non-PMF capable devices. */ +} + +message wifi_ap_config { + bytes ssid = 1; /**< SSID of ESP32 soft-AP. If ssid_len field is 0, this must be a Null terminated string. Otherwise, length is set according to ssid_len. 32 char*/ + bytes password = 2; /**< Password of ESP32 soft-AP. 64 char*/ + uint32 ssid_len = 3; /**< Optional length of SSID field. */ + uint32 channel = 4; /**< Channel of ESP32 soft-AP */ + int32 authmode = 5; /**< Auth mode of ESP32 soft-AP. Do not support AUTH_WEP in soft-AP mode */ + uint32 ssid_hidden = 6; /**< Broadcast SSID or not, default 0, broadcast the SSID */ + uint32 max_connection = 7; /**< Max number of stations allowed to connect in */ + uint32 beacon_interval = 8; /**< Beacon interval which should be multiples of 100. Unit: TU(time unit, 1 TU = 1024 us). Range: 100 ~ 60000. Default value: 100 */ + int32 pairwise_cipher = 9; /**< pairwise cipher of SoftAP, group cipher will be derived using this. + cipher values are valid starting from WIFI_CIPHER_TYPE_TKIP, enum values before that will be considered as invalid and default cipher suites(TKIP+CCMP) will be used. + Valid cipher suites in softAP mode are WIFI_CIPHER_TYPE_TKIP, WIFI_CIPHER_TYPE_CCMP and WIFI_CIPHER_TYPE_TKIP_CCMP. */ + bool ftm_responder = 10; /**< Enable FTM Responder mode */ + wifi_pmf_config pmf_cfg = 11; /**< Configuration for Protected Management Frame */ + int32 sae_pwe_h2e = 12; /**< Configuration for SAE PWE derivation method */ +} + +message wifi_sta_config { + bytes ssid = 1; /**< SSID of target AP. 32char */ + bytes password = 2; /**< Password of target AP. 64char */ + int32 scan_method = 3; /**< do all channel scan or fast scan */ + bool bssid_set = 4; /**< whether set MAC address of target AP or not. Generally, station_config.bssid_set needs to be 0, + and it needs to be 1 only when users need to check the MAC address of the AP.*/ + bytes bssid = 5; /**< MAC address of target AP 6char */ + uint32 channel = 6; /**< channel of target AP. Set to 1~13 to scan starting from the specified channel + before connecting to AP. If the channel of AP is unknown, set it to 0.*/ + uint32 listen_interval = 7; /**< Listen interval for ESP32 station to receive beacon when WIFI_PS_MAX_MODEM is set. +Units: AP beacon intervals. Defaults to 3 if set to 0. */ + int32 sort_method = 8; /**< sort the connect AP in the list by rssi or security mode */ + wifi_scan_threshold threshold = 9; /**< When sort_method is set, only APs which have an auth mode that is more secure + than the selected auth mode and a signal stronger than the minimum RSSI will be used. */ + wifi_pmf_config pmf_cfg = 10; /**< Configuration for Protected Management Frame. Will be advertized in RSN Capabilities in RSN IE. */ + //uint32_t rm_enabled:1; /**< Whether Radio Measurements are enabled for the connection */ + //uint32_t btm_enabled:1; /**< Whether BSS Transition Management is enabled for the connection */ + //uint32_t mbo_enabled:1; /**< Whether MBO is enabled for the connection */ + //uint32_t ft_enabled:1; /**< Whether FT is enabled for the connection */ + //uint32_t owe_enabled:1; /**< Whether OWE is enabled for the connection */ + //uint32_t transition_disable:1; /**< Whether to enable transition disable feature */ + //uint32_t reserved:26; /**< Reserved for future feature set */ + uint32 bitmask = 11; + int32 sae_pwe_h2e = 12; /**< Whether SAE hash to element is enabled */ + uint32 failure_retry_cnt = 13; /**< Number of connection retries station will do before moving to next AP. + scan_method should be set as WIFI_ALL_CHANNEL_SCAN to use this config. + Note: Enabling this may cause connection time to increase incase best AP doesn't behave properly. */ + //uint32_t he_dcm_set:1; /**< Whether DCM max.constellation for transmission and reception is set. */ + //uint32_t he_dcm_max_constellation_tx:2; /**< Indicate the max.constellation for DCM in TB PPDU the STA supported. 0: not supported. 1: BPSK, 2: QPSK, 3: 16-QAM. The default value is 3. */ + //uint32_t he_dcm_max_constellation_rx:2; /**< Indicate the max.constellation for DCM in both Data field and HE-SIG-B field the STA supported. 0: not supported. 1: BPSK, 2: QPSK, 3: 16-QAM. The default value is 3. */ + //uint32_t he_mcs9_enabled:1; /**< Whether to support HE-MCS 0 to 9. The default value is 0. */ + //uint32_t he_su_beamformee_disabled:1; /**< Whether to disable support for operation as an SU beamformee. */ + //uint32_t he_trig_su_bmforming_feedback_disabled:1; /**< Whether to disable support the transmission of SU feedback in an HE TB sounding sequence. */ + //uint32_t he_trig_mu_bmforming_partial_feedback_disabled:1; /**< Whether to disable support the transmission of partial-bandwidth MU feedback in an HE TB sounding sequence. */ + // uint32_t he_trig_cqi_feedback_disabled:1; /**< Whether to disable support the transmission of CQI feedback in an HE TB sounding sequence. */ + // uint32_t he_reserved:22; /**< Reserved for future feature set */ + uint32 he_bitmask = 14; + bytes sae_h2e_identifier = 15; /**< Password identifier for H2E. this needs to be null terminated string. SAE_H2E_IDENTIFIER_LEN chars */ +} + +message wifi_config { + oneof u { + wifi_ap_config ap = 1; /**< configuration of AP */ + wifi_sta_config sta = 2; /**< configuration of STA */ + } +} + +message wifi_sta_info { + bytes mac = 1; /**< mac address 6 char */ + int32 rssi = 2; /**< current average rssi of sta connected */ + //uint32_t phy_11b:1; /**< bit: 0 flag to identify if 11b mode is enabled or not */ + //uint32_t phy_11g:1; /**< bit: 1 flag to identify if 11g mode is enabled or not */ + //uint32_t phy_11n:1; /**< bit: 2 flag to identify if 11n mode is enabled or not */ + //uint32_t phy_lr:1; /**< bit: 3 flag to identify if low rate is enabled or not */ + //uint32_t phy_11x:1; /**< bit: 4 flag to identify identify if 11ax mode is enabled or not */ + //uint32_t is_mesh_child:1; /**< bit: 5 flag to identify mesh child */ + //uint32_t reserved:26; /**< bit: 6..31 reserved */ + uint32 bitmask = 3; +} + +message wifi_sta_list { + repeated wifi_sta_info sta = 1; /**< station list */ + int32 num = 2; /**< number of stations in the list (other entries are invalid) */ +} + +//message vendor_ie_data { +// uint32 element_id = 1; /**< Should be set to WIFI_VENDOR_IE_ELEMENT_ID (0xDD) */ +// uint32 length = 2; /**< Length of all bytes in the element data following this field. Minimum 4. */ +// bytes vendor_oui = 3; /**< Vendor identifier (OUI). 3 chars */ +// uint32 vendor_oui_type = 4; /**< Vendor-specific OUI type. */ +// bytes payload = 5; /**< Payload. Length is equal to value in 'length' field, minus 4. Note: Variable size */ +//} + +message wifi_pkt_rx_ctrl { + int32 rssi = 1; /**< 8bits Received Signal Strength Indicator(RSSI) of packet. unit: dBm */ + uint32 rate = 2; /**< 5bits PHY rate encoding of the packet. Only valid for non HT(11bg) packet */ + //uint32 :1; /**< reserved */ + uint32 sig_mode = 3; /**< 2bits 0: non HT(11bg) packet; 1: HT(11n) packet; 3: VHT(11ac) packet */ + //uint32 :16; /**< reserved */ + uint32 mcs = 4; /**< 7bits Modulation Coding Scheme. If is HT(11n) packet, shows the modulation, range from 0 to 76(MSC0 ~ MCS76) */ + uint32 cwb = 5; /**< 1bit Channel Bandwidth of the packet. 0: 20MHz; 1: 40MHz */ + //uint32 :16; /**< reserved */ + uint32 smoothing = 6; /**< 1bit reserved */ + uint32 not_sounding = 7; /**< 1bit reserved */ + //uint32 :1; /**< reserved */ + uint32 aggregation = 8; /**< 1bit Aggregation. 0: MPDU packet; 1: AMPDU packet */ + uint32 stbc = 9; /**< 2bits Space Time Block Code(STBC). 0: non STBC packet; 1: STBC packet */ + uint32 fec_coding = 10; /**< 1bit Flag is set for 11n packets which are LDPC */ + uint32 sgi = 11; /**< 1bit Short Guide Interval(SGI). 0: Long GI; 1: Short GI */ + int32 noise_floor = 12; /**< 8bits noise floor of Radio Frequency Module(RF). unit: dBm*/ + uint32 ampdu_cnt = 13; /**< 8bits ampdu cnt */ + uint32 channel = 14; /**< 4bits primary channel on which this packet is received */ + uint32 secondary_channel = 15; /**< 4bits secondary channel on which this packet is received. 0: none; 1: above; 2: below */ + //uint32 :8; /**< reserved */ + uint32 timestamp = 16; /**< 32bit timestamp. The local time when this packet is received. It is precise only if modem sleep or light sleep is not enabled. unit: microsecond */ + //uint32 :32; /**< reserved */ + //unsigned :32; /**< reserved */ + //unsigned :31; /**< reserved */ + uint32 ant = 17; /**< 1bit antenna number from which this packet is received. 0: WiFi antenna 0; 1: WiFi antenna 1 */ + uint32 sig_len = 18; /**< 12bits length of packet including Frame Check Sequence(FCS) */ + //unsigned :12; /**< reserved */ + uint32 rx_state = 19; /**< 8bits state of the packet. 0: no error; others: error numbers which are not public */ +} + +message wifi_promiscuous_pkt { + wifi_pkt_rx_ctrl rx_ctrl = 1; /**< metadata header */ + bytes payload = 2; /**< Note: variable length. Data or management payload. Length of payload is described by rx_ctrl.sig_len. Type of content determined by packet type argument of callback. */ +} + +message wifi_promiscuous_filter { + uint32 filter_mask = 1; /**< OR of one or more filter values WIFI_PROMIS_FILTER_* */ +} + +message wifi_csi_config { + bool lltf_en = 1; /**< enable to receive legacy long training field(lltf) data. Default enabled */ + bool htltf_en = 2; /**< enable to receive HT long training field(htltf) data. Default enabled */ + bool stbc_htltf2_en = 3; /**< enable to receive space time block code HT long training field(stbc-htltf2) data. Default enabled */ + bool ltf_merge_en = 4; /**< enable to generate htlft data by averaging lltf and ht_ltf data when receiving HT packet. Otherwise, use ht_ltf data directly. Default enabled */ + bool channel_filter_en = 5; /**< enable to turn on channel filter to smooth adjacent sub-carrier. Disable it to keep independence of adjacent sub-carrier. Default enabled */ + bool manu_scale = 6; /**< manually scale the CSI data by left shifting or automatically scale the CSI data. + If set true, please set the shift bits. false: automatically. true: manually. Default false */ + uint32 shift = 7; /**< manually left shift bits of the scale of the CSI data. The range of the left shift bits is 0~15 */ +} + +message wifi_csi_info { + wifi_pkt_rx_ctrl rx_ctrl = 1; /**< received packet radio metadata header of the CSI data */ + bytes mac = 2; /**< 6bits source MAC address of the CSI data */ + bytes dmac = 3; /**< 6bits destination MAC address of the CSI data */ + bool first_word_invalid = 4; /**< first four bytes of the CSI data is invalid or not */ + bytes buf = 5; /**< Note: variable length. buffer of CSI data */ + uint32 len = 6; /**< length of CSI data */ +} + +message wifi_ant_gpio { + uint32 gpio_select = 1; /**< 1bit Whether this GPIO is connected to external antenna switch */ + uint32 gpio_num = 2; /**< 7bits The GPIO number that connects to external antenna switch */ +} + +message wifi_ant_gpio_config { + repeated wifi_ant_gpio gpio_cfgs = 1; /**< The configurations of GPIOs that connect to external antenna switch */ +} + +message wifi_ant_config { + int32 rx_ant_mode = 1; /**< WiFi antenna mode for receiving */ + int32 rx_ant_default = 2; /**< Default antenna mode for receiving, it's ignored if rx_ant_mode is not WIFI_ANT_MODE_AUTO */ + int32 tx_ant_mode = 3; /**< WiFi antenna mode for transmission, it can be set to WIFI_ANT_MODE_AUTO only if rx_ant_mode is set to WIFI_ANT_MODE_AUTO */ + uint32 enabled_ant0 = 4; /**< 4bits Index (in antenna GPIO configuration) of enabled WIFI_ANT_MODE_ANT0 */ + uint32 enabled_ant1 = 5; /**< 4bits Index (in antenna GPIO configuration) of enabled WIFI_ANT_MODE_ANT1 */ +} + +message wifi_action_tx_req { + int32 ifx = 1; /**< WiFi interface to send request to */ + bytes dest_mac = 2; /**< 6bits Destination MAC address */ + bool no_ack = 3; /**< Indicates no ack required */ + //TODO + //wifi_action_rx_cb_t rx_cb; /**< Rx Callback to receive any response */ + uint32 data_len = 4; /**< Length of the appended Data */ + bytes data = 5; /**< note: variable length. Appended Data payload */ +} + +message wifi_ftm_initiator_cfg { + bytes resp_mac = 1; /**< 6bits MAC address of the FTM Responder */ + uint32 channel = 2; /**< Primary channel of the FTM Responder */ + uint32 frm_count = 3; /**< No. of FTM frames requested in terms of 4 or 8 bursts (allowed values - 0(No pref), 16, 24, 32, 64) */ + uint32 burst_period = 4; /**< Requested time period between consecutive FTM bursts in 100's of milliseconds (0 - No pref) */ +} + +message wifi_event_sta_scan_done { + uint32 status = 1; /**< status of scanning APs: 0 — success, 1 - failure */ + uint32 number = 2; /**< number of scan results */ + uint32 scan_id = 3; /**< scan sequence number, used for block scan */ +} + +message wifi_event_sta_connected { + bytes ssid = 1; /**< 32bytes SSID of connected AP */ + uint32 ssid_len = 2; /**< SSID length of connected AP */ + bytes bssid = 3; /**< 6bytes BSSID of connected AP*/ + uint32 channel = 4; /**< channel of connected AP*/ + int32 authmode = 5; /**< authentication mode used by AP*/ + int32 aid = 6; /**< authentication id assigned by the connected AP*/ +} + +message wifi_event_sta_disconnected { + bytes ssid = 1; /**< SSID of disconnected AP */ + uint32 ssid_len = 2; /**< SSID length of disconnected AP */ + bytes bssid = 3; /**< BSSID of disconnected AP */ + uint32 reason = 4; /**< reason of disconnection */ + int32 rssi = 5; /**< rssi of disconnection */ +} + +message wifi_event_sta_authmode_change { + int32 old_mode = 1; /**< the old auth mode of AP */ + int32 new_mode = 2; /**< the new auth mode of AP */ +} + +message wifi_event_sta_wps_er_pin { + bytes pin_code = 1; /**< 8bytes PIN code of station in enrollee mode */ +} + +message ap_cred { + bytes ssid = 1; /**< 32bytes SSID of AP */ + bytes passphrase = 2; /**< 64bytes Passphrase for the AP */ +} + +message wifi_event_sta_wps_er_success { + uint32 ap_cred_cnt = 1; /**< Number of AP credentials received */ + repeated ap_cred ap_creds = 2; /**< All AP credentials received from WPS handshake */ +} + +/** Argument structure for WIFI_EVENT_AP_PROBEREQRECVED event */ +message wifi_event_ap_probe_req_rx { + int32 rssi = 1; /**< Received probe request signal strength */ + uint32 mac = 2; /**< MAC address of the station which send probe request */ +} + +/** Argument structure for WIFI_EVENT_STA_BSS_RSSI_LOW event */ +message wifi_event_bss_rssi_low { + int32 rssi = 1; /**< RSSI value of bss */ +} + +message wifi_ftm_report_entry { + uint32 dlog_token = 1; /* *< Dialog Token of the FTM frame */ + int32 rssi = 2; /* *< RSSI of the FTM frame received */ + uint32 rtt = 3; /* *< Round Trip Time in pSec with a peer */ + /* TODO: uint32 is supported by proto? */ + uint64 t1 = 4; /* *< Time of departure of FTM frame from FTM Responder in pSec */ + uint64 t2 = 5; /* *< Time of arrival of FTM frame at FTM Initiator in pSec */ + uint64 t3 = 6; /* *< Time of departure of ACK from FTM Initiator in pSec */ + uint64 t4 = 7; /* *< Time of arrival of ACK at FTM Responder in pSec */ +} + +message wifi_event_ftm_report { + bytes peer_mac = 1; /* *< 6bytes MAC address of the FTM Peer */ + int32 status = 2; /* *< Status of the FTM operation */ + uint32 rtt_raw = 3; /* *< Raw average Round-Trip-Time with peer in Nano-Seconds */ + uint32 rtt_est = 4; /* *< Estimated Round-Trip-Time with peer in Nano-Seconds */ + uint32 dist_est = 5; /* *< Estimated one-way distance in Centi-Meters */ + repeated wifi_ftm_report_entry ftm_report_data = 6; /* *< Note var len Pointer to FTM Report with multiple entries, should be freed after use */ + uint32 ftm_report_num_entries = 7; /* *< Number of entries in the FTM Report data */ +} + +message wifi_event_action_tx_status { + int32 ifx = 1; /**< WiFi interface to send request to */ + uint32 context = 2; /**< Context to identify the request */ + bytes da = 3; /**< 6bytes Destination MAC address */ + uint32 status = 4; /**< Status of the operation */ +} + +message wifi_event_roc_done { + uint32 context = 1; /**< Context to identify the request */ +} + +message wifi_event_ap_wps_rg_pin { + bytes pin_code = 1; /**< 8bytes PIN code of station in enrollee mode */ +} + +message wifi_event_ap_wps_rg_fail_reason { + int32 reason = 1; /**< WPS failure reason wps_fail_reason_t */ + bytes peer_macaddr = 2; /**< 6bytes Enrollee mac address */ +} + +message wifi_event_ap_wps_rg_success { + bytes peer_macaddr = 1; /**< 6bytes Enrollee mac address */ +} + +message wifi_protocols { + uint32 ghz_2g = 1; /**< Represents 2.4 GHz protocol, support 802.11b or 802.11g or 802.11n or 802.11ax or LR mode */ + uint32 ghz_5g = 2; /**< Represents 5 GHz protocol, support 802.11a or 802.11n or 802.11ac or 802.11ax */ +} + +message wifi_bandwidths { + uint32 ghz_2g = 1; /* Represents 2.4 GHz bandwidth */ + uint32 ghz_5g = 2; /* Represents 5 GHz bandwidth */ +} + +/* internal supporting structures for Rpc */ +//message ScanResult { +// bytes bssid = 1; +// bytes ssid = 2; +// uint32 chnl = 3; +// int32 rssi = 4; +// int32 sec_prot = 5; +//} + +message ConnectedSTAList { + bytes mac = 1; + int32 rssi = 2; +} + + +/* Control path structures */ +/** Req/Resp structure **/ +message Rpc_Req_GetMacAddress { + int32 mode = 1; +} + +message Rpc_Resp_GetMacAddress { + bytes mac = 1; + int32 resp = 2; +} + +message Rpc_Req_GetMode { +} + +message Rpc_Resp_GetMode { + int32 mode = 1; + int32 resp = 2; +} + +message Rpc_Req_SetMode { + int32 mode = 1; +} + +message Rpc_Resp_SetMode { + int32 resp = 1; +} + +message Rpc_Req_GetPs { +} + +message Rpc_Resp_GetPs { + int32 resp = 1; + int32 type = 2; +} + +message Rpc_Req_SetPs { + int32 type = 1; +} + +message Rpc_Resp_SetPs { + int32 resp = 1; +} + +message Rpc_Req_SetMacAddress { + bytes mac = 1; + int32 mode = 2; +} + +message Rpc_Resp_SetMacAddress { + int32 resp = 1; +} + + +//message Rpc_Req_GetAPConfig { +//} +// +///* To be deprecated */ +//message Rpc_Resp_GetAPConfig { +// bytes ssid = 1; +// bytes bssid = 2; +// int32 rssi = 3; +// int32 chnl = 4; +// int32 sec_prot = 5; +// int32 resp = 6; +//} + +/* To be deprecated */ +//message Rpc_Req_ConnectAP { +// string ssid = 1; +// string pwd = 2; +// string bssid = 3; +// bool is_wpa3_supported = 4; +// int32 listen_interval = 5; +//} +// +//message Rpc_Resp_ConnectAP { +// int32 resp = 1; +// bytes mac = 2; +//} + +//message Rpc_Req_GetSoftAPConfig { +//} +// +//message Rpc_Resp_GetSoftAPConfig { +// bytes ssid = 1; +// bytes pwd = 2; +// int32 chnl = 3; +// int32 sec_prot = 4; +// int32 max_conn = 5; +// bool ssid_hidden = 6; +// int32 bw = 7; +// int32 resp = 8; +//} + +//message Rpc_Req_StartSoftAP { +// string ssid = 1; +// string pwd = 2; +// int32 chnl = 3; +// int32 sec_prot = 4; +// int32 max_conn = 5; +// bool ssid_hidden = 6; +// int32 bw = 7; +//} +// +//message Rpc_Resp_StartSoftAP { +// int32 resp = 1; +// bytes mac = 2; +//} + +//message Rpc_Req_ScanResult { +//} +// +//message Rpc_Resp_ScanResult { +// uint32 count = 1; +// repeated ScanResult entries = 2; +// int32 resp = 3; +//} + +//message Rpc_Req_SoftAPConnectedSTA { +//} +// +//message Rpc_Resp_SoftAPConnectedSTA { +// uint32 num = 1; +// repeated ConnectedSTAList stations = 2; +// int32 resp = 3; +//} + +message Rpc_Req_OTABegin { +} + +message Rpc_Resp_OTABegin { + int32 resp = 1; +} + +message Rpc_Req_OTAWrite { + bytes ota_data = 1; +} + +message Rpc_Resp_OTAWrite { + int32 resp = 1; +} + +message Rpc_Req_OTAEnd { +} + +message Rpc_Resp_OTAEnd { + int32 resp = 1; +} + +//message Rpc_Req_VendorIEData { +// int32 element_id = 1; +// int32 length = 2; +// bytes vendor_oui = 3; +// int32 vendor_oui_type = 4; +// bytes payload = 5; +//} +// +//message Rpc_Req_SetSoftAPVendorSpecificIE { +// bool enable = 1; +// int32 type = 2; +// int32 idx = 3; +// Rpc_Req_VendorIEData vendor_ie_data = 4; +//} +// +//message Rpc_Resp_SetSoftAPVendorSpecificIE { +// int32 resp = 1; +//} + +message Rpc_Req_WifiSetMaxTxPower { + int32 power = 1; +} + +message Rpc_Resp_WifiSetMaxTxPower { + int32 resp = 1; +} + +message Rpc_Req_WifiGetMaxTxPower { +} + +message Rpc_Resp_WifiGetMaxTxPower { + int32 power = 1; + int32 resp = 2; +} + +message Rpc_Req_ConfigHeartbeat { + bool enable = 1; + int32 duration = 2; +} + +message Rpc_Resp_ConfigHeartbeat { + int32 resp = 1; +} + +message Rpc_Req_WifiInit { + wifi_init_config cfg = 1; +} + +message Rpc_Resp_WifiInit { + int32 resp = 1; +} + +message Rpc_Req_WifiDeinit { +} + +message Rpc_Resp_WifiDeinit { + int32 resp = 1; +} + +message Rpc_Req_WifiSetConfig { + int32 iface = 1; + wifi_config cfg = 2; +} + +message Rpc_Resp_WifiSetConfig { + int32 resp = 1; +} + +message Rpc_Req_WifiGetConfig { + int32 iface = 1; +} + +message Rpc_Resp_WifiGetConfig { + int32 resp = 1; + int32 iface = 2; + wifi_config cfg = 3; +} + +message Rpc_Req_WifiConnect { +} + +message Rpc_Resp_WifiConnect { + int32 resp = 1; +} + +message Rpc_Req_WifiDisconnect { +} + +message Rpc_Resp_WifiDisconnect { + int32 resp = 1; +} + +message Rpc_Req_WifiStart { +} + +message Rpc_Resp_WifiStart { + int32 resp = 1; +} + +message Rpc_Req_WifiStop { +} + +message Rpc_Resp_WifiStop { + int32 resp = 1; +} + +message Rpc_Req_WifiScanStart { + wifi_scan_config config = 1; + bool block = 2; + int32 config_set = 3; +} + +message Rpc_Resp_WifiScanStart { + int32 resp = 1; +} + +message Rpc_Req_WifiScanStop { +} + +message Rpc_Resp_WifiScanStop { + int32 resp = 1; +} + +message Rpc_Req_WifiScanGetApNum { +} + +message Rpc_Resp_WifiScanGetApNum { + int32 resp = 1; + int32 number = 2; +} + +message Rpc_Req_WifiScanGetApRecords { + int32 number = 1; +} + +message Rpc_Resp_WifiScanGetApRecords { + int32 resp = 1; + int32 number = 2; + repeated wifi_ap_record ap_records = 3; +} + +message Rpc_Req_WifiScanGetApRecord { +} + +message Rpc_Resp_WifiScanGetApRecord { + int32 resp = 1; + wifi_ap_record ap_record = 2; +} + +message Rpc_Req_WifiClearApList { +} + +message Rpc_Resp_WifiClearApList { + int32 resp = 1; +} + +message Rpc_Req_WifiRestore { +} + +message Rpc_Resp_WifiRestore { + int32 resp = 1; +} + +message Rpc_Req_WifiClearFastConnect{ +} + +message Rpc_Resp_WifiClearFastConnect { + int32 resp = 1; +} + +message Rpc_Req_WifiDeauthSta { + int32 aid = 1; +} + +message Rpc_Resp_WifiDeauthSta { + int32 resp = 1; + int32 aid = 2; +} + +message Rpc_Req_WifiStaGetApInfo { +} + +message Rpc_Resp_WifiStaGetApInfo { + int32 resp = 1; + wifi_ap_record ap_record = 2; +} + +message Rpc_Req_WifiSetProtocol { + int32 ifx = 1; + int32 protocol_bitmap = 2; +} + +message Rpc_Resp_WifiSetProtocol { + int32 resp = 1; +} + +message Rpc_Req_WifiGetProtocol { + int32 ifx = 1; +} + +message Rpc_Resp_WifiGetProtocol { + int32 resp = 1; + int32 protocol_bitmap = 2; +} + +message Rpc_Req_WifiSetBandwidth { + int32 ifx = 1; + int32 bw = 2; +} + +message Rpc_Resp_WifiSetBandwidth { + int32 resp = 1; +} + +message Rpc_Req_WifiGetBandwidth { + int32 ifx = 1; +} + +message Rpc_Resp_WifiGetBandwidth { + int32 resp = 1; + int32 bw = 2; +} + +message Rpc_Req_WifiSetChannel { + int32 primary = 1; + int32 second = 2; +} + +message Rpc_Resp_WifiSetChannel { + int32 resp = 1; +} + +message Rpc_Req_WifiGetChannel { +} + +message Rpc_Resp_WifiGetChannel { + int32 resp = 1; + int32 primary = 2; + int32 second = 3; +} + +message Rpc_Req_WifiSetStorage { + int32 storage = 1; +} + +message Rpc_Resp_WifiSetStorage { + int32 resp = 1; +} + +message Rpc_Req_WifiSetCountryCode { + bytes country = 1; + bool ieee80211d_enabled = 2; +} + +message Rpc_Resp_WifiSetCountryCode { + int32 resp = 1; +} + +message Rpc_Req_WifiGetCountryCode { +} + +message Rpc_Resp_WifiGetCountryCode { + int32 resp = 1; + bytes country = 2; +} + +message Rpc_Req_WifiSetCountry { + wifi_country country = 1; +} + +message Rpc_Resp_WifiSetCountry { + int32 resp = 1; +} + +message Rpc_Req_WifiGetCountry { +} + +message Rpc_Resp_WifiGetCountry { + int32 resp = 1; + wifi_country country = 2; +} + +message Rpc_Req_WifiApGetStaList { +} + +message Rpc_Resp_WifiApGetStaList { + int32 resp = 1; + wifi_sta_list sta_list = 2; +} + +message Rpc_Req_WifiApGetStaAid { + bytes mac = 1; +} + +message Rpc_Req_WifiStaGetNegotiatedPhymode { +} + +message Rpc_Resp_WifiStaGetNegotiatedPhymode { + int32 resp = 1; + uint32 phymode = 2; +} + +message Rpc_Resp_WifiApGetStaAid { + int32 resp = 1; + uint32 aid = 2; +} + +message Rpc_Req_WifiStaGetRssi { +} + +message Rpc_Resp_WifiStaGetRssi { + int32 resp = 1; + int32 rssi = 2; +} + +message Rpc_Req_WifiStaGetAid { +} + +message Rpc_Resp_WifiStaGetAid { + int32 resp = 1; + uint32 aid = 2; +} + +message Rpc_Req_WifiSetProtocols { + int32 ifx = 1; + wifi_protocols protocols = 2; +} + +message Rpc_Resp_WifiSetProtocols { + int32 resp = 1; + uint32 ifx = 2; +} + +message Rpc_Req_WifiGetProtocols { + int32 ifx = 1; +} + +message Rpc_Resp_WifiGetProtocols { + int32 resp = 1; + int32 ifx = 2; + wifi_protocols protocols = 3; +} + +message Rpc_Req_WifiSetBandwidths { + int32 ifx = 1; + wifi_bandwidths bandwidths = 2; +} + +message Rpc_Resp_WifiSetBandwidths { + int32 resp = 1; + int32 ifx = 2; +} + +message Rpc_Req_WifiGetBandwidths { + int32 ifx = 1; +} + +message Rpc_Resp_WifiGetBandwidths { + int32 resp = 1; + int32 ifx = 2; + wifi_bandwidths bandwidths = 3; +} + +message Rpc_Req_WifiSetBand { + uint32 band = 1; +} + +message Rpc_Resp_WifiSetBand { + int32 resp = 1; +} + +message Rpc_Req_WifiGetBand { +} + +message Rpc_Resp_WifiGetBand { + int32 resp = 1; + uint32 band = 2; +} + +message Rpc_Req_WifiSetBandMode { + uint32 bandmode = 1; +} + +message Rpc_Resp_WifiSetBandMode { + int32 resp = 1; +} + +message Rpc_Req_WifiGetBandMode { +} + +message Rpc_Resp_WifiGetBandMode { + int32 resp = 1; + uint32 bandmode = 2; +} + +message Rpc_Req_GetCoprocessorFwVersion { +} + +message Rpc_Resp_GetCoprocessorFwVersion { + int32 resp = 1; + uint32 major1 = 2; + uint32 minor1 = 3; + uint32 patch1 = 4; +} + +/** Event structure **/ + +message Rpc_Event_WifiEventNoArgs { + int32 resp = 1; + int32 event_id = 2; +} + +message Rpc_Event_ESPInit { + bytes init_data = 1; +} + +message Rpc_Event_Heartbeat { + int32 hb_num = 1; +} + +message Rpc_Event_AP_StaDisconnected { + int32 resp = 1; + bytes mac = 2; + uint32 aid = 3; + bool is_mesh_child = 4; + uint32 reason = 5; +} + +message Rpc_Event_AP_StaConnected { + int32 resp = 1; + bytes mac = 2; + uint32 aid = 3; + bool is_mesh_child = 4; +} + +message Rpc_Event_StaScanDone { + int32 resp = 1; + wifi_event_sta_scan_done scan_done = 2; +} + +message Rpc_Event_StaConnected { + int32 resp = 1; + wifi_event_sta_connected sta_connected = 2; +} + +message Rpc_Event_StaDisconnected { + int32 resp = 1; + wifi_event_sta_disconnected sta_disconnected = 2; +} + +message Rpc { + /* msg_type could be req, resp or Event */ + RpcType msg_type = 1; + + /* msg id */ + RpcId msg_id = 2; + + /* UID of message */ + uint32 uid = 3; + + /* union of all msg ids */ + oneof payload { + /** Requests **/ + Rpc_Req_GetMacAddress req_get_mac_address = 257; + Rpc_Req_SetMacAddress req_set_mac_address = 258; + Rpc_Req_GetMode req_get_wifi_mode = 259; + Rpc_Req_SetMode req_set_wifi_mode = 260; + + //Rpc_Req_ScanResult req_scan_ap_list = 261; + //Rpc_Req_GetAPConfig req_get_ap_config = 262; + //Rpc_Req_ConnectAP req_connect_ap = 263; + //Rpc_Req_GetStatus req_disconnect_ap = 264; + + //Rpc_Req_GetSoftAPConfig req_get_softap_config = 265; + //Rpc_Req_SetSoftAPVendorSpecificIE req_set_softap_vendor_specific_ie = 266; + //Rpc_Req_StartSoftAP req_start_softap = 267; + //Rpc_Req_SoftAPConnectedSTA req_softap_connected_stas_list = 268; + //Rpc_Req_GetStatus req_stop_softap = 269; + + Rpc_Req_SetPs req_wifi_set_ps = 270; + Rpc_Req_GetPs req_wifi_get_ps = 271; + + Rpc_Req_OTABegin req_ota_begin = 272; + Rpc_Req_OTAWrite req_ota_write = 273; + Rpc_Req_OTAEnd req_ota_end = 274; + + Rpc_Req_WifiSetMaxTxPower req_set_wifi_max_tx_power = 275; + Rpc_Req_WifiGetMaxTxPower req_get_wifi_max_tx_power = 276; + Rpc_Req_ConfigHeartbeat req_config_heartbeat = 277; + + Rpc_Req_WifiInit req_wifi_init = 278; + Rpc_Req_WifiDeinit req_wifi_deinit = 279; + Rpc_Req_WifiStart req_wifi_start = 280; + Rpc_Req_WifiStop req_wifi_stop = 281; + Rpc_Req_WifiConnect req_wifi_connect = 282; + Rpc_Req_WifiDisconnect req_wifi_disconnect = 283; + Rpc_Req_WifiSetConfig req_wifi_set_config = 284; + Rpc_Req_WifiGetConfig req_wifi_get_config = 285; + + Rpc_Req_WifiScanStart req_wifi_scan_start = 286; + Rpc_Req_WifiScanStop req_wifi_scan_stop = 287; + Rpc_Req_WifiScanGetApNum req_wifi_scan_get_ap_num = 288; + Rpc_Req_WifiScanGetApRecords req_wifi_scan_get_ap_records = 289; + Rpc_Req_WifiClearApList req_wifi_clear_ap_list = 290; + + Rpc_Req_WifiRestore req_wifi_restore = 291; + Rpc_Req_WifiClearFastConnect req_wifi_clear_fast_connect = 292; + Rpc_Req_WifiDeauthSta req_wifi_deauth_sta = 293; + Rpc_Req_WifiStaGetApInfo req_wifi_sta_get_ap_info = 294; + + Rpc_Req_WifiSetProtocol req_wifi_set_protocol = 297; + Rpc_Req_WifiGetProtocol req_wifi_get_protocol = 298; + Rpc_Req_WifiSetBandwidth req_wifi_set_bandwidth = 299; + Rpc_Req_WifiGetBandwidth req_wifi_get_bandwidth = 300; + Rpc_Req_WifiSetChannel req_wifi_set_channel = 301; + Rpc_Req_WifiGetChannel req_wifi_get_channel = 302; + Rpc_Req_WifiSetCountry req_wifi_set_country = 303; + Rpc_Req_WifiGetCountry req_wifi_get_country = 304; + + Rpc_Req_WifiApGetStaList req_wifi_ap_get_sta_list = 311; + Rpc_Req_WifiApGetStaAid req_wifi_ap_get_sta_aid = 312; + Rpc_Req_WifiSetStorage req_wifi_set_storage = 313; + + Rpc_Req_WifiSetCountryCode req_wifi_set_country_code = 334; + Rpc_Req_WifiGetCountryCode req_wifi_get_country_code = 335; + Rpc_Req_WifiStaGetAid req_wifi_sta_get_aid = 338; + Rpc_Req_WifiStaGetNegotiatedPhymode req_wifi_sta_get_negotiated_phymode = 339; + + Rpc_Req_WifiStaGetRssi req_wifi_sta_get_rssi = 341; + + Rpc_Req_WifiSetProtocols req_wifi_set_protocols = 342; + Rpc_Req_WifiGetProtocols req_wifi_get_protocols = 343; + Rpc_Req_WifiSetBandwidths req_wifi_set_bandwidths = 344; + Rpc_Req_WifiGetBandwidths req_wifi_get_bandwidths = 345; + + Rpc_Req_WifiSetBand req_wifi_set_band = 346; + Rpc_Req_WifiGetBand req_wifi_get_band = 347; + Rpc_Req_WifiSetBandMode req_wifi_set_bandmode = 348; + Rpc_Req_WifiGetBandMode req_wifi_get_bandmode = 349; + + Rpc_Req_GetCoprocessorFwVersion req_get_coprocessor_fwversion = 350; + + Rpc_Req_WifiScanGetApRecord req_wifi_scan_get_ap_record = 351; + + /** Responses **/ + Rpc_Resp_GetMacAddress resp_get_mac_address = 513; + Rpc_Resp_SetMacAddress resp_set_mac_address = 514; + Rpc_Resp_GetMode resp_get_wifi_mode = 515; + Rpc_Resp_SetMode resp_set_wifi_mode = 516; + + //Rpc_Resp_ScanResult resp_scan_ap_list = 517; + //Rpc_Resp_GetAPConfig resp_get_ap_config = 518; + //Rpc_Resp_ConnectAP resp_connect_ap = 519; + //Rpc_Resp_GetStatus resp_disconnect_ap = 520; + + //Rpc_Resp_GetSoftAPConfig resp_get_softap_config = 521; + //Rpc_Resp_SetSoftAPVendorSpecificIE resp_set_softap_vendor_specific_ie = 522; + //Rpc_Resp_StartSoftAP resp_start_softap = 523; + //Rpc_Resp_SoftAPConnectedSTA resp_softap_connected_stas_list = 524; + //Rpc_Resp_GetStatus resp_stop_softap = 525; + + Rpc_Resp_SetPs resp_wifi_set_ps = 526; + Rpc_Resp_GetPs resp_wifi_get_ps = 527; + + Rpc_Resp_OTABegin resp_ota_begin = 528; + Rpc_Resp_OTAWrite resp_ota_write = 529; + Rpc_Resp_OTAEnd resp_ota_end = 530; + Rpc_Resp_WifiSetMaxTxPower resp_set_wifi_max_tx_power = 531; + Rpc_Resp_WifiGetMaxTxPower resp_get_wifi_max_tx_power = 532; + Rpc_Resp_ConfigHeartbeat resp_config_heartbeat = 533; + + Rpc_Resp_WifiInit resp_wifi_init = 534; + Rpc_Resp_WifiDeinit resp_wifi_deinit = 535; + Rpc_Resp_WifiStart resp_wifi_start = 536; + Rpc_Resp_WifiStop resp_wifi_stop = 537; + Rpc_Resp_WifiConnect resp_wifi_connect = 538; + Rpc_Resp_WifiDisconnect resp_wifi_disconnect = 539; + Rpc_Resp_WifiSetConfig resp_wifi_set_config = 540; + Rpc_Resp_WifiGetConfig resp_wifi_get_config = 541; + + Rpc_Resp_WifiScanStart resp_wifi_scan_start = 542; + Rpc_Resp_WifiScanStop resp_wifi_scan_stop = 543; + Rpc_Resp_WifiScanGetApNum resp_wifi_scan_get_ap_num = 544; + Rpc_Resp_WifiScanGetApRecords resp_wifi_scan_get_ap_records = 545; + Rpc_Resp_WifiClearApList resp_wifi_clear_ap_list = 546; + + Rpc_Resp_WifiRestore resp_wifi_restore = 547; + Rpc_Resp_WifiClearFastConnect resp_wifi_clear_fast_connect = 548; + Rpc_Resp_WifiDeauthSta resp_wifi_deauth_sta = 549; + Rpc_Resp_WifiStaGetApInfo resp_wifi_sta_get_ap_info = 550; + + Rpc_Resp_WifiSetProtocol resp_wifi_set_protocol = 553; + Rpc_Resp_WifiGetProtocol resp_wifi_get_protocol = 554; + Rpc_Resp_WifiSetBandwidth resp_wifi_set_bandwidth = 555; + Rpc_Resp_WifiGetBandwidth resp_wifi_get_bandwidth = 556; + Rpc_Resp_WifiSetChannel resp_wifi_set_channel = 557; + Rpc_Resp_WifiGetChannel resp_wifi_get_channel = 558; + Rpc_Resp_WifiSetCountry resp_wifi_set_country = 559; + Rpc_Resp_WifiGetCountry resp_wifi_get_country = 560; + + Rpc_Resp_WifiApGetStaList resp_wifi_ap_get_sta_list = 567; + Rpc_Resp_WifiApGetStaAid resp_wifi_ap_get_sta_aid = 568; + Rpc_Resp_WifiSetStorage resp_wifi_set_storage = 569; + + Rpc_Resp_WifiSetCountryCode resp_wifi_set_country_code = 590; + Rpc_Resp_WifiGetCountryCode resp_wifi_get_country_code = 591; + Rpc_Resp_WifiStaGetAid resp_wifi_sta_get_aid = 594; + Rpc_Resp_WifiStaGetNegotiatedPhymode resp_wifi_sta_get_negotiated_phymode = 595; + + Rpc_Resp_WifiStaGetRssi resp_wifi_sta_get_rssi = 597; + + Rpc_Resp_WifiSetProtocols resp_wifi_set_protocols = 598; + Rpc_Resp_WifiGetProtocols resp_wifi_get_protocols = 599; + Rpc_Resp_WifiSetBandwidths resp_wifi_set_bandwidths = 600; + Rpc_Resp_WifiGetBandwidths resp_wifi_get_bandwidths = 601; + + Rpc_Resp_WifiSetBand resp_wifi_set_band = 602; + Rpc_Resp_WifiGetBand resp_wifi_get_band = 603; + Rpc_Resp_WifiSetBandMode resp_wifi_set_bandmode = 604; + Rpc_Resp_WifiGetBandMode resp_wifi_get_bandmode = 605; + + Rpc_Resp_GetCoprocessorFwVersion resp_get_coprocessor_fwversion = 606; + + Rpc_Resp_WifiScanGetApRecord resp_wifi_scan_get_ap_record = 607; + + /** Notifications **/ + Rpc_Event_ESPInit event_esp_init = 769; + Rpc_Event_Heartbeat event_heartbeat = 770; + Rpc_Event_AP_StaConnected event_ap_sta_connected = 771; + Rpc_Event_AP_StaDisconnected event_ap_sta_disconnected = 772; + Rpc_Event_WifiEventNoArgs event_wifi_event_no_args = 773; + Rpc_Event_StaScanDone event_sta_scan_done = 774; + Rpc_Event_StaConnected event_sta_connected = 775; + Rpc_Event_StaDisconnected event_sta_disconnected = 776; + } +} + + +//message req_w_set_config { +// int32 iface = 1; +// wifi_config cfg = 2; +//} +// +//message rsp_w_set_config { +// int32 resp = 1; +//} +// +//message req_w_get_config { +// int32 iface = 1; +//} +// +//message rsp_w_get_config { +// int32 resp = 1; +// wifi_config cfg = 2; +//} +// +//message req_w_start { +//} +// +//message rsp_w_start { +// int32 resp = 1; +//} +// +//message evt_w_sta_connected { +// int32 resp = 1; +//} +// +//message evt_w_sta_disconnected { +// int32 resp = 1; +//} +// +//message evt_w_sta_start { +// int32 resp = 1; +//} +// +//message evt_w_sta_stop { +// int32 resp = 1; +//} +// +//message evt_w_ready { +// int32 resp = 1; +//} + +//message { +// int32 resp = 1; +//} + + + + + + + +//message Rpc_Resp_GetMode { +// int32 mode = 1; +// int32 resp = 2; +//} +// +//message Rpc_Req_SetMode { +//} +// +//message Rpc_Resp_SetMode { +// int32 resp = 1; +//} diff --git a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/.commit_docs.sh b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/.commit_docs.sh new file mode 100644 index 0000000..048a81b --- /dev/null +++ b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/.commit_docs.sh @@ -0,0 +1,75 @@ +#!/bin/bash -e + +# from git-sh-setup.sh +require_clean_work_tree () { + git rev-parse --verify HEAD >/dev/null || exit 1 + git update-index -q --ignore-submodules --refresh + err=0 + + if ! git diff-files --quiet --ignore-submodules + then + echo >&2 "Cannot $0: You have unstaged changes." + err=1 + fi + + if ! git diff-index --cached --quiet --ignore-submodules HEAD -- + then + if [ $err = 0 ] + then + echo >&2 "Cannot $0: Your index contains uncommitted changes." + else + echo >&2 "Additionally, your index contains uncommitted changes." + fi + err=1 + fi + + if [ $err = 1 ] + then + test -n "$2" && echo >&2 "$2" + exit 1 + fi +} + +require_clean_work_tree + +if ! which doxygen >/dev/null; then + echo "Error: doxygen is required" + exit 1 +fi + +DOXYGEN_VERSION="$(doxygen --version)" + +DOC_BRANCH="gh-pages" +ORIG_BRANCH="$(git rev-parse --abbrev-ref HEAD)" +ORIG_COMMIT="$(git describe --match=NeVeRmAtCh --always --abbrev=40 --dirty)" + +TOP="$(pwd)" +export GIT_DIR="$TOP/.git" + +TMPDIR="$(mktemp --tmpdir=$TOP -d)" +HTMLDIR="$TMPDIR/_build/html" +INDEX_FILE="$GIT_DIR/index.${DOC_BRANCH}" + +rm -f "$INDEX_FILE" + +trap "{ cd $TOP; git checkout --force ${ORIG_BRANCH}; rm -f $INDEX_FILE; rm -rf $TMPDIR; }" EXIT + +cd "$TMPDIR" +git reset --hard HEAD + +./autogen.sh +mkdir _build +cd _build +../configure +make html + +if ! git checkout "${DOC_BRANCH}"; then + git checkout --orphan "${DOC_BRANCH}" +fi + +touch "$HTMLDIR/.nojekyll" + +GIT_INDEX_FILE="$INDEX_FILE" GIT_WORK_TREE="$HTMLDIR" \ + git add --no-ignore-removal . +GIT_INDEX_FILE="$INDEX_FILE" GIT_WORK_TREE="$HTMLDIR" \ + git commit -m "Rebuild html documentation from commit ${ORIG_COMMIT} using Doxygen ${DOXYGEN_VERSION}" diff --git a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/.gitignore b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/.gitignore new file mode 100644 index 0000000..9733625 --- /dev/null +++ b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/.gitignore @@ -0,0 +1,43 @@ +*~ +.*swp +*.la +*.gcda +*.gcno +*.lo +*.log +*.o +*.tar.gz +*.trs +.deps/ +.dirstamp +.libs/ +/Doxyfile +/Makefile +/Makefile.in +/aclocal.m4 +/autom4te.cache +/build-aux +/config.* +/configure +/doxygen-doc +/html +/libtool +/protobuf-c-*-coverage.info +/protobuf-c-*-coverage/ +/stamp-h1 +/stamp-html +/test-suite.log +TAGS +protobuf-c/libprotobuf-c.pc +protoc-c/protoc-c +protoc-c/protoc-gen-c +t/generated-code/test-generated-code +t/generated-code2/cxx-generate-packed-data +t/generated-code2/test-full-cxx-output.inc +t/generated-code2/test-generated-code2 +t/generated-code3/test-generated-code3 +t/version/version +*.pb-c.c +*.pb-c.h +*.pb.cc +*.pb.h diff --git a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/CONTRIBUTING.md b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/CONTRIBUTING.md new file mode 100644 index 0000000..ceaba8f --- /dev/null +++ b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/CONTRIBUTING.md @@ -0,0 +1,5 @@ +## Contributing + +The most recently released `protobuf-c` version is kept on the `master` branch, while the `next` branch is used for commits targeted at the next release. Please base patches and pull requests against the `next` branch. __Do not open pull requests against master!__ + +Copyright to all contributions are retained by the original author, but must be licensed under the terms of the [BSD-2-Clause](http://opensource.org/licenses/BSD-2-Clause) license. diff --git a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/ChangeLog b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/ChangeLog new file mode 100644 index 0000000..91164dd --- /dev/null +++ b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/ChangeLog @@ -0,0 +1,564 @@ +protobuf-c (1.4.1) + + [ Robert Edmonds ] + * Release 1.4.1 + + [ Todd C. Miller ] + * Only shift unsigned values to avoid implementation-specific behavior + (#506, #508). + * Fix regression with zero-length messages introduced in protobuf-c PR 500. + * Fix a clang analyzer 14 warning about a possible NULL deref (#512, #514). + + [ steed717 ] + * Fix unsigned integer overflow (#499, #513). + +protobuf-c (1.4.0) + + [ Robert Edmonds ] + * Release 1.4.0. + + [ Ilya Lipnitsky ] + * c_message.cc: Resolve name conflict between certain enums and oneofs + (#427). + * protobuf-c.h: Fix Windows DLL export issue with the + protobuf_c_empty_string symbol (#428). + * Standardize pkg-config for use by autotools and cmake, fix cmake tests + (#425). + * protobuf-c.c: Cast %lu args to unsigned long int (#429). + * protoc-c: Remove leading underscores from structs (#430). + * protoc-c: Fix shared lib build on windows, migrate from Travis CI to + GitHub Actions (#459). + * protobuf-c: Don't use ProtobufCWireType internally (#463). + * protoc-c: Add custom options support (#466). + * protobuf-c.c: Fix packed repeated bool parsing (#467). + + [ Markus Engel ] + * Pack nested messages inline (#431). + + [ Daniel Axtens ] + * Travis CI: Test on other platforms (#438). + + [ Adam Cozzette ] + * Update the generator to fully qualify std::string (#443). + + [ Piotr Pietraszkiewicz ] + * Install MSVC debug symbols alongside the protobuf-c.lib file (#456). + + [ ihsinme ] + * Fix invalid unsigned arithmetic (#455). + + [ Wolfram Rösler ] + * Avoid "unused function parameter" compiler warning (#453). + +protobuf-c (1.3.3) + + [ Robert Edmonds ] + * Release 1.3.3. + + * Fix build failure on protobuf 2.x (#398). + + [ msshapira ] + * CMake: Fix support for MSVC static build (#350). + + [ Adam Cozzette ] + * Fix some test assertions in test-generated-code2.c (#392). + + [ Ilya Lipnitskiy ] + * protobuf-c.c: Make zigzag encoding more compact (#400). + + [ Markus Engel ] + * CMake: Fix endianness check. + +protobuf-c (1.3.2) + + [ Robert Edmonds ] + * Release 1.3.2. + + * Use protobuf 3.7.1 in the Travis-CI environment (#368). + + * Fix test suite build failure on newer versions of protobuf (#369). + + [ Ilya Lipnitskiy ] + * Fix proto3 repeated scalar field default packing behavior (#330, #377). + + [ Adam Cozzette ] + * Fix out-of-bounds read in scan_length_prefixed_data() (#375, #376). + + [ Jurriaan Bremer ] + * Fix -Wdeclaration-after-statement warning in parse_oneof_member() (#360). + + [ Hayri Ugur Koltuk ] + * Fix SIGSEGV in protobuf_c_message_check() on messages with unpopulated + oneof members (#358). + + [ Italo Guerrieri ] + * Do not allow tag values of 0 in protobuf messages, as these are not + allowed by proto2 or proto3 (#299). + +protobuf-c (1.3.1) + + [ Robert Edmonds ] + * Release 1.3.1. + + * Restore protobuf-2.x compatibility (#284, #285). + + * Use xenial and protobuf 3.6.1 in the Travis-CI environment (#332). + + * Convert uses of protobuf's scoped_ptr.h to C++11 std::unique_ptr, needed + to compile against protobuf 3.6.1 (#320, #333). + + * Use AX_CXX_COMPILE_STDCXX macro to enable C++11 support in old compilers + (#312, #317, #327, #334). + + [ Fredrik Gustafsson ] + * Add std:: to some types (#294, #305, #309). + + [ Sam Collinson ] + * Check the return value of int_range_lookup before using as an array index; + it can return -1 (#315). + + [ Matthias Dittrich ] + * Fix compilation on mingw by using explicit protoc --plugin=NAME=PATH syntax + in Makefile.am (#289, #290). + +protobuf-c (1.3.0) + + [ Robert Edmonds ] + * Release 1.3.0. + + * Add test case for the issue in #220 (#254). + + * Fix issue #251, "Bad enums with multiple oneofs" (#256). + + * Add warning flags to my_CFLAGS (#257). + + * Fix namespace errors when compiled with latest protobuf (#280). + + * Bump minimum required header version for proto3 syntax (#282). + + [ Paolo Borelli ] + * Turn the compiler into a protoc plugin (#206). This allows the protobuf-c + compiler to be invoked as "protoc --c_out=...". For backwards + compatibility, we still ship a protoc-c command, but it's a symlink to the + protoc-gen-c binary. + + * proto3 support (#228). + + * Remove leftover FIXME comment (#258). + + * Fix proto3 "is zeroish" evaluation (#264). + + * Small cleanup in oneof handling (#265). + + * Rework is_zeroish one more time (#267). + + * proto3: make strings default to "" instead of NULL (#274). + + [ Tomek Wasilczyk ] + * Fix -Wsign-compare warnings (#213). + + * Fix ISO C90 -Wdeclaration-after-statement warnings (#214). + + * Fix bigendian -Wunused-label warning (#215). + + [ Ilya Lipnitsky ] + * protoc-c/c_message.cc: Force int size on oneof enums (#221). Fixes wrong + enum generation and handling for onceof cases (#220). + + [ Adnan ] + * Fix cmake build if built as part of an external project (#231). + + [ Gregory Detal ] + * Remove .pb.{cc,h} in distdir instead of top_distdir in order to prevent + removing files from other projects when protobuf-c is included as an + autotools subproject (#232). + + [ Ben Farnham ] + * Relax autoconf constraint from v2.64 to v2.63 so that it works on older + Linux distros (#233). + + [ Thomas Köckerbauer ] + * rm argument fix for Solaris (#234). + + * Add 'const' qualifier to 'init_value' variable in generated files (#236). + + [ Richard Kettlewell ] + * Document and extend the effect of passing NULL to ..._free_unpacked + functions (#255). + + [ Alex Milich ] + * CMake: Workaround for static builds that use MSVC (#243). + + [ Josh Junon ] + * CMake: Allow protobuf-c to be included via include_subdirectory (#245). + + [ Alexei Kasatkin ] + * CMake: Windows fixes (#266). + +protobuf-c (1.2.1) + + [ Robert Edmonds ] + * Release 1.2.1. + + [ Paolo Borelli ] + * protoc-c: Generate code that uses the universal zero initializer {0} when + initializing a oneof union (#187, #205). + +protobuf-c (1.2.0) + + [ Robert Edmonds ] + * Release 1.2.0. + + [ Ilya Lipnitsky ] + * Implement the "optimize_for = CODE_SIZE" option (#183). + + * Eliminate undefined behavior in zigzag functions (#198). + + * Pack negative enum values correctly (#199). + + [ Peter Leschev ] + * Fix protobuf_c_message_get_packed_size() on 16-bit systems (#196, #197). + + [ Diego Elio Pettenò ] + * Update link to Autotools Mythbuster to canonical site (#201). + + [ Zex Li ] + * Skip test suite when cross-compiling (#184). + +protobuf-c (1.1.1) + + [ Robert Edmonds ] + * Release 1.1.1. + + * Use protobuf 2.6.1 in the Travis-CI environment. + + [ Ilya Lipnitskiy ] + * Munge C block comment delimiters in protobuf comments, preventing syntax + errors in generated header files (Issue #180, #185). + + * Add static qualifier to ProtobufCEnumValue and ProtobufCEnumValueIndex + variables in generated output. + + [ Oleg Efimov ] + * Fix -Wpointer-sign compiler diagnostics in the test suite. + + * Check for NULL pointers in protobuf_c_message_free_unpacked() + (Issue #177). + + * Exclude protoc-c and downloaded protobuf sources from Coveralls report. + + [ Andrey Myznikov ] + * Fix incorrect 'short_name' field values in ProtobufCServiceDescriptor + variables in generated output. + +protobuf-c (1.1.0) + + [ Robert Edmonds ] + * Release 1.1.0. + + [ Ilya Lipnitskiy ] + * Fix a bug when merging optional byte fields. + + * Documentation updates. + + * Implement oneof support (Issue #174). Protobuf 2.6.0 or newer is now + required to build protobuf-c. + + * Print leading comments for enum, message, and field definitions into + generated header files (Issue #175). + +protobuf-c (1.0.2) + + [ Robert Edmonds ] + * Release 1.0.2. + + [ Ilya Lipnitskiy ] + * Fix a build failure with Protobuf 2.6.0 related to aliased enum constants + (Issue #163). + + * Protobuf 2.5.0 or newer is now required to build protobuf-c (Issue #166). + This is due to the fix for #163. + + [ Alexei Kasatkin ] + * Eliminate void pointer arithmetic (Issue #167). + + * Always define PROTOBUF_C__DEPRECATED, even on compilers that are not GCC + (Issue #167). + + * Work around the lack of the 'inline' keyword in Microsoft compilers + (Issue #167). + + * Add a CMakeLists.txt file as a fallback build system for Windows + (Issue #168). + + [ Natanael Copa ] + * Fix a build failure in the test suite that occurred with a parallel make + running on a system with a large number of CPUs (Issue #156, #169). + +protobuf-c (1.0.1) + + [ Robert Edmonds ] + * Explicitly set the .data field of ProtobufCBinaryData's to NULL when + unpacking a zero length byte string (Issue #157). + +protobuf-c (1.0.0) + + [ Andrei Nigmatulin ] + * Append "u", "ull", and "ll" integer literal suffixes for uint32, uint64, + and int64 default values in generated code, in order to avoid "integer + constant is so large that it is unsigned" compiler warnings. + (Issue #136.) + + * Revert the problematic hash-based required field detection. + (Related to Issue #60, #79, #137.) + + * Replace the 'packed' member of ProtobufCFieldDescriptor with a 'flags' + word. Define flags for packed and deprecated fields. (Issue #138.) + + [ Dave Benson ] + * Treat a "length-prefixed" wire-type message for a repeated field as + packed-repeated whenever it makes sense (for all types other than + messages, strings, and bytes). + + * Switch to New BSD license. + + * Add protobuf_c_message_check(). + + * Compile error in packing 64-bit versions on some platforms + (srobbins99: Issue #68 Comment 1). + + * Fix for memory error if the required-field check fails. See Issue #63 + for demo (w/ nice test case by dror.harari). + + * Add PROTOBUF_C_{MAJOR,MINOR} for compile-time checks and + protobuf_c_{major,minor} for checks about the running library + (Issue #53). + + * Use a small constant-size hash-table instead of alloca() for detecting + required fields, and it also prevents us from using too much stack, etc. + (Related to Issue #60, #79). + + * Add a macro to ensure enums are the size of ints (Issue #69). + + [ Ilya Lipnitskiy ] + * Travis-CI integration. + + * Add source .proto filename to generated files. + + * Add protobuf-c version to protoc-c --version output (Issue #52). + + * For embedded submessage fields, merge multiple instances of the same + field, per the protobuf documentation (Issue #91). + + * Don't print unpack errors by default. + + * Optionally allow running the test suite under valgrind with ./configure + --enable-valgrind-tests. (Based on valgrind-tests.m4 from gnulib.) + + [ Kevin Lyda ] + * Autoconf portability fixes. + + * Add doxygen detection and make targets to the build system. + + * Doxygen documentation for the libprotobuf-c public API (Issue #132). + + [ Nick Galbreath ] + * Prevent possible overflow on 64-bit systems (Issue #106). + + [ Robert Edmonds ] + * Remove CMake (Issue #87). + + * Modernize the build system. + - Don't generate any diagnostics when building the build system with + modern autotools (Issue #89). + + - Use the PKG_CHECK_MODULES macro to locate protobuf. + + - Use the AC_C_BIGENDIAN macro to detect endianness, rather than custom + code. + + - Use the automake silent-rules option so the build output is actually + readable. + + - Generate our own pkg-config .pc files. + + * Reorganize the source tree. This affects the public protobuf-c header + path, which is now . A compatibility symlink from + to has been installed so that existing + code will continue to compile. New code should at some point begin using + the new include path, i.e., "#include " rather + than "#include ". + + * The RPC code has been split out into a separate project, protobuf-c-rpc. + + * Fix a potential use of an unitialized value in protobuf_c_message_unpack() + and several memory leaks in protoc-c, discovered by a commercial static code + analysis tool. + + * Bump the libprotobuf-c SONAME. + + * Begin versioning the library's symbols. (Based on ld-version-script.m4 + from gnulib.) + + * Preserve case in enum value names generated by protoc-c (Issue #129). + Reported by Oleg Efimov. + + * Add library functions protobuf_c_version() and protobuf_c_version_string() + for retrieving the version of the compiled library, and header macros + PROTOBUF_C_VERSION and PROTOBUF_C_VERSION_STRING for retrieving the + version of the header file. This replaces the interfaces for retrieving + the protobuf-c version numbers in Issue #53. + + * Add a version guard that ensures that the output of protoc-c is only + compiled against a protobuf-c header file from the exact same protobuf-c + release. + + * Add a --enable-code-coverage option to configure, which enables a + "make check-code-coverage" build target. This generates a code coverage + report and requires the lcov tool to be installed. + + * Remove the old DocBook documentation in doc/c-code-generator.{html,xml}. + Relevant material has been updated and incorporated into the Doxygen + documentation in the protobuf-c header file. + + * Remove the protobuf_c_default_allocator and protobuf_c_system_allocator + global variables from the exported library interface. All exported library + functions that need to perform dynamic memory allocation receive a + user-provided ProtobufCAllocator* parameter. If this parameter is NULL, + the system's default memory allocator will be used. + + Client code that previously passed "&protobuf_c_system_allocator" to + protobuf-c library functions taking a ProtobufCAllocator* argument should + be updated to pass "NULL" instead. + + Client code that previously overrode protobuf_c_default_allocator with + custom allocation functions and passed NULL as the ProtobufCAllocator* + argument to protobuf-c library functions should be updated to instead + enclose the custom allocation functions in a ProtobufCAllocator struct and + pass this object to protobuf-c library functions taking a + ProtobufCAllocator* parameter. + + * Update copyright and license statements throughout. The original + protobuf code released by Google was relicensed from Apache-2.0 to + BSD-3-Clause. Dave Benson also converted his license from BSD-3-Clause + to BSD-2-Clause. + + [ Tomasz Wasilczyk ] + * Don't export protobuf_c_message_init_generic() as an external symbol. + + * Don't use C++ style comments in C code. + + * Fix -Wcast-align warnings when compiled with clang. + +protobuf-c (0.15) + - make protobuf_c_message_init() into a function (Issue #49, daveb) + - Fix for freeing memory after unpacking bytes w/o a default-value. + (Andrei Nigmatulin) + - minor windows portability issues (use ProtobufC_FD) (Pop Stelian) + - --with-endianness={little,big} (Pop Stelian) + - bug setting up values of has_idle in public dispatch, + make protobuf_c_dispatch_run() use only public members (daveb) + - provide cmake support and some Windows compatibility (Nikita Manovich) + +protobuf-c (0.14) + - build fix (missing dependency in test directory) + - add generation / installation of pkg-config files. (Bobby Powers) + - support for packed repeated fields (Dave Benson) + - bug in protobuf_c_dispatch_close_fd(), which usually only + showed up in later function calls. + - support for deprecated fields -- enable a GCC warning + if a field has the "deprecated" option enabled. (Andrei Nigmatulin) + - hackery to try to avoid touching inttypes.h on windows (Issue #41) + - fix for protobuf_c_message_unpack() to issue error if any + "required" field is missing in input stream. (Andrei Nigmatulin) + +protobuf-c (0.13) + - Fix for when the number of connections gets too great in RPC. + (Leszek Swirski) (issue #32) + - Add --disable-protoc to only build libprotobuf-c (daveb) + - Bug fixes for protobuf_c_enum_descriptor_get_value_by_name() + and protobuf_c_service_descriptor_get_method_by_name() + - if descriptor->message_init != NULL, use it from unpack() + as an optimization (daveb) + - implement protobuf_c_{client,server}_set_error_handler() + +protobuf-c (0.12) + - for field names which are reserved words, use the real name + given in the protobuf-c file, not the mangled name which + is the name of the member in the C structure. (Andrei Nigmatulin) + - add protobuf_c_message_init() function; add virtual function + that implements it efficiently. (Andrei Nigmatulin) + - bug fix for sfixed32, fixed32, float wire-types on + big-endian platforms (Robert Edmonds) + - compile with the latest protobuf (the header file wire_format_inl.h + is now wire_format.h) (Robert Edmonds) + +protobuf-c (0.11) + - allow CFLAGS=-DPRINT_UNPACK_ERRORS=0 to suppress + unpack warnings from being printed at compile time (Andrei Nigmatulin) + - give error if an unknown wire-type is encountered (Andrei Nigmatulin) + - fix technically possible overflows during unpack of very + large messages (Andrei Nigmatulin) + - [UNFINISHED] windows RPC work + - use automake's "foreign" mode from within configure.ac + and add version information to the library (Robert Edmonds) + - ProtobufCServiceDescriptor::method_indices_by_name: missing + const. (Issue 21) + - Update to support new UnknownFields API. (fix by dcreager) (Issue 20) + +protobuf-c (0.10) + - build issue on platforms which don't compute library dependencies + automatically. + - fix for certain types of corrupt messages (Landon Fuller) (issue 16) + +protobuf-c (0.9) + - build issue: needed $(EXEEXT) in dependency lists for cygwin + - bug fix: protobuf_c_service_get_method_by_name() was not correct b/c + the service's methods were not sorted by name (the header file + used to incorrectly state that they were). + Now we correctly implement protobuf_c_service_get_method_by_name() + (using a bsearch indexed by separate array). + - generated source incompatibility: we added a new + member to ProtobufCServiceDescriptor (method_indices_by_name). + You will have to run the latest protobuf + to generate those structures. + - rename rpc-client's "autoretry" mechanism to "autoreconnect". + - bug fixes using TCP clients with the RPC system. + - handle allocation failures more gracefully (Jason Lunz) (issue 15) + +protobuf-c (0.8) + - Destroy function typedef for Services was omitting a "*" + - service_machgen_invoke was broken. (issue 12) + - add RPC system (BETA) + - don't segfault when packing NULL strings and messages. (issue 13) + +protobuf-c (0.7) + - memory leak: unknown fields were not being freed by free_unpacked() + - lowercase field names consistently when composing + default_value names. (issue 11) + - remove spurious semicolon (issue 10) + +protobuf-c (0.6) + - Warning suppression for -Wcast-qual and -Wshadow. + - Support for default values of all types allowed by core protobuf. + - Generate message__init functions, for when the static initializer + isn't convenient. + - add some reserved fields at the end of the various descriptors + +protobuf-c (0.5) + - License now included in major files. + - Use little-endian optimizations; fix a bug therein. + - Include 'make deb' target. + +protobuf-c (0.4) + - Update to work with protobuf 2.0.1. + +protobuf-c (0.2) +protobuf-c (0.3) + - Minor pedantic concerns about generated code. + +protobuf-c (0.1) + - Lots of test code (and bug fixes). + +protobuf-c (0.0) + - Initial release. diff --git a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/Doxyfile.in b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/Doxyfile.in new file mode 100644 index 0000000..7d556ec --- /dev/null +++ b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/Doxyfile.in @@ -0,0 +1,2312 @@ +# Doxyfile 1.8.7 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project. +# +# All text after a double hash (##) is considered a comment and is placed in +# front of the TAG it is preceding. +# +# All text after a single hash (#) is considered a comment and will be ignored. +# The format is: +# TAG = value [value, ...] +# For lists, items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (\" \"). + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file +# that follow. The default is UTF-8 which is also the encoding used for all text +# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv +# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv +# for the list of possible encodings. +# The default value is: UTF-8. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by +# double-quotes, unless you are using Doxywizard) that should identify the +# project for which the documentation is generated. This name is used in the +# title of most generated pages and in a few other places. +# The default value is: My Project. + +PROJECT_NAME = "@PACKAGE@" + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. This +# could be handy for archiving the generated documentation or if some version +# control system is used. + +PROJECT_NUMBER = @PACKAGE_VERSION@ + +# Using the PROJECT_BRIEF tag one can provide an optional one line description +# for a project that appears at the top of each page and should give viewer a +# quick idea about the purpose of the project. Keep the description short. + +PROJECT_BRIEF = "@PACKAGE_DESCRIPTION@" + +# With the PROJECT_LOGO tag one can specify an logo or icon that is included in +# the documentation. The maximum height of the logo should not exceed 55 pixels +# and the maximum width should not exceed 200 pixels. Doxygen will copy the logo +# to the output directory. + +PROJECT_LOGO = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path +# into which the generated documentation will be written. If a relative path is +# entered, it will be relative to the location where doxygen was started. If +# left blank the current directory will be used. + +OUTPUT_DIRECTORY = + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub- +# directories (in 2 levels) under the output directory of each output format and +# will distribute the generated files over these directories. Enabling this +# option can be useful when feeding doxygen a huge amount of source files, where +# putting all generated files in the same directory would otherwise causes +# performance problems for the file system. +# The default value is: NO. + +CREATE_SUBDIRS = NO + +# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII +# characters to appear in the names of generated files. If set to NO, non-ASCII +# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode +# U+3044. +# The default value is: NO. + +ALLOW_UNICODE_NAMES = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, +# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), +# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, +# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), +# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, +# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, +# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, +# Ukrainian and Vietnamese. +# The default value is: English. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member +# descriptions after the members that are listed in the file and class +# documentation (similar to Javadoc). Set to NO to disable this. +# The default value is: YES. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief +# description of a member or function before the detailed description +# +# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. +# The default value is: YES. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator that is +# used to form the text in various listings. Each string in this list, if found +# as the leading text of the brief description, will be stripped from the text +# and the result, after processing the whole list, is used as the annotated +# text. Otherwise, the brief description is used as-is. If left blank, the +# following values are used ($name is automatically replaced with the name of +# the entity):The $name class, The $name widget, The $name file, is, provides, +# specifies, contains, represents, a, an and the. + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# doxygen will generate a detailed section even if there is only a brief +# description. +# The default value is: NO. + +ALWAYS_DETAILED_SEC = YES + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. +# The default value is: NO. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path +# before files name in the file list and in the header files. If set to NO the +# shortest path that makes the file name unique will be used +# The default value is: YES. + +FULL_PATH_NAMES = NO + +# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. +# Stripping is only done if one of the specified strings matches the left-hand +# part of the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the path to +# strip. +# +# Note that you can specify absolute paths here, but also relative paths, which +# will be relative from the directory where doxygen is started. +# This tag requires that the tag FULL_PATH_NAMES is set to YES. + +STRIP_FROM_PATH = @top_srcdir@ + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the +# path mentioned in the documentation of a class, which tells the reader which +# header file to include in order to use a class. If left blank only the name of +# the header file containing the class definition is used. Otherwise one should +# specify the list of include paths that are normally passed to the compiler +# using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but +# less readable) file names. This can be useful is your file systems doesn't +# support long names like on DOS, Mac, or CD-ROM. +# The default value is: NO. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the +# first line (until the first dot) of a Javadoc-style comment as the brief +# description. If set to NO, the Javadoc-style will behave just like regular Qt- +# style comments (thus requiring an explicit @brief command for a brief +# description.) +# The default value is: NO. + +JAVADOC_AUTOBRIEF = YES + +# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first +# line (until the first dot) of a Qt-style comment as the brief description. If +# set to NO, the Qt-style will behave just like regular Qt-style comments (thus +# requiring an explicit \brief command for a brief description.) +# The default value is: NO. + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a +# multi-line C++ special comment block (i.e. a block of //! or /// comments) as +# a brief description. This used to be the default behavior. The new default is +# to treat a multi-line C++ comment block as a detailed description. Set this +# tag to YES if you prefer the old behavior instead. +# +# Note that setting this tag to YES also means that rational rose comments are +# not recognized any more. +# The default value is: NO. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the +# documentation from any documented member that it re-implements. +# The default value is: YES. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a +# new page for each member. If set to NO, the documentation of a member will be +# part of the file/class/namespace that contains it. +# The default value is: NO. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen +# uses this value to replace tabs by spaces in code fragments. +# Minimum value: 1, maximum value: 16, default value: 4. + +TAB_SIZE = 8 + +# This tag can be used to specify a number of aliases that act as commands in +# the documentation. An alias has the form: +# name=value +# For example adding +# "sideeffect=@par Side Effects:\n" +# will allow you to put the command \sideeffect (or @sideeffect) in the +# documentation, which will result in a user-defined paragraph with heading +# "Side Effects:". You can put \n's in the value part of an alias to insert +# newlines. + +ALIASES = + +# This tag can be used to specify a number of word-keyword mappings (TCL only). +# A mapping has the form "name=value". For example adding "class=itcl::class" +# will allow you to use the command class in the itcl::class meaning. + +TCL_SUBST = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. For +# instance, some of the names that are used will be different. The list of all +# members will be omitted, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_FOR_C = YES + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or +# Python sources only. Doxygen will then generate output that is more tailored +# for that language. For instance, namespaces will be presented as packages, +# qualified scopes will look different, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources. Doxygen will then generate output that is tailored for Fortran. +# The default value is: NO. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for VHDL. +# The default value is: NO. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given +# extension. Doxygen has a built-in mapping, but you can override or extend it +# using this tag. The format is ext=language, where ext is a file extension, and +# language is one of the parsers supported by doxygen: IDL, Java, Javascript, +# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: +# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: +# Fortran. In the later case the parser tries to guess whether the code is fixed +# or free formatted code, this is the default for Fortran type files), VHDL. For +# instance to make doxygen treat .inc files as Fortran files (default is PHP), +# and .f files as C (default is Fortran), use: inc=Fortran f=C. +# +# Note For files without extension you can use no_extension as a placeholder. +# +# Note that for custom extensions you also need to set FILE_PATTERNS otherwise +# the files are not read by doxygen. + +EXTENSION_MAPPING = + +# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments +# according to the Markdown format, which allows for more readable +# documentation. See http://daringfireball.net/projects/markdown/ for details. +# The output of markdown processing is further processed by doxygen, so you can +# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in +# case of backward compatibilities issues. +# The default value is: YES. + +MARKDOWN_SUPPORT = YES + +# When enabled doxygen tries to link words that correspond to documented +# classes, or namespaces to their corresponding documentation. Such a link can +# be prevented in individual cases by by putting a % sign in front of the word +# or globally by setting AUTOLINK_SUPPORT to NO. +# The default value is: YES. + +AUTOLINK_SUPPORT = YES + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should set this +# tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); +# versus func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. +# The default value is: NO. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. +# The default value is: NO. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: +# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen +# will parse them like normal C++ but will assume all classes use public instead +# of private inheritance when no explicit protection keyword is present. +# The default value is: NO. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate +# getter and setter methods for a property. Setting this option to YES will make +# doxygen to replace the get and set methods by a property in the documentation. +# This will only work if the methods are indeed getting or setting a simple +# type. If this is not the case, or you want to show the methods anyway, you +# should set this option to NO. +# The default value is: YES. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. +# The default value is: NO. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES to allow class member groups of the same type +# (for instance a group of public functions) to be put as a subgroup of that +# type (e.g. under the Public Functions section). Set it to NO to prevent +# subgrouping. Alternatively, this can be done per class using the +# \nosubgrouping command. +# The default value is: YES. + +SUBGROUPING = YES + +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions +# are shown inside the group in which they are included (e.g. using \ingroup) +# instead of on a separate page (for HTML and Man pages) or section (for LaTeX +# and RTF). +# +# Note that this feature does not work in combination with +# SEPARATE_MEMBER_PAGES. +# The default value is: NO. + +INLINE_GROUPED_CLASSES = NO + +# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions +# with only public data fields or simple typedef fields will be shown inline in +# the documentation of the scope in which they are defined (i.e. file, +# namespace, or group documentation), provided this scope is documented. If set +# to NO, structs, classes, and unions are shown on a separate page (for HTML and +# Man pages) or section (for LaTeX and RTF). +# The default value is: NO. + +INLINE_SIMPLE_STRUCTS = NO + +# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or +# enum is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically be +# useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. +# The default value is: NO. + +TYPEDEF_HIDES_STRUCT = YES + +# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This +# cache is used to resolve symbols given their name and scope. Since this can be +# an expensive process and often the same symbol appears multiple times in the +# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small +# doxygen will become slower. If the cache is too large, memory is wasted. The +# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range +# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 +# symbols. At the end of a run doxygen will report the cache usage and suggest +# the optimal cache size from a speed point of view. +# Minimum value: 0, maximum value: 9, default value: 0. + +LOOKUP_CACHE_SIZE = 0 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. Private +# class members and static file members will be hidden unless the +# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. +# Note: This will also disable the warnings about undocumented members that are +# normally produced when WARNINGS is set to YES. +# The default value is: NO. + +EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class will +# be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal +# scope will be included in the documentation. +# The default value is: NO. + +EXTRACT_PACKAGE = NO + +# If the EXTRACT_STATIC tag is set to YES all static members of a file will be +# included in the documentation. +# The default value is: NO. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined +# locally in source files will be included in the documentation. If set to NO +# only classes defined in header files are included. Does not have any effect +# for Java sources. +# The default value is: YES. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local methods, +# which are defined in the implementation section but not in the interface are +# included in the documentation. If set to NO only methods in the interface are +# included. +# The default value is: NO. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base name of +# the file that contains the anonymous namespace. By default anonymous namespace +# are hidden. +# The default value is: NO. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all +# undocumented members inside documented classes or files. If set to NO these +# members will be included in the various overviews, but no documentation +# section is generated. This option has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. If set +# to NO these classes will be included in the various overviews. This option has +# no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend +# (class|struct|union) declarations. If set to NO these declarations will be +# included in the documentation. +# The default value is: NO. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any +# documentation blocks found inside the body of a function. If set to NO these +# blocks will be appended to the function's detailed documentation block. +# The default value is: NO. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation that is typed after a +# \internal command is included. If the tag is set to NO then the documentation +# will be excluded. Set it to YES to include the internal documentation. +# The default value is: NO. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file +# names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. +# The default value is: system dependent. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with +# their full class and namespace scopes in the documentation. If set to YES the +# scope will be hidden. +# The default value is: NO. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of +# the files that are included by a file in the documentation of that file. +# The default value is: YES. + +SHOW_INCLUDE_FILES = NO + +# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each +# grouped member an include statement to the documentation, telling the reader +# which file to include in order to use the member. +# The default value is: NO. + +SHOW_GROUPED_MEMB_INC = NO + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include +# files with double quotes in the documentation rather than with sharp brackets. +# The default value is: NO. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the +# documentation for inline members. +# The default value is: YES. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the +# (detailed) documentation of file and class members alphabetically by member +# name. If set to NO the members will appear in declaration order. +# The default value is: YES. + +SORT_MEMBER_DOCS = NO + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief +# descriptions of file, namespace and class members alphabetically by member +# name. If set to NO the members will appear in declaration order. Note that +# this will also influence the order of the classes in the class list. +# The default value is: NO. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the +# (brief and detailed) documentation of class members so that constructors and +# destructors are listed first. If set to NO the constructors will appear in the +# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. +# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief +# member documentation. +# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting +# detailed member documentation. +# The default value is: NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy +# of group names into alphabetical order. If set to NO the group names will +# appear in their defined order. +# The default value is: NO. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by +# fully-qualified names, including namespaces. If set to NO, the class list will +# be sorted only by class name, not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the alphabetical +# list. +# The default value is: NO. + +SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper +# type resolution of all parameters of a function it will reject a match between +# the prototype and the implementation of a member function even if there is +# only one candidate or it is obvious which candidate to choose by doing a +# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still +# accept a match between prototype and implementation in such cases. +# The default value is: NO. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the +# todo list. This list is created by putting \todo commands in the +# documentation. +# The default value is: YES. + +GENERATE_TODOLIST = NO + +# The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the +# test list. This list is created by putting \test commands in the +# documentation. +# The default value is: YES. + +GENERATE_TESTLIST = NO + +# The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug +# list. This list is created by putting \bug commands in the documentation. +# The default value is: YES. + +GENERATE_BUGLIST = NO + +# The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO) +# the deprecated list. This list is created by putting \deprecated commands in +# the documentation. +# The default value is: YES. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional documentation +# sections, marked by \if ... \endif and \cond +# ... \endcond blocks. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the +# initial value of a variable or macro / define can have for it to appear in the +# documentation. If the initializer consists of more lines than specified here +# it will be hidden. Use a value of 0 to hide initializers completely. The +# appearance of the value of individual variables and macros / defines can be +# controlled using \showinitializer or \hideinitializer command in the +# documentation regardless of this setting. +# Minimum value: 0, maximum value: 10000, default value: 30. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at +# the bottom of the documentation of classes and structs. If set to YES the list +# will mention the files that were used to generate the documentation. +# The default value is: YES. + +SHOW_USED_FILES = NO + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This +# will remove the Files entry from the Quick Index and from the Folder Tree View +# (if specified). +# The default value is: YES. + +SHOW_FILES = NO + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces +# page. This will remove the Namespaces entry from the Quick Index and from the +# Folder Tree View (if specified). +# The default value is: YES. + +SHOW_NAMESPACES = NO + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command command input-file, where command is the value of the +# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided +# by doxygen. Whatever the program writes to standard output is used as the file +# version. For an example see the documentation. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. To create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. You can +# optionally specify a file name after the option, if omitted DoxygenLayout.xml +# will be used as the name of the layout file. +# +# Note that if you run doxygen from a directory containing a file called +# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# tag is left empty. + +LAYOUT_FILE = @top_srcdir@/DoxygenLayout.xml + +# The CITE_BIB_FILES tag can be used to specify one or more bib files containing +# the reference definitions. This must be a list of .bib files. The .bib +# extension is automatically appended if omitted. This requires the bibtex tool +# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. +# For LaTeX the style of the bibliography can be controlled using +# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the +# search path. Do not use file names with spaces, bibtex cannot handle them. See +# also \cite for info how to create references. + +CITE_BIB_FILES = + +#--------------------------------------------------------------------------- +# Configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated to +# standard output by doxygen. If QUIET is set to YES this implies that the +# messages are off. +# The default value is: NO. + +QUIET = YES + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES +# this implies that the warnings are on. +# +# Tip: Turn warnings on while writing the documentation. +# The default value is: YES. + +WARNINGS = YES + +# If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate +# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: YES. + +WARN_IF_UNDOCUMENTED = YES + +# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some parameters +# in a documented function, or documenting parameters that don't exist or using +# markup commands wrongly. +# The default value is: YES. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that +# are documented, but have no documentation for their parameters or return +# value. If set to NO doxygen will only warn about wrong or incomplete parameter +# documentation, but not about the absence of documentation. +# The default value is: NO. + +WARN_NO_PARAMDOC = YES + +# The WARN_FORMAT tag determines the format of the warning messages that doxygen +# can produce. The string should contain the $file, $line, and $text tags, which +# will be replaced by the file and line number from which the warning originated +# and the warning text. Optionally the format may contain $version, which will +# be replaced by the version of the file (if it could be obtained via +# FILE_VERSION_FILTER) +# The default value is: $file:$line: $text. + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning and error +# messages should be written. If left blank the output is written to standard +# error (stderr). + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# Configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag is used to specify the files and/or directories that contain +# documented source files. You may enter file names like myfile.cpp or +# directories like /usr/src/myproject. Separate the files or directories with +# spaces. +# Note: If this tag is empty the current directory is searched. + +INPUT = @DOXYGEN_INPUT@ + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses +# libiconv (or the iconv built into libc) for the transcoding. See the libiconv +# documentation (see: http://www.gnu.org/software/libiconv) for the list of +# possible encodings. +# The default value is: UTF-8. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and +# *.h) to filter out the source-files in the directories. If left blank the +# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii, +# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, +# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, +# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, +# *.qsf, *.as and *.js. + +FILE_PATTERNS = *.h + +# The RECURSIVE tag can be used to specify whether or not subdirectories should +# be searched for input files as well. +# The default value is: NO. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should be +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. +# +# Note that relative paths are relative to the directory from which doxygen is +# run. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or +# directories that are symbolic links (a Unix file system feature) are excluded +# from the input. +# The default value is: NO. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories for example use the pattern */test/* + +EXCLUDE_PATTERNS = *private* + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories use the pattern */test/* + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or directories +# that contain example code fragments that are included (see the \include +# command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and +# *.h) to filter out the source-files in the directories. If left blank all +# files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude commands +# irrespective of the value of the RECURSIVE tag. +# The default value is: NO. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or directories +# that contain images that are to be included in the documentation (see the +# \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command: +# +# +# +# where is the value of the INPUT_FILTER tag, and is the +# name of an input file. Doxygen will then use the output that the filter +# program writes to standard output. If FILTER_PATTERNS is specified, this tag +# will be ignored. +# +# Note that the filter must not add or remove lines; it is applied before the +# code is scanned, but not when the output code is generated. If lines are added +# or removed, the anchors will not be placed correctly. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: pattern=filter +# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how +# filters are used. If the FILTER_PATTERNS tag is empty or if none of the +# patterns match the file name, INPUT_FILTER is applied. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER ) will also be used to filter the input files that are used for +# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). +# The default value is: NO. + +FILTER_SOURCE_FILES = NO + +# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and +# it is also possible to disable source filtering for a specific pattern using +# *.ext= (so without naming a filter). +# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. + +FILTER_SOURCE_PATTERNS = + +# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that +# is part of the input, its contents will be placed on the main page +# (index.html). This can be useful if you have a project on for instance GitHub +# and want to reuse the introduction page also for the doxygen output. + +USE_MDFILE_AS_MAINPAGE = + +#--------------------------------------------------------------------------- +# Configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will be +# generated. Documented entities will be cross-referenced with these sources. +# +# Note: To get rid of all source code in the generated output, make sure that +# also VERBATIM_HEADERS is set to NO. +# The default value is: NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body of functions, +# classes and enums directly into the documentation. +# The default value is: NO. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any +# special comment blocks from generated source code fragments. Normal C, C++ and +# Fortran comments will always remain visible. +# The default value is: YES. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES then for each documented +# function all documented functions referencing it will be listed. +# The default value is: NO. + +REFERENCED_BY_RELATION = NO + +# If the REFERENCES_RELATION tag is set to YES then for each documented function +# all documented entities called/used by that function will be listed. +# The default value is: NO. + +REFERENCES_RELATION = NO + +# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set +# to YES, then the hyperlinks from functions in REFERENCES_RELATION and +# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will +# link to the documentation. +# The default value is: YES. + +REFERENCES_LINK_SOURCE = YES + +# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the +# source code will show a tooltip with additional information such as prototype, +# brief description and links to the definition and documentation. Since this +# will make the HTML file larger and loading of large files a bit slower, you +# can opt to disable this feature. +# The default value is: YES. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +SOURCE_TOOLTIPS = NO + +# If the USE_HTAGS tag is set to YES then the references to source code will +# point to the HTML generated by the htags(1) tool instead of doxygen built-in +# source browser. The htags tool is part of GNU's global source tagging system +# (see http://www.gnu.org/software/global/global.html). You will need version +# 4.8.6 or higher. +# +# To use it do the following: +# - Install the latest version of global +# - Enable SOURCE_BROWSER and USE_HTAGS in the config file +# - Make sure the INPUT points to the root of the source tree +# - Run doxygen as normal +# +# Doxygen will invoke htags (and that will in turn invoke gtags), so these +# tools must be available from the command line (i.e. in the search path). +# +# The result: instead of the source browser generated by doxygen, the links to +# source code will now point to the output of htags. +# The default value is: NO. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a +# verbatim copy of the header file for each class for which an include is +# specified. Set to NO to disable this. +# See also: Section \class. +# The default value is: YES. + +VERBATIM_HEADERS = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all +# compounds will be generated. Enable this if the project contains a lot of +# classes, structs, unions or interfaces. +# The default value is: YES. + +ALPHABETICAL_INDEX = NO + +# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in +# which the alphabetical index list will be split. +# Minimum value: 1, maximum value: 20, default value: 5. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all classes will +# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag +# can be used to specify a prefix (or a list of prefixes) that should be ignored +# while generating the index headers. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES doxygen will generate HTML output +# The default value is: YES. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each +# generated HTML page (for example: .htm, .php, .asp). +# The default value is: .html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a user-defined HTML header file for +# each generated HTML page. If the tag is left blank doxygen will generate a +# standard header. +# +# To get valid HTML the header file that includes any scripts and style sheets +# that doxygen needs, which is dependent on the configuration options used (e.g. +# the setting GENERATE_TREEVIEW). It is highly recommended to start with a +# default header using +# doxygen -w html new_header.html new_footer.html new_stylesheet.css +# YourConfigFile +# and then modify the file new_header.html. See also section "Doxygen usage" +# for information on how to generate the default header that doxygen normally +# uses. +# Note: The header is subject to change so you typically have to regenerate the +# default header when upgrading to a newer version of doxygen. For a description +# of the possible markers and block names see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each +# generated HTML page. If the tag is left blank doxygen will generate a standard +# footer. See HTML_HEADER for more information on how to generate a default +# footer and what special commands can be used inside the footer. See also +# section "Doxygen usage" for information on how to generate the default footer +# that doxygen normally uses. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style +# sheet that is used by each HTML page. It can be used to fine-tune the look of +# the HTML output. If left blank doxygen will generate a default style sheet. +# See also section "Doxygen usage" for information on how to generate the style +# sheet that doxygen normally uses. +# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as +# it is more robust and this tag (HTML_STYLESHEET) will in the future become +# obsolete. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_STYLESHEET = + +# The HTML_EXTRA_STYLESHEET tag can be used to specify an additional user- +# defined cascading style sheet that is included after the standard style sheets +# created by doxygen. Using this option one can overrule certain style aspects. +# This is preferred over using HTML_STYLESHEET since it does not replace the +# standard style sheet and is therefor more robust against future updates. +# Doxygen will copy the style sheet file to the output directory. For an example +# see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_STYLESHEET = + +# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the HTML output directory. Note +# that these files will be copied to the base HTML output directory. Use the +# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that the +# files will be copied as-is; there are no commands or markers available. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_FILES = + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen +# will adjust the colors in the stylesheet and background images according to +# this color. Hue is specified as an angle on a colorwheel, see +# http://en.wikipedia.org/wiki/Hue for more information. For instance the value +# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 +# purple, and 360 is red again. +# Minimum value: 0, maximum value: 359, default value: 220. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_HUE = 220 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors +# in the HTML output. For a value of 0 the output will use grayscales only. A +# value of 255 will produce the most vivid colors. +# Minimum value: 0, maximum value: 255, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_SAT = 100 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the +# luminance component of the colors in the HTML output. Values below 100 +# gradually make the output lighter, whereas values above 100 make the output +# darker. The value divided by 100 is the actual gamma applied, so 80 represents +# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not +# change the gamma. +# Minimum value: 40, maximum value: 240, default value: 80. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_GAMMA = 80 + +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML +# page will contain the date and time when the page was generated. Setting this +# to NO can help when comparing the output of multiple runs. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_TIMESTAMP = NO + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_SECTIONS = NO + +# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries +# shown in the various tree structured indices initially; the user can expand +# and collapse entries dynamically later on. Doxygen will expand the tree to +# such a level that at most the specified number of entries are visible (unless +# a fully collapsed tree already exceeds this amount). So setting the number of +# entries 1 will produce a full collapsed tree by default. 0 is a special value +# representing an infinite number of entries and will result in a full expanded +# tree by default. +# Minimum value: 0, maximum value: 9999, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_INDEX_NUM_ENTRIES = 100 + +# If the GENERATE_DOCSET tag is set to YES, additional index files will be +# generated that can be used as input for Apple's Xcode 3 integrated development +# environment (see: http://developer.apple.com/tools/xcode/), introduced with +# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a +# Makefile in the HTML output directory. Running make will produce the docset in +# that directory and running make install will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at +# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html +# for more information. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_DOCSET = NO + +# This tag determines the name of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# The default value is: Doxygen generated docs. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# This tag specifies a string that should uniquely identify the documentation +# set bundle. This should be a reverse domain-name style string, e.g. +# com.mycompany.MyDocSet. Doxygen will append .docset to the name. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify +# the documentation publisher. This should be a reverse domain-name style +# string, e.g. com.mycompany.MyDocSet.documentation. +# The default value is: org.doxygen.Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_ID = org.doxygen.Publisher + +# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. +# The default value is: Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_NAME = Publisher + +# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three +# additional HTML index files: index.hhp, index.hhc, and index.hhk. The +# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop +# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on +# Windows. +# +# The HTML Help Workshop contains a compiler that can convert all HTML output +# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML +# files are now used as the Windows 98 help format, and will replace the old +# Windows help format (.hlp) on all Windows platforms in the future. Compressed +# HTML files also contain an index, a table of contents, and you can search for +# words in the documentation. The HTML workshop also contains a viewer for +# compressed HTML files. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_HTMLHELP = NO + +# The CHM_FILE tag can be used to specify the file name of the resulting .chm +# file. You can add a path in front of the file if the result should not be +# written to the html output directory. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_FILE = + +# The HHC_LOCATION tag can be used to specify the location (absolute path +# including file name) of the HTML help compiler ( hhc.exe). If non-empty +# doxygen will try to run the HTML help compiler on the generated index.hhp. +# The file has to be specified with full path. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +HHC_LOCATION = + +# The GENERATE_CHI flag controls if a separate .chi index file is generated ( +# YES) or that it should be included in the master .chm file ( NO). +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +GENERATE_CHI = NO + +# The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc) +# and project file content. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_INDEX_ENCODING = + +# The BINARY_TOC flag controls whether a binary table of contents is generated ( +# YES) or a normal table of contents ( NO) in the .chm file. Furthermore it +# enables the Previous and Next buttons. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members to +# the table of contents of the HTML help documentation and to the tree view. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that +# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help +# (.qch) of the generated HTML documentation. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify +# the file name of the resulting .qch file. The path specified is relative to +# the HTML output folder. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help +# Project output. For more information please see Qt Help Project / Namespace +# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt +# Help Project output. For more information please see Qt Help Project / Virtual +# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- +# folders). +# The default value is: doc. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_VIRTUAL_FOLDER = doc + +# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom +# filter to add. For more information please see Qt Help Project / Custom +# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- +# filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see Qt Help Project / Custom +# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- +# filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's filter section matches. Qt Help Project / Filter Attributes (see: +# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_SECT_FILTER_ATTRS = + +# The QHG_LOCATION tag can be used to specify the location of Qt's +# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the +# generated .qhp file. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be +# generated, together with the HTML files, they form an Eclipse help plugin. To +# install this plugin and make it available under the help contents menu in +# Eclipse, the contents of the directory containing the HTML and XML files needs +# to be copied into the plugins directory of eclipse. The name of the directory +# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. +# After copying Eclipse needs to be restarted before the help appears. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the Eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have this +# name. Each documentation set should have its own identifier. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# If you want full control over the layout of the generated HTML pages it might +# be necessary to disable the index and replace it with your own. The +# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top +# of each HTML page. A value of NO enables the index and the value YES disables +# it. Since the tabs in the index contain the same information as the navigation +# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +DISABLE_INDEX = YES + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. If the tag +# value is set to YES, a side panel will be generated containing a tree-like +# index structure (just like the one that is generated for HTML Help). For this +# to work a browser that supports JavaScript, DHTML, CSS and frames is required +# (i.e. any modern browser). Windows users are probably better off using the +# HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can +# further fine-tune the look of the index. As an example, the default style +# sheet generated by doxygen has an example that shows how to put an image at +# the root of the tree instead of the PROJECT_NAME. Since the tree basically has +# the same information as the tab index, you could consider setting +# DISABLE_INDEX to YES when enabling this option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_TREEVIEW = YES + +# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that +# doxygen will group on one line in the generated HTML documentation. +# +# Note that a value of 0 will completely suppress the enum values from appearing +# in the overview section. +# Minimum value: 0, maximum value: 20, default value: 4. +# This tag requires that the tag GENERATE_HTML is set to YES. + +ENUM_VALUES_PER_LINE = 0 + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used +# to set the initial width (in pixels) of the frame in which the tree is shown. +# Minimum value: 0, maximum value: 1500, default value: 250. +# This tag requires that the tag GENERATE_HTML is set to YES. + +TREEVIEW_WIDTH = 250 + +# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to +# external symbols imported via tag files in a separate window. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +EXT_LINKS_IN_WINDOW = NO + +# Use this tag to change the font size of LaTeX formulas included as images in +# the HTML documentation. When you change the font size after a successful +# doxygen run you need to manually remove any form_*.png images from the HTML +# output directory to force them to be regenerated. +# Minimum value: 8, maximum value: 50, default value: 10. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_FONTSIZE = 10 + +# Use the FORMULA_TRANPARENT tag to determine whether or not the images +# generated for formulas are transparent PNGs. Transparent PNGs are not +# supported properly for IE 6.0, but are supported on all modern browsers. +# +# Note that when changing this option you need to delete any form_*.png files in +# the HTML output directory before the changes have effect. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_TRANSPARENT = YES + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see +# http://www.mathjax.org) which uses client side Javascript for the rendering +# instead of using prerendered bitmaps. Use this if you do not have LaTeX +# installed or if you want to formulas look prettier in the HTML output. When +# enabled you may also need to install MathJax separately and configure the path +# to it using the MATHJAX_RELPATH option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +USE_MATHJAX = NO + +# When MathJax is enabled you can set the default output format to be used for +# the MathJax output. See the MathJax site (see: +# http://docs.mathjax.org/en/latest/output.html) for more details. +# Possible values are: HTML-CSS (which is slower, but has the best +# compatibility), NativeMML (i.e. MathML) and SVG. +# The default value is: HTML-CSS. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_FORMAT = HTML-CSS + +# When MathJax is enabled you need to specify the location relative to the HTML +# output directory using the MATHJAX_RELPATH option. The destination directory +# should contain the MathJax.js script. For instance, if the mathjax directory +# is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax +# Content Delivery Network so you can quickly see the result without installing +# MathJax. However, it is strongly recommended to install a local copy of +# MathJax from http://www.mathjax.org before deployment. +# The default value is: http://cdn.mathjax.org/mathjax/latest. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest + +# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax +# extension names that should be enabled during MathJax rendering. For example +# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_EXTENSIONS = + +# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces +# of code that will be used on startup of the MathJax code. See the MathJax site +# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an +# example see the documentation. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_CODEFILE = + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box for +# the HTML output. The underlying search engine uses javascript and DHTML and +# should work on any modern browser. Note that when using HTML help +# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) +# there is already a search function so this one should typically be disabled. +# For large projects the javascript based search engine can be slow, then +# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to +# search using the keyboard; to jump to the search box use + S +# (what the is depends on the OS and browser, but it is typically +# , /

    I5Cga0@@{mxpmi&1v%i<8)NjAv%oD@ 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

    GzZfZpJf&I?p45EQWV?T*GD;*7KY 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�@yc+X0$;u~E~ z!z6U3l6Zo0$8Ez~(-Bg9#p;oRT~IaqlYC0PqOX;d7^Aq4V>x0k&LRrbhF!olyPJ

  • Advised minimum char buffer size based on current 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%0DjByRZA;e4P!+uF5kk$=kUHZLlJbp&EXw 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

    ts1~NF@h|1p5wMNM<4e+!*uP# zY9MZ`@Z;1yTb@#68AP*Yb>?S}%cG6v+DEGey}$Ne*ecKb33XRaLI!Q3#(ALA+*c>oU!296`SDaMIRu-2{OCo`C41)gvQO+gq zv>OWA$vh%;S2C%BlkpiHF>owIp@<()4;WVI&jp=T*4mx)ev79}=DrY2vlyHrTfNA? zA5n`F(%Sb`X^N+xOLWdU?9GwlSzI#&C%ujBhu^0?dg_->a&17goj%jGdG=%q8o4DP z(gS<#2e;SeKWt7pB*c>YDu+<`F4medBbR46-dhfIfR?97ijw`Uc0B&W2zq}C8tQse zHC0U%5f9I42g-h(`NgNzobOdu9LqeW6*Vn#*0}+@pIj4X6x11d3VOPCr+Gz$VMs0a z9N^y}w7$xAPYzu|)mglmRz*UINlxc{^D`iOabgJP^vATl0o1?q4NjP8soJ(5<(7%} z0@feuf3`16MD!m!>N?Lsq%zF+E2@SOEmcI6OjId8gM!`r*x_>*gS_WWbx6JapUvTa=i~!I4D%R<|o?42G z>6WpSENrn5fxB+8<%TV?yH4i)J))AAG=>@ES0%wVCidWW!wH+}m({wfEYo=|Ml-6J zB?+)5^;SFq$N8LBERH>mMKY_he+@c^I9l4uy!t=Dz{M=9w7U-BZ~k}}r93v~nujo` zi};a-l_lF8j4T5G0Epke>5HkK!)AR|sB*0?`3|W$-C(*>(b1N=fp#}hYY$U{9QVV_ zxhOPLd3|O}_;xDEDr{iD_BX$_CbC-ik=tFBkN*I)X_r$|ekrwOZuLvB*sO&6+r7JD zJZqkg<{5m;Lqkz3N<##dq2Q?cV(lq(-DGio3S6>kw`+?C7=!iXTM62)4!Y-FSHYC& zT`8N@=QU0uiKC??0C)tGz`&fSZZT-24IR+kL#wqtHk-;Gs=l?IVvt6gRw7R%-u!ck z(%uHLT#IErMyCO{-)e_#BNMIw2E-*H%0RNg|j*=vRT~1zF1~L zLl7^!5Z0eZ<{7@LgG=SUPOt&RzARTNB72x-h}D6*t`+u@SAKAvv&IS#jn-)W9o$yE9yL^zKTQn zk|hijk?F@H1l7JCGkI$vf~u2KLI?p}DA)%5#ssAKKAl$`*{>uX|yX)`#XVg=Qd zsQdAJDrWH8qba8`(bi_lz>D%WlkbaA$~py}L0YsKKA6-QoYxb7;zc}Hmn)ZB52hogK9bq6$|$m!&!r+o6L zjf)%Z`A?``{Cnc5w!37bv6LhK0JP(wA`YU4v1JCw&H#h;CE*JP||589%F#)#n`9Z z+}rfU%~yCR>YOht&7|g}LT-wXGp)UeJm9zg0BOru>57P>&hmMvsTEG=@>m1M_rp?u zV))kwI({Is-6y1VB-u`z$SP>4DB%e+Y$Vi3Pd)uc4Ejyd{Uw`F9M3w^*^Ki|W{OEn zh)5&+Cyp)ci+k#)h3=c@RVK4OXNsUPEI=D%UjG0!`+e|%O%J5>{XH&Ql0e3i81`J7 z-rc|U3@4bJbm{U$Bhh^f)V@t7myu;|OCnv5KDX_SG4wMaSM#INb4PK?l^{3X_?J+n zB{b%pk&#V;kzu#*g$;c9ZeLCR0Ksv*#CEuDewc#F%Rg?2PyYa8IWAPu$rgnQSP}}r zT>hTe-n}HrsyEbs$@IttnS`|AN&f)cZO$b^W-R{zk*~JBfw#E`b@uuDh7Y&56 zv3}hVTmHx>YePnwQkAIG?g`{7*#6iRKTD#^nPZ1Y({FF(fY2uETi)1`f}|bHB-+QZ zJmV8Il0TSba=okuAGrR<`(!ZLA4Wim3TU)eTLKeyX`@nieU0%P{7YzD%8s2O%5nim zPXsKVg^C@lB>w;z9>?5b%5q%NL0d?w#TYe+CglBa?JixUH4O}(^F~EUn?)GhzGPsX z-q-F%1(o>)f+aY3Ug=FXNvrg3qU#q$t9AB`rIl*)DmWZ@)5J(SNwMbK+qcwuUX^!@ zzXiuq>OA)#=|@qb&C@PiuTSLyjuS;dil8j78E_Io$RroA0@uS6nM;+@q|jy1!9`Ey z?Gc0d6bo9%>Bb`0krg(hnkYudmQBF@5Bg%Pjmef`#*o-`SEgsFT|$dd>AgI1tiGZ~ zl4NGP&cyz9xECaMw{LTRRk|eUbNDinQybloo7nr`67NihmokQ$K`)kEC}21j!)Mo& zhMu_=n`=&y0L*>ylT#m$W{fptdHhsR%B%SZVlK^Lg<{mClwsj*+*u-EDH7_kh zuFOX~jyS#o{{S1Sq;(HbP{nvvQ^6kC;;g9YC?U~Ws(9*9NxgW!^XvEa!s?D%D5%Jt;ri`I84A zSTXN!(+YgBM2alYn9Zz6?}nC_FcHRnLJ->QdA2qUOPCtURi|klnOF^qys+(TMdc?L z**0`5!R9D;Mo_#P@;=y`IaXF+$!J)sLS8W4k0A5g_r+%D%~bR`ln2R{b%?8#Z*OCX zxt8^szc!<%GEe~$ff|V9?6&Md#WS6j#uSC#X-!KMjVw|!$ZStN@M%q#=edO$6xCHU z)Jit;NZo()!4`z2gFViF6R5KpX|njwnz6e8t}ppWJ@DgdexPXlwr}CtRclC8ZDiZq z?0s=vj3dc%S#rWCBbDs(5DN2a;ndQ4Dz)oHX_BI$qc#K4e#ZzsIiJx~$|Q`en}^HI zt%)zCH5DZ-Byd3pjz-{{-sb=@$J0W5l4$B`xT^!?9qvB3bZB*keNR&FGMbuub_~}~ z-vpXBOtx_==9T5d3I70x6Y?JpisTe9rJgiMN42^C0DNg(6gOwoIpr>50Y;T-8svfr z+AyTb=c}T1nmJ^7JE1o_Mgn9s`Bg6VPbFNjUOTe;+Y1J+%Ai3U>j?*izb6(&sv|Cp z*FMhV3M8r}*SQ4TVDcSDo4qiC0ybEJ*5u>tqbZLvlXPeVSNHFS88p>25h4Z!ha_7T zc;Kl?psy*Czwqdi*g3a18Kot`PG6Dk$AiN{e?3d*BT{U3{{zR0;sF;NSt` z${~tq#O@eIFJMQ1(+BAtGaeB@?amtfr!dXSk2(B`Wm^Ca1ypABdx#T0!N@-N0CFux zFL+QB#^G)-5Ajsdxl}4!x7Q8rK4n`tB3YOv_!hykrQ=&MYa5e*1;SQQ#7u1>7C!!% z8niG}l#x_g-Tm-}po~jC>7-@@u*090%S!?`n<|ytWe3yifB;ctaY$J=FdtsnHG?38 zuQH%E^%%fb!pvGWQiHXL6hERi>`{2TkYHj0ui*v^~O+8x%A);vqqg%c=LmaY|Z^KD!JK~J7 zV(`sR6m7C)AP(gB`(Zs;=1B-x)$S}$z6k3DN+3`sKnJMpfDl(!tAb`=-o<#f5UzuB zNX3e>u^z;6jnPDqDY&uq9)}x}x~5pw8I-lVfsHIG4(~D-WCGVKfOq7<=7M0VszDy( z26Wj$tALac1h=og3Pm`K5)Y@pdHA<&s76O-&4lIK6?s z4CAAO#$-@qamNF=zy-|bXjxpV5%lK-EuBeEJdl=?ZTP+IY#^p7YBNWpRzwI=+}vR? zQCs-bYmfopi(s;%T5csSuMfATdWfy5jq3! zY$$UGs){O@I6mXP0#jtty^K`Ep61vAI}?f$CScbpd$qeCd@6FuRS+SScAm^fd>6{A z0cfUyw_nwH#>j$Og;Dkx25r>lSSTuGfp`3twXPcwv#C|t5>iyfn8=Lmg?5pB*Yv(7 zrA(V?CIy(qVh#Pin1p?7(^1r9+09iF!M-TWg->(GwgnrMf5}#NP-G+M#RV2;sP#QP zbd(D6xNds8(RIkR)EUN0Sea&5EP>V(y9V_={V(Z^dReA5vSxX$c8`WU z&pcAqFj9QhnRz>IIlcNgwq&m6vpx?1P8NsAK&SUa=JvKt(@)6LMm1ShACE|n1BGi#rVUm(~SYB z^Su6&IyIJ&Vs&?R2e3T)<4##mSCZ!xvb`%TkjdrBZM$gfex0$=H^bYZ-7o7tWu_=# zH1gIIS*E9|kqb!Q{4?I*9^Hm2$*9>zm`2qSqv0^xt4Zqk>NE1wWriaNm_~Mhew%DK z`s1&iJy?@z?50Si-xEN)N&ca1LSGF13DSKx%5yC}21`Wrs=?LFC`+HI1Ds7rBU(Br zspz6wdURU^MX&?tJ7bru%Nfezbo98~W61|RWakT)^rxrp$j$-_1Yo>hxAw;2PFl*LRNCg_875ayUG@mdTIAf^oHZ{XYyMlGF+zd%z5>-m zvqn_2Y$DejTLy=(ntuySjW#V}jp|{Fh+>mW-bcfb%iE6z|M+#*xEL9~Ki&K(Rf$QmPQZ}jh ze{~Zw)%o3g)Y;rq&nrrAMIrCa`1I!;e@%>J>9Z%O&XS?0(_LngU6nFYJZ#cl$BH&jYNd)+-X^qA9AA-3px03^&2e9 z<;=27)$1o~Zh+DdKt7iB$5r6R)tsMxeT_DV@hvu-tEa4NnAMbTnPZULj@(~>aXEBv z#hY8{Os#ajh@i}JI&{CB)z+$V2(cf`y@#+IVz+g#LVB6geYF~wOlD9~s}(YeR|?ku z0Ni-}@QupyMb0XzBg;(RjgW<1sbW6k3R*04r}SO!%8P;N2gFk+=^4~nl`f5&GR*TD zkHl3J0xvY1lg}V>$ACNG-RqCV-!<#^MDrerWqLzY>558-#4PgGB#9yu^9FE5lb_49 z-?2ERnvD;uC^Eq`a8*f1ys42?skra*{{XHKG`g0fF0FWYSE;6}#xJ-cAkdQLpf zGN1cNLs2BF!8NokeI`mMBAQs%2uENof3G;P9+LR9(YjqIH0DdDYil#sU8z!*Wk&6A zPhfpcDcdNoGZRjZ%p3C!w=2h~#IxwN1v~02o}`&0TV0Fu^J4d>PDrX*8jEK@oh9lH zsinzjHAZuoNt7(?%*hzuzE{+G`r?PYNObCtGwat;wJwg-6&j9`vbm=PshwMMa&8FV z19ATVviQGlhQ*gjr6Z3qmI&URLl%(SD7WVOeemMtnKy==PoGw()%`ZB)qsVmwQVt& zA7TOe{qanup(aNfZZ>jps=7g_brlzB^XVx&_l|=pH%gav5P^xgBCc%nztxAd_f{qbf$P>SIfEK;jwFzJ5+{T$7sG}ZlV%CxKF+u!?PU8drXE2^YXD&`dG`$6FDUv79f zxi1IN^w%}YL^;u?rmBn^nJMkLZ*g|DjlTG|_mhjcG7cP4XFQX9GPAt9HCYlWiP|RI zk2NKudw+#(Z%+K;Q}m0&w!6@|q%{+*T@@@ctjGTEVaH`(n0NOW>J@Vyfzx?eR&%ek zZc$Ms{J66km}$%USqz(ZewV_cE}nEgvNfsy0GM+$BfR?q_e*}?#Q;LP^_hn3{du38p}@ zlYV#YJhlB!I)~~nOZp>UrtAEjOQv%1PYbe7O;;7;u&3ClZ&Gy@g~|GbtTIhI zs-w;5;jEBHGpiEf=bPK3>E?&jrj!D=M!*Sq#gNy*oYh&|X z26iM{fG!3wtyZH zw`^F4MSK$H9el|QnOjlN)`Ys$OHp)?9z~FR*BAE1a_M}seB!3^HgsKKk4sy=CkK6*H7VD`LiLNmPg(puWtF+@W?laPG3mHu z3nf)74|GqWfz6Np!HB5Yj8zU1e8raJFgy@_i07PjKhe(>y(Q~zP%^zjxpw*g0Pf{x z8-#@MVh^Sv=Zg=9ewoybU$1%|)VVfjjPn{q1jA6rk{L&CeMToZC(%wVQ|d()E6!pn zd*8LaKKKamOpMHDVF5e~Vo1s1uc}!URGD_D)3sF9$ZX|Rf{(F0ANIkd{vCBoQ-e)G zBLbu5Bn7#|e{DLmLe;~|BRw?i3q-(ew*+Ass%qW}No7Tmn#YbwID9p~N_EbPj!K-{ zBCe*PQ)4xOMjqnaoHOke9%V}`#zma~Hn=9=uli!CLC3R1CZw(-SCVGggq76d5jshK znMgOc)M49}zcDeX543T9IT$0zmF2Gyh8|tW2H+pt3R$L(89cI~t$UI#Me!0r2KJV% z3&>`Bi;^&K(aNM1K+Ahv-~{u))im!IG03N#!oc8s)gimIib?fe!|8<8fV}DCF=jfe zD4>0=lS+|po} zCgc|)$GE?)E}x)Z6R!`wInx3o^k?H>dV2o=!ht%seZ!9b0N)N~sMUI3MP(H^_O8$JojH-jFD+Gc>kMo3yBibq z80Mo|f5egD*QYc&4o%X&hIJpQlo6+qJG{x3EOsB6ONkl3RR`*ETplYvBAV~Vo@Ews zLnfo?_f062708`b$9=cl&Hn(m91wW|->y49xr}0tB((0`7XJX^*Tz4FoTI9=de5h{ zv+8|0K}|E~Rrw`4ycLgc%!;RTvJuN|1L|=VdhhW^@JZJ`iD`JWw^j7!l-AUBZnM#5 zccrP>w2#R5+)c%e$oIv4bV7>04Fjw-{+G}--9j|5NNOpVB1q5`JGLuuSXlk<-yF;J zOETz|Z`2)YU8-_jQKxg}s(F%{7>YGL*^bE+g$zdn^v4?}A9h!{q-g;EKmfnT7Z}+y z{CV~7raI#%o{K2dU&QmG85N;rb2m4?%1GKc=hqbTrF4xhr_b6f{i-~o+u7rPEP?eu zwinsuPL7&DGH4n|K(d(>q@Ve%d>d(M8hXm8UWO^Z5Y}dB?n(3mZ?8Vs=xMOHMwcRP z$LCJ;52?8(TNZ1ia!mTKEn*%S>80}kKAc~V*9`ZJ4ybst&U6l+>Azg3tIYHUT~xIh zWVLy02`nbtcKOPo*xUR>_Qb~N=Uuv=;b4Cf)?FyiwXTb)h%->hO7OJF-^_wSwj=}F z*9>QfkBGK}>jqnyX?&BRd8S>JPK^tU(p7&XoE=CS&KZY8rnP?HH>D`G)*pKCpZs(8hf;sD_j_Dj|>TWj? z{Ko{t5$G#*( za9*xeLW_ZHWn=2B$JYQFuWt-)Z~KgF6=j$%;SeL!zwdyPX`sjO^E++wiCbH@rZt#E zWC65$^V<9Pf2_gvvO$srvCjIyw@uZ^y z9_?>`d>+GBmhM)I%*y5Y$rw3#Ves^gftm>`DmQOYC5rdgA~B zouPv;?`$~Pwr8R$)|2>TGiB^KoJ$BJ?4(?rD)WktgH~l3Y&vR(Q2zkT%DZYAj@V@5 zmbT)3zuOURfi^N;S!E}HzPR{CY|L)9_4mT+o|{Wi)LOo|l0Cc1usyv$Of4hT-5#f) zDK=9jT}H{oco}5gVp2FZBKTTSE=!)W(pT1s3b#^;cB7N14E|=$@J8+G=2Vo_WNK zdA}+N1N6jPn_UltW1e(JSy9rqXQ$$aRpkm7bd<6wYms{dz3qm1>FS}LYHFA&DXJqS zWJgOBBhZ7$!_%X>&yi_%mFjXV%ByhNOj9Vhz55>6dZz1VhW%edPBk8k&vK07G-YW_ zOCwExQsDA`Oh8E2hMEb)@TIX;HiCiMYWvA-W*wk2MDuRJ%>z{!*8Ekw@1 z0Od$0>OpG{+YJt7)IBBVI%L{pqBX#lW&odSfIrt0jN9-enl|*~DX-157-^`4=AuT} zfmGi8u_*jXY23q0^y{WHl1;JZn8!Roakvl6pj(f>z8Wnv;)v*6stRo@pz?~0)WhVp zMO!gdzjj3yH#kUY{<(D?*ug>dq)?*CQEnR2Lxz&Iup#^|j+mZU5M1T80)qOn4vdvSc zTAp@}VuQ{M3ol?U4Z!;0zv>>U@!On!4v(vOwr8z!*pRh5R#C>~LmQB-v^9@&Yz3jG z>Mp3!nWj%ROH(UEqIjc*n}i^C1l;30(n>L`gyAJ8!8iOjd{27O;a5;Tw$XXcwphyw ziSpI1d8sFm8{9@)gXwaLk;y(6eUk5OtmYR8dtDLj{n zRjFi*6hAiY!OtLZj&yQuAFkzkT)wYQR8%OJ`GpSVR6WBeA1$$FT^Z2yS$0tlcae1- zi%Mrulz_)owGc1M>P^%O@_v}-YBU%WmPgs6V`%8Z!>`5{#rH*K)7m4fwK^YEX(%E{ z6*GLcWy})R7W3j|-S=Q^?s3wOhL0MZDe)zeLs61u*>+c`LXSR>)G0@AUoE{y(Ek8@ zamCed5`Gmlep{6E`>ELnPc+dP`EG)yd1#Vc&=dxf|?jqQbW8P0WIrzvRj zyv6ee1iX&x^TRdU|}9FO_GdqKH7V83Q}*_qS{`nZBV&<@^mJw2s&L z)jYQQFFon z09ok?7c2FUw0CGLZ?~NI41alLZW^yCX!Bjo4uZb&aLr*=G0UIpch8P67 zdNp@4d5TnRP`9t`95o_#q2JOCIW%I~cJ1m-e;`a{RF5 z?>FZ^=`G7VamcRz;9KK2tWvr4msjyhoklRPT6m+nZSE;L$`M_=5djWvCOf^+8 zek!&~U&J%o=ZgWRjbe z8%G#C$`*%A3r421J)M7Bj>ElGM{>N|M#@ zW^ep9+kf8x0;;zxlGIBml(D-rbN#)rTbAV2TC>lTz?7M4F-`2|@>|;jvizLq^P0+v z_oT}eM(5pNN9zztBxx7l*vw%cyLu?yian(WZYOH8(8QbpgNQGt3-O^o%a z^IX=R)T(bBaw$zOyD(5EU|`-EoV{zxWEG8NwV8E+=4I;fYWZLsPbeY_xz-G`(Y=kbNF=aJxz47 ztWqxuyT$pyjbESAi0w_5YA&Mc80q6mzr*jllgw}@)Z8uq z0KO*(Uu0V|q)kuM-A5c$?=vZHo^6*(c*m(Hf%=>{xz4@II$f7mX}uv;R5NEAYOB?D zGc~yvz0W?Kv7T?AQRpm!yGH2g(APim>#It9{{W){!TVnceG{Z-n=qixvv}2M#GBMQ z-_829{{VbX$2|fIv^IfVL729CoQa<;19^?b%|o6|$?e|v#F1p9iYO_ffYZ||g+x#+ zpl|@U`QYy`G_rYrhZ|x@>~@a-0Bi)Lp^kE0{K%mK>c}ddSZa)RWB3~#t$tehtswz zmsUwNSa1wXxE*4P2225Xe9x;@}bb;HHV^f+DpM)5js?fO~(w4|OeS*Vg|4DmfAb zRaIOfD`lQJ0Gok+Nky2`re&xjqkW~QklHGDw>w;d#9qW91RLUL{3`TT zQK0%`th%M0m8PSHm7G=1KuFXs_iOgx4*2FPsa;dfd{X$X>vvhRy0My2)n>C&WirPh zmK39oLXe1<{{TTn-^GR8qDoeOc{sY1DCW6KO3hJc?*2>4hu;CEXbOr;cyi zoILtlp}EGctz5exqs_C7&EH_Aqzdo5&~5GeoJ?;Do)5Jzh>YcOT&e3aEj>=?m6hh7 zvYz`G@qBc>;r{@_&q_Q$Y3e+SO5_wZ`HFwyW|c83RL=gaNdn)X7`s{P6aE;uL^S$1 z{{Sg=a;E+Qyiq_BPyMDHcbsL+19`Feav2w%%Da#E!)vR25_JZg%KD4Lw^DS?Lj1%_ zkxW59`K@bXx-^zpP%oQh0>b$B_>9)FNRkjaRu{)L>ZHq?cf$Vw&;I~{`Qz#yf@zvc ziRg2jj;|!FUzSLkHl{Is)yIF-j2&of!>b(%DO=Eg5Zy`XwM-ZF$9-}y?MB_%ak5@=J*qOGQijPU*Oz3cw~Oll(2J}GoISJoVf z3WKP!HA+ggU02MEU^)^p7Y2r`A2A+AF~eR~OvXG~ifq$z=Aq9>=4BJdn)QRH{sXUf%xzOc~|+yDZHmIbLH#$s~heSrin1 zr+h*)Pp48|M;TP%0D^mmpjy2Z&Bp>_dsXau7~O-Q#hKIx{^~Au*klbxZDl7 z9D)uz8u(;_(#=wWEoWjM!(2Z=UF+O3%HUcEXt0C>RER!`TB#2 zQ{cbF#)k2K(F}{J`d)ac^EE}L&L}s7CS6z-?Hdd6?l0-iB;9^@mqkNR@-j;iQmm{y zkFGMtIHiw#WzT>2IFj`ZOmcf}JjI`y4xG-U%_!S1s-TjRwv4nAtcK(=@NdU^;Na8l zk^-PdC*{A_6MN!&;mU`@AB~M+7Eu2HhtZnWHq_Zdr9YJ%F75p2l#2)2=XJ;U{{VO~ zm{ds@lt4e?2iG4)^j&Msrc;yoE*YEDH1Wrg?dkF#R8h?hI2LIipPUPkf+|!3ZNZzKoB7uv; z8eYLiCjsRKk75$adjZwrW#_B@(Yv(t&JhO zMt)L#jxo(V`Z(ecuqBO;+St*T)P$AVp{%{an}hep%9*377c9(x+z$LN0Lrx0 z7M06k%W{cjWCHTJCv>lF=KY7;8uZSNqR6Qtib&JWy~_o*2`kXkLDD_=@`VrDaIz$#*=27v$kaC3EO%di&SCZ?CkiABP^MRb&x#%OR^;$g=8J zk_w#X)-hKwV6yEzfn_6$-oWB6>nK~LxtYn2gk2M7of|D(B>oEYK6SOm_@tf7M83d?_{PaRYUpL96<_;8-7A45 z<|yh*7GK?My8hr|@w6|(yRZFWr;cpn{$1(*RVpn*C3atFn{c=RtPeiC;nt}5F3XqY z^243G%UK%k^J!yK6Q6Jh{{UQ74VB3!G;`UKb)zxr22VDirtsU+tq+sIHQt4zz0_jP^FIsPpP(HK=*Nl<3Vcd@+ulEhGsEWRx2oEmg8_#a0%KzU^|N( zS+`5R6s^A#s+eL)zGKNQ_(S(tTG!(Tz_wMKhg zr!sk(wkkTRfN3I?m4`m%!<%Vn`lC}LLqf?f(F#7@b3&it4S@sAG=A5a-wJjGC-zaE&@iu@e+ULhK4vcx(FLM6)#3VhY&U z4?sTH-YBP-7Bd)u?o?dk>N*qny{S}_#7J8|<{tROzKxq09;suD?P(cVhkJ2_&XgjS zvn*Bs#26At=k^##=E5YXi2)>_Ad}k)O)XRS+|MM)spDs@sHjMyAYSC21|+*9I5df8 zpXS*HkzfquQD(u~{}|x#d+%hC)nbN`i07o7>xr647*nQpqTarkXTX z7gDEj$6FdV;XBk^_dsVE&T6?HS)Qb2scFSF=_a_pAd$`+-kLsm+ZvbDFD%Q8?c*J9?ibR$xR&%YSd@t&H^A2fKJefrtBYBX-+ld^Fzwe8s@PpBP zZPR{<^*h9mRCP{aq&HC&rlKg<|~RgN}cV|ErR%M->gf=>qh9nc*T*BQ=n zpz`d)Gsvl}N|msyqsmu~J$bitiaq$x_4hE!x@qC(qPiI)%5)VaBzcZ-@km$B%nFUM z7}P3kPEEF+NFedc$2F1deH7$PbQx;8%<@X@4Xo-i=whIlK~gNin#RN*dsyHnTa{(b zV3wjOBWYO@y;Q23Cxc9!zDWR)j`iJQc);9-vTEvo zJl>jB7Ag(+!B0`BOC-bmDJXX zNaYef*8!Pi9E@;0AX~Q59q~=%7TBgL7_I^vBWWv5H-u zWU%NwTY{sapnj0$2p%OJTSGdd?GAyinAw1gcVZk*)@cQtQ-ZFez>28;2F)`_u zo<-CewF(yVsS$t>ci_nEsk@K?>~Y=%S!P?MwDwV@^v+vFmSwciMMFbJ3IvLp6i}*) zqw=Uw0LA(|4=a3djGD~*5=*u>nvXK8&nr$*mBA#F$q4fuR25P5=ME;9($skcByq#% z8A^@ejs9zM#tt$(tuo3qgd(iO?s5hB`{3*-2Z3*UW3z)r{^oM0m%qT-r+gZ9Kdt=|$TFyEwGOP)a!B38r z@@UJZoMN&`aL0%cM&bE=@u?^Nm#%qzZkw)jMicRCd6E0 zEr-yIdJiBK1N6t-+>U;n;P(E&!J`0fJe((W7DbY3yq7c6T7xg9%yOE@TAp|&K+7U9 zu@*Q|kXfyKX_f_NNeCp5t`xB;Dt!`DXAPeeKLK@K4*H)_tF&fUQzu9>i6ojCc8gO? z=l=iyIz2(fe}arg}Xdr`(S{ zp*cw_$(U1uTq{@|-rl%gbX!GbeM|Ah;UlFP?2@KOsCBMeLhO?=6;S){aoGI0K_nAX zx<1t|zxywQHmcVegQc3+roCv>6`6$wpwjupE^kjgJ8hOXg~J_(uq195vG0z4srz`P zKI{Jg%Q_lloT}>2)SUoT0AoBy9|_(jI&b3Rp#3}Rw@dT7EbC8abP>-YMC7#vR?+8E zN~{Ack-gN00^-ftfigT0$D0qfJx+&Hk2Wae#O^H~KRy{kPBQHYeAghTt*U~qk2b2y zN)TCN?Ee69gUXm=nwDyLM&)?QF&?0cU_+mnBH|!;?eROH{2zEz>qlOCiJvAzm1P+; z=|sySB=uQ@s$-^toH4V^^0Ea^(m?Id;{jNm`Hqu{c{O)zYdS4N~BJ$cG1sZEi z@)*?mD6W_e{{U=c^fAK#bn`XPkdBdYPQa z?8I?ud;=k# zI2D=UVs_Y@a&fX6$daZ>RH~)y6xdsi_-*2M;it6CGS6QuzlDQq1rhUW^T5P$@hjFIm3Um%x?iT1Iyzlxoy!Wz zpH|5`7Njj}h{g7n=hM^cjTmrSDan(L3n}=2bz3FVUMlp?q1Rasf0^VCe+0uRhs_*J014?TT&iUDO>Z z(2o$k4eR9$sYTKZ#-U-&(zf#msU=dff&nZWVKz24KKQbahzE#%gm|&){{TldKTJku zojTKQ**Gf(#+s12$Yg~c#@{B}FbD68vNss;WKd5clR5n9hft!*ej?pH)cr!p;nf;) zlTgyhQIb?RRj!Ol{{V(fk2bOW20L1;_>FY0QED3epC#$;sL}a;TDv8v&Xposf(?L< z&Pn$kmbN%?&GoiVs{SY%M=;a52+6c88m^j>lAYi&wDBtsnm|bm#^;;%wmMnsJao^j z^DUJARVb3^sNZsH2i95U1`+Lg;D9fJDcU&aiOS= zzO|v)k~>*Kp}8)g{KvKI0QynajlAD9eL(sPrV9pNnriqOnKL@*JjO*f-qA<(y}7-+ z+um*Xu&vV?XG{2SuGD$m2AIjKwJOrqS5(d9$4^ec-I`D6QDgIW2NmJtf2sLV>wo;| z(JZp3JL#63M$2^8VLM49RUM;sN6rTCn)V&o3-&k1L((%|K1_P8B2rAd?}I*b;nSf0 z1@$cbXw38;n9s5-`l1ZyG|mJbZDJdFN}Gq6=a&IO?mm~rr|8cWo&xoqQb(ow#n2gJ zXs#*ht0|~wVQ-l2m?L)e7sn^w06JUYyQun8Salc0bzZiv&u6IL2x{4B=?G@zouq9% zTfeVtP0aV9pAY4wbQ)_h$mr!Is52^T;%VMdZ_Hw6W#_je7&73Lr*>I!k7b8+S6SxW zb;^8oXgx2QzM$!aHe}FgxTxwDvW|{7jkl~7DnFPQscY_QcD;rvD>=yD@#!f@s-_G^CLyF z{1gv+pUaBr)3s7ZLr!NC%RHpJG^Cbdc{e}%KKSXuB??A3!ld7UQw1z3PTMM+P7k5u z0A#F|o^(LU?oT)FKhp<_zC{f~G;yP{{I?yjS4l-Er*^1#nN7(mI}Aj*M*0L6Qt`7h zdBops?hYg#wbQ*f>rX@5r+NNKE?1t&JkeGaU0iw+Z`;s<1+g2Togl1MAj=Aig|~b- zt(#N|1=&#R2>{!k2e;D;%4m|0*}KArgf5PFbCXu;%F=={c; zoB4ioJ;%N8{jdqNhM_D8>IRr1);6eCTm3PDX}sPFu}s?k08XU7uG1)0{RbFoLr7NC z{{YB&O)Oh|#)P}MWVOG~Y&gj=oV5Vjw!@cHl!Aoh(kuj9ad6D+W=%jCf^Zhgr( zIIgJEOscVHO7>3MBx0lO$9xmPkY#jH55)Brju$6`v>txR<46(!1N|7Nq2=Q_C_5T2DL9wK~8Kl&- z_q}Xjq9XB8Cf|jAu%913VL^RGgVA1wJV0pnK z<@#}+K_5~IIuDjrjIGz~d!M!%K++d-YK)~%mU=~|C{@oYesbsO?Tlxj$g?<>Iywk) z9La{ziY|crTm5jBgHF-bO&U?_m&_}N%ol#uasL36p8o)BZK;~8FRN-g^^iX8%PO82 zdyjk#0!zV`S*WueHJLO|Dw>$y(#K*{k5h-*i#DRo;Yn$xB^#Rsq{@B^3 zwUk+WQDxQB0}|LK=HfAaz+ru-bp~0e0P<%7MI6R>VlBzG5t_$DQPwn-`FgB%QQR=K z{L%Kn0*6xRicI32Yw7AE3|HilY*tJE0InJ89Lldu=4$LJVycYoV55g$p}q~WT}>`e z40&AUN2M>dSJe;e>4l|6Uqz|%=9Y~Jbz&5eyOI8w06nJ9DD@0mp(`R33h}tPJa)Da z8SX<@r1+fPZ?U=4^*@R&zFpMeZWrI_g)&k_Dj4KdXu#!27H_5i>pd|xNKR{!(LB`A zfYQc{2~q9`whOYX;cDp-V^)NdxQRI?{@5&gP<%7h(Xp*ebd1y{O|lhG;Z*$zAKMIf zUwk3w-Y8B%n&@25D$FB=8N9S`tf2Gid9nR*ASkHdsdq`^YKYl(JZ=FSaFuFI*Fow? zb6qW(=Csg;ywJxXP*Ctz-K~j6ZF0L8w!DTNKJe~(XVd(vN$NU^dhFH+_PMf+ymFQX z-S31Zs?joKa=k`VO6y1f-UmBzA&#pVswd&knC-Uv$z!|NpL_$BDHzL7SsZcm*mH1j zDL*3i*MXJMdbmeBWx9r%EYhE7@`RCqeXM^>D)apvm1??ls>`z2a;Z@6SBXNF`f=X` znx8`&S?A1hsP@7>W*6q(;A38o*OfH22QRIfIVpnJi5F=fVToJpD~b^EM^%znPe)%H z7Z$r4f0i7ms6_BA;ITrBW9Zi%@N26y{VuMjF9k$&vwmo#3J88U2euh@uGhIWG0SGl zvkIut>|ZV-z>i>Tc*NrDgBP*VS7uqJSEcegI;z~`FsVv9I3hytB&=)z0_WEqBKT(b zQ}pLR^!Fmv-C)ZrvyFRLs`8^xWr2vjlHI_)y-odb%uY$Ix{af?Mn$YN!)IC>I-;3o zgD{8?^v&wwm~d_F&MxDwz9BqKYmSq2*Hr0_ziVuRJ*3OxiE848IOKF-H#q<(B$4gd z;>bo@l15!ZR9Oap;SjbkQ}k5xI22WxjOLmd7~jkhvpNDh z@CG(@JEVOi(Gk^FX}Pof!kOaR3)aXj44&XBt^WW}MlQKmCS?Rm-mv7lYpGpXlR)@a z%X7_jlftLWs)_?7Y5^ZIwSg)1Hov9t#_DdKWf~7YrpY>$oz&^b(x63MFP09$#r9tJ zZ>K+Ob=7W?d=OpA8(3OVMPt-E7n8EK7EL&Ss{Rx%|YJ zR0RD1{qZC;HjeN;)q^Cu6IM`aoU$fld7(R^Hnr5Yz^2#566#+Dv+JCjKh83(A697S zA~V4liMLL`eo!xV$3?#hE}YP>!^7~omPQvghdRw;c&Z@_w%Y;p`~7jJHnn1kec4Vd z8{Yv2m+9|<+}}D)J)<=ajLr2Qo+*}zrH{;(YwZ!L8y0K(1BI_rye#-^>BVIRuIko9 zlTlS%OC2&c_1G=L1UJ9l-+WSkihhpi%?;JcI*y;ut8!fOY}8gfd3|G{-@FxQ$Ty7N zvvX`%M~cb+0OY?68cQ(E^NiO#*LCIvsukIpt(`8TV>wLSe9|v1Rt2=qECXpmKtNhrg4%kM+R41nv%U{lqb(9+JFZ3+hQ&0d|#-3+;>It zQG*`&RJsOdz9ar0-8jxE^nR-RK1rXggwUL-X-o$H0Q+&!5CG>BN2dDMq4_NwdXJ_x zx*B?Cr&*z_nx$fdBMX8F7eA&bC&w0_rpP*tt}^_OC|u(*lnAB^2xcXX$y00JoG$gp zhYY7o_-oKQi&90HQRk9n=_HUSF*fG;hTspNKEo5n+>&jOloVNQx})L|(+V9;oM?@6 z)DI8T^mM2{?<<&H?070bEzj8ggApUE{yh8%^yek3&8an(m)Du?OBI7H$sqhmk&kwF z+7&yFNxmq(bc7j>beRU3(8tZh`%vUmG1Meh zNF}G=7;-sahl`7SMlXu48zU}IS*|t5Q9NSnbxw_RZ&J^v=|L_LOp2-rySx5X7WBC| z1=F2hn0Q6%dh49yqxD&)bw?RVsAh!5vRqiOdlH{;e@t}k@Vx2vUz>PBHIzAOLsdta z*H9#hOt6_^LJ#x-xZRE*kBt8S3-sBBVOgA|EQ>7F433~#zw;1#{jZGpwb7im8l|Oi zhVQaBX`hT=NGX+{RCsC5FX?vNY;k{o z2)y2=v%sE^(>aX->cyaLMsIvVftF#_>Rh>Bh0KFz(mw@!WujX&qFVCZ5KI{HIQA!?71O#d&;9I(HtZ%(EQP1y$O>f5k04C5Gr1@`8d@xCv<}t69m38^QlWsY*Vh3P7 zzF~YtUW#fwlclj#)lg|{zdzQQnew8jlrub0xAY+F3Fn*>>MokqXF0ZUozrE*F7uvA zC4mqw!g(X_d|xQ8nVrYUDSAuN&lO)5TCGLZZC$EzEgRE3x~$UW*sqpET>TN8NQ`Ba(k(lA0o-MoFScw#O{{Y^4qDQc8|+qSu3k4)mlhNCddOVw|$A@5yoExYYtnT%b1#q%+4qtMWm9L zDOq;hZdd%)?PK2-SMVQvpE2mSTRL4AOX>3b=PlGzO`2z6BTvP&ib6xQ0K~_!>^TY; z+TF0VTA1U8=!*`W&UD82tKK~_euTtmvwDqFo@$XPg{kDHZHO&@oR9$bW^G{ zZLK^v>8)pzQO8?TTMTa_stF8ovI4*`Bydk}OfcURUW4SiYeeVTt5B^SC2F~fiVy3l z+;}AS1Gv65bgM@+UInymNQR!x33WoDih{@2*B0pVDaA>7D$j>!WmNSOH>}JnWC5fw zD_wy$+<)5)rDcA{EM!>Ja7V5kuB>gO%q2)90EXwEOfc0Y=8;$j9CF8;PcliGF+L2Z zlW=(wRXc_G?%(Z#8QqI*K6^3badCgP4?hm1mv?94!v6s4gx;ZAh^XD6WD2$|e{4oB z_$(&xN_;D4+QUYTQ<+oEPImc`hc*nBz3ec}^&d~t=?1B!sS5%ke=LP0H`D2hcJQ~T zQ&4zs)725grqoXg+QhceYm$FlRIiArD(24fl$5i1Q&=ASU(??mIN?qfa$%lNB{#tE zXdejK=6Rv1b){`g>}QY9iVFY?WM9ym{*Aj|bb|6-BS}%%?#08!pybmq^L1vW&AZ6;G7SA&x1) zYuU&I?ZSAY?e0iW&n@jXN^XkyA=cWzLcdUTRWz9mB~aZ%1f=hHt#In2kWaH=km{C* zhd|a#mDA5xB(cAiOP|g?{)g#~k@7udr?sa*v{t)ZoA?G{o8<9T(dACzo{|DM7QdkN zw`+FA0eF+CqN~;U-6b@G%=5Rt_O`?92kV0r6tUe0y7$ozYGM*B&rr{BK5eJC`r)On zWnDuw$$Jn5$m4I@-wx(vB#g>}FzeZgJh#|ksj7xb9Yj^PxCy)FAKM)Cb<|QE-7-sN zR69_%_ZB_Bae_X)WYAH&MzJZWnFN=<=I!3zg9h4mvQ6+!50_6;r+TxW^ujZ(bh(ao z_-NTNTKF>DOXNm4=^99-byV68(|i-jltl8Cc$zcYe`AGp5sDEc zY=uA;KWu2Lg@ZGsj?po=xV^FFPRv&Z8D#`e!jP*oAh{)n=D@k~#eXo3j4!|(oN0or zC5OnYMTu@Nfr(nCVuiN2?rsk6+W{&trOC}bznaPFEo&TQPm@36Y3davO{a1BZXfJ@ zFl!cIu$7Iab#6#&Uc=i8460gL>_WuM-!XPJu)qShN@T)1lTghecN=WOi+9A&>Go3{ zJQ3BjC=@NPZcZaUm4TjmIO*XPCCE{*Zr%D~!Lkh;GMtAmj;)jNazrH9M<_nS0Pl($ z{PMo22`M3+;UpXE;Mn>bVG3zg2v%0O?{VJ?+~$=jD&>s2haB$W=k)J{_@_#jXrp;h zp6myv0SYdjQPfms@uWU%J5S6#KlQ}Z$+G_d;nBf7(fP%GV7ImYrxB|lr>3G1O-Cbc zK&(g~n~vuWttMexm_`kCS&kJw!8bo~fC)pD^^Tr`pYW0_l)Fyb#serH=YyB(ob|-{ z4AMX^wSYYRf$nh5=?ynen+B<-wDAMUaz^9!!{d>3_s^@PlBS*BJ;KPHu{CdkGD@s+ zG`?{1&@FuNRV0!x0H)HT+>Y4CGtK2{h~t6D`L0<109Wbhhem9Ymm$c*)KbL2CG5l# zx7c3|R9QgGs^y-NU&F(4z!mNE#ib*)kn5DosUnG@m1MUq-wuXTuT5Mhd{=TlQb#|o z7<{`UXrjFCto?uj_rmIc2qCt@jo4d^P7GU6^5vPpos5s=-o)}d;M@4emfP5|Zo`~3 zw6!0HRk@I!ECBSuq*aC4S8z8r7d(tum?Sz>)biJDX&puGd*0&*@j$S}3umHcy{{RQDn<_P~4e_GBpvxM^8yj{c;F^MxS?1Ve zDwgl`!R2C7(o%$C75xe400iH~UoTdTWCQ{0+X>I(*_LZoV6ciIn18HlXlx=4Uqt^rE)YnEa&9K_Q+T$9gpp9cvScgBi?SL%^ zSjZ8n{VjkGS2wJlMUrZQ5PB%J@OCqJ)l@_Q9=u=$9$xh-tYRT8-`@ji>8NR^-&&T8 z@!rucW&6S_1OYp?Hrwly@+hvrm{Q|@^xg#AWTDk$Qil#W^?!iU94}28OEHwWBD3GI%*9P7!adv7=F-;2Z zS-i)$atA-{jg1XOB9R@+0bfF@zG$mTmt_nExwaEh z(nk|9r;26=Fka6;-wt?&m+kv*AJ{{Y?QMNmNpYj+^x z4t38l&+@G|o>#;qk(M?B%YDM#@iz5VT|6*PEjxuE6N=>V8=2}jG`6P|RhuXUGmz-^ z+SdO7EDQNZ{FLYZ42sx3F#H>AxLk`tJsn1oIULZ|ER?}-hpx`~tZ6ECQTG0^!Y zRbIo)TBLM$X8!;Xy5IZa1N3ULiOnrOVrd#GfXuBTjnW@|-ne(_x_d2lbp>usswyZa zk;0@8F6*E0sRUSkG3+s}5#}T~52rOdz_s}uBo*kRYY0dzKs|ut2GI2fJfVVIr%_}T z8C4$5k{Nk)KK}qUt$)`GEiaa99WzGI*NSrzo1i`I_5+*{>-}A*YweNO(9*?2C7EUj zAI)2G1^Z&!;8Zs~O6zT2j?#6RH3pof)-(n!>{RV)Wg~{YtUy1nwmGfw^QtLz_NK@y z<)f#|V|a=KPMpd|_{rz>`s1fLI$v3t>5SVs%5sFvRyuOxC==(H+mHtw0e;x#_u_Ar zX}vd@WLeIeRmlGU5M-pPM@`;D#ctmr?fVR7$s3`?(Nt8KOu3V#94@HkiEEo$-Tt_= z4*;68Q0We<=~kkep{Ui?G-%Sy6dQINez>O0pF7NQ%+@D{zE~vl1Y{mVE$nZ6bm#Ea z=sh;1s?#~V@Y2a^NDA`vUfuaN1D@E+sftS3qA9n**7t|(`lC~5$}GaVV=ZxscbBkx zSX%gymkS#1Jb-L*4tj51ni9S&wvwIW%H<0gKsbznYm7{20#wjNFDgo2#~f)i-J`dT z_Nyyn$JEOwL-l<*l_LxShGSp}YvPG0iTo@IMb6Q4V{hLVd+`corRb)hW+be&D7GiD z2NaJ&;#eUnro(ux&QvoD?ZyO7K5R912ubA&Xsm z8yrUXpby}iUl_8}m>h8={c1dz@x-8PP!!C{R1v{{Y() zir@#EFOr1{yw48MFY_MXY%j9CN03H~9FDdJvm1Wn5n@cvpf2T@-rlQzFbaI~sS%>R z&!HR~Mp*b7ENe+??I%YxQLbyGk|E2-Q&5ra`g7Y8(?RE2FH+<}dVIG>2P!|AERjgF zaot&gzv+%h{6S`wQ)GFoG?h^ZV`&(pk#X#CMOmj)dYP!RY}5F6RQ0_!T(goWBFv_W zH~=;PDwSVPYvV?fK|H+1R8_0Ypp~mXOZw`q6_m>*B$RzVjNh2jXcdU}+JD;`a@^}r zJ6kBC()BVA%!@oDVEbRU*B_hqm(I1^^>M`ANY@K9*$mB@O2#j8F5KcrW%_?w)QIDY zsk+)mWclTiz3%*d4mLkb%9ZXjd-3`^uW030_P!MNtboBc6LzwtEm1E(63z|LdW`k%*TJwwykzFA8g z)HO{C=QNX41T^(X2ooZcy$J-N91sZy(nd}gl8-FqAf*ir*e9Lg#_>`$Ru(I`T+n1LHfSz zKfWcuL$t*O7Hvxto&wBKa%{{RBwwC1>~)4e^^8SM%~A|_tN{K0c7 z1?&aKIG_ycUaqCqwK=reg;rNAnUg!1iHs`l=kg8(xVAbQ(tRq;wQo!F_%!rcO-VFH zIO*yte34T2JS%z(bB&y7yz@)z?MtS04ob9Hoi%i+G!d|u$!*7#Zp069jPs4jhM%N$ zN#KV-$-2#?4nv7Ctvu( znN(CoOom#8R4cTe2^{*IRnLUaiRPT}si%`mbyq9Qv&vdxsS&3@t>vD0Cc@(qld4}B zp9397&vcHm%5`3-pv|)NXl136jZl)qo3+Z2K7?b+WqCc`6FcyX7CLW`^D6jx(PXrc zLrq(gO)x-Ak`uW7Eqi}_OOBLyZK%>Q!o}&OrBw*ggi^my0QdLAGs^xhei18zQp>EO z%4!I(lC>n;_uK`K?}aTt#w)@Wiy`w3YBP+e$!DI1RdNTZ^7$wC2ODzc%;R*-P{#}G zT>MbFXF*Nj!%gPRN+~03_L`n)Hh}FO>#CD$+jc6`Pk1e@mP%bmTUA+=QL?Oy6&*ol zs8i@kJX~TM9-3MAJ&4%$!(V00Bqa8oe@8+ww+zb~U+e=w`JZi_!WWGi<()R!c)2 z42?WBGno}m-a_v0iiguWo2T^o-gTAgjMAc#rRttYAc`h$l#^h@FC2E~9W8Z_JkUKg z()#92Q_^ieu5=A`KK7LtZCXgl-aDHc1AYh~`s196euZegWvcVdOViCknC00isxJcO zTT7zz!8ah=fsKx7lwrjo=8GlDs3}&XE{TyPP{G(8%(l3=Cy(0(`7Tb`w9f|Zr~o9e z?s2xFdP;a{GE}UBy0R2lNVe?oUf^Kkok@2>W7q z@wq+mGCe2J`lg1eihQwas2yxRPSRhvKSPVy@cW)?IP&;1{MD)^gUcJ@a7v5u z#s2`)2yF|}T@9kL*t0!SGVH#N6#3<prdKde=~9nyXY-XLULo?5zF0MpoGE?I8q+or(a5^0D*trHEFKyEwU{`{_z8$UWr^e0p4b2z4r1`h9^&cqZTpX|6B)i~ zPc2-r&E*5T=4Ko)!j``#TI3B2#}nUpJ@*TLY$ek#rmc=_zO)K@tJ*0DzduXh0A@j? zGF?M0TFX+9PP<+>qXO&*@7o?`{Wi)eWo@~Zc9MblQc@P@-;5(>mpam!$w?$Jv|t$B zQHPqI#9r6K@1}JIQLQ10H)Mk~3$c)b8c*Mh5|b4nw9;C)S@c^yr_VHxQZ*)!t_nnK zl~<=>-qNF8S$>2ZF1p`Qk$BCk$+eEQ(z;1?MqNNCYO{Qp1(P)wAIz8$%L^M=*lyqq zHr;vYUaHhOdQ*|pO;E7yGDeHKO}@4tPo_8cWa)mT(@9xfo>1l)eKVm1OvM2Qx5#_; z`u*`Xmd)46RG&3M9Xug)fvPuD4C0S-qyF*4|ZusEi~@YuIR38-R?fv4NS=F(S#)}-`^B_()%W{M3i|qjlFlLG{#BO zOy{NDG1uB=j+E2IE@w{v0El%Y-+OLl^*)0Y=hRORJ|8-dsBFxgV$`^Y$2ldYi*+IekuLK}nqE4KxLmO67L9-EGD%%TnpQ)_k&dj+Na= zuu?xS_rxdEy)~(pvol%g>XKGtciX`}+>cy!G@6W$vo>r{t3@E@83t#R*UL*N^J7OV z<|w%158jK=16OG*+DO%fTCUPv$O&=Y-%LJTN9b;4NmwU_lA&F%Wb%tx55K9vJsp#0 zdS05cmai+TXlEN)O7{DVbzJRm&Suwi(FiJZZlCIi2L2mX6c88$B#c=;TU(ng3mSS1%4q>2=>fOUTHWx3)EOqMtrI%w-1aF5EF18x zbNh~QWE)~+8KBa6{%mB2FQBQYoD+D*3~lT%JoNWj!r^4eD%HJ1Dcpbe97!CnOY1sn zq|7O@tihcdgXA%0Vts(`hh?+PWdg@hRibmWsEsyBD^oD@ZSG3(^u@A^O2UXeOViC| zJE9DNvYi~;e1NKhgKW=DRcY+1NwY}*01a5fXh$HMd*WBt>wQFoQ^}@t8D${1ma!5* zJ&6|WhFe)t>#bDe&!w|zX-D`eSR321;}xkO+Q``Ta=OTaVP4#OU~Ws8$(B{5(d{b3 zYbh5N_O=$!(>+jNkZOw<-1a;@EBF=_av~XBmE5Q(F+=I-&me!>6OO-9w^k1f?FO zj7B$6*--j={jY~hN9%1tO;uSvL`x+cz<|;?1|!b^``g#)isdQ=5)bAX9%qu(wGL}a z^plS2eLwbF2e}rI&2o=`V2iKQa?8z>D!kB|paHV>vHd~h2?5_Ef3$bv=7GZi-En46w`J@L2x$91hd%Npg67uNBnUYg1QcOPIMrBUL3zefT8dovGDY>o<3;sh2T$8O@`PG7x&$Fc^xH zXc`+mYoWCUK}%0joMrP+ousIH9pm4OHVB2REG|bk#G=&|`rlV%6xmtID=I0Y7Tghu zMfSNEY?G#%gl%V_omAVA3zq$@-xE?^SZsa<@|Km9lA)20w>QG$CZ^&&{!td^apwwJ zUYcr(ov~%vHf2=SB-#cSA4`lba?Y1(T1lc>yqhwoB|*QGSX=A`@Ht29lE)%TcxM?s zHmB3@W;ArwR5JpS2fep{wmQ4;HQ^g1>aJsy=Gk=}G0JIC#E8y>6aws2Sd-uF{{U7w zM(N(1&oWHbidwoRj*2w`KP(%u`mL@nj+TBLo+x!To~fwO!!V=L=`;;bOH(XIbQ_at z`Gu@G^*GI&Gf=p?AuLV4OHVof0D+B7sB=z<*6F=JTUA9X<#ic@<*KPoIN+(Ag(1GS zBNc<<`@yXK7^~@ZMvv3g75z8NWs&HmhEY&ic9$TaUMxA?ds`EWA^36TFgA0XQ*|b) zIWtMkZA6hjn6on-+l|L3lga0k&KOS|-9xLR>DHI%+#O!h`L1cFYYb53%<;WLQ@lk9 zYXL>B~sWarlP5bE@BW2t!~#_~&nI>nNb!nhH#$AHu?v z(Xiks1B?xZcbN~DD~@f>6SLPDj7VadAR5EuH~QZP`DADTb`k&$&Bys-AkZzTYL+t6 zC@FpqsQTctYH$)&SMuWni;nnG%mq?Q1WhD%gLB=)IKExyj^8I+{5xqG?n=Yt6Z1X_7cJQQOJ(%hUBnK#>^XhW~Y*kX=3;W>fR_FBzQkf=O zAD@`Y)<6y0Y2(w37UkJU(_~3j1LhN_azQb#u>E~-0hI<_9!y#4wl!>m{QTQKmiNG_ zio;BXd6c_fkG2F-LX6ENLy1WoZsy->;V+$4%bDh|&jbo!rDS1wzYhT8=zA>SzX0{{h?4o69vSFU-SDf|pvtak^^KVyYnWmzt9Dim3v zpd3Vk_ORo&3Ow4}!Q4tArpxWNBp~j$rTwr)m}Z1jCS8?Q7pNx1SGf8QYyb(*bIE8# z8C3--sjYLdRSn2LY#(HFl-f;NzOkdM)Dw_e=W#_ofO>uKTb5DHks0bMgGrc5x8B^4 zJ+N1p)I|h}9!u0QCxgp<&o}@g)Vb?X48p##gz|c6G3wIx;0_c99YMo~^nx8nx z>g39n%?u2zzGrK2c_RzW9n-waQPehPn>|XvNb(~l`Rgv2f|V+t%YZR1I4dRXaodaYd`=OR-pKYwQm#q1nS}JrC@Wz8A0&2B8IHwQ&{*L5 zSWK{oTQIf#?~NTb&U0?5^jkz~?OR7mHDS4~og>&}Ut&J^Sd6ln;t|rJSqIElzTu3r zO*WX*wPFNQNd%uLu)T@3?~RR0N~;~r_qQv?6giC@O(YT-A(SuvQGeSSDJS#OY)V)W zU|fy~`e72TEJo%v6;J;FbY>M1gU$H4!3;SyRPwqtG^%0D&2g&G>bgdGiRP} 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

    |^wYTPSQmz`4n8Hi_tG5eLQus=MbVh+BdMOE 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

    -73_>5i_A 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 z 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%0AgTuQ{zX{zKiw8O!Pm&_fIkr(>e-~L!Rffxjeu3 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�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%0D$q& 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

    es2-;clF6sazp%k@@Oruuo+{-D?N z`jIA$rkbI4N41;tm=7#1&mP#c+E0YfhMh;CXtfVSd|zu!mol1}UP-5TDyb{R+c}On zj81{M;hC-K4kIT8vtr9cAU;TOd!5}6frABLz{>0>kR zJJ^o@09*^9dT8?{dE>Y@_3w=I;G}G#x>;pZm5E6AFZB#%lz~-RU`W_Xh7*jf^AykgRZF~xfjMiju ztS}V$k0Eczz5+oGU!FvnjXT2_EKbI-zXyyRY6^&&o@J#5DOBxdBFFZ@Mo&RZ`JFUz zN*iRhAdXmi;P+9iPggKvN*iq!z0Lpu!t#FxPbJv6TilEK;69t2C49!FL`$ax_aA&3 z!iaKec1nLNsXsmWaqL$J{JIy8x}fcL45aO~z#iXR01B0u=TJd--F)jas{UbrQ-#%b zpUdiuY_V-c9PI<sS{Q3i|j zEA98f6I8wAnsromODQ;C)_xukr5RD!f$mNlZ9ynCH86>s762QqiT?mh04ein7Q0T+ zD}xI%CBXI`zuOsQ5>iK%Ix|HaiccP_F{ZjP{3@9@Y-NRPo{h!;Erw9Q1zLr;W*ppL z1MN8_QKQb%6c2PZ7P(&d57XLUWz6JK+tdKfdvJN}fqHI6T5QrvRr5)Yn+`AQjXHKl z%Vezxo0Z2S*8m!I4qqN-Wq%|WiH+obLyurR@DC)?lz)X2$rFj5;1UO~t+1r1s1nlD z8?bT-Aojq$FtSOLCjEwB=bv$a0-F4YQDyVAZ#T%K{O7;eV^)ulx8nw(%)<+@+lfBdf3PETW}|jPrd*&7~UBkPn{y)>Ur;l7HY*x*gB@rMaKt> zC+cdTY2gmCNV~u{Yux>?sLdT^D+#fUR?UBG00+p4i!ZOJsHk263mF!-*Xw|~aTaXR zr4E3`rMWl*1dTm3;wJuBBmsX+Wu_-|uc@9TW+4b5bAE7`3T;J{(B{a&gpn0IxMB1C zIm1)@Gc?k9u&&8!WH7k}qc$79gdg+6$x|ath|dv@KT=xP{V)nl<1Wbrm6f#gtbuF< zq!7pMdtx!+0Ia5}Y{xF9tx7kBH&D#GFK>IC6jVi)&F3JeEP)E`W#Zp#0?E8hbh|ar za{UiG!jZKQv>JCjhcck2 zNFrAPSfW6x>FO}4ukk6;EdKyGZ5JkBv^mnqVJgzAY(MpJ+YH@Sr=^=wCPiCYOGQ-S zwii1=^yK0;X@3b_WTxsIS?mz$@sw58H0@Z`D`i6aue6)~*tR&+?}9E!o;sVR(PnT| z7=$vRUGYhC^8@NF#t6D|lxhr(rl6~H1+=sP%49l2+xqN*wBoGR)Bu zIhLA0THsic2XEHcQ)vT{irU(Y(zZGpb%%R3Lx2GF#cDh>J{S_A;#EU9kqNz;*B@YT z%w~x^x%^CzU}Olq-;3f?$xo&8$|{G*vpQVXA^D6=xm5iiOnI@4?5-dBL zkFdmj>LfXymakmfEQVKue)dsslzWUg5sJPC>bjbvG0Ww^H1q(U<27ro9jY~18V{{S!0_ZX6mkel!nR9DuZ4GJy0n}4J^qniU|0kb+0okMqOxHcu1CK|VuTI}xOY!S+`+zS>1ztYD5l4V6vG;Opm1RIar z8yCr)RTZX*`5>vah7v#@*5ouj{r;4@hHs(ZEn0JbA%Qo3+tSA4z`OIr!w6p;%U z&wJcrLs5U-Lbskxjf(?fOW1h?F*^t^)6Pk&}v#{^VVqGG<6H;%ji#T4>%ds zj)KpaQp=m=vWhCiUE)Z{`H1a*U+;l^8|vO&n7toLI>99}NFp%N)XTYLcE1Ymf2Rlh z@S_#~0AY*$F|R4Q`#~0!&Z+X~b-ZzyazN}4Oya~pHAmle2mf0Oiij+`dAP-KeilxoAnNZ zu6lL4d8i%?r>Jy_${L}?>W^a9C%^qY@f9SHcme0#GSQuR(_Uv`VX`u8B;i{ZWLw^lO^Asuf?x}=GnWm}9{eB=hSU4q`g-<}%(089kx zheqn@&R?wbH6>Kw;PXA{qmZ?xGh zTUnh?a-die0q=!mJ}0~`mRYl0@2Hs`XB!2c3TV*zN7Sh*Z}+|x{XFV_PWsc7QFPy_ zIYl0s*VKqso}!{N3sxTEWA{H*IKsQ48b2znm340Fy*r>ATV(pau8MhP z&vN;mnrKiX28(C{E2BwVDd5Of~ zqBl0@fr_2+Gw~AAy3?tdUaaX~hize%>MB=RnyNrc$s(W4^2P!0!36&RrXkmjuZq`R zyk2O`gQT5A=*<>Ukz}<(qLM)bpNf!$+j8s$+TOM!-`^am`gTm2qblJYd=spHQW~FVD#@43!G*hm62yIQ=XBpub-O0c=`%WBhim-Kra4r=KZ8^`X8!;PP=lYY zJsxco99oK2SC1pK--Gmm>E^M`GA{)*by;$*TJY&P{{RhZU6{nyJpD<>Djhr2daFli zjNZQ}sz|fCiRO}No+A64o0G}ooFwb~ef(LnPLUrsW+S%%ADjFx>D;ua%zzds@MS#93XT*0{^`t%^ z_2y&Lo}T6zj;X1uc`72IoXjC|$N6$OCvgJYf^Uo6_*Qh2#Dodeo~RC-QRQ)F^n>tp zS%mFPElC4_yO*9nsDM7$sJ^~vo~&q|z4Z>8s`?*2(K@28vRbnZPy{?o$7@F*8)Qp% zU`YDozlITs$H#u)?|e2o&#H0{6`eN!0GG7=UW}v8U+`75vhHp1o7lRLEPZj*?yc&M zZKf(^lRl@?4-8_#s*nd%{{X4C406Tb<4bE?*Te>gtI_&1J=AgvwRdVb!?M_S+(=%- z-x6=)jiY+uk@d?-CsK0k>q_XH+L{KXLztuP0rtpBD-a6Ycm44eqTd8HIHf6VF8ZIv zCYG+LYAn8wr*l*-hSKP_{WoKNwCj|aW}mIp8Mckk8GH)~Sf`lA-gqL!F4n&|=O?e8 z4yn3xL6qm+G3ws3)Oig>JWVTkS0ULq5E%$tdU{&kxRV|ZeiN~Hx#%pNPt|>O)%i7j zHGM@p<;hk6jwAx)JfD$``>n<@<<;YdGhn?v-wdvg6WwjQ7RI19KR@@pvI?xyJqdD?m_xu z$>}~Eo&mZo)b|-Ti(N}ks^}(JtMWNB=n}SB!Q2dU?Nx4Xbtq3im|qfaR`oNZ`Q~() zpGN#&c%{&Ku91lT6PW60slocV^@L}-;%G0Ct zdIMe3#h|*8k|?2UvbL3$rPWjmm61l)IZJO$$t??SaembQ01ynKEY1v)vtH;t zzsz8&@Fny{o`Da?IYPL~Gm9VT?g+;-Qe5QebQb)c1qZT>i!@?&~wFiL3 z{{WjcE}7{zU8iXyuOl(Mkmg%I_StkdMm%;?a(i1BLQ&kQm44rAM;_Ff$6cd>jq++e zKT=8n5>!Ao+r79rF{jUbOw`FF5#_o$su!?pC>Q?#2`0x6K30;@z#yJ#Nmu|GqF~Cy z(A*3giBf4cdBIdz0)O8MQca!6uZkHdAn`j|s57bQC{%pAsag}q(%hfl4tGv;L>h2b z=9$C?HO}e)StOl%FRur=z7_P<(ZLj`Dt7>E1F0e=4i9Ls@I8H;L@+GEy z;G{4jt=>XF2)}c{7>_#lT4x%=Gi?deM4q+xd3AM4wm`nT_S@WE_}#Acu63#_Y4m4L z>L;P4-~Rx4sa7gvx7Yk5o;`51(HRa?p(xra8daY+nliODY z;ybJ;46}-7x-5n6k3|B6u8uV$9=@-v!lGw6ipR zROu{>+@}`(u;~FGrt7az)sh-N4tX3?6S^}UF^%o@Vn53sOV+OtHI&Z+_BtH?ay|oDQSve~XF-d8zt& zrt0KjwdRtZHevq&xR)0Dj6W?`_;~!+sa1~OoRP@wdrSMv*|v~>Oh^ix%^+QqODo>RL0&@p{ju`q60|0GsOPSyBX7)y=KFJr zDSaTJj;GDMW<-*?>Q+MXExecfJVR*uT`{7ftHus+Lf7>_EO~(&9Mi^u54f@q^26gD zM2+*b6T(2Y&nWz(9$r@}l=0Tgjo{upU_b zuYw22d}I}g)*J7LxH<8@hkmRSB!v#X`%p6ZQ*$tE9YB#VVyoT_lCwtU-~RasL3M z0f{|F7JVfoa@A#3Q9A;~dEDIgwXhPRlRh(n9+b}|R6Bz#EKlo*Mo++6BSf7v@h>8? z)^(pWtEXegNu-WNAM}g!jdcAs@ecJ)lXcrt(b1ItT$0HnG9O|$e|$;#Ds_5Du`ZR* z0-OA=PInRdVA>j8OFAG;DVs?#=VPwhAJ-Dz>c+aVF3ZtgwAM1kKZvbGv$-eC{%8K< zzZ&1e_fn)?wH1E=pRoq66SMUVgIIK)e^Ny?CYP3~sQ&;%)kYMbugzhF z?y;g1$Kmr^mJtrWYKn{4uvU;bx^*c|ch@^{ZVP!(&uB>>q9RIGI%4CF-Ko zRaB;z%R;rmRLr5;p1hsJAJW(_lc$|YYM&vr{!av`Y($xqR(?K>ha8M3h_!was$f-~ zKDcX7ICn_~^?$d|f|l^RTOs-Sp_;l5)<#CZ{_H_GnM@`2BpR0uz&+-7_x=Cl>Y#1 zOa##ysJwn&eW67$JWSbu+TUjFjB50jsEo@DdWS?tJqy-`UVVt~hNjpgM7m!HJv@*H zn^foOw;|Q1RsR4?4sQqj5)vdoiPd6dTQsRyY;W`<{IMnC(fXp2ouIANJu?W$hnBx+ z0Qz>onk_F|Pv*wD-=>pnKQT}+ z!CQX5m`-wCF`_op_*v+?s#Dfb=VC-ZGecg(f7~1Y0BjjU;ZviuyV4l5>FF)P$y7=G zz{HZDBBZ8L&DE}v)JAy!0J>Ka%la??pQZ3q4Gy2m+0vt`8X-&k#iy!N1bdI0z9kt- zy9yWzpA4NEMO2S2&DDY2FIx5=wXcEneF*7|EG-*k^2`mcOs+$ZuQ+vTsxm6d)=7G? zpfdVJ;bdy0D#PEuYzTbMM9@zXQFXsTX0esDj;sPN{!+*0{V^+-+YsHu&~B5#EK@F; zw3oX9Jcn@q0NuD4T6Et+X%3n7lcTzWN9F$j!D`^tv=R_pvN!XWpO}-};N7)XPgpuH zS~NsbDDGG_&)6I#GTlX%O|ANMO9r6JvzX)0sEW%GxMci7b8Gg)jHhCf;QbUeEK$jr zB!s(siq`BcY$ha70}GpdIl`+@pZ;~ufHZGO8!H}nsb2U=$O#s>x2`punRaPbjy52F z>y586>?`H-{x4C0x7^lKU_O}m0K}>9{&)mrtP2JJu*Y7Ek*k})<{kk7bYYOq!IAzP5dTI*mz zHZqKClw)p-qDV8ksRV6LQg7XuaKBtfO?~2TLv+i;PfNTr=lMo`KCRW%vs7jE)aE9q zrzmZ*aLye|5-dO?+>ApS-vxgW#*TRCJ}9}mSGsK5{{SkYM}Pd@X)E_pe_@L6=r2J$ zP4p+?>(TmO6kSlxI>}jImRD3|T8e6!W{Ro-8DEhdn8c{eF1!J8?~9{_d1cEA`#M{R z3>Cp&X#m>f-pAhj;(&EFZ`00%{AcqFLY5w~ZXEt7C6 zM&W&iMf|tEFY7ds1$|hGUFszvTh#huEqJf+YtcU&`U;Oj^@c3!f~tx}n<~xn$%J)T ze8ouIw^j_i*rNk~r+h;kl4UTf@Uh~{Q0v~AL;~gXv1$qO>Zq5Ss?$zd z2-J4@Cg=Pk4aQC3kNzNP{MsC&FxTBs$g--Bv|IvI-UzRlPr?}2RB76^u*o- z`P^CTud;J|cIbLzo%m(bT5mjyO4jw-O!kldSBaGyFeqgLZ!7xB6*fJAHW;y=3|dQG z=x+-N1qQq7I08(*uvXD`g`EY z(vH;1mUbR!W)(bpB;lQBCc6Ac4~6 z$AHA*V8uU|EKI6S(g_yFH{TT>hBu0Sxp<1q`q|;bLTTM^rZZfwnhM$^&ME1uBC3yY zW@M^p(`f~NE0e+F-WXvSI+NgVif)+Y_|EVdn|x5U)`{_j;Log`I?ePBYm_EYn7)1Z zx;Y>)I|V5ir)f8Q?R1bK?eB|c@HgR}tHGy+eKpYx(@|ympHih<*_LNlM2;Y8iAdZd z-OkVy08Nj6FrD~(^cPxqV(@d*K9lt!a+*zh0G6*YrlVl#OC*iE%Pt8H$}9^Di`)Wj zb1USjXMKd01B;$-iDZ?3ZFDCq;q+A(#aH2})K7>7e@S&`N_v-~^p>jA6xB2`QD^W^ z_OT!RiyNJ^x!qEe^!ezJTlL3Req*JI zjmNO#(*jn$s>FHnuq*IRPiz6Q>i*fBFi(%I&6X%wDdK3h^GxAy`?J%V*8aq*rj{i;`jz( zQY@=H_a4OJs(v_;{v+Y-s45?PjSi*B><>1*Km^+tJ#^&M8{x7yd=jUj9y+`oc&60V z`Y)h8S*h0=rkVp+Jsi0$eH%v*Jh3$}#;5cr4!>P`J(qZc=xpXQG8qt0u@>=a-s;R1ST)H>PE2B?7 zL}J<%kojPl zTA5PUVaOzVVwQT#@GJ3=rgdJi)Lkd7==V|doql6AW?2k*qfpl^Jg!}Q$fre#c7_Y` z%x`W0>>G_a@I~>f(w@5MI*n7Lw9cdGK3|+gnC6<3BF-s}$|$4`C2CouNrPEIDvKc; zfLqt0%HNA;!>YErgCHIuC!)_ptCvYhE}PAg)jPHoE@?u6xDk8X>x)uYsp8~b4rf>3 z@9`&!qInylc`(`uW{*^5PFw-~Dk>R|+Ssq1bwQYENHr#m)Y(-=TdVTgx1_J9Bwn6G zZLFr(1l%5Z$LPV4%C!|)eO(<;te~DDBoZrKWsQZw9QGjJ90dG8G`&7Y<0r))OG6_^ zOAe))MH`8^bx95X09QD_PpNZ}D8|m`IteUK;giFFh1r+>OUgMW{{a07796?*db)Ka z*f(>AgTq6{d?@&AmNrQh^nO^kQ*p&Q3_ElmC3GJs+q=E-&&%5r`Z+xK@I$l4=833) zEKb^1n7i${lFr}niFN+~4=rJbCh=*Oh@`xg*=*ir_#?}dSdV^hh`;gSg`n}7)0&nm zvRy42srMp7fAbiAf8q4aql;H~rPH>MR7*)kTnPNTRf--x?!%mHjDNDieH|7~imcXu zm;CSvtN;L6eF?#gw_rz^b^Bm5TjlOg+Z^@M5?m24;u#z#;q&6bXO$^b>1v^O7Yugx z#|d2@q@E6_bZV|TflSfrN&*~^0-rrOH{%`N{6nK-@cHpt$r98=x>l%^D}BRg#|gSZ zm88_YC}>N3x`Kk}4=4HQ>5cjb^B|J6evsMo2A&Xm`Ac*9eK3u#nu z0lyA{-L5T!sUvYHzz*Dw_`t-vHmaxs#P0XOKTr|n=`U8|Qt~j{Ej3iF znCH>}&r>%i?xWCO*5u<9qIMGDF~x?ST7bj^j>KJ`upYQC$@;aSa?JNM>3*}OugM;_ zolFWPK*l(q$3U zK5eeECMvXW{Qh6LdeJQ0;;dB&Nx3%!?ocw_$~Tndt-R zij!BV^V4Ke8 zuCor5XE}C#E>_vDo|(L=f}ma^eU169sFRH8xABGOEw}!&1pp9CZ}zP0E#RykGVE z_rjXF@?ME#Rr;e`X4!Q4sD#B1S4%p)yU*C({{Ufct|888;i`n^H5rbJ)>+_kkICgsTF^*2WSDm zzuylnHj&R(GP37d6EL1M`JOz|J23lk`}6n19n=n!={}>f)n~LqgE?CPm{Gr%F&|$; z`r)r06LgypS61qWir*qUfC2jqNhJJ;m5-HXHBzlD9d?vTgYuU(%F3teeXw%9Kg?cu zpqpFtjv3tSxXr^~_w~d%i^2Cz>m`=1ZDXwCZqBIS0K?F6z`*!?8R%J`Y#P5)!%j_y zn!x`6dtvNfU`#3W6TlRR`zpFo>3%W|B#j=UL}ZvpQItV+z?(&A!Ks zN0Z>^MNl(AE~3xs&!+j$Z+iiOk$6SvXe~8fYpLa!j&@W8Qhn@haJDY&YKPW?BFb{p zD&?8qN^&YY*tB!U89#la23nNYX?+){bp}bFWVyy+1vHNw)K0TUyKe^G-&{txJR)?y zVLUY%zNl~{`5mRU!Sv$TL}#5X*4`U47S|mrs?N3EnPay!%O?#ZJU*btyfXc5afi0o zVi~@X^|QpDUDa(hQ8!g{9Oov@D+N7G0FX-*F|q#u;VcMCdyYmdV^mjVIR>qom8+l? zl_KpLA!5Y$zqdGrG`=c2UzOC->J2l}Y8^4u5L?ZXIv^0aFfRv=<+n4d+bsb#*;`PJgJDTD;Cq*O8b;Pd7aB zc(x#y7BR@7&0iwSa{AK?O%gHlA}f9C?S%$<9;Y^Z<0)AwvKpAdUCbMeqd#l(4y z8pj;6zah4p`g>r9H?FVCGjU5rJI4c{1!YpvpL1_aM0Lf66gr|buX-hsp^i{sX>W03 z#~^cTM%{PdSE-r)zsq$Ddb3BjPkixLJ#2L#7}OAK(7w`7?};A_^m7=z%&RSqtP2@o z{H%TUp4ddx=}i8vx~h77@5}QTmR~V|0Qy_EY&g2*2w1&cCR&l@Idci=;Qn8lfNgtl zNCWl27teyR{46zfl7_P)MqHoKM;J#MTHJyrqj_O@0|gEoh1`F{O|AN4rT+i}o*6U` zg#L?Cb+4;=u8!6kr%_QQaiwI6vKlCyT|_c~P0F8|z>D#IFw}3N88RrVWf|yC4jw5w zwUpKBPMP#iS86Pd2HPZ&#E8vteiBDkKcF~kwFXnFv?g&=r#1GF)tWO>M#Wl(GNgEA z9-J$Id!JA(^~X*ci{g>tJEpSDM!6K!HNC_oc zm(bNR>e_0Rsiw@c9HR5my0AaWb|CFOpqvgYsyY18RQ0(&v&g9;%yT}S>)f7>WwaGF zSzOUYC;nDsvwiMH31zOYga8IX`MxZbFw0LMPER7|>;C|zI_&V>ud;6wo(buw^+r>e z>CICnN@(Pjqe_Ze(Xg)d+%Bh%*5LNXF#TrGZ@5PZ@8tDk_EXU_P~yo^e3;L zAR9Pdi1e#C*264yO7)I-V)7W?!Ti@wO^T9G@&ZzJmG0yW0))lo}ki@E# zPJhI%ptlD904@IbNp;h$njgiFhxs!sh8&+anMVHrHcE67(aCPWy_zyP?cWzYKNcmc zYqi189Wo-IVI0XJ9E05cm`Uo)%A}v*d2+o)T%-cR!)QK-4vujZJq<=>PX$C3CYn}P z^4{YA075Xw*MUPWf2gYJ8a0U-$8)u9>+9)^ITqJ%qojV@~eB~JTcWwfrj!P0OIXLK}!}t6@{VvROoOPZuy4Tc<+g#2SmnYGcFu|A6 zDICWn(^JUup5HQvz&8VT=EJ-2Jm?-tpu96n*NsP{bnEpOSk=uv7H{S6s!X|CYQ`jG z8&t4jRd^%|xsrk*ku#cVn0H%-k{Ky(!?y~{e{qVy@nP_p@dM#AEqzUt=Yy@i z8j{e-o6u0mwV7&>-lmip3~B!WTC)#uxa)CqgRxK}1Sj(z_raUi9K$TE$TLV&G|B3s zXl06J+^noDMUMx*Ioe-U&yA@@PyYZ@ZhbC1s-%z3Ggi^-Zk|<1m}R+m&vJ>-ZltJ% zoH`TVXQ)44+YQBcSoK_#(&d?EgUdA1$bXoWw0j$IKhH_^RU_b}yCN09X&PxfW_ z82Wyl9b1)u@=F91nb?RLc~BD3w|-CSi_G|J{AF`r4b+(zhmRHOsH(JGI274tq-i|% zp@)S?rHl)hMYv!|Ufh9-u!(%&729K|u{QL;Jj+Yux!9U4+b*KaA}SX0#u$-rL)?AG zY#y)Zc=eFyiFje6*UJxFqrYCCb>E^LS<5MN&YyKdMQWNE;}aug`K3JmV*A-#k@g@F zjonJ?=SBKul2ztf!>O7ZPg2vS`9)S`3cla`oA+PrG5O@vbX!PLm76Zqx|boTh>{T` zEgJm>;c@z$4x;JKT|{N5uhez6qA9-q@a2ObZXayT0ARLPT$kP=!thhP}U@eaj# zCl2>VI5M*0y!AchA9IBxo(>YxiObvi71a1;$X%FV&_a2xV zZ?bO`YKf`TzaO3;`mY$v^NiLlHJ5@>;-P)Tm(z0}xx{9hP-eB;fh~+4Uy0Ygj*y@w%n?>r|aJUVxyLUjI`phR@OHlfIirXV4$gqDCw4} zc@cx1s&{ZbutQTkFCxUvG)#LG{J7ISW?MYVOH}hb*9U5Lzq$VaYz&f$n1+lZM4*0R zdBmd|0J#J%jIF)e_8Ud)KG-j;r_QO>o{l08@0R3z5_Eg+bt4-uM+9?&>3uubQX0J@A`ac~F&OGAHZ~3~9+isT`~g ztV>`3bn;9l4=hZe@!x}h6Dk)9e7K|SYh1PtEZicXnLSB8zSz?xDoVGED-d`ixWEAn z)Jm?loJD_ed*fJ!AQ>NUQaS$ss~hTJmKAkpmO?qc-Ub3CQY%Nk10sR6fIq#k09w${ zLhJtkb&7QdvjBGB(Q@i4x>t>1h{f5$ixG_LDAGe4!vwI$YZ3>4(+7E4g{6`iRYL>Z zj!3`)L;hZlmPL9xhJ}NMu_nbv43C;t=`?XT7B(Hm4r=M6Ajt&oNIx)c$LWoG>534s ztVY)EEr0@ui=x@h)wv||gV-iV5eZVtqUC_S#tNlK(e{aBkx!+;;~9vFMO7tJ(2w@O z0IH!$DFoG8$AiMyU<^)?Jc22smLtWB1B_;-mA*}Z*4DlM0Mi8PK{Rz6e9tXUX7~Lt z0ApL22#i5Q5|Vb=ho`;`Ql5%bW&#-;0dNir#z{|7v9PM08F)5Z-v+T|^oRrzZ-np* z+<-^d02#+U3PopGA|QOL-uMLd)e*RkB`8nkEI76|)>D{E#{;a&ztk`QR@F=b%^w4c zfI+vu00)Z8GAqg%$L6rW`4T3NdLsdD!Eb;uZIU*-DDBA}nA>fqY;(9+DzzjdW019VUL^h6Pe%Au` zz{)6;LU)2JI2X6;Y-~hWWV=XNyIFm4OoQmr*hIb_2liK+EGpnzogheThVLvw};EW7@2`S*4QRcck#73RW zbn_)F^S9xraG{RY`X1k=I(W;o=<@_*^JJ2&gSm-3oN{O3mXk8neQMKGIW};aHej-e z5=Z0}2b+CPI)Aye_Ivx`e?ySPEj%#EQX#2d%xn%F z@j?+$=Cun@@Uduzvwl&4wE?AaH-!h(9{5}4+DJnQot#R8yI+%p{Fz)LGF0%riyuq~ z16+l2=v3~L%9M*)g~#6pjgq!yF_CMM7)KXTxRHkAF|7;yh!v9D5-x9z`8Io-Qc96Q z8`MMnN)+-wxIjDf`4(SBvCSBi&b`>4Pu~MuIgT~_Jw)+I7h`)KFp!rp&ud{Z#IeSN zScFr+KYqsu>ioW@66ejGUfhH0`r_Dh1B@aJ1XSgiV8WLqt8yI>oBG=dS`9xmKbcB5 z)L~;vQju07Q3w|x_Qae~hkF~br!yv1a?z>|Y<+M`SxD)6b*FTHUBml~JhD_rD6j!X zZ>9m%<%UJxQ2-4n?XP|yO7tH*E! z?}8lHJj>z@<;=mz;1#|i;Yc@x5m5+=A&?dO+XJ62rkXpjd)vC;kkvI@W<@}U()ce- z@~V}XNgEhP91Ja_!Sd=6NY2A}?ek>Z?90tp%=ZVQ;SDrAr&hwOoPnAy7adCV%XHrWm zNRm?|ZVwhdm>L0FQ3Mqb1(8jFweM^&oma@S3GzC>;B~UWRI0=hc(uLo3UYM%{QNqvs*r}$Ed}yFC zlWpz?rUX=*3rV$?@5sh6i$!%}U6c;k@uIL`tXu>0T=zKKnNS8(Et|_-kpezz^Niw^ z_HIcUGw2A$$>O%}PA(Li;4+ezJH@ToVSr^$cNE_k`UC2H@v>7BDN>6W=bPZa@fkIdW*4fE-)im}9R!6V-QW0<;+l~&)H{aJ=0>-f~nBa^Rr@tnsJ%Xt@d>@H6qe04>odfU^^ zqtQ}Hm+MMtW^r{%WD0)RXL{}6gTtqZSYw}E>9@;s?VroeGHI3yl<#A@#6Q^FVmY&4 z@+`vyouiTyXN}eg6et`O$B8VfbqpHj=Z{QUFNpsDg!Z%PQdH-C5!PChs5vZA8Dyr; zGT$OqUU*rTO6HXT7DFZ4P`2C$7*)v-+Esxki-LQM71ZUW&Et&>WO51g#D+3;nj=T*3Z*%$ z74$L&-d>!5ByUnf1BnHstF-P~*?v)y&r*x3!KnP-M^w8bdCo%xP)XJ-0}~2lOB3gbu68C8fC-V5X0;L@W*g3p}SV5me3Q(+KIW&BdRSeoiVM;(0b# zm}|`!S3;63e}-k|Lb2VohVG)+b`_#JT?f3lB_VmkQC;j8p9CFX4^g!>roJJIV9t^4zm2$!Ocm zEbiN+0k6om-|vpcvZ{KDOoJ++uiEvn)1*=rJQf1S{IOd901GU>I)4sy8H|yy;#yt1 ziU3FoJw`0DN#PMOXJj@ez+d&pl-A~Rk=exs7}6q7iyY9<^j}=O4C^}5xVSulV|;T1 zl15AoBzwm9cV@M(bKe~hc-pS1Jt5V9hMsD9i4mTEGLvJ*C>Db(T4gk`%M^-)s3C#A zIO*KkxhjYvod8emr+x|vhYh2)E9Rypzw%``V!+)++->_7QzQtyijG8;gmXvpXI&1F+M50I#Oow#;KmgmR(5SU`r2D zM`4WX{vPyt=9JUZb)rm)b|Crd60t%50G8t85{(LuBD%?@bLx(;>m0&|C(NrLns%1d z@H5-rcG2JT!LEYHv)U?}O4^+_naf6!fZ?NLbNUf~?T*5s{{V-3CDr-0etw=d>+)$T z51As3aG!~!_#%ivoP`FQBvW*DAKW`0rlOOl79I0*u7^G#-iED zo|4^^4WzZ_MrpK+nKq^AW?fmD721;!37JUd{-{CY>wfrPGp?LuT8gT+r%O{;Wi%;v zT2`1a1KR9K2lvNP)Iadmbn;t=@vocBOe|OpI{-hSH7ERz3|syjZkJ_q$uvGRbE;_B zenp>8!rOkNiPq!x#WM9=U8WJz9F*l-NOr=-*0HGSgJdi>r009>3i`iZFf^0hr;?r`khxUEpL&Z)_qOwk^WIaX5?T)%U40QhhAcru5vc7`Z%?&^DWoJk8ffn2iulDB`Y4wU} zzRGgNL%xsAmpJgXuCzX()S7ds9X8Ljj=0M=$zPRb(zP8-cI4g}0+Ky$1-`bz6Gj13 zo5@X00jH-5PQu%)K7@MxG1*`ISrlD9$od=6&2^`z)7fud61t|9Wr_Az%aeITzU{oU zLQR9_gEJ zkby%E_QQ3Y)3kY1UBA*{&q?8vC8rG~yG z1wzXm!5?nN4aUF<_5Co`igPMF&q+^DFx@0o@*2ixpKbm!N6kHfC`= zN1y!Og9!P$A=BK#p{A4O;jK6K7t>e)qdrG>z#a3A~PON1mT zVaWP_C^PX7QfNYRboxbJ{j(nMu}N+PM{i5EP3VA-=11W?Na z@}H8!=H~wZt`k-QhbNY|DxpegDrUTEv1Bprx%U`I)XZyh6seM=%P=KKW9fs8t>?@r zWu9qemQCykEP29Rpp<4}6a`$K1-oLULQF8up^gebU;saBj!8HzrbGNHNj3%za7n*> z9cL6$Lr8ZqI|auV=K}JjkZFgSozYwd1ns{+V}iJ{JHm}S6Fz6ScMH$CA52ND2~3~F zvh*>dFPf^(SCt;;5!*{k_&T?iIT2+d*R}V1@rT1qYYeW2rJky)o{{$k9$@e9d|MSp zeNQpqxIFFpW0mOr0Y%k~1()lc6D0Khc$Ot_zM;A8_qhAwbmV^%ABUGl^qOhB>%%JR z%6cipRG)*=^b~tBjz2r z#C6i0SbW|YV!dXG<%L;~M)tl@+YXZWn|LVd?K?q~_!^?m zviQ?{{{V^8IdiNj_AwC0=ngr?_?Gp9%53i6mAo(S~kL?&loL9*-zVO6@PfzIme6BuvHVu3_VEseLe@$aSuX(HX=rMNL~( zn9M+&s{&lW04xQqYx8_v$oL)gBP_`%vpO#yx?`ugJfuq$BTuYR0(mdKU(^ii#TQk&2i5&|p*ovWlF>~`S(;_=>=I0mWwX3# zyo-WtEHC+ujw@%YekHUs+EquS>` z&*YhN~NcoXcTTOVYCl?bf?*$94QSgE7LT4CFT2YIJfD79YPW+d3>2bk&hg9!s4?` zRMJl-_KGiGzuO6{^&$~R2|#$WvZ(Fvh?lMqoyZ~GkjP}a$>upEbAPbLc~O=+xl)!% z0AN^xIdAsCy(gDRr<~G&@&+YO9N+1JERT2Nr3_ol3Qhal0N*IzozwY(Hk}x=rCK6QX}S`Sd_YeNh7mh0HPXyJ2EgV zu|&o03I6~rIPU|yGYH)WW9kkYrG{kHk!*C^=Jswt9@uo}Vhzx5LOBHB0JRtyE>s2l_rl-KW!xckj1J9f-1}h_s#Pi_qEbhiTW=oT_y97` zsqc|eO93q^#+L+Ko(2kN#X!?_)g?CAk#-%sVE+I)-9eYe;Y(RUap*1FU198w13OeMjF7PESV6wNb+IFbQ&_)9v-Zoq?~* zo~l7HmQi=OOK>ot%|k~@%_pCC7B}n<-wB46qMI;CDB49Of|7Z-`j31pbHF8z2ptP5 zn}Od90z8IDX3OeUH3C#pT%TMG({j+sUlY?Tbf&~GlYq-`jwx_ALt^g!s-~rUs#z1 zc4r+0G~;Y+;=nQExwY{1>3v~OpVBK(6p}Tvzshg>VI$R^mQm}xmRF_BXUVe^v!kj8 z0FG`~xxo|!P0=12_0CtXS|XWdYezjw)U9-Nc34mwljWNdZR`#v_Ia(cjGHq}F+nU< zwNdSYNl)cwBav`>{{Za1AsksBUUG9jNkf=YW>gA7t#nfzDaUu{C0yNt8w0 zoxSb$#M7CnGYTq-DWi#Gks3X~Tmf%fL9F_#s$DV9>Za1!e3|xB9R6jmU>5f(M{=jv z(+Vn^>}P3w}4UxAkiPNjL9&J^e7!nVwle{6jvGC(P$QW0Ir{yyHpKE~3%(=O~siUTA^>l`HH4;1P*M zgJS1h^wyVAWz(Wk2?o!YApT;Xb>o6C*=QYAQPY~Uru7Xh(NMV}nyPEEmG-^6{{ZZ^ z9*&pw4u@ICCRI~9Qs*&7Ou)D$zSsfO4xdu$3MqvxOL>6q+{<#K-ElUkEMHJnQRZnJ zw5uG@Ft~EO9x<%KVe>-90{Ro!VTI{_uFbT@p{dZ>wM$h}NCBg%SO5U}f^Ind4kYxI z8`1v&5Q1ocz3pJwoEk`~Ysi(3L{=N5L|;?yf$~fwk8CC)r?WE-Fs{ooN=(og;G>A& zy}-D?vB8FE(`^2ho#)FbrI4>Xb`n^9EHORH%OOKwB^2#2Xvvbo_uedVg3BaT6!f() zlr3^t5O0muIjdzA{{X{t%4*EIxSIudhzION{{YVgReALW=W#r#8k+{$+~KAm?x7)! zI6@jQJw`S^;Y0~EC`6sR_WdxQOx7BL6%6eY4&_D9?Sp;Md1xb$u>;=#0j7^LzUp>j zq;hX^F~2OXsiv)ssvJugJBhW3#@{!|0F{}R#F7Q@O+9Qf5^3R;2^QQ(f71g%JTvAQ zMyJY7Uk!9|SE%GY?#uKThy7IO>(?bsc3)DlSFb53UiS9`pV!k5hD}>Vl*#8zlGHh} zfP@Q-EAt5`^#vZvdT%N~O`M<2$6_#)Pz--aI^j`E933g@DrLfTh(k$PEP#m5qOoFb zeXWGgSh{yMTbt7Aog*m7b6Ag`6-)x&aR-xO#s0rua8K0En#o&EDriGe<}pZF924K) z3tp1-u8O9XE|K+XDWyQ9Lr0haZN#1fH*xpABS~^tl52r`(yplKZn@-D9XIM!wAn_z zgb_toH_B&gcT4@b9gZ8?jJs8IZ&y7;G0RsyES9OFSxH&r{{RyD5Jx_?!EaRh7pb!R z)A2b)T|P;fMBZ%;S}`Tk_XSuE_WF1I@Nd%Iq(#(K9X9Gbu;txIrws)*V=P`*<4|y_ z&FXueM>oTYq)8;lFIe>Rq@8urQEJ@)xrS4m1V4|bMNsg~-MHj_-S2)d&~)Fc8JABp zSLy!%R%z;W4wGv|O!6+^i+cjjPXG_67%J2mZoTmJty@uPdR4BYa;C11DH)cgG5MOr zTW%dZ{*yy>`y~E9rL$bJEX+VnW>@l=)yFnoZY+IA?}X!hk7^70@6!y6QKT8hi_7E5 z>Qw~vRq?SmJ?+8nY&q?Wx?|!aNz`P^q59LSB-47Li9|_RR-2KKa0ea8=f8Xgz7C6*^Zfz`80CKfsHu5h%DdIJE2mQZHXQ5XSwcIEqoq2t;fqh{rA*eMlAe@hRZ`7D3QoIhcLGRn zsr49N)A)Gs_mlv+E@@4tCr%`epGnfXf9}QuZ{HBR!~XzVYWg|ghc(tqmt}MR00gFy zsgueewTE-a9nYpK>qUG{{C0H{JE_U^27}5vk6P;T!$Xwm$Em1A9Nd`6>^;UJ<1ZZ? zc;a%CaW5-WbSI&@hKVRMZEIUIs+C_aPQe?nJ-2Oy98#af7oi>%x>eH5lRM4zcCuR7 zYecZqu1y6vpN?2dAc_KFVHA;XGT`M(^JsLn$bcen5jP@rgt~6Cuueycf~)t z+SFvtm^7KclIW}Xd`EOjk_t$){{T?6HGL995G<76I@oq6U>tk%iy-)M=UqDMe!8g2 z>2+69PH#^XlhRYs)JFhyAOmvowVS`w25XW0EVa&2LsOIFRh?*yN&ny;O?)fUIBbJ<#6WS3o?$S>kh5vE%+*`eAG!z1w3Sb;vfnGeAcq5xc9`K zs~a_B#^k9TBGKi!PC=JYWDx2Or_Ti>Vl;W_>8591{IQD7ZrAUEn#_YqXOc}dWp`Gp z9sX7Z8ffDq=mHE;p0&>YFnTAZbv;?G$SYv!)h=E9QbkP4f=ZYv3hv$Hi44ZdN6TX0 zOh%51_^kMc_>k2Zc9-d{s@1u5RY4%s$cmKkkhlJ0m1SNB`CAglJ<08n&wihga&+IH z>&%a)8aFxA8egXx+f&u$)Xh*S+Nqb$D!c#{n*RX%t~kBx--;vDzPoFUaj$gdv&l2c z`lgU&botNFl!6ByfD7XOJTLW=#Lk@Rk5alP;+I*rZ<^6$!!d{zrkEI->+;JA zjlhfWc^2m0v~|@TLy}9?exhaan5q@?DP9*bgZ#b3f%Na~jT&^j4LlrYOnLkR_0BCP z;xj<%jUT16-1j#|mKf;Q%q0u1%d(*PmdBBP*m!;|y?NEzo5Vj%;Ob{ivh0EAGOscx z%W7q)HG$uD$xMoycI>wbZM(U{S>ZjhoTse12BR)a#Ag*1$nZr=7UrFS;B8({+YiUZ z!$fLGy2sPaYpxNps!Yo(cxh3UUPzKMHx^5aa>EHhIoW<$HIaP{-k0izajX12N^-1+ zD9N%ZswE#Q7BLm?+>e^azieE`!s}4gQ}}PqsHLQ?mW8tdju;Reu=$8KvEX`Ro`msl z(*B+JYnP+6+ABM+)uy@XBF!o39(d{!;O#M?+=u10?{0fxsp+@H%f(Mbbas89`ahv_ z9IqsKmc3i;16sk=h0p;^*aGKO0zlG02P`fjm`K6 zX<>i0vD?w;lpvIeXOfjPbz$%{&fisa!(Y}=(F#1apHAcl9Gl90}jyX0MT6|g> znxDn@Pb(^*nmTE8>}U+J*<~v2!kbvy;~eYwYU?+|f5Y~Aa=xDQv#6O?sfL-Or>n~H zb&^#_8%nzXRhGv0u|2UZ`ps4Ghw5EVPr9eq?uB({SLrGb<>m8K`>C#qf~dXGb+I#)h`G*mETbul6^JLHmE*$D>RT-((8+zd_c zi7vVEiJtf#)Ajn-s2P23l$wf}^C}49jL0H*K`89XZf<+2KXZy~(KB_=s;{Q{VW)gP zYfU+uS7tCrEmd6|MCnXRkLDBQ?NB?CO}NGF{71AmR5CvZS!YNp@?6tbX6sK)3e{1- z(hBhs4bKt_kh~rbAY-AAPZchEIeMJDq>fQ^_g6Jt22q#OL(=$b4$z>0_m}Eej3|#> zHJmDu{{Yypn;|!7m@y~^sj%&Z)_FQUHgf`5Y0Ew0TO*SbhBu>3~w|o~G(Ii!3=LT6JEDkL;2d1n!&~9wth$Gr)b)R=eJ!t~(ydMgRVHyxkwsY( z3;BXK`THA&um{ldh&e?o3C+efQD&9X8O}$SE51dUiJeQ$G?5hyeTDe2!JBHz8YOk| zqo|yGtr{pS=lnMG$7j0J!)J$WEtkcU>jRR~MBgkBM6oXO{usdoxA($lDDZFK+OspH z)lJY{Gf|sUfbmtmKa%c8A&M(1llNRU<3>fU{2WW?^qoi7dDIc+x+7L)Sp*;$RMALP zm;6D97sIiU&>Xw)*R*V%P3{t-_Wc^b&)ia=nf+gT$7Nta&5K`UR=0qt#-!H~O1f>yD7RdGOcpq0l;b>yt><%bHGi7;e(E zYDM`g$sPNgM|>B9K3zuBi4o#8h zwaJx2dAeF&jxwB+T56CBUP_$y zLX+RV=$cy}wYkJ&k`KX;CbFF*a50~1KE7!hXF8k1g>FpOJLHz69jEFoafFozSNg9y zBIVsD%Hl$HhIjA!++)8Q%^jd~8d{T`_&&(>K32l>R7sZ7R5P!sAgMq5JK{X`v*E|# zkFJ_dzN4qwBAY;G5k%g0TTZdkvJ=g=t?YlcEZvT{6m_3y;l=}_XlKpk*4Bj6)qpEs+K5rsbWzq{!)S>fY ziI2--4WHkz#c2R9SzZ?IZ(c zy@AJ4{t~_(9tSj!O}cs2-9e|Qr_5?8(yB?bti@mPY)0V5GTT*o;0q2pz98~L%0x2H zYO{}@`P0VyF}$=rJFlyT#K%y%EUqp03J2?g*t&t^OE;@IT@F!8CT+Adlz)H;Dqqwi zC^z8xoPLE_c5_>tQPfg+c+>qDn;@faEtT_4st?dayFvPMf=yeR>3uUzMF)zF3DFFK zuCx@Q%p%NUl1TomD}lH71Y*^j6>$?9)kysJ=G49^XRE59&$U*X(;1{3Jw1Io#WIuV z7iI7F#{U4qc)FFNtBX_Qh9S&y#E6@Rzs#ce>;uPlgij6HyP=w|sF3vbmse-B^ioZe z>Kv+e{6r_Z?v^WwP!I8j2HpK}%RZjZs_7t}iWkgt3Ru|02#oMMaxO^ig&D@JBTg)? zLpIsZi@By;y1S`yQMdII5U?LosBy0|lf-UXk-dLaa^2;urBcjK&~4mCBy16ry1BCa z&Q>DIsR=i4L2l&zv3b7^kB4rT>NZ_T)lR2n`JE*!?hH_8R3;6p+?d1iM}Bz39#!;8 zc@$%9ob_nlihM$~?NWc)=0~fwag{g6Ek024EUJA~m;r|iG4NyYYRaN~<1)~lQKO}c z{{R^qClUrz{{WS5Vefu1+eU5I{{Rf#I2`IKT*(wc67wgpAd&kVKYl(@iRz@62;c`$=}#3}ZniwTs2cM$ z(KThrXsV)U+zlRTPnW3eTT4;}A(aT_13ybYzwD-p^zA^kh<~|m>w^P&lJv*J!Q8Du_HVN9{{T!$8eF?sR;QU3m#=uQ=_fWnLxoCd{Zh(_CYGs@fUpfB+<$&f7V~Km zm&5-6QXCUEU$qRv-!;s?H|f8O7)Rmzsgi#xo39#@G_X(^rBQFNd`n8L3#`J@$494Y z1yL7x-PJ5TIVS>Wx_#7$kMlH|Bt&w}Ul0rR2X+(5Lb4xJcx39BO{>>j;NOzIbifn! z`LGRqH|vxtb1t#!nWh5%XPnO;=nG%<#LUe!Pf%!@IB4>`vKJ$B7q5iw9^5tx&X(7o z%ZgmPCt2;ZlU9b`bG!TDERFO8K>q;Rde5VkgLRWp%GR*j83TRDd@lNH;QOhaVAnZ+ zPBa%*brpW5t17Tk8JQW)`zsc+AN_|CHVqZ3D!lkwhbWt8%1Tux+kFl3K7JG(Q|T9n zpA_{K-G0cZ1U0n2MopQ#ftH4=aIp-a*s!|akG>?bN{G#*tT52u@chTBw3P5`9;o<$ z$oh{H0W5Mu6Huum{-y+vsK9!!_-i%2LGv{K0AFe8(n zHgic&uXV1uY@)7KN;opyw)TV3orq9Z{;S{V?-sI;iD!Y0Sy+^shp(MX&on7P_b2MkPgP36DkPk3ia)m&x7PUUs!xfZfxeB?!>hDEiw%9R z<$`2MGI(gFsd}Bp)(I?8Expd+^uv+WexmeW#}_~~7gPETU#BG150+F%Q%9cBh^|7C z(a3~w-%v>U^N77eehDnnU&!Lxo5JpkuZjt1^+uzC!tMdsGO+t`d}k+xeJWYruUBX7 zD)JUG0Jqc1njcTq!BHf0Ek$RQ8n9~+1&P~!++jymkmd-!a&<4H z74*(_piIoQzJls6i2JX>(Sl7`72xo@(@8fjVVY_>f!vm;viVgsI5tX#sgPj)oUIZk0oAzMNk8N=PaWV?{|Od67=_6Rb+db4AZ$ zzzf^$gy$#Vmk1HluLIg+#0IX(vONt{^bQ(0vlBFq5)gPY4sLzziN(}!fRX9mkaE1Q2zjmpo=Uge33A? z1-7ZZt;ePN;&gTA#6O4K4bfd^sFSCfuPe^-{H}M7pq6t`0-ixqY(>GjBNJ0;7&B^K z>Wes4rSR*~xa#Y2jYpJcd3Iw2tdd3NGM&TFj`qTWo5OEGVwqj?%42MU`$==j`rP2oj<=`9nQMB}qH@?(d$TE9pJRLu zb2mew2{%Hz9ZV#AqbjSdlKte7zysV6c{uYX(0Xf2W}0HBBg_8)1nZkpyE915yKKt9 z@<{LPg}dh+HKmY2OV+I=U3-vWDnR@5d?&NbL!@AWo}!Cd<$33kRSPpkWef9xcEgLA zCaoW$T`g1BX$=Wl?Yzm8QZZ}Z_lZsa0KN+)@A5aNt^nu?sIwl9bZ;?+K_W|~ve`F- zaQmsFH^1wH87+HnxVN@6Ba=SBpVDp#KU{bRDgXlhryCmnoZ|q!w;nyP5jUf3AgL+` z7ykfU7*ghxLb0+~GrY8ByEmF|IC-H7;kI&Z^}smMSjG>&Ip6Ww)*S1i-xjYA66bwU z)SW!(6?Gn0Hf)k8VZ8+qld5%+G6=Y6F z_+^cVCz0E>Il#~z2IybJ&_T zCxW|tmP-;|c`w|sR3DUrJN@xremVXkS}(z?6)IW^~*PioVzB08IqVD z5=r)gY+Hbfc5k4$7CTpH^H~rf1zXpf{XIGQ0gZWxRfAKu`V~I3=u2n(8<>jwq(-m19ZvBK2odK0DqbGJLaA=$@A94wUJz zOT!*h6$VW;Ks|(!<`enleZEi#=aGUOsXyWq>E%>fgu&H3)}A4ANi|+UnI%H^+F(f; z+uP*;`(vm&Jxizc_E(qc?E$QG?xxZeaV)g8)D_XqPb_42S5iU7#G=fAv^muS6K>Ok ziAr%_7K!g&QO&nbel#8_I!)C~gF|@q=%gAqO4T>v<*QvaSCm)Lo9*+=bI4L?fwt|S zSaL7e^cKyKX4!T_t8}$Q6%A?RWc1Xvq72@SmU?QKivrR|RU|-$4lGc&Zf(FY#f}n^Qgk@QKF){qXHfJHRrH+> zyyAjM!XI9W$FI_hi?;| zX6au@dbF|2n%2-~8SOPL!z-VaUPlPlvWtR!ZF^r6-$Co{nRRbY$*a0YuXMjsG_p?g zub5=DsaH-UTW&!j5(yU^4{?aj2{%P)HQz#n6U@c;B-gQH*y$0w_Hbq<3&ZcA? zGN8<6FjCZJG8B$S+q&DiP%Y0Sf2Ig?{{R!77qm*$uD$EWP4rZ-%+&L)X_-ez(8xcf z#Fp58hS$YV{7p0_Q}Hh7{+^}qC9br;UiFra&C*=sC(5&gh)qu-6$MPJu)U3%`?~{f zc*J6?vM_J5%rhSzzYolsm8$0PgVAc3g50bb%ri@Gq)1uM*bGG97P|Yx{{Y0}!*5dj zHuy{H220c~r&Fyybp;~R&k{)RN*NT%GRB}YS$ACRxZ>F5U#z|l{7U#;k0hw^3DFGO zr&(Qb5z^GuR8v$%D}RJZPb7(c4+P(i*tMVdehn0UEqcO~s>sJjT?+ODRHr|+@za)t zEMD?`4aF`|Dt-{34c`^s6MDy~I>X{OCDIx?o~KW?Urm=%=4n?{v$TTZUoP>06kHW% z^!+c=uJ0t06SzxyKvbP53l;YPZ>ejv)R2x?3& zA8m!KSL%IxAkU+O)YVNisZ9iN-bZu7s2r1jOhRo-@fPqg(+Vu+uQTyK(@Lz)jz^}S zE~3m0Ra#0LV<4x6UP3{=?55VnELj|RMM7t%KND{Pd5(?CS5S4!O7zcJWR$6wX1ae+ zmZ7YptBH0=2v-|r+R9e(mKft>#@|ykk5@cVc!}zkg{q#jNoP6RPnXKdSI$6*8E$RC zC`jY67?+)F_+R+g)*VdhZ(2HO;rlz*{T|QrI*k7SC(NmHS~De0B<^Nc{5+E^{D-(* zm$$Ynx2YLkVW%?u+e&8{Eq0vGsH7D2bX8H5mI*=SSxt@j_Qw4_HT;)l@rv+wr{L9E zPX#_1$ppXrtw(ZszsYPqk=i+<0FZ7uu;UC@g9^;HyTKoZdc3HHqdH!ZFSL!!tF^d4 zP}qFft4O3+e8T;#KYVj1!(|V%m5+~NKmOH+NaU$zSQ|_e8v<@flwQO3#CG^=c;Cu= z40Ur`>b+f{Gu?fmH6B>B6~icaMQs^Z3?zwUDzbL5Qs_DF=x4XbPs6u}E~a%ap`A$S zPeuBT)a^G#mDJ_6lWEMg^BG{6x;lwz;SDOG0ls~^eJ%+D6w8xzAH}9wNDgb^E5xd0 zs=T?-xsnK%xh0G}vDnjMjIq-kxkpLWpB~=?RME!pbhE_$T*s3T$ujjS54kn_e`AE@ zfBZon3G%=upQAn}k|S|{;h9~(wqbm8*C#^!0L(x$zeZ-1LcWv2hly;)p5M!!n?+_! z8};%?{`gMj-W)ttW^^*rFN5C{1_mD~Z4H_H$I#eQ+Y-m=xV*A9U5|=?j%S7bzj$rx zpF}!c(eAj?XZn*Xe6Un%2q-C_i64U3hNfm~dleV=80V8E%PO)xVbZ8vq;7M%19ft5 zdW7^gAoGU@EAX-6+K#44DtsJxsR%4XQ|LUzvHODsu=sT2!k>zsqjgWDntH#&zlg0X zmkjojS#u1>NmkOu3~1`bq?TxwD8Sp@p4id*Y*^y<$cE=fce(H=v|{(YI(Hqo!dZYe z7bK5N9Oo4>PYzie%F)y%G-6N)HfwXp`ribMLXHdL&dG938)G)G>~GFBYB;2uLG=!r zC3k6ZI@s)@1q8)1C5p*J-a>O8BV8g zvQTL)RaL)*wJTWuy|8Uhp*phE;;NUX`kqLayr>m|{Rr$1BGkGU#eE?ngTyJRkwuXL z`G5RqP(NH2QD~1Ae~4;&uMv8aDOoPeVy%_XG5-LeNd54hH}*D5{{Z<nyo&X_xHU9vyPZ6_J%RF8wGq$KKN#9vj z9^-GLTKFlb=!afqPr+s$AvIJ;?flsVOtLMBHNH+i2}$BZsj#b(%+SjrSHIKD zz&if`54zyT95kLFI+?#4Dxn+pMz+dCp@-dJ8(q?m- zRI63>-(Jy1t7VQRZLRJ_--CzkudpXb>333^Hh=kAjwsFdIL;}6Kl_gS6%LPUS(c(v zMU!Q;z;1aeb82uEzeXnCrXhgviJH(h)a!=3uZQyNno>6Z0P)87_P4?V)x;jNsT!f_ z)0@jtedqrGDJKx6_B2fVpQl>Nd8dTOrKO{Uf8+lE7lUK}0ObM8AKM01Jv-K7Bf3o& zms1cxnx{03E01NiAXomz@AMWV;uVhw zIypg_vp>}0XE%TQz%jV?;BYWuH-!$AN@H_JoFb?K@a7H#pHp%`{@8neAWWIGW}?fe zDl;0sqI6xM7E$Hq9hc^DH7DNo!_1)k1$C2QT3uJEBnBmHyatT7p)3v?h`c-W38RuKe3my>7G?e*><`rZ*gMmGC+TjT zlh4!bOP9$HAS2YPT>jV^4m=6n8>O=>+G+JhqRdQHlR1z_Ah|$&E^zcy!8Ii` zbnwhyY59y}a3K2q@KYXbmsx2bt)!Jy`D|ifN9l!i4HX479GSg)Ngh<7v60Tvv<^+p zuZRsJ?5Z5IFM_X7=h=i5^iUE{ns%198tQ#@mumf0Kj3KKY?>lfC1uV|OIb1Cy^^pq{ihg(l?>bN#MiBo;@G z&tfpQA}T&e`&mN;W^a&E{H$cJh(DRxl&}W(;~gXQ<{Awz;MvZP&uMbGXmVw}F{Tc( z#z!GY7E^Lf#yPat71=CxPn2cT%_UR@?#s`X!_)8f#mxLad|CA8T4;Lyi}-@nx>q=& z6u*MEJJ_ zNus735HFV6E!lP+nNwn{2vQRN{$_Kt0DY5%K)LrYI2k=Fhi zIMrj`r*TpU-OsP6^uf==#*a)x;j22+R~_=0sP=hbu#o5Ni+(o@ALs0KFX&3&Yj z7Ky7^xA?E)*EeV;m_R0AOB*roYoAkzJ4@7FmFJ%k-mB_d zt2fOw^%ikNhB+FtF)5hs4$y#Yw!m20{2W0=C&6NFxgj^jE2vRV;$K+MRcTy@FBCa^ zN++d^D@g6gX&j5Yci@x89G`?nf~b>SWjVi7GK{nS%e4&hQ9&MO8k$L8{6%CI`U8pI z){ln&0EeEZYk7Ldt@@3x~KmJyDnK3Q5^mto*%kLp}O7Gb+b5Bt z1X!vXnR}0ZaXg?NQ4W4l+vXO&IhFV+_~*#FQ&m;qv#oiYSrrXMThF7b>fEd?E8Be_ zcHk=z894&?9nLyp&Cp04jccvrP<7J=lUU8!3gI<9Ajd*?C_0T51R=wAP%i&$AksXz1XK%OPe0$_J&+D1vLg zi`x1qzvB5zl*3umiD+ox8I?;q)VW)hh!5@F*ylq~#ZI}MTGK{igfRe6fTk}Y6)IQ8pkL?SwvL~s+!JAen)_Z_g? z)Mts8*iKBZpzc2lf!_jExnp<&|`B~I03zpPW!<*`QNOs%H5nfHh*zHm;g9>eH zp!E#~VU=ZCo(joKb|K?rBL3G<5ATlGIz#Z@_;qxbFOMb4d@gjaK3O@It5aqF0LG?~ z>;~g4XP8s9?7LRyfH1D=N5e~yN{W8+?fJ9YVVvuB#p*(KiMA7+{?`PaT znDWs5Vb$Z{??2Pn!XIYk(duQHXvT)fpOoyIvVO{jQ;=tJ{ah- z{SBL~O2yxR_Ve}`2CO_5B9+=D9ZelxO4gz2VZk!2d+ z5QvhhpES$v)>e`RQE#UfCldp~Mz`o6PI|+d=Ds5|vu3#e(zi(9xL`r^sraaO|?c+a4jW24xsP>k%y<@t#R^z_H2swo}X zjH)fW5J)%yQB18;RvFqbPXuzmt}|IZwvHfxNLAZ=a0gx?;J+Jk}iYN@~D=9at3W;QH=F8vj zjk4y3bp*pJ1|dOH>Gi>BiL7|1C%4Mi1M82LLBhO&h&CKw5=wwt(vc7zb3nWSa(Oqv z_RMLjVkj0ESx(Z!zwL(lt27YCBuFKwb?&L_`eO=8nDYQ;jcTdNn>tC|P8bV6IwHxk zb3AR_p5L}Sl1S8vJmI(t1-0xj9*Q^?Fo7(<5L}MZ36wi z*Z?P=J?U{!7Nk~Fa=UV$~Ro4l;b(2k~R!3$at{8 z0O46T<#%NRf~+rm7}Cj0RTZQ_2sggo_$jAr#)ea2ZUJ6#^-D_1sTDz_P2AXW*Z?xE ztW}Y=2itpDfEW9LfF^0@D#BRlNc7u%*cnHcdFoub+CMJi>-E6>l=N*D_?Bh

    bpS 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

    !*D&8h6JxI0iT~!=3 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

  • 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 OrOy)s-}JOolmB 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μK$hqSft=H4Gk7 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�ZGpp**XG^H!EEw0mR40f@=rL*DHMK9;lE*Q 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±yH~y*=^KCrE3WyGv2T3*90`JH4%rXQ)TX(9-_^ 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

    PmS;UoOok?jcMd__d~TJ4mUKb|uepbO6IK#c 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≷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�qa) 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�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

    ?x_0*;|dP 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ESP (Hosted Slave) - ESP Firmware - ESP HCI Driver - Standard ESP IDF - components - TCP/IP Stack - Host MCU/MPU - SPI/SDIO/UART - Application - ESP Host Driver - ESP Hosted - components - Bluetooth Stack - 3rd Party - components - ESP Wifi Driver - Legend - - \ No newline at end of file diff --git a/resources/espressif__esp_hosted/docs/images/hosted_diagram-ditaa.txt b/resources/espressif__esp_hosted/docs/images/hosted_diagram-ditaa.txt deleted file mode 100644 index c8fde3c..0000000 --- a/resources/espressif__esp_hosted/docs/images/hosted_diagram-ditaa.txt +++ /dev/null @@ -1,48 +0,0 @@ - /----------------------------------------\ - | | - | | - | /----------------------------------\ | - | | cEEE | | - | | Application | | - | | | | - | +----------------+-----------------+ | - | | cEEE |cEEE | | - | | TCP/IP Stack |Bluetooth Stack | | - | | | | | - | +----------------+-----------------+ | - | | | | - | | cAFF ESP Host Driver | | - | | | | - | \----------------------------------/ | - | | - | Host MCU/MPU | - | | - \----------------------------------------/ - ^ - | - |SPI/SDIO/UART - | - v - /----------------------------------------\ - | | - | ESP (Hosted Slave) | - | | - | /----------------------------------\ | - | | | | - | | cAFF ESP Firmware | | - | | | | - | +-----------------+----------------+ | - | |cBLU |cBLU | | - | |ESP Wifi Driver |ESP HCI Driver | | - | | | | | - | \-----------------+----------------/ | - | | - | | - \----------------------------------------/ - ----------------------------------------------------------- -Legend - -/----\ /----\ /----\ -|cEEE|3rd Party |cAFF|ESP Hosted |cBLU| Standard ESP IDF -\----/ components \----/components \----/ components diff --git a/resources/espressif__esp_hosted/docs/images/hosted_wifi_call.svg b/resources/espressif__esp_hosted/docs/images/hosted_wifi_call.svg deleted file mode 100644 index 11b54e3..0000000 --- a/resources/espressif__esp_hosted/docs/images/hosted_wifi_call.svg +++ /dev/null @@ -1 +0,0 @@ -Host with ESP-HostedSlave ESP-HostedApplicationApplicationWi-Fi RemoteWi-Fi RemoteESP HostedESP HostedHost TransportHost TransportSlave TransportSlave TransportSlave HostedSlave HostedESP-IDF Wi-Fi LibraryESP-IDF Wi-Fi LibraryWi-Fi HardwareWi-Fi Hardwareesp_wifi_xxx()esp_wifi_remote_xxx()SPI/SDIOesp_wifi_xxx()Wi-Fi actionresponsereturn value +data (if any)SPI/SDIOreturn value +data (if any) \ No newline at end of file diff --git a/resources/espressif__esp_hosted/docs/images/hosted_wifi_call.txt b/resources/espressif__esp_hosted/docs/images/hosted_wifi_call.txt deleted file mode 100644 index 7d16b97..0000000 --- a/resources/espressif__esp_hosted/docs/images/hosted_wifi_call.txt +++ /dev/null @@ -1,49 +0,0 @@ -@startuml - -skinparam BoxPadding 20 - -box "Host with ESP-Hosted" #LightBlue -participant Application as app -participant "Wi-Fi Remote" as remote -participant "ESP Hosted" as hostedh -participant "Host Transport" as transporth -end box - -box "Slave ESP-Hosted" #LightGrey -participant "Slave Transport" as transports -participant "Slave Hosted" as hosteds -participant "ESP-IDF Wi-Fi Library" as api -participant "Wi-Fi Hardware" as wifi -end box - -skinparam ArrowThickness 1 - -app -> remote : esp_wifi_xxx() -remote -> hostedh : esp_wifi_remote_xxx() -hostedh -> transporth - -skinparam ArrowThickness 5 - -transporth -> transports : SPI/SDIO - -skinparam ArrowThickness 1 - -transports -> hosteds -hosteds -> api : esp_wifi_xxx() -api -> wifi -wifi -> wifi : Wi-Fi action -wifi --> api : response -api --> hosteds : return value +\ndata (if any) -hosteds --> transports - -skinparam ArrowThickness 5 - -transports --> transporth : SPI/SDIO - -skinparam ArrowThickness 1 - -transporth --> hostedh -hostedh --> remote -remote --> app : return value +\ndata (if any) - -@enduml diff --git a/resources/espressif__esp_hosted/docs/images/native_wifi_call.svg b/resources/espressif__esp_hosted/docs/images/native_wifi_call.svg deleted file mode 100644 index acbfb8d..0000000 --- a/resources/espressif__esp_hosted/docs/images/native_wifi_call.svg +++ /dev/null @@ -1 +0,0 @@ -ApplicationApplicationESP-IDF Wi-Fi LibraryESP-IDF Wi-Fi LibraryWi-Fi HardwareWi-Fi Hardwareesp_wifi_xxx()Wi-Fi actionresponsereturn value +data (if any) \ No newline at end of file diff --git a/resources/espressif__esp_hosted/docs/images/native_wifi_call.txt b/resources/espressif__esp_hosted/docs/images/native_wifi_call.txt deleted file mode 100644 index 86cdcf5..0000000 --- a/resources/espressif__esp_hosted/docs/images/native_wifi_call.txt +++ /dev/null @@ -1,13 +0,0 @@ -@startuml - -participant Application as app -participant "ESP-IDF Wi-Fi Library" as api -participant "Wi-Fi Hardware" as wifi - -app -> api : esp_wifi_xxx() -api -> wifi -wifi -> wifi : Wi-Fi action -wifi --> api : response -api --> app : return value +\ndata (if any) - -@enduml diff --git a/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_init.svg b/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_init.svg deleted file mode 100644 index 0395c2b..0000000 --- a/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_init.svg +++ /dev/null @@ -1 +0,0 @@ -SPI HD Host and Slave InitializationSlaveSlaveHostHostInitRead SLAVE_READY regNot Ready (!0xEE)(loop)Now Ready: SetSLAVE_READY = 0xEERead SLAVE_READY regReady (0xEE)Set SLAVE_CONTROL = 1Open Data PathPrepare Capability dataAssert Data_ReadyRead DataCapabilityConfigure basedon slave capabilities \ No newline at end of file diff --git a/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_init.txt b/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_init.txt deleted file mode 100644 index 6ff9a46..0000000 --- a/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_init.txt +++ /dev/null @@ -1,34 +0,0 @@ -@startuml - -Title SPI HD Host and Slave Initialization - -participant Slave -participant Host - -note across: Init - -Host -> Slave: Read SLAVE_READY reg -Slave -> Host: Not Ready (!0xEE) - -...(loop)... - -note over Slave: Now Ready: Set\nSLAVE_READY = 0xEE - -Host -> Slave: Read SLAVE_READY reg -Slave -> Host: Ready (0xEE) - -Host -> Slave: Set SLAVE_CONTROL = 1 - -note over Slave: Open Data Path - -note over Slave: Prepare Capability data - -Slave -> Host: Assert Data_Ready - -Host -> Slave: Read Data - -Slave -> Host: Capability - -note over Host: Configure based\non slave capabilities - -@enduml diff --git a/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_read.svg b/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_read.svg deleted file mode 100644 index 8a48a08..0000000 --- a/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_read.svg +++ /dev/null @@ -1 +0,0 @@ -SPI HD Host ReadSlaveSlaveHostHostPrepare data to sendAssert Data_ReadyRead TX_BUF_LENBytes to transfer =TX_BUF_LEN - (cached)TX_BUF_LENSend CMD9De-Assert Data_ReadySend RDDMATransfer DataCMD8(at end of transfer)update (cached)TX_BUF_LEN \ No newline at end of file diff --git a/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_read.txt b/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_read.txt deleted file mode 100644 index b9e1385..0000000 --- a/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_read.txt +++ /dev/null @@ -1,27 +0,0 @@ -@startuml - -Title SPI HD Host Read - -participant Slave -participant Host - -note over Slave: Prepare data to send - -Slave -> Host: Assert Data_Ready - -Host -> Slave: Read TX_BUF_LEN -note over Host: Bytes to transfer =\nTX_BUF_LEN - (cached)TX_BUF_LEN - -Host -> Slave: Send CMD9 - -note over Slave: De-Assert Data_Ready - -Host -> Slave: Send RDDMA - -Slave -> Host: Transfer Data - -Host -> Slave: CMD8\n(at end of transfer) - -note over Host: update (cached)TX_BUF_LEN - -@enduml diff --git a/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_write.svg b/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_write.svg deleted file mode 100644 index 124dc12..0000000 --- a/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_write.svg +++ /dev/null @@ -1 +0,0 @@ -SPI HD Host WriteSlaveSlaveHostHostPrepare data to sendRead RX_BUF_LENavailable buffers =RX_BUF_LEN - (cached)RX_BUF_LENloop reading RX_BUF_LEN untilbuffers availableSend WRDMATranfer DataSend WR_DONE(at end of transfer)update (cached)RX_BUF_LEN \ No newline at end of file diff --git a/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_write.txt b/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_write.txt deleted file mode 100644 index 4919aca..0000000 --- a/resources/espressif__esp_hosted/docs/images/spi_hd_sequence_write.txt +++ /dev/null @@ -1,24 +0,0 @@ -@startuml - -Title SPI HD Host Write - -participant Slave -participant Host - -note over Host: Prepare data to send - -Host -> Slave: Read RX_BUF_LEN - -note over Host: available buffers =\nRX_BUF_LEN - (cached)RX_BUF_LEN - -note over Host: loop reading RX_BUF_LEN until\nbuffers available - -Host -> Slave: Send WRDMA - -Host -> Slave: Tranfer Data - -Host -> Slave: Send WR_DONE\n(at end of transfer) - -note over Host: update (cached)RX_BUF_LEN - -@enduml diff --git a/resources/espressif__esp_hosted/docs/images/spi_hd_timing_2_lines.svg b/resources/espressif__esp_hosted/docs/images/spi_hd_timing_2_lines.svg deleted file mode 100644 index 721d93e..0000000 --- a/resources/espressif__esp_hosted/docs/images/spi_hd_timing_2_lines.svg +++ /dev/null @@ -1 +0,0 @@ -SPI HD Transaction Using Two Data LinesChip SelectClockData0-1Command (D0 only)Address (D0-1)DummyData (D0-1)...8 clk4 clk8 clk4 clk4 clkOptional for SPI Transactionswithout data \ No newline at end of file diff --git a/resources/espressif__esp_hosted/docs/images/spi_hd_timing_2_lines.txt b/resources/espressif__esp_hosted/docs/images/spi_hd_timing_2_lines.txt deleted file mode 100644 index e96f1e7..0000000 --- a/resources/espressif__esp_hosted/docs/images/spi_hd_timing_2_lines.txt +++ /dev/null @@ -1,42 +0,0 @@ -@startuml -hide time-axis - -binary "Chip Select" as cs -clock "Clock" as clk with period 1 -concise "Data0-1" as data - -Title SPI HD Transaction Using Two Data Lines - -@0 -cs is high -data is {-} - -@+1 -cs is low -data is "Command (D0 only)" - -@+8 -data is "Address (D0-1)" - -@+4 -data is "Dummy" - -@+8 -data is "Data (D0-1)" - -@+4 -data is "..." - -@+4 -cs is high -data is {-} - -@1 <-> @9 : 8 clk -@9 <-> @13 : 4 clk -@13 <-> @21 : 8 clk -@21 <-> @25 : 4 clk -@25 <-> @29 : 4 clk - -highlight 21 to 29 : Optional for SPI Transactions\nwithout data - -@enduml diff --git a/resources/espressif__esp_hosted/docs/images/spi_hd_timing_4_lines.svg b/resources/espressif__esp_hosted/docs/images/spi_hd_timing_4_lines.svg deleted file mode 100644 index dcd45a7..0000000 --- a/resources/espressif__esp_hosted/docs/images/spi_hd_timing_4_lines.svg +++ /dev/null @@ -1 +0,0 @@ -SPI HD Transaction Using Four Data LinesChip SelectClockData0-3Command (D0 only)Address (D0-3)DummyData (D0-3)...8 clk2 clk8 clk2 clk2 clkOptional for SPI Transactionswithout data \ No newline at end of file diff --git a/resources/espressif__esp_hosted/docs/images/spi_hd_timing_4_lines.txt b/resources/espressif__esp_hosted/docs/images/spi_hd_timing_4_lines.txt deleted file mode 100644 index e9cdd28..0000000 --- a/resources/espressif__esp_hosted/docs/images/spi_hd_timing_4_lines.txt +++ /dev/null @@ -1,42 +0,0 @@ -@startuml -hide time-axis - -binary "Chip Select" as cs -clock "Clock" as clk with period 1 -concise "Data0-3" as data - -Title SPI HD Transaction Using Four Data Lines - -@0 -cs is high -data is {-} - -@+1 -cs is low -data is "Command (D0 only)" - -@+8 -data is "Address (D0-3)" - -@+2 -data is "Dummy" - -@+8 -data is "Data (D0-3)" - -@+2 -data is "..." - -@+2 -cs is high -data is {-} - -@1 <-> @9 : 8 clk -@9 <-> @11 : 2 clk -@11 <-> @19 : 8 clk -@19 <-> @21 : 2 clk -@21 <-> @23 : 2 clk - -highlight 19 to 23 : Optional for SPI Transactions\nwithout data - -@enduml diff --git a/resources/espressif__esp_hosted/docs/performance_optimization.md b/resources/espressif__esp_hosted/docs/performance_optimization.md deleted file mode 100644 index b7cf70c..0000000 --- a/resources/espressif__esp_hosted/docs/performance_optimization.md +++ /dev/null @@ -1,102 +0,0 @@ -# ESP-Hosted Performance Optimization Guide - -Quick reference for optimizing ESP-Hosted performance across different transport interfaces. - -## Quick Start - High Performance Config - -For immediate performance gains, add these to your host's `sdkconfig.defaults.esp32XX` file: - -``` -# Wi-Fi Performance -CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=16 -CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=64 -CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=64 -CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=y -CONFIG_ESP_WIFI_TX_BA_WIN=32 -CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=y -CONFIG_ESP_WIFI_RX_BA_WIN=32 - -# TCP/IP Performance -CONFIG_LWIP_TCP_SND_BUF_DEFAULT=65534 -CONFIG_LWIP_TCP_WND_DEFAULT=65534 -CONFIG_LWIP_TCP_RECVMBOX_SIZE=64 -CONFIG_LWIP_UDP_RECVMBOX_SIZE=64 -CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=64 -CONFIG_LWIP_TCP_SACK_OUT=y -``` - -> **Note**: Adjust values based on your MCU host's memory capacity and as per change as per build system - -## Transport Optimization - -### SDIO (Highest Performance) -- **Clock Speed**: Start at 20 MHz, optimize up to 50 MHz -- **Bus Width**: Use 4-bit mode -- **Hardware**: Use PCB with controlled impedance, external pull-ups (51kΩ) -- **Checksum**: Optional (SDIO hardware handles verification) - -``` -CONFIG_ESP_HOSTED_SDIO_CLOCK_FREQ_KHZ=40000 -CONFIG_ESP_HOSTED_SDIO_BUS_WIDTH=4 -``` - -> [!NOTE] -> See [Performance and Memory Usage](sdio.md#9-performance-and-memory-usage) on the trade-off between SDIO Performance and Memory Use - -### SPI Full-Duplex -- **Clock Speed**: ESP32: ≤10 MHz, Others: ≤40 MHz -- **Hardware**: Use IO_MUX pins, short traces (≤10cm for jumpers) -- **Checksum**: Mandatory (SPI hardware lacks error detection) - -``` -CONFIG_ESP_HOSTED_SPI_CLK_FREQ=40 -``` - -### SPI Half-Duplex -- **Data Lines**: Use 4-line (Quad SPI) mode -- **Similar optimizations as SPI Full-Duplex** - -### UART (Lowest Performance) -- **Baud Rate**: Use 921600 (highest stable rate) -- **Best for**: Low-throughput applications, debugging - -## Memory Optimization - -- Reduce memory footprint for resource-constrained applications: - - ``` - # Reduce queue sizes - CONFIG_ESP_HOSTED_SDIO_TX_Q_SIZE=10 # Default: 20 - CONFIG_ESP_HOSTED_SDIO_RX_Q_SIZE=10 # Default: 20 - - # Enable memory pooling - CONFIG_ESP_HOSTED_USE_MEMPOOL=y - ``` - -- Disable the not-in-use features - - For example, disable bluetooth if not needed -- Use external RAM, for higher memory (PSRAM is supported) -- Optimise internal RAM using [ESP-IDF iram optimization tricks](https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-guides/performance/ram-usage.html) -## Hardware Guidelines - -### Critical Requirements -1. **Signal Integrity**: Use PCB designs for production, jumpers only for prototyping -2. **Power Supply**: Stable 3.3V, proper decoupling capacitors -3. **Trace Length**: Match lengths, especially clock vs data lines -4. **Pull-ups**: Required for SDIO (51kΩ) on CMD, D0-D3 lines - -### PCB Design Checklist -- [ ] Equal trace lengths for communication signals -- [ ] Ground plane for signal stability -- [ ] Controlled impedance traces (50Ω typical) -- [ ] Series termination resistors for high-speed signals -- [ ] Extra GPIOs reserved for future features (deep sleep, etc.) - -## Development Workflow -1. **Proof of Concept**: Start with jumper wires, low clock speeds -2. **Incremental Optimization**: Increase transport clock step by step -3. **Hardware Validation**: Move to PCB for final validation -4. **Performance Tuning**: Optimize buffers and configurations -5. **Disable features**: Any unsued components from ESP-IDF or -ESP-Hosted-MCU features could be disabled for more memory -availability. diff --git a/resources/espressif__esp_hosted/docs/sdio.md b/resources/espressif__esp_hosted/docs/sdio.md deleted file mode 100644 index 219d02d..0000000 --- a/resources/espressif__esp_hosted/docs/sdio.md +++ /dev/null @@ -1,640 +0,0 @@ -# ESP-Hosted SDIO Operation - -Sections 3 below covers the hardware requirements like external pull-up requirement, possible efuse burning for co-processor and other hardware aspects to consider for SDIO. - -Section 4 to 8 covers the complete step-wise setup co-processor and host with SDIO, for 1-bit and 4-bit SDIO. - -If you wish to skip the theory, you can refer the [Quick Start Guide](#1-quick-start-guide) below. For quick navigation, please unfold the Table of Contents below. - -

    -Table of Contents -1. [Quick Start Guide](#1-quick-start-guide) - -2. [Introduction](#2-introduction) - -3. [Hardware Considerations](#3-hardware-considerations) || [3.1 General Considerations](#31-general-considerations) || [3.2 Pull-up Resistors](#32-pull-up-resistors) || [3.3 Voltage Levels & eFuse burning](#33-voltage-levels--efuse-burning) || [3.4 Jumper Wires](#34-jumper-wires) || [3.5 PCB Design](#35-pcb-design) || [3.6 Advanced Considerations](#36-advanced-considerations) || [3.7 Testing Connections](#37-testing-connections) - -4. [Hardware Setup](#4-hardware-setup) - -5. [Set-Up ESP-IDF](#5-set-up-esp-idf) - -6. [Flashing the Co-processor](#6-flashing-the-co-processor) || [6.1 Create Co-processor Project](#61-create-co-processor-project) || [6.2 Co-processor Config](#62-co-processor-config) || [6.3 Co-processor Build](#63-co-processor-build) || [6.4 Co-processor Flashing](#64-co-processor-flashing) - -7. [Flashing the Host](#7-flashing-the-host) || [7.1 Select Example to Run in Hosted Mode](#71-select-example-to-run-in-hosted-mode) || [7.2 Host Project Component Configuration](#72-host-project-component-configuration) || [7.3 Menuconfig, Build and Flash Host](#73-menuconfig-build-and-flash-host) - -8. [Testing and Troubleshooting](#8-testing-and-troubleshooting) - -9. [Performance and Memory Usage](#9-performance-and-memory-usage) || [9.1 Stream and Packet Mode](#91-stream-and-packet-mode) || [9.2 Double Buffering on the Host](#92-double-buffering-on-the-host) || [9.3 Reducing Memory Usage](#93-reducing-memory-usage) || [9.4 Switching to Packet Mode](#94-switching-to-packet-mode) - -10. [References](#10-references) - -
    - -## 1 Quick Start Guide - -This section provides a brief overview of how to get started with ESP-Hosted using SDIO mode. For detailed instructions on each step, please refer to the following sections: - -- [4. Hardware Setup](#4-hardware-setup) -- [5. Set-Up ESP-IDF](#5-set-up-esp-idf) -- [6. Flashing the Co-processor](#6-flashing-the-co-processor) -- [7. Flashing the Host](#7-flashing-the-host) -- [8. Testing and Troubleshooting](#8-testing-and-troubleshooting) -- [9. Performance and Memory Usage](#9-performance-and-memory-usage) - -These sections will guide you through the process of flashing both the co-processor and host devices, setting up the hardware connections, and verifying successful communication. - -## 2 Introduction - -SDIO is a high-speed bus that uses the same SDMMC hardware protocol used for SD Cards, but with its own set of commands for communicating with SDIO aware peripherals. - -> [!NOTE] -> Only some ESP32 chips support the SDIO Protocol: -> -> A. SDIO as Slave (Co-processor): ESP32, ESP32-C6 \ -> B. SDIO as Master: ESP32, ESP32-S3, ESP32-P4 - - -## 3 Hardware Considerations - -### 3.1 GPIO Configuration for SDIO - -The SDIO interface can use almost any GPIO pins. For maximum speed and minimal delays, it is recommended to select the SDIO pin configuration that uses the dedicated `IO_MUX` pins. Hardware connections in later sections use `IO_MUX` pins, as much as possible. -ESP32 only supports `IO_MUX` pins for SDIO. other chips may support other flexible pins using GPIO_Matrix, with small performance penalty. - -### 3.2 Extra GPIO Signals Required - -Extra GPIO signals are required for SDIO on Hosted and can be assigned to any free GPIO pins: - -- `Reset` signal: an output signal from the host to the co-processor. When asserted, the host resets the co-processor. This is done when ESP-Hosted is started on the host, to synchronise the state of the host and co-processor. - -> [!NOTE] -> The `Reset` signal suggested to connect to the `EN` or `RST` pin on the co-processor, It is however configurable to use another GPIO pin. -> -> To configure this, use `idf.py menuconfig` on the co-processor: **Example configuration** ---> **SDIO Configuration** ---> **Host SDIO GPIOs** and set **Slave GPIO pin to reset itself**. - - -### 3.3 General Hardware Considerations - -- For SDIO, signal integrity is crucial, hence jumper wires are not recommended. -- Jumper wires are only suitable for initial testing and prototyping. -- If you wish, you can test SDIO 1-Bit mode using jumper cables, only for initial testing and prototyping. Pull-Ups are still mandatory for all, [CMD, DAT0, DAT1, DAT2, DAT3] irrespective how do you connect, using jumpers or PCB. -- Ensure equal trace lengths for all SDIO connections, whether using jumper wires or PCB traces. -- Very strict requirement, to keep wires as short as possible, under 5 cm. Smaller the better. -- Use the lower clock frequency like 5 MHz for evaluation. Once solution verified, optimise the clock frequency in increasing steps to max possible value. Max SDIO host clock frequency that all SDIO co-processors can work is upto 50 MHz. -- Provide proper power supply for both host and co-processor devices. Lower or incorrect power supplies can cause communication issues & suboptimal performance. - -### 3.4 Pull-up Resistors -- SDIO requires external pull-up resistor (51 kOhm recommended) and clean signals for proper operation. -- For this reason, it is not recommended to use jumper cables. Use PCB traces to connect between a Hosted Master and Co-processor. -- For full requirements, refer to ESP-IDF SDIO pull-up resistor requirements at [Pull-Up Requirements](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/sd_pullup_requirements.html). - -### 3.5 Voltage Levels & eFuse burning -- SDIO expects all signals to be at 3.3V level. If you are using level shifter, ensure that the level shifter output is set to 3.3V. -- If you use classic ESP32, there is good chance that you would need to burn the eFuse. -- eFuse burning is one time and **non reversible process**. You may brick your device, if burn the eFuse incorrectly. -- Please check full documentation at [eFuse burning](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/sd_pullup_requirements.html) If your chip is listed explicitly, not to burn eFuse, you can ignore this. -- This document covers below issues and their solutions: - - External pull-ups to be used on: CMD, DAT0, DAT1, DAT2, DAT3, with 51K Ohm recommended, irrespective of jumpers or PCB. - - Bootstrapping pin and DAT2 voltage issues and solution of eFuse burning, with complete procedure. - - -### 3.6 Jumper Wires (only for SDIO 1-Bit mode) - -- External Pull-ups mandatory for CMD, DAT0, DAT1, DAT2, DAT3 of 51 kOhm. -- Smaller the better, strictly under 5 cm. All equal length. -- Use high-quality, low-capacitance jumper wires. -- Arrange wires to minimize crosstalk, especially for clock and data lines. -- Possibly, use twisted pairs for clock and data lines to reduce electromagnetic interference. -- If possible, use a ground wire between every signal wire to improve signal integrity. -- Connect as many grounds as possible to improve common ground reference and reduce ground noise. - -### 3.7 PCB Design - -For optimal performance and reliability in production designs: - -- Ensure equal trace lengths for all SDIO signals (CLK, CMD, DAT0, DAT1, DAT2, DAT3) as much as possible. This practice, known as length matching, is crucial for maintaining signal integrity and reducing timing skew, especially at higher frequencies. -- If perfect length matching is not possible, prioritize matching the clock (CLK) trace length with the data lines. -- Use controlled impedance traces for high-speed signals. -- Place bypass capacitors close to the power pins of both the host and co-processor devices. -- Consider using series termination resistors on the clock and data lines to reduce reflections. -- For high-speed designs, use a 4-layer PCB with dedicated power and ground planes. - -### 3.8 Advanced Considerations - -- Calculate the maximum allowed trace length based on your clock frequency and PCB material. -- Consider the capacitive load on the SDIO bus, especially for longer traces -- For very high-speed designs, consider using differential signaling techniques. -- Implement proper EMI/EMC design techniques to minimize electromagnetic interference. - -## 4 Hardware Setup - -Setting up the hardware involves connecting the master and co-processor devices via the SDIO pins and ensuring all extra GPIO signals are properly connected. Below is the table of connections for the SDIO setup between a host ESP chipset and another ESP chipset as co-processor: - -### Host Connections - -SDIO-capable host microcontrollers (MCUs) can connect their GPIO lines to the co-processor as detailed in the table below. - -#### GPIO Flexibility - -- The ESP32 supports SDIO host on fixed GPIOs. -- The ESP32-S3 supports SDIO host on flexible GPIOs. -- For the ESP32-P4, Slot 0 supports fixed GPIOs, while Slot 1 supports flexible GPIOs. - -By default, Slot 1 is used on the ESP32-P4 to take advantage of its flexible pin mapping; however, Slot 0 is also supported. Parallel access to both Slot 0 and Slot 1 is supported for all hosts. - - -| Signal | ESP32 | ESP32-S3 | -|-----------|-------|----------| -| CLK | 14 | 19 | -| CMD | 15+[ext-pull-up](#34-pull-up-resistors) | 47+[ext-pull-up](#34-pull-up-resistors) | -| D0 | 2+[ext-pull-up](#34-pull-up-resistors) | 13+[ext-pull-up](#34-pull-up-resistors) | -| D1 | 4+[ext-pull-up](#34-pull-up-resistors) | 35+[ext-pull-up](#34-pull-up-resistors) | -| D2 | 12+[ext-pull-up](#34-pull-up-resistors) | 20+[ext-pull-up](#34-pull-up-resistors) | -| D3 | 13+[ext-pull-up](#34-pull-up-resistors) | 9+[ext-pull-up](#34-pull-up-resistors) | -| Reset Out | 5 | 42 | - -### ESP32-P4-Function-EV-Board Host Pin Mapping - -| Signal | ESP32-P4 with ESP32-C6 Co-processor | ESP32-P4 with ESP32-C5 Co-processor | -|-----------|-------------------------------------|-------------------------------------| -| CLK | 18 | 33 | -| CMD | 19+[ext-pull-up](#34-pull-up-resistors) | 4+[ext-pull-up](#34-pull-up-resistors) | -| D0 | 14+[ext-pull-up](#34-pull-up-resistors) | 20+[ext-pull-up](#34-pull-up-resistors) | -| D1 | 15+[ext-pull-up](#34-pull-up-resistors) | 23+[ext-pull-up](#34-pull-up-resistors) | -| D2 | 16+[ext-pull-up](#34-pull-up-resistors) | 21+[ext-pull-up](#34-pull-up-resistors) | -| D3 | 17+[ext-pull-up](#34-pull-up-resistors) | 22+[ext-pull-up](#34-pull-up-resistors) | -| Reset Out | 54 | 53 | - -> - -### Co-processor connections - -SDIO slave provider ESP chips are : ESP32, ESP32-C5, ESP32-C6.\ -All these chips have fixed GPIOs SDIO support. - -| Signal | ESP32 | ESP32-C6 | ESP32-C5 | -|----------|-------|----------|----------| -| CLK | 14 | 19 | 9 | -| CMD | 15 | 18 | 10 | -| D0 | 2 | 20 | 8 | -| D1 | 4 | 21 | 7 | -| D2 | 12 | 22 | 14 | -| D3 | 13 | 23 | 13 | -| Reset In | EN | EN/RST | RST | - -> [!NOTE] -> -> - External pull-ups are mandatory - -## 5 Set-Up ESP-IDF - -Before setting up the ESP-Hosted co-processor & host for SDIO mode, ensure that ESP-IDF is properly installed and set up on your system. - -### 5.1 Installer Way - -- **Windows** - - Install and setup ESP-IDF on Windows as documented in the [Standard Setup of Toolchain for Windows](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/windows-setup.html). - - Use the ESP-IDF [Powershell Command Prompt](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/windows-setup.html#using-the-command-prompt) for subsequent commands. - -- **Linux or MacOS** - - For bash: - ```bash - bash docs/setup_esp_idf__latest_stable__linux_macos.sh - ``` - - For fish: - ```fish - fish docs/setup_esp_idf__latest_stable__linux_macos.fish - ``` - -### 5.2 Manual Way - -Please follow the [ESP-IDF Get Started Guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/index.html) for manual installation. - -## 6. Flashing the Co-processor - -| Supported Co-processor Targets | ESP32 | ESP32-C6 | ESP32-C5 | -| ------------------------------ | ----- | -------- | -------- | - -There are four steps to flash the ESP-Hosted co-processor firmware: - -### 6.1 Create Co-processor Project - -1. Navigate to the directory where you want to create the co-processor project. -2. Use the following command to create a new project: - ```bash - idf.py create-project - ``` - Replace `` with your desired project name. - -### 6.2 Co-processor Config - -1. Navigate to the project directory: - ```bash - cd - ``` -2. Configure the project: - ```bash - idf.py menuconfig - ``` - -#### 6.2.1 Transport config - - Navigate to "Example configuration" -> "Transport layer" - - Select "SDIO" - -#### 6.2.2 Any other config - - Optionally, Configure any additional SDIO-specific settings like co-processor GPIOs, SDIO Mode, SDIO timing,etc. - -###### Generated files -- Generated config files are (1) `sdkconfig` file and (2) internal `sdkconfig.h` file. -- Please note, any manually changes done to these generated files, would not take effect. - -###### Defaulting specific config (Optional) -- This is advanced option, so please be careful. -- To mark some config options as default, you can add specific config line in file, `sdkconfig.defaults.`. So whenever next time building, you do not need to re-configure. - -### 6.3 Co-processor Build - -1. Build the project: - ```bash - idf.py build - ``` - -### 6.4 Co-processor Flashing - -There are two methods to flash the ESP-Hosted co-processor firmware: - -#### 6.4.1 Serial Flashing (Initial Setup) - -For the initial setup or when OTA is not available, use serial flashing. - -Flash the co-processor firmware using -``` -idf.py -p flash -``` - -> [!NOTE] -> -> If you are not able to flash the co-processor, there might be a chance that host is not allowing to to do so. -> -> Put host in bootloader mode using following command and then retry flashing the co-processor -> -> `esptool.py -p **** --before default_reset --after no_reset run` -> -> Flash the co-processor and log the output: -> -> `idf.py -p flash monitor` - -##### 6.4.2 Co-processor OTA Flashing (Subsequent Updates) - -For subsequent updates, you can re-use ESP-Hosted-MCU transport, as it should be already working. While doing OTA, Complete co-processor firmware image is not needed and only co-processor application partition, 'network_adapter.bin' need to be re-flashed remotely from host. - -1. Ensure your co-processor device is connected and communicating with the host with existing ESP-Hosted-MCU. - -2. Create a web server -You can re-use your existing web server or create a new locally for testing. Below is example to do it. - - Make a new directory so that web server can be run into it and navigate into it - - Create simple local web server using python3 - - ```bash - python3 -m http.server 8080 - ``` -3. Copy the co-processor app partition `network_adapter.bin` in the directory where you created the web server. - - The `network_adapter.bin` can be found in your co-processor project build at `/build/network_adapter.bin` - -4. Verify if web server is set-up correctly - - Open link `http://127.0.0.1:8080` in the browser and check if network_adapter.bin is available. - - Right click and copy the complete URL of this network_adapter.bin and note somewhere. - -5. On the **host side**, use the `esp_hosted_slave_ota` function to initiate the OTA update: - - ```c - #include "esp_hosted.h" - - const char* image_url = "http://example.com/path/to/network_adapter.bin"; //web server full url - esp_err_t ret = esp_hosted_slave_ota(image_url); - if (ret == ESP_OK) { - printf("co-processor OTA update failed[%d]\n", ret); - } - ``` - - This function will download the firmware in chunk by chunk as http client from the specified URL and flash it to the co-processor device through the established transport. - In above web server example, You can paste the copied url earlier. - - -6. Monitor the OTA progress through the console output on both the host and co-processor devices. - -> [!NOTE] -> -> A. The `esp_hosted_slave_ota` function is part of the ESP-Hosted-MCU API and handles the OTA process through the transport layer. \ -> B. Ensure that your host application has web server connectivity to download the firmware file. \ -> C. The co-processor device doesn't need to be connected to the web server for this OTA method. - -## 7 Flashing the Host - -| Supported Host Targets | Any ESP chipset | Any Non-ESP chipset | -| ----------------------- | --------------- | ------------------- | - -Any host having SDIO master can be used as host. Please make sure the hardware configurations, like external pull-ups are installed correctly. Tthe voltage at SDIO pins is expected to be 3v3 volts. -- ESP chipsets as SDIO master - - ESP as host could be one of ESP32, ESP32-S3, ESP32-P4. - - For ESP32 as host, may need additional **eFuse burning** for voltage correction on one of data pin. ESP32-S3 and ESP32-P4 does **not** need this. -- Non ESP SDIO Master - - Any other host having SDIO master can be used as host. Please make sure the hardware configurations, like ([external Pull-up Resistors](#42-pull-up-resistors)) are installed correctly. Tthe voltage at SDIO pins is expected to be 3v3 volts. -- Pull-ups required for CMD, DAT0, DAT1, DAT2, DAT3 lines (for both 1-Bit and 4-Bit SDIO) -- eFuse burning may be required for classic ESP32. -- Pull-Up and eFuse burning is detailed in [(3) Hardware Considerations](#3-hardware-considerations) - -### 7.1 Select Example to Run in Hosted Mode - -Select an example from the [ESP-IDF examples directory](https://github.com/espressif/esp-idf/tree/master/examples) that you wish to run in ESP-Hosted mode. All Wi-Fi and Bluetooth examples are supported. For simplicity and demonstration purposes, we will use the [ESP-IDF iperf example](https://github.com/espressif/esp-idf/tree/master/examples/wifi/iperf). - -### 7.2 Host Project Component Configuration - -Now that ESP-IDF is set up, follow these steps to prepare the host: - -###### 1. Navigate to the iperf example in your ESP-IDF directory: - ``` - cd $IDF_PATH/examples/wifi/iperf - ``` - -###### 2. Dependency components - Add the required components to the project's `idf_component.yml` file: - ``` - idf.py add-dependency "espressif/esp_wifi_remote" - idf.py add-dependency "espressif/esp_hosted" - ``` - -###### 3. Remove conflicting configuration - Open the `main/idf_component.yml` file and remove/comment the following block if present: - ``` - # ------- Delete or comment this block --------- - espressif/esp-extconn: - version: "~0.1.0" - rules: - - if: "target in [esp32p4]" - # ----------------------------------- - ``` - This step is necessary because esp-extconn and esp-hosted cannot work together. - -###### 4. Disable native Wi-Fi if available - If your host ESP chip already has native Wi-Fi support, disable it by editing the `components/soc//include/soc/Kconfig.soc_caps.in` file and changing all `WIFI` related configs to `n`. - - If you happen to have both, host and co-processor as same ESP chipset type (for example two ESP32-C2), note an [additional step](docs/troubleshooting/#1-esp-host-to-evaluate-already-has-native-wi-fi) - - -### 7.3 Menuconfig, Build and Flash Host - -##### 1. High performance configurations - This is optional step, suggested for high performance applications. - - If using ESP32-P4 as host: - - Remove the default `sdkconfig.defaults.esp32p4` file. - - Create a new `sdkconfig.defaults.esp32p4` file with the following content: - ``` - CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=16 - CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=64 - CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=64 - CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=y - CONFIG_ESP_WIFI_TX_BA_WIN=32 - CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=y - CONFIG_ESP_WIFI_RX_BA_WIN=32 - - CONFIG_LWIP_TCP_SND_BUF_DEFAULT=65534 - CONFIG_LWIP_TCP_WND_DEFAULT=65534 - CONFIG_LWIP_TCP_RECVMBOX_SIZE=64 - CONFIG_LWIP_UDP_RECVMBOX_SIZE=64 - CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=64 - - CONFIG_LWIP_TCP_SACK_OUT=y - ``` - - For other hosts also, you can merge above configs in corresponding `sdkconfig.defaults.esp32XX` file. - -###### 2. Set environment for your host ESP chip: - - ``` - idf.py set-target - ``` - Replace `` with your specific ESP chip (e.g., esp32, esp32s3, esp32p4). - -###### 3. Flexible Menuconfig configurations - - ``` - idf.py menuconfig - ``` - ESP-Hosted-MCU host configurations are available under "Component config" -> "ESP-Hosted config" - 1. Select "SDIO" as the transport layer - 2. Change co-processor chipset currently in-use under, "Slave chipset to be used" - 3. Change SDIO Bus Width to 1-bit or 4-bit based on the co-processor using "Hosted SDIO Configuration" -> "SDIO Bus Width" - 4. Optionally, configure SDIO-specific settings like: - - - SDIO Host GPIO Pins - - - Lower SDIO Clock Speed - You can use a lower clock speed to verify the connections. Start with a clock speed between 400 kHz to 20 MHz. - To configure this, use `Menuconfig` on the Host: **Component config** ---> **ESP-Hosted config** ---> **Hosted SDIO Configuration** and set **SDIO Clock Freq (in kHz)**. - > [!NOTE] - > - > The actual clock frequency used is determined by the hardware. Use an oscilloscope or logic analyzer to check the clock frequency. - - - Using 1-bit SDIO Mode - By default, SDIO operates in 4-Bit mode. - You can set the SDIO Bus Width to 1-Bit. In 1-Bit mode, only `DAT0` and `DAT1` signals are used for data and are less affected by noise on the signal lines. This can help you verify that the SDIO protocol is working at the logical level, if you have issues getting 4-Bit SDIO to work on your prototype board. - - To configure this, use `Menuconfig` on the Host: **Component config** ---> **ESP-Hosted config** ---> **Hosted SDIO Configuration** ---> **SDIO Bus Width** to **1 Bit**. - - - SDIO Mode - Packet or Streaming mode could be used, but co-processor has to use same SDIO mode used. - -> [!NOTE] - -> Pull-ups are still required on `DAT2` and `DAT3` lines to prevent -> the SDIO slave from going into SPI mode upon startup. - -After confirming the functionality of the 1-Bit SDIO mode, you can revert to the 4-Bit mode with PCB to benefit from increased data transfer rates. Using the previous configuration, switch back to `4 Bit`. - - -###### 4. Build the project: - ``` - idf.py build - ``` - -###### 5. Flash the firmware: - ``` - idf.py -p flash - ``` - -###### 6. Monitor the output: - ``` - idf.py -p monitor - ``` - - If host was put into bootloader mode earlier, it may need manual reset - -## 8 Testing and Troubleshooting - -After flashing both the co-processor and host devices, follow these steps to connect and test your ESP-Hosted SDIO setup: - -1. Connect the hardware: - - Follow the pin assignments for SDIO as specified in [Hardware Setup](#4-hardware-setup). - - Ensure all necessary connections are made, including power, ground, and the extra GPIO signals (Data_Ready and Reset). - -2. Power on both devices. Apply correct input rating power for both chipsets. - -3. Verify the connection: - - Check the serial output of both devices for successful initialization messages. - - Look for messages indicating that the SDIO transport layer has been established. - -4. Logs at both sides: - - Host: - - ``` - I (522) transport: Attempt connection with slave: retry[0] - I (525) transport: Reset slave using GPIO[54] - I (530) os_wrapper_esp: GPIO [54] configured - I (535) gpio: GPIO[54]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 - I (1712) transport: Received INIT event from ESP32 peripheral - I (1712) transport: EVENT: 12 - I (1712) transport: EVENT: 11 - I (1715) transport: capabilities: 0xe8 - I (1719) transport: Features supported are: - I (1724) transport: - HCI over SDIO - I (1728) transport: - BLE only - I (1732) transport: EVENT: 13 - I (1736) transport: ESP board type is : 13 - - I (1741) transport: Base transport is set-up - ``` - - - Co-processor: - - ``` - I (492) fg_mcu_slave: ********************************************************************* - I (501) fg_mcu_slave: ESP-Hosted-MCU Slave FW version :: X.Y.Z - - I (511) fg_mcu_slave: Transport used :: SDIO - I (520) fg_mcu_slave: ********************************************************************* - I (529) fg_mcu_slave: Supported features are: - I (534) fg_mcu_slave: - WLAN over SDIO - I (538) h_bt: - BT/BLE - I (541) h_bt: - HCI Over SDIO - I (545) h_bt: - BLE only - ``` - -5. Test basic functionality: - - The iperf example automatically attempts to connect to the configured Wi-Fi network. Watch the serial output for connection status. - - If the automatic connection fails, you can manually initiate a Wi-Fi scan and connection: - ``` - sta_scan - sta_connect - ``` -6. Additional commands to test: - - Get IP address: `sta_ip` - - Disconnect from Wi-Fi: `sta_disconnect` - - Set Wi-Fi mode: `wifi_mode ` (where mode can be 'sta', 'ap', or 'apsta') - -7. Advanced iperf testing: - Once connected, you can run iperf tests: - - | Test Case | Host Command | External STA Command | - |-----------|--------------|----------------------| - | UDP Host TX | `iperf -u -c -t 60 -i 3` | `iperf -u -s -i 3` | - | UDP Host RX | `iperf -u -s -i 3` | `iperf -u -c -t 60 -i 3` | - | TCP Host TX | `iperf -c -t 60 -i 3` | `iperf -s -i 3` | - | TCP Host RX | `iperf -s -i 3` | `iperf -c -t 60 -i 3` | - - Note: Replace `` with the IP address of the external STA, and `` with the IP address of the ESP-Hosted device. - -> [!TIP] -> -> To measure the optimal performance, check out the [Shield Box Test Setup](shield-box-test-setup.md). - -8. Troubleshooting: - - Consider using a lower clock speed or checking your [hardware setup](docs/sdio.md#7-hardware-setup) if you experience communication problems. - - ESP-Hosted-MCU troubleshooting guide: [docs/troubleshooting.md](docs/troubleshooting.md) - -9. Monitoring and debugging: - - Use the serial monitor on both devices to observe the communication between the host and co-processor. - - For more detailed debugging, consider using a logic analyzer to examine the SDIO signals. - - Use a logic analyzer or oscilloscope to verify the SDIO signals. - - Ensure that the power supply to both devices is stable and within the required voltage levels. - -## 9 Performance and Memory Usage - -Quick summary: - -- for maximum network performance, at the cost of more memory usage on host and co-processor, use SDIO Streaming Mode (default mode of operation) -- for lower memory usage, at the cost of lower network performance, use [SDIO Packet Mode](#94-switching-to-packet-mode) - -### 9.1 Stream and Packet Mode - -The co-processor SDIO can operate in two modes: Streaming Mode and Packet Mode. - -| **Streaming Mode** | **Packet Mode** | -| --- | --- | -| Co-processor combines multiple queued Tx packets together into one large packet | Co-processor queues individual Tx packets | -| Host fetches the large packet as one SDIO transfer | Host fetches each packet one at a time | -| Host breaks the large packet back into individual packets to send to the Rx queue | Host sends each packet to the Rx queue | -| More efficient (less SDIO overhead), but requires more memory at Host to hold the large packet | Less efficient (higher SDIO overhead for each packet), but minimises memory required at Host | - -### 9.2 Double Buffering on the Host - -The Host implements a double-buffering scheme to receive data. One thread fetches data (using hardware DMA) from the co-processor and stores it in one Rx buffer, while another thread breaks up previously received data into packets for processing. - -### 9.3 Reducing Memory Usage in Streaming Mode - -#### 9.3.1 Host Receive - -> [!NOTE] -> **Host Receive**: Router --Network Data--> Co-processor --SDIO--> Host - -In SDIO streaming mode, the host receives SDIO data from the co-processor in one large SDIO transfer. For this reason, **Streaming mode consumes more heap memory** compared to Packet mode, and has a higher throughput (less SDIO overhead). - -For Host systems with high heap memory usage, you can reduce the amount of heap memory used by ESP-Hosted for buffers, at the cost of reduced throughput, by adjusting the number of Tx buffers used by the co-processor. - -**On the co-processor**: run `idf.py menuconfig` ---> `Example Configuration` ---> `SDIO Configuration` and adjust `SDIO Tx queue size`. The default queue size is `20`. - -The table below shows the effect of changing `SDIO Tx queue size` on throughput and memory usage on the Host. The throughput numbers are obtained by using the RawTP option in ESP-Hosted to send / receive raw SDIO data. - -| SDIO Tx queue size | Host Rx Raw Throughput (Mbits/s) | Memory Used by Buffers (Tested) | Memory Used by Buffers (Theoretical) | -| ---: | ---: | ---: | ---: | -| 5 | 54 | 12,288 | 15,360 | -| 10 | 70 | 26,624 | 30,720 | -| 15 | 76 | 41,984 | 46,080 | -| 20 | 80 | 56,320 | 61,440 | -| 25 | 82 | 65,536 | 76,800 | -| 30 | 84 | 65,536 | 92,160 | - -> [!NOTE] -> The SDIO packet size is 1536 bytes. The co-processor can send at most `(Tx queue size) * 1536` bytes. Since the Host does double buffering, the theoretical Buffer Size needed is `2 * (Tx queue size) * 1536`. - -From the table above, throughput is more or less stagnant on and above Rx queue size of `25`. For a good trade off between memory consumption vs performance, the Rx queue sizes are currently defaulted to `20`. - -#### 9.3.2 Host Transmit - -> [!NOTE] -> **Host Transmit**: Host --SDIO--> Co-Processor --Network Data--> Router - -To reduce memory usage on the co-processor, you can reduce the number of buffers the co-processor uses to receive data from the Host. - -**On the co-processor**: run `idf.py menuconfig` ---> `Example Configuration` ---> `SDIO Configuration` and adjust `SDIO Rx queue size`. The default queue size is `20`. - -Reducing the number of Rx buffers on the co-processor can affect the Tx throughput from the Host if the number of Rx buffers is set to a small value. - -### 9.4 Switching to Packet Mode - -For mimimal memory usage with a lower throughput, you can switch to Packet Mode. To do this: - -- on the co-processor: run `idf.py menuconfig` ---> `Example Configuration` ---> `SDIO Configuration` and untoggle `Enable SDIO Streaming Mode` -- on the host: run `idf.py menuconfig` ---> `Component config` ---> `ESP-Hosted config` ---> `Hosted SDIO COnfiguration` ---> `SDIO Receive Optimization` and select either `No optimization` or `Always Rx Max Packet size`. `Always Rx Max Packet size` will give a slightly higher throughput. - -In Packet Mode, the host uses `2 * 1536` or `3,072` bytes of memory for Rx buffers. - -- with `No optimization`, Rx Raw Throughput is 33.0 Mbits/s -- with `Always Rx Max Packet size`, Rx Raw Throughput is 33.2 Mbits/s - -## 10 References - -- [ESP-IDF Programming Guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/) -- [ESP32 Hardware Design Guidelines](https://www.espressif.com/en/products/hardware/esp32/resources) -- [ESP SDIO Slave Communication](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/protocols/esp_sdio_slave_protocol.html) -- [ESP SDIO Card Slave Driver](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/sdio_slave.html) diff --git a/resources/espressif__esp_hosted/docs/setup_esp_idf__latest_stable__linux_macos.fish b/resources/espressif__esp_hosted/docs/setup_esp_idf__latest_stable__linux_macos.fish deleted file mode 100644 index 8502d4a..0000000 --- a/resources/espressif__esp_hosted/docs/setup_esp_idf__latest_stable__linux_macos.fish +++ /dev/null @@ -1,65 +0,0 @@ -#!/usr/bin/env fish - -echo "Setting up ESP-IDF using fish" -set SHELL_RC "$HOME/.config/fish/config.fish" - -# Step 1: Check if curl and git are installed -echo "============== Step 1: Checking if dependencies ==========================" -if not type -q curl - echo "curl is not installed. Please install curl." - exit 1 -end - -if not type -q git - echo "git is not installed. Please install git." - exit 1 -end - -echo "Dependencies for current script are installed." - -# Step 2: Fetch the branches from the GitHub API and find the latest stable release branch -echo "============== Step 2: Fetching branch list from ESP-IDF GitHub API ==============" -set LATEST_BRANCH (curl -s https://api.github.com/repos/espressif/esp-idf/branches | grep -o '"name": "release/[^"]*' | awk -F'"' '{print $4}' | sort -V | tail -n 1) - -# Log the latest branch found -echo "Latest stable branch found: $LATEST_BRANCH" - -# Step 3: Clone or update the ESP-IDF repository -if not test -d "$HOME/esp-idf" - echo "============== Step 3: Cloning the ESP-IDF repository ================" - git clone -b "$LATEST_BRANCH" --recursive --depth 1 https://github.com/espressif/esp-idf.git "$HOME/esp-idf" -else - echo "ESP-IDF repository already exists." - cd "$HOME/esp-idf" || exit - git checkout "$LATEST_BRANCH" - git pull --recurse-submodules -end - -cd "$HOME/esp-idf" || exit -set IDF_COMMIT (git rev-parse HEAD) -echo "ESP-IDF is set to commit: $IDF_COMMIT" - -# Step 4: Set up the ESP-IDF environment -echo "============== Step 4: Setting up the ESP-IDF environment ================" -"$HOME/esp-idf/install.fish" -source "$HOME/esp-idf/export.fish" | source - -# Step 5: Add alias to Fish config -echo "============== Step 5: Adding alias to Fish configuration ===============" -if not grep -q "alias get-idf" "$SHELL_RC" - read -P "Do you want to add the alias 'get-idf' to $SHELL_RC? [yes/no] " response - if string match -i -r '^yes$' $response - echo "alias get-idf='source $HOME/esp-idf/export.fish | source'" >> "$SHELL_RC" - echo "ESP-IDF setup alias added to $SHELL_RC. Run 'get-idf' to configure your environment." - else - echo "Alias not added. You can manually add 'alias get-idf=\". $HOME/esp-idf/export.fish | source\"' to $SHELL_RC." - end -else - echo "ESP-IDF setup alias already exists in $SHELL_RC." -end - -# Step 6: Inform user to reload shell -echo "============== Step 6: Informing user to reload shell ===============" -echo "Please run 'source $SHELL_RC' to reload the shell with the new alias." -echo "In new shell, run 'get-idf' to enable ESP-IDF environment." - diff --git a/resources/espressif__esp_hosted/docs/setup_esp_idf__latest_stable__linux_macos.sh b/resources/espressif__esp_hosted/docs/setup_esp_idf__latest_stable__linux_macos.sh deleted file mode 100644 index 7bc13d5..0000000 --- a/resources/espressif__esp_hosted/docs/setup_esp_idf__latest_stable__linux_macos.sh +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/env bash - -SHELL_RC="$HOME/.bashrc" - -# Step 1: Check if curl and git are installed -echo "============== Step 1: Checking if dependencies are installed ==============" -if ! command -v curl &> /dev/null; then - echo "curl is not installed. Please install curl." - exit 1 -fi - -if ! command -v git &> /dev/null; then - echo "git is not installed. Please install git." - exit 1 -fi - -echo "All required dependencies are installed." - -# Step 2: Fetch the branches from the GitHub API and find the latest stable release branch -echo "============== Step 2: Fetching branch list from ESP-IDF GitHub API ==============" -LATEST_BRANCH=$(curl -s https://api.github.com/repos/espressif/esp-idf/branches | grep -o '"name": "release/[^"]*' | awk -F'"' '{print $4}' | sort -V | tail -n 1) -echo "Latest stable branch found: $LATEST_BRANCH" - -# Step 3: Clone or update the ESP-IDF repository -if [ ! -d "$HOME/esp-idf" ]; then - echo "========= Step 3: Cloning the ESP-IDF repository (takes 3-4 mins) =============" - git clone -b "$LATEST_BRANCH" --recursive --depth 1 https://github.com/espressif/esp-idf.git "$HOME/esp-idf" -else - echo "ESP-IDF repository already exists. Updating..." - cd "$HOME/esp-idf" || exit - git checkout "$LATEST_BRANCH" - git pull --recurse-submodules -fi - -# Log the current commit hash -cd "$HOME/esp-idf" || exit -IDF_COMMIT=$(git rev-parse HEAD) -echo "<< ESP-IDF is set to commit: $IDF_COMMIT >>" - -# Step 4: Set up the ESP-IDF environment -echo "============== Step 4: Setting up the ESP-IDF environment ================" -"$HOME/esp-idf/install.sh" -source "$HOME/esp-idf/export.sh" - -# Step 5: Optionally add an alias to shell configuration for easy setup -echo "============== Step 5: Adding alias to shell configuration ===============" -if ! grep -q "alias get-idf" "$SHELL_RC"; then - read -p "Do you want to add the alias 'get-idf' to $SHELL_RC? [yes/no] " -r - if [[ $REPLY =~ ^[Yy][Ee][Ss]$ ]]; then - echo "alias get-idf='source $HOME/esp-idf/export.sh'" >> "$SHELL_RC" - echo "ESP-IDF setup alias added to $SHELL_RC. Run 'get-idf' to configure your environment." - else - echo "Alias not added. You can manually add 'alias get-idf=\"source $HOME/esp-idf/export.sh\"' to $SHELL_RC." - fi -else - echo "ESP-IDF setup alias already exists in $SHELL_RC." -fi - -# Step 6: Inform the user to reload the shell -echo "============== Step 6: Informing user to reload shell ===============" -echo "\nPlease run 'source $SHELL_RC' to reload the shell with the new alias." -echo "\nIn a new shell, run 'get-idf' to enable the ESP-IDF environment." diff --git a/resources/espressif__esp_hosted/docs/shield-box-test-setup.md b/resources/espressif__esp_hosted/docs/shield-box-test-setup.md deleted file mode 100644 index c107a3a..0000000 --- a/resources/espressif__esp_hosted/docs/shield-box-test-setup.md +++ /dev/null @@ -1,75 +0,0 @@ -# Shield Box Test Setup for ESP-Hosted - -Controlled RF environment for consistent throughput measurements and performance evaluation. - -## Overview - -**Shield Box Testing** uses RF-shielded enclosure to eliminate external interference and provide repeatable test conditions. - -**Key Benefits:** -- Controlled RF environment (no external Wi-Fi/cellular interference) -- Repeatable, consistent results -- Better measurement accuracy vs open air - - -## Equipment Required - -### Essential Components -- **RF Shield Box/Chamber**: Faraday cage enclosure -- **ESP32-P4 Function EV Board**: Host device -- **ESP32-C6/C5 Test Board**: Co-processor device -- **External PC**: For iPerf client/server -- **Router/Access Point**: Wi-Fi infrastructure -- **Ethernet Connection**: Wired backhaul to PC - -Please change the host and co-processor nodes as per current use-case under test. - -## Test Setup - -### Physical Configuration - -Shield box testing setup - -### Data Flow -- **PC to MCU Host**: - ``` - PC -> Router -> ESP Co-processor == SDIO/SPI/UART ==> ESP32-P4 - ``` -- **MCU Host to PC**: - ``` - PC <- Router <- ESP Co-processor <== SDIO/SPI/UART == ESP32-P4 - ``` - -**Traffic route:** -- PC-to-Router: Ethernet with static IP (eliminates wireless variables) -- Router-to-ESP: Wi-Fi connection (only wireless link in test chain) - -## Transport Configurations - -### SDIO (Highest Performance) -- **Clock**: 20-50 MHz (start low, optimize up) -- **Bus Width**: 4-bit mode -- **Hardware**: External pull-ups (51kΩ) on CMD, D0-D3 - -### SPI -- **Clock**: ESP32: ≤10 MHz, Others: ≤40 MHz -- **Mode**: Full-duplex (simple) or Quad SPI (highest throughput) - -### UART -- **Baud Rate**: 921600 (highest stable rate) -- **Use Case**: Low-throughput validation, debugging - - -## Shield Box vs Open Air - -| Aspect | Shield Box | Open Air | -|--------|------------|----------| -| **Repeatability** | High | Variable | -| **Interference** | Eliminated | Present | -| **Debugging** | Easier | Complex | -| **Reality** | Lower | Higher | - - ---- - -*For transport setup details: [SDIO](sdio.md) | [SPI Full-Duplex](spi_full_duplex.md) | [SPI Half-Duplex](spi_half_duplex.md) | [UART](uart.md)* \ No newline at end of file diff --git a/resources/espressif__esp_hosted/docs/spi_full_duplex.md b/resources/espressif__esp_hosted/docs/spi_full_duplex.md deleted file mode 100644 index dad9738..0000000 --- a/resources/espressif__esp_hosted/docs/spi_full_duplex.md +++ /dev/null @@ -1,565 +0,0 @@ -# ESP-Hosted SPI FD (Full Duplex) Operation - -Sections 2 to 4 below covers the theoretical part where the SPI Full duplex design and implementation details are explained. - -Section 5 to 9 covers the complete step-wise setup co-processor and host with SPI Full Duplex, using 2 or 4 data lines. - -If you wish to skip the theory, you can refer the [Quick Start Guide](#1-quick-start-guide) below. For quick navigation, please unfold the Table of Contents below. - -
    -Table of Contents - -1. [Quick Start Guide](#1-quick-start-guide) - -2. [Introduction](#2-introduction) - -3. [High Level Design and Implementation](#3-high-level-design-and-implementation) || [3.1 Number of Pins Required](#31-number-of-pins-required) || [3.2 SPI Full Duplex Mode Implementation](#32-spi-full-duplex-mode-implementation) || [3.3 Code Reference](#35-code-reference) - -4. [Hardware Considerations](#4-hardware-considerations) || [4.1 General Considerations](#41-general-considerations) || [4.2 Jumper Wires](#42-jumper-wires) || [4.3 PCB Design](#43-pcb-design) || [4.4 Advanced Considerations](#44-advanced-considerations) - -5. [Hardware Setup](#5-hardware-setup) - -6. [Set-Up ESP-IDF](#6-set-up-esp-idf) - -7. [Flashing the Co-processor](#7-flashing-the-co-processor) || [7.1 Create Co-processor Project](#71-create-co-processor-project) || [7.2 Co-processor Config](#72-co-processor-config) || [7.3 Co-processor Build](#73-co-processor-build) || [7.4 Co-processor Flashing](#74-co-processor-flashing) || [7.4.1 Serial Flashing (Initial Setup)](#741-serial-flashing-initial-setup) || [7.4.2 Co-processor OTA Flashing (Subsequent Updates)](#742-co-processor-ota-flashing-subsequent-updates) - -8. [Flashing the Host](#8-flashing-the-host) || [8.1 Select Example to Run in Hosted Mode](#81-select-example-to-run-in-hosted-mode) || [8.2 Host Project Component Configuration](#82-host-project-component-configuration) || [8.3 Menuconfig, Build and Flash Host](#83-menuconfig-build-and-flash-host) - -9. [Testing and Troubleshooting](#9-testing-and-troubleshooting) - -10. [References](#10-references) - -
    - -## 1 Quick Start Guide - -This section provides a brief overview of how to get started with ESP-Hosted using SPI FD mode. For detailed instructions on each step, please refer to the following sections: - -- [5. Hardware Setup](#5-hardware-setup) -- [6. Set-Up ESP-IDF](#6-set-up-esp-idf) -- [7. Flashing the Co-processor](#7-flashing-the-co-processor) -- [8. Flashing the Host](#8-flashing-the-host) -- [9. Testing and Troubleshooting](#9-testing-and-troubleshooting) - -These sections will guide you through the process of flashing both the co-processor and host devices, setting up the hardware connections, and verifying successful communication. - -## 2 Introduction - -The ESP32 family of chips supports the standard SPI FD (Full Duplex) Mode Protocol. In this mode, SPI uses two data lines (MISO and MOSI) to transfer data to and from the co-processor simultaneously during an SPI transaction. - -## 3 High Level Design and Implementation - -SPI Full duplex mode is the simplest mode of operation in ESP-Hosted. It can be easily tested with jumper wires. It doesn't require much complex hardware setup. For any non ESP chipsets as host also can prefer this mode for testing. This can also served as stepping stone before moving on to more complex modes of operations, like Dual SPI, Quad SPI and SDIO. - -### 3.1 Number of Pins Required - -In SPI Full Duplex mode, the following pins are required: - -1. **MISO (Master In Slave Out)**: Data line for the co-processor to send data to the host. -2. **MOSI (Master Out Slave In)**: Data line for the host to send data to the co-processor. -3. **SCLK (Serial Clock)**: Clock signal generated by the host to synchronize data transmission. -4. **CS (Chip Select)**: Signal used by the host to select the co-processor for communication. -5. **Reset Pin**: An output signal from the host to the co-processor. When asserted, the host resets the co-processor to synchronize the state of the host and co-processor. -6. **Handshake Pin**: An output signal from the co-processor to the host. When asserted, it tells the host that the co-processor is ready for an SPI transaction. -7. **Data Ready Pin**: An output signal from the co-processor to the host. When asserted, the co-processor is telling the host that it has data to send. - -The SPI used is full duplex. Handshake, Data Ready and Reset are additional GPIOs used in addition to MISO, MOSI, SCLK and CS. All pins are mandatory. - -### 3.2 SPI Full Duplex Mode Implementation - -- This solution uses SPI full duplex communication mode: - - Read and write operations occur simultaneously in the same SPI transaction - -- Handshake and Data ready are configured as interrupts at host. On loading host, it should automatically reset the co-processor using reset pin. - -- Protocol rules: - - Host must not start a transaction before ESP SPI peripheral is ready - - ESP peripheral indicates readiness via Handshake pin - -- ESP peripheral preparation: - - Always ready for data reception from host - - Queues next SPI transaction immediately after completing previous one - -- SPI transaction structure: - - Each transaction has a TX buffer and an RX buffer - - TX buffer: Contains data ESP peripheral wants to send to host - - RX buffer: Empty space to hold data received from host - -- Buffer initialization: - - ESP peripheral sets TX and RX buffers to 1600 bytes (maximum size) - - Host can send/receive up to 1600 bytes per transaction - -- TX buffer scenarios: - 1. No data to transfer: - - Allocate 1600-byte dummy TX buffer - - Set packet length field in payload header to 0 - 2. Valid data to send: - - TX buffer points to that data - -- SPI transaction setup: - - Set transaction length to 1600 bytes regardless of TX buffer size - - Submit transaction to SPI driver on ESP peripheral - - Pull Handshake pin high to signal readiness - - If TX buffer has valid data, also pull Data ready pin high - -- Host response to Handshake / Data ready interrupt: - - Decide whether to perform SPI transaction (if Handshake is high) - - Perform transfer if Data ready pin is high or host has data to transfer - - If either condition is false, do not perform transfer, just ignore the interrupt - -- During SPI transaction: - - Exchange TX and RX buffers on SPI data lines - -- Post-transaction processing: - - Both ESP peripheral and host process received buffer based on payload header - -- Transaction completion: - - ESP peripheral pulls Handshake pin low - - If transaction had valid co-processor TX buffer, also pulls Data ready pin low - -### 3.3 Code Reference -For a detailed implementation of SPI full duplex communication using the ESP-Hosted framework, refer to the following code files in the ESP-Hosted repository: - -- **Master SPI Communication Code**: - - [spi_drv.c](https://github.com/espressif/esp-hosted-mcu/blob/main/host/drivers/transport/spi/spi_drv.c): Contains the implementation for configuring and handling SPI transactions on the master side. - - [spi_wrapper.c](https://github.com/espressif/esp-hosted-mcu/blob/main/host/port/spi_wrapper.c): Provides an OS abstraction layer for SPI operations, making it easier to handle SPI communication in a platform-independent manner. - -- **Co-processor SPI Communication Code**: - - [spi_slave_api.c](https://github.com/espressif/esp-hosted-mcu/blob/main/slave/main/spi_slave_api.c): Includes the setup and transaction handling for the SPI co-processor, detailing how the co-processor should configure its SPI interface and handle incoming and outgoing data. - -## 4 Hardware Considerations - -### 4.1 General Considerations - -- Ensure equal trace lengths for all SPI connections, whether using jumper wires or PCB traces. -- Use the lower clock frequency like 5 MHz for evaluation. Once solution verified, optimise the clock frequency in increasing steps to max possible value. To find out practical maximum SPI slave frequency for your co-processor, check `IDF_PERFORMANCE_MAX_SPI_CLK_FREQ` in [ESP-IDF SPI slave benchmark](https://github.com/espressif/esp-idf/blob/master/components/esp_driver_spi/test_apps/components/spi_bench_mark/include/spi_performance.h) -- Verify voltage compatibility between host and co-processor devices. -- Provide proper power supply decoupling for both host and co-processor devices. - -### 4.2 Jumper Wires - -- Jumper wires are suitable for initial testing and prototyping. -- Use high-quality, low-capacitance jumper wires. -- Keep wires as short as possible, ideally under 10 cm. -- Arrange wires to minimize crosstalk, especially for clock and data lines. -- Possibly, use twisted pairs for clock and data lines to reduce electromagnetic interference. -- If possible, use a ground wire between every signal wire to improve signal integrity. -- Connect as many grounds as possible to improve common ground reference and reduce ground noise. - -### 4.3 PCB Design - -For optimal performance and reliability in production designs: - -- Ensure equal trace lengths for all SPI signals (CLK, MOSI, MISO, CS) as much as possible. This practice, known as length matching, is crucial for maintaining signal integrity and reducing timing skew, especially at higher frequencies. -- If perfect length matching is not possible, prioritize matching the clock (CLK) trace length with the data lines. -- Use controlled impedance traces for high-speed signals. -- Place bypass capacitors close to the power pins of both the host and co-processor devices. -- Consider using series termination resistors on the clock and data lines to reduce reflections. -- For high-speed designs, use a 4-layer PCB with dedicated power and ground planes. - -### 4.4 Advanced Considerations - -- Calculate the maximum allowed trace length based on your clock frequency and PCB material. -- Consider the capacitive load on the SPI bus, especially for longer traces or when using multiple co-processor devices. -- For very high-speed designs, consider using differential signaling techniques. -- Implement proper EMI/EMC design techniques to minimize electromagnetic interference. - - -**Debugging Tips** - -- Use an oscilloscope or logic analyzer to verify signal integrity and timing. -- Start with a lower clock frequency and gradually increase it while monitoring performance. -- Ensure proper grounding between the host and co-processor devices. -- If using multiple power supplies, ensure they share a common ground. -- Consider using level shifters if the host and co-processor operate at different voltage levels. - -## 5 Hardware Setup - -Setting up the hardware involves connecting the master and co-processor devices via the SPI pins and ensuring all extra GPIO signals are properly connected. Below is the table of connections for the SPI full duplex setup between an host ESP chipset and another ESP chipset as co-processor: - - -### Host connections - -| Signal | ESP32 | ESP32-S2/S3 | ESP32-C2/C3/C5/C6 | ESP32-P4 (ESP32-P4-Function-EV-Board) | -|-------------|-------|-------------|-------------------|---------------------------------------| -| CLK | 14 | 12 | 6 | 18 | -| MOSI | 13 | 11 | 7 | 14 | -| MISO | 12 | 13 | 2 | 15 | -| CS | 15 | 10 | 10 | 19 | -| Handshake | 26 | 17 | 3 | 16 | -| Data Ready | 4 | 4 | 4 | 17 | -| Reset Out | 5 | 5 | 5 | 54 | - - -### Co-processor connections - -| Signal | ESP32 | ESP32-C2/C3/C5/C6 | ESP32-S2/S3 | ESP32-C6 on ESP32-P4-Function-EV-Board | -|-------------|-------|-------------------|-------------|---------------------------------------| -| CLK | 14 | 6 | 12 | 19 | -| MOSI | 13 | 7 | 11 | 20 | -| MISO | 12 | 2 | 13 | 21 | -| CS | 15 | 10 | 10 | 18 | -| Handshake | 26 | 3 | 17 | 22 | -| Data Ready | 4 | 4 | 5 | 23 | -| Reset In | EN | EN/RST | EN/RST | EN/RST | - - -> [!NOTE] -> - Always try to use IO_MUX pins from the datasheet for optimal performance on both sides. -> - These GPIO assignments are based on default Kconfig configurations & are configurable. -> - Once ported, any other non ESP host with standard SPI can be used. -> - All ESP chipsets support SPI Full Duplex mode. Chipsets with Wi-Fi/Bluetooth can be used as co-processor. - -> [!IMPORTANT] -> - Ensure proper grounding between host and co-processor devices. -> - Use short, high-quality cables for connections. -> - For production designs, consider using a properly designed PCB with controlled impedance traces. - -## 6 Set-Up ESP-IDF - -Before setting up the ESP-Hosted host & co-processor for SPI Full Duplex mode, ensure that ESP-IDF is properly installed and set up on your system. - -#### Option 1: Installer Way - -- **Windows** - - Install and setup ESP-IDF on Windows as documented in the [Standard Setup of Toolchain for Windows](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/windows-setup.html). - - Use the ESP-IDF [Powershell Command Prompt](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/windows-setup.html#using-the-command-prompt) for subsequent commands. - -- **Linux or MacOS** - - For bash: - ```bash - bash docs/setup_esp_idf__latest_stable__linux_macos.sh - ``` - - For fish: - ```fish - fish docs/setup_esp_idf__latest_stable__linux_macos.fish - ``` - -#### Option 2: Manual Way - -Please follow the [ESP-IDF Get Started Guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/index.html) for manual installation. - -## 7 Flashing the Co-processor - -| Supported Co-processor Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-S2 | ESP32-S3 | -| ------------------------------ | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | - -There are two methods to flash the ESP-Hosted co-processor firmware: - -### 7.1 Create Co-processor Project -1. Create co-processor project possibly outside of ESP-IDF project directory using - - ```bash - idf.py create-project-from-example "espressif/esp_hosted:slave" - ``` - -2. Navigate to the created project directory. - -3. Configure the project for your target ESP chip: - - ```bash - idf.py set-target - ``` - Replace `` with your specific ESP chip (e.g., esp32c3, esp32s3). - -### 7.2 Co-processor Config -Configure the co-processor project using -``` -idf.py menuconfig -``` - -#### 7.2.1 Transport config - - Navigate to "Example configuration" -> "Transport layer" - - Select "SPI Full-duplex" - -#### 7.2.2 Any other config - Optionally, configure any additional SPI-specific settings under "SPI Full-duplex" - - Set the GPIO pins for SPI signals (MOSI, MISO, CLK, CS), Handshake, Data Ready, Reset - - Configure SPI mode (0, 1, 2, or 3) - - Set the SPI clock frequency - - Checksum enable/disable (Checksum is recommended to be enabled as spi hardware doesn't have any error detection) - -###### Generated files -- Generated config files are (1) `sdkconfig` file and (2) internal `sdkconfig.h` file. -- Please note, any manually changes done to these generated files, would not take effect. - -###### Defaulting specific config (Optional) -- This is advanced option, so please be careful. -- To mark some config options as default, you can add specific config line in file, `sdkconfig.defaults.`. So whenever next time building, you do not need to re-configure. - -### 7.3 Co-processor Build -Build the co-processor project - -``` -idf.py build -``` - -### 7.4 Co-processor Flashing - -##### 7.4.1 Serial Flashing (Initial Setup) - -For the initial setup or when OTA is not available, use serial flashing. - -Flash the co-processor firmware using -``` -idf.py -p flash -``` - -> [!NOTE] -> If you are not able to flash the co-processor, there might be a chance that host is not allowing to to do so. -> -> Put host in bootloader mode using following command and then retry flashing the co-processor -> -> `esptool.py -p **** --before default_reset --after no_reset run` -> -> Flash the co-processor and log the output: -> -> `idf.py -p flash monitor` - -##### 7.4.2 Co-processor OTA Flashing (Subsequent Updates) - -For subsequent updates, you can re-use ESP-Hosted-MCU transport, as it should be already working. While doing OTA, Complete co-processor firmware image is not needed and only co-processor application partition, 'network_adapter.bin' need to be re-flashed remotely from host. - -1. Ensure your co-processor device is connected and communicating with the host with existing ESP-Hosted-MCU. - -2. Create a web server -You can re-use your existing web server or create a new locally for testing. Below is example to do it. - - Make a new directory so that web server can be run into it and navigate into it - - Create simple local web server using python3 - - ```bash - python3 -m http.server 8080 - ``` -3. Copy the co-processor app partition `network_adapter.bin` in the directory where you created the web server. - - The `network_adapter.bin` can be found in your co-processor project build at `/build/network_adapter.bin` - -4. Verify if web server is set-up correctly - - Open link `http://127.0.0.1:8080` in the browser and check if network_adapter.bin is available. - - Right click and copy the complete URL of this network_adapter.bin and note somewhere. - -5. On the **host side**, use the `esp_hosted_slave_ota` function to initiate the OTA update: - - ```c - #include "esp_hosted.h" - - const char* image_url = "http://example.com/path/to/network_adapter.bin"; //web server full url - esp_err_t ret = esp_hosted_slave_ota(image_url); - if (ret == ESP_OK) { - printf("co-processor OTA update failed[%d]\n", ret); - } - ``` - - This function will download the firmware in chunk by chunk as http client from the specified URL and flash it to the co-processor device through the established transport. - In above web server example, You can paste the copied url earlier. - - -6. Monitor the OTA progress through the console output on both the host and co-processor devices. - -> [!NOTE] -> -> A. The `esp_hosted_slave_ota` function is part of the ESP-Hosted-MCU API and handles the OTA process through the transport layer. \ -> B. Ensure that your host application has web server connectivity to download the firmware file. \ -> C. The co-processor device doesn't need to be connected to the web server for this OTA method. - -## 8 Flashing the Host - -| Supported Host Targets | Any ESP chipset | Any Non-ESP chipset | -| ----------------------- | --------------- | ------------------- | - -### 8.1 Select Example to Run in Hosted Mode - -Select an example from the [ESP-IDF examples directory](https://github.com/espressif/esp-idf/tree/master/examples) that you wish to run in ESP-Hosted mode. All Wi-Fi and Bluetooth examples are supported. For simplicity and demonstration purposes, we will use the [ESP-IDF iperf example](https://github.com/espressif/esp-idf/tree/master/examples/wifi/iperf). - -### 8.2 Host Project Component Configuration - -Now that ESP-IDF is set up, follow these steps to prepare the host: - -###### 1. Navigate to the iperf example in your ESP-IDF directory: - ``` - cd $IDF_PATH/examples/wifi/iperf - ``` - -###### 2. Dependency components - Add the required components to the project's `idf_component.yml` file: - ``` - idf.py add-dependency "espressif/esp_wifi_remote" - idf.py add-dependency "espressif/esp_hosted" - ``` - -###### 3. Remove conflicting configuration - Open the `main/idf_component.yml` file and remove/comment the following block if present: - ``` - # ------- Delete or comment this block --------- - espressif/esp-extconn: - version: "~0.1.0" - rules: - - if: "target in [esp32p4]" - # ----------------------------------- - ``` - This step is necessary because esp-extconn and esp-hosted cannot work together. - -###### 4. Disable native Wi-Fi if available -If your host ESP chip already has native Wi-Fi support, disable it by editing the `components/soc//include/soc/Kconfig.soc_caps.in` file and changing all `WIFI` related configs to `n`. - -If you happen to have both, host and co-processor as same ESP chipset type (for example two ESP32-C2), note an [additional step](docs/troubleshooting/#1-esp-host-to-evaluate-already-has-native-wi-fi) - -### 8.3 Menuconfig, Build and Flash Host - -##### 1. High performance configurations - This is optional step, suggested for high performance applications. - - If using ESP32-P4 as host: - - Remove the default `sdkconfig.defaults.esp32p4` file. - - Create a new `sdkconfig.defaults.esp32p4` file with the following content: - ``` - CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=16 - CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=64 - CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=64 - CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=y - CONFIG_ESP_WIFI_TX_BA_WIN=32 - CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=y - CONFIG_ESP_WIFI_RX_BA_WIN=32 - - CONFIG_LWIP_TCP_SND_BUF_DEFAULT=65534 - CONFIG_LWIP_TCP_WND_DEFAULT=65534 - CONFIG_LWIP_TCP_RECVMBOX_SIZE=64 - CONFIG_LWIP_UDP_RECVMBOX_SIZE=64 - CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=64 - - CONFIG_LWIP_TCP_SACK_OUT=y - ``` - - For other hosts also, you can merge above configs in corresponding `sdkconfig.defaults.esp32XX` file. - -###### 2. Set environment for your host ESP chip: - - ``` - idf.py set-target - ``` - -###### 3. Flexible Menuconfig configurations - - ``` - idf.py menuconfig - ``` - ESP-Hosted-MCU host configurations are available under "Component config" -> "ESP-Hosted config" - 1. Select "SPI Full-duplex" as the transport layer - 2. Change co chipset to connect to under "slave chipset to be used" - 3. Optionally, configure SPI-specific settings like - - SPI Clock Freq (MHz) - - SPI Mode - - SPI Pins - - SPI Checksum Enable/Disable (Checksum is recommended to be enabled as spi hardware doesn't have any error detection) - -> [!NOTE] -> The actual clock frequency used is determined by the hardware. Use an oscilloscope or logic analyzer to check the clock frequency. - -###### 4. Build the project: - ``` - idf.py build - ``` - -###### 5. Flash the firmware: - ``` - idf.py -p flash - ``` - -###### 6. Monitor the output: - - ``` - idf.py -p monitor - ``` - - - If host was put into bootloader mode earlier, it may need manual reset - -## 9 Testing and Troubleshooting - -After flashing both the co-processor and host devices, follow these steps to connect and test your ESP-Hosted SPI Full Duplex setup: - -1. Connect the hardware: - - Follow the pin assignments for SPI Full Duplex as specified in [Hardware Setup](docs/spi_full_duplex.md#5-hardware-setup). - - Ensure all necessary connections are made, including power, ground, and the extra GPIO signals (Data_Ready and Reset). - -2. Power on both devices. - -3. Verify the connection: - - Check the serial output of both devices for successful initialization messages. - - Look for messages indicating that the SPI Full Duplex transport layer has been established - -4. Logs at both sides: - - Host: - - ``` - I (522) transport: Attempt connection with slave: retry[0] - I (525) transport: Reset slave using GPIO[54] - I (530) os_wrapper_esp: GPIO [54] configured - I (535) gpio: GPIO[54]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 - I (1712) transport: Received INIT event from ESP32 peripheral - I (1712) transport: EVENT: 12 - I (1712) transport: EVENT: 11 - I (1715) transport: capabilities: 0xe8 - I (1719) transport: Features supported are: - I (1724) transport: - HCI over SPI - I (1728) transport: - BLE only - I (1732) transport: EVENT: 13 - I (1736) transport: ESP board type is : 13 - - I (1741) transport: Base transport is set-up - ``` - - - Co-processor: - - ``` - I (492) fg_mcu_slave: ********************************************************************* - I (501) fg_mcu_slave: ESP-Hosted-MCU Slave FW version :: X.Y.Z - - I (511) fg_mcu_slave: Transport used :: SPI - I (520) fg_mcu_slave: ********************************************************************* - I (529) fg_mcu_slave: Supported features are: - I (534) fg_mcu_slave: - WLAN over SPI - I (538) h_bt: - BT/BLE - I (541) h_bt: - HCI Over SPI - I (545) h_bt: - BLE only - ``` - -5. Test basic functionality: - - The iperf example automatically attempts to connect to the configured Wi-Fi network. Watch the serial output for connection status. - - If the automatic connection fails, you can manually initiate a Wi-Fi scan and connection: - ``` - sta_scan - sta_connect - ``` -6. Additional commands to test: - - Get IP address: `sta_ip` - - Disconnect from Wi-Fi: `sta_disconnect` - - Set Wi-Fi mode: `wifi_mode ` (where mode can be 'sta', 'ap', or 'apsta') - -7. Advanced iperf testing: - Once connected, you can run iperf tests to verify performance: - - | Test Case | Host Command | External STA Command | - |-----------|--------------|----------------------| - | UDP Host TX | `iperf -u -c -t 60 -i 3` | `iperf -u -s -i 3` | - | UDP Host RX | `iperf -u -s -i 3` | `iperf -u -c -t 60 -i 3` | - | TCP Host TX | `iperf -c -t 60 -i 3` | `iperf -s -i 3` | - | TCP Host RX | `iperf -s -i 3` | `iperf -c -t 60 -i 3` | - - Note: Replace `` with the IP address of the external STA, and `` with the IP address of the ESP-Hosted device. - -> [!TIP] -> -> To measure the optimal performance, check out the [Shield Box Test Setup](shield-box-test-setup.md). - -8. Troubleshooting: - - If you encounter issues, refer to section 6.3 for testing the SPI connection. - - Consider using a lower clock speed or checking your [hardware connections](#5-hardware-setup) if you experience communication problems. - - ESP-Hosted-MCU troubleshooting guide: [docs/troubleshooting.md](docs/troubleshooting.md) - -9. Monitoring and debugging: - - Use the serial monitor on both devices to observe the communication between the host and co-processor. - - For more detailed debugging, consider using a logic analyzer to examine the SPI signals. - -## 10 References -- [ESP-IDF Programming Guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/) -- [ESP32 Hardware Design Guidelines](https://www.espressif.com/en/products/hardware/esp32/resources) -- [SPI Protocol Basics](https://en.wikipedia.org/wiki/Serial_Peripheral_Interface) diff --git a/resources/espressif__esp_hosted/docs/spi_half_duplex.md b/resources/espressif__esp_hosted/docs/spi_half_duplex.md deleted file mode 100644 index ed35b53..0000000 --- a/resources/espressif__esp_hosted/docs/spi_half_duplex.md +++ /dev/null @@ -1,811 +0,0 @@ -# ESP-Hosted SPI HD (Half Duplex) Operation - -Sections 2 to 6 below covers the theoretical part where the SPI Half duplex protocol and expected framing structure is explained. This frame structure is flexible. Host and Co-processor follow the same frame structure. - -Section 7 to 11 covers the complete step-wise setup co-processor and host with SPI Half Duplex, using 2 or 4 data lines. - -If you wish to skip the theory, you can refer the [Quick Start Guide](#1-quick-start-guide) below. For quick navigation, please unfold the Table of Contents below. - -
    -Table of Contents - - -- [1. Quick Start Guide](#1-quick-start-guide) - -- [2. Introduction](#2-introduction) - -- [3. SPI HD Configuration](#3-spi-hd-configuration) => [1 Clock and Phase](#31-clock-and-phase) || [2 Data Lines](#32-data-lines) || [3 Extra GPIO Signals](#33-extra-gpio-signals) || [4 Pin Assignments](#34-pin-assignments) - -- [4. SPI HD Protocol](#4-spi-hd-protocol) => [1 Data IO Modes](#41-data-io-modes) || [2 Supported Commands](#42-supported-commands) || [3 Registers Used](#43-registers-used) || [4 Timing Diagrams](#44-timing-diagrams) - -- [5. SPI HD Operation](#5-spi-hd-operation) => [1 Initialization](#51-initialization) || [2 Co-processor to Host Transfer](#52-co-processor-to-host-transfer) || [3 Host to Co-processor Transfer](#53-host-to-co-processor-transfer) || [4 Code Reference](#54-code-reference) - -- [6. Hardware Considerations](#6-hardware-considerations) => [1 General Considerations](#61-general-considerations) || [2 Jumper Wires](#62-jumper-wires) || [3 PCB Design](#63-pcb-design) || [4 Advanced Considerations](#64-advanced-considerations) - -- [7. Hardware Setup](#7-hardware-setup) - -- [8. Set-Up ESP-IDF](#8-set-up-esp-idf) => [Option 1: Installer Way](#option-1-installer-way) || [Option 2: Manual Way](#option-2-manual-way) - -- [9. Flashing the Co-processor](#9-flashing-the-co-processor) => [1 Create Co-processor Project](#91-create-co-processor-project) || [2 Co-processor Config](#92-co-processor-config) || [3 Co-processor Build](#93-co-processor-build) || [4 Co-processor Flashing](#94-co-processor-flashing) - -- [10. Flashing the Host](#10-flashing-the-host) => [1 Select Example to Run in Hosted Mode](#101-select-example-to-run-in-hosted-mode) || [2 Host Project Component Configuration](#102-host-project-component-configuration) || [3 Menuconfig, Build and Flash Host](#103-menuconfig-build-and-flash-host) - -- [11. Testing and Troubleshooting](#11-testing-and-troubleshooting) - -- [12. References](#12-references) - -
    - -## 1 Quick Start Guide - -This section provides a brief overview of how to get started with ESP-Hosted using SPI HD mode, bypassing the theory and explanation. Please refer to the following sections to quickly set-up demo. - -- [7. Hardware Setup](#7-hardware-setup) -- [8. Set-Up ESP-IDF](#8-set-up-esp-idf) -- [9. Flashing the Co-processor](#9-flashing-the-co-processor) -- [10. Flashing the Host](#10-flashing-the-host) -- [11. Testing and Troubleshooting](#11-testing-and-troubleshooting) - -These sections will guide you through the process of configuring and flashing both the co-processor and host devices, setting up the hardware connections, and verifying successful communication. - -## 2 Introduction - -The ESP32 family of chips (except the ESP32) support the SPI co-processor HD (Half Duplex) Mode Protocol. - -In this mode of operation, SPI supports 2 or 4 data lines to transfer data to the co-processor or from the co-processor (half duplex) during an SPI transaction. This is different from 'standard' SPI mode which transfers data bidirectionally (full duplex) over two data lines (one for host to co-processor data [MOSI], one for co-processor to host data [MISO]) during an SPI transaction. - -> [!NOTE] -> -> SPI Half Duplex mode is not supported on the classic ESP32. Other all chipsets support half duplex. -> Please use SPI full duplex for classic ESP32 - -> [!IMPORTANT] -> -> SPI Half Duplex is not an industry standard and has multiple -> implementations. Make sure your host processor supports the SPI HD -> protocol implemented by the Hosted co-processor before proceeding. See [SPI HD protocol used by Hosted](#4-spi-hd-protocol). - -## 3 SPI HD Configuration - -To enable SPI HD on the Host and co-processor using `idf.py menuconfig`: - -1. On Host: **Component config** ---> **ESP-Hosted config** ---> - **Transport layer** and choose **SPI Half-duplex**. -2. On Co-processor: **Example configuration** ---> **Transport layer** and - choose **SPI Half-duplex**. - -### 3.1 Clock and Phase - -The standard SPI CPOL clock and CPHA phase must be configured -correctly on both the host and co-processor for the protocol to work. - -### 3.2 Data Lines - -Both the host and co-processor can support two or four data lines. Four data lines will be used to transfer data if configured on both the host and co-processor. If the host is configured to use two data lines, only two lines will be used to transfer data even if the co-processor is configured to use four data lines. - -### 3.3 Extra GPIO Signals - -Extra GPIO signals are required for SPI HD on Hosted and can be -assigned to any free GPIO pins: - -- `Data_Ready` signal: an output signal from the co-processor to the host. When asserted, the co-processor is telling the host that it has data to send. The host should perform a data read SPI transaction to fetch data from the co-processor. -- `Reset` signal: an output signal from the host to the co-processor. When asserted, the host resets the co-processor. This is done when ESP-Hosted is started on the host, to synchronise the state of the host and co-processor. - -> [!NOTE] -> The `Reset` signal can be configured to connect to the `EN` or `RST` -> pin on the co-processor, or assigned to a GPIO pin on the co-processor. -> -> To configure this, use `idf.py menuconfig` on the co-processor: **Example -> configuration** ---> **SPI Half-duplex Configuration** ---> -> **GPIOs** and set **Slave GPIO pin to reset itself**. - -### 3.4 Pin Assignments - -Using the pins already assigned to SPI signals (dedicated `IO_MUX` pins) is recommended to minimise propagation delays. Using other GPIO pins for SPI signals will route the signals through the GPIO matrix which may limit the maximum clock frequency that can be used. - -The following table shows the mapping between the SPI bus signals and -their SPI HD Function: - -| SPI Bus Signal | SPI HD Function | Applicable | -| :-------------: | :--------------: | :--------------: | -| SPI_CS | Chip Select | Dual, Quad SPI | -| SPICLK | Clock | Dual, Quad SPI | -| SPID | Data Bit 0 | Dual, Quad SPI | -| SPIQ | Data Bit 1 | Dual, Quad SPI | -| SPIWP | Data Bit 2 | Quad SPI | -| SPIHD | Data Bit 3 | Quad SPI | -| Data_Ready | Extra GPIO\* | Dual, Quad SPI | -| Reset | Extra GPIO\* | Dual, Quad SPI | - -- Extra GPIOs `Data_Ready`, `Reset` are explained above in [3.3 Extra GPIO Signals](#33-extra-gpio-signals) -- The `SPI HD CS signal`, `Data_Ready` and `Reset` can be assigned to any GPIO pin on the host and co-processor. -- By default, the SPI bus would idle (no CS, no clock, no data) when no transaction needed from either side, co-processor or host. -- `Data_Ready` could be made optional with some code changes, but it would mean that the SPI bus would not be idled out when no transaction needed. This would be lower number of GPIOs used, but the power consumption would be higher. We are adding this feature soon. - -## 4 SPI HD Protocol - -Hosted uses the ESP SPI co-processor HD (Half Duplex) Mode Protocol (see [References](#11-references)) with some modifications. - -### 4.1 Data IO Modes - -When communicating with the co-processor, the master uses the Command, Address, Dummy and Data phases during an SPI transaction. The number of bits and number of data lines used in each phase are: - -- **Command**: 8 bits, 1 data line -- **Address**: 8 bits, 2 or 4 data lines -- **Dummy**: 8 bits, 1 data line -- **Data**: variable length, 2 or 4 data lines - -> [!NOTE] -> -> The number of data lines used in the Address and Data phase depends -> on the Command Mask in the Command sent by the host. See [Supported Commands](#44-supported-commands). - -### 4.2 Supported Commands - -Hosted uses the following SPI HD commands when communicating with the co-processor: - -| Command | OpCode | Purpose | -| :---: | :---: | :--- | -| WRBUF | 0x01 | Write to a 32-bit buffer register on the co-processor | -| RDBUF | 0x02 | Read from a 32-bit buffer register on the co-processor | -| WRDMA | 0x03 | Write data to the co-processor using DMA | -| RDDMA | 0x04 | Read data from the co-processor during DMA | -| WR_DONE | 0x07 | End of DMA write | -| CMD8 | 0x08 | End of DMA read | -| CMD9 | 0x09 | End of register read | - -#### 4.2.1 Command Mask - -The Commands are masked with a command mask to tell the co-processor the correct number of data lines to use during the transaction (2 or 4 data lines). Hosted uses the following masks, which are bit ORed with the command during a SPI transactions: - -| Mode | Mask | -| :---: | :---: | -| 2-bits | 0x50 | -| 4-bits | 0xA0 | - -For example, if the host sends command `0x51` (2-bit mask + WRBUF), the host and co-processor will use 2 data lines to send the address and data. If the host sends command `0xA1` (4-bit mask + WRBUF), the host and co-processor will use 4 data lines to send the address and data. - -The Command Mask determines the number of data lines used for the transaction. Even if there are four data lines between the host and co-processor, the host can tell the co-processor to use only two data lines by applying the 0x50 command mask. - -> [!WARNING] -> -> It is an error to apply the 4-bit data mask (0xA0) when there are -> only two data lines connecting the host and co-processor. - -### 4.3 Registers Used - -The ESP SPI Co-processor HD Mode Protocol defines a number of registers on the co-processor. These registers are used in Hosted as follows: - -| Register | Name | Purpose | -| :---: | :---: | :--- | -| 0x00 | COPROCESSOR\_READY | Indicates if co-processor is ready | -| 0x04 | MAX\_TX\_BUF\_LEN | Maximum length of DMA data co-processor can transmit | -| 0x08 | MAX\_RX\_BUF\_LEN | Maximum length of DMA data co-processor can receive | -| 0x0C | TX\_BUF\_LEN | Updated whenever co-processor wants to transmit data | -| 0x10 | RX\_BUF\_LEN | Updated whenever co-processor can receive data | -| 0x14 | COPROCESSOR\_CONTROL | Controls co-processor operation | - -### 4.4 Timing Diagrams - -The following diagrams summarize the SPI transactions as used by Hosted: - -![Using Four Data Lines](images/spi_hd_timing_4_lines.svg) - -*SPI Transaction using 4 data lines* - -![Using Two Data Lines](images/spi_hd_timing_2_lines.svg) - -*SPI Transaction using 2 data lines* - - -## 5 SPI HD Operation - -### 5.1 Initialization - -#### 5.1.1 Co-processor and Host Initialization - -The co-processor starts up and initialises the SPI HD transport. When the co-processor is ready it writes the value `COPROCESSOR_IS_READY` (0xEE) to the COPROCESSOR\_READY register. - -The Host starts up and initialises the SPI HD transport. When ready, it polls the COPROCESSOR\_READY register on the co-processor until it reads the value -`COPROCESSOR_IS_READY`. - -Once co-processor is ready, host prepare for interrupts triggered by `Data_Ready`, and sets bit 0 on the COPROCESSOR\_CONTROL register to 1. This opens the data path to the co-processor. - -Both host and co-processor are now ready to communicate. - -The first packet the co-processor transfers to the host is a Capabilities Packet, stating what the co-processor is capable of supporting: - -- WLAN, Bluetooth, etc. -- the number of data lines supported for SPI HD - -The host uses this packet to determine what the co-processor is capable of supporting. - -```mermaid -sequenceDiagram - participant h as Host - participant s as Co-processor - - note over s,h : Init - - loop Executed periodically - h ->> s : Read COPROCESSOR_READY reg - s -->> h : Not Ready (!0xEE) - end - - note over s : Ready: COPROCESSOR_READY = 0xEE - h ->> s : Read COPROCESSOR_READY reg - s -->> h : Ready (0xEE) - note over h : Enable Data_Ready interrupt - h ->> s : Set COPROCESSOR_CONTROL reg = 1 - - note over s : Open Data Path - note over s : Prepare Capability Data - - note over s : Assert Data_Ready - h ->> s : Read Data - s -->> h : Capability - note over s : Deassert Data_Ready - - note over s,h : SPI HD Transport Ready -``` - -*SPI HD Initialization Sequence* - -#### 5.1.2 Number of Data Lines Used - -After initialization, the host initially communicates with the co-processor using two data lines. If the co-processor is capable of supporting four data -lines (from the Capabilities Packet sent by the co-processor), and the host is configured to also use four data lines, then four data lines will be used for subsequent data transfers. - -If neither the host or co-processor is capable of transferring data using four data lines, then only two data lines will be used. - -### 5.2 Co-processor to Host Transfer - -Co-processor asserts `Data_Ready` to tell the host it has data to send. - -Host reads the TX\_BUF\_LEN register. - -> [!NOTE] -> The upper 8-bits of the TX\_BUF\_LEN register are reserved, and -> should be masked out to get the correct read length from the -> TX\_BUF\_LEN register. - -The host subtracts the read length from its cached read length -(initial value is zero) to discover how much more data the co-processor wants to transfer to the host. The host can now read the data using the RDDMA command, ending the transfer with CMD8. The host now updates its cached read length with the co-processor's read length. - -After reading TX\_BUF\_LEN register, host sends CMD9. This tells the co-processor that the host has read the register and it is safe for the co-processor to update the register (if required) and deassert the `Data_Ready` signal. - -```mermaid -sequenceDiagram - participant h as Host - participant s as Co-processor - - note over s : Prepare data to send, update TX_BUF_LEN - - note over s : Assert Data_Ready - - h ->> s : Read TX_BUF_LEN - note over h : Bytes to transfer = TX_BUF_LEN - (cached)TX_BUF_LEN - - h ->> s : Send CMD9 - note over s : Deassert Data_Ready - - h ->> s : Send RDDMA - s -->> h : Transfer Data - - h ->> s : CMD8 (at end of transfer) - - note over h : update (cached)TX_BUF_LEN -``` - -*SPI HD Read Sequence* - -### 5.3 Host to Co-processor Transfer - -Host reads the RX\_BUF\_LEN register to discover how many buffers are -available on the co-processor (each buffer is of size MAX\_RX\_BUF\_LEN). If -there are not enough buffers to store the data to be sent, the host -should wait and re-read the register until there are enough buffers. - -Once there are enough buffers, the host can use WRDMA to send data, -ending each buffer transfer with WR_DONE. - -```mermaid -sequenceDiagram - participant h as Host - participant s as Co-processor - - note over h : Prepare data to send - - loop Read until got buffer space - h ->> s : Read RX_BUF_LEN - note over h : available buffers = RX_BUF_LEN - (cached)RX_BUF_LEN - end - - h ->> s : Send WRDMA - h ->> s : Transfer Data - h ->> s : WR_DONE (at end of transfer) - - note over h : Update (cached)RX_BUF_LEN -``` - -*SPI HD Write Sequence* - -### 5.4 Code Reference - -- [`slave/main/spi_hd_slave_api.c`](https://github.com/espressif/esp-hosted-mcu/blob/main/slave/main/spi_hd_slave_api.c) implements the code to run the SPI HD driver on the co-processor -- [`host/drivers/transport/spi_hd/spi_hd_drv.c`](https://github.com/espressif/esp-hosted-mcu/blob/main/host/drivers/transport/spi_hd/spi_hd_drv.c) implements the generic code to run the SPI HD driver on the host -- [`host/port/spi_hd_wrapper.c`](https://github.com/espressif/esp-hosted-mcu/blob/main/host/port/spi_hd_wrapper.c) implements the ESP-IDF specific code used by the generic SPI HD driver on the host - -## 6 Hardware Considerations - -### 6.1 General Considerations - -- Ensure equal trace lengths for all SPI connections, whether using jumper wires or PCB traces. -- Use the lower clock frequency like 5 MHz for evaluation. Once solution verified, optimise the clock frequency in increasing steps to max possible value. To find out practical maximum SPI co-processor frequency for your co-processor, check `IDF_PERFORMANCE_MAX_SPI_CLK_FREQ` in [ESP-IDF co-processor SPI clock benchmark](https://github.com/espressif/esp-idf/blob/master/components/esp_driver_spi/test_apps/components/spi_bench_mark/include/spi_performance.h) -- Verify voltage compatibility between host and co-processor devices. -- Provide proper power supply decoupling for both host and co-processor devices. - -### 6.2 Jumper Wires - -- Jumper wires are suitable for initial testing and prototyping. -- Use high-quality, low-capacitance jumper wires. -- Keep wires as short as possible, ideally under 10 cm. -- Arrange wires to minimize crosstalk, especially for clock and data lines. -- Possibly, use twisted pairs for clock and data lines to reduce electromagnetic interference. -- If possible, use a ground wire between every signal wire to improve signal integrity. -- Connect as many grounds as possible to improve common ground reference and reduce ground noise. - -> [!IMPORTANT] -> -> Quad SPI (QSPI) should not be used with jumper cables due to signal integrity issues. Use Dual SPI for evaluation with jumper cables. - -### 6.3 PCB Design - -For optimal performance and reliability in production designs: - -- Ensure equal trace lengths for all SPI signals (CLK, MOSI, MISO, CS) as much as possible. This practice, known as length matching, is crucial for maintaining signal integrity and reducing timing skew, especially at higher frequencies. -- If perfect length matching is not possible, prioritize matching the clock (CLK) trace length with the data lines. -- Use controlled impedance traces for high-speed signals. -- Place bypass capacitors close to the power pins of both the host and co-processor devices. -- Consider using series termination resistors on the clock and data lines to reduce reflections. -- For high-speed designs, use a 4-layer PCB with dedicated power and ground planes. -- Quad SPI (QSPI) should only be implemented on a properly designed PCB. - - -### 6.4 Advanced Considerations - -- Calculate the maximum allowed trace length based on your clock frequency and PCB material. -- Consider the capacitive load on the SPI bus, especially for longer traces or when using multiple co-processor devices. -- For very high-speed designs, consider using differential signaling techniques. -- Implement proper EMI/EMC design techniques to minimize electromagnetic interference. -- Use an oscilloscope or logic analyzer to verify signal integrity and timing. -- Start with a lower clock frequency and gradually increase it while monitoring performance. -- Ensure proper grounding between the host and co-processor devices. -- If using multiple power supplies, ensure they share a common ground. -- Consider using level shifters if the host and co-processor operate at different voltage levels. - -## 7 Hardware Setup - -> [!IMPORTANT] -> -> Remember that Quad SPI (using D2 and D3) should only be used with a properly designed PCB, not with jumper wires. - -Before flashing the co-processor and host, ensure that you have made the correct hardware connections. The following tables show the recommended connections for SPI Half Duplex mode: - - - -### Host connections -| Signal | ESP32-S3 | ESP32-P4-Function-EV-Board | Applicable | -| :--------: | :------: | :------------------------: | :------------: | -| CLK | 19 | 18 | Dual, Quad SPI | -| D0 | 13 | 14 | Dual, Quad SPI | -| D1 | 35 | 15 | Dual, Quad SPI | -| CS | 47 | 19 | Dual, Quad SPI | -| Data Ready | 12 | 6 | Dual, Quad SPI | -| Reset Out | 42 | 54 | Dual, Quad SPI | -| GND | GND | GND | Dual, Quad SPI | -| D2 | 20 | 16 | Quad SPI only | -| D3 | 9 | 17 | Quad SPI only | - -- Host GPIOs can be re-configured to any other GPIOs, while co-processor configuration is done. - - Make sure the configuration and hardware connections match. -- Classic ESP32 - - Not supported as host or co-processor - - Rest all chipsets are supported as host -- ESP32-S2/C2/C3/C5/C6/C61 - - Pins for SPI Half Duplex Host need to be figured out yet. -- ESP32-P4 - - For ESP32-P4-Function-EV-Board, the SDIO onboard pins are re-used for SPI Half Duplex Host. - - For Non ESP32-P4-Function-EV-Board, pins for SPI Half Duplex Host need to be figured out yet. - -### Co-processor connections - -| Signal | ESP32-C6 on ESP32-P4-Function-EV-Board | ESP32-C2/C3/C6 | ESP32-C5 | Applicable | -| :---------: | :-----------------------------------: | :------------: | :------: | :------------: | -| CLK | 19 | 6 | 6 | Dual, Quad SPI | -| D0 | 20 | 7 | 7 | Dual, Quad SPI | -| D1 | 21 | 2 | 2 | Dual, Quad SPI | -| CS | 18 | 10 | 10 | Dual, Quad SPI | -| Data Ready | 2 | 0 | 13 | Dual, Quad SPI | -| Reset In | EN/RST | EN/RST | EN/RST | Dual, Quad SPI | -| GND | GND | GND | GND | Dual, Quad SPI | -| D2 | 22 | 5 | 5 | Quad SPI only | -| D3 | 23 | 4 | 4 | Quad SPI only | - -- Co-processor GPIOs can be re-configured to any other GPIOs, while co-processor configuration is done. - - Make sure the configuration and hardware connections match. -- ESP32-C2/C3/C5/C6/C61/S2/S3 - - All supported as SPI Half Duplex co-processor - - Pins for SPI Half Duplex co-processor need to be figured out yet for other boards - -> [!NOTE] -> -> A. QSPI Testing -> - Tested on ESP32-P4-Function-EV-Board -> - ESP32-P4 as host, ESP32-C6/C3 as QSPI co-processor -> - Reused existing SDIO connections for QSPI on C6 and P4 -> -> B. Dual SPI Testing -> - ESP32-S3 host with ESP32-C5 co-processor -> - Tested using jumper cables -> -> C. Performance Optimization -> - Always prefer to use IO_MUX pins from datasheet for optimal performance on both sides -> -> D. Portability -> - Once ported, any other non ESP host with Dual SPI or QSPI can be used - -## 8 Set-Up ESP-IDF - -Before setting up the ESP-Hosted co-processor & host for SPI Half Duplex mode, ensure that ESP-IDF is properly installed and set up on your system. - -#### Option 1: Installer Way - -- **Windows** - - Install and setup ESP-IDF on Windows as documented in the [Standard Setup of Toolchain for Windows](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/windows-setup.html). - - Use the ESP-IDF [Powershell Command Prompt](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/windows-setup.html#using-the-command-prompt) for subsequent commands. - -- **Linux or MacOS** - - For bash: - ```bash - bash docs/setup_esp_idf__latest_stable__linux_macos.sh - ``` - - For fish: - ```fish - fish docs/setup_esp_idf__latest_stable__linux_macos.fish - ``` - -#### Option 2: Manual Way - -Please follow the [ESP-IDF Get Started Guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/index.html) for manual installation. - -## 9 Flashing the Co-processor - -| Supported Co-processor Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-S2 | ESP32-S3 | -| ------------------------------ | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | - -### 9.1 Create Co-processor Project -1. Create co-processor project possibly outside of ESP-IDF project directory using - - ```bash - idf.py create-project-from-example "espressif/esp_hosted:slave" - ``` - -2. Navigate to the created project directory. - -3. Configure the project for your target ESP chip: - - ```bash - idf.py set-target - ``` - Replace `` with your specific co-processor ESP chip (e.g., esp32c3, esp32s3). - -### 9.2 Co-processor Config -Configure the co-processor project using -``` -idf.py menuconfig -``` - -#### 9.2.1 Transport config - - Navigate to "Example configuration" -> "Transport layer" - - Select "SPI Half-duplex" - -#### 9.2.2 Any other config - - Optionally, Configure any additional SPI-specific settings like co-processor GPIOs, SPI mode, etc. - -###### Generated files -- Generated config files are (1) `sdkconfig` file and (2) internal `sdkconfig.h` file. -- Please note, any manually changes done to these generated files, would not take effect. - -###### Defaulting specific config (Optional) -- This is advanced option, so please be careful. -- To mark some config options as default, you can add specific config line in file, `sdkconfig.defaults.`. So whenever next time building, you do not need to re-configure. - -### 9.3 Co-processor Build -Build the co-processor project - -``` -idf.py build -``` - -### 9.4 Co-processor Flashing - -There are two methods to flash the ESP-Hosted co-processor firmware: - -##### 9.4.1 Serial Flashing (Initial Setup) - -For the initial setup or when OTA is not available, use serial flashing. - -Flash the co-processor firmware using -``` -idf.py -p flash -``` - -> [!NOTE] -> -> If you are not able to flash the co-processor, there might be a chance that host is not allowing to to do so. -> -> Put host in bootloader mode using following command and then retry flashing the co-processor -> -> `esptool.py -p **** --before default_reset --after no_reset run` -> -> Flash the co-processor and log the output: -> -> `idf.py -p flash monitor` - -##### 9.4.2 Co-processor OTA Flashing (Subsequent Updates) - -For subsequent updates, you can re-use ESP-Hosted-MCU transport, as it should be already working. While doing OTA, Complete co-processor firmware image is not needed and only co-processor application partition, 'network_adapter.bin' need to be re-flashed remotely from host. - -1. Ensure your co-processor device is connected and communicating with the host with existing ESP-Hosted-MCU. - -2. Create a web server -You can re-use your existing web server or create a new locally for testing. Below is example to do it. - - Make a new directory so that web server can be run into it and navigate into it - - Create simple local web server using python3 - - ```bash - python3 -m http.server 8080 - ``` -3. Copy the co-processor app partition `network_adapter.bin` in the directory where you created the web server. - - The `network_adapter.bin` can be found in your co-processor project build at `/build/network_adapter.bin` - -4. Verify if web server is set-up correctly - - Open link `http://127.0.0.1:8080` in the browser and check if network_adapter.bin is available. - - Right click and copy the complete URL of this network_adapter.bin and note somewhere. - -5. On the **host side**, use the `esp_hosted_slave_ota` function to initiate the OTA update: - - ```c - #include "esp_hosted.h" - - const char* image_url = "http://example.com/path/to/network_adapter.bin"; //web server full url - esp_err_t ret = esp_hosted_slave_ota(image_url); - if (ret == ESP_OK) { - printf("co-processor OTA update failed[%d]\n", ret); - } - ``` - - This function will download the firmware in chunk by chunk as http client from the specified URL and flash it to the co-processor device through the established transport. - In above web server example, You can paste the copied url earlier. - - -6. Monitor the OTA progress through the console output on both the host and co-processor devices. - -> [!NOTE] -> -> - The `esp_hosted_slave_ota` function is part of the ESP-Hosted-MCU API and handles the OTA process through the transport layer. -> - Ensure that your host application has web server connectivity to download the firmware file. -> - The co-processor device doesn't need to be connected to the web server for this OTA method. - -## 10 Flashing the Host - -Host are required to support 2 data line SPI (dual SPI) or 4 line SPI (quad SPI or QSPI) in their hardware. All ESP chipsets hardware support dual, quad SPI. - -| Supported Host Targets | Any ESP chipset | Any Non-ESP chipset | -| ----------------------- | --------------- | ------------------- | - -Non ESP chipset may need to port the porting layer. It is strongly recommanded to evaluate the solution using ESP chipset as host before porting to any non-esp chipset. -For Quad SPI, PCB is only supported. Dual SPI could be evaluted using jumper cables. - -Non-ESP Hosts, while porting, need to ensure that the Half duplex protocol and framing is exactly same as that of co-processor. - -### 10.1 Select Example to Run in Hosted Mode - -Select an example from the [ESP-IDF examples directory](https://github.com/espressif/esp-idf/tree/master/examples) that you wish to run in ESP-Hosted mode. All Wi-Fi and Bluetooth examples are supported. For simplicity and demonstration purposes, we will use the [ESP-IDF iperf example](https://github.com/espressif/esp-idf/tree/master/examples/wifi/iperf). - -### 10.2 Host Project Component Configuration - -Now that ESP-IDF is set up, follow these steps to prepare the host: - -###### 1. Navigate to the iperf example in your ESP-IDF directory: - ``` - cd $IDF_PATH/examples/wifi/iperf - ``` - -###### 2. Dependency components - Add the required components to the project's `idf_component.yml` file: - ``` - idf.py add-dependency "espressif/esp_wifi_remote" - idf.py add-dependency "espressif/esp_hosted" - ``` - -###### 3. Remove conflicting configuration - Open the `main/idf_component.yml` file and remove/comment the following block if present: - ``` - # ------- Delete or comment this block --------- - espressif/esp-extconn: - version: "~0.1.0" - rules: - - if: "target in [esp32p4]" - # ----------------------------------- - ``` - This step is necessary because esp-extconn and esp-hosted cannot work together. - -###### 4. Disable native Wi-Fi if available - If your host ESP chip already has native Wi-Fi support, disable it by editing the `components/soc//include/soc/Kconfig.soc_caps.in` file and changing all `WIFI` related configs to `n`. - - If you happen to have both, host and co-processor as same ESP chipset type (for example two ESP32-C2), note an [additional step](docs/troubleshooting/#1-esp-host-to-evaluate-already-has-native-wi-fi) - - -### 10.3 Menuconfig, Build and Flash Host - -###### 1. High performance configurations - This is optional step, suggested for high performance applications. - - If using ESP32-P4 as host: - - Remove the default `sdkconfig.defaults.esp32p4` file. - - Create a new `sdkconfig.defaults.esp32p4` file with the following content: - ``` - CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=16 - CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=64 - CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=64 - CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=y - CONFIG_ESP_WIFI_TX_BA_WIN=32 - CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=y - CONFIG_ESP_WIFI_RX_BA_WIN=32 - - CONFIG_LWIP_TCP_SND_BUF_DEFAULT=65534 - CONFIG_LWIP_TCP_WND_DEFAULT=65534 - CONFIG_LWIP_TCP_RECVMBOX_SIZE=64 - CONFIG_LWIP_UDP_RECVMBOX_SIZE=64 - CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=64 - - CONFIG_LWIP_TCP_SACK_OUT=y - ``` - - For other hosts also, you can merge above configs in corresponding `sdkconfig.defaults.esp32XX` file. - -###### 2. Set environment for your host ESP chip: - - ``` - idf.py set-target - ``` - Replace `` with your specific ESP chip (one of esp32, esp32c2, esp32c3, esp32c5, esp32c6, esp32s2, esp32s3, esp32p4). - -###### 3. Flexible Menuconfig configurations - - ``` - idf.py menuconfig - ``` - ESP-Hosted-MCU host configurations are available under "Component config" -> "ESP-Hosted config" - 1. Select "SPI Half-duplex" as the transport layer - 2. Change co-processor chipset to connect to under "Slave chipset to be used" - 3. Change Number of data lines to 2 or 4 based on the co-processor using "SPI Half-duplex Configuration" -> "Num Data Lines to use" - 4. Optionally, Configure SPI-specific settings like - - SPI Clock Freq (MHz) - - SPI Mode - - SPI Host GPIO Pins - - SPI Checksum Enable/Disable (Checksum is recommended to be enabled as spi hardware doesn't have any error detection) - - > [!NOTE] - > - > The actual clock frequency used is determined by the hardware. Use an oscilloscope or logic analyzer to check the clock frequency. - -###### 4. Build the project: - ``` - idf.py build - ``` - -###### 5. Flash the firmware: - ``` - idf.py -p flash - ``` - -###### 6. Monitor the output: - ``` - idf.py -p monitor - ``` - - If host was put into bootloader mode earlier, it may need manual reset - -## 11 Testing and Troubleshooting - -After flashing both the co-processor and host devices, follow these steps to connect and test your ESP-Hosted SPI Half Duplex setup: - -1. Connect the hardware: - - Follow the pin assignments for SPI Half Duplex as specified in [Hardware Setup](#7-hardware-setup). - - Ensure all necessary connections are made, including power, ground, and the extra GPIO signals (Data_Ready and Reset). - -2. Power on both devices. - -3. Verify the connection: - - Check the serial output of both devices for successful initialization messages. - - Look for messages indicating that the SPI Half Duplex transport layer has been established. - -4. Logs at both sides: - - Host: - - ``` - I (522) transport: Attempt connection with slave: retry[0] - I (525) transport: Reset slave using GPIO[54] - I (530) os_wrapper_esp: GPIO [54] configured - I (535) gpio: GPIO[54]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 - I (1712) transport: Received INIT event from ESP32 peripheral - I (1712) transport: EVENT: 12 - I (1712) transport: EVENT: 11 - I (1715) transport: capabilities: 0xe8 - I (1719) transport: Features supported are: - I (1724) transport: - HCI over SPI - I (1728) transport: - BLE only - I (1732) transport: EVENT: 13 - I (1736) transport: ESP board type is : 13 - - I (1741) transport: Base transport is set-up - ``` - - - Co-processor: - - ``` - I (492) fg_mcu_slave: ********************************************************************* - I (501) fg_mcu_slave: ESP-Hosted-MCU Slave FW version :: X.Y.Z - - I (511) fg_mcu_slave: Transport used :: - I (520) fg_mcu_slave: ********************************************************************* - I (529) fg_mcu_slave: Supported features are: - I (534) fg_mcu_slave: - WLAN over SPI - I (538) h_bt: - BT/BLE - I (541) h_bt: - HCI Over SPI - I (545) h_bt: - BLE only - ``` - -5. Test basic functionality: - - The iperf example automatically attempts to connect to the configured Wi-Fi network. Watch the serial output for connection status. - - If the automatic connection fails, you can manually initiate a Wi-Fi scan and connection: - ``` - sta_scan - sta_connect - ``` -6. Additional commands to test: - - Get IP address: `sta_ip` - - Disconnect from Wi-Fi: `sta_disconnect` - - Set Wi-Fi mode: `wifi_mode ` (where mode can be 'sta', 'ap', or 'apsta') - -7. Advanced iperf testing: - Once connected, you can run iperf tests to verify performance: - - | Test Case | Host Command | External STA Command | - | :-------: | :----------: | :------------------: | - | UDP Host TX | `iperf -u -c -t 60 -i 3` | `iperf -u -s -i 3` | - | UDP Host RX | `iperf -u -s -i 3` | `iperf -u -c -t 60 -i 3` | - | TCP Host TX | `iperf -c -t 60 -i 3` | `iperf -s -i 3` | - | TCP Host RX | `iperf -s -i 3` | `iperf -c -t 60 -i 3` | - - Note: Replace `` with the IP address of the external STA, and `` with the IP address of the ESP-Hosted device. - -> [!TIP] -> -> To measure the optimal performance, check out the [Shield Box Test Setup](shield-box-test-setup.md). - -8. Troubleshooting: - - If you encounter issues, refer to section 6.3 for testing the SPI connection. - - Consider using a lower clock speed or checking your [hardware setup](#7-hardware-setup) if you experience communication problems. - - ESP-Hosted-MCU troubleshooting guide: [docs/troubleshooting.md](docs/troubleshooting.md) - -9. Monitoring and debugging: - - Use the serial monitor on both devices to observe the communication between the host and co-processor. - - For more detailed debugging, consider using a logic analyzer to examine the SPI signals. - -## 12 References - -- ESP SPI co-processor HD (Half Duplex) Mode Protocol: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/protocols/esp_spi_slave_protocol.html - diff --git a/resources/espressif__esp_hosted/docs/troubleshooting.md b/resources/espressif__esp_hosted/docs/troubleshooting.md deleted file mode 100644 index 4e6668c..0000000 --- a/resources/espressif__esp_hosted/docs/troubleshooting.md +++ /dev/null @@ -1,149 +0,0 @@ -# Troubleshooting ESP-Hosted - -**Table of Contents** - -- [1. ESP host to evaluate already has Native Wi-Fi](#1-esp-host-to-evaluate-already-has-native-wi-fi) -- [2. Raw Throughput Testing](#2-raw-throughput-testing) -- [3. Make sure Hosted code is in sync for Master and Slave](#3-make-sure-hosted-code-is-in-sync-for-master-and-slave) -- [4. Make sure GPIOs match on both the Host and Slave](#4-make-sure-gpios-match-on-both-the-host-and-slave) -- [5. ESP-Hosted Master Not Connecting to Slave](#5-esp-hosted-master-not-connecting-to-slave) -- [6. Getting `Drop Packet` Errors](#6-getting-drop-packet-errors) -- [7. References](#7-references) - -## 1 ESP host to evaluate already has Native Wi-Fi - -Sometimes users have two ESPs, but both having Wi-Fi native capability. -This section explains how to run ESP-Hosted-MCU on ESP host chipsets that already have native Wi-Fi support. To run ESP-Hosted-MCU on such hosts, native Wi-Fi support needs to be disabled from base ESP-IDF in use. There are alternatives to do this: - -##### 1.1 Different ESP chipset types for host and slave -If host and slave not the same ESP chipset types, Wi-Fi capability can be disabled for host ESP chipset alone. Edit the ESP-IDF file -`components/soc//include/soc/Kconfig.soc_caps.in` and change -all `WIFI` related configs to `n`. For example: - -``` -config SOC_WIFI_SUPPORTED - bool - # default y # original configuration - default n -``` - -This should be done for all `SOC_WIFI_xxx` configs found in the file. - -For ESP Chipsets without native Wi-FI, `SOC_WIFI_xxx` configs will be -`n` by default. - - -##### 1.2 Same ESP chipset types for host and slave -There is possibility that you have two chipsets to evaluate, but both are exactly same chipset type. For example, two ESP32-C3. In this case, it is a two step build, first for host and second for slave. -While building for host ESP chipset, follow above (1) and flash, monitor. Once host is flashed fine, revert all the changes and flash the slave ESP chipset. - -## 2 Raw Throughput Testing - -While aiming the high performance and even while assessing the solution correctness, It is crucial to understand the bottlenecks in the system. -'Raw throughput testing' is simple transport level testing, which would showcase the maximum throughput that the transport is able to achieve, right now in current set-up. -In this test, dummy data is sent from one transport end to other continously, without involving Wi-Fi, Bluetooth or any other code legs. This test can be performed in following ways: -- Host to slave (Half duplex) : dummy data to be sent from host to slave continously -- Slave to Host (Half duplex) : dummy data to be sent from slave to host continously -- Full duplex bi-directional : dummy data to be sent from both the directions simulataneously - -This can verify hardware signal integrity and address porting issues. It also helps to assess the achievable throughput of the Hosted solution. It can be further optionally used for transport throughput fine-tuning. - -> [!IMPORTANT] -> Use Raw throughput test to verify that Hosted hardware and software are -> working as expected before involving other software layers like -> networking. - -To enable the Raw Throughput Option on Slave, enter `Menuconfig` and -enable **Example Configuration** ---> **Hosted Debugging** ---> -**RawTP**. - -To enable the Raw Throughput Option and set Raw Throughput direction -on Host, enter `Menuconfig` and enable **Component config** ---> -**ESP-Hosted config** ---> **Debug Settings** ---> **RawTP**. Set -the data transfer direction: **Host to Slave**, **Slave to Host** or -**Bidirectional**. - -## 3 Make sure Hosted code is in sync for Master and Slave - -The [README](../README.md) instructions will always fetch the latest -version of ESP-Hosted from the Component Registry. Generally, this -should be fine. But you can also fetch ESP-Hosted code based on a -revision to get a fixed version of the code: - -For example, to fetch version 0.0.9 of ESP-Hosted Master: - -``` -idf.py add-dependency "espressif/esp_hosted^0.0.9" -``` - -To fetch version 0.0.9 of the ESP-Hosted Slave: - -``` -idf.py create-project-from-example "espressif/esp_hosted^0.0.9:slave" -``` - -This will ensure that both the Master and Slave code are fixed and in -sync for your project. Please ensure you use latest versions for bug-fixes - -> [!NOTE] -> When you switch Hosted versions, make sure you use the same version -> of the Master and Slave code. There may be changes to the Hosted -> implementation that may make different versions of Hosted Master and -> Slave incompatible. - -## 4 Make sure GPIOs match on both the Host and Slave - -- Check that the GPIOs you use on the Host and Slave are correct and are connected together as expected -- Verify that the GPIO values you set in `menuconfig` match the hardware GPIOs you are actually using -- Ensure that you are not using incompatible GPIOs: - - on the ESP32, some GPIOs are input only and cannot be used for output - - on the ESP32 and ESP32-C6, the GPIOs used for SDIO are fixed and cannot be changed - -## 5 ESP-Hosted Master Not Connecting to Slave - -If you see the following error on the ESP-Hosted Master console using the SPI Interface: - -``` -E (10645) transport: Not able to connect with ESP-Hosted slave device -``` - -or this error on the ESP-Hosted Master console using the SDIO Interface: - -``` -E (1735) sdmmc_common: sdmmc_init_ocr: send_op_cond (1) returned 0x107 -``` - -It means that something is wrong with the SPI or SDIO connection and -the Host cannot communicate with the slave. - -- Check your physical GPIO signals and verify that they are connected -- Ensure that you have selected the same transports for the slave and - host (both are using the same SPI or SDIO interface). - - It is expected that slave and host uses exact same codebase (git commit) - - Transport configured at slave matches to that of host - - Firmware configured with incompatible configurations also would result in issues. -- Verify that the physical GPIO signals is the same as those assigned to the system using `Menuconfig` on both the Host and Slave -- If you selected SDIO as the interface and your host is a classic ESP32, there may be conflict with the GPIO used to bootstrap the ESP32 and used in SDIO. See "Conflicts Between Bootstrap and SDIO on DAT2" in - [References](#7-references) for more information -- for SDIO, verify that pull-ups and other signalling requirments (short, shielded connections) are also met. See the [SDIO interface](sdio.md) page for more information on SDIO requirements -- If your transport allows on jumper cables, cross-check max length of jumper cables allowed - -## 6 Getting `Drop Packet` Errors - -For the SPI interface, if you see an error similar to this: - -``` -I (478522) spi: rcvd_crc[30224] != exp_crc[36043], drop pkt -``` - -Your SPI interface is facing signal integrity errors. - -- try reducing the SPI `CLK` frequency (using `Menuconfig`). If the - problem goes away, it indicates that there is an issue with the - physcial SPI signals -- use an oscilloscope to check the physical signals on the SPI - interface for noise, ringing, etc. that may affect the signals - -## 7 References - -- [Conflicts Between Bootstrap and SDIO on DAT2](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/sd_pullup_requirements.html#conflicts-between-bootstrap-and-sdio-on-dat2) diff --git a/resources/espressif__esp_hosted/docs/uart.md b/resources/espressif__esp_hosted/docs/uart.md deleted file mode 100644 index 0caa6ea..0000000 --- a/resources/espressif__esp_hosted/docs/uart.md +++ /dev/null @@ -1,450 +0,0 @@ -# ESP-Hosted UART Operation for Wi-Fi and Bluetooth - -Section 6 to 8 covers the complete step-wise setup co-processor and host with UART. - -If you wish to skip the theory, you can refer the [Quick Start Guide](#1-quick-start-guide) below. For quick navigation, please unfold the Table of Contents below. - -
    -Table of Contents - -- [1 Quick Start Guide](#1-quick-start-guide) - -- [2 Introduction](#2-introduction) - -- [3 Hardware Considerations](#3-hardware-considerations) => [1 GPIO Configuration for UART](#31-gpio-configuration-for-uart) || [2 Extra GPIO Signals Required](#32-extra-gpio-signals-required) || [3 General Hardware Considerations](#33-general-hardware-considerations) || [4 PCB Design](#34-pcb-design) || [5 Advanced Considerations](#35-advanced-considerations) - -- [4 Hardware Setup](#4-hardware-setup) - -- [5 Set-Up ESP-IDF](#5-set-up-esp-idf) => [Option 1: Installer Way](#option-1-installer-way) || [Option 2: Manual Way](#option-2-manual-way) - -- [6 Flashing the Co-processor](#6-flashing-the-co-processor) => [1 Create Co-processor Project](#61-create-co-processor-project) || [2 Co-processor Config](#62-co-processor-config) || [3 Co-processor Build](#63-co-processor-build) || [4 Co-processor Flashing](#64-co-processor-flashing) - -- [7 Flashing the Host](#7-flashing-the-host) => [1 Select Example to Run in Hosted Mode](#71-select-example-to-run-in-hosted-mode) || [2 Host Project Component Configuration](#72-host-project-component-configuration) || [3 Menuconfig, Build and Flash Host](#73-menuconfig-build-and-flash-host) - -- [8 Testing and Troubleshooting](#8-testing-and-troubleshooting) - -- [9 References](#9-references) - -
    - -## 1 Quick Start Guide - -This section provides a brief overview of how to get started with ESP-Hosted using UART mode. - -These sections will guide you through the process of flashing both the co-processor and host devices, setting up the hardware connections, and verifying successful communication. - -## 2 Introduction - -UART is a low-speed bus that only requires two signal lines to communicate between the host and co-processor. - -UART is supported on all ESP devices, and many other MCUs and operating systems. It is quick to bring up and test. - -However, UART is a low-speed bus, and not recommended for environments where high network throughput (more than 1 Mbits/s) is required. - -> [!NOTE] -> UART is used to transport both Wi-Fi and Bluetooth data (as Hosted HCI). Do not confuse this with standard HCI sent over UART, which does not support Wi-Fi. - -## 3 Hardware Considerations - -### 3.1 GPIO Configuration for UART - -The UART interface can use almost any GPIO pins. For maximum speed and minimal delays, it is recommended to select the SDIO pin configuration that uses the dedicated `IO_MUX` pins. - -### 3.2 Extra GPIO Signals Required - -Extra GPIO signals are required for UART on Hosted and can be assigned to any free GPIO pins: - -- `Reset` signal: an output signal from the host to the co-processor. When asserted, the host resets the co-processor. This is done when ESP-Hosted is started on the host, to synchronise the state of the host and co-processor. - -> [!NOTE] -> The `Reset` signal suggested to connect to the `EN` or `RST` pin on the co-processor, It is however configurable to use another GPIO pin. -> -> To configure this, use `idf.py menuconfig` on the co-processor: **Example configuration** ---> **UART Configuration** and set **Slave GPIO pin to reset itself**. - -### 3.3 General Hardware Considerations - -- Due to UART's low speed, signal integrity is less of a concern compared to SPI or SDIO. However, general rules on signal routing and noise reduction still applies. -- Jumper wires are only suitable for initial testing and prototyping. -- Ensure equal trace lengths for all UART connections, whether using jumper wires or PCB traces. -- Keep wires as short as possible, under 10 cm. Smaller the better. -- Use the lower baud rates like 115200 for evaluation. Once solution verified, optimise the baud rate in increasing steps to max possible value. -- Provide proper power supply for both host and co-processor devices. Lower or incorrect power supplies can cause communication issues & suboptimal performance. -- If possible, use a ground wire between every signal wire to improve signal integrity. -- Connect as many grounds as possible to improve common ground reference and reduce ground noise. - -### 3.4 PCB Design - -For optimal performance and reliability in production designs: - -- Ensure equal trace lengths for all UART signals (Rx, Tx) as much as possible. This practice, known as length matching, is crucial for maintaining signal integrity and reducing timing skew, especially at higher frequencies. -- Use controlled impedance traces for high-speed signals. -- Place bypass capacitors close to the power pins of both the host and co-processor devices. -- Consider using series termination resistors on the clock and data lines to reduce reflections. -- For high-speed designs, use a 4-layer PCB with dedicated power and ground planes. - -### 3.5 Advanced Considerations - -- Calculate the maximum allowed trace length based on your baud rate and PCB material. -- Consider the capacitive load on the UART signals, especially for longer traces -- For very high-speed designs, consider using differential signaling techniques. -- Implement proper EMI/EMC design techniques to minimize electromagnetic interference. - -## 4 Hardware Setup - -Setting up the hardware involves connecting the master and co-processor devices via the UART pins and ensuring all extra GPIO signals are properly connected. - -Any GPIO pin can be used for ESP-Hosted UART Rx and Tx. But avoid using the ESP assigned UART Tx0 and Rx0 pins. There are for debugging output. (ESP-Hosted uses another UART controller.) - -## 5 Set-Up ESP-IDF - -Before setting up the ESP-Hosted co-processor & host for UART mode, ensure that ESP-IDF is properly installed and set up on your system. - -### Option 1: Installer Way - -- **Windows** - - Install and setup ESP-IDF on Windows as documented in the [Standard Setup of Toolchain for Windows](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/windows-setup.html). - - Use the ESP-IDF [Powershell Command Prompt](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/windows-setup.html#using-the-command-prompt) for subsequent commands. - -- **Linux or MacOS** - - For bash: - ```bash - bash docs/setup_esp_idf__latest_stable__linux_macos.sh - ``` - - For fish: - ```fish - fish docs/setup_esp_idf__latest_stable__linux_macos.fish - ``` - -### Option 2: Manual Way - -Please follow the [ESP-IDF Get Started Guide](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/get-started/index.html) for manual installation. - -## 6 Flashing the Co-processor - -| Supported Co-processor Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-S2 | ESP32-S3 | -| ------------------------------ | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | - -### 6.1 Create Co-processor Project -1. Create co-processor project possibly outside of ESP-IDF project directory using - - ```bash - idf.py create-project-from-example "espressif/esp_hosted:slave" - ``` - -2. Navigate to the created project directory. - -3. Configure the project for your target ESP chip: - - ```bash - idf.py set-target - ``` - Replace `` with your specific co-processor ESP chip (e.g., esp32c3, esp32s3). - -### 6.2 Co-processor Config -Configure the co-processor project using -``` -idf.py menuconfig -``` - -#### 6.2.1 Transport config - - Navigate to "Example configuration" -> "Transport layer" - - Select "UART" - -#### 6.2.2 Any other config - - Optionally, Configure any additional UART-specific settings like TX and Rx GPIOs, baud rate, etc. - -###### Generated files -- Generated config files are (1) `sdkconfig` file and (2) internal `sdkconfig.h` file. -- Please note, any manually changes done to these generated files, would not take effect. - -###### Defaulting specific config (Optional) -- This is advanced option, so please be careful. -- To mark some config options as default, you can add specific config line in file, `sdkconfig.defaults.`. So whenever next time building, you do not need to re-configure. - -### 6.3 Co-processor Build -Build the co-processor project - -``` -idf.py build -``` - -### 6.4 Co-processor Flashing - -There are two methods to flash the ESP-Hosted co-processor firmware: - -##### 6.4.1 Serial Flashing (Initial Setup) - -For the initial setup or when OTA is not available, use serial flashing. - -Flash the co-processor firmware using -``` -idf.py -p flash -``` - -> [!NOTE] -> -> If you are not able to flash the co-processor, there might be a chance that host is not allowing to to do so. -> -> Put host in bootloader mode using following command and then retry flashing the co-processor -> -> `esptool.py -p **** --before default_reset --after no_reset run` -> -> Flash the co-processor and log the output: -> -> `idf.py -p flash monitor` - -##### 6.4.2 Co-processor OTA Flashing (Subsequent Updates) - -For subsequent updates, you can re-use ESP-Hosted-MCU transport, as it should be already working. While doing OTA, Complete co-processor firmware image is not needed and only co-processor application partition, 'network_adapter.bin' need to be re-flashed remotely from host. - -1. Ensure your co-processor device is connected and communicating with the host with existing ESP-Hosted-MCU. - -2. Create a web server -You can re-use your existing web server or create a new locally for testing. Below is example to do it. - - Make a new directory so that web server can be run into it and navigate into it - - Create simple local web server using python3 - - ```bash - python3 -m http.server 8080 - ``` -3. Copy the co-processor app partition `network_adapter.bin` in the directory where you created the web server. - - The `network_adapter.bin` can be found in your co-processor project build at `/build/network_adapter.bin` - -4. Verify if web server is set-up correctly - - Open link `http://127.0.0.1:8080` in the browser and check if network_adapter.bin is available. - - Right click and copy the complete URL of this network_adapter.bin and note somewhere. - -5. On the **host side**, use the `esp_hosted_slave_ota` function to initiate the OTA update: - - ```c - #include "esp_hosted.h" - - const char* image_url = "http://example.com/path/to/network_adapter.bin"; //web server full url - esp_err_t ret = esp_hosted_slave_ota(image_url); - if (ret == ESP_OK) { - printf("co-processor OTA update failed[%d]\n", ret); - } - ``` - - This function will download the firmware in chunk by chunk as http client from the specified URL and flash it to the co-processor device through the established transport. - In above web server example, You can paste the copied url earlier. - -6. Monitor the OTA progress through the console output on both the host and co-processor devices. - -> [!NOTE] -> -> - The `esp_hosted_slave_ota` function is part of the ESP-Hosted-MCU API and handles the OTA process through the transport layer. -> - Ensure that your host application has web server connectivity to download the firmware file. -> - The co-processor device doesn't need to be connected to the web server for this OTA method. - -## 7 Flashing the Host - -Host are required to support two-line UART and the required baud rate in their hardware. All ESP chipsets hardware support UART. - -| Supported Host Targets | Any ESP chipset | Any Non-ESP chipset | -| ----------------------- | --------------- | ------------------- | - -Non ESP chipset may need to port the porting layer. It is strongly recommanded to evaluate the solution using ESP chipset as host before porting to any non-esp chipset. - -### 7.1 Select Example to Run in Hosted Mode - -Select an example from the [ESP-IDF examples directory](https://github.com/espressif/esp-idf/tree/master/examples) that you wish to run in ESP-Hosted mode. All Wi-Fi and Bluetooth examples are supported. For simplicity and demonstration purposes, we will use the [ESP-IDF iperf example](https://github.com/espressif/esp-idf/tree/master/examples/wifi/iperf). - -### 7.2 Host Project Component Configuration - -Now that ESP-IDF is set up, follow these steps to prepare the host: - -###### 1. Navigate to the iperf example in your ESP-IDF directory: - ``` - cd $IDF_PATH/examples/wifi/iperf - ``` - -###### 2. Dependency components - Add the required components to the project's `idf_component.yml` file: - ``` - idf.py add-dependency "espressif/esp_wifi_remote" - idf.py add-dependency "espressif/esp_hosted" - ``` - -###### 3. Remove conflicting configuration - Open the `main/idf_component.yml` file and remove/comment the following block if present: - ``` - # ------- Delete or comment this block --------- - espressif/esp-extconn: - version: "~0.1.0" - rules: - - if: "target in [esp32p4]" - # ----------------------------------- - ``` - This step is necessary because esp-extconn and esp-hosted cannot work together. - -###### 4. Disable native Wi-Fi if available - If your host ESP chip already has native Wi-Fi support, disable it by editing the `components/soc//include/soc/Kconfig.soc_caps.in` file and changing all `WIFI` related configs to `n`. - - If you happen to have both, host and co-processor as same ESP chipset type (for example two ESP32-C2), note an [additional step](docs/troubleshooting/#1-esp-host-to-evaluate-already-has-native-wi-fi) - - -### 7.3 Menuconfig, Build and Flash Host - -###### 1. High performance configurations - This is optional step, suggested for high performance applications. - - If using ESP32-P4 as host: - - Remove the default `sdkconfig.defaults.esp32p4` file. - - Create a new `sdkconfig.defaults.esp32p4` file with the following content: - ``` - CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=16 - CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=64 - CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=64 - CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=y - CONFIG_ESP_WIFI_TX_BA_WIN=32 - CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=y - CONFIG_ESP_WIFI_RX_BA_WIN=32 - - CONFIG_LWIP_TCP_SND_BUF_DEFAULT=65534 - CONFIG_LWIP_TCP_WND_DEFAULT=65534 - CONFIG_LWIP_TCP_RECVMBOX_SIZE=64 - CONFIG_LWIP_UDP_RECVMBOX_SIZE=64 - CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=64 - - CONFIG_LWIP_TCP_SACK_OUT=y - ``` - - For other hosts also, you can merge above configs in corresponding `sdkconfig.defaults.esp32XX` file. - -###### 2. Set environment for your host ESP chip: - - ``` - idf.py set-target - ``` - Replace `` with your specific ESP chip (one of esp32, esp32c2, esp32c3, esp32c5, esp32c6, esp32s2, esp32s3, esp32p4). - -###### 3. Flexible Menuconfig configurations - - ``` - idf.py menuconfig - ``` - ESP-Hosted-MCU host configurations are available under "Component config" -> "ESP-Hosted config" - 1. Select "UART" as the transport layer - 2. Change co-processor chipset to connect to under "Slave chipset to be used" - 3. Optionally, Configure UART-specific settings like - - UART Tx and Rx GPIOs - - UART baud rate - - UART Checksum Enable/Disable (Checksum is recommended to be enabled) - - > [!NOTE] - > The actual baud rate used is determined by the hardware. Use an oscilloscope or logic analyzer to check the baud rate and its accuracy. If the actual baud rate used to send data drifts by more than a few percent from the expected baud rate, the receiver may not be able to correctly decode the data. - -###### 4. Build the project: - ``` - idf.py build - ``` - -###### 5. Flash the firmware: - ``` - idf.py -p flash - ``` - -###### 6. Monitor the output: - ``` - idf.py -p monitor - ``` - - If host was put into bootloader mode earlier, it may need manual reset - -## 8 Testing and Troubleshooting - -After flashing both the co-processor and host devices, follow these steps to connect and test your ESP-Hosted UART setup: - -1. Connect the hardware: - - Follow the pin assignments for UART as specified in [Hardware Setup](#4-hardware-setup). - - Ensure all necessary connections are made, including power, ground. - -2. Power on both devices. - -3. Verify the connection: - - Check the serial output of both devices for successful initialization messages. - - Look for messages indicating that the UART transport layer has been established. - -4. Logs at both sides: - - Host: - - ``` - I (465) transport: Attempt connection with slave: retry[0] - I (468) transport: Reset slave using GPIO[54] - I (473) os_wrapper_esp: GPIO [54] configured - I (478) gpio: GPIO[54]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 - I (1650) transport: Received INIT event from ESP32 peripheral - I (1650) transport: EVENT: 12 - I (1650) transport: EVENT: 11 - I (1652) transport: capabilities: 0x88 - I (1657) transport: Features supported are: - I (1662) transport: - BLE only - I (1666) transport: EVENT: 16 - I (1669) transport: extended capabilities: 0x120 - I (1675) transport: Extended Features supported: - I (1680) transport: * WLAN over UART - I (1684) transport: EVENT: 13 - I (1688) transport: ESP board type is : 13 - - I (1693) transport: Base transport is set-up - ``` - - - Co-processor: - - ``` - I (484) fg_mcu_slave: ********************************************************************* - I (493) fg_mcu_slave: ESP-Hosted-MCU Slave FW version :: 0.0.6 - - I (503) fg_mcu_slave: Transport used :: UART only - I (512) fg_mcu_slave: ********************************************************************* - I (521) fg_mcu_slave: Supported features are: - I (526) h_bt: - BT/BLE - I (529) h_bt: - BLE only - I (532) fg_mcu_slave: capabilities: 0x88 - I (537) fg_mcu_slave: Supported extended features are: - I (543) fg_mcu_slave: - WLAN over UART - I (547) h_bt: - BT/BLE (extended) - I (551) h_bt: - HCI Over UART (VHCI) - I (556) fg_mcu_slave: extended capabilities: 0x120 - ``` - -5. Test basic functionality: - - The iperf example automatically attempts to connect to the configured Wi-Fi network. Watch the serial output for connection status. - - If the automatic connection fails, you can manually initiate a Wi-Fi scan and connection: - ``` - sta_scan - sta_connect - ``` -6. Additional commands to test: - - Get IP address: `sta_ip` - - Disconnect from Wi-Fi: `sta_disconnect` - - Set Wi-Fi mode: `wifi_mode ` (where mode can be 'sta', 'ap', or 'apsta') - -7. Advanced iperf testing: - Once connected, you can run iperf tests to verify performance: - - | Test Case | Host Command | External STA Command | - |-----------|--------------|----------------------| - | UDP Host TX | `iperf -u -c -t 60 -i 3` | `iperf -u -s -i 3` | - | UDP Host RX | `iperf -u -s -i 3` | `iperf -u -c -t 60 -i 3` | - | TCP Host TX | `iperf -c -t 60 -i 3` | `iperf -s -i 3` | - | TCP Host RX | `iperf -s -i 3` | `iperf -c -t 60 -i 3` | - - Note: Replace `` with the IP address of the external STA, and `` with the IP address of the ESP-Hosted device. - -> [!TIP] -> -> To measure the optimal performance, check out the [Shield Box Test Setup](shield-box-test-setup.md). - -8. Troubleshooting: - - If you encounter issues, refer to section 3.3 for checking the UART connection. - - Consider using a lower baud rate or checking your [hardware setup](#4-hardware-setup) if you experience communication problems. - - ESP-Hosted-MCU troubleshooting guide: [docs/troubleshooting.md](docs/troubleshooting.md) - -9. Monitoring and debugging: - - Use the serial monitor on both devices to observe the communication between the host and co-processor. - - For more detailed debugging, consider using a logic analyzer to examine the UART signals. - -## 9 References - -- ESP Universal Asynchronous Receiver/Transmitter (UART): https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/uart.html diff --git a/resources/espressif__esp_hosted/docs/wifi_design.md b/resources/espressif__esp_hosted/docs/wifi_design.md deleted file mode 100644 index a1cd094..0000000 --- a/resources/espressif__esp_hosted/docs/wifi_design.md +++ /dev/null @@ -1,79 +0,0 @@ -# ESP-Hosted-MCU Wi-Fi Design & Implementation details - - -## Sequence Diagram for Wi-Fi communication - -On a ESP chipset with native Wi-Fi, a Wi-Fi api call or network data -from the application is processed internally on the chip and a Wi-Fi -response is returned to the application. - -```mermaid -sequenceDiagram - box rgb(128, 128, 128) Host With Native WI-Fi - participant app as Application - participant api as ESP-IDF Wi-Fi Library - participant wifi as Wi-Fi Hardware - end - - app ->> api : esp_wifi_xxx() or Network Data - api ->> wifi : - Note over wifi : Do Wi-Fi action - wifi -->> api : Wi-Fi response or Data - api -->> app : Response or Network Data -``` - -Using Wi-Remote and ESP-Hosted, the Wi-Fi api call from the -application is converted into a Hosted Call and transported to the -slave. The slave converts the Hosted Call back into an Wi-Fi api -call. The response (optionally with data) is converted into a Hosted -Response and transported back to the host. On the host, the Hosted -Response is converted back into a Wi-Fi response (optionally with -data) is returned to the application. - -For Network Data, Hosted does not do data conversion and only -encapsulates the data for transport. - -```mermaid -sequenceDiagram - box rgb(128, 128, 128) Host with ESP-Hosted - participant app as Application - participant remote as Wi-Fi Remote - participant hostedh as ESP-Hosted - participant transporth as Host Transport - end - - box rgb(128, 128, 128) Slave ESP-Hosted - participant transports as Slave Transport - participant hosteds as Slave Hosted - participant api as ESP-IDF Wi-Fi Library - participant wifi as Wi-Fi Hardware - end - - app ->> remote : esp_wifi_xxx() - remote ->> hostedh : esp_wifi_remote_xxx() - app ->> hostedh : Network Data - Note over hostedh : add Hosted header - hostedh ->> transporth : - - transporth ->> transports : SPI/SDIO - - transports ->> hosteds : - Note over hosteds : remove Hosted header - hosteds ->> api : esp_wifi_xxx() - hosteds ->> wifi : Network Data - api ->> wifi : Wi-Fi command or Data - Note over wifi: Do Wi-Fi action - wifi -->> api : Wi-Fi response or Data - wifi -->> hosteds : Network Data - api -->> hosteds : Response - Note over hosteds : add Hosted header - hosteds -->> transports : - - transports -->> transporth : SPI/SDIO - - transporth -->> hostedh : - Note over hostedh : remove Hosted header - hostedh -->> app : Network Data - hostedh -->> remote : Wi-Fi Command response - remote -->> app : Response -``` diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/CMakeLists.txt b/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/CMakeLists.txt deleted file mode 100644 index 494477b..0000000 --- a/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -# The following lines of boilerplate have to be in your project's CMakeLists -# in this exact order for cmake to work correctly -cmake_minimum_required(VERSION 3.16) - -include($ENV{IDF_PATH}/tools/cmake/project.cmake) -# "Trim" the build. Include the minimal set of components, main, and anything it depends on. -idf_build_set_property(MINIMAL_BUILD ON) -project(ble_compatibility_test) diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/README.md b/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/README.md deleted file mode 100644 index 63a40d7..0000000 --- a/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/README.md +++ /dev/null @@ -1,59 +0,0 @@ -| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-S3 | ESP32-P4 | ESP32-H2 | -| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | -------- | - -# ESP-IDF BLE Compatibility Test Example - -This example is to test the Bluetooth compatibility and mobile phones. - -## How to Use Example - -This example has been modified to work with ESP-Hosted. The original ESP-IDF example is at [ https://github.com/espressif/esp-idf/tree/master/examples/bluetooth/bluedroid/ble/ble_compatibility_test ]. - -This example is able to run on the ESP32-P4 Dev Board, acting as the BT Host, connected to a ESP32 co-processor via the GPIO header, using SPI FD (full duplex) as Hosted HCI transport. The ESP32-P4 acts as the BT Controller. The following GPIO settings were used: - -| SPI Function | ESP32 GPIO | ESP32-P4 GPIO | -| :--- | ---: | ---: | -| MOSI | 13 | 4 | -| MISO | 12 | 5 | -| CLK | 14 | 26 | -| CS | 15 | 6 | -| Handshake | 26 | 20 | -| Data Ready | 4 | 36 | -| Reset | -1 | 2 | - -> [!NOTE] -> SPI Mode 2 was used on both the ESP32-P4 and ESP32. - -Users are free to choose which supported ESP-Hosted transport to use. See the [main ESP-Hosted README](https://github.com/espressif/esp-hosted-mcu/blob/main/README.md#6-decide-the-communication-bus-in-between-host-and-slave) for a list of supported transports. - -Before project configuration and build, be sure to set the correct chip target using: - -```bash -idf.py set-target -``` - -### Test Scenario - -* ESP32-P4-Function-EV-Board connected to a ESP32 via the GPIO header -* [Test case](ble_compatibility_test_case.md) -* Test APK: LightBlue V2.0.5 - -### Configure the project - -On the ESP32-P4 Dev Board, run `idf.py menuconfig`. - -* Check and enable Classic Bluetooth and Classic BT HID Device under `Component config --> Bluetooth --> Bluedroid Options` -* Ensure that `Component config --> Bluetooth --> Controller` is `Disabled`. -* Under `Component config --> ESP-Hosted config`: - * Configure ESP-Hosted to use `SPI Full-duplex` as the transport - * Set the Slave chipset used as `ESP32` - * Check and enable `Bluetooth Support` - * Configure the GPIOs used for SPI FD on both the ESP32-P4 and ESP32, following the table above - -### Build and Flash - -Run `idf.py -p PORT flash monitor` to build, flash and monitor the project. - -(To exit the serial monitor, type ``Ctrl-]``.) - -See the [Getting Started Guide](https://idf.espressif.com/) for full steps to configure and use ESP-IDF to build projects. diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/ble_compatibility_test_case.md b/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/ble_compatibility_test_case.md deleted file mode 100644 index ed264f1..0000000 --- a/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/ble_compatibility_test_case.md +++ /dev/null @@ -1,180 +0,0 @@ -# Test Case for BLE Smartphone Compatibility - -This document provides a test case for BLE smartphone compatibility and includes detailed procedures for various test items. - -## Preparation - -### What You Need - -* ESP device which needs to flash [this test program](main/ble_compatibility_test.c) -* Smartphone with LightBlue® Explorer app - -### Initialization - -Prior to conducting tests, please initialize the smartphone and the ESP device as follows: - -* Set the device name as `BLE_COMP_TEST`. -* Set the maximum transmission unit (MTU) of the device to 33 bytes, to test the assembly and division of data packets. -* If the smartphone has been paired with the ESP device before, please delete the pairing in the Bluetooth setting as follows: `Bluetooth` -> `My Devices` -> `Find this device with "i" in a circle on the right` -> `Forget this device`. Then restart the Bluetooth service. -* Before flashing the test program onto the ESP device, make sure to erase the contents of the flash by executing the command `make erase_flash flash` in the Terminal. -* When the ESP device restarts, the pairing information will be erased automatically. After that, make sure that the pairing information in the Bluetooth setting of the smartphone is deleted. - -**Note:** - -* For tests marked with (*) further in the document, please bear in mind the following: - * Your phone performance may affect the results of these tests. If such a test fails, it does not mean the phone fails to meet the test requirements, but that you need to arrange targeted tests. - * Taking "Test for Connection Success Rate" as an example: if the test cannot be passed for 10 consecutive times, you need to record how many times the test was passed and then arrange targeted tests. -* For extended testing, please use the [examples] (https://github.com/espressif/esp-idf/tree/master/examples/bluetooth) provided by Espressif. - -## Test for ADV Performance (*) - -### Search Device - -Refresh the scanning in LightBlue® Explorer to check if the device to be tested can be found quickly. Please repeat this action 10 times. - -### Test Results - -The test is passed, if you get the following results: - -* The device starts advertizing and outputs the log `(0) ***** advertising start successfully *****`. -* LightBlue® Explorer scans and successfully discovers ` BLE_COMP_TEST` each time. - -**Note:** - -* The device broadcasts on 3 channels, with an ADV interval of 40 ms. -* Check if the ADV packet can be received. -* Check if the Scan Response packet can be received. -* The device name is included in Scan Response packets only and cannot be found in ADV packets. - -## Test for Pairing Performance - -### Connect Device - -* Open the LightBlue® Explorer scan list and tap on the device name ` BLE_COMP_TEST` to establish connection. -* ESP device prints a passkey: `The passkey notify number: 123456`. -* A prompt on the smartphone appears asking if you want to pair. Tap on *Pair*, and then enter the passkey "123456". - -### Test Results - -The test is passed, if you get the following results: - -* If the connection is successful: - * Smartphone shows DATA beginning with `ADVERTISEMENT DATA` - * ESP device outputs the log: `ESP_GATTS_CONNECT_EVT` -* When the pairing is established, the device shows the following log in green: `(1) ***** pair status = success *****` - -## Test for Service Discovery Performance - -### Test Procedures - -In LightBlue® Explorer, check the contents of `GATT SERVICES & CHARACTERISTICS`. - -### Test Results - -The test is passed, if you get the following results: - -* Service that starts with ``000000ff`` appears at the bottom of your smartphone. -* This service contains 3 characteristics - * `Char_1_Short_WR` - * `Char_2_Long_WR` - * `Char_3_Short_Notify` - -## Test for Read and Encrypt - -### Test Procedures - -Read the value of `Char_1` in LightBlue, and tap on `READ AGAIN`. - -### Test Results - -* Encryption is successful, if your smartphone shows the value "11 22 33 44", and the ESP device prints the log: `(2) ***** read char_1 *****`. -* Encryption fails, if your smartphone shows a blank screen, and the ESP device outputs the error log in red: `GATT_INSUF_AUTHENTICATION: MITM Required`. - -## Test for Short Read and Write - -### Test Procedures - -* Navigate to the WRITE interface in LightBlue® Explorer, and write the value "88 99" to `Char_1`. -* Read `Char_1` and check if its value is consistent with the data you have written to it. - -### Test Results - -The test is passed, if you get the following results: - -* ESP device prints the log: `(3)***** short write success *****`. -* LightBlue® Explorer shows "88 99" below `READ AGAIN`. - -## Test for Long Read and Write - -### Test Procedures - -* Navigate to the WRITE interface in LightBlue® Explorer, and write the string `0x001122…FF001122…FF` of 256 bytes to `Char_2`. The data takes up 16 lines and looks as follows: - - ``` - 00112233445566778899AABBCCDDEEFF - 00112233445566778899AABBCCDDEEFF - … - 00112233445566778899AABBCCDDEEFF - 00112233445566778899AABBCCDDEEFF - ``` - -* Read `Char_2` and check if its value is consistent with the data you have written to it. - -### Test Results - -The test is passed, if you get the following results: - -* The device prints the log: ``ESP_GATTS_EXEC_WRITE_EVT, Length=256`` and ``(4) ***** long write success *****``. -* LightBlue® Explorer shows `(5) ***** read char_2 *****` below `READ AGAIN`. - -**Note:** - -The data to be written can be copied from a text file and pasted into LightBlue® Explorer. - -## Test for Short Notify - -### Test Procedures - -* Enter `Char_3` and tap on `SUBSCRIBE` to enable its Notify function. -* Your phone automatically receives Notify data from the device. - -### Test Results - -The test is passed, if you get the following results: - -* ESP device prints the log: `(6) ***** send notify AA BB *****`. -* "AA BB" appears on your smartphone. - -## Test for Connection Success Rate (*) - -### Test procedures - -* Break the connection -* Re-establish the connection -* Repeat 10 times - -### Test Results - -The test is passed, if you get the following results: - -* Your phone establishes the connection successfully, and the ESP device outputs the log: `(1) ***** pair status = success *****`. -* Your phone breaks the connection, and the device outputs the log: `ESP_GATTS_DISCONNECT_EVT`. -* Connection can be set up each time with no issues. - -## Test for Long Connection Stability - -The connection must be stable throughout the tests. - -**Note:** - -If the existing connection breaks: - -* LightBlue® Explorer prints `Disconnected`. -* ESP device outputs the log: ``ESP_GATTS_DISCONNECT_EVT, reason = (0) ***** advertising start successfully *****``. - -## Further Information - -* If you see any log entry in red, please record it for future reference or feedback it to our engineer. -* Tests to be added in the future: - * Multi-connection Test - * Automatic Re-connection Test diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/CMakeLists.txt b/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/CMakeLists.txt deleted file mode 100644 index 58468bd..0000000 --- a/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -idf_component_register(SRCS "ble_compatibility_test.c" - PRIV_REQUIRES bt nvs_flash esp_hosted - INCLUDE_DIRS ".") diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/ble_compatibility_test.c b/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/ble_compatibility_test.c deleted file mode 100644 index d3fbb58..0000000 --- a/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/ble_compatibility_test.c +++ /dev/null @@ -1,730 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Unlicense OR CC0-1.0 - */ - -/******************************************************************************** -* -* This file is for gatt server. It can send adv data, and get connected by client. -* -*********************************************************************************/ - -#include -#include "freertos/FreeRTOS.h" -#include "freertos/task.h" -#include "freertos/event_groups.h" -#include "esp_system.h" -#include "esp_log.h" -#include "nvs_flash.h" -// #include "esp_bt.h" - -#include "esp_gap_ble_api.h" -#include "esp_gatts_api.h" -#include "esp_bt_main.h" -#include "esp_bt_device.h" -#include "ble_compatibility_test.h" -#include "esp_gatt_common_api.h" - -#include "esp_hosted_bt.h" - -#define DEBUG_ON 0 - -#if DEBUG_ON -#define EXAMPLE_DEBUG ESP_LOGI -#else -#define EXAMPLE_DEBUG( tag, format, ... ) -#endif - -#define EXAMPLE_TAG "BLE_COMP" - -#define PROFILE_NUM 1 -#define PROFILE_APP_IDX 0 -#define ESP_APP_ID 0x55 -#define SAMPLE_DEVICE_NAME "BLE_COMP_TEST" -#define SVC_INST_ID 0 - -/* The max length of characteristic value. When the gatt client write or prepare write, -* the data length must be less than GATTS_EXAMPLE_CHAR_VAL_LEN_MAX. -*/ -#define GATTS_EXAMPLE_CHAR_VAL_LEN_MAX 500 -#define LONG_CHAR_VAL_LEN 500 -#define SHORT_CHAR_VAL_LEN 10 -#define GATTS_NOTIFY_FIRST_PACKET_LEN_MAX 20 - -#define PREPARE_BUF_MAX_SIZE 1024 -#define CHAR_DECLARATION_SIZE (sizeof(uint8_t)) - -#define ADV_CONFIG_FLAG (1 << 0) -#define SCAN_RSP_CONFIG_FLAG (1 << 1) - -static uint8_t adv_config_done = 0; - -uint16_t gatt_db_handle_table[HRS_IDX_NB]; - -typedef struct { - uint8_t *prepare_buf; - int prepare_len; -} prepare_type_env_t; - -static prepare_type_env_t prepare_write_env; - -//#define CONFIG_SET_RAW_ADV_DATA -#ifdef CONFIG_SET_RAW_ADV_DATA -static uint8_t raw_adv_data[] = { - /* Flags */ - 0x02, ESP_BLE_AD_TYPE_FLAG, 0x06, - /* TX Power */ - 0x02, ESP_BLE_AD_TYPE_TX_PWR, 0xeb, - /* Service UUID */ - 0x03, ESP_BLE_AD_TYPE_16SRV_CMPL, 0xFF, 0x00, - /* Device Name */ - 0x0E, ESP_BLE_AD_TYPE_NAME_CMPL, 'B', 'L', 'E', '_', 'C', 'O', 'M', 'P', '_', 'T', 'E', 'S', 'T' -}; - -static uint8_t raw_scan_rsp_data[] = { - /* Flags */ - 0x02, ESP_BLE_AD_TYPE_FLAG, 0x06, - /* TX Power */ - 0x02, ESP_BLE_AD_TYPE_TX_PWR, 0xeb, - /* Service UUID */ - 0x03, ESP_BLE_AD_TYPE_16SRV_CMPL, 0xFF, 0x00 -}; - -#else -static uint8_t service_uuid[16] = { - /* LSB <--------------------------------------------------------------------------------> MSB */ - //first uuid, 16bit, [12],[13] is the value - 0xfb, 0x34, 0x9b, 0x5f, 0x80, 0x00, 0x00, 0x80, 0x00, 0x10, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, -}; - -/* The length of adv data must be less than 31 bytes */ -static esp_ble_adv_data_t adv_data = { - .set_scan_rsp = false, - .include_name = true, - .include_txpower = true, - .min_interval = 0x20, - .max_interval = 0x40, - .appearance = 0x00, - .manufacturer_len = 0, //TEST_MANUFACTURER_DATA_LEN, - .p_manufacturer_data = NULL, //test_manufacturer, - .service_data_len = 0, - .p_service_data = NULL, - .service_uuid_len = sizeof(service_uuid), - .p_service_uuid = service_uuid, - .flag = (ESP_BLE_ADV_FLAG_GEN_DISC | ESP_BLE_ADV_FLAG_BREDR_NOT_SPT), -}; - -// scan response data -static esp_ble_adv_data_t scan_rsp_data = { - .set_scan_rsp = true, - .include_name = true, - .include_txpower = true, - .min_interval = 0x20, - .max_interval = 0x40, - .appearance = 0x00, - .manufacturer_len = 0, //TEST_MANUFACTURER_DATA_LEN, - .p_manufacturer_data = NULL, //&test_manufacturer[0], - .service_data_len = 0, - .p_service_data = NULL, - .service_uuid_len = 16, - .p_service_uuid = service_uuid, - .flag = (ESP_BLE_ADV_FLAG_GEN_DISC | ESP_BLE_ADV_FLAG_BREDR_NOT_SPT), -}; -#endif /* CONFIG_SET_RAW_ADV_DATA */ - -static esp_ble_adv_params_t adv_params = { - .adv_int_min = 0x40, - .adv_int_max = 0x40, - .adv_type = ADV_TYPE_IND, - .own_addr_type = BLE_ADDR_TYPE_PUBLIC, - .channel_map = ADV_CHNL_ALL, - .adv_filter_policy = ADV_FILTER_ALLOW_SCAN_ANY_CON_ANY, -}; - -struct gatts_profile_inst { - esp_gatts_cb_t gatts_cb; - uint16_t gatts_if; - uint16_t app_id; - uint16_t conn_id; - uint16_t service_handle; - esp_gatt_srvc_id_t service_id; - uint16_t char_handle; - esp_bt_uuid_t char_uuid; - esp_gatt_perm_t perm; - esp_gatt_char_prop_t property; - uint16_t descr_handle; - esp_bt_uuid_t descr_uuid; -}; - -static void gatts_profile_event_handler(esp_gatts_cb_event_t event, - esp_gatt_if_t gatts_if, esp_ble_gatts_cb_param_t *param); - -/* One gatt-based profile one app_id and one gatts_if, this array will store the gatts_if returned by ESP_GATTS_REG_EVT */ -static struct gatts_profile_inst heart_rate_profile_tab[PROFILE_NUM] = { - [PROFILE_APP_IDX] = { - .gatts_cb = gatts_profile_event_handler, - .gatts_if = ESP_GATT_IF_NONE, /* Not get the gatt_if, so initial is ESP_GATT_IF_NONE */ - }, -}; - -/* Service */ -static const uint16_t GATTS_SERVICE_UUID_TEST = 0x00FF; -static const uint16_t CHAR_1_SHORT_WR = 0xFF01; -static const uint16_t CHAR_2_LONG_WR = 0xFF02; -static const uint16_t CHAR_3_SHORT_NOTIFY = 0xFF03; - -static const uint16_t primary_service_uuid = ESP_GATT_UUID_PRI_SERVICE; -static const uint16_t character_declaration_uuid = ESP_GATT_UUID_CHAR_DECLARE; -static const uint16_t character_client_config_uuid = ESP_GATT_UUID_CHAR_CLIENT_CONFIG; -static const uint16_t character_user_description = ESP_GATT_UUID_CHAR_DESCRIPTION; -static const uint8_t char_prop_notify = ESP_GATT_CHAR_PROP_BIT_NOTIFY; -static const uint8_t char_prop_read_write = ESP_GATT_CHAR_PROP_BIT_WRITE | ESP_GATT_CHAR_PROP_BIT_READ; -static const uint8_t char1_name[] = "Char_1_Short_WR"; -static const uint8_t char2_name[] = "Char_2_Long_WR"; -static const uint8_t char3_name[] = "Char_3_Short_Notify"; -static const uint8_t char_ccc[2] = {0x00, 0x00}; -static const uint8_t char_value[4] = {0x11, 0x22, 0x33, 0x44}; - - -/* Full Database Description - Used to add attributes into the database */ -static const esp_gatts_attr_db_t gatt_db[HRS_IDX_NB] = -{ - // Service Declaration - [IDX_SVC] = - {{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&primary_service_uuid, ESP_GATT_PERM_READ, - sizeof(uint16_t), sizeof(GATTS_SERVICE_UUID_TEST), (uint8_t *)&GATTS_SERVICE_UUID_TEST}}, - - /* Characteristic Declaration */ - [IDX_CHAR_A] = - {{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&character_declaration_uuid, ESP_GATT_PERM_READ, - CHAR_DECLARATION_SIZE, CHAR_DECLARATION_SIZE, (uint8_t *)&char_prop_read_write}}, - - /* Characteristic Value */ - [IDX_CHAR_VAL_A] = - {{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&CHAR_1_SHORT_WR, ESP_GATT_PERM_READ | ESP_GATT_PERM_WRITE | ESP_GATT_PERM_READ_ENC_MITM, - SHORT_CHAR_VAL_LEN, sizeof(char_value), (uint8_t *)char_value}}, - - /* Characteristic User Descriptor */ - [IDX_CHAR_CFG_A] = - {{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&character_user_description, ESP_GATT_PERM_READ, - sizeof(char1_name), sizeof(char1_name), (uint8_t *)char1_name}}, - - /* Characteristic Declaration */ - [IDX_CHAR_B] = - {{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&character_declaration_uuid, ESP_GATT_PERM_READ, - CHAR_DECLARATION_SIZE, CHAR_DECLARATION_SIZE, (uint8_t *)&char_prop_read_write}}, - - /* Characteristic Value */ - [IDX_CHAR_VAL_B] = - {{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&CHAR_2_LONG_WR, ESP_GATT_PERM_READ | ESP_GATT_PERM_WRITE, - LONG_CHAR_VAL_LEN, sizeof(char_value), (uint8_t *)char_value}}, - - /* Characteristic User Descriptor */ - [IDX_CHAR_CFG_B] = - {{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&character_user_description, ESP_GATT_PERM_READ, - sizeof(char2_name), sizeof(char2_name), (uint8_t *)char2_name}}, - - /* Characteristic Declaration */ - [IDX_CHAR_C] = - {{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&character_declaration_uuid, ESP_GATT_PERM_READ, - CHAR_DECLARATION_SIZE, CHAR_DECLARATION_SIZE, (uint8_t *)&char_prop_notify}}, - - /* Characteristic Value */ - [IDX_CHAR_VAL_C] = - {{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&CHAR_3_SHORT_NOTIFY, 0, - LONG_CHAR_VAL_LEN, sizeof(char_value), (uint8_t *)char_value}}, - - /* Characteristic User Descriptor */ - [IDX_CHAR_CFG_C] = - {{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&character_user_description, ESP_GATT_PERM_READ, - sizeof(char3_name), sizeof(char3_name), (uint8_t *)char3_name}}, - - /* Characteristic Client Configuration Descriptor */ - [IDX_CHAR_CFG_C_2] = - {{ESP_GATT_AUTO_RSP}, {ESP_UUID_LEN_16, (uint8_t *)&character_client_config_uuid, ESP_GATT_PERM_READ | ESP_GATT_PERM_WRITE, - sizeof(uint16_t), sizeof(char_ccc), (uint8_t *)char_ccc}}, - -}; - -static void show_bonded_devices(void) -{ - int dev_num = esp_ble_get_bond_device_num(); - if (dev_num == 0) { - ESP_LOGI(EXAMPLE_TAG, "Bonded devices number zero\n"); - return; - } - - esp_ble_bond_dev_t *dev_list = (esp_ble_bond_dev_t *)malloc(sizeof(esp_ble_bond_dev_t) * dev_num); - if (!dev_list) { - ESP_LOGE(EXAMPLE_TAG, "malloc failed, return\n"); - return; - } - esp_ble_get_bond_device_list(&dev_num, dev_list); - EXAMPLE_DEBUG(EXAMPLE_TAG, "Bonded devices number : %d\n", dev_num); - - EXAMPLE_DEBUG(EXAMPLE_TAG, "Bonded devices list : %d\n", dev_num); - for (int i = 0; i < dev_num; i++) { - #if DEBUG_ON - ESP_LOG_BUFFER_HEX(EXAMPLE_TAG, (void *)dev_list[i].bd_addr, sizeof(esp_bd_addr_t)); - #endif - } - - free(dev_list); -} - -static void __attribute__((unused)) remove_all_bonded_devices(void) -{ - int dev_num = esp_ble_get_bond_device_num(); - if (dev_num == 0) { - ESP_LOGI(EXAMPLE_TAG, "Bonded devices number zero\n"); - return; - } - - esp_ble_bond_dev_t *dev_list = (esp_ble_bond_dev_t *)malloc(sizeof(esp_ble_bond_dev_t) * dev_num); - if (!dev_list) { - ESP_LOGE(EXAMPLE_TAG, "malloc failed, return\n"); - return; - } - esp_ble_get_bond_device_list(&dev_num, dev_list); - for (int i = 0; i < dev_num; i++) { - esp_ble_remove_bond_device(dev_list[i].bd_addr); - } - - free(dev_list); -} - -static void gap_event_handler(esp_gap_ble_cb_event_t event, esp_ble_gap_cb_param_t *param) -{ - switch (event) { - #ifdef CONFIG_SET_RAW_ADV_DATA - case ESP_GAP_BLE_ADV_DATA_RAW_SET_COMPLETE_EVT: - adv_config_done &= (~ADV_CONFIG_FLAG); - if (adv_config_done == 0){ - esp_ble_gap_start_advertising(&adv_params); - } - break; - case ESP_GAP_BLE_SCAN_RSP_DATA_RAW_SET_COMPLETE_EVT: - adv_config_done &= (~SCAN_RSP_CONFIG_FLAG); - if (adv_config_done == 0){ - esp_ble_gap_start_advertising(&adv_params); - } - break; - #else - case ESP_GAP_BLE_ADV_DATA_SET_COMPLETE_EVT: - adv_config_done &= (~ADV_CONFIG_FLAG); - if (adv_config_done == 0){ - esp_ble_gap_start_advertising(&adv_params); - } - break; - case ESP_GAP_BLE_SCAN_RSP_DATA_SET_COMPLETE_EVT: - adv_config_done &= (~SCAN_RSP_CONFIG_FLAG); - if (adv_config_done == 0){ - esp_ble_gap_start_advertising(&adv_params); - } - break; - #endif - case ESP_GAP_BLE_ADV_START_COMPLETE_EVT: - /* advertising start complete event to indicate advertising start successfully or failed */ - if (param->adv_start_cmpl.status != ESP_BT_STATUS_SUCCESS) { - ESP_LOGE(EXAMPLE_TAG, "advertising start failed"); - }else{ - ESP_LOGI(EXAMPLE_TAG, "(0) ***** advertising start successfully ***** "); - } - break; - case ESP_GAP_BLE_ADV_STOP_COMPLETE_EVT: - if (param->adv_stop_cmpl.status != ESP_BT_STATUS_SUCCESS) { - ESP_LOGE(EXAMPLE_TAG, "Advertising stop failed"); - } - else { - ESP_LOGI(EXAMPLE_TAG, "Stop adv successfully"); - } - break; - case ESP_GAP_BLE_UPDATE_CONN_PARAMS_EVT: - EXAMPLE_DEBUG(EXAMPLE_TAG, "update connection params status = %d, conn_int = %d, latency = %d, timeout = %d", - param->update_conn_params.status, - param->update_conn_params.conn_int, - param->update_conn_params.latency, - param->update_conn_params.timeout); - break; - case ESP_GAP_BLE_PASSKEY_REQ_EVT: /* passkey request event */ - EXAMPLE_DEBUG(EXAMPLE_TAG, "ESP_GAP_BLE_PASSKEY_REQ_EVT"); - //esp_ble_passkey_reply(heart_rate_profile_tab[HEART_PROFILE_APP_IDX].remote_bda, true, 0x00); - break; - - case ESP_GAP_BLE_NC_REQ_EVT: - /* The app will receive this event when the IO has DisplayYesNO capability and the peer device IO also has DisplayYesNo capability. - show the passkey number to the user to confirm it with the number displayed by peer device. */ - ESP_LOGI(EXAMPLE_TAG, "ESP_GAP_BLE_NC_REQ_EVT, the passkey Notify number:%" PRIu32, param->ble_security.key_notif.passkey); - break; - case ESP_GAP_BLE_SEC_REQ_EVT: - /* send the positive(true) security response to the peer device to accept the security request. - If not accept the security request, should send the security response with negative(false) accept value*/ - esp_ble_gap_security_rsp(param->ble_security.ble_req.bd_addr, true); - break; - case ESP_GAP_BLE_PASSKEY_NOTIF_EVT: ///the app will receive this evt when the IO has Output capability and the peer device IO has Input capability. - ///show the passkey number to the user to input it in the peer device. - ESP_LOGI(EXAMPLE_TAG, "The passkey notify number:%06" PRIu32, param->ble_security.key_notif.passkey); - break; - case ESP_GAP_BLE_KEY_EVT: - //shows the ble key info share with peer device to the user. - EXAMPLE_DEBUG(EXAMPLE_TAG, "key type = %s", esp_key_type_to_str(param->ble_security.ble_key.key_type)); - break; - case ESP_GAP_BLE_AUTH_CMPL_EVT: { - esp_bd_addr_t bd_addr; - memcpy(bd_addr, param->ble_security.auth_cmpl.bd_addr, sizeof(esp_bd_addr_t)); - EXAMPLE_DEBUG(EXAMPLE_TAG, "remote BD_ADDR: %08x%04x",\ - (bd_addr[0] << 24) + (bd_addr[1] << 16) + (bd_addr[2] << 8) + bd_addr[3], - (bd_addr[4] << 8) + bd_addr[5]); - EXAMPLE_DEBUG(EXAMPLE_TAG, "address type = %d", param->ble_security.auth_cmpl.addr_type); - if (param->ble_security.auth_cmpl.success){ - ESP_LOGI(EXAMPLE_TAG, "(1) ***** pair status = success ***** "); - } - else { - ESP_LOGI(EXAMPLE_TAG, "***** pair status = fail, reason = 0x%x *****", param->ble_security.auth_cmpl.fail_reason); - } - show_bonded_devices(); - break; - } - case ESP_GAP_BLE_REMOVE_BOND_DEV_COMPLETE_EVT: { - EXAMPLE_DEBUG(EXAMPLE_TAG, "ESP_GAP_BLE_REMOVE_BOND_DEV_COMPLETE_EVT status = %d", param->remove_bond_dev_cmpl.status); - #if DEBUG_ON - ESP_LOG_BUFFER_HEX(EXAMPLE_TAG, (void *)param->remove_bond_dev_cmpl.bd_addr, sizeof(esp_bd_addr_t)); - #endif - EXAMPLE_DEBUG(EXAMPLE_TAG, "------------------------------------"); - break; - } - default: - break; - } -} - -void example_prepare_write_event_env(esp_gatt_if_t gatts_if, prepare_type_env_t *prepare_write_env, esp_ble_gatts_cb_param_t *param) -{ - EXAMPLE_DEBUG(EXAMPLE_TAG, "prepare write, handle = %d, value len = %d", param->write.handle, param->write.len); - esp_gatt_status_t status = ESP_GATT_OK; - if (param->write.offset > PREPARE_BUF_MAX_SIZE) { - status = ESP_GATT_INVALID_OFFSET; - } else if ((param->write.offset + param->write.len) > PREPARE_BUF_MAX_SIZE) { - status = ESP_GATT_INVALID_ATTR_LEN; - } - - if (status == ESP_GATT_OK && prepare_write_env->prepare_buf == NULL) { - prepare_write_env->prepare_buf = (uint8_t *)malloc(PREPARE_BUF_MAX_SIZE * sizeof(uint8_t)); - prepare_write_env->prepare_len = 0; - if (prepare_write_env->prepare_buf == NULL) { - ESP_LOGE(EXAMPLE_TAG, "%s, Gatt_server prep no mem", __func__); - status = ESP_GATT_NO_RESOURCES; - } - } - - /*send response when param->write.need_rsp is true */ - if (param->write.need_rsp){ - esp_gatt_rsp_t *gatt_rsp = (esp_gatt_rsp_t *)malloc(sizeof(esp_gatt_rsp_t)); - if (gatt_rsp != NULL){ - gatt_rsp->attr_value.len = param->write.len; - gatt_rsp->attr_value.handle = param->write.handle; - gatt_rsp->attr_value.offset = param->write.offset; - gatt_rsp->attr_value.auth_req = ESP_GATT_AUTH_REQ_NONE; - memcpy(gatt_rsp->attr_value.value, param->write.value, param->write.len); - esp_err_t response_err = esp_ble_gatts_send_response(gatts_if, param->write.conn_id, param->write.trans_id, status, gatt_rsp); - if (response_err != ESP_OK){ - ESP_LOGE(EXAMPLE_TAG, "Send response error"); - } - free(gatt_rsp); - }else{ - ESP_LOGE(EXAMPLE_TAG, "%s, malloc failed, and no resource to send response", __func__); - status = ESP_GATT_NO_RESOURCES; - } - } - if (status != ESP_GATT_OK){ - return; - } - memcpy(prepare_write_env->prepare_buf + param->write.offset, - param->write.value, - param->write.len); - prepare_write_env->prepare_len += param->write.len; - -} -uint8_t long_write[16] = {0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF}; -void example_exec_write_event_env(prepare_type_env_t *prepare_write_env, esp_ble_gatts_cb_param_t *param){ - if (param->exec_write.exec_write_flag == ESP_GATT_PREP_WRITE_EXEC && prepare_write_env->prepare_buf){ - if(prepare_write_env->prepare_len == 256) { - bool long_write_success = true; - for(uint16_t i = 0; i < prepare_write_env->prepare_len; i ++) { - if(prepare_write_env->prepare_buf[i] != long_write[i%16]) { - long_write_success = false; - break; - } - } - if(long_write_success) { - ESP_LOGI(EXAMPLE_TAG, "(4) ***** long write success ***** "); - } - } - }else{ - ESP_LOGI(EXAMPLE_TAG,"ESP_GATT_PREP_WRITE_CANCEL"); - } - if (prepare_write_env->prepare_buf) { - free(prepare_write_env->prepare_buf); - prepare_write_env->prepare_buf = NULL; - } - prepare_write_env->prepare_len = 0; -} - -static void gatts_profile_event_handler(esp_gatts_cb_event_t event, esp_gatt_if_t gatts_if, esp_ble_gatts_cb_param_t *param) -{ - switch (event) { - case ESP_GATTS_REG_EVT:{ - esp_err_t set_dev_name_ret = esp_ble_gap_set_device_name(SAMPLE_DEVICE_NAME); - if (set_dev_name_ret){ - ESP_LOGE(EXAMPLE_TAG, "set device name failed, error code = %x", set_dev_name_ret); - } - #ifdef CONFIG_SET_RAW_ADV_DATA - esp_err_t raw_adv_ret = esp_ble_gap_config_adv_data_raw(raw_adv_data, sizeof(raw_adv_data)); - if (raw_adv_ret){ - ESP_LOGE(EXAMPLE_TAG, "config raw adv data failed, error code = %x ", raw_adv_ret); - } - adv_config_done |= ADV_CONFIG_FLAG; - esp_err_t raw_scan_ret = esp_ble_gap_config_scan_rsp_data_raw(raw_scan_rsp_data, sizeof(raw_scan_rsp_data)); - if (raw_scan_ret){ - ESP_LOGE(EXAMPLE_TAG, "config raw scan rsp data failed, error code = %x", raw_scan_ret); - } - adv_config_done |= SCAN_RSP_CONFIG_FLAG; - #else - //config adv data - esp_err_t ret = esp_ble_gap_config_adv_data(&adv_data); - if (ret){ - ESP_LOGE(EXAMPLE_TAG, "config adv data failed, error code = %x", ret); - } - adv_config_done |= ADV_CONFIG_FLAG; - //config scan response data - ret = esp_ble_gap_config_adv_data(&scan_rsp_data); - if (ret){ - ESP_LOGE(EXAMPLE_TAG, "config scan response data failed, error code = %x", ret); - } - adv_config_done |= SCAN_RSP_CONFIG_FLAG; - #endif - esp_err_t create_attr_ret = esp_ble_gatts_create_attr_tab(gatt_db, gatts_if, HRS_IDX_NB, SVC_INST_ID); - if (create_attr_ret){ - ESP_LOGE(EXAMPLE_TAG, "create attr table failed, error code = %x", create_attr_ret); - } - } - break; - case ESP_GATTS_READ_EVT: - //ESP_LOGE(EXAMPLE_TAG, "ESP_GATTS_READ_EVT, handle=0x%d, offset=%d", param->read.handle, param->read.offset); - if(gatt_db_handle_table[IDX_CHAR_VAL_A] == param->read.handle) { - ESP_LOGE(EXAMPLE_TAG, "(2) ***** read char1 ***** "); - } - if(gatt_db_handle_table[IDX_CHAR_VAL_B] == param->read.handle) { - ESP_LOGE(EXAMPLE_TAG, "(5) ***** read char2 ***** "); - } - break; - case ESP_GATTS_WRITE_EVT: - if (!param->write.is_prep){ - // the data length of gattc write must be less than GATTS_EXAMPLE_CHAR_VAL_LEN_MAX. - if (gatt_db_handle_table[IDX_CHAR_CFG_C_2] == param->write.handle && param->write.len == 2){ - uint16_t descr_value = param->write.value[1]<<8 | param->write.value[0]; - uint8_t notify_data[2]; - notify_data[0] = 0xAA; - notify_data[1] = 0xBB; - - if (descr_value == 0x0001){ - //the size of notify_data[] need less than MTU size - esp_ble_gatts_send_indicate(gatts_if, param->write.conn_id, gatt_db_handle_table[IDX_CHAR_VAL_C], - sizeof(notify_data), notify_data, false); - ESP_LOGI(EXAMPLE_TAG, "(6) ***** send notify AA BB ***** "); - }else if (descr_value == 0x0002){ - //the size of indicate_data[] need less than MTU size - esp_ble_gatts_send_indicate(gatts_if, param->write.conn_id, gatt_db_handle_table[IDX_CHAR_VAL_C], - sizeof(notify_data), notify_data, true); - } - else if (descr_value == 0x0000){ - ESP_LOGI(EXAMPLE_TAG, "notify/indicate disable "); - }else{ - ESP_LOGE(EXAMPLE_TAG, "unknown descr value"); - ESP_LOG_BUFFER_HEX(EXAMPLE_TAG, param->write.value, param->write.len); - } - - } - if(gatt_db_handle_table[IDX_CHAR_VAL_A] == param->write.handle && param->write.len == 2) { - uint8_t write_data[2] = {0x88, 0x99}; - if(memcmp(write_data, param->write.value, param->write.len) == 0) { - ESP_LOGI(EXAMPLE_TAG, "(3)***** short write success ***** "); - } - } - - /* send response when param->write.need_rsp is true*/ - if (param->write.need_rsp){ - esp_ble_gatts_send_response(gatts_if, param->write.conn_id, param->write.trans_id, ESP_GATT_OK, NULL); - } - }else{ - /* handle prepare write */ - example_prepare_write_event_env(gatts_if, &prepare_write_env, param); - } - break; - case ESP_GATTS_EXEC_WRITE_EVT: - // the length of gattc prepare write data must be less than GATTS_EXAMPLE_CHAR_VAL_LEN_MAX. - ESP_LOGI(EXAMPLE_TAG, "ESP_GATTS_EXEC_WRITE_EVT, Length=%d", prepare_write_env.prepare_len); - example_exec_write_event_env(&prepare_write_env, param); - break; - case ESP_GATTS_MTU_EVT: - EXAMPLE_DEBUG(EXAMPLE_TAG, "ESP_GATTS_MTU_EVT, MTU %d", param->mtu.mtu); - break; - case ESP_GATTS_CONF_EVT: - EXAMPLE_DEBUG(EXAMPLE_TAG, "ESP_GATTS_CONF_EVT, status = %d", param->conf.status); - break; - case ESP_GATTS_START_EVT: - EXAMPLE_DEBUG(EXAMPLE_TAG, "SERVICE_START_EVT, status %d, service_handle %d", param->start.status, param->start.service_handle); - break; - case ESP_GATTS_CONNECT_EVT: - ESP_LOGI(EXAMPLE_TAG, "ESP_GATTS_CONNECT_EVT, conn_id = %d", param->connect.conn_id); - /* start security connect with peer device when receive the connect event sent by the master */ - esp_ble_set_encryption(param->connect.remote_bda, ESP_BLE_SEC_ENCRYPT_MITM); - break; - case ESP_GATTS_DISCONNECT_EVT: - ESP_LOGI(EXAMPLE_TAG, "ESP_GATTS_DISCONNECT_EVT, reason = %d", param->disconnect.reason); - esp_ble_gap_start_advertising(&adv_params); - break; - case ESP_GATTS_CREAT_ATTR_TAB_EVT:{ - if (param->add_attr_tab.status != ESP_GATT_OK){ - ESP_LOGE(EXAMPLE_TAG, "create attribute table failed, error code=0x%x", param->add_attr_tab.status); - } - else if (param->add_attr_tab.num_handle != HRS_IDX_NB){ - ESP_LOGE(EXAMPLE_TAG, "create attribute table abnormally, num_handle (%d) \ - doesn't equal to HRS_IDX_NB(%d)", param->add_attr_tab.num_handle, HRS_IDX_NB); - } - else { - ESP_LOGI(EXAMPLE_TAG, "create attribute table successfully, the number handle = %d",param->add_attr_tab.num_handle); - memcpy(gatt_db_handle_table, param->add_attr_tab.handles, sizeof(gatt_db_handle_table)); - esp_ble_gatts_start_service(gatt_db_handle_table[IDX_SVC]); - } - break; - } - default: - break; - } -} - - -static void gatts_event_handler(esp_gatts_cb_event_t event, esp_gatt_if_t gatts_if, esp_ble_gatts_cb_param_t *param) -{ - - /* If event is register event, store the gatts_if for each profile */ - if (event == ESP_GATTS_REG_EVT) { - if (param->reg.status == ESP_GATT_OK) { - heart_rate_profile_tab[PROFILE_APP_IDX].gatts_if = gatts_if; - } else { - ESP_LOGE(EXAMPLE_TAG, "reg app failed, app_id %04x, status %d", - param->reg.app_id, - param->reg.status); - return; - } - } - do { - int idx; - for (idx = 0; idx < PROFILE_NUM; idx++) { - /* ESP_GATT_IF_NONE, not specify a certain gatt_if, need to call every profile cb function */ - if (gatts_if == ESP_GATT_IF_NONE || gatts_if == heart_rate_profile_tab[idx].gatts_if) { - if (heart_rate_profile_tab[idx].gatts_cb) { - heart_rate_profile_tab[idx].gatts_cb(event, gatts_if, param); - } - } - } - } while (0); -} - -void app_main(void) -{ - esp_err_t ret; - - /* Initialize NVS. */ - ret = nvs_flash_init(); - if (ret == ESP_ERR_NVS_NO_FREE_PAGES) { - ESP_ERROR_CHECK(nvs_flash_erase()); - ret = nvs_flash_init(); - } - ESP_ERROR_CHECK( ret ); - - /* initialize TRANSPORT first */ - hosted_hci_bluedroid_open(); - - /* get HCI driver operations */ - esp_bluedroid_hci_driver_operations_t operations = { - .send = hosted_hci_bluedroid_send, - .check_send_available = hosted_hci_bluedroid_check_send_available, - .register_host_callback = hosted_hci_bluedroid_register_host_callback, - }; - esp_bluedroid_attach_hci_driver(&operations); - - -#if 0 - ESP_ERROR_CHECK(esp_bt_controller_mem_release(ESP_BT_MODE_CLASSIC_BT)); - - esp_bt_controller_config_t bt_cfg = BT_CONTROLLER_INIT_CONFIG_DEFAULT(); - ret = esp_bt_controller_init(&bt_cfg); - if (ret) { - ESP_LOGE(EXAMPLE_TAG, "%s enable controller failed: %s", __func__, esp_err_to_name(ret)); - return; - } - - ret = esp_bt_controller_enable(ESP_BT_MODE_BLE); - if (ret) { - ESP_LOGE(EXAMPLE_TAG, "%s enable controller failed: %s", __func__, esp_err_to_name(ret)); - return; - } -#endif - - ret = esp_bluedroid_init(); - if (ret) { - ESP_LOGE(EXAMPLE_TAG, "%s init bluetooth failed: %s", __func__, esp_err_to_name(ret)); - return; - } - - ret = esp_bluedroid_enable(); - if (ret) { - ESP_LOGE(EXAMPLE_TAG, "%s enable bluetooth failed: %s", __func__, esp_err_to_name(ret)); - return; - } - - ret = esp_ble_gatts_register_callback(gatts_event_handler); - if (ret){ - ESP_LOGE(EXAMPLE_TAG, "gatts register error, error code = %x", ret); - return; - } - - ret = esp_ble_gap_register_callback(gap_event_handler); - if (ret){ - ESP_LOGE(EXAMPLE_TAG, "gap register error, error code = %x", ret); - return; - } - - ret = esp_ble_gatts_app_register(ESP_APP_ID); - if (ret){ - ESP_LOGE(EXAMPLE_TAG, "gatts app register error, error code = %x", ret); - return; - } - - esp_err_t local_mtu_ret = esp_ble_gatt_set_local_mtu(33); - if (local_mtu_ret){ - ESP_LOGE(EXAMPLE_TAG, "set local MTU failed, error code = %x", local_mtu_ret); - } - - /* set the security iocap & auth_req & key size & init key response key parameters to the stack*/ - esp_ble_auth_req_t auth_req = ESP_LE_AUTH_REQ_SC_MITM_BOND; //bonding with peer device after authentication - esp_ble_io_cap_t iocap = ESP_IO_CAP_OUT; //set the IO capability to No output No input - uint8_t key_size = 16; //the key size should be 7~16 bytes - uint8_t init_key = ESP_BLE_ENC_KEY_MASK | ESP_BLE_ID_KEY_MASK; - uint8_t rsp_key = ESP_BLE_ENC_KEY_MASK | ESP_BLE_ID_KEY_MASK; - uint32_t passkey = 123456; - esp_ble_gap_set_security_param(ESP_BLE_SM_SET_STATIC_PASSKEY, &passkey, sizeof(uint32_t)); - esp_ble_gap_set_security_param(ESP_BLE_SM_AUTHEN_REQ_MODE, &auth_req, sizeof(uint8_t)); - esp_ble_gap_set_security_param(ESP_BLE_SM_IOCAP_MODE, &iocap, sizeof(uint8_t)); - esp_ble_gap_set_security_param(ESP_BLE_SM_MAX_KEY_SIZE, &key_size, sizeof(uint8_t)); - /* If your BLE device act as a Slave, the init_key means you hope which types of key of the master should distribute to you, - and the response key means which key you can distribute to the Master; - If your BLE device act as a master, the response key means you hope which types of key of the slave should distribute to you, - and the init key means which key you can distribute to the slave. */ - esp_ble_gap_set_security_param(ESP_BLE_SM_SET_INIT_KEY, &init_key, sizeof(uint8_t)); - esp_ble_gap_set_security_param(ESP_BLE_SM_SET_RSP_KEY, &rsp_key, sizeof(uint8_t)); - -} diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/ble_compatibility_test.h b/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/ble_compatibility_test.h deleted file mode 100644 index d88eecf..0000000 --- a/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/ble_compatibility_test.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Unlicense OR CC0-1.0 - */ - - -#include -#include -#include - - -/* Attributes State Machine */ -enum -{ - IDX_SVC, - IDX_CHAR_A, - IDX_CHAR_VAL_A, - IDX_CHAR_CFG_A, - - IDX_CHAR_B, - IDX_CHAR_VAL_B, - IDX_CHAR_CFG_B, - - IDX_CHAR_C, - IDX_CHAR_VAL_C, - IDX_CHAR_CFG_C, - IDX_CHAR_CFG_C_2, - - HRS_IDX_NB, -}; diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/idf_component.yml b/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/idf_component.yml deleted file mode 100644 index 87c2a6f..0000000 --- a/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/main/idf_component.yml +++ /dev/null @@ -1,9 +0,0 @@ -dependencies: - espressif/esp_hosted: - rules: - - if: target in [esp32p4, esp32h2] - version: ~2 - espressif/esp_wifi_remote: - rules: - - if: target in [esp32p4, esp32h2] - version: '>=0.10' diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/sdkconfig.defaults b/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/sdkconfig.defaults deleted file mode 100644 index 30fef8e..0000000 --- a/resources/espressif__esp_hosted/examples/host_bluedroid_ble_compatibility_test/sdkconfig.defaults +++ /dev/null @@ -1,23 +0,0 @@ -# -# BT config -# - ESP32 co-processor only supports BLE 4.2 -# -CONFIG_BT_ENABLED=y -CONFIG_BT_CONTROLLER_DISABLED=y -CONFIG_BT_BLUEDROID_ENABLED=y -CONFIG_BT_BLE_50_FEATURES_SUPPORTED=n -CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y -# CONFIG_BT_LE_50_FEATURE_SUPPORT is not used on ESP32, ESP32-C3 and ESP32-S3. -CONFIG_BT_LE_50_FEATURE_SUPPORT=n - -# -# Wi-Fi Remote -# -CONFIG_ESP_WIFI_REMOTE_LIBRARY_HOSTED=y - -# -# Enable ESP Hosted BT -# Used as VHCI transport between BT Host and Controller -# -CONFIG_ESP_HOSTED_ENABLE_BT_BLUEDROID=y -CONFIG_ESP_HOSTED_BLUEDROID_HCI_VHCI=y diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/CMakeLists.txt b/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/CMakeLists.txt deleted file mode 100644 index 22f7b2e..0000000 --- a/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ - -# The following lines of boilerplate have to be in your project's -# CMakeLists in this exact order for cmake to work correctly -cmake_minimum_required(VERSION 3.16) - -include($ENV{IDF_PATH}/tools/cmake/project.cmake) -# "Trim" the build. Include the minimal set of components, main, and anything it depends on. -idf_build_set_property(MINIMAL_BUILD ON) -project(bt_hid_mouse_device) diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/README.md b/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/README.md deleted file mode 100644 index b6fe73e..0000000 --- a/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/README.md +++ /dev/null @@ -1,298 +0,0 @@ -| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-S3 | ESP32-P4 | ESP32-H2 | -| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | -------- | - -# Bluetooth HID Device example - -This example aims to show how to implement a Bluetooth HID device using the APIs provided by Classic Bluetooth HID profile. - -This example simulates a Bluetooth HID mouse device that periodically sends report to remote Bluetooth HID host after connection. The report indicates a horizontally moving pointer and can be observed on the display on the HID host side. If you want to build an HID device, this can be your first example to look at. - -## How to use example - -This example has been modified to work with ESP-Hosted. The original ESP-IDF example is at [ https://github.com/espressif/esp-idf/tree/master/examples/bluetooth/bluedroid/classic_bt/bt_hid_mouse_device/ ]. - -### Hardware Required - -* This example is able to run on the ESP32-P4 Dev Board, acting as the BT Host, connected to a ESP32 co-processor via the GPIO header, using SPI FD (full duplex) as Hosted HCI transport. The ESP32 acts as the BT Controller. The following GPIO settings were used: - -| SPI Function | ESP32 GPIO | ESP32-P4 GPIO | -| :--- | ---: | ---: | -| MOSI | 13 | 4 | -| MISO | 12 | 5 | -| CLK | 14 | 26 | -| CS | 15 | 6 | -| Handshake | 26 | 20 | -| Data Ready | 4 | 36 | -| Reset | -1 | 2 | - -> [!NOTE] -> SPI Mode 2 was used on both the ESP32-P4 and ESP32. - -Users are free to choose which supported ESP-Hosted transport to use. See the [main ESP-Hosted README](https://github.com/espressif/esp-hosted-mcu/blob/main/README.md#6-decide-the-communication-bus-in-between-host-and-slave) for a list of supported transports. - -* This example is supposed to connect to a Classic Bluetooth HID Host device, e.g. laptop or tablet. - -### Configure the project - -On the ESP32-P4 Dev Board, run `idf.py menuconfig`. - -* Check and enable Classic Bluetooth and Classic BT HID Device under `Component config --> Bluetooth --> Bluedroid Options` -* Ensure that `Component config --> Bluetooth --> Controller` is `Disabled`. -* Under `Component config --> ESP-Hosted config`: - * Configure ESP-Hosted to use `SPI Full-duplex` as the transport - * Set the Slave chipset used as `ESP32` - * Check and enable `Bluetooth Support` - * Configure the GPIOs used for SPI FD on both the ESP32-P4 and ESP32, following the table above - -### Build and Flash - -Build the project and flash it to the board, then run monitor tool to view serial output: - -``` -idf.py -p PORT flash monitor -``` - -(Replace PORT with the name of the serial port to use.) - -(To exit the serial monitor, type ``Ctrl-]``.) - -See the Getting Started Guide for full steps to configure and use ESP-IDF to build projects. - -## Example Output - -The following log will be shown on the IDF monitor console: - -``` -I (499) main_task: Calling app_main() -I (509) transport: Attempt connection with slave: retry[0] -I (509) transport: Reset slave using GPIO[2] -I (509) os_wrapper_esp: GPIO [2] configured -I (509) gpio: GPIO[2]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 -I (1699) transport: Received INIT event from ESP32 peripheral -I (1699) transport: EVENT: 12 -I (1699) transport: EVENT: 11 -I (1699) transport: capabilities: 0xf8 -I (1709) transport: Features supported are: -I (1709) transport: - HCI over SPI -I (1709) transport: - BT/BLE dual mode -I (1719) transport: EVENT: 13 -I (1719) transport: ESP board type is : 0 - -I (1719) transport: Base transport is set-up - -I (1729) transport: Slave chip Id[12] -I (1729) vhci_drv: Host BT Support: Enabled -I (1729) vhci_drv: BT Transport Type: VHCI -I (1739) spi: Received INIT event -I (2799) app_main: setting device name -I (2799) esp_bt_gap_cb: event: 10 -I (2799) app_main: setting cod major, peripheral -I (4799) app_main: register hid device callback -I (4799) app_main: starting hid device -I (4799) esp_bt_hidd_cb: setting hid parameters -I (4799) esp_bt_gap_cb: event: 10 -I (4799) esp_bt_hidd_cb: setting hid parameters success! -I (4799) esp_bt_hidd_cb: setting to connectable, discoverable -I (4809) app_main: Own address:[10:97:bd:d5:8a:62] -I (4809) app_main: exiting -``` - -The messages show the successful initialization of Bluetooth stack and HID application. ESP32-P4 will become discoverable with the Bluetooth device name as "HID Mouse Example", by nearby Bluetooth HID Host device. - -Connect to ESP32-P4 on the HID Host side, then finish bonding. After that the HID connection will be established. IDF monitor console will continue to print messages like: - -``` -W (21229) BT_HCI: hcif conn complete: hdl 0x80, st 0x0 -I (21229) esp_bt_gap_cb: event: 16 -I (21859) esp_bt_gap_cb: authentication success: XXXXXXXX -I (21859) esp_bt_gap_cb: 64 49 7d d0 fd 99 -I (21889) esp_bt_gap_cb: event: 21 -W (22299) BT_HIDD: hidd_l2cif_config_cfm: config failed, retry -W (22319) BT_APPL: new conn_srvc id:20, app_id:1 -I (22319) esp_bt_hidd_cb: connected to 64:49:7d:d0:fd:99 -I (22319) mouse_move_task: starting -I (22319) esp_bt_hidd_cb: making self non-discoverable and non-connectable. -W (22329) BT_HCI: hci cmd send: sniff: hdl 0x80, intv(10 18) -I (22339) esp_bt_hidd_cb: ESP_HIDD_SEND_REPORT_EVT id:0x00, type:1 -W (22349) BT_HCI: hcif mode change: hdl 0x80, mode 2, intv 18, status 0x0 -I (22349) esp_bt_gap_cb: ESP_BT_GAP_MODE_CHG_EVT mode:2 -I (22369) esp_bt_hidd_cb: ESP_HIDD_SEND_REPORT_EVT id:0x00, type:1 -I (22419) esp_bt_hidd_cb: ESP_HIDD_SEND_REPORT_EVT id:0x00, type:1 -I (22469) esp_bt_hidd_cb: ESP_HIDD_SEND_REPORT_EVT id:0x00, type:1 -I (22519) esp_bt_hidd_cb: ESP_HIDD_SEND_REPORT_EVT id:0x00, type:1 -I (22569) esp_bt_hidd_cb: ESP_HIDD_SEND_REPORT_EVT id:0x00, type:1 -``` - -ESP32-P4 will generate and send HID mouse reports periodically. On the screen of HID Host, the cursor will move horizontally from left to right and then right to left, and so on so forth. - -## Example Breakdown - -### Initial settings for Bluetooth HID device profile - -Bluetooth HID device requires the specific major and minor device type in the Class of Device (CoD), the following lines of source code performs the configuration of CoD: - -``` -void app_main(void) { - ... - ESP_LOGI(TAG, "setting cod major, peripheral"); - esp_bt_cod_t cod; - cod.major = ESP_BT_COD_MAJOR_DEV_PERIPHERAL; - esp_bt_gap_set_cod(cod, ESP_BT_SET_COD_MAJOR_MINOR); - ... -} -``` - -Bluetooth HID device profile requires the information of service name, provide, device subclass, report descriptor for SDP server, as well as L2CAP QoS configurations from the application. Following lines in function `app_main` initialize these information fields: - -``` -void app_main(void) { - ... - // Initialize HID SDP information and L2CAP parameters. - // to be used in the call of `esp_bt_hid_device_register_app` after profile initialization finishes - do { - s_local_param.app_param.name = "Mouse"; - s_local_param.app_param.description = "Mouse Example"; - s_local_param.app_param.provider = "ESP32"; - s_local_param.app_param.subclass = ESP_HID_CLASS_MIC; - s_local_param.app_param.desc_list = hid_mouse_descriptor; - s_local_param.app_param.desc_list_len = hid_mouse_descriptor_len; - - memset(&s_local_param.both_qos, 0, sizeof(esp_hidd_qos_param_t)); // don't set the qos parameters - } while (0); - - // Report Protocol Mode is the default mode, according to Bluetooth HID specification - s_local_param.protocol_mode = ESP_HIDD_REPORT_MODE; - - ESP_LOGI(TAG, "register hid device callback"); - esp_bt_hid_device_register_callback(esp_bt_hidd_cb); - - ESP_LOGI(TAG, "starting hid device"); - esp_bt_hid_device_init(); - ... -} -``` - -The information is set to global struct `s_local_param` and will be used upon successful profile initialization, i.e. reception of `ESP_HIDD_INIT_EVT` which is generated after the call of `esp_bt_hid_device_init()`: - -``` -void esp_bt_hidd_cb(esp_hidd_cb_event_t event, esp_hidd_cb_param_t *param) -{ - ... - switch (event) { - case ESP_HIDD_INIT_EVT: - if (param->init.status == ESP_HIDD_SUCCESS) { - ESP_LOGI(TAG, "setting hid parameters"); - esp_bt_hid_device_register_app(&s_local_param.app_param, &s_local_param.both_qos, &s_local_param.both_qos); - } else { - ESP_LOGE(TAG, "init hidd failed!"); - } - break; - ... - } - ... -} -``` - -### Determination of HID Report Mode - -There are two HID report modes: Report Protocol Mode and Boot Protocol Mode. The former is the default mode. The two report modes differ in the report contents and format. The example supports both of the two modes. - -Report Mode requires report descriptor to describe the usage and format of the reports. For Bluetooth HID device, the report descriptor shall be provided in the SDP server, which can be discovered and used by remote HID Host. - -Boot Mode only supports keyboards and mice, with pre-defined report formats. Therefore it does not require a report descriptor parser on the remote HID Host. It is originally used to simplify the design of PC BIOSs. - -The following code lines set Report Protocol Mode as the default Report Mode: - -``` -void app_main(void) { - ... - // Report Protocol Mode is the default mode, according to Bluetooth HID specification - s_local_param.protocol_mode = ESP_HIDD_REPORT_MODE; - ... -} -``` - -Report Mode can be choosen by remote HID Host through the SET_PROTOCOL request: - -``` -void esp_bt_hidd_cb(esp_hidd_cb_event_t event, esp_hidd_cb_param_t *param) -{ - ... - switch (event) { - ... - case ESP_HIDD_SET_PROTOCOL_EVT: - ESP_LOGI(TAG, "ESP_HIDD_SET_PROTOCOL_EVT"); - if (param->set_protocol.protocol_mode == ESP_HIDD_BOOT_MODE) { - ESP_LOGI(TAG, " - boot protocol"); - xSemaphoreTake(s_local_param.mouse_mutex, portMAX_DELAY); - s_local_param.x_dir = -1; - xSemaphoreGive(s_local_param.mouse_mutex); - } else if (param->set_protocol.protocol_mode == ESP_HIDD_REPORT_MODE) { - ESP_LOGI(TAG, " - report protocol"); - } - xSemaphoreTake(s_local_param.mouse_mutex, portMAX_DELAY); - s_local_param.protocol_mode = param->set_protocol.protocol_mode; - xSemaphoreGive(s_local_param.mouse_mutex); - break; - .... - } - .... -} -``` - -### Report generation - -The example simulates a mouse by creating a FreeRTOS task that periodically generates and sends the HID mouse report: - -``` -// move the mouse left and right -void mouse_move_task(void* pvParameters) -{ - const char* TAG = "mouse_move_task"; - - ESP_LOGI(TAG, "starting"); - for(;;) { - s_local_param.x_dir = 1; - int8_t step = 10; - for (int i = 0; i < 2; i++) { - xSemaphoreTake(s_local_param.mouse_mutex, portMAX_DELAY); - s_local_param.x_dir *= -1; - xSemaphoreGive(s_local_param.mouse_mutex); - for (int j = 0; j < 100; j++) { - send_mouse_report(0, s_local_param.x_dir * step, 0, 0); - vTaskDelay(50 / portTICK_PERIOD_MS); - } - } - vTaskDelay(1000 / portTICK_PERIOD_MS); - } -} -``` - -Function `send_mouse_report` is used to pack the information into a mouse HID report and sends it to HID Host, according to the Report Mode applied: - -``` -// send the buttons, change in x, and change in y -void send_mouse_report(uint8_t buttons, char dx, char dy, char wheel) -{ - uint8_t report_id; - uint16_t report_size; - xSemaphoreTake(s_local_param.mouse_mutex, portMAX_DELAY); - if (s_local_param.protocol_mode == ESP_HIDD_REPORT_MODE) { - report_id = 0; - report_size = REPORT_PROTOCOL_MOUSE_REPORT_SIZE; - s_local_param.buffer[0] = buttons; - s_local_param.buffer[1] = dx; - s_local_param.buffer[2] = dy; - s_local_param.buffer[3] = wheel; - } else { - // Boot Mode - report_id = ESP_HIDD_BOOT_REPORT_ID_MOUSE; - report_size = ESP_HIDD_BOOT_REPORT_SIZE_MOUSE - 1; - s_local_param.buffer[0] = buttons; - s_local_param.buffer[1] = dx; - s_local_param.buffer[2] = dy; - } - esp_bt_hid_device_send_report(ESP_HIDD_REPORT_TYPE_INTRDATA, report_id, report_size, s_local_param.buffer); - xSemaphoreGive(s_local_param.mouse_mutex); -} -``` diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/CMakeLists.txt b/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/CMakeLists.txt deleted file mode 100644 index d722ba6..0000000 --- a/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -#set(COMPONENT_SRCS "main.c") -#set(COMPONENT_ADD_INCLUDEDIRS "") - -#register_component() - -idf_component_register(SRCS "main.c" - PRIV_REQUIRES bt nvs_flash esp_hosted - INCLUDE_DIRS ".") diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/Kconfig.projbuild b/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/Kconfig.projbuild deleted file mode 100644 index d7db193..0000000 --- a/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/Kconfig.projbuild +++ /dev/null @@ -1,15 +0,0 @@ -menu "HID Example Configuration" - config EXAMPLE_SSP_ENABLED - bool "Secure Simple Pairing" - depends on BT_CLASSIC_ENABLED - default y - help - This enables the Secure Simple Pairing. If disable this option, - Bluedroid will only support Legacy Pairing - - config EXAMPLE_LOCAL_DEVICE_NAME - string "Local Device Name" - default "HID Mouse Example" - help - Use this option to set local device name. -endmenu diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/idf_component.yml b/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/idf_component.yml deleted file mode 100644 index 87c2a6f..0000000 --- a/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/idf_component.yml +++ /dev/null @@ -1,9 +0,0 @@ -dependencies: - espressif/esp_hosted: - rules: - - if: target in [esp32p4, esp32h2] - version: ~2 - espressif/esp_wifi_remote: - rules: - - if: target in [esp32p4, esp32h2] - version: '>=0.10' diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/main.c b/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/main.c deleted file mode 100644 index 89266f0..0000000 --- a/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/main/main.c +++ /dev/null @@ -1,483 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Unlicense OR CC0-1.0 - */ - -#include "esp_log.h" -#include "esp_hidd_api.h" -#include "esp_bt_main.h" -#include "esp_bt_device.h" -#include "esp_err.h" -#include "nvs.h" -#include "nvs_flash.h" -#include "esp_gap_bt_api.h" -#include -#include - -#include "freertos/FreeRTOS.h" -#include "freertos/task.h" -#include "freertos/semphr.h" - -#include "esp_hosted_bt.h" - -#define REPORT_PROTOCOL_MOUSE_REPORT_SIZE (4) -#define REPORT_BUFFER_SIZE REPORT_PROTOCOL_MOUSE_REPORT_SIZE - -static const char local_device_name[] = CONFIG_EXAMPLE_LOCAL_DEVICE_NAME; - -typedef struct { - esp_hidd_app_param_t app_param; - esp_hidd_qos_param_t both_qos; - uint8_t protocol_mode; - SemaphoreHandle_t mouse_mutex; - TaskHandle_t mouse_task_hdl; - uint8_t buffer[REPORT_BUFFER_SIZE]; - int8_t x_dir; -} local_param_t; - -static local_param_t s_local_param = {0}; - -// HID report descriptor for a generic mouse. The contents of the report are: -// 3 buttons, moving information for X and Y cursors, information for a wheel. -uint8_t hid_mouse_descriptor[] = { - 0x05, 0x01, // USAGE_PAGE (Generic Desktop) - 0x09, 0x02, // USAGE (Mouse) - 0xa1, 0x01, // COLLECTION (Application) - - 0x09, 0x01, // USAGE (Pointer) - 0xa1, 0x00, // COLLECTION (Physical) - - 0x05, 0x09, // USAGE_PAGE (Button) - 0x19, 0x01, // USAGE_MINIMUM (Button 1) - 0x29, 0x03, // USAGE_MAXIMUM (Button 3) - 0x15, 0x00, // LOGICAL_MINIMUM (0) - 0x25, 0x01, // LOGICAL_MAXIMUM (1) - 0x95, 0x03, // REPORT_COUNT (3) - 0x75, 0x01, // REPORT_SIZE (1) - 0x81, 0x02, // INPUT (Data,Var,Abs) - 0x95, 0x01, // REPORT_COUNT (1) - 0x75, 0x05, // REPORT_SIZE (5) - 0x81, 0x03, // INPUT (Cnst,Var,Abs) - - 0x05, 0x01, // USAGE_PAGE (Generic Desktop) - 0x09, 0x30, // USAGE (X) - 0x09, 0x31, // USAGE (Y) - 0x09, 0x38, // USAGE (Wheel) - 0x15, 0x81, // LOGICAL_MINIMUM (-127) - 0x25, 0x7f, // LOGICAL_MAXIMUM (127) - 0x75, 0x08, // REPORT_SIZE (8) - 0x95, 0x03, // REPORT_COUNT (3) - 0x81, 0x06, // INPUT (Data,Var,Rel) - - 0xc0, // END_COLLECTION - 0xc0 // END_COLLECTION -}; - -static char *bda2str(esp_bd_addr_t bda, char *str, size_t size) -{ - if (bda == NULL || str == NULL || size < 18) { - return NULL; - } - - uint8_t *p = bda; - sprintf(str, "%02x:%02x:%02x:%02x:%02x:%02x", - p[0], p[1], p[2], p[3], p[4], p[5]); - return str; -} - -const int hid_mouse_descriptor_len = sizeof(hid_mouse_descriptor); - -/** - * @brief Integrity check of the report ID and report type for GET_REPORT request from HID host. - * Boot Protocol Mode requires report ID. For Report Protocol Mode, when the report descriptor - * does not declare report ID Global ITEMS, the report ID does not exist in the GET_REPORT request, - * and a value of 0 for report_id will occur in ESP_HIDD_GET_REPORT_EVT callback parameter. - */ -bool check_report_id_type(uint8_t report_id, uint8_t report_type) -{ - bool ret = false; - xSemaphoreTake(s_local_param.mouse_mutex, portMAX_DELAY); - do { - if (report_type != ESP_HIDD_REPORT_TYPE_INPUT) { - break; - } - if (s_local_param.protocol_mode == ESP_HIDD_BOOT_MODE) { - if (report_id == ESP_HIDD_BOOT_REPORT_ID_MOUSE) { - ret = true; - break; - } - } else { - if (report_id == 0) { - ret = true; - break; - } - } - } while (0); - - if (!ret) { - if (s_local_param.protocol_mode == ESP_HIDD_BOOT_MODE) { - esp_bt_hid_device_report_error(ESP_HID_PAR_HANDSHAKE_RSP_ERR_INVALID_REP_ID); - } else { - esp_bt_hid_device_report_error(ESP_HID_PAR_HANDSHAKE_RSP_ERR_INVALID_REP_ID); - } - } - xSemaphoreGive(s_local_param.mouse_mutex); - return ret; -} - -// send the buttons, change in x, and change in y -void send_mouse_report(uint8_t buttons, char dx, char dy, char wheel) -{ - uint8_t report_id; - uint16_t report_size; - xSemaphoreTake(s_local_param.mouse_mutex, portMAX_DELAY); - if (s_local_param.protocol_mode == ESP_HIDD_REPORT_MODE) { - report_id = 0; - report_size = REPORT_PROTOCOL_MOUSE_REPORT_SIZE; - s_local_param.buffer[0] = buttons; - s_local_param.buffer[1] = dx; - s_local_param.buffer[2] = dy; - s_local_param.buffer[3] = wheel; - } else { - // Boot Mode - report_id = ESP_HIDD_BOOT_REPORT_ID_MOUSE; - report_size = ESP_HIDD_BOOT_REPORT_SIZE_MOUSE - 1; - s_local_param.buffer[0] = buttons; - s_local_param.buffer[1] = dx; - s_local_param.buffer[2] = dy; - } - esp_bt_hid_device_send_report(ESP_HIDD_REPORT_TYPE_INTRDATA, report_id, report_size, s_local_param.buffer); - xSemaphoreGive(s_local_param.mouse_mutex); -} - -// move the mouse left and right -void mouse_move_task(void *pvParameters) -{ - const char *TAG = "mouse_move_task"; - - ESP_LOGI(TAG, "starting"); - for (;;) { - s_local_param.x_dir = 1; - int8_t step = 10; - for (int i = 0; i < 2; i++) { - xSemaphoreTake(s_local_param.mouse_mutex, portMAX_DELAY); - s_local_param.x_dir *= -1; - xSemaphoreGive(s_local_param.mouse_mutex); - for (int j = 0; j < 100; j++) { - send_mouse_report(0, s_local_param.x_dir * step, 0, 0); - vTaskDelay(50 / portTICK_PERIOD_MS); - } - } - vTaskDelay(1000 / portTICK_PERIOD_MS); - } -} - -void esp_bt_gap_cb(esp_bt_gap_cb_event_t event, esp_bt_gap_cb_param_t *param) -{ - const char *TAG = "esp_bt_gap_cb"; - switch (event) { - case ESP_BT_GAP_AUTH_CMPL_EVT: { - if (param->auth_cmpl.stat == ESP_BT_STATUS_SUCCESS) { - ESP_LOGI(TAG, "authentication success: %s", param->auth_cmpl.device_name); - ESP_LOG_BUFFER_HEX(TAG, param->auth_cmpl.bda, ESP_BD_ADDR_LEN); - } else { - ESP_LOGE(TAG, "authentication failed, status:%d", param->auth_cmpl.stat); - } - break; - } - case ESP_BT_GAP_PIN_REQ_EVT: { - ESP_LOGI(TAG, "ESP_BT_GAP_PIN_REQ_EVT min_16_digit:%d", param->pin_req.min_16_digit); - if (param->pin_req.min_16_digit) { - ESP_LOGI(TAG, "Input pin code: 0000 0000 0000 0000"); - esp_bt_pin_code_t pin_code = {0}; - esp_bt_gap_pin_reply(param->pin_req.bda, true, 16, pin_code); - } else { - ESP_LOGI(TAG, "Input pin code: 1234"); - esp_bt_pin_code_t pin_code; - pin_code[0] = '1'; - pin_code[1] = '2'; - pin_code[2] = '3'; - pin_code[3] = '4'; - esp_bt_gap_pin_reply(param->pin_req.bda, true, 4, pin_code); - } - break; - } - -#if (CONFIG_EXAMPLE_SSP_ENABLED == true) - case ESP_BT_GAP_CFM_REQ_EVT: - ESP_LOGI(TAG, "ESP_BT_GAP_CFM_REQ_EVT Please compare the numeric value: %"PRIu32, param->cfm_req.num_val); - esp_bt_gap_ssp_confirm_reply(param->cfm_req.bda, true); - break; - case ESP_BT_GAP_KEY_NOTIF_EVT: - ESP_LOGI(TAG, "ESP_BT_GAP_KEY_NOTIF_EVT passkey:%"PRIu32, param->key_notif.passkey); - break; - case ESP_BT_GAP_KEY_REQ_EVT: - ESP_LOGI(TAG, "ESP_BT_GAP_KEY_REQ_EVT Please enter passkey!"); - break; -#endif - case ESP_BT_GAP_MODE_CHG_EVT: - ESP_LOGI(TAG, "ESP_BT_GAP_MODE_CHG_EVT mode:%d", param->mode_chg.mode); - break; - default: - ESP_LOGI(TAG, "event: %d", event); - break; - } - return; -} - -void bt_app_task_start_up(void) -{ - s_local_param.mouse_mutex = xSemaphoreCreateMutex(); - memset(s_local_param.buffer, 0, REPORT_BUFFER_SIZE); - xTaskCreate(mouse_move_task, "mouse_move_task", 2 * 1024, NULL, configMAX_PRIORITIES - 3, &s_local_param.mouse_task_hdl); - return; -} - -void bt_app_task_shut_down(void) -{ - if (s_local_param.mouse_task_hdl) { - vTaskDelete(s_local_param.mouse_task_hdl); - s_local_param.mouse_task_hdl = NULL; - } - - if (s_local_param.mouse_mutex) { - vSemaphoreDelete(s_local_param.mouse_mutex); - s_local_param.mouse_mutex = NULL; - } - return; -} - -void esp_bt_hidd_cb(esp_hidd_cb_event_t event, esp_hidd_cb_param_t *param) -{ - static const char *TAG = "esp_bt_hidd_cb"; - switch (event) { - case ESP_HIDD_INIT_EVT: - if (param->init.status == ESP_HIDD_SUCCESS) { - ESP_LOGI(TAG, "setting hid parameters"); - esp_bt_hid_device_register_app(&s_local_param.app_param, &s_local_param.both_qos, &s_local_param.both_qos); - } else { - ESP_LOGE(TAG, "init hidd failed!"); - } - break; - case ESP_HIDD_DEINIT_EVT: - break; - case ESP_HIDD_REGISTER_APP_EVT: - if (param->register_app.status == ESP_HIDD_SUCCESS) { - ESP_LOGI(TAG, "setting hid parameters success!"); - ESP_LOGI(TAG, "setting to connectable, discoverable"); - esp_bt_gap_set_scan_mode(ESP_BT_CONNECTABLE, ESP_BT_GENERAL_DISCOVERABLE); - if (param->register_app.in_use) { - ESP_LOGI(TAG, "start virtual cable plug!"); - esp_bt_hid_device_connect(param->register_app.bd_addr); - } - } else { - ESP_LOGE(TAG, "setting hid parameters failed!"); - } - break; - case ESP_HIDD_UNREGISTER_APP_EVT: - if (param->unregister_app.status == ESP_HIDD_SUCCESS) { - ESP_LOGI(TAG, "unregister app success!"); - } else { - ESP_LOGE(TAG, "unregister app failed!"); - } - break; - case ESP_HIDD_OPEN_EVT: - if (param->open.status == ESP_HIDD_SUCCESS) { - if (param->open.conn_status == ESP_HIDD_CONN_STATE_CONNECTING) { - ESP_LOGI(TAG, "connecting..."); - } else if (param->open.conn_status == ESP_HIDD_CONN_STATE_CONNECTED) { - ESP_LOGI(TAG, "connected to %02x:%02x:%02x:%02x:%02x:%02x", param->open.bd_addr[0], - param->open.bd_addr[1], param->open.bd_addr[2], param->open.bd_addr[3], param->open.bd_addr[4], - param->open.bd_addr[5]); - bt_app_task_start_up(); - ESP_LOGI(TAG, "making self non-discoverable and non-connectable."); - esp_bt_gap_set_scan_mode(ESP_BT_NON_CONNECTABLE, ESP_BT_NON_DISCOVERABLE); - } else { - ESP_LOGE(TAG, "unknown connection status"); - } - } else { - ESP_LOGE(TAG, "open failed!"); - } - break; - case ESP_HIDD_CLOSE_EVT: - ESP_LOGI(TAG, "ESP_HIDD_CLOSE_EVT"); - if (param->close.status == ESP_HIDD_SUCCESS) { - if (param->close.conn_status == ESP_HIDD_CONN_STATE_DISCONNECTING) { - ESP_LOGI(TAG, "disconnecting..."); - } else if (param->close.conn_status == ESP_HIDD_CONN_STATE_DISCONNECTED) { - ESP_LOGI(TAG, "disconnected!"); - bt_app_task_shut_down(); - ESP_LOGI(TAG, "making self discoverable and connectable again."); - esp_bt_gap_set_scan_mode(ESP_BT_CONNECTABLE, ESP_BT_GENERAL_DISCOVERABLE); - } else { - ESP_LOGE(TAG, "unknown connection status"); - } - } else { - ESP_LOGE(TAG, "close failed!"); - } - break; - case ESP_HIDD_SEND_REPORT_EVT: - if (param->send_report.status == ESP_HIDD_SUCCESS) { - ESP_LOGI(TAG, "ESP_HIDD_SEND_REPORT_EVT id:0x%02x, type:%d", param->send_report.report_id, - param->send_report.report_type); - } else { - ESP_LOGE(TAG, "ESP_HIDD_SEND_REPORT_EVT id:0x%02x, type:%d, status:%d, reason:%d", - param->send_report.report_id, param->send_report.report_type, param->send_report.status, - param->send_report.reason); - } - break; - case ESP_HIDD_REPORT_ERR_EVT: - ESP_LOGI(TAG, "ESP_HIDD_REPORT_ERR_EVT"); - break; - case ESP_HIDD_GET_REPORT_EVT: - ESP_LOGI(TAG, "ESP_HIDD_GET_REPORT_EVT id:0x%02x, type:%d, size:%d", param->get_report.report_id, - param->get_report.report_type, param->get_report.buffer_size); - if (check_report_id_type(param->get_report.report_id, param->get_report.report_type)) { - uint8_t report_id; - uint16_t report_len; - if (s_local_param.protocol_mode == ESP_HIDD_REPORT_MODE) { - report_id = 0; - report_len = REPORT_PROTOCOL_MOUSE_REPORT_SIZE; - } else { - // Boot Mode - report_id = ESP_HIDD_BOOT_REPORT_ID_MOUSE; - report_len = ESP_HIDD_BOOT_REPORT_SIZE_MOUSE - 1; - } - xSemaphoreTake(s_local_param.mouse_mutex, portMAX_DELAY); - esp_bt_hid_device_send_report(param->get_report.report_type, report_id, report_len, s_local_param.buffer); - xSemaphoreGive(s_local_param.mouse_mutex); - } else { - ESP_LOGE(TAG, "check_report_id failed!"); - } - break; - case ESP_HIDD_SET_REPORT_EVT: - ESP_LOGI(TAG, "ESP_HIDD_SET_REPORT_EVT"); - break; - case ESP_HIDD_SET_PROTOCOL_EVT: - ESP_LOGI(TAG, "ESP_HIDD_SET_PROTOCOL_EVT"); - if (param->set_protocol.protocol_mode == ESP_HIDD_BOOT_MODE) { - ESP_LOGI(TAG, " - boot protocol"); - xSemaphoreTake(s_local_param.mouse_mutex, portMAX_DELAY); - s_local_param.x_dir = -1; - xSemaphoreGive(s_local_param.mouse_mutex); - } else if (param->set_protocol.protocol_mode == ESP_HIDD_REPORT_MODE) { - ESP_LOGI(TAG, " - report protocol"); - } - xSemaphoreTake(s_local_param.mouse_mutex, portMAX_DELAY); - s_local_param.protocol_mode = param->set_protocol.protocol_mode; - xSemaphoreGive(s_local_param.mouse_mutex); - break; - case ESP_HIDD_INTR_DATA_EVT: - ESP_LOGI(TAG, "ESP_HIDD_INTR_DATA_EVT"); - break; - case ESP_HIDD_VC_UNPLUG_EVT: - ESP_LOGI(TAG, "ESP_HIDD_VC_UNPLUG_EVT"); - if (param->vc_unplug.status == ESP_HIDD_SUCCESS) { - if (param->close.conn_status == ESP_HIDD_CONN_STATE_DISCONNECTED) { - ESP_LOGI(TAG, "disconnected!"); - bt_app_task_shut_down(); - ESP_LOGI(TAG, "making self discoverable and connectable again."); - esp_bt_gap_set_scan_mode(ESP_BT_CONNECTABLE, ESP_BT_GENERAL_DISCOVERABLE); - } else { - ESP_LOGE(TAG, "unknown connection status"); - } - } else { - ESP_LOGE(TAG, "close failed!"); - } - break; - default: - break; - } -} - -void app_main(void) -{ - const char *TAG = "app_main"; - esp_err_t ret; - char bda_str[18] = {0}; - - ret = nvs_flash_init(); - if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { - ESP_ERROR_CHECK(nvs_flash_erase()); - ret = nvs_flash_init(); - } - ESP_ERROR_CHECK( ret ); - - /* initialize TRANSPORT first */ - hosted_hci_bluedroid_open(); - - /* get HCI driver operations */ - esp_bluedroid_hci_driver_operations_t operations = { - .send = hosted_hci_bluedroid_send, - .check_send_available = hosted_hci_bluedroid_check_send_available, - .register_host_callback = hosted_hci_bluedroid_register_host_callback, - }; - esp_bluedroid_attach_hci_driver(&operations); - - if ((ret = esp_bluedroid_init()) != ESP_OK) { - ESP_LOGE(TAG, "%s initialize bluedroid failed: %s", __func__, esp_err_to_name(ret)); - return; - } - - if ((ret = esp_bluedroid_enable()) != ESP_OK) { - ESP_LOGE(TAG, "enable bluedroid failed: %s", esp_err_to_name(ret)); - return; - } - - if ((ret = esp_bt_gap_register_callback(esp_bt_gap_cb)) != ESP_OK) { - ESP_LOGE(TAG, "gap register failed: %s", esp_err_to_name(ret)); - return; - } - - ESP_LOGI(TAG, "setting device name"); - esp_bt_gap_set_device_name(local_device_name); - - ESP_LOGI(TAG, "setting cod major, peripheral"); - esp_bt_cod_t cod = {0}; - cod.major = ESP_BT_COD_MAJOR_DEV_PERIPHERAL; - cod.minor = ESP_BT_COD_MINOR_PERIPHERAL_POINTING; - esp_bt_gap_set_cod(cod, ESP_BT_SET_COD_MAJOR_MINOR); - - vTaskDelay(2000 / portTICK_PERIOD_MS); - - // Initialize HID SDP information and L2CAP parameters. - // to be used in the call of `esp_bt_hid_device_register_app` after profile initialization finishes - do { - s_local_param.app_param.name = "Mouse"; - s_local_param.app_param.description = "Mouse Example"; - s_local_param.app_param.provider = "ESP32"; - s_local_param.app_param.subclass = ESP_HID_CLASS_MIC; // keep same with minor class of COD - s_local_param.app_param.desc_list = hid_mouse_descriptor; - s_local_param.app_param.desc_list_len = hid_mouse_descriptor_len; - - memset(&s_local_param.both_qos, 0, sizeof(esp_hidd_qos_param_t)); // don't set the qos parameters - } while (0); - - // Report Protocol Mode is the default mode, according to Bluetooth HID specification - s_local_param.protocol_mode = ESP_HIDD_REPORT_MODE; - - ESP_LOGI(TAG, "register hid device callback"); - esp_bt_hid_device_register_callback(esp_bt_hidd_cb); - - ESP_LOGI(TAG, "starting hid device"); - esp_bt_hid_device_init(); - -#if (CONFIG_EXAMPLE_SSP_ENABLED == true) - /* Set default parameters for Secure Simple Pairing */ - esp_bt_sp_param_t param_type = ESP_BT_SP_IOCAP_MODE; - esp_bt_io_cap_t iocap = ESP_BT_IO_CAP_NONE; - esp_bt_gap_set_security_param(param_type, &iocap, sizeof(uint8_t)); -#endif - - /* - * Set default parameters for Legacy Pairing - * Use variable pin, input pin code when pairing - */ - esp_bt_pin_type_t pin_type = ESP_BT_PIN_TYPE_VARIABLE; - esp_bt_pin_code_t pin_code; - esp_bt_gap_set_pin(pin_type, 0, pin_code); - - ESP_LOGI(TAG, "Own address:[%s]", bda2str((uint8_t *)esp_bt_dev_get_address(), bda_str, sizeof(bda_str))); - ESP_LOGI(TAG, "exiting"); -} diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/sdkconfig.defaults b/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/sdkconfig.defaults deleted file mode 100644 index 22e6ff1..0000000 --- a/resources/espressif__esp_hosted/examples/host_bluedroid_bt_hid_mouse_device/sdkconfig.defaults +++ /dev/null @@ -1,29 +0,0 @@ -# -# BT config -# - ESP32 co-processor only supports BLE 4.2 -# -CONFIG_BT_ENABLED=y -CONFIG_BT_CONTROLLER_DISABLED=y -CONFIG_BT_BLUEDROID_ENABLED=y -CONFIG_BT_CLASSIC_ENABLED=y -CONFIG_BT_HID_ENABLED=y -CONFIG_BT_HID_DEVICE_ENABLED=y -CONFIG_BT_BLE_50_FEATURES_SUPPORTED=n -CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y -CONFIG_BTDM_CTRL_MODE_BLE_ONLY=n -CONFIG_BTDM_CTRL_MODE_BR_EDR_ONLY=y -CONFIG_BTDM_CTRL_MODE_BTDM=n - -# -# Wi-Fi Remote -# - set ESP32 as default co-processor -# -CONFIG_ESP_WIFI_REMOTE_LIBRARY_HOSTED=y -CONFIG_SLAVE_IDF_TARGET_ESP32=y - -# -# Enable ESP Hosted BT -# Used as VHCI transport between BT Host and Controller -# -CONFIG_ESP_HOSTED_ENABLE_BT_BLUEDROID=y -CONFIG_ESP_HOSTED_BLUEDROID_HCI_VHCI=y diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/CMakeLists.txt b/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/CMakeLists.txt deleted file mode 100644 index 623ff47..0000000 --- a/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -# The following lines of boilerplate have to be in your project's CMakeLists -# in this exact order for cmake to work correctly -cmake_minimum_required(VERSION 3.16) - -include($ENV{IDF_PATH}/tools/cmake/project.cmake) -# "Trim" the build. Include the minimal set of components, main, and anything it depends on. -idf_build_set_property(MINIMAL_BUILD ON) -project(host_hci_uart) diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/README.md b/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/README.md deleted file mode 100644 index 71b1e5f..0000000 --- a/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/README.md +++ /dev/null @@ -1,100 +0,0 @@ -| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-S3 | ESP32-P4 | ESP32-H2 | -| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | -------- | - -ESP-IDF ESP-Hosted Hosted HCI Host -================================== - -This is a Bluetooth Host using ESP-Hosted as HCI IO to the BT Controller. - -## Example Layout - -This example is modified based on [bt_discovery](https://github.com/espressif/esp-idf/tree/master/examples/bluetooth/bluedroid/classic_bt/bt_discovery), and all modifications are listed below: - -- Removed all dependencies on controller from `main.c`. - -``` -#include "esp_bt.h" - -... - -ESP_ERROR_CHECK(esp_bt_controller_mem_release(ESP_BT_MODE_BLE)); - -esp_bt_controller_config_t bt_cfg = BT_CONTROLLER_INIT_CONFIG_DEFAULT(); -if ((ret = esp_bt_controller_init(&bt_cfg)) != ESP_OK) { - ESP_LOGE(GAP_TAG, "%s initialize controller failed: %s", __func__, esp_err_to_name(ret)); - return; -} - -if ((ret = esp_bt_controller_enable(ESP_BT_MODE_CLASSIC_BT)) != ESP_OK) { - ESP_LOGE(GAP_TAG, "%s enable controller failed: %s", __func__, esp_err_to_name(ret)); - return; -} -``` - -- Add support for ESP-Hosted HCI interface: `esp_hosted_bt.h`. - -- Open HCI interface in `main.c`. - -``` -#include "esp_hosted_bt.h" - -... - -/* initialize TRANSPORT first */ -hosted_hci_bluedroid_open(); - -/* get HCI driver operations */ -esp_bluedroid_hci_driver_operations_t operations = { - .send = hosted_hci_bluedroid_uart_send, - .check_send_available = hosted_hci_bluedroid_check_send_available, - .register_host_callback = hosted_hci_bluedroid_register_host_callback, -}; -esp_bluedroid_attach_hci_driver(&operations); -``` - -## How to use example - -### Hardware Required - -This example runs on the ESP32-P4 Dev Board connected to a ESP32 via the GPIO header, using SPI FD (full duplex) as Hosted HCI transport. The following GPIO settings were used: - -| SPI Function | ESP32 GPIO | ESP32-P4 GPIO | -| :--- | ---: | ---: | -| MOSI | 13 | 4 | -| MISO | 12 | 5 | -| CLK | 14 | 26 | -| CS | 15 | 6 | -| Handshake | 26 | 20 | -| Data Ready | 4 | 36 | -| Reset | -1 | 2 | - -> [!NOTE] -> SPI Mode 2 was used on both the ESP32-P4 and ESP32. - -Users are free to choose which supported ESP-Hosted transport to use. See the [main ESP-Hosted README](https://github.com/espressif/esp-hosted-mcu/blob/main/README.md#6-decide-the-communication-bus-in-between-host-and-slave) for a list of supported transports. - -For standard HCI, configure the co-processor Bluetooth Controller to use UART as the HCI transport, then select appropriate GPIOs on the ESP32-P4 to configure as a UART. In this mode, ESP-Hosted is not involved in transporting the HCI data. - -See the ESP-IDF [UART HCI Host example](https://github.com/espressif/esp-idf/tree/master/examples/bluetooth/bluedroid/bluedroid_host_only/bluedroid_host_only_uart) on how to set-up UART for the Bluetooth Host. - -### Configure the project - -For the ESP32 co-processor, run `idf.py menuconfig` and configure `Example Configuration` for SPI Full-duplex with the correct SPI mode and GPIOs. - -For the ESP32-P4 co-processor, run `idf.py menuconfig` and under `Component config ---> ESP-Hosted config`: - -* set the transport to be `SPI Full-duplex` with the correct SPI modem GPIOs (see above table) and SPI Clock frequency (10 MHz max). -* set the Slave chipset used as `ESP32`. -* set `Bluetooth Support ---> Enable Hosted Bluedroid Bluetooth support` to enable Bluedroid support. Leave the HCI type as `VHCI`. - -### Build and Flash - -Build and flash the co-processor and host projects, then run monitor tool to view serial output on both the ESP32 and ESP32-P4: - -``` -idf.py -p PORT flash monitor -``` - -(Replace PORT with the name of the serial port to use.) - -(To exit the serial monitor, type ``Ctrl-]``.) diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/main/CMakeLists.txt b/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/main/CMakeLists.txt deleted file mode 100644 index 3c78354..0000000 --- a/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/main/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -idf_component_register(SRCS "main.c" - PRIV_REQUIRES bt nvs_flash esp_hosted - INCLUDE_DIRS ".") diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/main/idf_component.yml b/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/main/idf_component.yml deleted file mode 100644 index 87c2a6f..0000000 --- a/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/main/idf_component.yml +++ /dev/null @@ -1,9 +0,0 @@ -dependencies: - espressif/esp_hosted: - rules: - - if: target in [esp32p4, esp32h2] - version: ~2 - espressif/esp_wifi_remote: - rules: - - if: target in [esp32p4, esp32h2] - version: '>=0.10' diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/main/main.c b/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/main/main.c deleted file mode 100644 index 187bdf9..0000000 --- a/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/main/main.c +++ /dev/null @@ -1,307 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Unlicense OR CC0-1.0 - */ - - - -/**************************************************************************** -* -* This file is for Classic Bluetooth device and service discovery Demo. -* -****************************************************************************/ - -#include -#include -#include -#include "freertos/FreeRTOS.h" -#include "freertos/task.h" -#include "nvs.h" -#include "nvs_flash.h" -#include "esp_system.h" -#include "esp_log.h" -#include "esp_bt_main.h" -#include "esp_bt_device.h" -#include "esp_gap_bt_api.h" -#include "esp_bluedroid_hci.h" - -#include "esp_hosted_bt.h" - -#define GAP_TAG "GAP" - -typedef enum { - APP_GAP_STATE_IDLE = 0, - APP_GAP_STATE_DEVICE_DISCOVERING, - APP_GAP_STATE_DEVICE_DISCOVER_COMPLETE, - APP_GAP_STATE_SERVICE_DISCOVERING, - APP_GAP_STATE_SERVICE_DISCOVER_COMPLETE, -} app_gap_state_t; - -typedef struct { - bool dev_found; - uint8_t bdname_len; - uint8_t eir_len; - uint8_t rssi; - uint32_t cod; - uint8_t eir[ESP_BT_GAP_EIR_DATA_LEN]; - uint8_t bdname[ESP_BT_GAP_MAX_BDNAME_LEN + 1]; - esp_bd_addr_t bda; - app_gap_state_t state; -} app_gap_cb_t; - -static app_gap_cb_t m_dev_info; - -static char *bda2str(esp_bd_addr_t bda, char *str, size_t size) -{ - if (bda == NULL || str == NULL || size < 18) { - return NULL; - } - - uint8_t *p = bda; - sprintf(str, "%02x:%02x:%02x:%02x:%02x:%02x", - p[0], p[1], p[2], p[3], p[4], p[5]); - return str; -} - -static char *uuid2str(esp_bt_uuid_t *uuid, char *str, size_t size) -{ - if (uuid == NULL || str == NULL) { - return NULL; - } - - if (uuid->len == 2 && size >= 5) { - sprintf(str, "%04x", uuid->uuid.uuid16); - } else if (uuid->len == 4 && size >= 9) { - sprintf(str, "%08"PRIx32, uuid->uuid.uuid32); - } else if (uuid->len == 16 && size >= 37) { - uint8_t *p = uuid->uuid.uuid128; - sprintf(str, "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", - p[15], p[14], p[13], p[12], p[11], p[10], p[9], p[8], - p[7], p[6], p[5], p[4], p[3], p[2], p[1], p[0]); - } else { - return NULL; - } - - return str; -} - -static bool get_name_from_eir(uint8_t *eir, uint8_t *bdname, uint8_t *bdname_len) -{ - uint8_t *rmt_bdname = NULL; - uint8_t rmt_bdname_len = 0; - - if (!eir) { - return false; - } - - rmt_bdname = esp_bt_gap_resolve_eir_data(eir, ESP_BT_EIR_TYPE_CMPL_LOCAL_NAME, &rmt_bdname_len); - if (!rmt_bdname) { - rmt_bdname = esp_bt_gap_resolve_eir_data(eir, ESP_BT_EIR_TYPE_SHORT_LOCAL_NAME, &rmt_bdname_len); - } - - if (rmt_bdname) { - if (rmt_bdname_len > ESP_BT_GAP_MAX_BDNAME_LEN) { - rmt_bdname_len = ESP_BT_GAP_MAX_BDNAME_LEN; - } - - if (bdname) { - memcpy(bdname, rmt_bdname, rmt_bdname_len); - bdname[rmt_bdname_len] = '\0'; - } - if (bdname_len) { - *bdname_len = rmt_bdname_len; - } - return true; - } - - return false; -} - -static void update_device_info(esp_bt_gap_cb_param_t *param) -{ - char bda_str[18]; - uint32_t cod = 0; - int32_t rssi = -129; /* invalid value */ - uint8_t *bdname = NULL; - uint8_t bdname_len = 0; - uint8_t *eir = NULL; - uint8_t eir_len = 0; - esp_bt_gap_dev_prop_t *p; - - ESP_LOGI(GAP_TAG, "Device found: %s", bda2str(param->disc_res.bda, bda_str, 18)); - for (int i = 0; i < param->disc_res.num_prop; i++) { - p = param->disc_res.prop + i; - switch (p->type) { - case ESP_BT_GAP_DEV_PROP_COD: - cod = *(uint32_t *)(p->val); - ESP_LOGI(GAP_TAG, "--Class of Device: 0x%"PRIx32, cod); - break; - case ESP_BT_GAP_DEV_PROP_RSSI: - rssi = *(int8_t *)(p->val); - ESP_LOGI(GAP_TAG, "--RSSI: %"PRId32, rssi); - break; - case ESP_BT_GAP_DEV_PROP_BDNAME: - bdname_len = (p->len > ESP_BT_GAP_MAX_BDNAME_LEN) ? ESP_BT_GAP_MAX_BDNAME_LEN : - (uint8_t)p->len; - bdname = (uint8_t *)(p->val); - break; - case ESP_BT_GAP_DEV_PROP_EIR: { - eir_len = p->len; - eir = (uint8_t *)(p->val); - break; - } - default: - break; - } - } - - /* search for device with Major device type "PHONE" or "Audio/Video" in COD */ - app_gap_cb_t *p_dev = &m_dev_info; - if (p_dev->dev_found) { - return; - } - - if (!esp_bt_gap_is_valid_cod(cod) || - (!(esp_bt_gap_get_cod_major_dev(cod) == ESP_BT_COD_MAJOR_DEV_PHONE) && - !(esp_bt_gap_get_cod_major_dev(cod) == ESP_BT_COD_MAJOR_DEV_AV))) { - return; - } - - memcpy(p_dev->bda, param->disc_res.bda, ESP_BD_ADDR_LEN); - p_dev->dev_found = true; - - p_dev->cod = cod; - p_dev->rssi = rssi; - if (bdname_len > 0) { - memcpy(p_dev->bdname, bdname, bdname_len); - p_dev->bdname[bdname_len] = '\0'; - p_dev->bdname_len = bdname_len; - } - if (eir_len > 0) { - memcpy(p_dev->eir, eir, eir_len); - p_dev->eir_len = eir_len; - } - - if (p_dev->bdname_len == 0) { - get_name_from_eir(p_dev->eir, p_dev->bdname, &p_dev->bdname_len); - } - - ESP_LOGI(GAP_TAG, "Found a target device, address %s, name %s", bda_str, p_dev->bdname); - p_dev->state = APP_GAP_STATE_DEVICE_DISCOVER_COMPLETE; - ESP_LOGI(GAP_TAG, "Cancel device discovery ..."); - esp_bt_gap_cancel_discovery(); -} - -static void bt_app_gap_init(void) -{ - app_gap_cb_t *p_dev = &m_dev_info; - memset(p_dev, 0, sizeof(app_gap_cb_t)); - - p_dev->state = APP_GAP_STATE_IDLE; -} - -static void bt_app_gap_cb(esp_bt_gap_cb_event_t event, esp_bt_gap_cb_param_t *param) -{ - app_gap_cb_t *p_dev = &m_dev_info; - char bda_str[18]; - char uuid_str[37]; - - switch (event) { - case ESP_BT_GAP_DISC_RES_EVT: { - update_device_info(param); - break; - } - case ESP_BT_GAP_DISC_STATE_CHANGED_EVT: { - if (param->disc_st_chg.state == ESP_BT_GAP_DISCOVERY_STOPPED) { - ESP_LOGI(GAP_TAG, "Device discovery stopped."); - if ( (p_dev->state == APP_GAP_STATE_DEVICE_DISCOVER_COMPLETE || - p_dev->state == APP_GAP_STATE_DEVICE_DISCOVERING) - && p_dev->dev_found) { - p_dev->state = APP_GAP_STATE_SERVICE_DISCOVERING; - ESP_LOGI(GAP_TAG, "Discover services ..."); - esp_bt_gap_get_remote_services(p_dev->bda); - } - } else if (param->disc_st_chg.state == ESP_BT_GAP_DISCOVERY_STARTED) { - ESP_LOGI(GAP_TAG, "Discovery started."); - } - break; - } - case ESP_BT_GAP_RMT_SRVCS_EVT: { - if (memcmp(param->rmt_srvcs.bda, p_dev->bda, ESP_BD_ADDR_LEN) == 0 && - p_dev->state == APP_GAP_STATE_SERVICE_DISCOVERING) { - p_dev->state = APP_GAP_STATE_SERVICE_DISCOVER_COMPLETE; - if (param->rmt_srvcs.stat == ESP_BT_STATUS_SUCCESS) { - ESP_LOGI(GAP_TAG, "Services for device %s found", bda2str(p_dev->bda, bda_str, 18)); - for (int i = 0; i < param->rmt_srvcs.num_uuids; i++) { - esp_bt_uuid_t *u = param->rmt_srvcs.uuid_list + i; - ESP_LOGI(GAP_TAG, "--%s", uuid2str(u, uuid_str, 37)); - } - } else { - ESP_LOGI(GAP_TAG, "Services for device %s not found", bda2str(p_dev->bda, bda_str, 18)); - } - } - break; - } - case ESP_BT_GAP_RMT_SRVC_REC_EVT: - default: { - ESP_LOGI(GAP_TAG, "event: %d", event); - break; - } - } - return; -} - -static void bt_app_gap_start_up(void) -{ - /* register GAP callback function */ - esp_bt_gap_register_callback(bt_app_gap_cb); - - char *dev_name = "ESP_GAP_INQRUIY"; - esp_bt_gap_set_device_name(dev_name); - - /* set discoverable and connectable mode, wait to be connected */ - esp_bt_gap_set_scan_mode(ESP_BT_CONNECTABLE, ESP_BT_GENERAL_DISCOVERABLE); - - /* initialize device information and status */ - bt_app_gap_init(); - - /* start to discover nearby Bluetooth devices */ - app_gap_cb_t *p_dev = &m_dev_info; - p_dev->state = APP_GAP_STATE_DEVICE_DISCOVERING; - esp_bt_gap_start_discovery(ESP_BT_INQ_MODE_GENERAL_INQUIRY, 10, 0); -} - -void app_main(void) -{ - /* Initialize NVS — it is used to store PHY calibration data and save key-value pairs in flash memory*/ - esp_err_t ret = nvs_flash_init(); - if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { - ESP_ERROR_CHECK(nvs_flash_erase()); - ret = nvs_flash_init(); - } - ESP_ERROR_CHECK( ret ); - - /* initialize TRANSPORT first */ - hosted_hci_bluedroid_open(); - - /* get HCI driver operations */ - esp_bluedroid_hci_driver_operations_t operations = { - .send = hosted_hci_bluedroid_send, - .check_send_available = hosted_hci_bluedroid_check_send_available, - .register_host_callback = hosted_hci_bluedroid_register_host_callback, - }; - esp_bluedroid_attach_hci_driver(&operations); - - if ((ret = esp_bluedroid_init()) != ESP_OK) { - ESP_LOGE(GAP_TAG, "%s initialize bluedroid failed: %s", __func__, esp_err_to_name(ret)); - return; - } - - if ((ret = esp_bluedroid_enable()) != ESP_OK) { - ESP_LOGE(GAP_TAG, "%s enable bluedroid failed: %s", __func__, esp_err_to_name(ret)); - return; - } - - bt_app_gap_start_up(); -} diff --git a/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/sdkconfig.defaults b/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/sdkconfig.defaults deleted file mode 100644 index 02095c4..0000000 --- a/resources/espressif__esp_hosted/examples/host_bluedroid_host_only/sdkconfig.defaults +++ /dev/null @@ -1,24 +0,0 @@ -# -# BT config -# - ESP32 co-processor only supports BLE 4.2 -# -CONFIG_BT_ENABLED=y -CONFIG_BT_CONTROLLER_DISABLED=y -CONFIG_BT_BLUEDROID_ENABLED=y -CONFIG_BT_CLASSIC_ENABLED=y -CONFIG_BT_BLE_50_FEATURES_SUPPORTED=n -CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y - -# -# Wi-Fi Remote -# - set ESP32 as default co-processor -# -CONFIG_ESP_WIFI_REMOTE_LIBRARY_HOSTED=y -CONFIG_SLAVE_IDF_TARGET_ESP32=y - -# -# Enable ESP Hosted BT -# Used as VHCI transport between BT Host and Controller -# -CONFIG_ESP_HOSTED_ENABLE_BT_BLUEDROID=y -CONFIG_ESP_HOSTED_BLUEDROID_HCI_VHCI= diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/CMakeLists.txt b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/CMakeLists.txt deleted file mode 100644 index 8ec77fa..0000000 --- a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -# The following lines of boilerplate have to be in your project's -# CMakeLists in this exact order for cmake to work correctly -cmake_minimum_required(VERSION 3.16) - -include($ENV{IDF_PATH}/tools/cmake/project.cmake) -# "Trim" the build. Include the minimal set of components, main, and anything it depends on. -idf_build_set_property(MINIMAL_BUILD ON) -project(bleprph_host_only) diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/README.md b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/README.md deleted file mode 100644 index 8874768..0000000 --- a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/README.md +++ /dev/null @@ -1,235 +0,0 @@ -| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-C61 | ESP32-H2 | ESP32-S3 | ESP32-P4 | ESP32-H2 | -| ----------------- | ----- | -------- | -------- | -------- | -------- | --------- | -------- | -------- | -------- | -------- | - -# BLE Peripheral Example - -This example uses the UART transport written by application itself. Refer the file [main/uart_driver.c](main/uart_driver.c). - -To write the custom transport in the application, the controller should be disabled and the default uart-transport should be disabled (when the controller is disabled, by default the uart-transport is selected). In order to compile the custom transport in the application, the default uart-transport should be disabled. Refer to the sdkconfig.defaults. - -As an example, the [BLE Peripheral Example Walkthrough](https://github.com/espressif/esp-hosted-mcu/blob/main/examples/host_nimble_bleprph_host_only_uart_hci/tutorial/bleprph_host_only_walkthrough.md) shows an ESP32-P4 connected to a ESP32 over UART. See the Walkthrough for information on hardware setup. - -For more information about the application, refer to the bleprph [README file](https://github.com/espressif/esp-idf/blob/master/examples/bluetooth/nimble/bleprph/README.md). -To test this demo, any BLE scanner app can be used. - -## How to Use Example - -### Project Configuration for Host -Before project configuration and build, be sure to set the correct chip target on both the host and co-processor using: - -```bash -idf.py set-target -``` - -### Project Configuration for Host - -Open the project configuration menu: - -```bash -idf.py menuconfig -``` - -In the `Component config-> Bluetooth` menu: - -* Select `controller` to Disabled. -* Disable `Nimble Options-> Host-controller Transport -> Enable Uart Transport`. - ->[!Important] -> Co-processor selection is done by wifi-remote. Ensure the correct co-processor chip is selected in `Component config` -> `Wi-Fi Remote` -> `choose slave target`. The target selected will affect the ESP-Hosted transport options and default GPIOs used. - -### Setup and Configuration for Co-processor - -On the co-processor, UART HCI setup is done through the Bluetooth Component kconfig settings. In menuconfig, select `Component config` -> `Bluetooth` -> `Controller Options` -> `HCI mode` or `HCI Config` and set it to `UART(H4)`. - -Depending on the selected co-processor, you can configure various UART parameters (Tx, Rx pins, hardware flow control, RTS, CTS pins, baudrate) through the Bluetooth Component. Other UART parameters not handled by the Bluetooth Component are configured by ESP-Hosted through `Example Configuration` -> `HCI UART Settings`. - -> [!NOTE] -> Make sure the UART GPIO pins selected do not conflict with the GPIO -> pins used for the selected ESP-Hosted transport. - -### Build and Flash - -Run `idf.py -p PORT flash monitor` to build, flash and monitor the project on both the host and co-processor. - -(To exit the serial monitor, type ``Ctrl-]``.) - -See the [Getting Started Guide](https://idf.espressif.com/) for full steps to configure and use ESP-IDF to build projects. - -## Example Output - -Console output when `host_nimble_bleprph_host_only_uart_hci` is running on ESP32-P4 and using ESP32 as the BT controller: - -``` -I (25) boot: ESP-IDF v5.5-dev-1868-g39f34a65a9-dirty 2nd stage bootloader -I (26) boot: compile time Feb 13 2025 17:15:22 -I (26) boot: Multicore bootloader -I (29) boot: chip revision: v1.0 -I (31) boot: efuse block revision: v0.1 -I (34) boot.esp32p4: SPI Speed : 80MHz -I (38) boot.esp32p4: SPI Mode : DIO -I (42) boot.esp32p4: SPI Flash Size : 2MB -I (46) boot: Enabling RNG early entropy source... -I (50) boot: Partition Table: -I (53) boot: ## Label Usage Type ST Offset Length -I (59) boot: 0 nvs WiFi data 01 02 00009000 00006000 -I (66) boot: 1 phy_init RF data 01 01 0000f000 00001000 -I (72) boot: 2 factory factory app 00 00 00010000 00100000 -I (80) boot: End of partition table -I (82) esp_image: segment 0: paddr=00010020 vaddr=40070020 size=252a0h (152224) map -I (116) esp_image: segment 1: paddr=000352c8 vaddr=30100000 size=00044h ( 68) load -I (118) esp_image: segment 2: paddr=00035314 vaddr=4ff00000 size=0ad04h ( 44292) load -I (130) esp_image: segment 3: paddr=00040020 vaddr=40000020 size=68930h (428336) map -I (202) esp_image: segment 4: paddr=000a8958 vaddr=4ff0ad04 size=069e0h ( 27104) load -I (209) esp_image: segment 5: paddr=000af340 vaddr=4ff11700 size=026d8h ( 9944) load -I (217) boot: Loaded app from partition at offset 0x10000 -I (217) boot: Disabling RNG early entropy source... -I (228) cpu_start: Multicore app -I (238) cpu_start: Pro cpu start user code -I (239) cpu_start: cpu freq: 360000000 Hz -I (239) app_init: Application information: -I (239) app_init: Project name: bleprph_host_only -I (243) app_init: App version: 6eaa9b1 -I (247) app_init: Compile time: Feb 13 2025 17:15:16 -I (252) app_init: ELF file SHA256: 8861453bb... -I (257) app_init: ESP-IDF: v5.5-dev-1868-g39f34a65a9-dirty -I (263) efuse_init: Min chip rev: v0.1 -I (266) efuse_init: Max chip rev: v1.99 -I (270) efuse_init: Chip rev: v1.0 -I (274) heap_init: Initializing. RAM available for dynamic allocation: -I (281) heap_init: At 4FF17130 len 00023E90 (143 KiB): RAM -I (286) heap_init: At 4FF3AFC0 len 00004BF0 (18 KiB): RAM -I (291) heap_init: At 4FF40000 len 00060000 (384 KiB): RAM -I (296) heap_init: At 50108080 len 00007F80 (31 KiB): RTCRAM -I (301) heap_init: At 30100044 len 00001FBC (7 KiB): TCM -I (307) spi_flash: detected chip: generic -I (310) spi_flash: flash io: dio -W (313) spi_flash: Detected size(16384k) larger than the size in the binary image header(2048k). Using the size in the binary image header. -I (326) host_init: ESP Hosted : Host chip_ip[18] -I (357) H_API: ESP-Hosted starting. Hosted_Tasks: prio:23, stack: 5120 RPC_task_stack: 5120 -sdio_mempool_create free:177280 min-free:177280 lfb-def:131072 lfb-8bit:131072 - -I (361) gpio: GPIO[18]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 -I (369) gpio: GPIO[19]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 -I (378) gpio: GPIO[14]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 -I (386) gpio: GPIO[15]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 -I (394) gpio: GPIO[16]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 -I (403) gpio: GPIO[17]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 -I (411) H_API: ** add_esp_wifi_remote_channels ** -I (415) transport: Add ESP-Hosted channel IF[1]: S[0] Tx[0x4000f988] Rx[0x4001ddee] ---- 0x4000f988: transport_drv_sta_tx at /home/kysoh/projects/gitlab_esp_hosted_mcu/examples/host_nimble_bleprph_host_only_uart_hci/components/esp_hosted/host/drivers/transport/transport_drv.c:208 -0x4001ddee: esp_wifi_remote_channel_rx at /home/kysoh/projects/gitlab_esp_hosted_mcu/examples/host_nimble_bleprph_host_only_uart_hci/managed_components/espressif__esp_wifi_remote/esp_wifi_remote_net.c:19 - -I (423) transport: Add ESP-Hosted channel IF[2]: S[0] Tx[0x4000f8d0] Rx[0x4001ddee] ---- 0x4000f8d0: transport_drv_ap_tx at /home/kysoh/projects/gitlab_esp_hosted_mcu/examples/host_nimble_bleprph_host_only_uart_hci/components/esp_hosted/host/drivers/transport/transport_drv.c:238 -0x4001ddee: esp_wifi_remote_channel_rx at /home/kysoh/projects/gitlab_esp_hosted_mcu/examples/host_nimble_bleprph_host_only_uart_hci/managed_components/espressif__esp_wifi_remote/esp_wifi_remote_net.c:19 - -I (431) main_task: Started on CPU0 -I (441) main_task: Calling app_main() -I (451) NimBLE_BLE_PRPH: BLE Host Task Started -I (451) uart: queue free spaces: 8 -I (471) NimBLE: GAP procedure initiated: stop advertising. - -�I (501) main_task: Returned from app_main() -I (501) NimBLE: ogf=0x08, ocf=0x004e, hci_err=0x201 : BLE_ERR_UNKNOWN_HCI_CMD (Unknown HCI Command) - -I (501) NimBLE: Device Address: -I (511) NimBLE: 10:97:bd:d5:8a:62 -I (511) NimBLE: - -I (521) NimBLE: GAP procedure initiated: advertise; -I (521) NimBLE: disc_mode=2 -I (521) NimBLE: adv_channel_map=0 own_addr_type=0 adv_filter_policy=0 adv_itvl_min=0 adv_itvl_max=0 -I (531) NimBLE: -``` - -Console output on ESP32 as the BT controller: - -``` -I (29) boot: ESP-IDF v5.5-dev-1868-g39f34a65a9-dirty 2nd stage bootloader -I (29) boot: compile time Feb 13 2025 17:15:30 -I (29) boot: Multicore bootloader -I (33) boot: chip revision: v3.0 -I (36) boot.esp32: SPI Speed : 40MHz -I (39) boot.esp32: SPI Mode : DIO -I (43) boot.esp32: SPI Flash Size : 4MB -I (46) boot: Enabling RNG early entropy source... -I (51) boot: Partition Table: -I (53) boot: ## Label Usage Type ST Offset Length -I (60) boot: 0 nvs WiFi data 01 02 00009000 00004000 -I (66) boot: 1 otadata OTA data 01 00 0000d000 00002000 -I (73) boot: 2 phy_init RF data 01 01 0000f000 00001000 -I (79) boot: 3 ota_0 OTA app 00 10 00010000 001c0000 -I (86) boot: 4 ota_1 OTA app 00 11 001d0000 001c0000 -I (92) boot: End of partition table -I (96) boot: No factory image, trying OTA 0 -I (100) esp_image: segment 0: paddr=00010020 vaddr=3f400020 size=285e0h (165344) map -I (164) esp_image: segment 1: paddr=00038608 vaddr=3ff80000 size=0001ch ( 28) load -I (164) esp_image: segment 2: paddr=0003862c vaddr=3ffbdb60 size=05da4h ( 23972) load -I (176) esp_image: segment 3: paddr=0003e3d8 vaddr=40080000 size=01c40h ( 7232) load -I (180) esp_image: segment 4: paddr=00040020 vaddr=400d0020 size=9c69ch (640668) map -I (401) esp_image: segment 5: paddr=000dc6c4 vaddr=40081c40 size=1dc1ch (121884) load -I (465) boot: Loaded app from partition at offset 0x10000 -I (503) boot: Set actual ota_seq=1 in otadata[0] -I (503) boot: Disabling RNG early entropy source... -I (513) cpu_start: Multicore app -I (521) cpu_start: Pro cpu start user code -I (521) cpu_start: cpu freq: 240000000 Hz -I (521) app_init: Application information: -I (521) app_init: Project name: network_adapter -I (526) app_init: App version: 6eaa9b1 -I (530) app_init: Compile time: Feb 13 2025 17:15:24 -I (535) app_init: ELF file SHA256: b3b6ed47b... -I (539) app_init: ESP-IDF: v5.5-dev-1868-g39f34a65a9-dirty -I (545) efuse_init: Min chip rev: v0.0 -I (549) efuse_init: Max chip rev: v3.99 -I (553) efuse_init: Chip rev: v3.0 -I (557) heap_init: Initializing. RAM available for dynamic allocation: -I (563) heap_init: At 3FFAFF10 len 000000F0 (0 KiB): DRAM -I (568) heap_init: At 3FFB6388 len 00001C78 (7 KiB): DRAM -I (573) heap_init: At 3FFB9A20 len 00004108 (16 KiB): DRAM -I (578) heap_init: At 3FFC8F18 len 000170E8 (92 KiB): DRAM -I (584) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM -I (589) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM -I (594) heap_init: At 4009F85C len 000007A4 (1 KiB): IRAM -I (601) spi_flash: detected chip: generic -I (603) spi_flash: flash io: dio -W (606) spi_flash: Detected size(8192k) larger than the size in the binary image header(4096k). Using the size in the binary image header. -I (620) coexist: coex firmware version: e727207 -I (624) main_task: Started on CPU0 -I (626) main_task: Calling app_main() -I (628) fg_mcu_slave: ********************************************************************* -I (634) fg_mcu_slave: ESP-Hosted-MCU Slave FW version :: 1.1.3 - -I (642) fg_mcu_slave: Transport used :: SPI + UART -I (648) fg_mcu_slave: ********************************************************************* -I (654) fg_mcu_slave: Supported features are: -I (656) fg_mcu_slave: - WLAN over SPI -I (660) h_bt: - BT/BLE -I (662) h_bt: - HCI Over UART -I (664) h_bt: - BT/BLE dual mode -I (666) fg_mcu_slave: capabilities: 0xba -I (670) fg_mcu_slave: Supported extended features are: -I (674) h_bt: - BT/BLE (extended) -I (676) fg_mcu_slave: extended capabilities: 0x0 -I (686) h_bt: ESP Bluetooth MAC addr: 10:97:bd:d5:8a:62 -I (686) bt_uart: UART1 Pins: TX 5, RX 18, RTS 19, CTS 23 Baudrate:921600 -I (688) BTDM_INIT: BT controller compile version [194dd63] -I (694) BTDM_INIT: Bluetooth MAC: 10:97:bd:d5:8a:62 -I (698) phy_init: phy_version 4840,02e0d70,Sep 2 2024,19:39:07 -I (1006) SPI_DRIVER: Using SPI interface -I (1008) gpio: GPIO[26]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 -I (1008) gpio: GPIO[4]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 -I (1014) SPI_DRIVER: SPI Ctrl:1 mode: 2, Freq:ConfigAtHost -GPIOs: MOSI: 13, MISO: 12, CS: 15, CLK: 14 HS: 26 DR: 4 - -I (1022) SPI_DRIVER: Hosted SPI queue size: Tx:10 Rx:10 -I (1026) gpio: GPIO[15]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 -I (1032) gpio: GPIO[15]| InputEn: 1| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 -I (1042) SPI_DRIVER: Slave chip Id[12] -I (1042) fg_mcu_slave: Initial set up done -I (1046) slave_ctrl: event ESPInit -``` - -## Troubleshooting - -For any technical queries, please open an [issue](https://github.com/espressif/esp-hosted-mcu/issues) on GitHub. We will get back to you soon. diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/CMakeLists.txt b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/CMakeLists.txt deleted file mode 100644 index d730ef9..0000000 --- a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/CMakeLists.txt +++ /dev/null @@ -1,6 +0,0 @@ -set(srcs "main.c" - "gatt_svr.c" - "uart_driver.c") - -idf_component_register(SRCS "${srcs}" - INCLUDE_DIRS ".") diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/Kconfig.projbuild b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/Kconfig.projbuild deleted file mode 100644 index a516012..0000000 --- a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/Kconfig.projbuild +++ /dev/null @@ -1,144 +0,0 @@ -menu "Example Configuration" - - menu "Uart Configuration" - - config EXAMPLE_HCI_UART_BAUDRATE - int "UART Baudrate for HCI" - range 115200 921600 - default 921600 - help - UART Baudrate for HCI. Please use standard baudrate. - - config EXAMPLE_HCI_UART_TX_PIN - int "UART Tx Pin" - default 24 if IDF_TARGET_ESP32P4 - default 4 - help - UART HCI Tx pin - - config EXAMPLE_HCI_UART_RX_PIN - int "UART Rx Pin" - default 33 if IDF_TARGET_ESP32P4 - default 5 - help - UART HCI Rx pin - - choice EXAMPLE_USE_HCI_UART_FLOW_CTRL - prompt "Uart Flow Control" - default EXAMPLE_UART_HW_FLOWCTRL_DISABLE - help - Uart Flow Control - - config EXAMPLE_UART_HW_FLOWCTRL_DISABLE - bool "Disable" - config EXAMPLE_UART_HW_FLOWCTRL_CTS_RTS - bool "Enable hardware flow control" - endchoice - - config EXAMPLE_HCI_UART_FLOW_CTRL - int - default 0 if EXAMPLE_UART_HW_FLOWCTRL_DISABLE - default 3 if EXAMPLE_UART_HW_FLOWCTRL_CTS_RTS - - config EXAMPLE_HCI_UART_RTS_PIN - int "UART Rts Pin" - default 20 if IDF_TARGET_ESP32P4 - default 19 - help - UART HCI RTS pin - - config EXAMPLE_HCI_UART_CTS_PIN - int "UART Cts Pin" - default 21 if IDF_TARGET_ESP32P4 - default 23 - help - UART HCI CTS pin - - config EXAMPLE_HCI_UART_INVERT_RTS - depends on EXAMPLE_UART_HW_FLOWCTRL_CTS_RTS - bool "Invert RTS Signal" - default y if SLAVE_IDF_TARGET_ESP32 || SLAVE_IDF_TARGET_ESP32S3 || SLAVE_IDF_TARGET_ESP32C3 - default n - help - RTS signal may need to be inverted to work with some ESP chips (ESP32, ESP32-C3, ESP32-S3) - - endmenu - - choice EXAMPLE_USE_IO_TYPE - prompt "I/O Capability" - default BLE_SM_IO_CAP_NO_IO - help - I/O capability of device. - - config BLE_SM_IO_CAP_DISP_ONLY - bool "DISPLAY ONLY" - config BLE_SM_IO_CAP_DISP_YES_NO - bool "DISPLAY YESNO" - config BLE_SM_IO_CAP_KEYBOARD_ONLY - bool "KEYBOARD ONLY" - config BLE_SM_IO_CAP_NO_IO - bool "Just works" - config BLE_SM_IO_CAP_KEYBOARD_DISP - bool "Both KEYBOARD & DISPLAY" - endchoice - - config EXAMPLE_IO_TYPE - int - default 0 if BLE_SM_IO_CAP_DISP_ONLY - default 1 if BLE_SM_IO_CAP_DISP_YES_NO - default 2 if BLE_SM_IO_CAP_KEYBOARD_ONLY - default 3 if BLE_SM_IO_CAP_NO_IO - default 4 if BLE_SM_IO_CAP_KEYBOARD_DISP - - config EXAMPLE_BONDING - bool - default n - prompt "Use Bonding" - help - Use this option to enable/disable bonding. - - config EXAMPLE_MITM - bool - default n - prompt "MITM security" - help - Use this option to enable/disable MITM security. - - config EXAMPLE_USE_SC - bool - depends on BT_NIMBLE_SM_SC - default n - prompt "Use Secure Connection feature" - help - Use this option to enable/disable Security Manager Secure Connection 4.2 feature. - - config EXAMPLE_EXTENDED_ADV - bool - depends on SOC_BLE_50_SUPPORTED && BT_NIMBLE_50_FEATURE_SUPPORT - default y if SOC_ESP_NIMBLE_CONTROLLER - select BT_NIMBLE_EXT_ADV - prompt "Enable Extended Adv" - help - Use this option to enable extended advertising in the example. - If this option is disabled, ensure config BT_NIMBLE_EXT_ADV is - also disabled from Nimble stack menuconfig - - config EXAMPLE_RANDOM_ADDR - bool - prompt "Advertise RANDOM Address" - help - Use this option to advertise a random address instead of public address - - config EXAMPLE_ENCRYPTION - bool - prompt "Enable Link Encryption" - help - This adds Encrypted Read and Write permissions in the custom GATT server. - - config EXAMPLE_RESOLVE_PEER_ADDR - bool - prompt "Enable resolving peer address" - help - Use this option to enable resolving peer's address. - -endmenu diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/bleprph.h b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/bleprph.h deleted file mode 100644 index 9191274..0000000 --- a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/bleprph.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ -#ifndef H_BLEPRPH_ -#define H_BLEPRPH_ - -#include -#include "nimble/ble.h" -#include "modlog/modlog.h" -#include "esp_peripheral.h" -#ifdef __cplusplus -extern "C" { -#endif - -struct ble_hs_cfg; -struct ble_gatt_register_ctxt; - -/** GATT server. */ -#define GATT_SVR_SVC_ALERT_UUID 0x1811 -#define GATT_SVR_CHR_SUP_NEW_ALERT_CAT_UUID 0x2A47 -#define GATT_SVR_CHR_NEW_ALERT 0x2A46 -#define GATT_SVR_CHR_SUP_UNR_ALERT_CAT_UUID 0x2A48 -#define GATT_SVR_CHR_UNR_ALERT_STAT_UUID 0x2A45 -#define GATT_SVR_CHR_ALERT_NOT_CTRL_PT 0x2A44 - -void gatt_svr_register_cb(struct ble_gatt_register_ctxt *ctxt, void *arg); -int gatt_svr_init(void); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/gatt_svr.c b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/gatt_svr.c deleted file mode 100644 index 8a9d8b0..0000000 --- a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/gatt_svr.c +++ /dev/null @@ -1,247 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ -#include -#include -#include -#include "host/ble_hs.h" -#include "host/ble_uuid.h" -#include "services/gap/ble_svc_gap.h" -#include "services/gatt/ble_svc_gatt.h" -#include "bleprph.h" -#include "services/ans/ble_svc_ans.h" - -/*** Maximum number of characteristics with the notify flag ***/ -#define MAX_NOTIFY 5 - -static const ble_uuid128_t gatt_svr_svc_uuid = - BLE_UUID128_INIT(0x2d, 0x71, 0xa2, 0x59, 0xb4, 0x58, 0xc8, 0x12, - 0x99, 0x99, 0x43, 0x95, 0x12, 0x2f, 0x46, 0x59); - -/* A characteristic that can be subscribed to */ -static uint8_t gatt_svr_chr_val; -static uint16_t gatt_svr_chr_val_handle; -static const ble_uuid128_t gatt_svr_chr_uuid = - BLE_UUID128_INIT(0x00, 0x00, 0x00, 0x00, 0x11, 0x11, 0x11, 0x11, - 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33); - -/* A custom descriptor */ -static uint8_t gatt_svr_dsc_val; -static const ble_uuid128_t gatt_svr_dsc_uuid = - BLE_UUID128_INIT(0x01, 0x01, 0x01, 0x01, 0x12, 0x12, 0x12, 0x12, - 0x23, 0x23, 0x23, 0x23, 0x34, 0x34, 0x34, 0x34); - -static int -gatt_svc_access(uint16_t conn_handle, uint16_t attr_handle, - struct ble_gatt_access_ctxt *ctxt, - void *arg); - -static const struct ble_gatt_svc_def gatt_svr_svcs[] = { - { - /*** Service ***/ - .type = BLE_GATT_SVC_TYPE_PRIMARY, - .uuid = &gatt_svr_svc_uuid.u, - .characteristics = (struct ble_gatt_chr_def[]) - { { - /*** This characteristic can be subscribed to by writing 0x00 and 0x01 to the CCCD ***/ - .uuid = &gatt_svr_chr_uuid.u, - .access_cb = gatt_svc_access, -#if CONFIG_EXAMPLE_ENCRYPTION - .flags = BLE_GATT_CHR_F_READ | BLE_GATT_CHR_F_WRITE | - BLE_GATT_CHR_F_READ_ENC | BLE_GATT_CHR_F_WRITE_ENC | - BLE_GATT_CHR_F_NOTIFY | BLE_GATT_CHR_F_INDICATE, -#else - .flags = BLE_GATT_CHR_F_READ | BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_NOTIFY | BLE_GATT_CHR_F_INDICATE, -#endif - .val_handle = &gatt_svr_chr_val_handle, - .descriptors = (struct ble_gatt_dsc_def[]) - { { - .uuid = &gatt_svr_dsc_uuid.u, -#if CONFIG_EXAMPLE_ENCRYPTION - .att_flags = BLE_ATT_F_READ | BLE_ATT_F_READ_ENC, -#else - .att_flags = BLE_ATT_F_READ, -#endif - .access_cb = gatt_svc_access, - }, { - 0, /* No more descriptors in this characteristic */ - } - }, - }, { - 0, /* No more characteristics in this service. */ - } - }, - }, - - { - 0, /* No more services. */ - }, -}; - -static int -gatt_svr_write(struct os_mbuf *om, uint16_t min_len, uint16_t max_len, - void *dst, uint16_t *len) -{ - uint16_t om_len; - int rc; - - om_len = OS_MBUF_PKTLEN(om); - if (om_len < min_len || om_len > max_len) { - return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; - } - - rc = ble_hs_mbuf_to_flat(om, dst, max_len, len); - if (rc != 0) { - return BLE_ATT_ERR_UNLIKELY; - } - - return 0; -} - -/** - * Access callback whenever a characteristic/descriptor is read or written to. - * Here reads and writes need to be handled. - * ctxt->op tells weather the operation is read or write and - * weather it is on a characteristic or descriptor, - * ctxt->dsc->uuid tells which characteristic/descriptor is accessed. - * attr_handle give the value handle of the attribute being accessed. - * Accordingly do: - * Append the value to ctxt->om if the operation is READ - * Write ctxt->om to the value if the operation is WRITE - **/ -static int -gatt_svc_access(uint16_t conn_handle, uint16_t attr_handle, - struct ble_gatt_access_ctxt *ctxt, void *arg) -{ - const ble_uuid_t *uuid; - int rc; - - switch (ctxt->op) { - case BLE_GATT_ACCESS_OP_READ_CHR: - if (conn_handle != BLE_HS_CONN_HANDLE_NONE) { - MODLOG_DFLT(INFO, "Characteristic read; conn_handle=%d attr_handle=%d\n", - conn_handle, attr_handle); - } else { - MODLOG_DFLT(INFO, "Characteristic read by NimBLE stack; attr_handle=%d\n", - attr_handle); - } - uuid = ctxt->chr->uuid; - if (attr_handle == gatt_svr_chr_val_handle) { - rc = os_mbuf_append(ctxt->om, - &gatt_svr_chr_val, - sizeof(gatt_svr_chr_val)); - return rc == 0 ? 0 : BLE_ATT_ERR_INSUFFICIENT_RES; - } - goto unknown; - - case BLE_GATT_ACCESS_OP_WRITE_CHR: - if (conn_handle != BLE_HS_CONN_HANDLE_NONE) { - MODLOG_DFLT(INFO, "Characteristic write; conn_handle=%d attr_handle=%d", - conn_handle, attr_handle); - } else { - MODLOG_DFLT(INFO, "Characteristic write by NimBLE stack; attr_handle=%d", - attr_handle); - } - uuid = ctxt->chr->uuid; - if (attr_handle == gatt_svr_chr_val_handle) { - rc = gatt_svr_write(ctxt->om, - sizeof(gatt_svr_chr_val), - sizeof(gatt_svr_chr_val), - &gatt_svr_chr_val, NULL); - ble_gatts_chr_updated(attr_handle); - MODLOG_DFLT(INFO, "Notification/Indication scheduled for " - "all subscribed peers.\n"); - return rc; - } - goto unknown; - - case BLE_GATT_ACCESS_OP_READ_DSC: - if (conn_handle != BLE_HS_CONN_HANDLE_NONE) { - MODLOG_DFLT(INFO, "Descriptor read; conn_handle=%d attr_handle=%d\n", - conn_handle, attr_handle); - } else { - MODLOG_DFLT(INFO, "Descriptor read by NimBLE stack; attr_handle=%d\n", - attr_handle); - } - uuid = ctxt->dsc->uuid; - if (ble_uuid_cmp(uuid, &gatt_svr_dsc_uuid.u) == 0) { - rc = os_mbuf_append(ctxt->om, - &gatt_svr_dsc_val, - sizeof(gatt_svr_chr_val)); - return rc == 0 ? 0 : BLE_ATT_ERR_INSUFFICIENT_RES; - } - goto unknown; - - case BLE_GATT_ACCESS_OP_WRITE_DSC: - goto unknown; - - default: - goto unknown; - } - -unknown: - /* Unknown characteristic/descriptor; - * The NimBLE host should not have called this function; - */ - assert(0); - return BLE_ATT_ERR_UNLIKELY; -} - -void -gatt_svr_register_cb(struct ble_gatt_register_ctxt *ctxt, void *arg) -{ - char buf[BLE_UUID_STR_LEN]; - - switch (ctxt->op) { - case BLE_GATT_REGISTER_OP_SVC: - MODLOG_DFLT(DEBUG, "registered service %s with handle=%d\n", - ble_uuid_to_str(ctxt->svc.svc_def->uuid, buf), - ctxt->svc.handle); - break; - - case BLE_GATT_REGISTER_OP_CHR: - MODLOG_DFLT(DEBUG, "registering characteristic %s with " - "def_handle=%d val_handle=%d\n", - ble_uuid_to_str(ctxt->chr.chr_def->uuid, buf), - ctxt->chr.def_handle, - ctxt->chr.val_handle); - break; - - case BLE_GATT_REGISTER_OP_DSC: - MODLOG_DFLT(DEBUG, "registering descriptor %s with handle=%d\n", - ble_uuid_to_str(ctxt->dsc.dsc_def->uuid, buf), - ctxt->dsc.handle); - break; - - default: - assert(0); - break; - } -} - -int -gatt_svr_init(void) -{ - int rc; - - ble_svc_gap_init(); - ble_svc_gatt_init(); - ble_svc_ans_init(); - - rc = ble_gatts_count_cfg(gatt_svr_svcs); - if (rc != 0) { - return rc; - } - - rc = ble_gatts_add_svcs(gatt_svr_svcs); - if (rc != 0) { - return rc; - } - - /* Setting a value for the read-only descriptor */ - gatt_svr_dsc_val = 0x99; - - return 0; -} diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/idf_component.yml b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/idf_component.yml deleted file mode 100644 index 2395bfe..0000000 --- a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/idf_component.yml +++ /dev/null @@ -1,11 +0,0 @@ -dependencies: - espressif/esp_hosted: - rules: - - if: target in [esp32p4, esp32h2] - version: ~2 - espressif/esp_wifi_remote: - rules: - - if: target in [esp32p4, esp32h2] - version: '>=0.10' - nimble_peripheral_utils: - path: ${IDF_PATH}/examples/bluetooth/nimble/common/nimble_peripheral_utils diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/main.c b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/main.c deleted file mode 100644 index 277c035..0000000 --- a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/main.c +++ /dev/null @@ -1,548 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#include "esp_log.h" -#include "nvs_flash.h" -/* BLE */ -#include "nimble/nimble_port.h" -#include "nimble/nimble_port_freertos.h" -#include "host/ble_hs.h" -#include "host/util/util.h" -#include "console/console.h" -#include "services/gap/ble_svc_gap.h" -#include "bleprph.h" -#include "uart_driver.h" - -#if CONFIG_EXAMPLE_EXTENDED_ADV -static uint8_t ext_adv_pattern_1[] = { - 0x02, 0x01, 0x06, - 0x03, 0x03, 0xab, 0xcd, - 0x03, 0x03, 0x18, 0x11, - 0x11, 0X09, 'n', 'i', 'm', 'b', 'l', 'e', '-', 'b', 'l', 'e', 'p', 'r', 'p', 'h', '-', 'e', -}; -#endif - -static const char *tag = "NimBLE_BLE_PRPH"; -static int bleprph_gap_event(struct ble_gap_event *event, void *arg); -#if CONFIG_EXAMPLE_RANDOM_ADDR -static uint8_t own_addr_type = BLE_OWN_ADDR_RANDOM; -#else -static uint8_t own_addr_type; -#endif - -void ble_store_config_init(void); - -/** - * Logs information about a connection to the console. - */ -static void -bleprph_print_conn_desc(struct ble_gap_conn_desc *desc) -{ - MODLOG_DFLT(INFO, "handle=%d our_ota_addr_type=%d our_ota_addr=", - desc->conn_handle, desc->our_ota_addr.type); - print_addr(desc->our_ota_addr.val); - MODLOG_DFLT(INFO, " our_id_addr_type=%d our_id_addr=", - desc->our_id_addr.type); - print_addr(desc->our_id_addr.val); - MODLOG_DFLT(INFO, " peer_ota_addr_type=%d peer_ota_addr=", - desc->peer_ota_addr.type); - print_addr(desc->peer_ota_addr.val); - MODLOG_DFLT(INFO, " peer_id_addr_type=%d peer_id_addr=", - desc->peer_id_addr.type); - print_addr(desc->peer_id_addr.val); - MODLOG_DFLT(INFO, " conn_itvl=%d conn_latency=%d supervision_timeout=%d " - "encrypted=%d authenticated=%d bonded=%d\n", - desc->conn_itvl, desc->conn_latency, - desc->supervision_timeout, - desc->sec_state.encrypted, - desc->sec_state.authenticated, - desc->sec_state.bonded); -} - -#if CONFIG_EXAMPLE_EXTENDED_ADV -/** - * Enables advertising with the following parameters: - * o General discoverable mode. - * o Undirected connectable mode. - */ -static void -ext_bleprph_advertise(void) -{ - struct ble_gap_ext_adv_params params; - struct os_mbuf *data; - uint8_t instance = 0; - int rc; - - /* First check if any instance is already active */ - if(ble_gap_ext_adv_active(instance)) { - return; - } - - /* use defaults for non-set params */ - memset (¶ms, 0, sizeof(params)); - - /* enable connectable advertising */ - params.connectable = 1; - - /* advertise using random addr */ - params.own_addr_type = BLE_OWN_ADDR_PUBLIC; - - params.primary_phy = BLE_HCI_LE_PHY_1M; - params.secondary_phy = BLE_HCI_LE_PHY_2M; - //params.tx_power = 127; - params.sid = 1; - - params.itvl_min = BLE_GAP_ADV_FAST_INTERVAL1_MIN; - params.itvl_max = BLE_GAP_ADV_FAST_INTERVAL1_MIN; - - /* configure instance 0 */ - rc = ble_gap_ext_adv_configure(instance, ¶ms, NULL, - bleprph_gap_event, NULL); - assert (rc == 0); - - /* in this case only scan response is allowed */ - - /* get mbuf for scan rsp data */ - data = os_msys_get_pkthdr(sizeof(ext_adv_pattern_1), 0); - assert(data); - - /* fill mbuf with scan rsp data */ - rc = os_mbuf_append(data, ext_adv_pattern_1, sizeof(ext_adv_pattern_1)); - assert(rc == 0); - - rc = ble_gap_ext_adv_set_data(instance, data); - assert (rc == 0); - - /* start advertising */ - rc = ble_gap_ext_adv_start(instance, 0, 0); - assert (rc == 0); -} -#else -/** - * Enables advertising with the following parameters: - * o General discoverable mode. - * o Undirected connectable mode. - */ -static void -bleprph_advertise(void) -{ - struct ble_gap_adv_params adv_params; - struct ble_hs_adv_fields fields; - const char *name; - int rc; - - /** - * Set the advertisement data included in our advertisements: - * o Flags (indicates advertisement type and other general info). - * o Advertising tx power. - * o Device name. - * o 16-bit service UUIDs (alert notifications). - */ - - memset(&fields, 0, sizeof fields); - - /* Advertise two flags: - * o Discoverability in forthcoming advertisement (general) - * o BLE-only (BR/EDR unsupported). - */ - fields.flags = BLE_HS_ADV_F_DISC_GEN | - BLE_HS_ADV_F_BREDR_UNSUP; - - /* Indicate that the TX power level field should be included; have the - * stack fill this value automatically. This is done by assigning the - * special value BLE_HS_ADV_TX_PWR_LVL_AUTO. - */ - fields.tx_pwr_lvl_is_present = 1; - fields.tx_pwr_lvl = BLE_HS_ADV_TX_PWR_LVL_AUTO; - - name = ble_svc_gap_device_name(); - fields.name = (uint8_t *)name; - fields.name_len = strlen(name); - fields.name_is_complete = 1; - - fields.uuids16 = (ble_uuid16_t[]) { - BLE_UUID16_INIT(GATT_SVR_SVC_ALERT_UUID) - }; - fields.num_uuids16 = 1; - fields.uuids16_is_complete = 1; - - rc = ble_gap_adv_set_fields(&fields); - if (rc != 0) { - MODLOG_DFLT(ERROR, "error setting advertisement data; rc=%d\n", rc); - return; - } - - /* Begin advertising. */ - memset(&adv_params, 0, sizeof adv_params); - adv_params.conn_mode = BLE_GAP_CONN_MODE_UND; - adv_params.disc_mode = BLE_GAP_DISC_MODE_GEN; - rc = ble_gap_adv_start(own_addr_type, NULL, BLE_HS_FOREVER, - &adv_params, bleprph_gap_event, NULL); - if (rc != 0) { - MODLOG_DFLT(ERROR, "error enabling advertisement; rc=%d\n", rc); - return; - } -} -#endif - -#if MYNEWT_VAL(BLE_POWER_CONTROL) -static void bleprph_power_control(uint16_t conn_handle) -{ - int rc; - - rc = ble_gap_read_remote_transmit_power_level(conn_handle, 0x01 ); // Attempting on LE 1M phy - assert (rc == 0); - - rc = ble_gap_set_transmit_power_reporting_enable(conn_handle, 0x1, 0x1); - assert (rc == 0); -} -#endif - -/** - * The nimble host executes this callback when a GAP event occurs. The - * application associates a GAP event callback with each connection that forms. - * bleprph uses the same callback for all connections. - * - * @param event The type of event being signalled. - * @param ctxt Various information pertaining to the event. - * @param arg Application-specified argument; unused by - * bleprph. - * - * @return 0 if the application successfully handled the - * event; nonzero on failure. The semantics - * of the return code is specific to the - * particular GAP event being signalled. - */ -static int -bleprph_gap_event(struct ble_gap_event *event, void *arg) -{ - struct ble_gap_conn_desc desc; - int rc; - - switch (event->type) { - case BLE_GAP_EVENT_LINK_ESTAB: - /* A new connection was established or a connection attempt failed. */ - MODLOG_DFLT(INFO, "connection %s; status=%d ", - event->link_estab.status == 0 ? "established" : "failed", - event->link_estab.status); - if (event->link_estab.status == 0) { - rc = ble_gap_conn_find(event->link_estab.conn_handle, &desc); - assert(rc == 0); - bleprph_print_conn_desc(&desc); - } - MODLOG_DFLT(INFO, "\n"); - - if (event->link_estab.status != 0) { - /* Connection failed; resume advertising. */ -#if CONFIG_EXAMPLE_EXTENDED_ADV - ext_bleprph_advertise(); -#else - bleprph_advertise(); -#endif - } - -#if MYNEWT_VAL(BLE_POWER_CONTROL) - bleprph_power_control(event->link_estab.conn_handle); -#endif - return 0; - - case BLE_GAP_EVENT_DISCONNECT: - MODLOG_DFLT(INFO, "disconnect; reason=%d ", event->disconnect.reason); - bleprph_print_conn_desc(&event->disconnect.conn); - MODLOG_DFLT(INFO, "\n"); - - /* Connection terminated; resume advertising. */ -#if CONFIG_EXAMPLE_EXTENDED_ADV - ext_bleprph_advertise(); -#else - bleprph_advertise(); -#endif - return 0; - - case BLE_GAP_EVENT_CONN_UPDATE: - /* The central has updated the connection parameters. */ - MODLOG_DFLT(INFO, "connection updated; status=%d ", - event->conn_update.status); - rc = ble_gap_conn_find(event->conn_update.conn_handle, &desc); - assert(rc == 0); - bleprph_print_conn_desc(&desc); - MODLOG_DFLT(INFO, "\n"); - return 0; - - case BLE_GAP_EVENT_ADV_COMPLETE: - MODLOG_DFLT(INFO, "advertise complete; reason=%d", - event->adv_complete.reason); -#if CONFIG_EXAMPLE_EXTENDED_ADV - ext_bleprph_advertise(); -#else - bleprph_advertise(); -#endif - return 0; - - case BLE_GAP_EVENT_ENC_CHANGE: - /* Encryption has been enabled or disabled for this connection. */ - MODLOG_DFLT(INFO, "encryption change event; status=%d ", - event->enc_change.status); - rc = ble_gap_conn_find(event->enc_change.conn_handle, &desc); - assert(rc == 0); - bleprph_print_conn_desc(&desc); - MODLOG_DFLT(INFO, "\n"); - return 0; - - case BLE_GAP_EVENT_NOTIFY_TX: - MODLOG_DFLT(INFO, "notify_tx event; conn_handle=%d attr_handle=%d " - "status=%d is_indication=%d", - event->notify_tx.conn_handle, - event->notify_tx.attr_handle, - event->notify_tx.status, - event->notify_tx.indication); - return 0; - - case BLE_GAP_EVENT_SUBSCRIBE: - MODLOG_DFLT(INFO, "subscribe event; conn_handle=%d attr_handle=%d " - "reason=%d prevn=%d curn=%d previ=%d curi=%d\n", - event->subscribe.conn_handle, - event->subscribe.attr_handle, - event->subscribe.reason, - event->subscribe.prev_notify, - event->subscribe.cur_notify, - event->subscribe.prev_indicate, - event->subscribe.cur_indicate); - return 0; - - case BLE_GAP_EVENT_MTU: - MODLOG_DFLT(INFO, "mtu update event; conn_handle=%d cid=%d mtu=%d\n", - event->mtu.conn_handle, - event->mtu.channel_id, - event->mtu.value); - return 0; - - case BLE_GAP_EVENT_REPEAT_PAIRING: - /* We already have a bond with the peer, but it is attempting to - * establish a new secure link. This app sacrifices security for - * convenience: just throw away the old bond and accept the new link. - */ - - /* Delete the old bond. */ - rc = ble_gap_conn_find(event->repeat_pairing.conn_handle, &desc); - assert(rc == 0); - ble_store_util_delete_peer(&desc.peer_id_addr); - - /* Return BLE_GAP_REPEAT_PAIRING_RETRY to indicate that the host should - * continue with the pairing operation. - */ - return BLE_GAP_REPEAT_PAIRING_RETRY; - - case BLE_GAP_EVENT_PASSKEY_ACTION: - ESP_LOGI(tag, "PASSKEY_ACTION_EVENT started"); - struct ble_sm_io pkey = {0}; - int key = 0; - - if (event->passkey.params.action == BLE_SM_IOACT_DISP) { - pkey.action = event->passkey.params.action; - pkey.passkey = 123456; // This is the passkey to be entered on peer - ESP_LOGI(tag, "Enter passkey %" PRIu32 "on the peer side", pkey.passkey); - rc = ble_sm_inject_io(event->passkey.conn_handle, &pkey); - ESP_LOGI(tag, "ble_sm_inject_io result: %d", rc); - } else if (event->passkey.params.action == BLE_SM_IOACT_NUMCMP) { - ESP_LOGI(tag, "Passkey on device's display: %" PRIu32 , event->passkey.params.numcmp); - ESP_LOGI(tag, "Accept or reject the passkey through console in this format -> key Y or key N"); - pkey.action = event->passkey.params.action; - if (scli_receive_key(&key)) { - pkey.numcmp_accept = key; - } else { - pkey.numcmp_accept = 0; - ESP_LOGE(tag, "Timeout! Rejecting the key"); - } - rc = ble_sm_inject_io(event->passkey.conn_handle, &pkey); - ESP_LOGI(tag, "ble_sm_inject_io result: %d", rc); - } else if (event->passkey.params.action == BLE_SM_IOACT_OOB) { - static uint8_t tem_oob[16] = {0}; - pkey.action = event->passkey.params.action; - for (int i = 0; i < 16; i++) { - pkey.oob[i] = tem_oob[i]; - } - rc = ble_sm_inject_io(event->passkey.conn_handle, &pkey); - ESP_LOGI(tag, "ble_sm_inject_io result: %d", rc); - } else if (event->passkey.params.action == BLE_SM_IOACT_INPUT) { - ESP_LOGI(tag, "Enter the passkey through console in this format-> key 123456"); - pkey.action = event->passkey.params.action; - if (scli_receive_key(&key)) { - pkey.passkey = key; - } else { - pkey.passkey = 0; - ESP_LOGE(tag, "Timeout! Passing 0 as the key"); - } - rc = ble_sm_inject_io(event->passkey.conn_handle, &pkey); - ESP_LOGI(tag, "ble_sm_inject_io result: %d", rc); - } - return 0; - -#if MYNEWT_VAL(BLE_POWER_CONTROL) - case BLE_GAP_EVENT_TRANSMIT_POWER: - MODLOG_DFLT(INFO, "Transmit power event : status=%d conn_handle=%d reason=%d " - "phy=%d power_level=%x power_level_flag=%d delta=%d", - event->transmit_power.status, - event->transmit_power.conn_handle, - event->transmit_power.reason, - event->transmit_power.phy, - event->transmit_power.transmit_power_level, - event->transmit_power.transmit_power_level_flag, - event->transmit_power.delta); - return 0; - - case BLE_GAP_EVENT_PATHLOSS_THRESHOLD: - MODLOG_DFLT(INFO, "Pathloss threshold event : conn_handle=%d current path loss=%d " - "zone_entered =%d", - event->pathloss_threshold.conn_handle, - event->pathloss_threshold.current_path_loss, - event->pathloss_threshold.zone_entered); - return 0; -#endif - } - - return 0; -} - -static void -bleprph_on_reset(int reason) -{ - MODLOG_DFLT(ERROR, "Resetting state; reason=%d\n", reason); -} - -#if CONFIG_EXAMPLE_RANDOM_ADDR -static void -ble_app_set_addr(void) -{ - ble_addr_t addr; - int rc; - - /* generate new non-resolvable private address */ - rc = ble_hs_id_gen_rnd(0, &addr); - assert(rc == 0); - - /* set generated address */ - rc = ble_hs_id_set_rnd(addr.val); - - assert(rc == 0); -} -#endif - -static void -bleprph_on_sync(void) -{ - int rc; - -#if CONFIG_EXAMPLE_RANDOM_ADDR - /* Generate a non-resolvable private address. */ - ble_app_set_addr(); -#endif - - /* Make sure we have proper identity address set (public preferred) */ -#if CONFIG_EXAMPLE_RANDOM_ADDR - rc = ble_hs_util_ensure_addr(1); -#else - rc = ble_hs_util_ensure_addr(0); -#endif - assert(rc == 0); - - /* Figure out address to use while advertising (no privacy for now) */ - rc = ble_hs_id_infer_auto(0, &own_addr_type); - if (rc != 0) { - MODLOG_DFLT(ERROR, "error determining address type; rc=%d\n", rc); - return; - } - - /* Printing ADDR */ - uint8_t addr_val[6] = {0}; - rc = ble_hs_id_copy_addr(own_addr_type, addr_val, NULL); - - MODLOG_DFLT(INFO, "Device Address: "); - print_addr(addr_val); - MODLOG_DFLT(INFO, "\n"); - /* Begin advertising. */ -#if CONFIG_EXAMPLE_EXTENDED_ADV - ext_bleprph_advertise(); -#else - bleprph_advertise(); -#endif -} - -void bleprph_host_task(void *param) -{ - ESP_LOGI(tag, "BLE Host Task Started"); - /* This function will return only when nimble_port_stop() is executed */ - nimble_port_run(); - - nimble_port_freertos_deinit(); -} - -void -app_main(void) -{ - int rc; - - /* Initialize NVS — it is used to store PHY calibration data */ - esp_err_t ret = nvs_flash_init(); - if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { - ESP_ERROR_CHECK(nvs_flash_erase()); - ret = nvs_flash_init(); - } - ESP_ERROR_CHECK(ret); - - hci_uart_open(); - ret = nimble_port_init(); - if (ret != ESP_OK) { - ESP_LOGE(tag, "Failed to init nimble %d ", ret); - return; - } - /* Initialize the NimBLE host configuration. */ - ble_hs_cfg.reset_cb = bleprph_on_reset; - ble_hs_cfg.sync_cb = bleprph_on_sync; - ble_hs_cfg.gatts_register_cb = gatt_svr_register_cb; - ble_hs_cfg.store_status_cb = ble_store_util_status_rr; - - ble_hs_cfg.sm_io_cap = CONFIG_EXAMPLE_IO_TYPE; -#ifdef CONFIG_EXAMPLE_BONDING - ble_hs_cfg.sm_bonding = 1; - /* Enable the appropriate bit masks to make sure the keys - * that are needed are exchanged - */ - ble_hs_cfg.sm_our_key_dist |= BLE_SM_PAIR_KEY_DIST_ENC; - ble_hs_cfg.sm_their_key_dist |= BLE_SM_PAIR_KEY_DIST_ENC; -#endif -#ifdef CONFIG_EXAMPLE_MITM - ble_hs_cfg.sm_mitm = 1; -#endif -#ifdef CONFIG_EXAMPLE_USE_SC - ble_hs_cfg.sm_sc = 1; -#else - ble_hs_cfg.sm_sc = 0; -#endif -#ifdef CONFIG_EXAMPLE_RESOLVE_PEER_ADDR - /* Stores the IRK */ - ble_hs_cfg.sm_our_key_dist |= BLE_SM_PAIR_KEY_DIST_ID; - ble_hs_cfg.sm_their_key_dist |= BLE_SM_PAIR_KEY_DIST_ID; -#endif - - rc = gatt_svr_init(); - assert(rc == 0); - - /* Set the default device name. */ - rc = ble_svc_gap_device_name_set("nimble-bleprph"); - assert(rc == 0); - - /* XXX Need to have template for store */ - ble_store_config_init(); - - nimble_port_freertos_init(bleprph_host_task); - - /* Initialize command line interface to accept input from user */ - rc = scli_init(); - if (rc != ESP_OK) { - ESP_LOGE(tag, "scli_init() failed"); - } -} diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/uart_driver.c b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/uart_driver.c deleted file mode 100644 index 37780ae..0000000 --- a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/uart_driver.c +++ /dev/null @@ -1,258 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Unlicense OR CC0-1.0 - */ - -#include -#include -#include "freertos/FreeRTOS.h" -#include "freertos/task.h" -#include "freertos/queue.h" -#include "driver/uart.h" -#include "esp_log.h" -#include "esp_attr.h" -#include "uart_driver.h" -#include "nimble/hci_common.h" -#include "host/ble_hs_mbuf.h" - -#define TAG "UART_HCI" - -#define UART_NO (1) -#define UART_BUF_SZ (1024) - -#define UART_TX_PIN (CONFIG_EXAMPLE_HCI_UART_TX_PIN) -#define UART_RX_PIN (CONFIG_EXAMPLE_HCI_UART_RX_PIN) -#define UART_RTS_PIN (CONFIG_EXAMPLE_HCI_UART_RTS_PIN) -#define UART_CTS_PIN (CONFIG_EXAMPLE_HCI_UART_CTS_PIN) -#define HCI_H4_ACL (0x02) -#define HCI_H4_CMD (0x01) -#define HCI_H4_EVT (0x04) -#define BLE_HCI_EVENT_HDR_LEN (2) -#define BLE_HCI_CMD_HDR_LEN (3) - -enum { - UART_RX_TYPE = 0, - UART_RX_LEN, - UART_RX_DATA, -}; - -enum { - DATA_TYPE_COMMAND = 1, - DATA_TYPE_ACL = 2, - DATA_TYPE_EVENT = 4 -}; - -TaskHandle_t s_rx_task_hdl; - -static void IRAM_ATTR hci_uart_rx_task(void *arg) -{ - uint8_t buf[1026]; - int len_now_read = -1; - uint32_t len_to_read = 1; - uint32_t len_total_read = 0; - uint8_t rx_st = UART_RX_TYPE; - - while (1) { - len_now_read = uart_read_bytes(UART_NO, &buf[len_total_read], len_to_read, portMAX_DELAY); - assert(len_now_read == len_to_read); - len_total_read += len_now_read; - - switch (rx_st) { - case UART_RX_TYPE: { - assert(buf[0] >= DATA_TYPE_ACL && buf[0] <= DATA_TYPE_EVENT); - if (buf[0] == DATA_TYPE_ACL) { - len_to_read = 4; - } else if (buf[0] == DATA_TYPE_EVENT) { - len_to_read = 2; - } else { - assert(0); - } - rx_st = UART_RX_LEN; - } - break; - - case UART_RX_LEN: { - if (buf[0] == DATA_TYPE_ACL) { - len_to_read = buf[3] | (buf[4] << 8); - } else if (buf[0] == DATA_TYPE_EVENT) { - len_to_read = buf[2]; - } else { - assert(0); - } - rx_st = UART_RX_DATA; - } - break; - - case UART_RX_DATA: { - uint8_t *data = buf; - int rc; - - if (data[0] == HCI_H4_EVT) { - uint8_t *evbuf; - int totlen; - - totlen = BLE_HCI_EVENT_HDR_LEN + data[2]; - assert(totlen <= UINT8_MAX + BLE_HCI_EVENT_HDR_LEN); - - if (totlen > MYNEWT_VAL(BLE_TRANSPORT_EVT_SIZE)) { - ESP_LOGE(TAG, "Received HCI data length at host (%d)" - "exceeds maximum configured HCI event buffer size (%d).", - totlen, MYNEWT_VAL(BLE_TRANSPORT_EVT_SIZE)); - break; - } - - if (data[1] == BLE_HCI_EVCODE_HW_ERROR) { - rx_st = UART_RX_TYPE; - len_to_read = 1; - len_total_read = 0; - continue; - } - - /* Allocate LE Advertising Report Event from lo pool only */ - if ((data[1] == BLE_HCI_EVCODE_LE_META) && - (data[3] == BLE_HCI_LE_SUBEV_ADV_RPT || data[3] == BLE_HCI_LE_SUBEV_EXT_ADV_RPT)) { - evbuf = ble_transport_alloc_evt(1); - /* Skip advertising report if we're out of memory */ - if (!evbuf) { - ESP_LOGE(TAG, "No buffers"); - break; - } - } else { - evbuf = ble_transport_alloc_evt(0); - assert(evbuf != NULL); - } - - memset(evbuf, 0, sizeof * evbuf); - memcpy(evbuf, &data[1], totlen); - - rc = ble_transport_to_hs_evt(evbuf); - assert(rc == 0); - } else if (data[0] == HCI_H4_ACL) { - struct os_mbuf *m = NULL; - m = ble_transport_alloc_acl_from_ll(); - if (!m) { - ESP_LOGE(TAG, "No buffers"); - } - - if ((rc = os_mbuf_append(m, &data[1], len_total_read - 1)) != 0) { - ESP_LOGE(TAG, "%s failed to os_mbuf_append; rc = %d", __func__, rc); - os_mbuf_free_chain(m); - return; - } - - ble_transport_to_hs_acl(m); - } - - rx_st = UART_RX_TYPE; - len_to_read = 1; - len_total_read = 0; - } - break; - - default: { - assert(0); - break; - } - } - - } - vTaskDelete(NULL); -} - -void hci_uart_send(uint8_t *buf, uint16_t len) -{ - uint8_t *p = buf; - int len_write = 0; - - while (len) { - len_write = uart_write_bytes(UART_NO, p, len); - assert(len_write > 0); - len -= len_write; - p += len_write; - } -} - - -void -ble_transport_ll_init(void) -{ - -} - -void -ble_transport_ll_deinit(void) -{ - -} - -int -ble_transport_to_ll_acl_impl(struct os_mbuf *om) -{ - uint8_t buf[OS_MBUF_PKTLEN(om) + 1]; - int rc; - buf[0] = HCI_H4_ACL; - rc = ble_hs_mbuf_to_flat(om, buf + 1, OS_MBUF_PKTLEN(om), NULL); - if(rc) { - ESP_LOGE(TAG, "Error copying data %d", rc); - os_mbuf_free_chain(om); - return rc; - } - hci_uart_send(buf, OS_MBUF_PKTLEN(om) + 1); - os_mbuf_free_chain(om); - return 0; -} - -int -ble_transport_to_ll_cmd_impl(void *buf) -{ - int len = 3 + ((uint8_t *)buf)[2] + 1; - uint8_t data[258]; - data[0] = HCI_H4_CMD; - memcpy(data + 1, buf, len - 1); - hci_uart_send(data, len); - ble_transport_free(buf); - return 0; -} - -void hci_uart_open(void) -{ - uart_config_t uart_config = { - .baud_rate = CONFIG_EXAMPLE_HCI_UART_BAUDRATE, - .data_bits = UART_DATA_8_BITS, - .parity = UART_PARITY_DISABLE, - .stop_bits = UART_STOP_BITS_1, - .flow_ctrl = CONFIG_EXAMPLE_HCI_UART_FLOW_CTRL, - .source_clk = UART_SCLK_DEFAULT, - }; - - int intr_alloc_flags = 0; -#if CONFIG_UART_ISR_IN_IRAM - intr_alloc_flags = ESP_INTR_FLAG_IRAM; -#endif - - ESP_ERROR_CHECK(uart_driver_install(UART_NO, UART_BUF_SZ * 2, UART_BUF_SZ * 2, 0, NULL, intr_alloc_flags)); - ESP_ERROR_CHECK(uart_param_config(UART_NO, &uart_config)); - -#if CONFIG_EXAMPLE_HCI_UART_INVERT_RTS - /* to communicate with co-processor with UART hw - * flowcontrol, logic of RTS signal must be inverted - */ - uint32_t invert_mask = 0; - invert_mask |= UART_SIGNAL_RTS_INV; - - ESP_ERROR_CHECK(uart_set_line_inverse(UART_NO, invert_mask)); -#endif - - ESP_ERROR_CHECK(uart_set_pin(UART_NO, UART_TX_PIN, UART_RX_PIN, UART_RTS_PIN, UART_CTS_PIN)); - - xTaskCreate(hci_uart_rx_task, "hci_uart_rx_task", 2048, NULL, 12, &s_rx_task_hdl); -} - -void hci_uart_close(void) -{ - if (s_rx_task_hdl) { - vTaskDelete(s_rx_task_hdl); - } - uart_driver_delete(UART_NO); -} diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/uart_driver.h b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/uart_driver.h deleted file mode 100644 index 89f2f5c..0000000 --- a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/main/uart_driver.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Unlicense OR CC0-1.0 - */ - -#ifndef __UART_DRIVER_H__ -#define __UART_DRIVER_H__ - -#include -#include - -/** - * @brief open HCI transport of uart - */ -void hci_uart_open(void); - -/** - * @brief close HCI transport of uart - */ -void hci_uart_close(void); - -/** - * @brief send data from host to HCI transport - * - * @param[in] data pointer to data buffer - * @param[in] len length of data - */ -void hci_uart_send(uint8_t *data, uint16_t len); - -#endif /* __UART_DRIVER_H__ */ diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/sdkconfig.defaults b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/sdkconfig.defaults deleted file mode 100644 index eb07a5c..0000000 --- a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/sdkconfig.defaults +++ /dev/null @@ -1,11 +0,0 @@ -# Override some defaults so BT stack is enabled -# in this example - -# -# BT config -# -CONFIG_BT_ENABLED=y -CONFIG_BT_CONTROLLER_DISABLED=y -CONFIG_BT_BLUEDROID_ENABLED=n -CONFIG_BT_NIMBLE_ENABLED=y -CONFIG_BT_NIMBLE_TRANSPORT_UART=n diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/tutorial/bleprph_host_only_walkthrough.md b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/tutorial/bleprph_host_only_walkthrough.md deleted file mode 100644 index 8f32c7a..0000000 --- a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/tutorial/bleprph_host_only_walkthrough.md +++ /dev/null @@ -1,83 +0,0 @@ -# BLE Peripheral Example Walkthrough - -## Introduction - -The tutorial is focused on how to implement the custom transport in the application and register it with nimble-host. This example has the exact same working as bleprph except the transport used is custom UART transport written in `"main/uart_driver.c"` file. The controller is disabled for this example, the nimble-host tries to communicate with the external connected controller using UART transport. - -Note: This walkthrough only covers the transport used by the application, for detailed explanation see the [bleprph_walkthrough](https://github.com/espressif/esp-idf/blob/master/examples/bluetooth/nimble/bleprph/tutorial/bleprph_walkthrough.md). - -## Hardware Setup for Host - -This example uses the ESP32-P4 chip to run the `host_nimble_bleprph_host_only_uart_hci` example. The example runs the nimble-host and sends and receives the commands and events using uart. The ESP32 co-procesor runs ESP-Hosted slave, with the BT controller configured to use the UART. - -Below is the setup of ESP32-P4 and ESP32. - -ESP32-P4-Function-EV-Board with ESP32, connected via UART - -The ESP32-P4 gpio pins are configurable using `idf.py menuconfig` -> `Example Configuration` -> `Uart Configuration`. The tx pin of one chip connects to the rx pin of the other and vice versa. If you enable `Uart Flow Control`, connect the `CTS` pin on one chip to the `RTS` pin on the other and vice versa. - -## Setup for Co-processor - -UART HCI setup is done through the Bluetooth Component kconfig -settings. In menuconfig, select `Component config` -> `Bluetooth` -> -`Controller Options` -> `HCI mode` or `HCI Config` and set it to -`UART(H4)`. - -Depending on the selected co-processor, you can configure various UART -parameters (Tx, Rx pins, hardware flow control, RTS, CTS pins, -baudrate) through the Bluetooth Component. Other UART parameters not -handled by the Bluetooth Component are configured by ESP-Hosted -through `Example Configuration` -> `HCI UART Settings`. - -> [!NOTE] -> Make sure the UART GPIO pins selected do not conflict with the GPIO -> pins used for the selected ESP-Hosted transport. - -Co-processor setup for HCI over UART can also be found in the ESP-Hosted Bluetooth Design document on how to [configure the co-processor to use UART for HCI](https://github.com/espressif/esp-hosted-mcu/blob/main/docs/bluetooth_design.md#6-configuring-the-co-processor-for-uart-hci). - - -## GPIO Setup for Host and Co-processor - -Below is the pin connection chart for the ESP32-P4 (as host) and ESP32 (as BT controller). - -| ESP32-P4 Signal | ESP32-P4 GPIO Pin | ESP32 Signal | ESP32 GPIO Pin | -|:---------------:|------------------:|:------------:|---------------:| -| Rx | 33 | Tx | 5 | -| Tx | 24 | Rx | 18 | -| RTS | 20 | CTS | 23 | -| CTS | 21 | RTS | 19 | - -## Main Entry Point - -The program’s entry point is the app_main() function: - -```c -void -app_main(void) -{ - int rc; - - /* Initialize NVS — it is used to store PHY calibration data */ - esp_err_t ret = nvs_flash_init(); - if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { - ESP_ERROR_CHECK(nvs_flash_erase()); - ret = nvs_flash_init(); - } - ESP_ERROR_CHECK(ret); - - hci_uart_open(); - ret = nimble_port_init(); - if (ret != ESP_OK) { - ESP_LOGE(tag, "Failed to init nimble %d ", ret); - return; - } - .... - .... -} -``` -In the main function `hci_uart_open()` configures the uart with necessary parameters like baud_rate, parity, etc. The file [uart_driver.c](../main/uart_driver.c) has all the uart transport code along with the necessary apis mandated by nimble-host. `ble_transport_to_ll_acl_impl` is the api used to send the data to the controller. and `ble_transport_to_ll_cmd_impl` is used to send the command to the controller. These two apis are implemented as they are necessary. Along with these two apis, any data that is received in the rx direction is redirected to the host using `ble_transport_to_hs_evt` and `ble_transport_to_hs_acl` apis. - -## Conclusion -1. This example covered how to write the custom transport layer and use it with nimble-host. -2. The example used the esp-hosted network-adapter example flashed on esp32c6 connected through UART to test this demo. -3. In the similar fashion the external controller could be connected. diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/tutorial/hardware_setup.jpg b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_uart_hci/tutorial/hardware_setup.jpg deleted file mode 100644 index f83e20f9c5a27ef90b5ffd91646f962d12e2b03a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 495040 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

    ltoxK;-t92;S z8QqG|?771*eBW#1I5=yWB76WNL_np8@7CC|Q5U}SJ3MrOGNt!IA_uiCcSSZ$J!( z0k|ETN<>|w-_R1>sZ<4|HxkGWl;GMc1f=>ch5%)La&AVr!j5$dld&)_m{`GgKO?7t zXseKeyl(hEj&gsM>fR zJu$cWY_`cEEI`?Mu>3jK7Oj8F4Dxe0BjW2m94+m2wzf%cFOzEA`s+{Kr(siGLF;!) zO6NKMcwIwiqp57n6H)!_v{Z@QEMLJ<%yx}NEK#*5Hvg>{*XDs4NImB#{odWp=Axu8 zCcC!7xC}`0Pkls~;jZ!Wcx!Xt7SSj}{{h4ucp&Rss8fOBsBQtScg>zYFiRdup!zQw zM>~>_rsDsCtzRVj-SG2?g*PJadnKP_djL4RLifC{uGTRCOxkNRTyJmE4&?iS3hyw* zlT~TElSE$A4427_=j`3NVut*STHts%=0htK**1Pw35tJdGF}IxFxfsbX3H;rzqy#) zkNJ}SbP2C|mX+tJXO1m6t^KDiV>gmhD0O$1A;qtO;wim_VGP(emoP0m^u4Z>2r)xD zKB-2Ds~8?1|IF6Xd}3n7CtlCp*NB1o(*o--+=E+PEj#YS$-a3kF9!C_XiBTSeE%X2 z*F`^w`1%4&8u@QxV2egMc5|m&on_c=QKqv;=!0HOWKNvr*zFgL?F!e-OQ{$}uDDp~ zZliIurj77R;S>gHE-IjtOWRCYgEC$XyO9BxzUZ$)`z3>7cLc13>e+0+!ah6I|BWs;duY9-jJSPsWvfef6)`@yk}GsiAe%(T&k@S%RZOI}c7TxBq^F zz1}iLJVH5mlKsWW`M~?HxL`OZEeYmp>(Bt3eelf$c8D`;uc&ir!%l_v5SJIKDy)vx zm@^DKVfN_Bk1r?wQE>lO#FIVC`a%8SPk->H?vMsIx^?@vdLIYL*rMJE=g*`!pHb7= z8u`XI7Y^&EhJCX><~vkdR~)gujW@?!+oSSU>(sLcslQ11PLBVm^{tOoM#t5@b7w&K zS&`mQ8OkEJU1*}3GRyz@MKyb7dbK1V48}Zn{v{I&AN;K-)vkEHYqrB}`=R1|vc;*- zXjhBfrU;mUS*tbWsxgCyt#rvxs#ksq>U!m+`8;@N(P=dhH_T6ZJp8YTO+I}S z7mvue${tKoyeZW-!8iv{p#W{bGj}5e3owS2kZ=hT+kPB#zZ41&)r zM?o$ZulT}OFJ?S2F{4ei%O?vn-0lQQAvzP@Tlq$$xga(%tcGsjrdQVZka=!DqSK$W z+mM>>*|xxebPGa%lpie8oxxT-QfXOR6)q~rNZBrqml@v{V3l*wdiZY~h~iwwU|0FF z;*R`t3x%Fm){(Y&VDMP}-i7dK*SP6CY?T$V#Pg&9HPj>f+mn7>zVzm%z7w&Sf6E35 z6*~_!r2O|!V%+I|M|jZo0OPQ!rF&$jg# z)SptW#L71#X}b0)Gx8N`THj16Q?#oPo(D~~yz?vWYl@P4VsU@TZGAZry)YQ8yzwM< z^4b>b$`rGmj4cC!4npJ~df?EhI}fAQKR|&zhh3l4QywW&dC9%>ueUERY9hkaye3+- zqnn=Da}`(j9j5wF_vx~G5M(iQg`F()2xTcktj?wh=6U}`Q)l7G+m(A z1gd3Ixh~K&+luJg4qhgN=V$xSC8=GZlK+-(dxg0Hae%zZ=rJpuC4sBFM?VQRUSURf z80GopFXBVcjhDuQjjV$tq2uhDzl-y2_5b}K&q z+{v3|>~o~+WAO?bX0TAmhDW*dXEukSs)GC53s^zZxT&mUWsl% zuVVo({8;Y%-ik#poTKCh6WS|ZYH(}kmjS2WV86aPTj)*~m-Ejp;bjNxSB2JT@#a2z z6uluzs@4%7ijK{OW5BZtJ{w32W=IeRP+YYQD|e!3I)j1h`Zv63BVU!$cD^+RR;o

    Mdb5hqzqF; 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

    +xfa(joI>hr@O>+eS5z(u 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¥hweO(ygQ;0B;|SBU{Cu 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 diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/CMakeLists.txt b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/CMakeLists.txt deleted file mode 100644 index 01dcd5a..0000000 --- a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/CMakeLists.txt +++ /dev/null @@ -1,6 +0,0 @@ -# The following lines of boilerplate have to be in your project's -# CMakeLists in this exact order for cmake to work correctly -cmake_minimum_required(VERSION 3.16) - -include($ENV{IDF_PATH}/tools/cmake/project.cmake) -project(bleprph_host_only_vhci) diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/README.md b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/README.md deleted file mode 100644 index 63a68f2..0000000 --- a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/README.md +++ /dev/null @@ -1,202 +0,0 @@ -| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-H2 | ESP32-S3 | ESP32-P4 | -| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | - -# BLE Host-Only Peripheral Hosted HCI Example - -This example uses the Bluetooth Hosted HCI transport provided by ESP-Hosted. - -To use the Hosted HCI transport in the application, the Bluetooth -controller should be disabled and the default uart-transport should -also be disabled (when the controller is disabled, by default the -uart-transport is selected). The Bluetooth Hosted HCI transport in -ESP-Hosted should also be enabled. - -Refer to the `sdkconfig.defaults` file which has the required -configuration. - -To test this demo, any BLE scanner app can be used. - -## How to Use This Example - -Before project configuration and build, be sure to set the correct -chip target using: - -```bash -idf.py set-target -``` - -### Configure the project - -Open the project configuration menu: - -```bash -idf.py menuconfig -``` - -In the `Component config-> Bluetooth` menu: - -* Select `controller` to Disabled. -* Disable `Nimble Options-> Host-controller Transport -> Enable Uart Transport`. - -In the `Component config-> ESP-Hosted config` menu: - -* Enable `Bluetooth Support-> Enable Hosted Bluetooth support` - -### Build and Flash - -Run `idf.py -p PORT flash monitor` to build, flash and monitor the -project. - -(To exit the serial monitor, type ``Ctrl-]``.) - -See the [Getting Started Guide](https://idf.espressif.com/) for full -steps to configure and use ESP-IDF to build projects. - -## Example Output - -This is the console output when `bleprph_host_only_vhci` is running on -the ESP32-P4 and using the Bluetooth Controller of the ESP32C6 on the -ESP32-P4-Function-EV-Board. The data is transferred through SDIO -between the ESP32-P4 and ESP32-C6: - -``` -I (25) boot: ESP-IDF v5.4-dev-2793-g24047f9a04-dirty 2nd stage bootloader -I (26) boot: compile time Sep 9 2024 16:23:48 -I (27) boot: Multicore bootloader -I (32) boot: chip revision: v0.1 -I (34) boot: efuse block revision: v0.0 -I (39) boot.esp32p4: SPI Speed : 80MHz -I (44) boot.esp32p4: SPI Mode : DIO -I (49) boot.esp32p4: SPI Flash Size : 2MB -I (53) boot: Enabling RNG early entropy source... -I (59) boot: Partition Table: -I (62) boot: ## Label Usage Type ST Offset Length -I (70) boot: 0 nvs WiFi data 01 02 00009000 00006000 -I (77) boot: 1 phy_init RF data 01 01 0000f000 00001000 -I (84) boot: 2 factory factory app 00 00 00010000 00100000 -I (93) boot: End of partition table -I (96) esp_image: segment 0: paddr=00010020 vaddr=40070020 size=2ae08h (175624) map -I (135) esp_image: segment 1: paddr=0003ae30 vaddr=30100000 size=0000ch ( 12) load -I (137) esp_image: segment 2: paddr=0003ae44 vaddr=3010000c size=00038h ( 56) load -I (142) esp_image: segment 3: paddr=0003ae84 vaddr=4ff00000 size=05194h ( 20884) load -I (154) esp_image: segment 4: paddr=00040020 vaddr=40000020 size=638b0h (407728) map -I (226) esp_image: segment 5: paddr=000a38d8 vaddr=4ff05194 size=0b9a0h ( 47520) load -I (237) esp_image: segment 6: paddr=000af280 vaddr=4ff10b80 size=02328h ( 9000) load -I (244) boot: Loaded app from partition at offset 0x10000 -I (244) boot: Disabling RNG early entropy source... -I (258) cpu_start: Multicore app -W (267) clk: esp_perip_clk_init() has not been implemented yet -I (274) cpu_start: Pro cpu start user code -I (274) cpu_start: cpu freq: 360000000 Hz -I (274) app_init: Application information: -I (277) app_init: Project name: bleprph_host_only_vhci -I (283) app_init: App version: 1c568c9-dirty -I (288) app_init: Compile time: Sep 9 2024 16:23:43 -I (294) app_init: ELF file SHA256: ee5a16527... -I (299) app_init: ESP-IDF: v5.4-dev-2793-g24047f9a04-dirty -I (306) efuse_init: Min chip rev: v0.1 -I (311) efuse_init: Max chip rev: v0.99 -I (316) efuse_init: Chip rev: v0.1 -I (321) heap_init: Initializing. RAM available for dynamic allocation: -I (328) heap_init: At 4FF160B0 len 00024F10 (147 KiB): RAM -I (334) heap_init: At 4FF3AFC0 len 00004BF0 (18 KiB): RAM -I (340) heap_init: At 4FF40000 len 00060000 (384 KiB): RAM -I (347) heap_init: At 50108080 len 00007F80 (31 KiB): RTCRAM -I (353) heap_init: At 30100044 len 00001FBC (7 KiB): TCM -I (360) spi_flash: detected chip: generic -I (363) spi_flash: flash io: dio -W (367) spi_flash: Detected size(16384k) larger than the size in the binary image header(2048k). Using the size in the binary image header. -I (381) host_init: ESP Hosted : Host chip_ip[18] -I (409) H_API: ESP-Hosted starting. Hosted_Tasks: prio:23, stack: 5120 RPC_task_stack: 5120 -sdio_mempool_create free:181028 min-free:181028 lfb-def:139264 lfb-8bit:139264 - -I (414) gpio: GPIO[18]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 -I (423) gpio: GPIO[19]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 -I (433) gpio: GPIO[14]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 -I (442) gpio: GPIO[15]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 -I (451) gpio: GPIO[16]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 -I (461) gpio: GPIO[17]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 -I (470) H_API: ** add_esp_wifi_remote_channels ** -I (475) transport: Add ESP-Hosted channel IF[1]: S[0] Tx[0x4000d110] Rx[0x4001b4aa] -0x4000d110: transport_drv_sta_tx at /home/kysoh/projects/esp_as_mcu_host/examples/bleprph_host_only_vhci/components/esp_hosted/host/drivers/transport/transport_drv.c:208 -0x4001b4aa: esp_wifi_remote_channel_rx at /home/kysoh/projects/esp_as_mcu_host/examples/bleprph_host_only_vhci/managed_components/espressif__esp_wifi_remote/esp_wifi_remote_net.c:19 - -I (484) transport: Add ESP-Hosted channel IF[2]: S[0] Tx[0x4000d058] Rx[0x4001b4aa] -0x4000d058: transport_drv_ap_tx at /home/kysoh/projects/esp_as_mcu_host/examples/bleprph_host_only_vhci/components/esp_hosted/host/drivers/transport/transport_drv.c:238 -0x4001b4aa: esp_wifi_remote_channel_rx at /home/kysoh/projects/esp_as_mcu_host/examples/bleprph_host_only_vhci/managed_components/espressif__esp_wifi_remote/esp_wifi_remote_net.c:19 - -I (493) main_task: Started on CPU0 -I (503) main_task: Calling app_main() -I (513) transport: Attempt connection with slave: retry[0] -I (513) transport: Reset slave using GPIO[54] -I (513) os_wrapper_esp: GPIO [54] configured -I (513) gpio: GPIO[54]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 -I (1693) sdio_wrapper: SDIO master: Data-Lines: 4-bit Freq(KHz)[40000 KHz] -I (1693) sdio_wrapper: GPIOs: CLK[18] CMD[19] D0[14] D1[15] D2[16] D3[17] Slave_Reset[54] -I (1693) H_SDIO_DRV: Starting SDIO process rx task -I (1693) sdio_wrapper: Queues: Tx[20] Rx[20] SDIO-Rx-Mode[1] -I (1733) gpio: GPIO[15]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 -I (1733) gpio: GPIO[17]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0 -Name: -Type: SDIO -Speed: 40.00 MHz (limit: 40.00 MHz) -Size: 0MB -CSD: ver=1, sector_size=0, capacity=0 read_bl_len=0 -SCR: sd_spec=0, bus_width=0 -TUPLE: DEVICE, size: 3: D9 01 FF -TUPLE: MANFID, size: 4 - MANF: 0092, CARD: 6666 -TUPLE: FUNCID, size: 2: 0C 00 -TUPLE: FUNCE, size: 4: 00 00 02 32 -TUPLE: CONFIG, size: 5: 01 01 00 02 07 -TUPLE: CFTABLE_ENTRY, size: 8 - INDX: C1, Intface: 1, Default: 1, Conf-Entry-Num: 1 - IF: 41 - FS: 30, misc: 0, mem_space: 1, irq: 1, io_space: 0, timing: 0, power: 0 - IR: 30, mask: 1, IRQ: FF FF - LEN: FFFF -TUPLE: END -I (1783) sdio_wrapper: Function 0 Blocksize: 512 -I (1793) sdio_wrapper: Function 1 Blocksize: 512 -I (1793) H_SDIO_DRV: SDIO Host operating in STREAMING MODE -I (1803) H_SDIO_DRV: generate slave intr -I (1813) transport: Received INIT event from ESP32 peripheral -I (1813) transport: EVENT: 12 -I (1813) transport: EVENT: 11 -I (1823) transport: capabilities: 0xd -I (1823) transport: Features supported are: -I (1833) transport: * WLAN -I (1833) transport: - HCI over SDIO -I (1843) transport: - BLE only -I (1843) transport: EVENT: 13 -I (1843) transport: ESP board type is : 13 - -I (1853) transport: Base transport is set-up - -I (1853) transport: Slave chip Id[12] -I (1863) vhci_drv: Host BT Support: Enabled -I (1863) vhci_drv: BT Transport Type: VHCI -I (1873) H_SDIO_DRV: Received INIT event -I (1883) rpc_wrap: Received Slave ESP Init -I (2623) NimBLE_BLE_PRPH: BLE Host Task Started -I (2623) uart: queue free spaces: 8 -I (2623) main_task: Returned from app_main() -I (2623) NimBLE: GAP procedure initiated: stop advertising. - -I (2633) NimBLE: Device Address: -I (2633) NimBLE: 40:4c:ca:5b:9a:e2 -I (2633) NimBLE: - -I (2643) NimBLE: GAP procedure initiated: advertise; -I (2643) NimBLE: disc_mode=2 -I (2653) NimBLE: adv_channel_map=0 own_addr_type=0 adv_filter_policy=0 adv_itvl_min=0 adv_itvl_max=0 -I (2663) NimBLE: -``` - -## Troubleshooting - -For any technical queries, please open an [issue](https://github.com/espressif/esp-hosted-mcu/issues) on ESP-Hosted on GitHub. We will get back to you soon. - -## References - -* Bluetooth Implementation in ESP-Hosted: https://github.com/espressif/esp-hosted-mcu/blob/main/docs/bluetooth_design.md diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/CMakeLists.txt b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/CMakeLists.txt deleted file mode 100644 index 9e539a9..0000000 --- a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ -set(srcs "main.c" - "gatt_svr.c") - -idf_component_register(SRCS "${srcs}" - INCLUDE_DIRS ".") diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/Kconfig.projbuild b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/Kconfig.projbuild deleted file mode 100644 index 2529f3b..0000000 --- a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/Kconfig.projbuild +++ /dev/null @@ -1,80 +0,0 @@ -menu "Example Configuration" - - choice EXAMPLE_USE_IO_TYPE - prompt "I/O Capability" - default BLE_SM_IO_CAP_NO_IO - help - I/O capability of device. - - config BLE_SM_IO_CAP_DISP_ONLY - bool "DISPLAY ONLY" - config BLE_SM_IO_CAP_DISP_YES_NO - bool "DISPLAY YESNO" - config BLE_SM_IO_CAP_KEYBOARD_ONLY - bool "KEYBOARD ONLY" - config BLE_SM_IO_CAP_NO_IO - bool "Just works" - config BLE_SM_IO_CAP_KEYBOARD_DISP - bool "Both KEYBOARD & DISPLAY" - endchoice - - config EXAMPLE_IO_TYPE - int - default 0 if BLE_SM_IO_CAP_DISP_ONLY - default 1 if BLE_SM_IO_CAP_DISP_YES_NO - default 2 if BLE_SM_IO_CAP_KEYBOARD_ONLY - default 3 if BLE_SM_IO_CAP_NO_IO - default 4 if BLE_SM_IO_CAP_KEYBOARD_DISP - - config EXAMPLE_BONDING - bool - default n - prompt "Use Bonding" - help - Use this option to enable/disable bonding. - - config EXAMPLE_MITM - bool - default n - prompt "MITM security" - help - Use this option to enable/disable MITM security. - - config EXAMPLE_USE_SC - bool - depends on BT_NIMBLE_SM_SC - default n - prompt "Use Secure Connection feature" - help - Use this option to enable/disable Security Manager Secure Connection 4.2 feature. - - config EXAMPLE_EXTENDED_ADV - bool - depends on SOC_BLE_50_SUPPORTED && BT_NIMBLE_50_FEATURE_SUPPORT - default y if SOC_ESP_NIMBLE_CONTROLLER - select BT_NIMBLE_EXT_ADV - prompt "Enable Extended Adv" - help - Use this option to enable extended advertising in the example. - If this option is disabled, ensure config BT_NIMBLE_EXT_ADV is - also disabled from Nimble stack menuconfig - - config EXAMPLE_RANDOM_ADDR - bool - prompt "Advertise RANDOM Address" - help - Use this option to advertise a random address instead of public address - - config EXAMPLE_ENCRYPTION - bool - prompt "Enable Link Encryption" - help - This adds Encrypted Read and Write permissions in the custom GATT server. - - config EXAMPLE_RESOLVE_PEER_ADDR - bool - prompt "Enable resolving peer address" - help - Use this option to enable resolving peer's address. - -endmenu diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/bleprph.h b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/bleprph.h deleted file mode 100644 index 9191274..0000000 --- a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/bleprph.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ -#ifndef H_BLEPRPH_ -#define H_BLEPRPH_ - -#include -#include "nimble/ble.h" -#include "modlog/modlog.h" -#include "esp_peripheral.h" -#ifdef __cplusplus -extern "C" { -#endif - -struct ble_hs_cfg; -struct ble_gatt_register_ctxt; - -/** GATT server. */ -#define GATT_SVR_SVC_ALERT_UUID 0x1811 -#define GATT_SVR_CHR_SUP_NEW_ALERT_CAT_UUID 0x2A47 -#define GATT_SVR_CHR_NEW_ALERT 0x2A46 -#define GATT_SVR_CHR_SUP_UNR_ALERT_CAT_UUID 0x2A48 -#define GATT_SVR_CHR_UNR_ALERT_STAT_UUID 0x2A45 -#define GATT_SVR_CHR_ALERT_NOT_CTRL_PT 0x2A44 - -void gatt_svr_register_cb(struct ble_gatt_register_ctxt *ctxt, void *arg); -int gatt_svr_init(void); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/gatt_svr.c b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/gatt_svr.c deleted file mode 100644 index 8a9d8b0..0000000 --- a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/gatt_svr.c +++ /dev/null @@ -1,247 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ -#include -#include -#include -#include "host/ble_hs.h" -#include "host/ble_uuid.h" -#include "services/gap/ble_svc_gap.h" -#include "services/gatt/ble_svc_gatt.h" -#include "bleprph.h" -#include "services/ans/ble_svc_ans.h" - -/*** Maximum number of characteristics with the notify flag ***/ -#define MAX_NOTIFY 5 - -static const ble_uuid128_t gatt_svr_svc_uuid = - BLE_UUID128_INIT(0x2d, 0x71, 0xa2, 0x59, 0xb4, 0x58, 0xc8, 0x12, - 0x99, 0x99, 0x43, 0x95, 0x12, 0x2f, 0x46, 0x59); - -/* A characteristic that can be subscribed to */ -static uint8_t gatt_svr_chr_val; -static uint16_t gatt_svr_chr_val_handle; -static const ble_uuid128_t gatt_svr_chr_uuid = - BLE_UUID128_INIT(0x00, 0x00, 0x00, 0x00, 0x11, 0x11, 0x11, 0x11, - 0x22, 0x22, 0x22, 0x22, 0x33, 0x33, 0x33, 0x33); - -/* A custom descriptor */ -static uint8_t gatt_svr_dsc_val; -static const ble_uuid128_t gatt_svr_dsc_uuid = - BLE_UUID128_INIT(0x01, 0x01, 0x01, 0x01, 0x12, 0x12, 0x12, 0x12, - 0x23, 0x23, 0x23, 0x23, 0x34, 0x34, 0x34, 0x34); - -static int -gatt_svc_access(uint16_t conn_handle, uint16_t attr_handle, - struct ble_gatt_access_ctxt *ctxt, - void *arg); - -static const struct ble_gatt_svc_def gatt_svr_svcs[] = { - { - /*** Service ***/ - .type = BLE_GATT_SVC_TYPE_PRIMARY, - .uuid = &gatt_svr_svc_uuid.u, - .characteristics = (struct ble_gatt_chr_def[]) - { { - /*** This characteristic can be subscribed to by writing 0x00 and 0x01 to the CCCD ***/ - .uuid = &gatt_svr_chr_uuid.u, - .access_cb = gatt_svc_access, -#if CONFIG_EXAMPLE_ENCRYPTION - .flags = BLE_GATT_CHR_F_READ | BLE_GATT_CHR_F_WRITE | - BLE_GATT_CHR_F_READ_ENC | BLE_GATT_CHR_F_WRITE_ENC | - BLE_GATT_CHR_F_NOTIFY | BLE_GATT_CHR_F_INDICATE, -#else - .flags = BLE_GATT_CHR_F_READ | BLE_GATT_CHR_F_WRITE | BLE_GATT_CHR_F_NOTIFY | BLE_GATT_CHR_F_INDICATE, -#endif - .val_handle = &gatt_svr_chr_val_handle, - .descriptors = (struct ble_gatt_dsc_def[]) - { { - .uuid = &gatt_svr_dsc_uuid.u, -#if CONFIG_EXAMPLE_ENCRYPTION - .att_flags = BLE_ATT_F_READ | BLE_ATT_F_READ_ENC, -#else - .att_flags = BLE_ATT_F_READ, -#endif - .access_cb = gatt_svc_access, - }, { - 0, /* No more descriptors in this characteristic */ - } - }, - }, { - 0, /* No more characteristics in this service. */ - } - }, - }, - - { - 0, /* No more services. */ - }, -}; - -static int -gatt_svr_write(struct os_mbuf *om, uint16_t min_len, uint16_t max_len, - void *dst, uint16_t *len) -{ - uint16_t om_len; - int rc; - - om_len = OS_MBUF_PKTLEN(om); - if (om_len < min_len || om_len > max_len) { - return BLE_ATT_ERR_INVALID_ATTR_VALUE_LEN; - } - - rc = ble_hs_mbuf_to_flat(om, dst, max_len, len); - if (rc != 0) { - return BLE_ATT_ERR_UNLIKELY; - } - - return 0; -} - -/** - * Access callback whenever a characteristic/descriptor is read or written to. - * Here reads and writes need to be handled. - * ctxt->op tells weather the operation is read or write and - * weather it is on a characteristic or descriptor, - * ctxt->dsc->uuid tells which characteristic/descriptor is accessed. - * attr_handle give the value handle of the attribute being accessed. - * Accordingly do: - * Append the value to ctxt->om if the operation is READ - * Write ctxt->om to the value if the operation is WRITE - **/ -static int -gatt_svc_access(uint16_t conn_handle, uint16_t attr_handle, - struct ble_gatt_access_ctxt *ctxt, void *arg) -{ - const ble_uuid_t *uuid; - int rc; - - switch (ctxt->op) { - case BLE_GATT_ACCESS_OP_READ_CHR: - if (conn_handle != BLE_HS_CONN_HANDLE_NONE) { - MODLOG_DFLT(INFO, "Characteristic read; conn_handle=%d attr_handle=%d\n", - conn_handle, attr_handle); - } else { - MODLOG_DFLT(INFO, "Characteristic read by NimBLE stack; attr_handle=%d\n", - attr_handle); - } - uuid = ctxt->chr->uuid; - if (attr_handle == gatt_svr_chr_val_handle) { - rc = os_mbuf_append(ctxt->om, - &gatt_svr_chr_val, - sizeof(gatt_svr_chr_val)); - return rc == 0 ? 0 : BLE_ATT_ERR_INSUFFICIENT_RES; - } - goto unknown; - - case BLE_GATT_ACCESS_OP_WRITE_CHR: - if (conn_handle != BLE_HS_CONN_HANDLE_NONE) { - MODLOG_DFLT(INFO, "Characteristic write; conn_handle=%d attr_handle=%d", - conn_handle, attr_handle); - } else { - MODLOG_DFLT(INFO, "Characteristic write by NimBLE stack; attr_handle=%d", - attr_handle); - } - uuid = ctxt->chr->uuid; - if (attr_handle == gatt_svr_chr_val_handle) { - rc = gatt_svr_write(ctxt->om, - sizeof(gatt_svr_chr_val), - sizeof(gatt_svr_chr_val), - &gatt_svr_chr_val, NULL); - ble_gatts_chr_updated(attr_handle); - MODLOG_DFLT(INFO, "Notification/Indication scheduled for " - "all subscribed peers.\n"); - return rc; - } - goto unknown; - - case BLE_GATT_ACCESS_OP_READ_DSC: - if (conn_handle != BLE_HS_CONN_HANDLE_NONE) { - MODLOG_DFLT(INFO, "Descriptor read; conn_handle=%d attr_handle=%d\n", - conn_handle, attr_handle); - } else { - MODLOG_DFLT(INFO, "Descriptor read by NimBLE stack; attr_handle=%d\n", - attr_handle); - } - uuid = ctxt->dsc->uuid; - if (ble_uuid_cmp(uuid, &gatt_svr_dsc_uuid.u) == 0) { - rc = os_mbuf_append(ctxt->om, - &gatt_svr_dsc_val, - sizeof(gatt_svr_chr_val)); - return rc == 0 ? 0 : BLE_ATT_ERR_INSUFFICIENT_RES; - } - goto unknown; - - case BLE_GATT_ACCESS_OP_WRITE_DSC: - goto unknown; - - default: - goto unknown; - } - -unknown: - /* Unknown characteristic/descriptor; - * The NimBLE host should not have called this function; - */ - assert(0); - return BLE_ATT_ERR_UNLIKELY; -} - -void -gatt_svr_register_cb(struct ble_gatt_register_ctxt *ctxt, void *arg) -{ - char buf[BLE_UUID_STR_LEN]; - - switch (ctxt->op) { - case BLE_GATT_REGISTER_OP_SVC: - MODLOG_DFLT(DEBUG, "registered service %s with handle=%d\n", - ble_uuid_to_str(ctxt->svc.svc_def->uuid, buf), - ctxt->svc.handle); - break; - - case BLE_GATT_REGISTER_OP_CHR: - MODLOG_DFLT(DEBUG, "registering characteristic %s with " - "def_handle=%d val_handle=%d\n", - ble_uuid_to_str(ctxt->chr.chr_def->uuid, buf), - ctxt->chr.def_handle, - ctxt->chr.val_handle); - break; - - case BLE_GATT_REGISTER_OP_DSC: - MODLOG_DFLT(DEBUG, "registering descriptor %s with handle=%d\n", - ble_uuid_to_str(ctxt->dsc.dsc_def->uuid, buf), - ctxt->dsc.handle); - break; - - default: - assert(0); - break; - } -} - -int -gatt_svr_init(void) -{ - int rc; - - ble_svc_gap_init(); - ble_svc_gatt_init(); - ble_svc_ans_init(); - - rc = ble_gatts_count_cfg(gatt_svr_svcs); - if (rc != 0) { - return rc; - } - - rc = ble_gatts_add_svcs(gatt_svr_svcs); - if (rc != 0) { - return rc; - } - - /* Setting a value for the read-only descriptor */ - gatt_svr_dsc_val = 0x99; - - return 0; -} diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/idf_component.yml b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/idf_component.yml deleted file mode 100644 index 2395bfe..0000000 --- a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/idf_component.yml +++ /dev/null @@ -1,11 +0,0 @@ -dependencies: - espressif/esp_hosted: - rules: - - if: target in [esp32p4, esp32h2] - version: ~2 - espressif/esp_wifi_remote: - rules: - - if: target in [esp32p4, esp32h2] - version: '>=0.10' - nimble_peripheral_utils: - path: ${IDF_PATH}/examples/bluetooth/nimble/common/nimble_peripheral_utils diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/main.c b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/main.c deleted file mode 100644 index 8b5b2ec..0000000 --- a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/main/main.c +++ /dev/null @@ -1,550 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#include "esp_log.h" -#include "nvs_flash.h" -/* BLE */ -#include "nimble/nimble_port.h" -#include "nimble/nimble_port_freertos.h" -#include "host/ble_hs.h" -#include "host/util/util.h" -#include "console/console.h" -#include "services/gap/ble_svc_gap.h" -#include "bleprph.h" - -#if CONFIG_EXAMPLE_EXTENDED_ADV -static uint8_t ext_adv_pattern_1[] = { - 0x02, 0x01, 0x06, - 0x03, 0x03, 0xab, 0xcd, - 0x03, 0x03, 0x18, 0x11, - 0x11, 0X09, 'n', 'i', 'm', 'b', 'l', 'e', '-', 'b', 'l', 'e', 'p', 'r', 'p', 'h', '-', 'e', -}; -#endif - -static const char *tag = "NimBLE_BLE_PRPH"; -static int bleprph_gap_event(struct ble_gap_event *event, void *arg); -#if CONFIG_EXAMPLE_RANDOM_ADDR -static uint8_t own_addr_type = BLE_OWN_ADDR_RANDOM; -#else -static uint8_t own_addr_type; -#endif - -void ble_store_config_init(void); - -/** - * Logs information about a connection to the console. - */ -static void -bleprph_print_conn_desc(struct ble_gap_conn_desc *desc) -{ - MODLOG_DFLT(INFO, "handle=%d our_ota_addr_type=%d our_ota_addr=", - desc->conn_handle, desc->our_ota_addr.type); - print_addr(desc->our_ota_addr.val); - MODLOG_DFLT(INFO, " our_id_addr_type=%d our_id_addr=", - desc->our_id_addr.type); - print_addr(desc->our_id_addr.val); - MODLOG_DFLT(INFO, " peer_ota_addr_type=%d peer_ota_addr=", - desc->peer_ota_addr.type); - print_addr(desc->peer_ota_addr.val); - MODLOG_DFLT(INFO, " peer_id_addr_type=%d peer_id_addr=", - desc->peer_id_addr.type); - print_addr(desc->peer_id_addr.val); - MODLOG_DFLT(INFO, " conn_itvl=%d conn_latency=%d supervision_timeout=%d " - "encrypted=%d authenticated=%d bonded=%d\n", - desc->conn_itvl, desc->conn_latency, - desc->supervision_timeout, - desc->sec_state.encrypted, - desc->sec_state.authenticated, - desc->sec_state.bonded); -} - -#if CONFIG_EXAMPLE_EXTENDED_ADV -/** - * Enables advertising with the following parameters: - * o General discoverable mode. - * o Undirected connectable mode. - */ -static void -ext_bleprph_advertise(void) -{ - struct ble_gap_ext_adv_params params; - struct os_mbuf *data; - uint8_t instance = 0; - int rc; - - /* First check if any instance is already active */ - if(ble_gap_ext_adv_active(instance)) { - return; - } - - /* use defaults for non-set params */ - memset (¶ms, 0, sizeof(params)); - - /* enable connectable advertising */ - params.connectable = 1; - - /* advertise using random addr */ - params.own_addr_type = BLE_OWN_ADDR_PUBLIC; - - params.primary_phy = BLE_HCI_LE_PHY_1M; - params.secondary_phy = BLE_HCI_LE_PHY_2M; - //params.tx_power = 127; - params.sid = 1; - - params.itvl_min = BLE_GAP_ADV_FAST_INTERVAL1_MIN; - params.itvl_max = BLE_GAP_ADV_FAST_INTERVAL1_MIN; - - /* configure instance 0 */ - rc = ble_gap_ext_adv_configure(instance, ¶ms, NULL, - bleprph_gap_event, NULL); - assert (rc == 0); - - /* in this case only scan response is allowed */ - - /* get mbuf for scan rsp data */ - data = os_msys_get_pkthdr(sizeof(ext_adv_pattern_1), 0); - assert(data); - - /* fill mbuf with scan rsp data */ - rc = os_mbuf_append(data, ext_adv_pattern_1, sizeof(ext_adv_pattern_1)); - assert(rc == 0); - - rc = ble_gap_ext_adv_set_data(instance, data); - assert (rc == 0); - - /* start advertising */ - rc = ble_gap_ext_adv_start(instance, 0, 0); - assert (rc == 0); -} -#else -/** - * Enables advertising with the following parameters: - * o General discoverable mode. - * o Undirected connectable mode. - */ -static void -bleprph_advertise(void) -{ - struct ble_gap_adv_params adv_params; - struct ble_hs_adv_fields fields; - const char *name; - int rc; - - /** - * Set the advertisement data included in our advertisements: - * o Flags (indicates advertisement type and other general info). - * o Advertising tx power. - * o Device name. - * o 16-bit service UUIDs (alert notifications). - */ - - memset(&fields, 0, sizeof fields); - - /* Advertise two flags: - * o Discoverability in forthcoming advertisement (general) - * o BLE-only (BR/EDR unsupported). - */ - fields.flags = BLE_HS_ADV_F_DISC_GEN | - BLE_HS_ADV_F_BREDR_UNSUP; - - /* Indicate that the TX power level field should be included; have the - * stack fill this value automatically. This is done by assigning the - * special value BLE_HS_ADV_TX_PWR_LVL_AUTO. - */ - fields.tx_pwr_lvl_is_present = 1; - fields.tx_pwr_lvl = BLE_HS_ADV_TX_PWR_LVL_AUTO; - - name = ble_svc_gap_device_name(); - fields.name = (uint8_t *)name; - fields.name_len = strlen(name); - fields.name_is_complete = 1; - - fields.uuids16 = (ble_uuid16_t[]) { - BLE_UUID16_INIT(GATT_SVR_SVC_ALERT_UUID) - }; - fields.num_uuids16 = 1; - fields.uuids16_is_complete = 1; - - rc = ble_gap_adv_set_fields(&fields); - if (rc != 0) { - MODLOG_DFLT(ERROR, "error setting advertisement data; rc=%d\n", rc); - return; - } - - /* Begin advertising. */ - memset(&adv_params, 0, sizeof adv_params); - adv_params.conn_mode = BLE_GAP_CONN_MODE_UND; - adv_params.disc_mode = BLE_GAP_DISC_MODE_GEN; - rc = ble_gap_adv_start(own_addr_type, NULL, BLE_HS_FOREVER, - &adv_params, bleprph_gap_event, NULL); - if (rc != 0) { - MODLOG_DFLT(ERROR, "error enabling advertisement; rc=%d\n", rc); - return; - } -} -#endif - -#if MYNEWT_VAL(BLE_POWER_CONTROL) -static void bleprph_power_control(uint16_t conn_handle) -{ - int rc; - - rc = ble_gap_read_remote_transmit_power_level(conn_handle, 0x01 ); // Attempting on LE 1M phy - assert (rc == 0); - - rc = ble_gap_set_transmit_power_reporting_enable(conn_handle, 0x1, 0x1); - assert (rc == 0); -} -#endif - -/** - * The nimble host executes this callback when a GAP event occurs. The - * application associates a GAP event callback with each connection that forms. - * bleprph uses the same callback for all connections. - * - * @param event The type of event being signalled. - * @param ctxt Various information pertaining to the event. - * @param arg Application-specified argument; unused by - * bleprph. - * - * @return 0 if the application successfully handled the - * event; nonzero on failure. The semantics - * of the return code is specific to the - * particular GAP event being signalled. - */ -static int -bleprph_gap_event(struct ble_gap_event *event, void *arg) -{ - struct ble_gap_conn_desc desc; - int rc; - - switch (event->type) { -#if defined(BLE_GAP_EVENT_LINK_ESTAB) - case BLE_GAP_EVENT_LINK_ESTAB: -#else - case BLE_GAP_EVENT_CONNECT: -#endif - /* A new connection was established or a connection attempt failed. */ - MODLOG_DFLT(INFO, "connection %s; status=%d ", - event->connect.status == 0 ? "established" : "failed", - event->connect.status); - if (event->connect.status == 0) { - rc = ble_gap_conn_find(event->connect.conn_handle, &desc); - assert(rc == 0); - bleprph_print_conn_desc(&desc); - } - MODLOG_DFLT(INFO, "\n"); - - if (event->connect.status != 0) { - /* Connection failed; resume advertising. */ -#if CONFIG_EXAMPLE_EXTENDED_ADV - ext_bleprph_advertise(); -#else - bleprph_advertise(); -#endif - } - -#if MYNEWT_VAL(BLE_POWER_CONTROL) - bleprph_power_control(event->connect.conn_handle); -#endif - return 0; - - case BLE_GAP_EVENT_DISCONNECT: - MODLOG_DFLT(INFO, "disconnect; reason=%d ", event->disconnect.reason); - bleprph_print_conn_desc(&event->disconnect.conn); - MODLOG_DFLT(INFO, "\n"); - - /* Connection terminated; resume advertising. */ -#if CONFIG_EXAMPLE_EXTENDED_ADV - ext_bleprph_advertise(); -#else - bleprph_advertise(); -#endif - return 0; - - case BLE_GAP_EVENT_CONN_UPDATE: - /* The central has updated the connection parameters. */ - MODLOG_DFLT(INFO, "connection updated; status=%d ", - event->conn_update.status); - rc = ble_gap_conn_find(event->conn_update.conn_handle, &desc); - assert(rc == 0); - bleprph_print_conn_desc(&desc); - MODLOG_DFLT(INFO, "\n"); - return 0; - - case BLE_GAP_EVENT_ADV_COMPLETE: - MODLOG_DFLT(INFO, "advertise complete; reason=%d", - event->adv_complete.reason); -#if CONFIG_EXAMPLE_EXTENDED_ADV - ext_bleprph_advertise(); -#else - bleprph_advertise(); -#endif - return 0; - - case BLE_GAP_EVENT_ENC_CHANGE: - /* Encryption has been enabled or disabled for this connection. */ - MODLOG_DFLT(INFO, "encryption change event; status=%d ", - event->enc_change.status); - rc = ble_gap_conn_find(event->enc_change.conn_handle, &desc); - assert(rc == 0); - bleprph_print_conn_desc(&desc); - MODLOG_DFLT(INFO, "\n"); - return 0; - - case BLE_GAP_EVENT_NOTIFY_TX: - MODLOG_DFLT(INFO, "notify_tx event; conn_handle=%d attr_handle=%d " - "status=%d is_indication=%d", - event->notify_tx.conn_handle, - event->notify_tx.attr_handle, - event->notify_tx.status, - event->notify_tx.indication); - return 0; - - case BLE_GAP_EVENT_SUBSCRIBE: - MODLOG_DFLT(INFO, "subscribe event; conn_handle=%d attr_handle=%d " - "reason=%d prevn=%d curn=%d previ=%d curi=%d\n", - event->subscribe.conn_handle, - event->subscribe.attr_handle, - event->subscribe.reason, - event->subscribe.prev_notify, - event->subscribe.cur_notify, - event->subscribe.prev_indicate, - event->subscribe.cur_indicate); - return 0; - - case BLE_GAP_EVENT_MTU: - MODLOG_DFLT(INFO, "mtu update event; conn_handle=%d cid=%d mtu=%d\n", - event->mtu.conn_handle, - event->mtu.channel_id, - event->mtu.value); - return 0; - - case BLE_GAP_EVENT_REPEAT_PAIRING: - /* We already have a bond with the peer, but it is attempting to - * establish a new secure link. This app sacrifices security for - * convenience: just throw away the old bond and accept the new link. - */ - - /* Delete the old bond. */ - rc = ble_gap_conn_find(event->repeat_pairing.conn_handle, &desc); - assert(rc == 0); - ble_store_util_delete_peer(&desc.peer_id_addr); - - /* Return BLE_GAP_REPEAT_PAIRING_RETRY to indicate that the host should - * continue with the pairing operation. - */ - return BLE_GAP_REPEAT_PAIRING_RETRY; - - case BLE_GAP_EVENT_PASSKEY_ACTION: - ESP_LOGI(tag, "PASSKEY_ACTION_EVENT started"); - struct ble_sm_io pkey = {0}; - int key = 0; - - if (event->passkey.params.action == BLE_SM_IOACT_DISP) { - pkey.action = event->passkey.params.action; - pkey.passkey = 123456; // This is the passkey to be entered on peer - ESP_LOGI(tag, "Enter passkey %" PRIu32 "on the peer side", pkey.passkey); - rc = ble_sm_inject_io(event->passkey.conn_handle, &pkey); - ESP_LOGI(tag, "ble_sm_inject_io result: %d", rc); - } else if (event->passkey.params.action == BLE_SM_IOACT_NUMCMP) { - ESP_LOGI(tag, "Passkey on device's display: %" PRIu32 , event->passkey.params.numcmp); - ESP_LOGI(tag, "Accept or reject the passkey through console in this format -> key Y or key N"); - pkey.action = event->passkey.params.action; - if (scli_receive_key(&key)) { - pkey.numcmp_accept = key; - } else { - pkey.numcmp_accept = 0; - ESP_LOGE(tag, "Timeout! Rejecting the key"); - } - rc = ble_sm_inject_io(event->passkey.conn_handle, &pkey); - ESP_LOGI(tag, "ble_sm_inject_io result: %d", rc); - } else if (event->passkey.params.action == BLE_SM_IOACT_OOB) { - static uint8_t tem_oob[16] = {0}; - pkey.action = event->passkey.params.action; - for (int i = 0; i < 16; i++) { - pkey.oob[i] = tem_oob[i]; - } - rc = ble_sm_inject_io(event->passkey.conn_handle, &pkey); - ESP_LOGI(tag, "ble_sm_inject_io result: %d", rc); - } else if (event->passkey.params.action == BLE_SM_IOACT_INPUT) { - ESP_LOGI(tag, "Enter the passkey through console in this format-> key 123456"); - pkey.action = event->passkey.params.action; - if (scli_receive_key(&key)) { - pkey.passkey = key; - } else { - pkey.passkey = 0; - ESP_LOGE(tag, "Timeout! Passing 0 as the key"); - } - rc = ble_sm_inject_io(event->passkey.conn_handle, &pkey); - ESP_LOGI(tag, "ble_sm_inject_io result: %d", rc); - } - return 0; - -#if MYNEWT_VAL(BLE_POWER_CONTROL) - case BLE_GAP_EVENT_TRANSMIT_POWER: - MODLOG_DFLT(INFO, "Transmit power event : status=%d conn_handle=%d reason=%d " - "phy=%d power_level=%x power_level_flag=%d delta=%d", - event->transmit_power.status, - event->transmit_power.conn_handle, - event->transmit_power.reason, - event->transmit_power.phy, - event->transmit_power.transmit_power_level, - event->transmit_power.transmit_power_level_flag, - event->transmit_power.delta); - return 0; - - case BLE_GAP_EVENT_PATHLOSS_THRESHOLD: - MODLOG_DFLT(INFO, "Pathloss threshold event : conn_handle=%d current path loss=%d " - "zone_entered =%d", - event->pathloss_threshold.conn_handle, - event->pathloss_threshold.current_path_loss, - event->pathloss_threshold.zone_entered); - return 0; -#endif - } - - return 0; -} - -static void -bleprph_on_reset(int reason) -{ - MODLOG_DFLT(ERROR, "Resetting state; reason=%d\n", reason); -} - -#if CONFIG_EXAMPLE_RANDOM_ADDR -static void -ble_app_set_addr(void) -{ - ble_addr_t addr; - int rc; - - /* generate new non-resolvable private address */ - rc = ble_hs_id_gen_rnd(0, &addr); - assert(rc == 0); - - /* set generated address */ - rc = ble_hs_id_set_rnd(addr.val); - - assert(rc == 0); -} -#endif - -static void -bleprph_on_sync(void) -{ - int rc; - -#if CONFIG_EXAMPLE_RANDOM_ADDR - /* Generate a non-resolvable private address. */ - ble_app_set_addr(); -#endif - - /* Make sure we have proper identity address set (public preferred) */ -#if CONFIG_EXAMPLE_RANDOM_ADDR - rc = ble_hs_util_ensure_addr(1); -#else - rc = ble_hs_util_ensure_addr(0); -#endif - assert(rc == 0); - - /* Figure out address to use while advertising (no privacy for now) */ - rc = ble_hs_id_infer_auto(0, &own_addr_type); - if (rc != 0) { - MODLOG_DFLT(ERROR, "error determining address type; rc=%d\n", rc); - return; - } - - /* Printing ADDR */ - uint8_t addr_val[6] = {0}; - rc = ble_hs_id_copy_addr(own_addr_type, addr_val, NULL); - - MODLOG_DFLT(INFO, "Device Address: "); - print_addr(addr_val); - MODLOG_DFLT(INFO, "\n"); - /* Begin advertising. */ -#if CONFIG_EXAMPLE_EXTENDED_ADV - ext_bleprph_advertise(); -#else - bleprph_advertise(); -#endif -} - -void bleprph_host_task(void *param) -{ - ESP_LOGI(tag, "BLE Host Task Started"); - /* This function will return only when nimble_port_stop() is executed */ - nimble_port_run(); - - nimble_port_freertos_deinit(); -} - -void -app_main(void) -{ - int rc; - - /* Initialize NVS — it is used to store PHY calibration data */ - esp_err_t ret = nvs_flash_init(); - if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) { - ESP_ERROR_CHECK(nvs_flash_erase()); - ret = nvs_flash_init(); - } - ESP_ERROR_CHECK(ret); - - ret = nimble_port_init(); - if (ret != ESP_OK) { - ESP_LOGE(tag, "Failed to init nimble %d ", ret); - return; - } - /* Initialize the NimBLE host configuration. */ - ble_hs_cfg.reset_cb = bleprph_on_reset; - ble_hs_cfg.sync_cb = bleprph_on_sync; - ble_hs_cfg.gatts_register_cb = gatt_svr_register_cb; - ble_hs_cfg.store_status_cb = ble_store_util_status_rr; - - ble_hs_cfg.sm_io_cap = CONFIG_EXAMPLE_IO_TYPE; -#ifdef CONFIG_EXAMPLE_BONDING - ble_hs_cfg.sm_bonding = 1; - /* Enable the appropriate bit masks to make sure the keys - * that are needed are exchanged - */ - ble_hs_cfg.sm_our_key_dist |= BLE_SM_PAIR_KEY_DIST_ENC; - ble_hs_cfg.sm_their_key_dist |= BLE_SM_PAIR_KEY_DIST_ENC; -#endif -#ifdef CONFIG_EXAMPLE_MITM - ble_hs_cfg.sm_mitm = 1; -#endif -#ifdef CONFIG_EXAMPLE_USE_SC - ble_hs_cfg.sm_sc = 1; -#else - ble_hs_cfg.sm_sc = 0; -#endif -#ifdef CONFIG_EXAMPLE_RESOLVE_PEER_ADDR - /* Stores the IRK */ - ble_hs_cfg.sm_our_key_dist |= BLE_SM_PAIR_KEY_DIST_ID; - ble_hs_cfg.sm_their_key_dist |= BLE_SM_PAIR_KEY_DIST_ID; -#endif - - rc = gatt_svr_init(); - assert(rc == 0); - - /* Set the default device name. */ - rc = ble_svc_gap_device_name_set("nimble-bleprph"); - assert(rc == 0); - - /* XXX Need to have template for store */ - ble_store_config_init(); - - nimble_port_freertos_init(bleprph_host_task); - - /* Initialize command line interface to accept input from user */ - rc = scli_init(); - if (rc != ESP_OK) { - ESP_LOGE(tag, "scli_init() failed"); - } -} diff --git a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/sdkconfig.defaults b/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/sdkconfig.defaults deleted file mode 100644 index 2e66a8a..0000000 --- a/resources/espressif__esp_hosted/examples/host_nimble_bleprph_host_only_vhci/sdkconfig.defaults +++ /dev/null @@ -1,23 +0,0 @@ -# Override some defaults so BT stack is enabled -# in this example - -# -# BT config -# -CONFIG_BT_ENABLED=y -CONFIG_BT_CONTROLLER_DISABLED=y -CONFIG_BT_BLUEDROID_ENABLED=n -CONFIG_BT_NIMBLE_ENABLED=y -CONFIG_BT_NIMBLE_TRANSPORT_UART=n - -# -# Wi-Fi Remote -# -CONFIG_ESP_WIFI_REMOTE_LIBRARY_HOSTED=y - -# -# Enable ESP Hosted BT -# Used as VHCI transport between BT Host and Controller -# -CONFIG_ESP_HOSTED_ENABLE_BT_NIMBLE=y -CONFIG_ESP_HOSTED_NIMBLE_HCI_VHCI=y diff --git a/resources/espressif__esp_hosted/external_examples/8d519870/slave/CMakeLists.txt b/resources/espressif__esp_hosted/external_examples/8d519870/slave/CMakeLists.txt deleted file mode 100644 index 7ae51de..0000000 --- a/resources/espressif__esp_hosted/external_examples/8d519870/slave/CMakeLists.txt +++ /dev/null @@ -1,34 +0,0 @@ -# The following lines of boilerplate have to be in your project's CMakeLists -# in this exact order for cmake to work correctly -cmake_minimum_required(VERSION 3.5) - -include($ENV{IDF_PATH}/tools/cmake/project.cmake) -list(APPEND EXCLUDE_COMPONENTS lwip esp_netif) -#set(COMPONENTS main nvs_flash protocomm esp_rom) -set(COMPONENTS esp_timer esptool_py bootloader main nvs_flash esp_rom esp_wifi protocomm driver) -#set(COMPONENTS main nvs_flash protocomm esp_gdbstub) # incase gdbsub needed -project(network_adapter) -idf_build_set_property(COMPILE_OPTIONS "-fdiagnostics-color=always" APPEND) - -### add custom dependency for generated version header file -### reference: https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-guides/build-system.html#source-code-generation -if(EXISTS "${PROJECT_DIR}/main/coprocessor_fw_version.txt") - add_custom_command(OUTPUT "${PROJECT_DIR}/main/coprocessor_fw_version.h" - COMMAND ${CMAKE_COMMAND} -P "${PROJECT_DIR}/ExtractVersion.cmake" - DEPENDS "${PROJECT_DIR}/main/coprocessor_fw_version.txt" - VERBATIM) -elseif(EXISTS "${PROJECT_DIR}/../idf_component.yml") - add_custom_command(OUTPUT "${PROJECT_DIR}/main/coprocessor_fw_version.h" - COMMAND ${CMAKE_COMMAND} -P "${PROJECT_DIR}/ExtractVersion.cmake" - DEPENDS "${PROJECT_DIR}/../idf_component.yml" - VERBATIM) -else() - message(FATAL_ERROR "***** coprocessor_fw_version.txt and idf_component.yml NOT found.\nUnable to generate comprocessor fw version info to build") -endif() - -add_custom_target(version_header DEPENDS "${PROJECT_DIR}/main/coprocessor_fw_version.h") -add_dependencies(${PROJECT_NAME}.elf version_header) - -### clean up generated file when project is cleaned -set_property(DIRECTORY "${PROJECT_DIR}" APPEND PROPERTY - ADDITIONAL_CLEAN_FILES "${PROJECT_DIR}/main/coprocessor_fw_version.h") diff --git a/resources/espressif__esp_hosted/external_examples/8d519870/slave/ExtractVersion.cmake b/resources/espressif__esp_hosted/external_examples/8d519870/slave/ExtractVersion.cmake deleted file mode 100644 index 6d77c04..0000000 --- a/resources/espressif__esp_hosted/external_examples/8d519870/slave/ExtractVersion.cmake +++ /dev/null @@ -1,43 +0,0 @@ -### if code is from Component Registry, generate from coprocessor_fw_version.txt -### if code is from git, generate from top level idf_component.yml - -if(EXISTS "${CMAKE_CURRENT_LIST_DIR}/main/coprocessor_fw_version.txt") - file(READ "${CMAKE_CURRENT_LIST_DIR}/main/coprocessor_fw_version.txt" VERSION_CONTENTS) - set(VERSION_REGEX "^([0-9]+).([0-9]+).([0-9]+)") - string(REGEX MATCH "${VERSION_REGEX}" VERSION_MATCH "${VERSION_CONTENTS}") - if(VERSION_MATCH) - set(VERSION_GENERATOR "coprocessor_fw_version.txt") - else() - message(FATAL_ERROR "version info not found in coprocessor_fw_version.txt") - endif() -elseif(EXISTS "${CMAKE_CURRENT_LIST_DIR}/../idf_component.yml") - file(READ "${CMAKE_CURRENT_LIST_DIR}/../idf_component.yml" VERSION_CONTENTS) - set(VERSION_REGEX "^version: \"([0-9]+).([0-9]+).([0-9]+)\"") - string(REGEX MATCH "${VERSION_REGEX}" VERSION_MATCH "${VERSION_CONTENTS}") - if(VERSION_MATCH) - set(VERSION_GENERATOR "idf_component.yml") - else() - message(FATAL_ERROR "version info not found in idf_component.yml") - endif() -else() - message(FATAL_ERROR "idf_component.yml not found") -endif() - -# generate header file from the version info -file(WRITE "${CMAKE_CURRENT_LIST_DIR}/main/coprocessor_fw_version.h" - "/* this is a generated file - do not modify\n" - " * generated from ${VERSION_GENERATOR} */\n" - "#ifndef __COPROCESSOR_FW_VERSION_H__\n" - "#define __COPROCESSOR_FW_VERSION_H__\n" - "#define PROJECT_VERSION_MAJOR_1 ${CMAKE_MATCH_1}\n" - "#define PROJECT_VERSION_MINOR_1 ${CMAKE_MATCH_2}\n" - "#define PROJECT_VERSION_PATCH_1 ${CMAKE_MATCH_3}\n" - "#endif\n") - -set(PROJECT_VERSION_MAJOR_1 "${CMAKE_MATCH_1}") -set(PROJECT_VERSION_MINOR_1 "${CMAKE_MATCH_2}") -set(PROJECT_VERSION_PATCH_1 "${CMAKE_MATCH_3}") - -message(*************************************************************************************) -message(" Building ESP-Hosted-MCU FW :: ${PROJECT_VERSION_MAJOR_1}.${PROJECT_VERSION_MINOR_1}.${PROJECT_VERSION_PATCH_1} ") -message(*************************************************************************************) diff --git a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/CMakeLists.txt b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/CMakeLists.txt deleted file mode 100644 index b0d22bb..0000000 --- a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/CMakeLists.txt +++ /dev/null @@ -1,33 +0,0 @@ -if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/common") - set(common_dir "${CMAKE_CURRENT_SOURCE_DIR}/common") -else() - set(common_dir "../../common") -endif() - -set(COMPONENT_SRCS "slave_control.c" "${common_dir}/proto/esp_hosted_rpc.pb-c.c" "protocomm_pserial.c" "app_main.c" "slave_bt.c" "mempool.c" "stats.c" "mempool_ll.c") -set(COMPONENT_ADD_INCLUDEDIRS "." "${common_dir}" "${common_dir}/log" "${common_dir}/proto" "${common_dir}/rpc" "${common_dir}/transport") - -# Select BT UART code based on IDF Target -if(CONFIG_IDF_TARGET_ESP32) - list(APPEND COMPONENT_SRCS slave_bt_uart_esp32.c) -elseif(CONFIG_IDF_TARGET_ESP32C3 OR CONFIG_IDF_TARGET_ESP32S3) - list(APPEND COMPONENT_SRCS slave_bt_uart_esp32c3_s3.c) -else() - list(APPEND COMPONENT_SRCS slave_bt_uart_esp32xx.c) -endif() - -if(CONFIG_ESP_SDIO_HOST_INTERFACE) - list(APPEND COMPONENT_SRCS sdio_slave_api.c) -elseif(CONFIG_ESP_SPI_HOST_INTERFACE) - list(APPEND COMPONENT_SRCS spi_slave_api.c) -elseif(CONFIG_ESP_SPI_HD_MODE) - list(APPEND COMPONENT_SRCS spi_hd_slave_api.c) -else(CONFIG_ESP_UART_HOST_INTERFACE) - list(APPEND COMPONENT_SRCS uart_slave_api.c) -endif() - -register_component() - -# Add directory of protocomm_priv.h to include paths -idf_component_get_property(protocomm_dir protocomm COMPONENT_DIR) -target_include_directories(${COMPONENT_LIB} PRIVATE "${protocomm_dir}/src/common") diff --git a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/Kconfig.projbuild b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/Kconfig.projbuild deleted file mode 100644 index 4025af2..0000000 --- a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/Kconfig.projbuild +++ /dev/null @@ -1,845 +0,0 @@ -menu "Example Configuration" - - choice ESP_HOST_DEV_BOARD - bool "Configure GPIOs based on an ESP Development Board" - depends on IDF_TARGET_ESP32C6 - default ESP_HOST_DEV_BOARD_NONE - help - "Preconfigures GPIOs to use based on an ESP Development Board" - - config ESP_HOST_DEV_BOARD_NONE - bool "No specific development board" - - config ESP_HOST_DEV_BOARD_P4_FUNC_BOARD - bool "ESP32-P4-Function-EV-Board" - - endchoice - - choice ESP_HOST_INTERFACE - bool "Transport layer" - default ESP_SDIO_HOST_INTERFACE if SOC_SDIO_SLAVE_SUPPORTED - default ESP_SPI_HOST_INTERFACE - help - Bus interface to be used for communication with the host - - config ESP_SPI_HOST_INTERFACE - bool "SPI Full-duplex" - help - Enable/Disable SPI Full-duplex host interface - - config ESP_SDIO_HOST_INTERFACE - bool "SDIO" - depends on SOC_SDIO_SLAVE_SUPPORTED - help - Enable/Disable SDIO host interface - - # SPI Half Duplex is not supported in ESP32 - config ESP_SPI_HD_HOST_INTERFACE - bool "SPI Half-duplex" - depends on !IDF_TARGET_ESP32 - help - Enable/Disable SPI Half-duplex host interface - - config ESP_UART_HOST_INTERFACE - bool "UART" - help - Enable/Disable UART host interface - endchoice - - menu "SPI Full-duplex Configuration" - depends on ESP_SPI_HOST_INTERFACE - - choice ESP_SPI_PRIV_MODE - bool "Slave SPI mode" - default ESP_SPI_PRIV_MODE_2 if IDF_TARGET_ESP32 - default ESP_SPI_PRIV_MODE_3 - - config ESP_SPI_PRIV_MODE_0 - bool "Slave SPI mode 0" - - config ESP_SPI_PRIV_MODE_1 - bool "Slave SPI mode 1" - - config ESP_SPI_PRIV_MODE_2 - bool "Slave SPI mode 2" - - config ESP_SPI_PRIV_MODE_3 - bool "Slave SPI mode 3" - endchoice - - config ESP_SPI_MODE - int - default 0 if ESP_SPI_PRIV_MODE_0 - default 1 if ESP_SPI_PRIV_MODE_1 - default 2 if ESP_SPI_PRIV_MODE_2 - default 3 if ESP_SPI_PRIV_MODE_3 - default 3 - - - choice SPI_CONTROLLER - bool "SPI controller to use" - default SPI_HSPI - - config SPI_HSPI - bool "FSPI/HSPI" - help - "HSPI/FSPI: SPI_controller_1" - - config SPI_VSPI - depends on IDF_TARGET_ESP32 - bool "VSPI" - help - "VSPI: SPI_controller_2" - - endchoice - - config ESP_SPI_CONTROLLER - int - default 2 if SPI_VSPI - default 1 - - menu "Hosted SPI GPIOs" - config ESP_SPI_HSPI_GPIO_MOSI - depends on SPI_HSPI - int "Slave GPIO pin for Host MOSI" - default 20 if ESP_HOST_DEV_BOARD_P4_FUNC_BOARD - default 13 if IDF_TARGET_ESP32 - default 11 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 - default 7 - help - SPI controller Host MOSI - - config ESP_SPI_HSPI_GPIO_MISO - depends on SPI_HSPI - int "Slave GPIO pin for Host MISO" - default 21 if ESP_HOST_DEV_BOARD_P4_FUNC_BOARD - default 12 if IDF_TARGET_ESP32 - default 13 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 - default 2 - help - SPI controller Host MISO - - config ESP_SPI_HSPI_GPIO_CLK - depends on SPI_HSPI - int "Slave GPIO pin for Host CLK" - default 19 if ESP_HOST_DEV_BOARD_P4_FUNC_BOARD - default 3 if IDF_TARGET_ESP32C5 - default 14 if IDF_TARGET_ESP32 - default 12 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 - default 6 - help - SPI controller Host CLK - - config ESP_SPI_HSPI_GPIO_CS - depends on SPI_HSPI - int "Slave GPIO pin for Host CS" - default 18 if ESP_HOST_DEV_BOARD_P4_FUNC_BOARD - default 15 if IDF_TARGET_ESP32 - default 10 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 - default 10 - help - SPI controller Host CS - - config ESP_SPI_VSPI_GPIO_MOSI - depends on SPI_VSPI - int "Slave GPIO pin for Host MOSI" - default 23 - help - SPI controller Host MOSI - - config ESP_SPI_VSPI_GPIO_MISO - depends on SPI_VSPI - int "Slave GPIO pin for Host MISO" - default 19 - help - SPI controller Host MISO - - config ESP_SPI_VSPI_GPIO_CLK - depends on SPI_VSPI - int "Slave GPIO pin for Host CLK" - default 18 - help - SPI controller Host CLK - - config ESP_SPI_VSPI_GPIO_CS - depends on SPI_VSPI - int "Slave GPIO pin for Host CS" - default 5 - help - SPI controller Host CS - - config ESP_SPI_GPIO_MOSI - int - default ESP_SPI_VSPI_GPIO_MOSI if SPI_VSPI - default ESP_SPI_HSPI_GPIO_MOSI - - config ESP_SPI_GPIO_MISO - int - default ESP_SPI_VSPI_GPIO_MISO if SPI_VSPI - default ESP_SPI_HSPI_GPIO_MISO - - config ESP_SPI_GPIO_CLK - int - default ESP_SPI_VSPI_GPIO_CLK if SPI_VSPI - default ESP_SPI_HSPI_GPIO_CLK - - config ESP_SPI_GPIO_CS - int - default ESP_SPI_VSPI_GPIO_CS if SPI_VSPI - default ESP_SPI_HSPI_GPIO_CS - - config ESP_SPI_GPIO_HANDSHAKE - int "Slave GPIO pin for handshake" - default 22 if ESP_HOST_DEV_BOARD_P4_FUNC_BOARD - default 4 if IDF_TARGET_ESP32C5 - default 3 if IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C6 - default 17 if IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32S2 - default 26 - help - Slave GPIO pin to use for handshake with other spi controller - - config ESP_SPI_GPIO_DATA_READY - int "Slave GPIO pin for data ready interrupt" - default 23 if ESP_HOST_DEV_BOARD_P4_FUNC_BOARD - default 0 if IDF_TARGET_ESP32C5 - default 13 if IDF_TARGET_ESP32C5 - default 4 - help - Slave GPIO pin for indicating host that SPI slave has data to be read by host - - config ESP_SPI_GPIO_RESET - int "Slave GPIO pin to reset itself" - default -1 - help - Host uses this pin to reset the slave ESP. To re-use ESP 'RST' or 'EN' GPIO, set value to -1 - endmenu - - config ESP_SPI_DEASSERT_HS_ON_CS - bool "Deassert Handshake when SPI CS is deasserted" - default y - help - Deassert Handshake and prepare a new SPI transaction only after - CS has been deasserted. This helps prevent data loss with MCUs - that delay deasserting CS after the end of a SPI transaction - by prematurely starting a new slave SPI transaction - since CS is detected by the slave as still asserted. - - config ESP_SPI_TX_Q_SIZE - int "ESP to Host SPI queue size" - default 10 if IDF_TARGET_ESP32 - default 6 if IDF_TARGET_ESP32C2 && BT_ENABLED - default 10 if IDF_TARGET_ESP32C2 - default 20 - help - Very small tx queue will lower ESP -- SPI --> Host data rate - - config ESP_SPI_RX_Q_SIZE - int "Host to ESP SPI queue size" - default 10 if IDF_TARGET_ESP32 - default 6 if IDF_TARGET_ESP32C2 && BT_ENABLED - default 7 if IDF_TARGET_ESP32C2 - default 20 - help - Very small RX queue will lower ESP <-- SPI -- Host data rate - - config ESP_SPI_CHECKSUM - bool "SPI checksum ENABLE/DISABLE" - default y - help - ENABLE/DISABLE software SPI checksum - endmenu - - menu "SDIO Configuration" - depends on ESP_SDIO_HOST_INTERFACE - - config ESP_SDIO_STREAMING_MODE - bool "Enable SDIO Streaming Mode" - default y - help - Enable Streaming Mode. Host to receive queued data from slave - as one stream instead of individual packets. This can improve - host SDIO read performance by doing one large read transaction - instead of many smaller read transactions. - - config ESP_SDIO_GPIO_RESET - int "Slave GPIO pin to reset itself" - default -1 - help - Host uses this pin to reset the slave ESP. To re-use ESP 'RST' or 'EN' GPIO, set value to -1 - - choice - prompt "SDIO Bus Speed" - default ESP_SDIO_HIGH_SPEED - help - Select the SDIO Slave Bus Speed. Actual speed in use depends on SDIO bus speed the SDIO Master can support - - config ESP_SDIO_DEFAULT_SPEED - bool "Default Speed (20 MHz)" - - config ESP_SDIO_HIGH_SPEED - bool "High Speed (40 MHz)" - endchoice - - # from /components/soc//include/soc/sdio_slave_pins.h - menu "Hosted SDIO GPIOs" - config ESP_SDIO_PIN_CMD - int "CMD GPIO number" - range 15 15 if IDF_TARGET_ESP32 - range 18 18 if IDF_TARGET_ESP32C6 - range 10 10 if IDF_TARGET_ESP32C5 - help - "Value cannot be configured. Displayed for reference." - - config ESP_SDIO_PIN_CLK - int "CLK GPIO number" - range 14 14 if IDF_TARGET_ESP32 - range 19 19 if IDF_TARGET_ESP32C6 - range 9 9 if IDF_TARGET_ESP32C5 - help - "Value cannot be configured. Displayed for reference." - - config ESP_SDIO_PIN_D0 - int "D0 GPIO number" - range 2 2 if IDF_TARGET_ESP32 - range 20 20 if IDF_TARGET_ESP32C6 - range 8 8 if IDF_TARGET_ESP32C5 - help - "Value cannot be configured. Displayed for reference." - - config ESP_SDIO_PIN_D1 - int "D1 GPIO number" - range 4 4 if IDF_TARGET_ESP32 - range 21 21 if IDF_TARGET_ESP32C6 - range 7 7 if IDF_TARGET_ESP32C5 - help - "Value cannot be configured. Displayed for reference." - - config ESP_SDIO_PIN_D2 - int "D2 GPIO number" - range 12 12 if IDF_TARGET_ESP32 - range 22 22 if IDF_TARGET_ESP32C6 - range 14 14 if IDF_TARGET_ESP32C5 - help - "Value cannot be configured. Displayed for reference." - - config ESP_SDIO_PIN_D3 - int "D3 GPIO number" - range 13 13 if IDF_TARGET_ESP32 - range 23 23 if IDF_TARGET_ESP32C6 - range 13 13 if IDF_TARGET_ESP32C5 - help - "Value cannot be configured. Displayed for reference." - endmenu - - choice - prompt "SDIO Slave Timing" - default ESP_SDIO_PSEND_PSAMPLE - help - Select the SDIO timing used by slave. Default value works with most - SDMMC controllers but if transfer errors are encountered, selecting a - different timing may help resolve the errors. - See https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/peripherals/sdio_slave.html#_CPPv419sdio_slave_timing_t - for more information - - config ESP_SDIO_PSEND_PSAMPLE - bool "Send at positive edge, sample at positive edge" - - config ESP_SDIO_NSEND_PSAMPLE - bool "Send at negative edge, sample at positive edge" - - config ESP_SDIO_PSEND_NSAMPLE - bool "Send at positive edge, sample at negative edge" - - config ESP_SDIO_NSEND_NSAMPLE - bool "Send at negative edge, sample at negative edge" - endchoice - - config ESP_SDIO_TX_Q_SIZE - int "SDIO TX queue size" - default 20 - help - Very small TX queue will lower ESP --> SDIO -- Host data rate - - config ESP_SDIO_RX_Q_SIZE - int "SDIO RX queue size" - default 20 - help - Very small RX queue will lower ESP <-- SDIO -- Host data rate - - config ESP_SDIO_CHECKSUM - bool "SDIO checksum ENABLE/DISABLE" - default n - help - ENABLE/DISABLE software SDIO checksum - - endmenu - - menu "SPI Half-duplex Configuration" - depends on ESP_SPI_HD_HOST_INTERFACE - - choice ESP_SPI_HD_PRIV_MODE - bool "Slave SPI mode" - default ESP_SPI_HD_PRIV_MODE_3 - - config ESP_SPI_HD_PRIV_MODE_0 - bool "Slave SPI mode 0" - - config ESP_SPI_HD_PRIV_MODE_1 - bool "Slave SPI mode 1" - - config ESP_SPI_HD_PRIV_MODE_2 - bool "Slave SPI mode 2" - - config ESP_SPI_HD_PRIV_MODE_3 - bool "Slave SPI mode 3" - endchoice - - config ESP_SPI_HD_MODE - int - default 0 if ESP_SPI_HD_PRIV_MODE_0 - default 1 if ESP_SPI_HD_PRIV_MODE_1 - default 2 if ESP_SPI_HD_PRIV_MODE_2 - default 3 if ESP_SPI_HD_PRIV_MODE_3 - help - SPI Mode to use. The same mode must be used on both host and slave. - - choice ESP_SPI_HD_PRIV_INTERFACE_NUM_DATA_LINES - bool "Num Data Lines to use" - default ESP_SPI_HD_PRIV_INTERFACE_4_DATA_LINES - help - Number of Data Lines to use in the SPI HD interface - - config ESP_SPI_HD_PRIV_INTERFACE_4_DATA_LINES - bool "4 data lines" - - config ESP_SPI_HD_PRIV_INTERFACE_2_DATA_LINES - bool "2 data lines" - endchoice - - config ESP_SPI_HD_INTERFACE_NUM_DATA_LINES - int - default 4 if ESP_SPI_HD_PRIV_INTERFACE_4_DATA_LINES - default 2 if ESP_SPI_HD_PRIV_INTERFACE_2_DATA_LINES - - menu "GPIOs" - - config ESP_SPI_HD_GPIO_CS - int "Slave GPIO pin for Host CS" - default 18 if ESP_HOST_DEV_BOARD_P4_FUNC_BOARD - default 10 - help - SPI HD controller Host CS - - config ESP_SPI_HD_GPIO_CLK - int "Slave GPIO pin for Host CLK" - default 19 if ESP_HOST_DEV_BOARD_P4_FUNC_BOARD - default 3 if IDF_TARGET_ESP32C5 - default 6 - help - SPI HD controller Host CS - - config ESP_SPI_HD_GPIO_D0 - int "Slave GPIO pin for Host D0" - default 20 if ESP_HOST_DEV_BOARD_P4_FUNC_BOARD - default 7 - help - SPI HD controller Host D0 - - config ESP_SPI_HD_GPIO_D1 - int "Slave GPIO pin for Host D1" - default 21 if ESP_HOST_DEV_BOARD_P4_FUNC_BOARD - default 2 - help - SPI HD controller Host D1 - - config ESP_SPI_HD_GPIO_D2 - depends on ESP_SPI_HD_PRIV_INTERFACE_4_DATA_LINES - int "Slave GPIO pin for Host D2" - default 22 if ESP_HOST_DEV_BOARD_P4_FUNC_BOARD - default 5 - help - SPI HD controller Host D2 - - config ESP_SPI_HD_GPIO_D3 - depends on ESP_SPI_HD_PRIV_INTERFACE_4_DATA_LINES - int "Slave GPIO pin for Host D3" - default 23 if ESP_HOST_DEV_BOARD_P4_FUNC_BOARD - default 4 - help - SPI HD controller Host D3 - - config ESP_SPI_HD_GPIO_DATA_READY - int "Slave GPIO pin for Data Ready" - default 2 if ESP_HOST_DEV_BOARD_P4_FUNC_BOARD - default 0 if IDF_TARGET_ESP32C5 - default 11 - help - Slave GPIO pin for indicating host that SPI slave has data to be read by host - - choice ESP_SPI_HD_DATAREADY_GPIO_CONFIG - bool "DataReady GPIO Config" - default ESP_DR_ACTIVE_HIGH - help - Configure Data Ready to be active high (default) or active low - - config ESP_DR_ACTIVE_HIGH - bool "Active High" - config ESP_DR_ACTIVE_LOW - bool "Active Low" - endchoice - - config ESP_SPI_HD_GPIO_RESET - int "Slave GPIO pin to reset itself" - default -1 - help - Host uses this pin to reset the slave ESP. To re-use ESP 'RST' or 'EN' GPIO, set value to -1 - - endmenu - - config ESP_SPI_HD_Q_SIZE - int "Queue size" - default 12 if IDF_TARGET_ESP32C2 - default 10 if IDF_TARGET_ESP32C5 - default 20 - help - Very small queue will lower SPI HD data rate - - config ESP_SPI_HD_CHECKSUM - bool "Checksum ENABLE/DISABLE" - default y - help - ENABLE/DISABLE SPI HD software checksum - - endmenu - - menu "UART Configuration" - depends on ESP_UART_HOST_INTERFACE - - config ESP_UART_PORT - int "UART Port to Use" - default 1 - range 0 2 if IDF_TARGET_ESP32 - range 0 1 if IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C5 || IDF_TARGET_ESP32C6 - range 0 2 if IDF_TARGET_ESP32C61 - range 0 1 if IDF_TARGET_ESP32S2 - range 0 2 if IDF_TARGET_ESP32S3 - help - Select UART Port to Use. Do not select the UART Port used for console output (if enabled) - - config ESP_UART_PIN_TX - int "TX GPIO number" - default 13 if IDF_TARGET_ESP32 - default 5 if IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C3 - default 14 if IDF_TARGET_ESP32C5 - default 21 if IDF_TARGET_ESP32C6 - default 5 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 - help - GPIO used for UART TX - - config ESP_UART_PIN_RX - int "RX GPIO number" - default 12 if IDF_TARGET_ESP32 - default 4 if IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C3 - default 13 if IDF_TARGET_ESP32C5 - default 20 if IDF_TARGET_ESP32C6 - default 4 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3 - help - GPIO used for UART RX - - config ESP_UART_BAUDRATE - int "Baud Rate" - default 921600 - range 9600 3500000 - help - Baud Rate to Use. Make sure Hardware supports the rate. Standard rates are 9600, 19200, 38400, 57600, 115200, 460800, 921600 - - config ESP_UART_NUM_DATA_BITS - int "Number of Data Bits" - default 8 - range 5 8 - help - Number of Data Bits to use - - choice ESP_UART_PRIV_PARITY - bool "Parity" - - config ESP_UART_PRIV_PARITY_NONE - bool "None" - - config ESP_UART_PRIV_PARITY_EVEN - bool "Even" - - config ESP_UART_PRIV_PARITY_ODD - bool "Odd" - endchoice - - config ESP_UART_PARITY - int - default 0 if ESP_UART_PRIV_PARITY_NONE - default 1 if ESP_UART_PRIV_PARITY_EVEN - default 2 if ESP_UART_PRIV_PARITY_ODD - - choice ESP_UART_PRIV_STOP_BITS - bool "Number of Stop Bits" - - config ESP_UART_PRIV_STOP_BITS_1 - bool "1" - - config ESP_UART_PRIV_STOP_BITS_1_5 - bool "1.5" - - config ESP_UART_PRIV_STOP_BITS_2 - bool "2" - endchoice - - config ESP_UART_STOP_BITS - int - default 0 if ESP_UART_PRIV_STOP_BITS_1 - default 1 if ESP_UART_PRIV_STOP_BITS_1_5 - default 2 if ESP_UART_PRIV_STOP_BITS_2 - - config ESP_UART_GPIO_RESET - int "Slave GPIO pin to reset itself" - default -1 - help - Host uses this pin to reset the slave ESP. To re-use ESP 'RST' or 'EN' GPIO, set value to -1 - - config ESP_UART_TX_Q_SIZE - int "Tx Queue Size" - default 5 - help - UART rates are low, so large queue sizes are not required - - config ESP_UART_RX_Q_SIZE - int "Rx Queue Size" - default 5 - help - UART rates are low, so large queue sizes are not required - - config ESP_UART_CHECKSUM - bool "UART checksum ENABLE/DISABLE" - default y - help - ENABLE/DISABLE software UART checksum - endmenu - - config ESP_GPIO_SLAVE_RESET - int - default ESP_SPI_GPIO_RESET if ESP_SPI_HOST_INTERFACE - default ESP_SDIO_GPIO_RESET if ESP_SDIO_HOST_INTERFACE - default ESP_SPI_HD_GPIO_RESET if ESP_SPI_HD_HOST_INTERFACE - default ESP_UART_GPIO_RESET if ESP_UART_HOST_INTERFACE - - # HCI UART menu for ESP32-C3/S3 - menu "HCI UART Settings" - depends on BT_CTRL_HCI_MODE_UART_H4 && (IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3) - - # only S3 has two UART ports to select from - config ESP_HOSTED_PRIV_BT_UART_PORT_ESP32_S3 - int "HCI UART Port" - depends on IDF_TARGET_ESP32S3 - default 1 - range 1 2 - help - UART Port for HCI - - config ESP_HOSTED_BT_UART_PORT_ESP32_C3_S3 - int - default ESP_HOSTED_PRIV_BT_UART_PORT_ESP32_S3 if IDF_TARGET_ESP32S3 - default 1 - - config ESP_HOSTED_BT_UART_BAUDRATE_ESP32_C3_S3 - int "HCI UART Baudrate" - range 115200 921600 - default 921600 - help - UART Baudrate for HCI. Please use standard baudrate. - - config ESP_HOSTED_BT_UART_TX_PIN_ESP32_C3_S3 - int "HCI UART Tx Pin" - default 5 if IDF_TARGET_ESP32C3 - default 16 - help - UART Tx Pin for HCI - - config ESP_HOSTED_BT_UART_RX_PIN_ESP32_C3_S3 - int "HCI UART Rx Pin" - default 18 - help - UART Rx Pin for HCI - - choice ESP_HOSTED_PRIV_BT_UART_FLOWCONTROL_ESP32_C3_S3 - bool "HCI UART Flow Control" - default ESP_HOSTED_BT_UART_FLOWCONTROL_DISABLED - - config ESP_HOSTED_BT_UART_FLOWCONTROL_DISABLED - bool "Disabled" - - config ESP_HOSTED_BT_UART_FLOWCONTROL_ENABLED - bool "Enabled" - endchoice - - config ESP_HOSTED_BT_UART_FLOWCONTROL_ESP32_C3_S3 - int - default 3 if ESP_HOSTED_BT_UART_FLOWCONTROL_ENABLED - default 0 - - config ESP_HOSTED_BT_UART_RTS_PIN_ESP32_C3_S3 - depends on ESP_HOSTED_BT_UART_FLOWCONTROL_ENABLED - int "HCI UART RTS Pin" - default 19 - help - UART RTS Pin for HCI - - config ESP_HOSTED_BT_UART_CTS_PIN_ESP32_C3_S3 - depends on ESP_HOSTED_BT_UART_FLOWCONTROL_ENABLED - int "HCI UART CTS Pin" - default 1 if IDF_TARGET_ESP32C3 - default 20 - help - UART CTS Pin for HCI - - endmenu - - # HCI UART menu for ESP32 - menu "HCI UART Settings" - depends on BTDM_CTRL_HCI_MODE_UART_H4 && IDF_TARGET_ESP32 - - config ESP_HOSTED_BT_UART_TX_PIN_ESP32 - int "HCI UART Tx Pin" - default 5 - help - UART Tx Pin for HCI - - config ESP_HOSTED_BT_UART_RX_PIN_ESP32 - int "HCI UART Rx Pin" - default 18 - help - UART Rx Pin for HCI - - config ESP_HOSTED_BT_UART_RTS_PIN_ESP32 - depends on BTDM_CTRL_HCI_UART_FLOW_CTRL_EN - int "HCI UART RTS Pin" - default 19 - help - UART RTS Pin for HCI - - config ESP_HOSTED_BT_UART_CTS_PIN_ESP32 - depends on BTDM_CTRL_HCI_UART_FLOW_CTRL_EN - int "HCI UART CTS Pin" - default 23 - help - UART CTS Pin for HCI - - comment "HCI UART Settings from Bluetooth Component" - comment "To change Port, Baud Rate, Flow Control, select Component config ---> Bluetooth ---> Controller Options ---> HCI Config" - - config ESP_HOSTED_BT_UART_PORT_ESP32 - int "HCI UART Port" - range BTDM_CTRL_HCI_UART_NO BTDM_CTRL_HCI_UART_NO - help - UART Port for HCI - - config ESP_HOSTED_BT_UART_BAUDRATE_ESP32 - int "HCI UART Baudrate" - range BTDM_CTRL_HCI_UART_BAUDRATE BTDM_CTRL_HCI_UART_BAUDRATE - help - UART Baudrate for HCI. Please use standard baudrate. - - endmenu - - # HCI UART menu for other ESP32 chips - menu "HCI UART Settings" - depends on BT_LE_HCI_INTERFACE_USE_UART && !IDF_TARGET_ESP32 && !IDF_TARGET_ESP32C3 && !IDF_TARGET_ESP32S3 - comment "HCI UART Settings from Bluetooth Component" - comment "To change, select Component config ---> Bluetooth ---> Controller Options ---> HCI Config" - - config ESP_HOSTED_BT_UART_PORT - int "HCI UART Port" - range BT_LE_HCI_UART_PORT BT_LE_HCI_UART_PORT # kconfig ignore: multiple-definition - help - UART Port for HCI - - config ESP_HOSTED_BT_UART_TX_PIN - int "HCI UART Tx Pin" - range BT_LE_HCI_UART_TX_PIN BT_LE_HCI_UART_TX_PIN - help - UART Tx Pin for HCI - - config ESP_HOSTED_BT_UART_RX_PIN - int "HCI UART Rx Pin" - range BT_LE_HCI_UART_RX_PIN BT_LE_HCI_UART_RX_PIN - help - UART Rx Pin for HCI - - config ESP_HOSTED_BT_UART_RTS_PIN - depends on BT_LE_HCI_UART_FLOWCTRL - int "HCI UART RTS Pin" - range BT_LE_HCI_UART_RTS_PIN BT_LE_HCI_UART_RTS_PIN - help - UART RTS Pin for HCI - - config ESP_HOSTED_BT_UART_CTS_PIN - depends on BT_LE_HCI_UART_FLOWCTRL - int "HCI UART CTS Pin" - range BT_LE_HCI_UART_CTS_PIN BT_LE_HCI_UART_CTS_PIN - help - UART CTS Pin for HCI - - config ESP_HOSTED_BT_UART_BAUDRATE - int "HCI UART Baudrate" - range BT_LE_HCI_UART_BAUD BT_LE_HCI_UART_BAUD - help - UART Baudrate for HCI. Please use standard baudrate. - - endmenu - - config ESP_DEFAULT_TASK_STACK_SIZE - int "ESP-Hosted task stack size" - default 4096 - help - Default task size of ESP-Hosted tasks - - config ESP_DEFAULT_TASK_PRIO - int "ESP-Hosted task priority" - default 22 - help - Default task priority of ESP-Hosted tasks - - config ESP_CACHE_MALLOC - bool "Enable Mempool" - default y - help - Mempool will help to alloc buffer without going to heap for every memory allocation or free - - config ESP_OTA_WORKAROUND - bool "OTA workaround - Add sleeps while OTA write" - default y - help - Enable/disable sleeps while OTA operations - - menu "Hosted Debugging" - config ESP_RAW_THROUGHPUT_TRANSPORT - bool "RawTP: Transport level throughput debug test" - default n - help - Find max transport performance which helps to assess stability of porting done - - config ESP_RAW_TP_ESP_TO_HOST_PKT_LEN - depends on ESP_RAW_THROUGHPUT_TRANSPORT - int "RawTP: ESP to Host packet size" - range 1 1500 - default 1460 - - config ESP_RAW_TP_REPORT_INTERVAL - depends on ESP_RAW_THROUGHPUT_TRANSPORT - int "RawTP: periodic duration to report stats accumulated" - default 10 - - config ESP_PKT_STATS - bool "Transport level packet stats" - default n - help - On comparing with slave packet stats helps to understand any packet loss at hosted - endmenu -endmenu diff --git a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/app_main.c b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/app_main.c deleted file mode 100644 index 106f954..0000000 --- a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/app_main.c +++ /dev/null @@ -1,945 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#include -#include -#include -#include "esp_log.h" -#include "sys/queue.h" -#include "soc/soc.h" -#include "nvs_flash.h" -#include "sdkconfig.h" -#include -#include -#ifndef CONFIG_IDF_TARGET_ARCH_RISCV -#include "xtensa/core-macros.h" -#endif -#include "esp_private/wifi.h" -#include "interface.h" -#include "esp_wpa.h" -#include "app_main.h" -#include "driver/gpio.h" - -#include "freertos/task.h" -#include "freertos/queue.h" -#if CONFIG_BT_ENABLED -#include "esp_bt.h" -#endif -#include "endian.h" - -#include -#include "protocomm_pserial.h" -#include "slave_control.h" -#include "slave_bt.h" -#include "stats.h" -#include "esp_mac.h" -#include "esp_timer.h" -#include "mempool.h" - -#include "coprocessor_fw_version.h" - -static const char *TAG = "fg_mcu_slave"; - - -//#define BYPASS_TX_PRIORITY_Q 1 -#ifdef CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS -#define STATS_TICKS pdMS_TO_TICKS(1000*2) -#define ARRAY_SIZE_OFFSET 5 -#endif - -#define UNKNOWN_RPC_MSG_ID 0 - -#if CONFIG_ESP_SPI_HOST_INTERFACE - #ifdef CONFIG_IDF_TARGET_ESP32S2 - #define TO_HOST_QUEUE_SIZE 5 - #else - #define TO_HOST_QUEUE_SIZE 20 - #endif -#else - #define TO_HOST_QUEUE_SIZE 20 -#endif - -#define ETH_DATA_LEN 1500 -#define MAX_WIFI_STA_TX_RETRY 6 - -volatile uint8_t datapath = 0; -volatile uint8_t station_connected = 0; -volatile uint8_t softap_started = 0; - -interface_context_t *if_context = NULL; -interface_handle_t *if_handle = NULL; -slave_config_t slv_cfg_g; -slave_state_t slv_state_g; - -#if !BYPASS_TX_PRIORITY_Q -static QueueHandle_t meta_to_host_queue = NULL; -static QueueHandle_t to_host_queue[MAX_PRIORITY_QUEUES] = {NULL}; -#endif - - -static protocomm_t *pc_pserial; - -static struct rx_data { - uint8_t valid; - uint16_t cur_seq_no; - int len; - uint8_t data[4096]; -} r; - -uint8_t ap_mac[BSSID_BYTES_SIZE] = {0}; - -#if CONFIG_ESP_UART_HOST_INTERFACE && BLUETOOTH_UART -#error "Hosted UART Interface cannot be used with Bluetooth HCI over UART" -#endif - -static void print_firmware_version() -{ - ESP_LOGI(TAG, "*********************************************************************"); - ESP_LOGI(TAG, " ESP-Hosted-MCU Slave FW version :: %d.%d.%d ", - PROJECT_VERSION_MAJOR_1, PROJECT_VERSION_MINOR_1, PROJECT_VERSION_PATCH_1); -#if CONFIG_ESP_SPI_HOST_INTERFACE - #if BLUETOOTH_UART - ESP_LOGI(TAG, " Transport used :: SPI + UART "); - #else - ESP_LOGI(TAG, " Transport used :: SPI only "); - #endif -#elif CONFIG_ESP_SPI_HD_HOST_INTERFACE - #if BLUETOOTH_UART - ESP_LOGI(TAG, " Transport used :: SPI HD + UART "); - #else - ESP_LOGI(TAG, " Transport used :: SPI HD only "); - #endif -#elif CONFIG_ESP_UART_HOST_INTERFACE - ESP_LOGI(TAG, " Transport used :: UART only "); -#else - #if BLUETOOTH_UART - ESP_LOGI(TAG, " Transport used :: SDIO + UART "); - #else - ESP_LOGI(TAG, " Transport used :: SDIO only "); - #endif -#endif - ESP_LOGI(TAG, "*********************************************************************"); -} - -static uint8_t get_capabilities(void) -{ - uint8_t cap = 0; - - ESP_LOGI(TAG, "Supported features are:"); -#if CONFIG_ESP_SPI_HOST_INTERFACE - ESP_LOGI(TAG, "- WLAN over SPI"); - cap |= ESP_WLAN_SPI_SUPPORT; -#elif CONFIG_ESP_SDIO_HOST_INTERFACE - ESP_LOGI(TAG, "- WLAN over SDIO"); - cap |= ESP_WLAN_SDIO_SUPPORT; -#endif - -#if CONFIG_ESP_SPI_CHECKSUM || CONFIG_ESP_SDIO_CHECKSUM || CONFIG_ESP_SPI_HD_CHECKSUM || CONFIG_ESP_UART_CHECKSUM - cap |= ESP_CHECKSUM_ENABLED; -#endif - - cap |= get_bluetooth_capabilities(); - ESP_LOGI(TAG, "capabilities: 0x%x", cap); - - return cap; -} - -static uint32_t get_capabilities_ext(void) -{ - uint32_t ext_cap = 0; - - ESP_LOGI(TAG, "Supported extended features are:"); -#if CONFIG_ESP_SPI_HD_HOST_INTERFACE - -#if (CONFIG_ESP_SPI_HD_INTERFACE_NUM_DATA_LINES == 4) - ESP_LOGI(TAG, "- SPI HD 4-bit interface"); - ext_cap |= ESP_SPI_HD_INTERFACE_SUPPORT_4_DATA_LINES; -#elif (CONFIG_ESP_SPI_HD_INTERFACE_NUM_DATA_LINES == 2) - ESP_LOGI(TAG, "- SPI HD 2-bit interface"); - ext_cap |= ESP_SPI_HD_INTERFACE_SUPPORT_2_DATA_LINES; -#else -#error "Invalid SPI HD Number of Data Bits configuration" -#endif - - ESP_LOGI(TAG, "- WLAN over SPI HD"); - ext_cap |= ESP_WLAN_SUPPORT; -#endif - -#if CONFIG_ESP_UART_HOST_INTERFACE - ESP_LOGI(TAG, "- WLAN over UART"); - ext_cap |= ESP_WLAN_UART_SUPPORT; -#endif - -#ifdef CONFIG_BT_ENABLED - ext_cap |= get_bluetooth_ext_capabilities(); -#endif - ESP_LOGI(TAG, "extended capabilities: 0x%"PRIx32, ext_cap); - - return ext_cap; -} - -esp_err_t wlan_ap_rx_callback(void *buffer, uint16_t len, void *eb) -{ - interface_buffer_handle_t buf_handle = {0}; - - if (!buffer || !eb || !datapath) { - if (eb) { - esp_wifi_internal_free_rx_buffer(eb); - } - return ESP_OK; - } - ESP_HEXLOGV("AP_Get", buffer, len); - -#if 0 - /* Only enable this is you want to avoid multi and bradcast - * traffic to be reduced from stations to softap - */ - uint8_t * ap_buf = buffer; - /* Check destination address against self address */ - if (memcmp(ap_buf, ap_mac, BSSID_BYTES_SIZE)) { - /* Check for multicast or broadcast address */ - if (!(ap_buf[0] & 1)) - goto DONE; - } -#endif - - buf_handle.if_type = ESP_AP_IF; - buf_handle.if_num = 0; - buf_handle.payload_len = len; - buf_handle.payload = buffer; - buf_handle.wlan_buf_handle = eb; - buf_handle.free_buf_handle = esp_wifi_internal_free_rx_buffer; - - if (send_to_host_queue(&buf_handle, PRIO_Q_OTHERS)) - goto DONE; - - return ESP_OK; - -DONE: - esp_wifi_internal_free_rx_buffer(eb); - return ESP_OK; -} - -esp_err_t wlan_sta_rx_callback(void *buffer, uint16_t len, void *eb) -{ - interface_buffer_handle_t buf_handle = {0}; - - if (!buffer || !eb || !datapath) { - if (eb) { - esp_wifi_internal_free_rx_buffer(eb); - } - return ESP_OK; - } - ESP_HEXLOGV("STA_Get", buffer, len); - - buf_handle.if_type = ESP_STA_IF; - buf_handle.if_num = 0; - buf_handle.payload_len = len; - buf_handle.payload = buffer; - buf_handle.wlan_buf_handle = eb; - buf_handle.free_buf_handle = esp_wifi_internal_free_rx_buffer; - -#if ESP_PKT_STATS - pkt_stats.sta_sh_in++; -#endif - - if (send_to_host_queue(&buf_handle, PRIO_Q_OTHERS)) - goto DONE; - - - return ESP_OK; - -DONE: - esp_wifi_internal_free_rx_buffer(eb); - return ESP_OK; -} - -void process_tx_pkt(interface_buffer_handle_t *buf_handle) -{ - /* Check if data path is not yet open */ - if (!datapath) { - /* Post processing */ - if (buf_handle->free_buf_handle && buf_handle->priv_buffer_handle) { - buf_handle->free_buf_handle(buf_handle->priv_buffer_handle); - buf_handle->priv_buffer_handle = NULL; - } - ESP_LOGD(TAG, "Data path stopped"); - usleep(100*1000); - return; - } - if (if_context && if_context->if_ops && if_context->if_ops->write) { - if_context->if_ops->write(if_handle, buf_handle); - } - /* Post processing */ - if (buf_handle->free_buf_handle && buf_handle->priv_buffer_handle) { - buf_handle->free_buf_handle(buf_handle->priv_buffer_handle); - buf_handle->priv_buffer_handle = NULL; - } -} - -#if !BYPASS_TX_PRIORITY_Q -/* Send data to host */ -void send_task(void* pvParameters) -{ - uint8_t queue_type = 0; - interface_buffer_handle_t buf_handle = {0}; - - while (1) { - - if (!datapath) { - usleep(100*1000); - continue; - } - - if (xQueueReceive(meta_to_host_queue, &queue_type, portMAX_DELAY)) - if (xQueueReceive(to_host_queue[queue_type], &buf_handle, portMAX_DELAY)) - process_tx_pkt(&buf_handle); - } -} -#endif - -void parse_protobuf_req(void) -{ - protocomm_pserial_data_ready(pc_pserial, r.data, - r.len, UNKNOWN_RPC_MSG_ID); -} - -void send_event_to_host(int event_id) -{ -#if ESP_PKT_STATS - pkt_stats.serial_tx_evt++; -#endif - protocomm_pserial_data_ready(pc_pserial, NULL, 0, event_id); -} - -void send_event_data_to_host(int event_id, void *data, int size) -{ -#if ESP_PKT_STATS - pkt_stats.serial_tx_evt++; -#endif - protocomm_pserial_data_ready(pc_pserial, data, size, event_id); -} - -void process_serial_rx_pkt(uint8_t *buf) -{ - struct esp_payload_header *header = NULL; - uint16_t payload_len = 0; - uint8_t *payload = NULL; - int rem_buff_size; - - header = (struct esp_payload_header *) buf; - payload_len = le16toh(header->len); - payload = buf + le16toh(header->offset); - rem_buff_size = sizeof(r.data) - r.len; - - ESP_HEXLOGV("serial_rx", payload, payload_len); - - while (r.valid) - { - ESP_LOGI(TAG,"More segment: %u curr seq: %u header seq: %u\n", - header->flags & MORE_FRAGMENT, r.cur_seq_no, header->seq_num); - vTaskDelay(10); - } - - if (!r.len) { - /* New Buffer */ - r.cur_seq_no = le16toh(header->seq_num); - } - - if (header->seq_num != r.cur_seq_no) { - /* Sequence number mismatch */ - r.valid = 1; - parse_protobuf_req(); - return; - } - - memcpy((r.data + r.len), payload, min(payload_len, rem_buff_size)); - r.len += min(payload_len, rem_buff_size); - - if (!(header->flags & MORE_FRAGMENT)) { - /* Received complete buffer */ - r.valid = 1; - parse_protobuf_req(); - } -} - - -static int host_to_slave_reconfig(uint8_t *evt_buf, uint16_t len) -{ - uint8_t len_left = len, tag_len; - uint8_t *pos; - - if (!evt_buf) - return ESP_FAIL; - - pos = evt_buf; - ESP_LOGD(TAG, "Init event length: %u", len); - if (len > 64) { - ESP_LOGE(TAG, "Init event length: %u", len); -#if CONFIG_ESP_SPI_HOST_INTERFACE - ESP_LOGE(TAG, "Seems incompatible SPI mode try changing SPI mode. Asserting for now."); -#endif - assert(len < 64); - } - - while (len_left) { - tag_len = *(pos + 1); - - if (*pos == HOST_CAPABILITIES) { - - ESP_LOGI(TAG, "Host capabilities: %2x", *pos); - - } else if (*pos == RCVD_ESP_FIRMWARE_CHIP_ID) { - - if (CONFIG_IDF_FIRMWARE_CHIP_ID != *(pos+2)) { - ESP_LOGE(TAG, "Chip id returned[%u] doesn't match with chip id sent[%u]", - *(pos+2), CONFIG_IDF_FIRMWARE_CHIP_ID); - } - - } else if (*pos == SLV_CONFIG_TEST_RAW_TP) { -#if TEST_RAW_TP - switch (*(pos + 2)) { - - case ESP_TEST_RAW_TP__ESP_TO_HOST: - ESP_LOGI(TAG, "Raw TP ESP --> Host"); - /* TODO */ - break; - - case ESP_TEST_RAW_TP__HOST_TO_ESP: - ESP_LOGI(TAG, "Raw TP ESP <-- Host"); - /* TODO */ - break; - - case ESP_TEST_RAW_TP__BIDIRECTIONAL: - ESP_LOGI(TAG, "Raw TP ESP <--> Host"); - /* TODO */ - break; - - default: - ESP_LOGW(TAG, "Unsupported Raw TP config"); - } - - process_test_capabilities(*(pos + 2)); -#else - if (*(pos + 2)) - ESP_LOGW(TAG, "Host requested raw throughput testing, but not enabled in slave"); -#endif - } else if (*pos == SLV_CONFIG_THROTTLE_HIGH_THRESHOLD) { - - slv_cfg_g.throttle_high_threshold = *(pos + 2); - ESP_LOGI(TAG, "ESP<-Host high data throttle threshold [%u%%]", - slv_cfg_g.throttle_high_threshold); - - /* Warn if FreeRTOS tick is small */ - if ((slv_cfg_g.throttle_low_threshold > 0) && - (CONFIG_FREERTOS_HZ < 1000)) { - ESP_LOGW(TAG, "FreeRTOS tick[%d]<1000. Enabling throttling with lower FrerRTOS tick may result in lower peak data throughput", (int) CONFIG_FREERTOS_HZ); - } - - } else if (*pos == SLV_CONFIG_THROTTLE_LOW_THRESHOLD) { - - slv_cfg_g.throttle_low_threshold = *(pos + 2); - ESP_LOGI(TAG, "ESP<-Host low data throttle threshold [%u%%]", - slv_cfg_g.throttle_low_threshold); - - } else { - - ESP_LOGD(TAG, "Unsupported H->S config: %2x", *pos); - - } - - pos += (tag_len+2); - len_left -= (tag_len+2); - } - - return ESP_OK; -} - -static void process_priv_pkt(uint8_t *payload, uint16_t payload_len) -{ - int ret = 0; - struct esp_priv_event *event; - - if (!payload || !payload_len) - return; - - event = (struct esp_priv_event *) payload; - - if (event->event_type == ESP_PRIV_EVENT_INIT) { - - ESP_LOGI(TAG, "Slave init_config received from host"); - ESP_HEXLOGD("init_config", event->event_data, event->event_len); - - ret = host_to_slave_reconfig(event->event_data, event->event_len); - if (ret) { - ESP_LOGE(TAG, "failed to init event\n\r"); - } - } else { - ESP_LOGW(TAG, "Drop unknown event\n\r"); - } -} - -void process_rx_pkt(interface_buffer_handle_t *buf_handle) -{ - struct esp_payload_header *header = NULL; - uint8_t *payload = NULL; - uint16_t payload_len = 0; - int ret = 0; - int retry_wifi_tx = MAX_WIFI_STA_TX_RETRY; - - header = (struct esp_payload_header *) buf_handle->payload; - payload = buf_handle->payload + le16toh(header->offset); - payload_len = le16toh(header->len); - - ESP_HEXLOGD("rx_new", buf_handle->payload, min(32,buf_handle->payload_len)); - - if (buf_handle->if_type == ESP_STA_IF && station_connected) { - /* Forward data to wlan driver */ - do { - ret = esp_wifi_internal_tx(ESP_IF_WIFI_STA, payload, payload_len); - - /* Delay only if throttling is enabled */ - if (ret && - slv_cfg_g.throttle_high_threshold && - (retry_wifi_tx<(MAX_WIFI_STA_TX_RETRY/2))) { - vTaskDelay(2); - } - - retry_wifi_tx--; - } while (ret && retry_wifi_tx); - - ESP_HEXLOGV("STA_Put", payload, payload_len); - if (ESP_OK == ret) { -#if ESP_PKT_STATS - pkt_stats.hs_bus_sta_out++; -#endif - } else { -#if ESP_PKT_STATS - pkt_stats.hs_bus_sta_fail++; -#endif - } - } else if (buf_handle->if_type == ESP_AP_IF && softap_started) { - /* Forward data to wlan driver */ - esp_wifi_internal_tx(ESP_IF_WIFI_AP, payload, payload_len); - ESP_HEXLOGV("AP_Put", payload, payload_len); - } else if (buf_handle->if_type == ESP_SERIAL_IF) { -#if ESP_PKT_STATS - pkt_stats.serial_rx++; -#endif - process_serial_rx_pkt(buf_handle->payload); - } else if (buf_handle->if_type == ESP_PRIV_IF) { - process_priv_pkt(payload, payload_len); - } -#if defined(CONFIG_BT_ENABLED) && BLUETOOTH_HCI - else if (buf_handle->if_type == ESP_HCI_IF) { - process_hci_rx_pkt(payload, payload_len); - } -#endif -#if TEST_RAW_TP - else if (buf_handle->if_type == ESP_TEST_IF) { - debug_update_raw_tp_rx_count(payload_len); - } -#endif - - /* Free buffer handle */ - if (buf_handle->free_buf_handle && buf_handle->priv_buffer_handle) { - buf_handle->free_buf_handle(buf_handle->priv_buffer_handle); - buf_handle->priv_buffer_handle = NULL; - } -} - -/* Get data from host */ -void recv_task(void* pvParameters) -{ - interface_buffer_handle_t buf_handle = {0}; - - for (;;) { - - if (!datapath) { - /* Datapath is not enabled by host yet*/ - usleep(100*1000); - continue; - } - - /* receive data from transport layer */ - if (if_context && if_context->if_ops && if_context->if_ops->read) { - int len = if_context->if_ops->read(if_handle, &buf_handle); - if (len <= 0) { - usleep(10*1000); - continue; - } - } - - process_rx_pkt(&buf_handle); - } -} - -static ssize_t serial_read_data(uint8_t *data, ssize_t len) -{ - len = min(len, r.len); - if (r.valid) { - memcpy(data, r.data, len); - r.valid = 0; - r.len = 0; - r.cur_seq_no = 0; - } else { - ESP_LOGI(TAG,"No data to be read, len %d", len); - } - return len; -} - -int send_to_host_queue(interface_buffer_handle_t *buf_handle, uint8_t queue_type) -{ -#if BYPASS_TX_PRIORITY_Q - process_tx_pkt(buf_handle); - return ESP_OK; -#else - int ret = xQueueSend(to_host_queue[queue_type], buf_handle, portMAX_DELAY); - if (ret != pdTRUE) { - ESP_LOGE(TAG, "Failed to send buffer into queue[%u]\n",queue_type); - return ESP_FAIL; - } - if (queue_type == PRIO_Q_SERIAL) - ret = xQueueSendToFront(meta_to_host_queue, &queue_type, portMAX_DELAY); - else - ret = xQueueSend(meta_to_host_queue, &queue_type, portMAX_DELAY); - - if (ret != pdTRUE) { - ESP_LOGE(TAG, "Failed to send buffer into meta queue[%u]\n",queue_type); - return ESP_FAIL; - } - - return ESP_OK; -#endif -} - -static esp_err_t serial_write_data(uint8_t* data, ssize_t len) -{ - uint8_t *pos = data; - int32_t left_len = len; - int32_t frag_len = 0; - static uint16_t seq_num = 0; - - do { - interface_buffer_handle_t buf_handle = {0}; - - seq_num++; - - buf_handle.if_type = ESP_SERIAL_IF; - buf_handle.if_num = 0; - buf_handle.seq_num = seq_num; - - if (left_len > ETH_DATA_LEN) { - frag_len = ETH_DATA_LEN; - buf_handle.flag = MORE_FRAGMENT; - } else { - frag_len = left_len; - buf_handle.flag = 0; - buf_handle.priv_buffer_handle = data; - buf_handle.free_buf_handle = free; - } - - buf_handle.payload = pos; - buf_handle.payload_len = frag_len; - - if (send_to_host_queue(&buf_handle, PRIO_Q_SERIAL)) { - if (data) { - free(data); - data = NULL; - } - return ESP_FAIL; - } - - ESP_HEXLOGV("serial_tx_create", data, frag_len); - - left_len -= frag_len; - pos += frag_len; - } while(left_len); - - return ESP_OK; -} - -int event_handler(uint8_t val) -{ - switch(val) { - case ESP_OPEN_DATA_PATH: - if (if_handle) { - if_handle->state = ACTIVE; - datapath = 1; - ESP_EARLY_LOGI(TAG, "Start Data Path"); - } else { - ESP_EARLY_LOGI(TAG, "Failed to Start Data Path"); - } - break; - - case ESP_CLOSE_DATA_PATH: - datapath = 0; - if (if_handle) { - ESP_EARLY_LOGI(TAG, "Stop Data Path"); - if_handle->state = DEACTIVE; - } else { - ESP_EARLY_LOGI(TAG, "Failed to Stop Data Path"); - } - break; - } - return 0; -} - -#ifdef CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS -/* These functions are only for debugging purpose - * Please do not enable in production environments - */ -static esp_err_t print_real_time_stats(TickType_t xTicksToWait) -{ - TaskStatus_t *start_array = NULL, *end_array = NULL; - UBaseType_t start_array_size, end_array_size; - uint32_t start_run_time, end_run_time; - esp_err_t ret; - - /* Allocate array to store current task states */ - start_array_size = uxTaskGetNumberOfTasks() + ARRAY_SIZE_OFFSET; - start_array = malloc(sizeof(TaskStatus_t) * start_array_size); - if (start_array == NULL) { - ret = ESP_ERR_NO_MEM; - goto exit; - } - /* Get current task states */ - start_array_size = uxTaskGetSystemState(start_array, - start_array_size, &start_run_time); - if (start_array_size == 0) { - ret = ESP_ERR_INVALID_SIZE; - goto exit; - } - - vTaskDelay(xTicksToWait); - - /* Allocate array to store tasks states post delay */ - end_array_size = uxTaskGetNumberOfTasks() + ARRAY_SIZE_OFFSET; - end_array = malloc(sizeof(TaskStatus_t) * end_array_size); - if (end_array == NULL) { - ret = ESP_ERR_NO_MEM; - goto exit; - } - /* Get post delay task states */ - end_array_size = uxTaskGetSystemState(end_array, end_array_size, &end_run_time); - if (end_array_size == 0) { - ret = ESP_ERR_INVALID_SIZE; - goto exit; - } - - /* Calculate total_elapsed_time in units of run time stats clock period */ - uint32_t total_elapsed_time = (end_run_time - start_run_time); - if (total_elapsed_time == 0) { - ret = ESP_ERR_INVALID_STATE; - goto exit; - } - - ESP_LOGI(TAG,"| Task | Run Time | Percentage"); - /* Match each task in start_array to those in the end_array */ - for (int i = 0; i < start_array_size; i++) { - int k = -1; - for (int j = 0; j < end_array_size; j++) { - if (start_array[i].xHandle == end_array[j].xHandle) { - k = j; - /* Mark that task have been matched by overwriting their handles */ - start_array[i].xHandle = NULL; - end_array[j].xHandle = NULL; - break; - } - } - /* Check if matching task found */ - if (k >= 0) { - uint32_t task_elapsed_time = end_array[k].ulRunTimeCounter - - start_array[i].ulRunTimeCounter; - uint32_t percentage_time = (task_elapsed_time * 100UL) / - (total_elapsed_time * portNUM_PROCESSORS); - ESP_LOGI(TAG,"| %s | %d | %d%%", start_array[i].pcTaskName, - task_elapsed_time, percentage_time); - } - } - - /* Print unmatched tasks */ - for (int i = 0; i < start_array_size; i++) { - if (start_array[i].xHandle != NULL) { - ESP_LOGI(TAG,"| %s | Deleted", start_array[i].pcTaskName); - } - } - for (int i = 0; i < end_array_size; i++) { - if (end_array[i].xHandle != NULL) { - ESP_LOGI(TAG,"| %s | Created", end_array[i].pcTaskName); - } - } - ret = ESP_OK; - -exit: /* Common return path */ - if (start_array) - free(start_array); - if (end_array) - free(end_array); - return ret; -} - -void task_runtime_stats_task(void* pvParameters) -{ - while (1) { - ESP_LOGI(TAG,"\n\nGetting real time stats over %d ticks", STATS_TICKS); - if (print_real_time_stats(STATS_TICKS) == ESP_OK) { - ESP_LOGI(TAG,"Real time stats obtained"); - } else { - ESP_LOGI(TAG,"Error getting real time stats"); - } - vTaskDelay(pdMS_TO_TICKS(1000*2)); - } -} -#endif - -static void IRAM_ATTR gpio_resetpin_isr_handler(void* arg) -{ - - ESP_EARLY_LOGI(TAG, "*********"); - if (CONFIG_ESP_GPIO_SLAVE_RESET == -1) { - ESP_EARLY_LOGI(TAG, "%s: using EN pin for slave reset", __func__); - return; - } - - static uint32_t lasthandshaketime_us; - uint32_t currtime_us = esp_timer_get_time(); - - if (gpio_get_level(CONFIG_ESP_GPIO_SLAVE_RESET) == 0) { - lasthandshaketime_us = currtime_us; - } else { - uint32_t diff = currtime_us - lasthandshaketime_us; - ESP_EARLY_LOGI(TAG, "%s Diff: %u", __func__, diff); - if (diff < 500) { - return; //ignore everything < half ms after an earlier irq - } else { - ESP_EARLY_LOGI(TAG, "Host triggered slave reset"); - esp_restart(); - } - } -} - -static void register_reset_pin(uint32_t gpio_num) -{ - if (gpio_num != -1) { - ESP_LOGI(TAG, "Using GPIO [%lu] as slave reset pin", gpio_num); - gpio_reset_pin(gpio_num); - - gpio_config_t slave_reset_pin_conf={ - .intr_type=GPIO_INTR_DISABLE, - .mode=GPIO_MODE_INPUT, - .pull_up_en=1, - .pin_bit_mask=(1<if_ops) { - ESP_LOGE(TAG, "Failed to insert driver\n"); - return; - } - - if_handle = if_context->if_ops->init(); - - if (!if_handle) { - ESP_LOGE(TAG, "Failed to initialize driver\n"); - return; - } - - - assert(xTaskCreate(recv_task , "recv_task" , - CONFIG_ESP_DEFAULT_TASK_STACK_SIZE, NULL , - CONFIG_ESP_DEFAULT_TASK_PRIO, NULL) == pdTRUE); -#if !BYPASS_TX_PRIORITY_Q - meta_to_host_queue = xQueueCreate(TO_HOST_QUEUE_SIZE*3, sizeof(uint8_t)); - assert(meta_to_host_queue); - for (prio_q_idx=0; prio_q_idx= curr_level) { \ - ESP_LOG_LEVEL_LOCAL(curr_level, tag1, "%s: len[%d]", tag2, (int)len); \ - ESP_LOG_BUFFER_HEXDUMP(tag2, buff, len, curr_level); \ - } - -#define ESP_HEXLOGE(tag2, buff, len) ESP_PRIV_HEXDUMP(TAG, tag2, buff, len, ESP_LOG_ERROR) -#define ESP_HEXLOGW(tag2, buff, len) ESP_PRIV_HEXDUMP(TAG, tag2, buff, len, ESP_LOG_WARN) -#define ESP_HEXLOGI(tag2, buff, len) ESP_PRIV_HEXDUMP(TAG, tag2, buff, len, ESP_LOG_INFO) -#define ESP_HEXLOGD(tag2, buff, len) ESP_PRIV_HEXDUMP(TAG, tag2, buff, len, ESP_LOG_DEBUG) -#define ESP_HEXLOGV(tag2, buff, len) ESP_PRIV_HEXDUMP(TAG, tag2, buff, len, ESP_LOG_VERBOSE) - -#endif - diff --git a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/README.md b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/README.md deleted file mode 100644 index 57c0e94..0000000 --- a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/README.md +++ /dev/null @@ -1,53 +0,0 @@ -# About Proto Files - - -## Protobuf Submodule - -[protobuf-c](https://github.com/protobuf-c/protobuf-c) is open source code used as submodule in ESP-Hosted-FG in directory `../protobuf-c/` -If this directory is empty, please run -```sh -$ cd esp-hosted -$ git submodule update --init --recursive -``` - -## Files - -- `esp_hosted_rpc.proto` - - This is Ready-To-Use protobuf file which has messages for Request / Response / Events to communicate between Host and ESP - - User can add his own message field in `.proto` file and generate respective C files using 'protoc' - -- `esp_hosted_rpc.pb-c.c` & `esp_hosted_rpc.pb-c.h` - - Ready-To-Use Source Generated files using `esp_hosted_rpc.proto` - - These files also cached which was generated with current `esp_hosted_rpc.proto` file for easy use (No need to generate again) - - If any addition or modifications `esp_hosted_rpc.proto` done, these files need to be re-generated - - -## Generate esp_hosted_rpc.pb-c.c & esp_hosted_rpc.pb-c.h - -If you want to add or modify existing set of RPC procedures supported, you need to modify `esp_hosted_rpc.proto` as needed and build it to generate new set of `esp_hosted_rpc.pb-c.c` & `esp_hosted_rpc.pb-c.h`. -For this, third party software for protobuf C compiler is needed to be installed -- Debian/Ubuntu - - sudo apt install protobuf-c-compiler -- Mac OS - - brew install protobuf -- Windows - - check https://github.com/protobuf-c/protobuf-c - -`protoc-c` command should be available once installed. - -This software might only be needed on development environment, Once esp_hosted_rpc.pb-c.c & esp_hosted_rpc.pb-c.h files are generated, could also be uninstalled. - -##### Steps to generate -```sh -$ cd /common/proto -$ protoc-c esp_hosted_rpc.proto --c_out=. -``` - -## Add new RPC message -To send an new RPC request/response - -1. Add C function in `host/host_common/commands.c` -2. Create python binding in `host/linux/host_control/python_support/commands_map_py_to_c.py` and its python function in `host/linux/host_control/python_support/commands_lib.py`. -3. Add ESP side C function in `esp/esp_driver/network_adapter/main/slave_commands.c`, respective to python function, to handle added message field. - -User can test added functionality using `host/linux/host_control/python_support/test.py`. diff --git a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/esp_hosted_rpc.pb-c.c b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/esp_hosted_rpc.pb-c.c deleted file mode 100644 index eb1a1e3..0000000 --- a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/esp_hosted_rpc.pb-c.c +++ /dev/null @@ -1,17767 +0,0 @@ -/* Generated by the protocol buffer compiler. DO NOT EDIT! */ -/* Generated from: esp_hosted_rpc.proto */ - -/* Do not generate deprecated warnings for self */ -#ifndef PROTOBUF_C__NO_DEPRECATED -#define PROTOBUF_C__NO_DEPRECATED -#endif - -#include "esp_hosted_rpc.pb-c.h" -void wifi_init_config__init - (WifiInitConfig *message) -{ - static const WifiInitConfig init_value = WIFI_INIT_CONFIG__INIT; - *message = init_value; -} -size_t wifi_init_config__get_packed_size - (const WifiInitConfig *message) -{ - assert(message->base.descriptor == &wifi_init_config__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_init_config__pack - (const WifiInitConfig *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_init_config__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_init_config__pack_to_buffer - (const WifiInitConfig *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_init_config__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiInitConfig * - wifi_init_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiInitConfig *) - protobuf_c_message_unpack (&wifi_init_config__descriptor, - allocator, len, data); -} -void wifi_init_config__free_unpacked - (WifiInitConfig *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_init_config__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_country__init - (WifiCountry *message) -{ - static const WifiCountry init_value = WIFI_COUNTRY__INIT; - *message = init_value; -} -size_t wifi_country__get_packed_size - (const WifiCountry *message) -{ - assert(message->base.descriptor == &wifi_country__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_country__pack - (const WifiCountry *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_country__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_country__pack_to_buffer - (const WifiCountry *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_country__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiCountry * - wifi_country__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiCountry *) - protobuf_c_message_unpack (&wifi_country__descriptor, - allocator, len, data); -} -void wifi_country__free_unpacked - (WifiCountry *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_country__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_active_scan_time__init - (WifiActiveScanTime *message) -{ - static const WifiActiveScanTime init_value = WIFI_ACTIVE_SCAN_TIME__INIT; - *message = init_value; -} -size_t wifi_active_scan_time__get_packed_size - (const WifiActiveScanTime *message) -{ - assert(message->base.descriptor == &wifi_active_scan_time__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_active_scan_time__pack - (const WifiActiveScanTime *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_active_scan_time__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_active_scan_time__pack_to_buffer - (const WifiActiveScanTime *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_active_scan_time__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiActiveScanTime * - wifi_active_scan_time__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiActiveScanTime *) - protobuf_c_message_unpack (&wifi_active_scan_time__descriptor, - allocator, len, data); -} -void wifi_active_scan_time__free_unpacked - (WifiActiveScanTime *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_active_scan_time__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_scan_time__init - (WifiScanTime *message) -{ - static const WifiScanTime init_value = WIFI_SCAN_TIME__INIT; - *message = init_value; -} -size_t wifi_scan_time__get_packed_size - (const WifiScanTime *message) -{ - assert(message->base.descriptor == &wifi_scan_time__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_scan_time__pack - (const WifiScanTime *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_scan_time__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_scan_time__pack_to_buffer - (const WifiScanTime *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_scan_time__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiScanTime * - wifi_scan_time__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiScanTime *) - protobuf_c_message_unpack (&wifi_scan_time__descriptor, - allocator, len, data); -} -void wifi_scan_time__free_unpacked - (WifiScanTime *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_scan_time__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_scan_config__init - (WifiScanConfig *message) -{ - static const WifiScanConfig init_value = WIFI_SCAN_CONFIG__INIT; - *message = init_value; -} -size_t wifi_scan_config__get_packed_size - (const WifiScanConfig *message) -{ - assert(message->base.descriptor == &wifi_scan_config__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_scan_config__pack - (const WifiScanConfig *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_scan_config__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_scan_config__pack_to_buffer - (const WifiScanConfig *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_scan_config__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiScanConfig * - wifi_scan_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiScanConfig *) - protobuf_c_message_unpack (&wifi_scan_config__descriptor, - allocator, len, data); -} -void wifi_scan_config__free_unpacked - (WifiScanConfig *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_scan_config__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_he_ap_info__init - (WifiHeApInfo *message) -{ - static const WifiHeApInfo init_value = WIFI_HE_AP_INFO__INIT; - *message = init_value; -} -size_t wifi_he_ap_info__get_packed_size - (const WifiHeApInfo *message) -{ - assert(message->base.descriptor == &wifi_he_ap_info__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_he_ap_info__pack - (const WifiHeApInfo *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_he_ap_info__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_he_ap_info__pack_to_buffer - (const WifiHeApInfo *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_he_ap_info__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiHeApInfo * - wifi_he_ap_info__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiHeApInfo *) - protobuf_c_message_unpack (&wifi_he_ap_info__descriptor, - allocator, len, data); -} -void wifi_he_ap_info__free_unpacked - (WifiHeApInfo *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_he_ap_info__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_ap_record__init - (WifiApRecord *message) -{ - static const WifiApRecord init_value = WIFI_AP_RECORD__INIT; - *message = init_value; -} -size_t wifi_ap_record__get_packed_size - (const WifiApRecord *message) -{ - assert(message->base.descriptor == &wifi_ap_record__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_ap_record__pack - (const WifiApRecord *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_ap_record__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_ap_record__pack_to_buffer - (const WifiApRecord *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_ap_record__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiApRecord * - wifi_ap_record__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiApRecord *) - protobuf_c_message_unpack (&wifi_ap_record__descriptor, - allocator, len, data); -} -void wifi_ap_record__free_unpacked - (WifiApRecord *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_ap_record__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_scan_threshold__init - (WifiScanThreshold *message) -{ - static const WifiScanThreshold init_value = WIFI_SCAN_THRESHOLD__INIT; - *message = init_value; -} -size_t wifi_scan_threshold__get_packed_size - (const WifiScanThreshold *message) -{ - assert(message->base.descriptor == &wifi_scan_threshold__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_scan_threshold__pack - (const WifiScanThreshold *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_scan_threshold__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_scan_threshold__pack_to_buffer - (const WifiScanThreshold *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_scan_threshold__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiScanThreshold * - wifi_scan_threshold__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiScanThreshold *) - protobuf_c_message_unpack (&wifi_scan_threshold__descriptor, - allocator, len, data); -} -void wifi_scan_threshold__free_unpacked - (WifiScanThreshold *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_scan_threshold__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_pmf_config__init - (WifiPmfConfig *message) -{ - static const WifiPmfConfig init_value = WIFI_PMF_CONFIG__INIT; - *message = init_value; -} -size_t wifi_pmf_config__get_packed_size - (const WifiPmfConfig *message) -{ - assert(message->base.descriptor == &wifi_pmf_config__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_pmf_config__pack - (const WifiPmfConfig *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_pmf_config__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_pmf_config__pack_to_buffer - (const WifiPmfConfig *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_pmf_config__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiPmfConfig * - wifi_pmf_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiPmfConfig *) - protobuf_c_message_unpack (&wifi_pmf_config__descriptor, - allocator, len, data); -} -void wifi_pmf_config__free_unpacked - (WifiPmfConfig *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_pmf_config__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_ap_config__init - (WifiApConfig *message) -{ - static const WifiApConfig init_value = WIFI_AP_CONFIG__INIT; - *message = init_value; -} -size_t wifi_ap_config__get_packed_size - (const WifiApConfig *message) -{ - assert(message->base.descriptor == &wifi_ap_config__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_ap_config__pack - (const WifiApConfig *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_ap_config__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_ap_config__pack_to_buffer - (const WifiApConfig *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_ap_config__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiApConfig * - wifi_ap_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiApConfig *) - protobuf_c_message_unpack (&wifi_ap_config__descriptor, - allocator, len, data); -} -void wifi_ap_config__free_unpacked - (WifiApConfig *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_ap_config__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_sta_config__init - (WifiStaConfig *message) -{ - static const WifiStaConfig init_value = WIFI_STA_CONFIG__INIT; - *message = init_value; -} -size_t wifi_sta_config__get_packed_size - (const WifiStaConfig *message) -{ - assert(message->base.descriptor == &wifi_sta_config__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_sta_config__pack - (const WifiStaConfig *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_sta_config__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_sta_config__pack_to_buffer - (const WifiStaConfig *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_sta_config__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiStaConfig * - wifi_sta_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiStaConfig *) - protobuf_c_message_unpack (&wifi_sta_config__descriptor, - allocator, len, data); -} -void wifi_sta_config__free_unpacked - (WifiStaConfig *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_sta_config__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_config__init - (WifiConfig *message) -{ - static const WifiConfig init_value = WIFI_CONFIG__INIT; - *message = init_value; -} -size_t wifi_config__get_packed_size - (const WifiConfig *message) -{ - assert(message->base.descriptor == &wifi_config__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_config__pack - (const WifiConfig *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_config__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_config__pack_to_buffer - (const WifiConfig *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_config__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiConfig * - wifi_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiConfig *) - protobuf_c_message_unpack (&wifi_config__descriptor, - allocator, len, data); -} -void wifi_config__free_unpacked - (WifiConfig *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_config__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_sta_info__init - (WifiStaInfo *message) -{ - static const WifiStaInfo init_value = WIFI_STA_INFO__INIT; - *message = init_value; -} -size_t wifi_sta_info__get_packed_size - (const WifiStaInfo *message) -{ - assert(message->base.descriptor == &wifi_sta_info__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_sta_info__pack - (const WifiStaInfo *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_sta_info__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_sta_info__pack_to_buffer - (const WifiStaInfo *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_sta_info__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiStaInfo * - wifi_sta_info__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiStaInfo *) - protobuf_c_message_unpack (&wifi_sta_info__descriptor, - allocator, len, data); -} -void wifi_sta_info__free_unpacked - (WifiStaInfo *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_sta_info__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_sta_list__init - (WifiStaList *message) -{ - static const WifiStaList init_value = WIFI_STA_LIST__INIT; - *message = init_value; -} -size_t wifi_sta_list__get_packed_size - (const WifiStaList *message) -{ - assert(message->base.descriptor == &wifi_sta_list__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_sta_list__pack - (const WifiStaList *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_sta_list__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_sta_list__pack_to_buffer - (const WifiStaList *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_sta_list__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiStaList * - wifi_sta_list__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiStaList *) - protobuf_c_message_unpack (&wifi_sta_list__descriptor, - allocator, len, data); -} -void wifi_sta_list__free_unpacked - (WifiStaList *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_sta_list__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_pkt_rx_ctrl__init - (WifiPktRxCtrl *message) -{ - static const WifiPktRxCtrl init_value = WIFI_PKT_RX_CTRL__INIT; - *message = init_value; -} -size_t wifi_pkt_rx_ctrl__get_packed_size - (const WifiPktRxCtrl *message) -{ - assert(message->base.descriptor == &wifi_pkt_rx_ctrl__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_pkt_rx_ctrl__pack - (const WifiPktRxCtrl *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_pkt_rx_ctrl__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_pkt_rx_ctrl__pack_to_buffer - (const WifiPktRxCtrl *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_pkt_rx_ctrl__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiPktRxCtrl * - wifi_pkt_rx_ctrl__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiPktRxCtrl *) - protobuf_c_message_unpack (&wifi_pkt_rx_ctrl__descriptor, - allocator, len, data); -} -void wifi_pkt_rx_ctrl__free_unpacked - (WifiPktRxCtrl *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_pkt_rx_ctrl__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_promiscuous_pkt__init - (WifiPromiscuousPkt *message) -{ - static const WifiPromiscuousPkt init_value = WIFI_PROMISCUOUS_PKT__INIT; - *message = init_value; -} -size_t wifi_promiscuous_pkt__get_packed_size - (const WifiPromiscuousPkt *message) -{ - assert(message->base.descriptor == &wifi_promiscuous_pkt__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_promiscuous_pkt__pack - (const WifiPromiscuousPkt *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_promiscuous_pkt__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_promiscuous_pkt__pack_to_buffer - (const WifiPromiscuousPkt *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_promiscuous_pkt__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiPromiscuousPkt * - wifi_promiscuous_pkt__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiPromiscuousPkt *) - protobuf_c_message_unpack (&wifi_promiscuous_pkt__descriptor, - allocator, len, data); -} -void wifi_promiscuous_pkt__free_unpacked - (WifiPromiscuousPkt *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_promiscuous_pkt__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_promiscuous_filter__init - (WifiPromiscuousFilter *message) -{ - static const WifiPromiscuousFilter init_value = WIFI_PROMISCUOUS_FILTER__INIT; - *message = init_value; -} -size_t wifi_promiscuous_filter__get_packed_size - (const WifiPromiscuousFilter *message) -{ - assert(message->base.descriptor == &wifi_promiscuous_filter__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_promiscuous_filter__pack - (const WifiPromiscuousFilter *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_promiscuous_filter__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_promiscuous_filter__pack_to_buffer - (const WifiPromiscuousFilter *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_promiscuous_filter__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiPromiscuousFilter * - wifi_promiscuous_filter__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiPromiscuousFilter *) - protobuf_c_message_unpack (&wifi_promiscuous_filter__descriptor, - allocator, len, data); -} -void wifi_promiscuous_filter__free_unpacked - (WifiPromiscuousFilter *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_promiscuous_filter__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_csi_config__init - (WifiCsiConfig *message) -{ - static const WifiCsiConfig init_value = WIFI_CSI_CONFIG__INIT; - *message = init_value; -} -size_t wifi_csi_config__get_packed_size - (const WifiCsiConfig *message) -{ - assert(message->base.descriptor == &wifi_csi_config__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_csi_config__pack - (const WifiCsiConfig *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_csi_config__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_csi_config__pack_to_buffer - (const WifiCsiConfig *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_csi_config__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiCsiConfig * - wifi_csi_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiCsiConfig *) - protobuf_c_message_unpack (&wifi_csi_config__descriptor, - allocator, len, data); -} -void wifi_csi_config__free_unpacked - (WifiCsiConfig *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_csi_config__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_csi_info__init - (WifiCsiInfo *message) -{ - static const WifiCsiInfo init_value = WIFI_CSI_INFO__INIT; - *message = init_value; -} -size_t wifi_csi_info__get_packed_size - (const WifiCsiInfo *message) -{ - assert(message->base.descriptor == &wifi_csi_info__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_csi_info__pack - (const WifiCsiInfo *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_csi_info__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_csi_info__pack_to_buffer - (const WifiCsiInfo *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_csi_info__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiCsiInfo * - wifi_csi_info__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiCsiInfo *) - protobuf_c_message_unpack (&wifi_csi_info__descriptor, - allocator, len, data); -} -void wifi_csi_info__free_unpacked - (WifiCsiInfo *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_csi_info__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_ant_gpio__init - (WifiAntGpio *message) -{ - static const WifiAntGpio init_value = WIFI_ANT_GPIO__INIT; - *message = init_value; -} -size_t wifi_ant_gpio__get_packed_size - (const WifiAntGpio *message) -{ - assert(message->base.descriptor == &wifi_ant_gpio__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_ant_gpio__pack - (const WifiAntGpio *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_ant_gpio__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_ant_gpio__pack_to_buffer - (const WifiAntGpio *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_ant_gpio__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiAntGpio * - wifi_ant_gpio__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiAntGpio *) - protobuf_c_message_unpack (&wifi_ant_gpio__descriptor, - allocator, len, data); -} -void wifi_ant_gpio__free_unpacked - (WifiAntGpio *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_ant_gpio__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_ant_gpio_config__init - (WifiAntGpioConfig *message) -{ - static const WifiAntGpioConfig init_value = WIFI_ANT_GPIO_CONFIG__INIT; - *message = init_value; -} -size_t wifi_ant_gpio_config__get_packed_size - (const WifiAntGpioConfig *message) -{ - assert(message->base.descriptor == &wifi_ant_gpio_config__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_ant_gpio_config__pack - (const WifiAntGpioConfig *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_ant_gpio_config__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_ant_gpio_config__pack_to_buffer - (const WifiAntGpioConfig *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_ant_gpio_config__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiAntGpioConfig * - wifi_ant_gpio_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiAntGpioConfig *) - protobuf_c_message_unpack (&wifi_ant_gpio_config__descriptor, - allocator, len, data); -} -void wifi_ant_gpio_config__free_unpacked - (WifiAntGpioConfig *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_ant_gpio_config__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_ant_config__init - (WifiAntConfig *message) -{ - static const WifiAntConfig init_value = WIFI_ANT_CONFIG__INIT; - *message = init_value; -} -size_t wifi_ant_config__get_packed_size - (const WifiAntConfig *message) -{ - assert(message->base.descriptor == &wifi_ant_config__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_ant_config__pack - (const WifiAntConfig *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_ant_config__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_ant_config__pack_to_buffer - (const WifiAntConfig *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_ant_config__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiAntConfig * - wifi_ant_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiAntConfig *) - protobuf_c_message_unpack (&wifi_ant_config__descriptor, - allocator, len, data); -} -void wifi_ant_config__free_unpacked - (WifiAntConfig *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_ant_config__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_action_tx_req__init - (WifiActionTxReq *message) -{ - static const WifiActionTxReq init_value = WIFI_ACTION_TX_REQ__INIT; - *message = init_value; -} -size_t wifi_action_tx_req__get_packed_size - (const WifiActionTxReq *message) -{ - assert(message->base.descriptor == &wifi_action_tx_req__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_action_tx_req__pack - (const WifiActionTxReq *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_action_tx_req__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_action_tx_req__pack_to_buffer - (const WifiActionTxReq *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_action_tx_req__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiActionTxReq * - wifi_action_tx_req__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiActionTxReq *) - protobuf_c_message_unpack (&wifi_action_tx_req__descriptor, - allocator, len, data); -} -void wifi_action_tx_req__free_unpacked - (WifiActionTxReq *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_action_tx_req__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_ftm_initiator_cfg__init - (WifiFtmInitiatorCfg *message) -{ - static const WifiFtmInitiatorCfg init_value = WIFI_FTM_INITIATOR_CFG__INIT; - *message = init_value; -} -size_t wifi_ftm_initiator_cfg__get_packed_size - (const WifiFtmInitiatorCfg *message) -{ - assert(message->base.descriptor == &wifi_ftm_initiator_cfg__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_ftm_initiator_cfg__pack - (const WifiFtmInitiatorCfg *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_ftm_initiator_cfg__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_ftm_initiator_cfg__pack_to_buffer - (const WifiFtmInitiatorCfg *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_ftm_initiator_cfg__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiFtmInitiatorCfg * - wifi_ftm_initiator_cfg__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiFtmInitiatorCfg *) - protobuf_c_message_unpack (&wifi_ftm_initiator_cfg__descriptor, - allocator, len, data); -} -void wifi_ftm_initiator_cfg__free_unpacked - (WifiFtmInitiatorCfg *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_ftm_initiator_cfg__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_event_sta_scan_done__init - (WifiEventStaScanDone *message) -{ - static const WifiEventStaScanDone init_value = WIFI_EVENT_STA_SCAN_DONE__INIT; - *message = init_value; -} -size_t wifi_event_sta_scan_done__get_packed_size - (const WifiEventStaScanDone *message) -{ - assert(message->base.descriptor == &wifi_event_sta_scan_done__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_event_sta_scan_done__pack - (const WifiEventStaScanDone *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_event_sta_scan_done__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_event_sta_scan_done__pack_to_buffer - (const WifiEventStaScanDone *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_event_sta_scan_done__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiEventStaScanDone * - wifi_event_sta_scan_done__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiEventStaScanDone *) - protobuf_c_message_unpack (&wifi_event_sta_scan_done__descriptor, - allocator, len, data); -} -void wifi_event_sta_scan_done__free_unpacked - (WifiEventStaScanDone *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_event_sta_scan_done__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_event_sta_connected__init - (WifiEventStaConnected *message) -{ - static const WifiEventStaConnected init_value = WIFI_EVENT_STA_CONNECTED__INIT; - *message = init_value; -} -size_t wifi_event_sta_connected__get_packed_size - (const WifiEventStaConnected *message) -{ - assert(message->base.descriptor == &wifi_event_sta_connected__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_event_sta_connected__pack - (const WifiEventStaConnected *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_event_sta_connected__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_event_sta_connected__pack_to_buffer - (const WifiEventStaConnected *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_event_sta_connected__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiEventStaConnected * - wifi_event_sta_connected__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiEventStaConnected *) - protobuf_c_message_unpack (&wifi_event_sta_connected__descriptor, - allocator, len, data); -} -void wifi_event_sta_connected__free_unpacked - (WifiEventStaConnected *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_event_sta_connected__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_event_sta_disconnected__init - (WifiEventStaDisconnected *message) -{ - static const WifiEventStaDisconnected init_value = WIFI_EVENT_STA_DISCONNECTED__INIT; - *message = init_value; -} -size_t wifi_event_sta_disconnected__get_packed_size - (const WifiEventStaDisconnected *message) -{ - assert(message->base.descriptor == &wifi_event_sta_disconnected__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_event_sta_disconnected__pack - (const WifiEventStaDisconnected *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_event_sta_disconnected__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_event_sta_disconnected__pack_to_buffer - (const WifiEventStaDisconnected *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_event_sta_disconnected__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiEventStaDisconnected * - wifi_event_sta_disconnected__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiEventStaDisconnected *) - protobuf_c_message_unpack (&wifi_event_sta_disconnected__descriptor, - allocator, len, data); -} -void wifi_event_sta_disconnected__free_unpacked - (WifiEventStaDisconnected *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_event_sta_disconnected__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_event_sta_authmode_change__init - (WifiEventStaAuthmodeChange *message) -{ - static const WifiEventStaAuthmodeChange init_value = WIFI_EVENT_STA_AUTHMODE_CHANGE__INIT; - *message = init_value; -} -size_t wifi_event_sta_authmode_change__get_packed_size - (const WifiEventStaAuthmodeChange *message) -{ - assert(message->base.descriptor == &wifi_event_sta_authmode_change__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_event_sta_authmode_change__pack - (const WifiEventStaAuthmodeChange *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_event_sta_authmode_change__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_event_sta_authmode_change__pack_to_buffer - (const WifiEventStaAuthmodeChange *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_event_sta_authmode_change__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiEventStaAuthmodeChange * - wifi_event_sta_authmode_change__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiEventStaAuthmodeChange *) - protobuf_c_message_unpack (&wifi_event_sta_authmode_change__descriptor, - allocator, len, data); -} -void wifi_event_sta_authmode_change__free_unpacked - (WifiEventStaAuthmodeChange *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_event_sta_authmode_change__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_event_sta_wps_er_pin__init - (WifiEventStaWpsErPin *message) -{ - static const WifiEventStaWpsErPin init_value = WIFI_EVENT_STA_WPS_ER_PIN__INIT; - *message = init_value; -} -size_t wifi_event_sta_wps_er_pin__get_packed_size - (const WifiEventStaWpsErPin *message) -{ - assert(message->base.descriptor == &wifi_event_sta_wps_er_pin__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_event_sta_wps_er_pin__pack - (const WifiEventStaWpsErPin *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_event_sta_wps_er_pin__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_event_sta_wps_er_pin__pack_to_buffer - (const WifiEventStaWpsErPin *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_event_sta_wps_er_pin__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiEventStaWpsErPin * - wifi_event_sta_wps_er_pin__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiEventStaWpsErPin *) - protobuf_c_message_unpack (&wifi_event_sta_wps_er_pin__descriptor, - allocator, len, data); -} -void wifi_event_sta_wps_er_pin__free_unpacked - (WifiEventStaWpsErPin *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_event_sta_wps_er_pin__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void ap_cred__init - (ApCred *message) -{ - static const ApCred init_value = AP_CRED__INIT; - *message = init_value; -} -size_t ap_cred__get_packed_size - (const ApCred *message) -{ - assert(message->base.descriptor == &ap_cred__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t ap_cred__pack - (const ApCred *message, - uint8_t *out) -{ - assert(message->base.descriptor == &ap_cred__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t ap_cred__pack_to_buffer - (const ApCred *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &ap_cred__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -ApCred * - ap_cred__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (ApCred *) - protobuf_c_message_unpack (&ap_cred__descriptor, - allocator, len, data); -} -void ap_cred__free_unpacked - (ApCred *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &ap_cred__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_event_sta_wps_er_success__init - (WifiEventStaWpsErSuccess *message) -{ - static const WifiEventStaWpsErSuccess init_value = WIFI_EVENT_STA_WPS_ER_SUCCESS__INIT; - *message = init_value; -} -size_t wifi_event_sta_wps_er_success__get_packed_size - (const WifiEventStaWpsErSuccess *message) -{ - assert(message->base.descriptor == &wifi_event_sta_wps_er_success__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_event_sta_wps_er_success__pack - (const WifiEventStaWpsErSuccess *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_event_sta_wps_er_success__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_event_sta_wps_er_success__pack_to_buffer - (const WifiEventStaWpsErSuccess *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_event_sta_wps_er_success__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiEventStaWpsErSuccess * - wifi_event_sta_wps_er_success__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiEventStaWpsErSuccess *) - protobuf_c_message_unpack (&wifi_event_sta_wps_er_success__descriptor, - allocator, len, data); -} -void wifi_event_sta_wps_er_success__free_unpacked - (WifiEventStaWpsErSuccess *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_event_sta_wps_er_success__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_event_ap_probe_req_rx__init - (WifiEventApProbeReqRx *message) -{ - static const WifiEventApProbeReqRx init_value = WIFI_EVENT_AP_PROBE_REQ_RX__INIT; - *message = init_value; -} -size_t wifi_event_ap_probe_req_rx__get_packed_size - (const WifiEventApProbeReqRx *message) -{ - assert(message->base.descriptor == &wifi_event_ap_probe_req_rx__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_event_ap_probe_req_rx__pack - (const WifiEventApProbeReqRx *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_event_ap_probe_req_rx__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_event_ap_probe_req_rx__pack_to_buffer - (const WifiEventApProbeReqRx *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_event_ap_probe_req_rx__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiEventApProbeReqRx * - wifi_event_ap_probe_req_rx__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiEventApProbeReqRx *) - protobuf_c_message_unpack (&wifi_event_ap_probe_req_rx__descriptor, - allocator, len, data); -} -void wifi_event_ap_probe_req_rx__free_unpacked - (WifiEventApProbeReqRx *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_event_ap_probe_req_rx__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_event_bss_rssi_low__init - (WifiEventBssRssiLow *message) -{ - static const WifiEventBssRssiLow init_value = WIFI_EVENT_BSS_RSSI_LOW__INIT; - *message = init_value; -} -size_t wifi_event_bss_rssi_low__get_packed_size - (const WifiEventBssRssiLow *message) -{ - assert(message->base.descriptor == &wifi_event_bss_rssi_low__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_event_bss_rssi_low__pack - (const WifiEventBssRssiLow *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_event_bss_rssi_low__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_event_bss_rssi_low__pack_to_buffer - (const WifiEventBssRssiLow *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_event_bss_rssi_low__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiEventBssRssiLow * - wifi_event_bss_rssi_low__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiEventBssRssiLow *) - protobuf_c_message_unpack (&wifi_event_bss_rssi_low__descriptor, - allocator, len, data); -} -void wifi_event_bss_rssi_low__free_unpacked - (WifiEventBssRssiLow *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_event_bss_rssi_low__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_ftm_report_entry__init - (WifiFtmReportEntry *message) -{ - static const WifiFtmReportEntry init_value = WIFI_FTM_REPORT_ENTRY__INIT; - *message = init_value; -} -size_t wifi_ftm_report_entry__get_packed_size - (const WifiFtmReportEntry *message) -{ - assert(message->base.descriptor == &wifi_ftm_report_entry__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_ftm_report_entry__pack - (const WifiFtmReportEntry *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_ftm_report_entry__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_ftm_report_entry__pack_to_buffer - (const WifiFtmReportEntry *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_ftm_report_entry__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiFtmReportEntry * - wifi_ftm_report_entry__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiFtmReportEntry *) - protobuf_c_message_unpack (&wifi_ftm_report_entry__descriptor, - allocator, len, data); -} -void wifi_ftm_report_entry__free_unpacked - (WifiFtmReportEntry *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_ftm_report_entry__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_event_ftm_report__init - (WifiEventFtmReport *message) -{ - static const WifiEventFtmReport init_value = WIFI_EVENT_FTM_REPORT__INIT; - *message = init_value; -} -size_t wifi_event_ftm_report__get_packed_size - (const WifiEventFtmReport *message) -{ - assert(message->base.descriptor == &wifi_event_ftm_report__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_event_ftm_report__pack - (const WifiEventFtmReport *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_event_ftm_report__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_event_ftm_report__pack_to_buffer - (const WifiEventFtmReport *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_event_ftm_report__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiEventFtmReport * - wifi_event_ftm_report__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiEventFtmReport *) - protobuf_c_message_unpack (&wifi_event_ftm_report__descriptor, - allocator, len, data); -} -void wifi_event_ftm_report__free_unpacked - (WifiEventFtmReport *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_event_ftm_report__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_event_action_tx_status__init - (WifiEventActionTxStatus *message) -{ - static const WifiEventActionTxStatus init_value = WIFI_EVENT_ACTION_TX_STATUS__INIT; - *message = init_value; -} -size_t wifi_event_action_tx_status__get_packed_size - (const WifiEventActionTxStatus *message) -{ - assert(message->base.descriptor == &wifi_event_action_tx_status__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_event_action_tx_status__pack - (const WifiEventActionTxStatus *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_event_action_tx_status__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_event_action_tx_status__pack_to_buffer - (const WifiEventActionTxStatus *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_event_action_tx_status__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiEventActionTxStatus * - wifi_event_action_tx_status__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiEventActionTxStatus *) - protobuf_c_message_unpack (&wifi_event_action_tx_status__descriptor, - allocator, len, data); -} -void wifi_event_action_tx_status__free_unpacked - (WifiEventActionTxStatus *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_event_action_tx_status__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_event_roc_done__init - (WifiEventRocDone *message) -{ - static const WifiEventRocDone init_value = WIFI_EVENT_ROC_DONE__INIT; - *message = init_value; -} -size_t wifi_event_roc_done__get_packed_size - (const WifiEventRocDone *message) -{ - assert(message->base.descriptor == &wifi_event_roc_done__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_event_roc_done__pack - (const WifiEventRocDone *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_event_roc_done__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_event_roc_done__pack_to_buffer - (const WifiEventRocDone *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_event_roc_done__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiEventRocDone * - wifi_event_roc_done__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiEventRocDone *) - protobuf_c_message_unpack (&wifi_event_roc_done__descriptor, - allocator, len, data); -} -void wifi_event_roc_done__free_unpacked - (WifiEventRocDone *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_event_roc_done__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_event_ap_wps_rg_pin__init - (WifiEventApWpsRgPin *message) -{ - static const WifiEventApWpsRgPin init_value = WIFI_EVENT_AP_WPS_RG_PIN__INIT; - *message = init_value; -} -size_t wifi_event_ap_wps_rg_pin__get_packed_size - (const WifiEventApWpsRgPin *message) -{ - assert(message->base.descriptor == &wifi_event_ap_wps_rg_pin__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_event_ap_wps_rg_pin__pack - (const WifiEventApWpsRgPin *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_event_ap_wps_rg_pin__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_event_ap_wps_rg_pin__pack_to_buffer - (const WifiEventApWpsRgPin *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_event_ap_wps_rg_pin__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiEventApWpsRgPin * - wifi_event_ap_wps_rg_pin__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiEventApWpsRgPin *) - protobuf_c_message_unpack (&wifi_event_ap_wps_rg_pin__descriptor, - allocator, len, data); -} -void wifi_event_ap_wps_rg_pin__free_unpacked - (WifiEventApWpsRgPin *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_event_ap_wps_rg_pin__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_event_ap_wps_rg_fail_reason__init - (WifiEventApWpsRgFailReason *message) -{ - static const WifiEventApWpsRgFailReason init_value = WIFI_EVENT_AP_WPS_RG_FAIL_REASON__INIT; - *message = init_value; -} -size_t wifi_event_ap_wps_rg_fail_reason__get_packed_size - (const WifiEventApWpsRgFailReason *message) -{ - assert(message->base.descriptor == &wifi_event_ap_wps_rg_fail_reason__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_event_ap_wps_rg_fail_reason__pack - (const WifiEventApWpsRgFailReason *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_event_ap_wps_rg_fail_reason__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_event_ap_wps_rg_fail_reason__pack_to_buffer - (const WifiEventApWpsRgFailReason *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_event_ap_wps_rg_fail_reason__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiEventApWpsRgFailReason * - wifi_event_ap_wps_rg_fail_reason__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiEventApWpsRgFailReason *) - protobuf_c_message_unpack (&wifi_event_ap_wps_rg_fail_reason__descriptor, - allocator, len, data); -} -void wifi_event_ap_wps_rg_fail_reason__free_unpacked - (WifiEventApWpsRgFailReason *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_event_ap_wps_rg_fail_reason__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_event_ap_wps_rg_success__init - (WifiEventApWpsRgSuccess *message) -{ - static const WifiEventApWpsRgSuccess init_value = WIFI_EVENT_AP_WPS_RG_SUCCESS__INIT; - *message = init_value; -} -size_t wifi_event_ap_wps_rg_success__get_packed_size - (const WifiEventApWpsRgSuccess *message) -{ - assert(message->base.descriptor == &wifi_event_ap_wps_rg_success__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_event_ap_wps_rg_success__pack - (const WifiEventApWpsRgSuccess *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_event_ap_wps_rg_success__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_event_ap_wps_rg_success__pack_to_buffer - (const WifiEventApWpsRgSuccess *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_event_ap_wps_rg_success__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiEventApWpsRgSuccess * - wifi_event_ap_wps_rg_success__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiEventApWpsRgSuccess *) - protobuf_c_message_unpack (&wifi_event_ap_wps_rg_success__descriptor, - allocator, len, data); -} -void wifi_event_ap_wps_rg_success__free_unpacked - (WifiEventApWpsRgSuccess *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_event_ap_wps_rg_success__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_protocols__init - (WifiProtocols *message) -{ - static const WifiProtocols init_value = WIFI_PROTOCOLS__INIT; - *message = init_value; -} -size_t wifi_protocols__get_packed_size - (const WifiProtocols *message) -{ - assert(message->base.descriptor == &wifi_protocols__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_protocols__pack - (const WifiProtocols *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_protocols__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_protocols__pack_to_buffer - (const WifiProtocols *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_protocols__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiProtocols * - wifi_protocols__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiProtocols *) - protobuf_c_message_unpack (&wifi_protocols__descriptor, - allocator, len, data); -} -void wifi_protocols__free_unpacked - (WifiProtocols *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_protocols__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void wifi_bandwidths__init - (WifiBandwidths *message) -{ - static const WifiBandwidths init_value = WIFI_BANDWIDTHS__INIT; - *message = init_value; -} -size_t wifi_bandwidths__get_packed_size - (const WifiBandwidths *message) -{ - assert(message->base.descriptor == &wifi_bandwidths__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t wifi_bandwidths__pack - (const WifiBandwidths *message, - uint8_t *out) -{ - assert(message->base.descriptor == &wifi_bandwidths__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t wifi_bandwidths__pack_to_buffer - (const WifiBandwidths *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &wifi_bandwidths__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -WifiBandwidths * - wifi_bandwidths__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (WifiBandwidths *) - protobuf_c_message_unpack (&wifi_bandwidths__descriptor, - allocator, len, data); -} -void wifi_bandwidths__free_unpacked - (WifiBandwidths *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &wifi_bandwidths__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void connected_stalist__init - (ConnectedSTAList *message) -{ - static const ConnectedSTAList init_value = CONNECTED_STALIST__INIT; - *message = init_value; -} -size_t connected_stalist__get_packed_size - (const ConnectedSTAList *message) -{ - assert(message->base.descriptor == &connected_stalist__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t connected_stalist__pack - (const ConnectedSTAList *message, - uint8_t *out) -{ - assert(message->base.descriptor == &connected_stalist__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t connected_stalist__pack_to_buffer - (const ConnectedSTAList *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &connected_stalist__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -ConnectedSTAList * - connected_stalist__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (ConnectedSTAList *) - protobuf_c_message_unpack (&connected_stalist__descriptor, - allocator, len, data); -} -void connected_stalist__free_unpacked - (ConnectedSTAList *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &connected_stalist__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__get_mac_address__init - (RpcReqGetMacAddress *message) -{ - static const RpcReqGetMacAddress init_value = RPC__REQ__GET_MAC_ADDRESS__INIT; - *message = init_value; -} -size_t rpc__req__get_mac_address__get_packed_size - (const RpcReqGetMacAddress *message) -{ - assert(message->base.descriptor == &rpc__req__get_mac_address__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__get_mac_address__pack - (const RpcReqGetMacAddress *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__get_mac_address__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__get_mac_address__pack_to_buffer - (const RpcReqGetMacAddress *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__get_mac_address__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqGetMacAddress * - rpc__req__get_mac_address__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqGetMacAddress *) - protobuf_c_message_unpack (&rpc__req__get_mac_address__descriptor, - allocator, len, data); -} -void rpc__req__get_mac_address__free_unpacked - (RpcReqGetMacAddress *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__get_mac_address__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__get_mac_address__init - (RpcRespGetMacAddress *message) -{ - static const RpcRespGetMacAddress init_value = RPC__RESP__GET_MAC_ADDRESS__INIT; - *message = init_value; -} -size_t rpc__resp__get_mac_address__get_packed_size - (const RpcRespGetMacAddress *message) -{ - assert(message->base.descriptor == &rpc__resp__get_mac_address__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__get_mac_address__pack - (const RpcRespGetMacAddress *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__get_mac_address__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__get_mac_address__pack_to_buffer - (const RpcRespGetMacAddress *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__get_mac_address__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespGetMacAddress * - rpc__resp__get_mac_address__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespGetMacAddress *) - protobuf_c_message_unpack (&rpc__resp__get_mac_address__descriptor, - allocator, len, data); -} -void rpc__resp__get_mac_address__free_unpacked - (RpcRespGetMacAddress *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__get_mac_address__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__get_mode__init - (RpcReqGetMode *message) -{ - static const RpcReqGetMode init_value = RPC__REQ__GET_MODE__INIT; - *message = init_value; -} -size_t rpc__req__get_mode__get_packed_size - (const RpcReqGetMode *message) -{ - assert(message->base.descriptor == &rpc__req__get_mode__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__get_mode__pack - (const RpcReqGetMode *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__get_mode__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__get_mode__pack_to_buffer - (const RpcReqGetMode *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__get_mode__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqGetMode * - rpc__req__get_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqGetMode *) - protobuf_c_message_unpack (&rpc__req__get_mode__descriptor, - allocator, len, data); -} -void rpc__req__get_mode__free_unpacked - (RpcReqGetMode *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__get_mode__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__get_mode__init - (RpcRespGetMode *message) -{ - static const RpcRespGetMode init_value = RPC__RESP__GET_MODE__INIT; - *message = init_value; -} -size_t rpc__resp__get_mode__get_packed_size - (const RpcRespGetMode *message) -{ - assert(message->base.descriptor == &rpc__resp__get_mode__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__get_mode__pack - (const RpcRespGetMode *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__get_mode__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__get_mode__pack_to_buffer - (const RpcRespGetMode *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__get_mode__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespGetMode * - rpc__resp__get_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespGetMode *) - protobuf_c_message_unpack (&rpc__resp__get_mode__descriptor, - allocator, len, data); -} -void rpc__resp__get_mode__free_unpacked - (RpcRespGetMode *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__get_mode__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__set_mode__init - (RpcReqSetMode *message) -{ - static const RpcReqSetMode init_value = RPC__REQ__SET_MODE__INIT; - *message = init_value; -} -size_t rpc__req__set_mode__get_packed_size - (const RpcReqSetMode *message) -{ - assert(message->base.descriptor == &rpc__req__set_mode__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__set_mode__pack - (const RpcReqSetMode *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__set_mode__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__set_mode__pack_to_buffer - (const RpcReqSetMode *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__set_mode__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqSetMode * - rpc__req__set_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqSetMode *) - protobuf_c_message_unpack (&rpc__req__set_mode__descriptor, - allocator, len, data); -} -void rpc__req__set_mode__free_unpacked - (RpcReqSetMode *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__set_mode__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__set_mode__init - (RpcRespSetMode *message) -{ - static const RpcRespSetMode init_value = RPC__RESP__SET_MODE__INIT; - *message = init_value; -} -size_t rpc__resp__set_mode__get_packed_size - (const RpcRespSetMode *message) -{ - assert(message->base.descriptor == &rpc__resp__set_mode__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__set_mode__pack - (const RpcRespSetMode *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__set_mode__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__set_mode__pack_to_buffer - (const RpcRespSetMode *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__set_mode__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespSetMode * - rpc__resp__set_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespSetMode *) - protobuf_c_message_unpack (&rpc__resp__set_mode__descriptor, - allocator, len, data); -} -void rpc__resp__set_mode__free_unpacked - (RpcRespSetMode *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__set_mode__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__get_ps__init - (RpcReqGetPs *message) -{ - static const RpcReqGetPs init_value = RPC__REQ__GET_PS__INIT; - *message = init_value; -} -size_t rpc__req__get_ps__get_packed_size - (const RpcReqGetPs *message) -{ - assert(message->base.descriptor == &rpc__req__get_ps__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__get_ps__pack - (const RpcReqGetPs *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__get_ps__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__get_ps__pack_to_buffer - (const RpcReqGetPs *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__get_ps__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqGetPs * - rpc__req__get_ps__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqGetPs *) - protobuf_c_message_unpack (&rpc__req__get_ps__descriptor, - allocator, len, data); -} -void rpc__req__get_ps__free_unpacked - (RpcReqGetPs *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__get_ps__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__get_ps__init - (RpcRespGetPs *message) -{ - static const RpcRespGetPs init_value = RPC__RESP__GET_PS__INIT; - *message = init_value; -} -size_t rpc__resp__get_ps__get_packed_size - (const RpcRespGetPs *message) -{ - assert(message->base.descriptor == &rpc__resp__get_ps__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__get_ps__pack - (const RpcRespGetPs *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__get_ps__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__get_ps__pack_to_buffer - (const RpcRespGetPs *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__get_ps__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespGetPs * - rpc__resp__get_ps__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespGetPs *) - protobuf_c_message_unpack (&rpc__resp__get_ps__descriptor, - allocator, len, data); -} -void rpc__resp__get_ps__free_unpacked - (RpcRespGetPs *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__get_ps__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__set_ps__init - (RpcReqSetPs *message) -{ - static const RpcReqSetPs init_value = RPC__REQ__SET_PS__INIT; - *message = init_value; -} -size_t rpc__req__set_ps__get_packed_size - (const RpcReqSetPs *message) -{ - assert(message->base.descriptor == &rpc__req__set_ps__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__set_ps__pack - (const RpcReqSetPs *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__set_ps__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__set_ps__pack_to_buffer - (const RpcReqSetPs *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__set_ps__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqSetPs * - rpc__req__set_ps__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqSetPs *) - protobuf_c_message_unpack (&rpc__req__set_ps__descriptor, - allocator, len, data); -} -void rpc__req__set_ps__free_unpacked - (RpcReqSetPs *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__set_ps__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__set_ps__init - (RpcRespSetPs *message) -{ - static const RpcRespSetPs init_value = RPC__RESP__SET_PS__INIT; - *message = init_value; -} -size_t rpc__resp__set_ps__get_packed_size - (const RpcRespSetPs *message) -{ - assert(message->base.descriptor == &rpc__resp__set_ps__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__set_ps__pack - (const RpcRespSetPs *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__set_ps__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__set_ps__pack_to_buffer - (const RpcRespSetPs *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__set_ps__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespSetPs * - rpc__resp__set_ps__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespSetPs *) - protobuf_c_message_unpack (&rpc__resp__set_ps__descriptor, - allocator, len, data); -} -void rpc__resp__set_ps__free_unpacked - (RpcRespSetPs *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__set_ps__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__set_mac_address__init - (RpcReqSetMacAddress *message) -{ - static const RpcReqSetMacAddress init_value = RPC__REQ__SET_MAC_ADDRESS__INIT; - *message = init_value; -} -size_t rpc__req__set_mac_address__get_packed_size - (const RpcReqSetMacAddress *message) -{ - assert(message->base.descriptor == &rpc__req__set_mac_address__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__set_mac_address__pack - (const RpcReqSetMacAddress *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__set_mac_address__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__set_mac_address__pack_to_buffer - (const RpcReqSetMacAddress *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__set_mac_address__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqSetMacAddress * - rpc__req__set_mac_address__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqSetMacAddress *) - protobuf_c_message_unpack (&rpc__req__set_mac_address__descriptor, - allocator, len, data); -} -void rpc__req__set_mac_address__free_unpacked - (RpcReqSetMacAddress *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__set_mac_address__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__set_mac_address__init - (RpcRespSetMacAddress *message) -{ - static const RpcRespSetMacAddress init_value = RPC__RESP__SET_MAC_ADDRESS__INIT; - *message = init_value; -} -size_t rpc__resp__set_mac_address__get_packed_size - (const RpcRespSetMacAddress *message) -{ - assert(message->base.descriptor == &rpc__resp__set_mac_address__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__set_mac_address__pack - (const RpcRespSetMacAddress *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__set_mac_address__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__set_mac_address__pack_to_buffer - (const RpcRespSetMacAddress *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__set_mac_address__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespSetMacAddress * - rpc__resp__set_mac_address__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespSetMacAddress *) - protobuf_c_message_unpack (&rpc__resp__set_mac_address__descriptor, - allocator, len, data); -} -void rpc__resp__set_mac_address__free_unpacked - (RpcRespSetMacAddress *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__set_mac_address__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__otabegin__init - (RpcReqOTABegin *message) -{ - static const RpcReqOTABegin init_value = RPC__REQ__OTABEGIN__INIT; - *message = init_value; -} -size_t rpc__req__otabegin__get_packed_size - (const RpcReqOTABegin *message) -{ - assert(message->base.descriptor == &rpc__req__otabegin__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__otabegin__pack - (const RpcReqOTABegin *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__otabegin__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__otabegin__pack_to_buffer - (const RpcReqOTABegin *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__otabegin__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqOTABegin * - rpc__req__otabegin__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqOTABegin *) - protobuf_c_message_unpack (&rpc__req__otabegin__descriptor, - allocator, len, data); -} -void rpc__req__otabegin__free_unpacked - (RpcReqOTABegin *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__otabegin__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__otabegin__init - (RpcRespOTABegin *message) -{ - static const RpcRespOTABegin init_value = RPC__RESP__OTABEGIN__INIT; - *message = init_value; -} -size_t rpc__resp__otabegin__get_packed_size - (const RpcRespOTABegin *message) -{ - assert(message->base.descriptor == &rpc__resp__otabegin__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__otabegin__pack - (const RpcRespOTABegin *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__otabegin__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__otabegin__pack_to_buffer - (const RpcRespOTABegin *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__otabegin__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespOTABegin * - rpc__resp__otabegin__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespOTABegin *) - protobuf_c_message_unpack (&rpc__resp__otabegin__descriptor, - allocator, len, data); -} -void rpc__resp__otabegin__free_unpacked - (RpcRespOTABegin *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__otabegin__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__otawrite__init - (RpcReqOTAWrite *message) -{ - static const RpcReqOTAWrite init_value = RPC__REQ__OTAWRITE__INIT; - *message = init_value; -} -size_t rpc__req__otawrite__get_packed_size - (const RpcReqOTAWrite *message) -{ - assert(message->base.descriptor == &rpc__req__otawrite__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__otawrite__pack - (const RpcReqOTAWrite *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__otawrite__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__otawrite__pack_to_buffer - (const RpcReqOTAWrite *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__otawrite__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqOTAWrite * - rpc__req__otawrite__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqOTAWrite *) - protobuf_c_message_unpack (&rpc__req__otawrite__descriptor, - allocator, len, data); -} -void rpc__req__otawrite__free_unpacked - (RpcReqOTAWrite *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__otawrite__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__otawrite__init - (RpcRespOTAWrite *message) -{ - static const RpcRespOTAWrite init_value = RPC__RESP__OTAWRITE__INIT; - *message = init_value; -} -size_t rpc__resp__otawrite__get_packed_size - (const RpcRespOTAWrite *message) -{ - assert(message->base.descriptor == &rpc__resp__otawrite__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__otawrite__pack - (const RpcRespOTAWrite *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__otawrite__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__otawrite__pack_to_buffer - (const RpcRespOTAWrite *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__otawrite__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespOTAWrite * - rpc__resp__otawrite__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespOTAWrite *) - protobuf_c_message_unpack (&rpc__resp__otawrite__descriptor, - allocator, len, data); -} -void rpc__resp__otawrite__free_unpacked - (RpcRespOTAWrite *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__otawrite__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__otaend__init - (RpcReqOTAEnd *message) -{ - static const RpcReqOTAEnd init_value = RPC__REQ__OTAEND__INIT; - *message = init_value; -} -size_t rpc__req__otaend__get_packed_size - (const RpcReqOTAEnd *message) -{ - assert(message->base.descriptor == &rpc__req__otaend__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__otaend__pack - (const RpcReqOTAEnd *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__otaend__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__otaend__pack_to_buffer - (const RpcReqOTAEnd *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__otaend__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqOTAEnd * - rpc__req__otaend__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqOTAEnd *) - protobuf_c_message_unpack (&rpc__req__otaend__descriptor, - allocator, len, data); -} -void rpc__req__otaend__free_unpacked - (RpcReqOTAEnd *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__otaend__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__otaend__init - (RpcRespOTAEnd *message) -{ - static const RpcRespOTAEnd init_value = RPC__RESP__OTAEND__INIT; - *message = init_value; -} -size_t rpc__resp__otaend__get_packed_size - (const RpcRespOTAEnd *message) -{ - assert(message->base.descriptor == &rpc__resp__otaend__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__otaend__pack - (const RpcRespOTAEnd *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__otaend__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__otaend__pack_to_buffer - (const RpcRespOTAEnd *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__otaend__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespOTAEnd * - rpc__resp__otaend__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespOTAEnd *) - protobuf_c_message_unpack (&rpc__resp__otaend__descriptor, - allocator, len, data); -} -void rpc__resp__otaend__free_unpacked - (RpcRespOTAEnd *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__otaend__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_set_max_tx_power__init - (RpcReqWifiSetMaxTxPower *message) -{ - static const RpcReqWifiSetMaxTxPower init_value = RPC__REQ__WIFI_SET_MAX_TX_POWER__INIT; - *message = init_value; -} -size_t rpc__req__wifi_set_max_tx_power__get_packed_size - (const RpcReqWifiSetMaxTxPower *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_max_tx_power__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_set_max_tx_power__pack - (const RpcReqWifiSetMaxTxPower *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_max_tx_power__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_set_max_tx_power__pack_to_buffer - (const RpcReqWifiSetMaxTxPower *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_max_tx_power__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiSetMaxTxPower * - rpc__req__wifi_set_max_tx_power__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiSetMaxTxPower *) - protobuf_c_message_unpack (&rpc__req__wifi_set_max_tx_power__descriptor, - allocator, len, data); -} -void rpc__req__wifi_set_max_tx_power__free_unpacked - (RpcReqWifiSetMaxTxPower *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_set_max_tx_power__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_set_max_tx_power__init - (RpcRespWifiSetMaxTxPower *message) -{ - static const RpcRespWifiSetMaxTxPower init_value = RPC__RESP__WIFI_SET_MAX_TX_POWER__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_set_max_tx_power__get_packed_size - (const RpcRespWifiSetMaxTxPower *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_max_tx_power__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_set_max_tx_power__pack - (const RpcRespWifiSetMaxTxPower *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_max_tx_power__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_set_max_tx_power__pack_to_buffer - (const RpcRespWifiSetMaxTxPower *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_max_tx_power__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiSetMaxTxPower * - rpc__resp__wifi_set_max_tx_power__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiSetMaxTxPower *) - protobuf_c_message_unpack (&rpc__resp__wifi_set_max_tx_power__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_set_max_tx_power__free_unpacked - (RpcRespWifiSetMaxTxPower *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_set_max_tx_power__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_get_max_tx_power__init - (RpcReqWifiGetMaxTxPower *message) -{ - static const RpcReqWifiGetMaxTxPower init_value = RPC__REQ__WIFI_GET_MAX_TX_POWER__INIT; - *message = init_value; -} -size_t rpc__req__wifi_get_max_tx_power__get_packed_size - (const RpcReqWifiGetMaxTxPower *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_max_tx_power__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_get_max_tx_power__pack - (const RpcReqWifiGetMaxTxPower *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_max_tx_power__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_get_max_tx_power__pack_to_buffer - (const RpcReqWifiGetMaxTxPower *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_max_tx_power__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiGetMaxTxPower * - rpc__req__wifi_get_max_tx_power__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiGetMaxTxPower *) - protobuf_c_message_unpack (&rpc__req__wifi_get_max_tx_power__descriptor, - allocator, len, data); -} -void rpc__req__wifi_get_max_tx_power__free_unpacked - (RpcReqWifiGetMaxTxPower *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_get_max_tx_power__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_get_max_tx_power__init - (RpcRespWifiGetMaxTxPower *message) -{ - static const RpcRespWifiGetMaxTxPower init_value = RPC__RESP__WIFI_GET_MAX_TX_POWER__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_get_max_tx_power__get_packed_size - (const RpcRespWifiGetMaxTxPower *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_max_tx_power__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_get_max_tx_power__pack - (const RpcRespWifiGetMaxTxPower *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_max_tx_power__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_get_max_tx_power__pack_to_buffer - (const RpcRespWifiGetMaxTxPower *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_max_tx_power__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiGetMaxTxPower * - rpc__resp__wifi_get_max_tx_power__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiGetMaxTxPower *) - protobuf_c_message_unpack (&rpc__resp__wifi_get_max_tx_power__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_get_max_tx_power__free_unpacked - (RpcRespWifiGetMaxTxPower *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_get_max_tx_power__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__config_heartbeat__init - (RpcReqConfigHeartbeat *message) -{ - static const RpcReqConfigHeartbeat init_value = RPC__REQ__CONFIG_HEARTBEAT__INIT; - *message = init_value; -} -size_t rpc__req__config_heartbeat__get_packed_size - (const RpcReqConfigHeartbeat *message) -{ - assert(message->base.descriptor == &rpc__req__config_heartbeat__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__config_heartbeat__pack - (const RpcReqConfigHeartbeat *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__config_heartbeat__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__config_heartbeat__pack_to_buffer - (const RpcReqConfigHeartbeat *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__config_heartbeat__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqConfigHeartbeat * - rpc__req__config_heartbeat__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqConfigHeartbeat *) - protobuf_c_message_unpack (&rpc__req__config_heartbeat__descriptor, - allocator, len, data); -} -void rpc__req__config_heartbeat__free_unpacked - (RpcReqConfigHeartbeat *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__config_heartbeat__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__config_heartbeat__init - (RpcRespConfigHeartbeat *message) -{ - static const RpcRespConfigHeartbeat init_value = RPC__RESP__CONFIG_HEARTBEAT__INIT; - *message = init_value; -} -size_t rpc__resp__config_heartbeat__get_packed_size - (const RpcRespConfigHeartbeat *message) -{ - assert(message->base.descriptor == &rpc__resp__config_heartbeat__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__config_heartbeat__pack - (const RpcRespConfigHeartbeat *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__config_heartbeat__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__config_heartbeat__pack_to_buffer - (const RpcRespConfigHeartbeat *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__config_heartbeat__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespConfigHeartbeat * - rpc__resp__config_heartbeat__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespConfigHeartbeat *) - protobuf_c_message_unpack (&rpc__resp__config_heartbeat__descriptor, - allocator, len, data); -} -void rpc__resp__config_heartbeat__free_unpacked - (RpcRespConfigHeartbeat *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__config_heartbeat__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_init__init - (RpcReqWifiInit *message) -{ - static const RpcReqWifiInit init_value = RPC__REQ__WIFI_INIT__INIT; - *message = init_value; -} -size_t rpc__req__wifi_init__get_packed_size - (const RpcReqWifiInit *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_init__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_init__pack - (const RpcReqWifiInit *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_init__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_init__pack_to_buffer - (const RpcReqWifiInit *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_init__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiInit * - rpc__req__wifi_init__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiInit *) - protobuf_c_message_unpack (&rpc__req__wifi_init__descriptor, - allocator, len, data); -} -void rpc__req__wifi_init__free_unpacked - (RpcReqWifiInit *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_init__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_init__init - (RpcRespWifiInit *message) -{ - static const RpcRespWifiInit init_value = RPC__RESP__WIFI_INIT__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_init__get_packed_size - (const RpcRespWifiInit *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_init__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_init__pack - (const RpcRespWifiInit *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_init__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_init__pack_to_buffer - (const RpcRespWifiInit *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_init__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiInit * - rpc__resp__wifi_init__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiInit *) - protobuf_c_message_unpack (&rpc__resp__wifi_init__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_init__free_unpacked - (RpcRespWifiInit *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_init__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_deinit__init - (RpcReqWifiDeinit *message) -{ - static const RpcReqWifiDeinit init_value = RPC__REQ__WIFI_DEINIT__INIT; - *message = init_value; -} -size_t rpc__req__wifi_deinit__get_packed_size - (const RpcReqWifiDeinit *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_deinit__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_deinit__pack - (const RpcReqWifiDeinit *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_deinit__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_deinit__pack_to_buffer - (const RpcReqWifiDeinit *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_deinit__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiDeinit * - rpc__req__wifi_deinit__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiDeinit *) - protobuf_c_message_unpack (&rpc__req__wifi_deinit__descriptor, - allocator, len, data); -} -void rpc__req__wifi_deinit__free_unpacked - (RpcReqWifiDeinit *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_deinit__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_deinit__init - (RpcRespWifiDeinit *message) -{ - static const RpcRespWifiDeinit init_value = RPC__RESP__WIFI_DEINIT__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_deinit__get_packed_size - (const RpcRespWifiDeinit *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_deinit__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_deinit__pack - (const RpcRespWifiDeinit *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_deinit__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_deinit__pack_to_buffer - (const RpcRespWifiDeinit *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_deinit__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiDeinit * - rpc__resp__wifi_deinit__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiDeinit *) - protobuf_c_message_unpack (&rpc__resp__wifi_deinit__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_deinit__free_unpacked - (RpcRespWifiDeinit *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_deinit__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_set_config__init - (RpcReqWifiSetConfig *message) -{ - static const RpcReqWifiSetConfig init_value = RPC__REQ__WIFI_SET_CONFIG__INIT; - *message = init_value; -} -size_t rpc__req__wifi_set_config__get_packed_size - (const RpcReqWifiSetConfig *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_config__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_set_config__pack - (const RpcReqWifiSetConfig *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_config__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_set_config__pack_to_buffer - (const RpcReqWifiSetConfig *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_config__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiSetConfig * - rpc__req__wifi_set_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiSetConfig *) - protobuf_c_message_unpack (&rpc__req__wifi_set_config__descriptor, - allocator, len, data); -} -void rpc__req__wifi_set_config__free_unpacked - (RpcReqWifiSetConfig *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_set_config__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_set_config__init - (RpcRespWifiSetConfig *message) -{ - static const RpcRespWifiSetConfig init_value = RPC__RESP__WIFI_SET_CONFIG__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_set_config__get_packed_size - (const RpcRespWifiSetConfig *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_config__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_set_config__pack - (const RpcRespWifiSetConfig *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_config__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_set_config__pack_to_buffer - (const RpcRespWifiSetConfig *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_config__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiSetConfig * - rpc__resp__wifi_set_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiSetConfig *) - protobuf_c_message_unpack (&rpc__resp__wifi_set_config__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_set_config__free_unpacked - (RpcRespWifiSetConfig *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_set_config__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_get_config__init - (RpcReqWifiGetConfig *message) -{ - static const RpcReqWifiGetConfig init_value = RPC__REQ__WIFI_GET_CONFIG__INIT; - *message = init_value; -} -size_t rpc__req__wifi_get_config__get_packed_size - (const RpcReqWifiGetConfig *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_config__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_get_config__pack - (const RpcReqWifiGetConfig *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_config__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_get_config__pack_to_buffer - (const RpcReqWifiGetConfig *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_config__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiGetConfig * - rpc__req__wifi_get_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiGetConfig *) - protobuf_c_message_unpack (&rpc__req__wifi_get_config__descriptor, - allocator, len, data); -} -void rpc__req__wifi_get_config__free_unpacked - (RpcReqWifiGetConfig *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_get_config__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_get_config__init - (RpcRespWifiGetConfig *message) -{ - static const RpcRespWifiGetConfig init_value = RPC__RESP__WIFI_GET_CONFIG__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_get_config__get_packed_size - (const RpcRespWifiGetConfig *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_config__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_get_config__pack - (const RpcRespWifiGetConfig *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_config__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_get_config__pack_to_buffer - (const RpcRespWifiGetConfig *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_config__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiGetConfig * - rpc__resp__wifi_get_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiGetConfig *) - protobuf_c_message_unpack (&rpc__resp__wifi_get_config__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_get_config__free_unpacked - (RpcRespWifiGetConfig *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_get_config__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_connect__init - (RpcReqWifiConnect *message) -{ - static const RpcReqWifiConnect init_value = RPC__REQ__WIFI_CONNECT__INIT; - *message = init_value; -} -size_t rpc__req__wifi_connect__get_packed_size - (const RpcReqWifiConnect *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_connect__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_connect__pack - (const RpcReqWifiConnect *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_connect__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_connect__pack_to_buffer - (const RpcReqWifiConnect *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_connect__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiConnect * - rpc__req__wifi_connect__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiConnect *) - protobuf_c_message_unpack (&rpc__req__wifi_connect__descriptor, - allocator, len, data); -} -void rpc__req__wifi_connect__free_unpacked - (RpcReqWifiConnect *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_connect__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_connect__init - (RpcRespWifiConnect *message) -{ - static const RpcRespWifiConnect init_value = RPC__RESP__WIFI_CONNECT__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_connect__get_packed_size - (const RpcRespWifiConnect *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_connect__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_connect__pack - (const RpcRespWifiConnect *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_connect__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_connect__pack_to_buffer - (const RpcRespWifiConnect *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_connect__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiConnect * - rpc__resp__wifi_connect__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiConnect *) - protobuf_c_message_unpack (&rpc__resp__wifi_connect__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_connect__free_unpacked - (RpcRespWifiConnect *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_connect__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_disconnect__init - (RpcReqWifiDisconnect *message) -{ - static const RpcReqWifiDisconnect init_value = RPC__REQ__WIFI_DISCONNECT__INIT; - *message = init_value; -} -size_t rpc__req__wifi_disconnect__get_packed_size - (const RpcReqWifiDisconnect *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_disconnect__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_disconnect__pack - (const RpcReqWifiDisconnect *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_disconnect__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_disconnect__pack_to_buffer - (const RpcReqWifiDisconnect *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_disconnect__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiDisconnect * - rpc__req__wifi_disconnect__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiDisconnect *) - protobuf_c_message_unpack (&rpc__req__wifi_disconnect__descriptor, - allocator, len, data); -} -void rpc__req__wifi_disconnect__free_unpacked - (RpcReqWifiDisconnect *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_disconnect__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_disconnect__init - (RpcRespWifiDisconnect *message) -{ - static const RpcRespWifiDisconnect init_value = RPC__RESP__WIFI_DISCONNECT__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_disconnect__get_packed_size - (const RpcRespWifiDisconnect *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_disconnect__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_disconnect__pack - (const RpcRespWifiDisconnect *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_disconnect__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_disconnect__pack_to_buffer - (const RpcRespWifiDisconnect *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_disconnect__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiDisconnect * - rpc__resp__wifi_disconnect__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiDisconnect *) - protobuf_c_message_unpack (&rpc__resp__wifi_disconnect__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_disconnect__free_unpacked - (RpcRespWifiDisconnect *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_disconnect__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_start__init - (RpcReqWifiStart *message) -{ - static const RpcReqWifiStart init_value = RPC__REQ__WIFI_START__INIT; - *message = init_value; -} -size_t rpc__req__wifi_start__get_packed_size - (const RpcReqWifiStart *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_start__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_start__pack - (const RpcReqWifiStart *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_start__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_start__pack_to_buffer - (const RpcReqWifiStart *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_start__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiStart * - rpc__req__wifi_start__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiStart *) - protobuf_c_message_unpack (&rpc__req__wifi_start__descriptor, - allocator, len, data); -} -void rpc__req__wifi_start__free_unpacked - (RpcReqWifiStart *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_start__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_start__init - (RpcRespWifiStart *message) -{ - static const RpcRespWifiStart init_value = RPC__RESP__WIFI_START__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_start__get_packed_size - (const RpcRespWifiStart *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_start__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_start__pack - (const RpcRespWifiStart *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_start__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_start__pack_to_buffer - (const RpcRespWifiStart *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_start__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiStart * - rpc__resp__wifi_start__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiStart *) - protobuf_c_message_unpack (&rpc__resp__wifi_start__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_start__free_unpacked - (RpcRespWifiStart *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_start__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_stop__init - (RpcReqWifiStop *message) -{ - static const RpcReqWifiStop init_value = RPC__REQ__WIFI_STOP__INIT; - *message = init_value; -} -size_t rpc__req__wifi_stop__get_packed_size - (const RpcReqWifiStop *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_stop__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_stop__pack - (const RpcReqWifiStop *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_stop__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_stop__pack_to_buffer - (const RpcReqWifiStop *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_stop__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiStop * - rpc__req__wifi_stop__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiStop *) - protobuf_c_message_unpack (&rpc__req__wifi_stop__descriptor, - allocator, len, data); -} -void rpc__req__wifi_stop__free_unpacked - (RpcReqWifiStop *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_stop__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_stop__init - (RpcRespWifiStop *message) -{ - static const RpcRespWifiStop init_value = RPC__RESP__WIFI_STOP__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_stop__get_packed_size - (const RpcRespWifiStop *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_stop__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_stop__pack - (const RpcRespWifiStop *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_stop__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_stop__pack_to_buffer - (const RpcRespWifiStop *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_stop__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiStop * - rpc__resp__wifi_stop__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiStop *) - protobuf_c_message_unpack (&rpc__resp__wifi_stop__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_stop__free_unpacked - (RpcRespWifiStop *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_stop__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_scan_start__init - (RpcReqWifiScanStart *message) -{ - static const RpcReqWifiScanStart init_value = RPC__REQ__WIFI_SCAN_START__INIT; - *message = init_value; -} -size_t rpc__req__wifi_scan_start__get_packed_size - (const RpcReqWifiScanStart *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_scan_start__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_scan_start__pack - (const RpcReqWifiScanStart *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_scan_start__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_scan_start__pack_to_buffer - (const RpcReqWifiScanStart *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_scan_start__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiScanStart * - rpc__req__wifi_scan_start__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiScanStart *) - protobuf_c_message_unpack (&rpc__req__wifi_scan_start__descriptor, - allocator, len, data); -} -void rpc__req__wifi_scan_start__free_unpacked - (RpcReqWifiScanStart *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_scan_start__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_scan_start__init - (RpcRespWifiScanStart *message) -{ - static const RpcRespWifiScanStart init_value = RPC__RESP__WIFI_SCAN_START__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_scan_start__get_packed_size - (const RpcRespWifiScanStart *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_scan_start__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_scan_start__pack - (const RpcRespWifiScanStart *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_scan_start__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_scan_start__pack_to_buffer - (const RpcRespWifiScanStart *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_scan_start__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiScanStart * - rpc__resp__wifi_scan_start__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiScanStart *) - protobuf_c_message_unpack (&rpc__resp__wifi_scan_start__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_scan_start__free_unpacked - (RpcRespWifiScanStart *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_scan_start__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_scan_stop__init - (RpcReqWifiScanStop *message) -{ - static const RpcReqWifiScanStop init_value = RPC__REQ__WIFI_SCAN_STOP__INIT; - *message = init_value; -} -size_t rpc__req__wifi_scan_stop__get_packed_size - (const RpcReqWifiScanStop *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_scan_stop__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_scan_stop__pack - (const RpcReqWifiScanStop *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_scan_stop__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_scan_stop__pack_to_buffer - (const RpcReqWifiScanStop *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_scan_stop__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiScanStop * - rpc__req__wifi_scan_stop__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiScanStop *) - protobuf_c_message_unpack (&rpc__req__wifi_scan_stop__descriptor, - allocator, len, data); -} -void rpc__req__wifi_scan_stop__free_unpacked - (RpcReqWifiScanStop *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_scan_stop__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_scan_stop__init - (RpcRespWifiScanStop *message) -{ - static const RpcRespWifiScanStop init_value = RPC__RESP__WIFI_SCAN_STOP__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_scan_stop__get_packed_size - (const RpcRespWifiScanStop *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_scan_stop__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_scan_stop__pack - (const RpcRespWifiScanStop *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_scan_stop__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_scan_stop__pack_to_buffer - (const RpcRespWifiScanStop *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_scan_stop__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiScanStop * - rpc__resp__wifi_scan_stop__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiScanStop *) - protobuf_c_message_unpack (&rpc__resp__wifi_scan_stop__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_scan_stop__free_unpacked - (RpcRespWifiScanStop *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_scan_stop__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_scan_get_ap_num__init - (RpcReqWifiScanGetApNum *message) -{ - static const RpcReqWifiScanGetApNum init_value = RPC__REQ__WIFI_SCAN_GET_AP_NUM__INIT; - *message = init_value; -} -size_t rpc__req__wifi_scan_get_ap_num__get_packed_size - (const RpcReqWifiScanGetApNum *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_num__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_scan_get_ap_num__pack - (const RpcReqWifiScanGetApNum *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_num__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_scan_get_ap_num__pack_to_buffer - (const RpcReqWifiScanGetApNum *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_num__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiScanGetApNum * - rpc__req__wifi_scan_get_ap_num__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiScanGetApNum *) - protobuf_c_message_unpack (&rpc__req__wifi_scan_get_ap_num__descriptor, - allocator, len, data); -} -void rpc__req__wifi_scan_get_ap_num__free_unpacked - (RpcReqWifiScanGetApNum *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_num__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_scan_get_ap_num__init - (RpcRespWifiScanGetApNum *message) -{ - static const RpcRespWifiScanGetApNum init_value = RPC__RESP__WIFI_SCAN_GET_AP_NUM__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_scan_get_ap_num__get_packed_size - (const RpcRespWifiScanGetApNum *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_num__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_scan_get_ap_num__pack - (const RpcRespWifiScanGetApNum *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_num__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_scan_get_ap_num__pack_to_buffer - (const RpcRespWifiScanGetApNum *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_num__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiScanGetApNum * - rpc__resp__wifi_scan_get_ap_num__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiScanGetApNum *) - protobuf_c_message_unpack (&rpc__resp__wifi_scan_get_ap_num__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_scan_get_ap_num__free_unpacked - (RpcRespWifiScanGetApNum *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_num__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_scan_get_ap_records__init - (RpcReqWifiScanGetApRecords *message) -{ - static const RpcReqWifiScanGetApRecords init_value = RPC__REQ__WIFI_SCAN_GET_AP_RECORDS__INIT; - *message = init_value; -} -size_t rpc__req__wifi_scan_get_ap_records__get_packed_size - (const RpcReqWifiScanGetApRecords *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_records__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_scan_get_ap_records__pack - (const RpcReqWifiScanGetApRecords *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_records__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_scan_get_ap_records__pack_to_buffer - (const RpcReqWifiScanGetApRecords *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_records__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiScanGetApRecords * - rpc__req__wifi_scan_get_ap_records__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiScanGetApRecords *) - protobuf_c_message_unpack (&rpc__req__wifi_scan_get_ap_records__descriptor, - allocator, len, data); -} -void rpc__req__wifi_scan_get_ap_records__free_unpacked - (RpcReqWifiScanGetApRecords *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_records__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_scan_get_ap_records__init - (RpcRespWifiScanGetApRecords *message) -{ - static const RpcRespWifiScanGetApRecords init_value = RPC__RESP__WIFI_SCAN_GET_AP_RECORDS__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_scan_get_ap_records__get_packed_size - (const RpcRespWifiScanGetApRecords *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_records__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_scan_get_ap_records__pack - (const RpcRespWifiScanGetApRecords *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_records__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_scan_get_ap_records__pack_to_buffer - (const RpcRespWifiScanGetApRecords *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_records__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiScanGetApRecords * - rpc__resp__wifi_scan_get_ap_records__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiScanGetApRecords *) - protobuf_c_message_unpack (&rpc__resp__wifi_scan_get_ap_records__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_scan_get_ap_records__free_unpacked - (RpcRespWifiScanGetApRecords *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_records__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_scan_get_ap_record__init - (RpcReqWifiScanGetApRecord *message) -{ - static const RpcReqWifiScanGetApRecord init_value = RPC__REQ__WIFI_SCAN_GET_AP_RECORD__INIT; - *message = init_value; -} -size_t rpc__req__wifi_scan_get_ap_record__get_packed_size - (const RpcReqWifiScanGetApRecord *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_record__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_scan_get_ap_record__pack - (const RpcReqWifiScanGetApRecord *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_record__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_scan_get_ap_record__pack_to_buffer - (const RpcReqWifiScanGetApRecord *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_record__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiScanGetApRecord * - rpc__req__wifi_scan_get_ap_record__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiScanGetApRecord *) - protobuf_c_message_unpack (&rpc__req__wifi_scan_get_ap_record__descriptor, - allocator, len, data); -} -void rpc__req__wifi_scan_get_ap_record__free_unpacked - (RpcReqWifiScanGetApRecord *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_scan_get_ap_record__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_scan_get_ap_record__init - (RpcRespWifiScanGetApRecord *message) -{ - static const RpcRespWifiScanGetApRecord init_value = RPC__RESP__WIFI_SCAN_GET_AP_RECORD__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_scan_get_ap_record__get_packed_size - (const RpcRespWifiScanGetApRecord *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_record__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_scan_get_ap_record__pack - (const RpcRespWifiScanGetApRecord *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_record__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_scan_get_ap_record__pack_to_buffer - (const RpcRespWifiScanGetApRecord *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_record__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiScanGetApRecord * - rpc__resp__wifi_scan_get_ap_record__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiScanGetApRecord *) - protobuf_c_message_unpack (&rpc__resp__wifi_scan_get_ap_record__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_scan_get_ap_record__free_unpacked - (RpcRespWifiScanGetApRecord *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_scan_get_ap_record__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_clear_ap_list__init - (RpcReqWifiClearApList *message) -{ - static const RpcReqWifiClearApList init_value = RPC__REQ__WIFI_CLEAR_AP_LIST__INIT; - *message = init_value; -} -size_t rpc__req__wifi_clear_ap_list__get_packed_size - (const RpcReqWifiClearApList *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_clear_ap_list__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_clear_ap_list__pack - (const RpcReqWifiClearApList *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_clear_ap_list__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_clear_ap_list__pack_to_buffer - (const RpcReqWifiClearApList *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_clear_ap_list__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiClearApList * - rpc__req__wifi_clear_ap_list__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiClearApList *) - protobuf_c_message_unpack (&rpc__req__wifi_clear_ap_list__descriptor, - allocator, len, data); -} -void rpc__req__wifi_clear_ap_list__free_unpacked - (RpcReqWifiClearApList *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_clear_ap_list__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_clear_ap_list__init - (RpcRespWifiClearApList *message) -{ - static const RpcRespWifiClearApList init_value = RPC__RESP__WIFI_CLEAR_AP_LIST__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_clear_ap_list__get_packed_size - (const RpcRespWifiClearApList *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_clear_ap_list__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_clear_ap_list__pack - (const RpcRespWifiClearApList *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_clear_ap_list__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_clear_ap_list__pack_to_buffer - (const RpcRespWifiClearApList *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_clear_ap_list__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiClearApList * - rpc__resp__wifi_clear_ap_list__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiClearApList *) - protobuf_c_message_unpack (&rpc__resp__wifi_clear_ap_list__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_clear_ap_list__free_unpacked - (RpcRespWifiClearApList *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_clear_ap_list__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_restore__init - (RpcReqWifiRestore *message) -{ - static const RpcReqWifiRestore init_value = RPC__REQ__WIFI_RESTORE__INIT; - *message = init_value; -} -size_t rpc__req__wifi_restore__get_packed_size - (const RpcReqWifiRestore *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_restore__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_restore__pack - (const RpcReqWifiRestore *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_restore__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_restore__pack_to_buffer - (const RpcReqWifiRestore *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_restore__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiRestore * - rpc__req__wifi_restore__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiRestore *) - protobuf_c_message_unpack (&rpc__req__wifi_restore__descriptor, - allocator, len, data); -} -void rpc__req__wifi_restore__free_unpacked - (RpcReqWifiRestore *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_restore__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_restore__init - (RpcRespWifiRestore *message) -{ - static const RpcRespWifiRestore init_value = RPC__RESP__WIFI_RESTORE__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_restore__get_packed_size - (const RpcRespWifiRestore *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_restore__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_restore__pack - (const RpcRespWifiRestore *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_restore__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_restore__pack_to_buffer - (const RpcRespWifiRestore *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_restore__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiRestore * - rpc__resp__wifi_restore__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiRestore *) - protobuf_c_message_unpack (&rpc__resp__wifi_restore__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_restore__free_unpacked - (RpcRespWifiRestore *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_restore__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_clear_fast_connect__init - (RpcReqWifiClearFastConnect *message) -{ - static const RpcReqWifiClearFastConnect init_value = RPC__REQ__WIFI_CLEAR_FAST_CONNECT__INIT; - *message = init_value; -} -size_t rpc__req__wifi_clear_fast_connect__get_packed_size - (const RpcReqWifiClearFastConnect *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_clear_fast_connect__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_clear_fast_connect__pack - (const RpcReqWifiClearFastConnect *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_clear_fast_connect__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_clear_fast_connect__pack_to_buffer - (const RpcReqWifiClearFastConnect *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_clear_fast_connect__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiClearFastConnect * - rpc__req__wifi_clear_fast_connect__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiClearFastConnect *) - protobuf_c_message_unpack (&rpc__req__wifi_clear_fast_connect__descriptor, - allocator, len, data); -} -void rpc__req__wifi_clear_fast_connect__free_unpacked - (RpcReqWifiClearFastConnect *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_clear_fast_connect__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_clear_fast_connect__init - (RpcRespWifiClearFastConnect *message) -{ - static const RpcRespWifiClearFastConnect init_value = RPC__RESP__WIFI_CLEAR_FAST_CONNECT__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_clear_fast_connect__get_packed_size - (const RpcRespWifiClearFastConnect *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_clear_fast_connect__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_clear_fast_connect__pack - (const RpcRespWifiClearFastConnect *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_clear_fast_connect__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_clear_fast_connect__pack_to_buffer - (const RpcRespWifiClearFastConnect *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_clear_fast_connect__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiClearFastConnect * - rpc__resp__wifi_clear_fast_connect__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiClearFastConnect *) - protobuf_c_message_unpack (&rpc__resp__wifi_clear_fast_connect__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_clear_fast_connect__free_unpacked - (RpcRespWifiClearFastConnect *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_clear_fast_connect__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_deauth_sta__init - (RpcReqWifiDeauthSta *message) -{ - static const RpcReqWifiDeauthSta init_value = RPC__REQ__WIFI_DEAUTH_STA__INIT; - *message = init_value; -} -size_t rpc__req__wifi_deauth_sta__get_packed_size - (const RpcReqWifiDeauthSta *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_deauth_sta__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_deauth_sta__pack - (const RpcReqWifiDeauthSta *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_deauth_sta__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_deauth_sta__pack_to_buffer - (const RpcReqWifiDeauthSta *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_deauth_sta__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiDeauthSta * - rpc__req__wifi_deauth_sta__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiDeauthSta *) - protobuf_c_message_unpack (&rpc__req__wifi_deauth_sta__descriptor, - allocator, len, data); -} -void rpc__req__wifi_deauth_sta__free_unpacked - (RpcReqWifiDeauthSta *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_deauth_sta__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_deauth_sta__init - (RpcRespWifiDeauthSta *message) -{ - static const RpcRespWifiDeauthSta init_value = RPC__RESP__WIFI_DEAUTH_STA__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_deauth_sta__get_packed_size - (const RpcRespWifiDeauthSta *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_deauth_sta__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_deauth_sta__pack - (const RpcRespWifiDeauthSta *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_deauth_sta__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_deauth_sta__pack_to_buffer - (const RpcRespWifiDeauthSta *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_deauth_sta__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiDeauthSta * - rpc__resp__wifi_deauth_sta__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiDeauthSta *) - protobuf_c_message_unpack (&rpc__resp__wifi_deauth_sta__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_deauth_sta__free_unpacked - (RpcRespWifiDeauthSta *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_deauth_sta__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_sta_get_ap_info__init - (RpcReqWifiStaGetApInfo *message) -{ - static const RpcReqWifiStaGetApInfo init_value = RPC__REQ__WIFI_STA_GET_AP_INFO__INIT; - *message = init_value; -} -size_t rpc__req__wifi_sta_get_ap_info__get_packed_size - (const RpcReqWifiStaGetApInfo *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_sta_get_ap_info__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_sta_get_ap_info__pack - (const RpcReqWifiStaGetApInfo *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_sta_get_ap_info__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_sta_get_ap_info__pack_to_buffer - (const RpcReqWifiStaGetApInfo *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_sta_get_ap_info__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiStaGetApInfo * - rpc__req__wifi_sta_get_ap_info__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiStaGetApInfo *) - protobuf_c_message_unpack (&rpc__req__wifi_sta_get_ap_info__descriptor, - allocator, len, data); -} -void rpc__req__wifi_sta_get_ap_info__free_unpacked - (RpcReqWifiStaGetApInfo *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_sta_get_ap_info__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_sta_get_ap_info__init - (RpcRespWifiStaGetApInfo *message) -{ - static const RpcRespWifiStaGetApInfo init_value = RPC__RESP__WIFI_STA_GET_AP_INFO__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_sta_get_ap_info__get_packed_size - (const RpcRespWifiStaGetApInfo *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_ap_info__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_sta_get_ap_info__pack - (const RpcRespWifiStaGetApInfo *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_ap_info__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_sta_get_ap_info__pack_to_buffer - (const RpcRespWifiStaGetApInfo *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_ap_info__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiStaGetApInfo * - rpc__resp__wifi_sta_get_ap_info__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiStaGetApInfo *) - protobuf_c_message_unpack (&rpc__resp__wifi_sta_get_ap_info__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_sta_get_ap_info__free_unpacked - (RpcRespWifiStaGetApInfo *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_ap_info__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_set_protocol__init - (RpcReqWifiSetProtocol *message) -{ - static const RpcReqWifiSetProtocol init_value = RPC__REQ__WIFI_SET_PROTOCOL__INIT; - *message = init_value; -} -size_t rpc__req__wifi_set_protocol__get_packed_size - (const RpcReqWifiSetProtocol *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_protocol__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_set_protocol__pack - (const RpcReqWifiSetProtocol *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_protocol__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_set_protocol__pack_to_buffer - (const RpcReqWifiSetProtocol *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_protocol__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiSetProtocol * - rpc__req__wifi_set_protocol__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiSetProtocol *) - protobuf_c_message_unpack (&rpc__req__wifi_set_protocol__descriptor, - allocator, len, data); -} -void rpc__req__wifi_set_protocol__free_unpacked - (RpcReqWifiSetProtocol *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_set_protocol__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_set_protocol__init - (RpcRespWifiSetProtocol *message) -{ - static const RpcRespWifiSetProtocol init_value = RPC__RESP__WIFI_SET_PROTOCOL__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_set_protocol__get_packed_size - (const RpcRespWifiSetProtocol *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_protocol__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_set_protocol__pack - (const RpcRespWifiSetProtocol *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_protocol__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_set_protocol__pack_to_buffer - (const RpcRespWifiSetProtocol *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_protocol__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiSetProtocol * - rpc__resp__wifi_set_protocol__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiSetProtocol *) - protobuf_c_message_unpack (&rpc__resp__wifi_set_protocol__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_set_protocol__free_unpacked - (RpcRespWifiSetProtocol *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_set_protocol__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_get_protocol__init - (RpcReqWifiGetProtocol *message) -{ - static const RpcReqWifiGetProtocol init_value = RPC__REQ__WIFI_GET_PROTOCOL__INIT; - *message = init_value; -} -size_t rpc__req__wifi_get_protocol__get_packed_size - (const RpcReqWifiGetProtocol *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_protocol__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_get_protocol__pack - (const RpcReqWifiGetProtocol *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_protocol__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_get_protocol__pack_to_buffer - (const RpcReqWifiGetProtocol *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_protocol__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiGetProtocol * - rpc__req__wifi_get_protocol__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiGetProtocol *) - protobuf_c_message_unpack (&rpc__req__wifi_get_protocol__descriptor, - allocator, len, data); -} -void rpc__req__wifi_get_protocol__free_unpacked - (RpcReqWifiGetProtocol *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_get_protocol__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_get_protocol__init - (RpcRespWifiGetProtocol *message) -{ - static const RpcRespWifiGetProtocol init_value = RPC__RESP__WIFI_GET_PROTOCOL__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_get_protocol__get_packed_size - (const RpcRespWifiGetProtocol *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_protocol__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_get_protocol__pack - (const RpcRespWifiGetProtocol *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_protocol__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_get_protocol__pack_to_buffer - (const RpcRespWifiGetProtocol *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_protocol__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiGetProtocol * - rpc__resp__wifi_get_protocol__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiGetProtocol *) - protobuf_c_message_unpack (&rpc__resp__wifi_get_protocol__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_get_protocol__free_unpacked - (RpcRespWifiGetProtocol *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_get_protocol__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_set_bandwidth__init - (RpcReqWifiSetBandwidth *message) -{ - static const RpcReqWifiSetBandwidth init_value = RPC__REQ__WIFI_SET_BANDWIDTH__INIT; - *message = init_value; -} -size_t rpc__req__wifi_set_bandwidth__get_packed_size - (const RpcReqWifiSetBandwidth *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_bandwidth__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_set_bandwidth__pack - (const RpcReqWifiSetBandwidth *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_bandwidth__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_set_bandwidth__pack_to_buffer - (const RpcReqWifiSetBandwidth *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_bandwidth__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiSetBandwidth * - rpc__req__wifi_set_bandwidth__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiSetBandwidth *) - protobuf_c_message_unpack (&rpc__req__wifi_set_bandwidth__descriptor, - allocator, len, data); -} -void rpc__req__wifi_set_bandwidth__free_unpacked - (RpcReqWifiSetBandwidth *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_set_bandwidth__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_set_bandwidth__init - (RpcRespWifiSetBandwidth *message) -{ - static const RpcRespWifiSetBandwidth init_value = RPC__RESP__WIFI_SET_BANDWIDTH__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_set_bandwidth__get_packed_size - (const RpcRespWifiSetBandwidth *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidth__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_set_bandwidth__pack - (const RpcRespWifiSetBandwidth *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidth__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_set_bandwidth__pack_to_buffer - (const RpcRespWifiSetBandwidth *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidth__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiSetBandwidth * - rpc__resp__wifi_set_bandwidth__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiSetBandwidth *) - protobuf_c_message_unpack (&rpc__resp__wifi_set_bandwidth__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_set_bandwidth__free_unpacked - (RpcRespWifiSetBandwidth *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidth__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_get_bandwidth__init - (RpcReqWifiGetBandwidth *message) -{ - static const RpcReqWifiGetBandwidth init_value = RPC__REQ__WIFI_GET_BANDWIDTH__INIT; - *message = init_value; -} -size_t rpc__req__wifi_get_bandwidth__get_packed_size - (const RpcReqWifiGetBandwidth *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_bandwidth__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_get_bandwidth__pack - (const RpcReqWifiGetBandwidth *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_bandwidth__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_get_bandwidth__pack_to_buffer - (const RpcReqWifiGetBandwidth *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_bandwidth__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiGetBandwidth * - rpc__req__wifi_get_bandwidth__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiGetBandwidth *) - protobuf_c_message_unpack (&rpc__req__wifi_get_bandwidth__descriptor, - allocator, len, data); -} -void rpc__req__wifi_get_bandwidth__free_unpacked - (RpcReqWifiGetBandwidth *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_get_bandwidth__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_get_bandwidth__init - (RpcRespWifiGetBandwidth *message) -{ - static const RpcRespWifiGetBandwidth init_value = RPC__RESP__WIFI_GET_BANDWIDTH__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_get_bandwidth__get_packed_size - (const RpcRespWifiGetBandwidth *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidth__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_get_bandwidth__pack - (const RpcRespWifiGetBandwidth *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidth__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_get_bandwidth__pack_to_buffer - (const RpcRespWifiGetBandwidth *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidth__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiGetBandwidth * - rpc__resp__wifi_get_bandwidth__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiGetBandwidth *) - protobuf_c_message_unpack (&rpc__resp__wifi_get_bandwidth__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_get_bandwidth__free_unpacked - (RpcRespWifiGetBandwidth *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidth__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_set_channel__init - (RpcReqWifiSetChannel *message) -{ - static const RpcReqWifiSetChannel init_value = RPC__REQ__WIFI_SET_CHANNEL__INIT; - *message = init_value; -} -size_t rpc__req__wifi_set_channel__get_packed_size - (const RpcReqWifiSetChannel *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_channel__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_set_channel__pack - (const RpcReqWifiSetChannel *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_channel__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_set_channel__pack_to_buffer - (const RpcReqWifiSetChannel *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_channel__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiSetChannel * - rpc__req__wifi_set_channel__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiSetChannel *) - protobuf_c_message_unpack (&rpc__req__wifi_set_channel__descriptor, - allocator, len, data); -} -void rpc__req__wifi_set_channel__free_unpacked - (RpcReqWifiSetChannel *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_set_channel__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_set_channel__init - (RpcRespWifiSetChannel *message) -{ - static const RpcRespWifiSetChannel init_value = RPC__RESP__WIFI_SET_CHANNEL__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_set_channel__get_packed_size - (const RpcRespWifiSetChannel *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_channel__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_set_channel__pack - (const RpcRespWifiSetChannel *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_channel__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_set_channel__pack_to_buffer - (const RpcRespWifiSetChannel *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_channel__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiSetChannel * - rpc__resp__wifi_set_channel__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiSetChannel *) - protobuf_c_message_unpack (&rpc__resp__wifi_set_channel__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_set_channel__free_unpacked - (RpcRespWifiSetChannel *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_set_channel__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_get_channel__init - (RpcReqWifiGetChannel *message) -{ - static const RpcReqWifiGetChannel init_value = RPC__REQ__WIFI_GET_CHANNEL__INIT; - *message = init_value; -} -size_t rpc__req__wifi_get_channel__get_packed_size - (const RpcReqWifiGetChannel *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_channel__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_get_channel__pack - (const RpcReqWifiGetChannel *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_channel__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_get_channel__pack_to_buffer - (const RpcReqWifiGetChannel *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_channel__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiGetChannel * - rpc__req__wifi_get_channel__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiGetChannel *) - protobuf_c_message_unpack (&rpc__req__wifi_get_channel__descriptor, - allocator, len, data); -} -void rpc__req__wifi_get_channel__free_unpacked - (RpcReqWifiGetChannel *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_get_channel__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_get_channel__init - (RpcRespWifiGetChannel *message) -{ - static const RpcRespWifiGetChannel init_value = RPC__RESP__WIFI_GET_CHANNEL__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_get_channel__get_packed_size - (const RpcRespWifiGetChannel *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_channel__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_get_channel__pack - (const RpcRespWifiGetChannel *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_channel__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_get_channel__pack_to_buffer - (const RpcRespWifiGetChannel *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_channel__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiGetChannel * - rpc__resp__wifi_get_channel__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiGetChannel *) - protobuf_c_message_unpack (&rpc__resp__wifi_get_channel__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_get_channel__free_unpacked - (RpcRespWifiGetChannel *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_get_channel__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_set_storage__init - (RpcReqWifiSetStorage *message) -{ - static const RpcReqWifiSetStorage init_value = RPC__REQ__WIFI_SET_STORAGE__INIT; - *message = init_value; -} -size_t rpc__req__wifi_set_storage__get_packed_size - (const RpcReqWifiSetStorage *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_storage__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_set_storage__pack - (const RpcReqWifiSetStorage *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_storage__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_set_storage__pack_to_buffer - (const RpcReqWifiSetStorage *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_storage__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiSetStorage * - rpc__req__wifi_set_storage__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiSetStorage *) - protobuf_c_message_unpack (&rpc__req__wifi_set_storage__descriptor, - allocator, len, data); -} -void rpc__req__wifi_set_storage__free_unpacked - (RpcReqWifiSetStorage *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_set_storage__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_set_storage__init - (RpcRespWifiSetStorage *message) -{ - static const RpcRespWifiSetStorage init_value = RPC__RESP__WIFI_SET_STORAGE__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_set_storage__get_packed_size - (const RpcRespWifiSetStorage *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_storage__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_set_storage__pack - (const RpcRespWifiSetStorage *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_storage__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_set_storage__pack_to_buffer - (const RpcRespWifiSetStorage *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_storage__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiSetStorage * - rpc__resp__wifi_set_storage__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiSetStorage *) - protobuf_c_message_unpack (&rpc__resp__wifi_set_storage__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_set_storage__free_unpacked - (RpcRespWifiSetStorage *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_set_storage__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_set_country_code__init - (RpcReqWifiSetCountryCode *message) -{ - static const RpcReqWifiSetCountryCode init_value = RPC__REQ__WIFI_SET_COUNTRY_CODE__INIT; - *message = init_value; -} -size_t rpc__req__wifi_set_country_code__get_packed_size - (const RpcReqWifiSetCountryCode *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_country_code__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_set_country_code__pack - (const RpcReqWifiSetCountryCode *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_country_code__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_set_country_code__pack_to_buffer - (const RpcReqWifiSetCountryCode *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_country_code__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiSetCountryCode * - rpc__req__wifi_set_country_code__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiSetCountryCode *) - protobuf_c_message_unpack (&rpc__req__wifi_set_country_code__descriptor, - allocator, len, data); -} -void rpc__req__wifi_set_country_code__free_unpacked - (RpcReqWifiSetCountryCode *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_set_country_code__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_set_country_code__init - (RpcRespWifiSetCountryCode *message) -{ - static const RpcRespWifiSetCountryCode init_value = RPC__RESP__WIFI_SET_COUNTRY_CODE__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_set_country_code__get_packed_size - (const RpcRespWifiSetCountryCode *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_country_code__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_set_country_code__pack - (const RpcRespWifiSetCountryCode *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_country_code__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_set_country_code__pack_to_buffer - (const RpcRespWifiSetCountryCode *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_country_code__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiSetCountryCode * - rpc__resp__wifi_set_country_code__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiSetCountryCode *) - protobuf_c_message_unpack (&rpc__resp__wifi_set_country_code__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_set_country_code__free_unpacked - (RpcRespWifiSetCountryCode *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_set_country_code__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_get_country_code__init - (RpcReqWifiGetCountryCode *message) -{ - static const RpcReqWifiGetCountryCode init_value = RPC__REQ__WIFI_GET_COUNTRY_CODE__INIT; - *message = init_value; -} -size_t rpc__req__wifi_get_country_code__get_packed_size - (const RpcReqWifiGetCountryCode *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_country_code__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_get_country_code__pack - (const RpcReqWifiGetCountryCode *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_country_code__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_get_country_code__pack_to_buffer - (const RpcReqWifiGetCountryCode *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_country_code__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiGetCountryCode * - rpc__req__wifi_get_country_code__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiGetCountryCode *) - protobuf_c_message_unpack (&rpc__req__wifi_get_country_code__descriptor, - allocator, len, data); -} -void rpc__req__wifi_get_country_code__free_unpacked - (RpcReqWifiGetCountryCode *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_get_country_code__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_get_country_code__init - (RpcRespWifiGetCountryCode *message) -{ - static const RpcRespWifiGetCountryCode init_value = RPC__RESP__WIFI_GET_COUNTRY_CODE__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_get_country_code__get_packed_size - (const RpcRespWifiGetCountryCode *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_country_code__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_get_country_code__pack - (const RpcRespWifiGetCountryCode *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_country_code__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_get_country_code__pack_to_buffer - (const RpcRespWifiGetCountryCode *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_country_code__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiGetCountryCode * - rpc__resp__wifi_get_country_code__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiGetCountryCode *) - protobuf_c_message_unpack (&rpc__resp__wifi_get_country_code__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_get_country_code__free_unpacked - (RpcRespWifiGetCountryCode *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_get_country_code__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_set_country__init - (RpcReqWifiSetCountry *message) -{ - static const RpcReqWifiSetCountry init_value = RPC__REQ__WIFI_SET_COUNTRY__INIT; - *message = init_value; -} -size_t rpc__req__wifi_set_country__get_packed_size - (const RpcReqWifiSetCountry *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_country__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_set_country__pack - (const RpcReqWifiSetCountry *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_country__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_set_country__pack_to_buffer - (const RpcReqWifiSetCountry *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_country__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiSetCountry * - rpc__req__wifi_set_country__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiSetCountry *) - protobuf_c_message_unpack (&rpc__req__wifi_set_country__descriptor, - allocator, len, data); -} -void rpc__req__wifi_set_country__free_unpacked - (RpcReqWifiSetCountry *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_set_country__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_set_country__init - (RpcRespWifiSetCountry *message) -{ - static const RpcRespWifiSetCountry init_value = RPC__RESP__WIFI_SET_COUNTRY__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_set_country__get_packed_size - (const RpcRespWifiSetCountry *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_country__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_set_country__pack - (const RpcRespWifiSetCountry *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_country__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_set_country__pack_to_buffer - (const RpcRespWifiSetCountry *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_country__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiSetCountry * - rpc__resp__wifi_set_country__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiSetCountry *) - protobuf_c_message_unpack (&rpc__resp__wifi_set_country__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_set_country__free_unpacked - (RpcRespWifiSetCountry *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_set_country__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_get_country__init - (RpcReqWifiGetCountry *message) -{ - static const RpcReqWifiGetCountry init_value = RPC__REQ__WIFI_GET_COUNTRY__INIT; - *message = init_value; -} -size_t rpc__req__wifi_get_country__get_packed_size - (const RpcReqWifiGetCountry *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_country__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_get_country__pack - (const RpcReqWifiGetCountry *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_country__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_get_country__pack_to_buffer - (const RpcReqWifiGetCountry *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_country__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiGetCountry * - rpc__req__wifi_get_country__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiGetCountry *) - protobuf_c_message_unpack (&rpc__req__wifi_get_country__descriptor, - allocator, len, data); -} -void rpc__req__wifi_get_country__free_unpacked - (RpcReqWifiGetCountry *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_get_country__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_get_country__init - (RpcRespWifiGetCountry *message) -{ - static const RpcRespWifiGetCountry init_value = RPC__RESP__WIFI_GET_COUNTRY__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_get_country__get_packed_size - (const RpcRespWifiGetCountry *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_country__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_get_country__pack - (const RpcRespWifiGetCountry *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_country__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_get_country__pack_to_buffer - (const RpcRespWifiGetCountry *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_country__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiGetCountry * - rpc__resp__wifi_get_country__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiGetCountry *) - protobuf_c_message_unpack (&rpc__resp__wifi_get_country__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_get_country__free_unpacked - (RpcRespWifiGetCountry *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_get_country__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_ap_get_sta_list__init - (RpcReqWifiApGetStaList *message) -{ - static const RpcReqWifiApGetStaList init_value = RPC__REQ__WIFI_AP_GET_STA_LIST__INIT; - *message = init_value; -} -size_t rpc__req__wifi_ap_get_sta_list__get_packed_size - (const RpcReqWifiApGetStaList *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_list__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_ap_get_sta_list__pack - (const RpcReqWifiApGetStaList *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_list__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_ap_get_sta_list__pack_to_buffer - (const RpcReqWifiApGetStaList *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_list__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiApGetStaList * - rpc__req__wifi_ap_get_sta_list__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiApGetStaList *) - protobuf_c_message_unpack (&rpc__req__wifi_ap_get_sta_list__descriptor, - allocator, len, data); -} -void rpc__req__wifi_ap_get_sta_list__free_unpacked - (RpcReqWifiApGetStaList *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_list__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_ap_get_sta_list__init - (RpcRespWifiApGetStaList *message) -{ - static const RpcRespWifiApGetStaList init_value = RPC__RESP__WIFI_AP_GET_STA_LIST__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_ap_get_sta_list__get_packed_size - (const RpcRespWifiApGetStaList *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_list__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_ap_get_sta_list__pack - (const RpcRespWifiApGetStaList *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_list__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_ap_get_sta_list__pack_to_buffer - (const RpcRespWifiApGetStaList *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_list__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiApGetStaList * - rpc__resp__wifi_ap_get_sta_list__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiApGetStaList *) - protobuf_c_message_unpack (&rpc__resp__wifi_ap_get_sta_list__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_ap_get_sta_list__free_unpacked - (RpcRespWifiApGetStaList *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_list__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_ap_get_sta_aid__init - (RpcReqWifiApGetStaAid *message) -{ - static const RpcReqWifiApGetStaAid init_value = RPC__REQ__WIFI_AP_GET_STA_AID__INIT; - *message = init_value; -} -size_t rpc__req__wifi_ap_get_sta_aid__get_packed_size - (const RpcReqWifiApGetStaAid *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_aid__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_ap_get_sta_aid__pack - (const RpcReqWifiApGetStaAid *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_aid__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_ap_get_sta_aid__pack_to_buffer - (const RpcReqWifiApGetStaAid *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_aid__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiApGetStaAid * - rpc__req__wifi_ap_get_sta_aid__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiApGetStaAid *) - protobuf_c_message_unpack (&rpc__req__wifi_ap_get_sta_aid__descriptor, - allocator, len, data); -} -void rpc__req__wifi_ap_get_sta_aid__free_unpacked - (RpcReqWifiApGetStaAid *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_ap_get_sta_aid__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_sta_get_negotiated_phymode__init - (RpcReqWifiStaGetNegotiatedPhymode *message) -{ - static const RpcReqWifiStaGetNegotiatedPhymode init_value = RPC__REQ__WIFI_STA_GET_NEGOTIATED_PHYMODE__INIT; - *message = init_value; -} -size_t rpc__req__wifi_sta_get_negotiated_phymode__get_packed_size - (const RpcReqWifiStaGetNegotiatedPhymode *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_sta_get_negotiated_phymode__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_sta_get_negotiated_phymode__pack - (const RpcReqWifiStaGetNegotiatedPhymode *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_sta_get_negotiated_phymode__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_sta_get_negotiated_phymode__pack_to_buffer - (const RpcReqWifiStaGetNegotiatedPhymode *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_sta_get_negotiated_phymode__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiStaGetNegotiatedPhymode * - rpc__req__wifi_sta_get_negotiated_phymode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiStaGetNegotiatedPhymode *) - protobuf_c_message_unpack (&rpc__req__wifi_sta_get_negotiated_phymode__descriptor, - allocator, len, data); -} -void rpc__req__wifi_sta_get_negotiated_phymode__free_unpacked - (RpcReqWifiStaGetNegotiatedPhymode *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_sta_get_negotiated_phymode__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_sta_get_negotiated_phymode__init - (RpcRespWifiStaGetNegotiatedPhymode *message) -{ - static const RpcRespWifiStaGetNegotiatedPhymode init_value = RPC__RESP__WIFI_STA_GET_NEGOTIATED_PHYMODE__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_sta_get_negotiated_phymode__get_packed_size - (const RpcRespWifiStaGetNegotiatedPhymode *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_negotiated_phymode__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_sta_get_negotiated_phymode__pack - (const RpcRespWifiStaGetNegotiatedPhymode *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_negotiated_phymode__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_sta_get_negotiated_phymode__pack_to_buffer - (const RpcRespWifiStaGetNegotiatedPhymode *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_negotiated_phymode__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiStaGetNegotiatedPhymode * - rpc__resp__wifi_sta_get_negotiated_phymode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiStaGetNegotiatedPhymode *) - protobuf_c_message_unpack (&rpc__resp__wifi_sta_get_negotiated_phymode__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_sta_get_negotiated_phymode__free_unpacked - (RpcRespWifiStaGetNegotiatedPhymode *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_negotiated_phymode__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_ap_get_sta_aid__init - (RpcRespWifiApGetStaAid *message) -{ - static const RpcRespWifiApGetStaAid init_value = RPC__RESP__WIFI_AP_GET_STA_AID__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_ap_get_sta_aid__get_packed_size - (const RpcRespWifiApGetStaAid *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_aid__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_ap_get_sta_aid__pack - (const RpcRespWifiApGetStaAid *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_aid__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_ap_get_sta_aid__pack_to_buffer - (const RpcRespWifiApGetStaAid *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_aid__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiApGetStaAid * - rpc__resp__wifi_ap_get_sta_aid__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiApGetStaAid *) - protobuf_c_message_unpack (&rpc__resp__wifi_ap_get_sta_aid__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_ap_get_sta_aid__free_unpacked - (RpcRespWifiApGetStaAid *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_ap_get_sta_aid__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_sta_get_rssi__init - (RpcReqWifiStaGetRssi *message) -{ - static const RpcReqWifiStaGetRssi init_value = RPC__REQ__WIFI_STA_GET_RSSI__INIT; - *message = init_value; -} -size_t rpc__req__wifi_sta_get_rssi__get_packed_size - (const RpcReqWifiStaGetRssi *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_sta_get_rssi__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_sta_get_rssi__pack - (const RpcReqWifiStaGetRssi *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_sta_get_rssi__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_sta_get_rssi__pack_to_buffer - (const RpcReqWifiStaGetRssi *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_sta_get_rssi__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiStaGetRssi * - rpc__req__wifi_sta_get_rssi__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiStaGetRssi *) - protobuf_c_message_unpack (&rpc__req__wifi_sta_get_rssi__descriptor, - allocator, len, data); -} -void rpc__req__wifi_sta_get_rssi__free_unpacked - (RpcReqWifiStaGetRssi *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_sta_get_rssi__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_sta_get_rssi__init - (RpcRespWifiStaGetRssi *message) -{ - static const RpcRespWifiStaGetRssi init_value = RPC__RESP__WIFI_STA_GET_RSSI__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_sta_get_rssi__get_packed_size - (const RpcRespWifiStaGetRssi *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_rssi__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_sta_get_rssi__pack - (const RpcRespWifiStaGetRssi *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_rssi__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_sta_get_rssi__pack_to_buffer - (const RpcRespWifiStaGetRssi *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_rssi__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiStaGetRssi * - rpc__resp__wifi_sta_get_rssi__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiStaGetRssi *) - protobuf_c_message_unpack (&rpc__resp__wifi_sta_get_rssi__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_sta_get_rssi__free_unpacked - (RpcRespWifiStaGetRssi *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_rssi__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_sta_get_aid__init - (RpcReqWifiStaGetAid *message) -{ - static const RpcReqWifiStaGetAid init_value = RPC__REQ__WIFI_STA_GET_AID__INIT; - *message = init_value; -} -size_t rpc__req__wifi_sta_get_aid__get_packed_size - (const RpcReqWifiStaGetAid *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_sta_get_aid__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_sta_get_aid__pack - (const RpcReqWifiStaGetAid *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_sta_get_aid__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_sta_get_aid__pack_to_buffer - (const RpcReqWifiStaGetAid *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_sta_get_aid__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiStaGetAid * - rpc__req__wifi_sta_get_aid__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiStaGetAid *) - protobuf_c_message_unpack (&rpc__req__wifi_sta_get_aid__descriptor, - allocator, len, data); -} -void rpc__req__wifi_sta_get_aid__free_unpacked - (RpcReqWifiStaGetAid *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_sta_get_aid__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_sta_get_aid__init - (RpcRespWifiStaGetAid *message) -{ - static const RpcRespWifiStaGetAid init_value = RPC__RESP__WIFI_STA_GET_AID__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_sta_get_aid__get_packed_size - (const RpcRespWifiStaGetAid *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_aid__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_sta_get_aid__pack - (const RpcRespWifiStaGetAid *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_aid__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_sta_get_aid__pack_to_buffer - (const RpcRespWifiStaGetAid *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_aid__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiStaGetAid * - rpc__resp__wifi_sta_get_aid__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiStaGetAid *) - protobuf_c_message_unpack (&rpc__resp__wifi_sta_get_aid__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_sta_get_aid__free_unpacked - (RpcRespWifiStaGetAid *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_sta_get_aid__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_set_protocols__init - (RpcReqWifiSetProtocols *message) -{ - static const RpcReqWifiSetProtocols init_value = RPC__REQ__WIFI_SET_PROTOCOLS__INIT; - *message = init_value; -} -size_t rpc__req__wifi_set_protocols__get_packed_size - (const RpcReqWifiSetProtocols *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_protocols__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_set_protocols__pack - (const RpcReqWifiSetProtocols *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_protocols__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_set_protocols__pack_to_buffer - (const RpcReqWifiSetProtocols *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_protocols__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiSetProtocols * - rpc__req__wifi_set_protocols__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiSetProtocols *) - protobuf_c_message_unpack (&rpc__req__wifi_set_protocols__descriptor, - allocator, len, data); -} -void rpc__req__wifi_set_protocols__free_unpacked - (RpcReqWifiSetProtocols *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_set_protocols__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_set_protocols__init - (RpcRespWifiSetProtocols *message) -{ - static const RpcRespWifiSetProtocols init_value = RPC__RESP__WIFI_SET_PROTOCOLS__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_set_protocols__get_packed_size - (const RpcRespWifiSetProtocols *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_protocols__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_set_protocols__pack - (const RpcRespWifiSetProtocols *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_protocols__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_set_protocols__pack_to_buffer - (const RpcRespWifiSetProtocols *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_protocols__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiSetProtocols * - rpc__resp__wifi_set_protocols__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiSetProtocols *) - protobuf_c_message_unpack (&rpc__resp__wifi_set_protocols__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_set_protocols__free_unpacked - (RpcRespWifiSetProtocols *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_set_protocols__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_get_protocols__init - (RpcReqWifiGetProtocols *message) -{ - static const RpcReqWifiGetProtocols init_value = RPC__REQ__WIFI_GET_PROTOCOLS__INIT; - *message = init_value; -} -size_t rpc__req__wifi_get_protocols__get_packed_size - (const RpcReqWifiGetProtocols *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_protocols__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_get_protocols__pack - (const RpcReqWifiGetProtocols *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_protocols__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_get_protocols__pack_to_buffer - (const RpcReqWifiGetProtocols *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_protocols__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiGetProtocols * - rpc__req__wifi_get_protocols__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiGetProtocols *) - protobuf_c_message_unpack (&rpc__req__wifi_get_protocols__descriptor, - allocator, len, data); -} -void rpc__req__wifi_get_protocols__free_unpacked - (RpcReqWifiGetProtocols *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_get_protocols__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_get_protocols__init - (RpcRespWifiGetProtocols *message) -{ - static const RpcRespWifiGetProtocols init_value = RPC__RESP__WIFI_GET_PROTOCOLS__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_get_protocols__get_packed_size - (const RpcRespWifiGetProtocols *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_protocols__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_get_protocols__pack - (const RpcRespWifiGetProtocols *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_protocols__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_get_protocols__pack_to_buffer - (const RpcRespWifiGetProtocols *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_protocols__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiGetProtocols * - rpc__resp__wifi_get_protocols__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiGetProtocols *) - protobuf_c_message_unpack (&rpc__resp__wifi_get_protocols__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_get_protocols__free_unpacked - (RpcRespWifiGetProtocols *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_get_protocols__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_set_bandwidths__init - (RpcReqWifiSetBandwidths *message) -{ - static const RpcReqWifiSetBandwidths init_value = RPC__REQ__WIFI_SET_BANDWIDTHS__INIT; - *message = init_value; -} -size_t rpc__req__wifi_set_bandwidths__get_packed_size - (const RpcReqWifiSetBandwidths *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_bandwidths__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_set_bandwidths__pack - (const RpcReqWifiSetBandwidths *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_bandwidths__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_set_bandwidths__pack_to_buffer - (const RpcReqWifiSetBandwidths *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_bandwidths__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiSetBandwidths * - rpc__req__wifi_set_bandwidths__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiSetBandwidths *) - protobuf_c_message_unpack (&rpc__req__wifi_set_bandwidths__descriptor, - allocator, len, data); -} -void rpc__req__wifi_set_bandwidths__free_unpacked - (RpcReqWifiSetBandwidths *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_set_bandwidths__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_set_bandwidths__init - (RpcRespWifiSetBandwidths *message) -{ - static const RpcRespWifiSetBandwidths init_value = RPC__RESP__WIFI_SET_BANDWIDTHS__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_set_bandwidths__get_packed_size - (const RpcRespWifiSetBandwidths *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidths__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_set_bandwidths__pack - (const RpcRespWifiSetBandwidths *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidths__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_set_bandwidths__pack_to_buffer - (const RpcRespWifiSetBandwidths *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidths__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiSetBandwidths * - rpc__resp__wifi_set_bandwidths__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiSetBandwidths *) - protobuf_c_message_unpack (&rpc__resp__wifi_set_bandwidths__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_set_bandwidths__free_unpacked - (RpcRespWifiSetBandwidths *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_set_bandwidths__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_get_bandwidths__init - (RpcReqWifiGetBandwidths *message) -{ - static const RpcReqWifiGetBandwidths init_value = RPC__REQ__WIFI_GET_BANDWIDTHS__INIT; - *message = init_value; -} -size_t rpc__req__wifi_get_bandwidths__get_packed_size - (const RpcReqWifiGetBandwidths *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_bandwidths__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_get_bandwidths__pack - (const RpcReqWifiGetBandwidths *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_bandwidths__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_get_bandwidths__pack_to_buffer - (const RpcReqWifiGetBandwidths *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_bandwidths__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiGetBandwidths * - rpc__req__wifi_get_bandwidths__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiGetBandwidths *) - protobuf_c_message_unpack (&rpc__req__wifi_get_bandwidths__descriptor, - allocator, len, data); -} -void rpc__req__wifi_get_bandwidths__free_unpacked - (RpcReqWifiGetBandwidths *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_get_bandwidths__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_get_bandwidths__init - (RpcRespWifiGetBandwidths *message) -{ - static const RpcRespWifiGetBandwidths init_value = RPC__RESP__WIFI_GET_BANDWIDTHS__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_get_bandwidths__get_packed_size - (const RpcRespWifiGetBandwidths *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidths__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_get_bandwidths__pack - (const RpcRespWifiGetBandwidths *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidths__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_get_bandwidths__pack_to_buffer - (const RpcRespWifiGetBandwidths *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidths__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiGetBandwidths * - rpc__resp__wifi_get_bandwidths__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiGetBandwidths *) - protobuf_c_message_unpack (&rpc__resp__wifi_get_bandwidths__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_get_bandwidths__free_unpacked - (RpcRespWifiGetBandwidths *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_get_bandwidths__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_set_band__init - (RpcReqWifiSetBand *message) -{ - static const RpcReqWifiSetBand init_value = RPC__REQ__WIFI_SET_BAND__INIT; - *message = init_value; -} -size_t rpc__req__wifi_set_band__get_packed_size - (const RpcReqWifiSetBand *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_band__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_set_band__pack - (const RpcReqWifiSetBand *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_band__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_set_band__pack_to_buffer - (const RpcReqWifiSetBand *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_band__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiSetBand * - rpc__req__wifi_set_band__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiSetBand *) - protobuf_c_message_unpack (&rpc__req__wifi_set_band__descriptor, - allocator, len, data); -} -void rpc__req__wifi_set_band__free_unpacked - (RpcReqWifiSetBand *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_set_band__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_set_band__init - (RpcRespWifiSetBand *message) -{ - static const RpcRespWifiSetBand init_value = RPC__RESP__WIFI_SET_BAND__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_set_band__get_packed_size - (const RpcRespWifiSetBand *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_band__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_set_band__pack - (const RpcRespWifiSetBand *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_band__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_set_band__pack_to_buffer - (const RpcRespWifiSetBand *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_band__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiSetBand * - rpc__resp__wifi_set_band__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiSetBand *) - protobuf_c_message_unpack (&rpc__resp__wifi_set_band__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_set_band__free_unpacked - (RpcRespWifiSetBand *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_set_band__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_get_band__init - (RpcReqWifiGetBand *message) -{ - static const RpcReqWifiGetBand init_value = RPC__REQ__WIFI_GET_BAND__INIT; - *message = init_value; -} -size_t rpc__req__wifi_get_band__get_packed_size - (const RpcReqWifiGetBand *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_band__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_get_band__pack - (const RpcReqWifiGetBand *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_band__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_get_band__pack_to_buffer - (const RpcReqWifiGetBand *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_band__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiGetBand * - rpc__req__wifi_get_band__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiGetBand *) - protobuf_c_message_unpack (&rpc__req__wifi_get_band__descriptor, - allocator, len, data); -} -void rpc__req__wifi_get_band__free_unpacked - (RpcReqWifiGetBand *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_get_band__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_get_band__init - (RpcRespWifiGetBand *message) -{ - static const RpcRespWifiGetBand init_value = RPC__RESP__WIFI_GET_BAND__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_get_band__get_packed_size - (const RpcRespWifiGetBand *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_band__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_get_band__pack - (const RpcRespWifiGetBand *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_band__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_get_band__pack_to_buffer - (const RpcRespWifiGetBand *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_band__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiGetBand * - rpc__resp__wifi_get_band__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiGetBand *) - protobuf_c_message_unpack (&rpc__resp__wifi_get_band__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_get_band__free_unpacked - (RpcRespWifiGetBand *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_get_band__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_set_band_mode__init - (RpcReqWifiSetBandMode *message) -{ - static const RpcReqWifiSetBandMode init_value = RPC__REQ__WIFI_SET_BAND_MODE__INIT; - *message = init_value; -} -size_t rpc__req__wifi_set_band_mode__get_packed_size - (const RpcReqWifiSetBandMode *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_band_mode__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_set_band_mode__pack - (const RpcReqWifiSetBandMode *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_band_mode__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_set_band_mode__pack_to_buffer - (const RpcReqWifiSetBandMode *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_set_band_mode__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiSetBandMode * - rpc__req__wifi_set_band_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiSetBandMode *) - protobuf_c_message_unpack (&rpc__req__wifi_set_band_mode__descriptor, - allocator, len, data); -} -void rpc__req__wifi_set_band_mode__free_unpacked - (RpcReqWifiSetBandMode *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_set_band_mode__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_set_band_mode__init - (RpcRespWifiSetBandMode *message) -{ - static const RpcRespWifiSetBandMode init_value = RPC__RESP__WIFI_SET_BAND_MODE__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_set_band_mode__get_packed_size - (const RpcRespWifiSetBandMode *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_band_mode__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_set_band_mode__pack - (const RpcRespWifiSetBandMode *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_band_mode__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_set_band_mode__pack_to_buffer - (const RpcRespWifiSetBandMode *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_set_band_mode__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiSetBandMode * - rpc__resp__wifi_set_band_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiSetBandMode *) - protobuf_c_message_unpack (&rpc__resp__wifi_set_band_mode__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_set_band_mode__free_unpacked - (RpcRespWifiSetBandMode *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_set_band_mode__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__wifi_get_band_mode__init - (RpcReqWifiGetBandMode *message) -{ - static const RpcReqWifiGetBandMode init_value = RPC__REQ__WIFI_GET_BAND_MODE__INIT; - *message = init_value; -} -size_t rpc__req__wifi_get_band_mode__get_packed_size - (const RpcReqWifiGetBandMode *message) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_band_mode__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__wifi_get_band_mode__pack - (const RpcReqWifiGetBandMode *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_band_mode__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__wifi_get_band_mode__pack_to_buffer - (const RpcReqWifiGetBandMode *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__wifi_get_band_mode__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqWifiGetBandMode * - rpc__req__wifi_get_band_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqWifiGetBandMode *) - protobuf_c_message_unpack (&rpc__req__wifi_get_band_mode__descriptor, - allocator, len, data); -} -void rpc__req__wifi_get_band_mode__free_unpacked - (RpcReqWifiGetBandMode *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__wifi_get_band_mode__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__wifi_get_band_mode__init - (RpcRespWifiGetBandMode *message) -{ - static const RpcRespWifiGetBandMode init_value = RPC__RESP__WIFI_GET_BAND_MODE__INIT; - *message = init_value; -} -size_t rpc__resp__wifi_get_band_mode__get_packed_size - (const RpcRespWifiGetBandMode *message) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_band_mode__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__wifi_get_band_mode__pack - (const RpcRespWifiGetBandMode *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_band_mode__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__wifi_get_band_mode__pack_to_buffer - (const RpcRespWifiGetBandMode *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__wifi_get_band_mode__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespWifiGetBandMode * - rpc__resp__wifi_get_band_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespWifiGetBandMode *) - protobuf_c_message_unpack (&rpc__resp__wifi_get_band_mode__descriptor, - allocator, len, data); -} -void rpc__resp__wifi_get_band_mode__free_unpacked - (RpcRespWifiGetBandMode *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__wifi_get_band_mode__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__req__get_coprocessor_fw_version__init - (RpcReqGetCoprocessorFwVersion *message) -{ - static const RpcReqGetCoprocessorFwVersion init_value = RPC__REQ__GET_COPROCESSOR_FW_VERSION__INIT; - *message = init_value; -} -size_t rpc__req__get_coprocessor_fw_version__get_packed_size - (const RpcReqGetCoprocessorFwVersion *message) -{ - assert(message->base.descriptor == &rpc__req__get_coprocessor_fw_version__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__req__get_coprocessor_fw_version__pack - (const RpcReqGetCoprocessorFwVersion *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__req__get_coprocessor_fw_version__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__req__get_coprocessor_fw_version__pack_to_buffer - (const RpcReqGetCoprocessorFwVersion *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__req__get_coprocessor_fw_version__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcReqGetCoprocessorFwVersion * - rpc__req__get_coprocessor_fw_version__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcReqGetCoprocessorFwVersion *) - protobuf_c_message_unpack (&rpc__req__get_coprocessor_fw_version__descriptor, - allocator, len, data); -} -void rpc__req__get_coprocessor_fw_version__free_unpacked - (RpcReqGetCoprocessorFwVersion *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__req__get_coprocessor_fw_version__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__resp__get_coprocessor_fw_version__init - (RpcRespGetCoprocessorFwVersion *message) -{ - static const RpcRespGetCoprocessorFwVersion init_value = RPC__RESP__GET_COPROCESSOR_FW_VERSION__INIT; - *message = init_value; -} -size_t rpc__resp__get_coprocessor_fw_version__get_packed_size - (const RpcRespGetCoprocessorFwVersion *message) -{ - assert(message->base.descriptor == &rpc__resp__get_coprocessor_fw_version__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__resp__get_coprocessor_fw_version__pack - (const RpcRespGetCoprocessorFwVersion *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__resp__get_coprocessor_fw_version__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__resp__get_coprocessor_fw_version__pack_to_buffer - (const RpcRespGetCoprocessorFwVersion *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__resp__get_coprocessor_fw_version__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcRespGetCoprocessorFwVersion * - rpc__resp__get_coprocessor_fw_version__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcRespGetCoprocessorFwVersion *) - protobuf_c_message_unpack (&rpc__resp__get_coprocessor_fw_version__descriptor, - allocator, len, data); -} -void rpc__resp__get_coprocessor_fw_version__free_unpacked - (RpcRespGetCoprocessorFwVersion *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__resp__get_coprocessor_fw_version__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__event__wifi_event_no_args__init - (RpcEventWifiEventNoArgs *message) -{ - static const RpcEventWifiEventNoArgs init_value = RPC__EVENT__WIFI_EVENT_NO_ARGS__INIT; - *message = init_value; -} -size_t rpc__event__wifi_event_no_args__get_packed_size - (const RpcEventWifiEventNoArgs *message) -{ - assert(message->base.descriptor == &rpc__event__wifi_event_no_args__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__event__wifi_event_no_args__pack - (const RpcEventWifiEventNoArgs *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__event__wifi_event_no_args__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__event__wifi_event_no_args__pack_to_buffer - (const RpcEventWifiEventNoArgs *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__event__wifi_event_no_args__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcEventWifiEventNoArgs * - rpc__event__wifi_event_no_args__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcEventWifiEventNoArgs *) - protobuf_c_message_unpack (&rpc__event__wifi_event_no_args__descriptor, - allocator, len, data); -} -void rpc__event__wifi_event_no_args__free_unpacked - (RpcEventWifiEventNoArgs *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__event__wifi_event_no_args__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__event__espinit__init - (RpcEventESPInit *message) -{ - static const RpcEventESPInit init_value = RPC__EVENT__ESPINIT__INIT; - *message = init_value; -} -size_t rpc__event__espinit__get_packed_size - (const RpcEventESPInit *message) -{ - assert(message->base.descriptor == &rpc__event__espinit__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__event__espinit__pack - (const RpcEventESPInit *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__event__espinit__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__event__espinit__pack_to_buffer - (const RpcEventESPInit *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__event__espinit__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcEventESPInit * - rpc__event__espinit__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcEventESPInit *) - protobuf_c_message_unpack (&rpc__event__espinit__descriptor, - allocator, len, data); -} -void rpc__event__espinit__free_unpacked - (RpcEventESPInit *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__event__espinit__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__event__heartbeat__init - (RpcEventHeartbeat *message) -{ - static const RpcEventHeartbeat init_value = RPC__EVENT__HEARTBEAT__INIT; - *message = init_value; -} -size_t rpc__event__heartbeat__get_packed_size - (const RpcEventHeartbeat *message) -{ - assert(message->base.descriptor == &rpc__event__heartbeat__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__event__heartbeat__pack - (const RpcEventHeartbeat *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__event__heartbeat__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__event__heartbeat__pack_to_buffer - (const RpcEventHeartbeat *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__event__heartbeat__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcEventHeartbeat * - rpc__event__heartbeat__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcEventHeartbeat *) - protobuf_c_message_unpack (&rpc__event__heartbeat__descriptor, - allocator, len, data); -} -void rpc__event__heartbeat__free_unpacked - (RpcEventHeartbeat *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__event__heartbeat__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__event__ap__sta_disconnected__init - (RpcEventAPStaDisconnected *message) -{ - static const RpcEventAPStaDisconnected init_value = RPC__EVENT__AP__STA_DISCONNECTED__INIT; - *message = init_value; -} -size_t rpc__event__ap__sta_disconnected__get_packed_size - (const RpcEventAPStaDisconnected *message) -{ - assert(message->base.descriptor == &rpc__event__ap__sta_disconnected__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__event__ap__sta_disconnected__pack - (const RpcEventAPStaDisconnected *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__event__ap__sta_disconnected__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__event__ap__sta_disconnected__pack_to_buffer - (const RpcEventAPStaDisconnected *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__event__ap__sta_disconnected__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcEventAPStaDisconnected * - rpc__event__ap__sta_disconnected__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcEventAPStaDisconnected *) - protobuf_c_message_unpack (&rpc__event__ap__sta_disconnected__descriptor, - allocator, len, data); -} -void rpc__event__ap__sta_disconnected__free_unpacked - (RpcEventAPStaDisconnected *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__event__ap__sta_disconnected__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__event__ap__sta_connected__init - (RpcEventAPStaConnected *message) -{ - static const RpcEventAPStaConnected init_value = RPC__EVENT__AP__STA_CONNECTED__INIT; - *message = init_value; -} -size_t rpc__event__ap__sta_connected__get_packed_size - (const RpcEventAPStaConnected *message) -{ - assert(message->base.descriptor == &rpc__event__ap__sta_connected__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__event__ap__sta_connected__pack - (const RpcEventAPStaConnected *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__event__ap__sta_connected__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__event__ap__sta_connected__pack_to_buffer - (const RpcEventAPStaConnected *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__event__ap__sta_connected__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcEventAPStaConnected * - rpc__event__ap__sta_connected__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcEventAPStaConnected *) - protobuf_c_message_unpack (&rpc__event__ap__sta_connected__descriptor, - allocator, len, data); -} -void rpc__event__ap__sta_connected__free_unpacked - (RpcEventAPStaConnected *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__event__ap__sta_connected__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__event__sta_scan_done__init - (RpcEventStaScanDone *message) -{ - static const RpcEventStaScanDone init_value = RPC__EVENT__STA_SCAN_DONE__INIT; - *message = init_value; -} -size_t rpc__event__sta_scan_done__get_packed_size - (const RpcEventStaScanDone *message) -{ - assert(message->base.descriptor == &rpc__event__sta_scan_done__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__event__sta_scan_done__pack - (const RpcEventStaScanDone *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__event__sta_scan_done__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__event__sta_scan_done__pack_to_buffer - (const RpcEventStaScanDone *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__event__sta_scan_done__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcEventStaScanDone * - rpc__event__sta_scan_done__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcEventStaScanDone *) - protobuf_c_message_unpack (&rpc__event__sta_scan_done__descriptor, - allocator, len, data); -} -void rpc__event__sta_scan_done__free_unpacked - (RpcEventStaScanDone *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__event__sta_scan_done__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__event__sta_connected__init - (RpcEventStaConnected *message) -{ - static const RpcEventStaConnected init_value = RPC__EVENT__STA_CONNECTED__INIT; - *message = init_value; -} -size_t rpc__event__sta_connected__get_packed_size - (const RpcEventStaConnected *message) -{ - assert(message->base.descriptor == &rpc__event__sta_connected__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__event__sta_connected__pack - (const RpcEventStaConnected *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__event__sta_connected__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__event__sta_connected__pack_to_buffer - (const RpcEventStaConnected *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__event__sta_connected__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcEventStaConnected * - rpc__event__sta_connected__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcEventStaConnected *) - protobuf_c_message_unpack (&rpc__event__sta_connected__descriptor, - allocator, len, data); -} -void rpc__event__sta_connected__free_unpacked - (RpcEventStaConnected *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__event__sta_connected__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__event__sta_disconnected__init - (RpcEventStaDisconnected *message) -{ - static const RpcEventStaDisconnected init_value = RPC__EVENT__STA_DISCONNECTED__INIT; - *message = init_value; -} -size_t rpc__event__sta_disconnected__get_packed_size - (const RpcEventStaDisconnected *message) -{ - assert(message->base.descriptor == &rpc__event__sta_disconnected__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__event__sta_disconnected__pack - (const RpcEventStaDisconnected *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__event__sta_disconnected__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__event__sta_disconnected__pack_to_buffer - (const RpcEventStaDisconnected *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__event__sta_disconnected__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -RpcEventStaDisconnected * - rpc__event__sta_disconnected__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (RpcEventStaDisconnected *) - protobuf_c_message_unpack (&rpc__event__sta_disconnected__descriptor, - allocator, len, data); -} -void rpc__event__sta_disconnected__free_unpacked - (RpcEventStaDisconnected *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__event__sta_disconnected__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -void rpc__init - (Rpc *message) -{ - static const Rpc init_value = RPC__INIT; - *message = init_value; -} -size_t rpc__get_packed_size - (const Rpc *message) -{ - assert(message->base.descriptor == &rpc__descriptor); - return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message)); -} -size_t rpc__pack - (const Rpc *message, - uint8_t *out) -{ - assert(message->base.descriptor == &rpc__descriptor); - return protobuf_c_message_pack ((const ProtobufCMessage*)message, out); -} -size_t rpc__pack_to_buffer - (const Rpc *message, - ProtobufCBuffer *buffer) -{ - assert(message->base.descriptor == &rpc__descriptor); - return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer); -} -Rpc * - rpc__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data) -{ - return (Rpc *) - protobuf_c_message_unpack (&rpc__descriptor, - allocator, len, data); -} -void rpc__free_unpacked - (Rpc *message, - ProtobufCAllocator *allocator) -{ - if(!message) - return; - assert(message->base.descriptor == &rpc__descriptor); - protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator); -} -static const ProtobufCFieldDescriptor wifi_init_config__field_descriptors[20] = -{ - { - "static_rx_buf_num", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, static_rx_buf_num), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "dynamic_rx_buf_num", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, dynamic_rx_buf_num), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "tx_buf_type", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, tx_buf_type), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "static_tx_buf_num", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, static_tx_buf_num), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "dynamic_tx_buf_num", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, dynamic_tx_buf_num), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "cache_tx_buf_num", - 6, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, cache_tx_buf_num), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "csi_enable", - 7, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, csi_enable), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ampdu_rx_enable", - 8, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, ampdu_rx_enable), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ampdu_tx_enable", - 9, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, ampdu_tx_enable), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "amsdu_tx_enable", - 10, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, amsdu_tx_enable), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "nvs_enable", - 11, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, nvs_enable), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "nano_enable", - 12, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, nano_enable), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "rx_ba_win", - 13, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, rx_ba_win), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "wifi_task_core_id", - 14, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, wifi_task_core_id), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "beacon_max_len", - 15, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, beacon_max_len), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "mgmt_sbuf_num", - 16, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, mgmt_sbuf_num), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "feature_caps", - 17, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT64, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, feature_caps), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "sta_disconnected_pm", - 18, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, sta_disconnected_pm), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "espnow_max_encrypt_num", - 19, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, espnow_max_encrypt_num), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "magic", - 20, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiInitConfig, magic), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_init_config__field_indices_by_name[] = { - 7, /* field[7] = ampdu_rx_enable */ - 8, /* field[8] = ampdu_tx_enable */ - 9, /* field[9] = amsdu_tx_enable */ - 14, /* field[14] = beacon_max_len */ - 5, /* field[5] = cache_tx_buf_num */ - 6, /* field[6] = csi_enable */ - 1, /* field[1] = dynamic_rx_buf_num */ - 4, /* field[4] = dynamic_tx_buf_num */ - 18, /* field[18] = espnow_max_encrypt_num */ - 16, /* field[16] = feature_caps */ - 19, /* field[19] = magic */ - 15, /* field[15] = mgmt_sbuf_num */ - 11, /* field[11] = nano_enable */ - 10, /* field[10] = nvs_enable */ - 12, /* field[12] = rx_ba_win */ - 17, /* field[17] = sta_disconnected_pm */ - 0, /* field[0] = static_rx_buf_num */ - 3, /* field[3] = static_tx_buf_num */ - 2, /* field[2] = tx_buf_type */ - 13, /* field[13] = wifi_task_core_id */ -}; -static const ProtobufCIntRange wifi_init_config__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 20 } -}; -const ProtobufCMessageDescriptor wifi_init_config__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_init_config", - "WifiInitConfig", - "WifiInitConfig", - "", - sizeof(WifiInitConfig), - 20, - wifi_init_config__field_descriptors, - wifi_init_config__field_indices_by_name, - 1, wifi_init_config__number_ranges, - (ProtobufCMessageInit) wifi_init_config__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_country__field_descriptors[5] = -{ - { - "cc", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiCountry, cc), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "schan", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiCountry, schan), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "nchan", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiCountry, nchan), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "max_tx_power", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiCountry, max_tx_power), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "policy", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiCountry, policy), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_country__field_indices_by_name[] = { - 0, /* field[0] = cc */ - 3, /* field[3] = max_tx_power */ - 2, /* field[2] = nchan */ - 4, /* field[4] = policy */ - 1, /* field[1] = schan */ -}; -static const ProtobufCIntRange wifi_country__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 5 } -}; -const ProtobufCMessageDescriptor wifi_country__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_country", - "WifiCountry", - "WifiCountry", - "", - sizeof(WifiCountry), - 5, - wifi_country__field_descriptors, - wifi_country__field_indices_by_name, - 1, wifi_country__number_ranges, - (ProtobufCMessageInit) wifi_country__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_active_scan_time__field_descriptors[2] = -{ - { - "min", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiActiveScanTime, min), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "max", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiActiveScanTime, max), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_active_scan_time__field_indices_by_name[] = { - 1, /* field[1] = max */ - 0, /* field[0] = min */ -}; -static const ProtobufCIntRange wifi_active_scan_time__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor wifi_active_scan_time__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_active_scan_time", - "WifiActiveScanTime", - "WifiActiveScanTime", - "", - sizeof(WifiActiveScanTime), - 2, - wifi_active_scan_time__field_descriptors, - wifi_active_scan_time__field_indices_by_name, - 1, wifi_active_scan_time__number_ranges, - (ProtobufCMessageInit) wifi_active_scan_time__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_scan_time__field_descriptors[2] = -{ - { - "active", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(WifiScanTime, active), - &wifi_active_scan_time__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "passive", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiScanTime, passive), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_scan_time__field_indices_by_name[] = { - 0, /* field[0] = active */ - 1, /* field[1] = passive */ -}; -static const ProtobufCIntRange wifi_scan_time__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor wifi_scan_time__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_scan_time", - "WifiScanTime", - "WifiScanTime", - "", - sizeof(WifiScanTime), - 2, - wifi_scan_time__field_descriptors, - wifi_scan_time__field_indices_by_name, - 1, wifi_scan_time__number_ranges, - (ProtobufCMessageInit) wifi_scan_time__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_scan_config__field_descriptors[7] = -{ - { - "ssid", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiScanConfig, ssid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "bssid", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiScanConfig, bssid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "channel", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiScanConfig, channel), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "show_hidden", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(WifiScanConfig, show_hidden), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "scan_type", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiScanConfig, scan_type), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "scan_time", - 6, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(WifiScanConfig, scan_time), - &wifi_scan_time__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "home_chan_dwell_time", - 7, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiScanConfig, home_chan_dwell_time), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_scan_config__field_indices_by_name[] = { - 1, /* field[1] = bssid */ - 2, /* field[2] = channel */ - 6, /* field[6] = home_chan_dwell_time */ - 5, /* field[5] = scan_time */ - 4, /* field[4] = scan_type */ - 3, /* field[3] = show_hidden */ - 0, /* field[0] = ssid */ -}; -static const ProtobufCIntRange wifi_scan_config__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 7 } -}; -const ProtobufCMessageDescriptor wifi_scan_config__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_scan_config", - "WifiScanConfig", - "WifiScanConfig", - "", - sizeof(WifiScanConfig), - 7, - wifi_scan_config__field_descriptors, - wifi_scan_config__field_indices_by_name, - 1, wifi_scan_config__number_ranges, - (ProtobufCMessageInit) wifi_scan_config__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_he_ap_info__field_descriptors[2] = -{ - { - "bitmask", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiHeApInfo, bitmask), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "bssid_index", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiHeApInfo, bssid_index), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_he_ap_info__field_indices_by_name[] = { - 0, /* field[0] = bitmask */ - 1, /* field[1] = bssid_index */ -}; -static const ProtobufCIntRange wifi_he_ap_info__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor wifi_he_ap_info__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_he_ap_info", - "WifiHeApInfo", - "WifiHeApInfo", - "", - sizeof(WifiHeApInfo), - 2, - wifi_he_ap_info__field_descriptors, - wifi_he_ap_info__field_indices_by_name, - 1, wifi_he_ap_info__number_ranges, - (ProtobufCMessageInit) wifi_he_ap_info__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_ap_record__field_descriptors[15] = -{ - { - "bssid", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiApRecord, bssid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ssid", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiApRecord, ssid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "primary", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiApRecord, primary), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "second", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiApRecord, second), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "rssi", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiApRecord, rssi), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "authmode", - 6, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiApRecord, authmode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "pairwise_cipher", - 7, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiApRecord, pairwise_cipher), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "group_cipher", - 8, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiApRecord, group_cipher), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ant", - 9, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiApRecord, ant), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "bitmask", - 10, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiApRecord, bitmask), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "country", - 11, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(WifiApRecord, country), - &wifi_country__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "he_ap", - 12, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(WifiApRecord, he_ap), - &wifi_he_ap_info__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "bandwidth", - 13, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiApRecord, bandwidth), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "vht_ch_freq1", - 14, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiApRecord, vht_ch_freq1), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "vht_ch_freq2", - 15, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiApRecord, vht_ch_freq2), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_ap_record__field_indices_by_name[] = { - 8, /* field[8] = ant */ - 5, /* field[5] = authmode */ - 12, /* field[12] = bandwidth */ - 9, /* field[9] = bitmask */ - 0, /* field[0] = bssid */ - 10, /* field[10] = country */ - 7, /* field[7] = group_cipher */ - 11, /* field[11] = he_ap */ - 6, /* field[6] = pairwise_cipher */ - 2, /* field[2] = primary */ - 4, /* field[4] = rssi */ - 3, /* field[3] = second */ - 1, /* field[1] = ssid */ - 13, /* field[13] = vht_ch_freq1 */ - 14, /* field[14] = vht_ch_freq2 */ -}; -static const ProtobufCIntRange wifi_ap_record__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 15 } -}; -const ProtobufCMessageDescriptor wifi_ap_record__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_ap_record", - "WifiApRecord", - "WifiApRecord", - "", - sizeof(WifiApRecord), - 15, - wifi_ap_record__field_descriptors, - wifi_ap_record__field_indices_by_name, - 1, wifi_ap_record__number_ranges, - (ProtobufCMessageInit) wifi_ap_record__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_scan_threshold__field_descriptors[2] = -{ - { - "rssi", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiScanThreshold, rssi), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "authmode", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiScanThreshold, authmode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_scan_threshold__field_indices_by_name[] = { - 1, /* field[1] = authmode */ - 0, /* field[0] = rssi */ -}; -static const ProtobufCIntRange wifi_scan_threshold__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor wifi_scan_threshold__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_scan_threshold", - "WifiScanThreshold", - "WifiScanThreshold", - "", - sizeof(WifiScanThreshold), - 2, - wifi_scan_threshold__field_descriptors, - wifi_scan_threshold__field_indices_by_name, - 1, wifi_scan_threshold__number_ranges, - (ProtobufCMessageInit) wifi_scan_threshold__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_pmf_config__field_descriptors[2] = -{ - { - "capable", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(WifiPmfConfig, capable), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "required", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(WifiPmfConfig, required), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_pmf_config__field_indices_by_name[] = { - 0, /* field[0] = capable */ - 1, /* field[1] = required */ -}; -static const ProtobufCIntRange wifi_pmf_config__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor wifi_pmf_config__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_pmf_config", - "WifiPmfConfig", - "WifiPmfConfig", - "", - sizeof(WifiPmfConfig), - 2, - wifi_pmf_config__field_descriptors, - wifi_pmf_config__field_indices_by_name, - 1, wifi_pmf_config__number_ranges, - (ProtobufCMessageInit) wifi_pmf_config__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_ap_config__field_descriptors[12] = -{ - { - "ssid", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiApConfig, ssid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "password", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiApConfig, password), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ssid_len", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiApConfig, ssid_len), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "channel", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiApConfig, channel), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "authmode", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiApConfig, authmode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ssid_hidden", - 6, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiApConfig, ssid_hidden), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "max_connection", - 7, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiApConfig, max_connection), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "beacon_interval", - 8, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiApConfig, beacon_interval), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "pairwise_cipher", - 9, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiApConfig, pairwise_cipher), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ftm_responder", - 10, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(WifiApConfig, ftm_responder), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "pmf_cfg", - 11, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(WifiApConfig, pmf_cfg), - &wifi_pmf_config__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "sae_pwe_h2e", - 12, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiApConfig, sae_pwe_h2e), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_ap_config__field_indices_by_name[] = { - 4, /* field[4] = authmode */ - 7, /* field[7] = beacon_interval */ - 3, /* field[3] = channel */ - 9, /* field[9] = ftm_responder */ - 6, /* field[6] = max_connection */ - 8, /* field[8] = pairwise_cipher */ - 1, /* field[1] = password */ - 10, /* field[10] = pmf_cfg */ - 11, /* field[11] = sae_pwe_h2e */ - 0, /* field[0] = ssid */ - 5, /* field[5] = ssid_hidden */ - 2, /* field[2] = ssid_len */ -}; -static const ProtobufCIntRange wifi_ap_config__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 12 } -}; -const ProtobufCMessageDescriptor wifi_ap_config__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_ap_config", - "WifiApConfig", - "WifiApConfig", - "", - sizeof(WifiApConfig), - 12, - wifi_ap_config__field_descriptors, - wifi_ap_config__field_indices_by_name, - 1, wifi_ap_config__number_ranges, - (ProtobufCMessageInit) wifi_ap_config__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_sta_config__field_descriptors[15] = -{ - { - "ssid", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiStaConfig, ssid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "password", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiStaConfig, password), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "scan_method", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiStaConfig, scan_method), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "bssid_set", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(WifiStaConfig, bssid_set), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "bssid", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiStaConfig, bssid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "channel", - 6, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiStaConfig, channel), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "listen_interval", - 7, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiStaConfig, listen_interval), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "sort_method", - 8, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiStaConfig, sort_method), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "threshold", - 9, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(WifiStaConfig, threshold), - &wifi_scan_threshold__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "pmf_cfg", - 10, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(WifiStaConfig, pmf_cfg), - &wifi_pmf_config__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "bitmask", - 11, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiStaConfig, bitmask), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "sae_pwe_h2e", - 12, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiStaConfig, sae_pwe_h2e), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "failure_retry_cnt", - 13, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiStaConfig, failure_retry_cnt), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "he_bitmask", - 14, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiStaConfig, he_bitmask), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "sae_h2e_identifier", - 15, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiStaConfig, sae_h2e_identifier), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_sta_config__field_indices_by_name[] = { - 10, /* field[10] = bitmask */ - 4, /* field[4] = bssid */ - 3, /* field[3] = bssid_set */ - 5, /* field[5] = channel */ - 12, /* field[12] = failure_retry_cnt */ - 13, /* field[13] = he_bitmask */ - 6, /* field[6] = listen_interval */ - 1, /* field[1] = password */ - 9, /* field[9] = pmf_cfg */ - 14, /* field[14] = sae_h2e_identifier */ - 11, /* field[11] = sae_pwe_h2e */ - 2, /* field[2] = scan_method */ - 7, /* field[7] = sort_method */ - 0, /* field[0] = ssid */ - 8, /* field[8] = threshold */ -}; -static const ProtobufCIntRange wifi_sta_config__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 15 } -}; -const ProtobufCMessageDescriptor wifi_sta_config__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_sta_config", - "WifiStaConfig", - "WifiStaConfig", - "", - sizeof(WifiStaConfig), - 15, - wifi_sta_config__field_descriptors, - wifi_sta_config__field_indices_by_name, - 1, wifi_sta_config__number_ranges, - (ProtobufCMessageInit) wifi_sta_config__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_config__field_descriptors[2] = -{ - { - "ap", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(WifiConfig, u_case), - offsetof(WifiConfig, ap), - &wifi_ap_config__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "sta", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(WifiConfig, u_case), - offsetof(WifiConfig, sta), - &wifi_sta_config__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_config__field_indices_by_name[] = { - 0, /* field[0] = ap */ - 1, /* field[1] = sta */ -}; -static const ProtobufCIntRange wifi_config__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor wifi_config__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_config", - "WifiConfig", - "WifiConfig", - "", - sizeof(WifiConfig), - 2, - wifi_config__field_descriptors, - wifi_config__field_indices_by_name, - 1, wifi_config__number_ranges, - (ProtobufCMessageInit) wifi_config__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_sta_info__field_descriptors[3] = -{ - { - "mac", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiStaInfo, mac), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "rssi", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiStaInfo, rssi), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "bitmask", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiStaInfo, bitmask), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_sta_info__field_indices_by_name[] = { - 2, /* field[2] = bitmask */ - 0, /* field[0] = mac */ - 1, /* field[1] = rssi */ -}; -static const ProtobufCIntRange wifi_sta_info__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 3 } -}; -const ProtobufCMessageDescriptor wifi_sta_info__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_sta_info", - "WifiStaInfo", - "WifiStaInfo", - "", - sizeof(WifiStaInfo), - 3, - wifi_sta_info__field_descriptors, - wifi_sta_info__field_indices_by_name, - 1, wifi_sta_info__number_ranges, - (ProtobufCMessageInit) wifi_sta_info__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_sta_list__field_descriptors[2] = -{ - { - "sta", - 1, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(WifiStaList, n_sta), - offsetof(WifiStaList, sta), - &wifi_sta_info__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "num", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiStaList, num), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_sta_list__field_indices_by_name[] = { - 1, /* field[1] = num */ - 0, /* field[0] = sta */ -}; -static const ProtobufCIntRange wifi_sta_list__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor wifi_sta_list__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_sta_list", - "WifiStaList", - "WifiStaList", - "", - sizeof(WifiStaList), - 2, - wifi_sta_list__field_descriptors, - wifi_sta_list__field_indices_by_name, - 1, wifi_sta_list__number_ranges, - (ProtobufCMessageInit) wifi_sta_list__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_pkt_rx_ctrl__field_descriptors[19] = -{ - { - "rssi", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, rssi), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "rate", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, rate), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "sig_mode", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, sig_mode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "mcs", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, mcs), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "cwb", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, cwb), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "smoothing", - 6, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, smoothing), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "not_sounding", - 7, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, not_sounding), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "aggregation", - 8, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, aggregation), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "stbc", - 9, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, stbc), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "fec_coding", - 10, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, fec_coding), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "sgi", - 11, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, sgi), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "noise_floor", - 12, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, noise_floor), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ampdu_cnt", - 13, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, ampdu_cnt), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "channel", - 14, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, channel), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "secondary_channel", - 15, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, secondary_channel), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "timestamp", - 16, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, timestamp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ant", - 17, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, ant), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "sig_len", - 18, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, sig_len), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "rx_state", - 19, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPktRxCtrl, rx_state), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_pkt_rx_ctrl__field_indices_by_name[] = { - 7, /* field[7] = aggregation */ - 12, /* field[12] = ampdu_cnt */ - 16, /* field[16] = ant */ - 13, /* field[13] = channel */ - 4, /* field[4] = cwb */ - 9, /* field[9] = fec_coding */ - 3, /* field[3] = mcs */ - 11, /* field[11] = noise_floor */ - 6, /* field[6] = not_sounding */ - 1, /* field[1] = rate */ - 0, /* field[0] = rssi */ - 18, /* field[18] = rx_state */ - 14, /* field[14] = secondary_channel */ - 10, /* field[10] = sgi */ - 17, /* field[17] = sig_len */ - 2, /* field[2] = sig_mode */ - 5, /* field[5] = smoothing */ - 8, /* field[8] = stbc */ - 15, /* field[15] = timestamp */ -}; -static const ProtobufCIntRange wifi_pkt_rx_ctrl__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 19 } -}; -const ProtobufCMessageDescriptor wifi_pkt_rx_ctrl__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_pkt_rx_ctrl", - "WifiPktRxCtrl", - "WifiPktRxCtrl", - "", - sizeof(WifiPktRxCtrl), - 19, - wifi_pkt_rx_ctrl__field_descriptors, - wifi_pkt_rx_ctrl__field_indices_by_name, - 1, wifi_pkt_rx_ctrl__number_ranges, - (ProtobufCMessageInit) wifi_pkt_rx_ctrl__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_promiscuous_pkt__field_descriptors[2] = -{ - { - "rx_ctrl", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(WifiPromiscuousPkt, rx_ctrl), - &wifi_pkt_rx_ctrl__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "payload", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiPromiscuousPkt, payload), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_promiscuous_pkt__field_indices_by_name[] = { - 1, /* field[1] = payload */ - 0, /* field[0] = rx_ctrl */ -}; -static const ProtobufCIntRange wifi_promiscuous_pkt__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor wifi_promiscuous_pkt__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_promiscuous_pkt", - "WifiPromiscuousPkt", - "WifiPromiscuousPkt", - "", - sizeof(WifiPromiscuousPkt), - 2, - wifi_promiscuous_pkt__field_descriptors, - wifi_promiscuous_pkt__field_indices_by_name, - 1, wifi_promiscuous_pkt__number_ranges, - (ProtobufCMessageInit) wifi_promiscuous_pkt__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_promiscuous_filter__field_descriptors[1] = -{ - { - "filter_mask", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiPromiscuousFilter, filter_mask), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_promiscuous_filter__field_indices_by_name[] = { - 0, /* field[0] = filter_mask */ -}; -static const ProtobufCIntRange wifi_promiscuous_filter__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor wifi_promiscuous_filter__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_promiscuous_filter", - "WifiPromiscuousFilter", - "WifiPromiscuousFilter", - "", - sizeof(WifiPromiscuousFilter), - 1, - wifi_promiscuous_filter__field_descriptors, - wifi_promiscuous_filter__field_indices_by_name, - 1, wifi_promiscuous_filter__number_ranges, - (ProtobufCMessageInit) wifi_promiscuous_filter__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_csi_config__field_descriptors[7] = -{ - { - "lltf_en", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(WifiCsiConfig, lltf_en), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "htltf_en", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(WifiCsiConfig, htltf_en), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "stbc_htltf2_en", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(WifiCsiConfig, stbc_htltf2_en), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ltf_merge_en", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(WifiCsiConfig, ltf_merge_en), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "channel_filter_en", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(WifiCsiConfig, channel_filter_en), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "manu_scale", - 6, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(WifiCsiConfig, manu_scale), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "shift", - 7, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiCsiConfig, shift), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_csi_config__field_indices_by_name[] = { - 4, /* field[4] = channel_filter_en */ - 1, /* field[1] = htltf_en */ - 0, /* field[0] = lltf_en */ - 3, /* field[3] = ltf_merge_en */ - 5, /* field[5] = manu_scale */ - 6, /* field[6] = shift */ - 2, /* field[2] = stbc_htltf2_en */ -}; -static const ProtobufCIntRange wifi_csi_config__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 7 } -}; -const ProtobufCMessageDescriptor wifi_csi_config__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_csi_config", - "WifiCsiConfig", - "WifiCsiConfig", - "", - sizeof(WifiCsiConfig), - 7, - wifi_csi_config__field_descriptors, - wifi_csi_config__field_indices_by_name, - 1, wifi_csi_config__number_ranges, - (ProtobufCMessageInit) wifi_csi_config__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_csi_info__field_descriptors[6] = -{ - { - "rx_ctrl", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(WifiCsiInfo, rx_ctrl), - &wifi_pkt_rx_ctrl__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "mac", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiCsiInfo, mac), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "dmac", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiCsiInfo, dmac), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "first_word_invalid", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(WifiCsiInfo, first_word_invalid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "buf", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiCsiInfo, buf), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "len", - 6, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiCsiInfo, len), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_csi_info__field_indices_by_name[] = { - 4, /* field[4] = buf */ - 2, /* field[2] = dmac */ - 3, /* field[3] = first_word_invalid */ - 5, /* field[5] = len */ - 1, /* field[1] = mac */ - 0, /* field[0] = rx_ctrl */ -}; -static const ProtobufCIntRange wifi_csi_info__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 6 } -}; -const ProtobufCMessageDescriptor wifi_csi_info__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_csi_info", - "WifiCsiInfo", - "WifiCsiInfo", - "", - sizeof(WifiCsiInfo), - 6, - wifi_csi_info__field_descriptors, - wifi_csi_info__field_indices_by_name, - 1, wifi_csi_info__number_ranges, - (ProtobufCMessageInit) wifi_csi_info__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_ant_gpio__field_descriptors[2] = -{ - { - "gpio_select", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiAntGpio, gpio_select), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "gpio_num", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiAntGpio, gpio_num), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_ant_gpio__field_indices_by_name[] = { - 1, /* field[1] = gpio_num */ - 0, /* field[0] = gpio_select */ -}; -static const ProtobufCIntRange wifi_ant_gpio__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor wifi_ant_gpio__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_ant_gpio", - "WifiAntGpio", - "WifiAntGpio", - "", - sizeof(WifiAntGpio), - 2, - wifi_ant_gpio__field_descriptors, - wifi_ant_gpio__field_indices_by_name, - 1, wifi_ant_gpio__number_ranges, - (ProtobufCMessageInit) wifi_ant_gpio__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_ant_gpio_config__field_descriptors[1] = -{ - { - "gpio_cfgs", - 1, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(WifiAntGpioConfig, n_gpio_cfgs), - offsetof(WifiAntGpioConfig, gpio_cfgs), - &wifi_ant_gpio__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_ant_gpio_config__field_indices_by_name[] = { - 0, /* field[0] = gpio_cfgs */ -}; -static const ProtobufCIntRange wifi_ant_gpio_config__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor wifi_ant_gpio_config__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_ant_gpio_config", - "WifiAntGpioConfig", - "WifiAntGpioConfig", - "", - sizeof(WifiAntGpioConfig), - 1, - wifi_ant_gpio_config__field_descriptors, - wifi_ant_gpio_config__field_indices_by_name, - 1, wifi_ant_gpio_config__number_ranges, - (ProtobufCMessageInit) wifi_ant_gpio_config__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_ant_config__field_descriptors[5] = -{ - { - "rx_ant_mode", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiAntConfig, rx_ant_mode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "rx_ant_default", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiAntConfig, rx_ant_default), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "tx_ant_mode", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiAntConfig, tx_ant_mode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "enabled_ant0", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiAntConfig, enabled_ant0), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "enabled_ant1", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiAntConfig, enabled_ant1), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_ant_config__field_indices_by_name[] = { - 3, /* field[3] = enabled_ant0 */ - 4, /* field[4] = enabled_ant1 */ - 1, /* field[1] = rx_ant_default */ - 0, /* field[0] = rx_ant_mode */ - 2, /* field[2] = tx_ant_mode */ -}; -static const ProtobufCIntRange wifi_ant_config__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 5 } -}; -const ProtobufCMessageDescriptor wifi_ant_config__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_ant_config", - "WifiAntConfig", - "WifiAntConfig", - "", - sizeof(WifiAntConfig), - 5, - wifi_ant_config__field_descriptors, - wifi_ant_config__field_indices_by_name, - 1, wifi_ant_config__number_ranges, - (ProtobufCMessageInit) wifi_ant_config__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_action_tx_req__field_descriptors[5] = -{ - { - "ifx", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiActionTxReq, ifx), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "dest_mac", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiActionTxReq, dest_mac), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "no_ack", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(WifiActionTxReq, no_ack), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "data_len", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiActionTxReq, data_len), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "data", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiActionTxReq, data), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_action_tx_req__field_indices_by_name[] = { - 4, /* field[4] = data */ - 3, /* field[3] = data_len */ - 1, /* field[1] = dest_mac */ - 0, /* field[0] = ifx */ - 2, /* field[2] = no_ack */ -}; -static const ProtobufCIntRange wifi_action_tx_req__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 5 } -}; -const ProtobufCMessageDescriptor wifi_action_tx_req__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_action_tx_req", - "WifiActionTxReq", - "WifiActionTxReq", - "", - sizeof(WifiActionTxReq), - 5, - wifi_action_tx_req__field_descriptors, - wifi_action_tx_req__field_indices_by_name, - 1, wifi_action_tx_req__number_ranges, - (ProtobufCMessageInit) wifi_action_tx_req__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_ftm_initiator_cfg__field_descriptors[4] = -{ - { - "resp_mac", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiFtmInitiatorCfg, resp_mac), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "channel", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiFtmInitiatorCfg, channel), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "frm_count", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiFtmInitiatorCfg, frm_count), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "burst_period", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiFtmInitiatorCfg, burst_period), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_ftm_initiator_cfg__field_indices_by_name[] = { - 3, /* field[3] = burst_period */ - 1, /* field[1] = channel */ - 2, /* field[2] = frm_count */ - 0, /* field[0] = resp_mac */ -}; -static const ProtobufCIntRange wifi_ftm_initiator_cfg__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 4 } -}; -const ProtobufCMessageDescriptor wifi_ftm_initiator_cfg__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_ftm_initiator_cfg", - "WifiFtmInitiatorCfg", - "WifiFtmInitiatorCfg", - "", - sizeof(WifiFtmInitiatorCfg), - 4, - wifi_ftm_initiator_cfg__field_descriptors, - wifi_ftm_initiator_cfg__field_indices_by_name, - 1, wifi_ftm_initiator_cfg__number_ranges, - (ProtobufCMessageInit) wifi_ftm_initiator_cfg__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_event_sta_scan_done__field_descriptors[3] = -{ - { - "status", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventStaScanDone, status), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "number", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventStaScanDone, number), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "scan_id", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventStaScanDone, scan_id), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_event_sta_scan_done__field_indices_by_name[] = { - 1, /* field[1] = number */ - 2, /* field[2] = scan_id */ - 0, /* field[0] = status */ -}; -static const ProtobufCIntRange wifi_event_sta_scan_done__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 3 } -}; -const ProtobufCMessageDescriptor wifi_event_sta_scan_done__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_event_sta_scan_done", - "WifiEventStaScanDone", - "WifiEventStaScanDone", - "", - sizeof(WifiEventStaScanDone), - 3, - wifi_event_sta_scan_done__field_descriptors, - wifi_event_sta_scan_done__field_indices_by_name, - 1, wifi_event_sta_scan_done__number_ranges, - (ProtobufCMessageInit) wifi_event_sta_scan_done__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_event_sta_connected__field_descriptors[6] = -{ - { - "ssid", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiEventStaConnected, ssid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ssid_len", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventStaConnected, ssid_len), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "bssid", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiEventStaConnected, bssid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "channel", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventStaConnected, channel), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "authmode", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiEventStaConnected, authmode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "aid", - 6, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiEventStaConnected, aid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_event_sta_connected__field_indices_by_name[] = { - 5, /* field[5] = aid */ - 4, /* field[4] = authmode */ - 2, /* field[2] = bssid */ - 3, /* field[3] = channel */ - 0, /* field[0] = ssid */ - 1, /* field[1] = ssid_len */ -}; -static const ProtobufCIntRange wifi_event_sta_connected__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 6 } -}; -const ProtobufCMessageDescriptor wifi_event_sta_connected__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_event_sta_connected", - "WifiEventStaConnected", - "WifiEventStaConnected", - "", - sizeof(WifiEventStaConnected), - 6, - wifi_event_sta_connected__field_descriptors, - wifi_event_sta_connected__field_indices_by_name, - 1, wifi_event_sta_connected__number_ranges, - (ProtobufCMessageInit) wifi_event_sta_connected__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_event_sta_disconnected__field_descriptors[5] = -{ - { - "ssid", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiEventStaDisconnected, ssid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ssid_len", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventStaDisconnected, ssid_len), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "bssid", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiEventStaDisconnected, bssid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "reason", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventStaDisconnected, reason), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "rssi", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiEventStaDisconnected, rssi), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_event_sta_disconnected__field_indices_by_name[] = { - 2, /* field[2] = bssid */ - 3, /* field[3] = reason */ - 4, /* field[4] = rssi */ - 0, /* field[0] = ssid */ - 1, /* field[1] = ssid_len */ -}; -static const ProtobufCIntRange wifi_event_sta_disconnected__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 5 } -}; -const ProtobufCMessageDescriptor wifi_event_sta_disconnected__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_event_sta_disconnected", - "WifiEventStaDisconnected", - "WifiEventStaDisconnected", - "", - sizeof(WifiEventStaDisconnected), - 5, - wifi_event_sta_disconnected__field_descriptors, - wifi_event_sta_disconnected__field_indices_by_name, - 1, wifi_event_sta_disconnected__number_ranges, - (ProtobufCMessageInit) wifi_event_sta_disconnected__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_event_sta_authmode_change__field_descriptors[2] = -{ - { - "old_mode", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiEventStaAuthmodeChange, old_mode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "new_mode", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiEventStaAuthmodeChange, new_mode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_event_sta_authmode_change__field_indices_by_name[] = { - 1, /* field[1] = new_mode */ - 0, /* field[0] = old_mode */ -}; -static const ProtobufCIntRange wifi_event_sta_authmode_change__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor wifi_event_sta_authmode_change__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_event_sta_authmode_change", - "WifiEventStaAuthmodeChange", - "WifiEventStaAuthmodeChange", - "", - sizeof(WifiEventStaAuthmodeChange), - 2, - wifi_event_sta_authmode_change__field_descriptors, - wifi_event_sta_authmode_change__field_indices_by_name, - 1, wifi_event_sta_authmode_change__number_ranges, - (ProtobufCMessageInit) wifi_event_sta_authmode_change__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_event_sta_wps_er_pin__field_descriptors[1] = -{ - { - "pin_code", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiEventStaWpsErPin, pin_code), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_event_sta_wps_er_pin__field_indices_by_name[] = { - 0, /* field[0] = pin_code */ -}; -static const ProtobufCIntRange wifi_event_sta_wps_er_pin__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor wifi_event_sta_wps_er_pin__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_event_sta_wps_er_pin", - "WifiEventStaWpsErPin", - "WifiEventStaWpsErPin", - "", - sizeof(WifiEventStaWpsErPin), - 1, - wifi_event_sta_wps_er_pin__field_descriptors, - wifi_event_sta_wps_er_pin__field_indices_by_name, - 1, wifi_event_sta_wps_er_pin__number_ranges, - (ProtobufCMessageInit) wifi_event_sta_wps_er_pin__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor ap_cred__field_descriptors[2] = -{ - { - "ssid", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(ApCred, ssid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "passphrase", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(ApCred, passphrase), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned ap_cred__field_indices_by_name[] = { - 1, /* field[1] = passphrase */ - 0, /* field[0] = ssid */ -}; -static const ProtobufCIntRange ap_cred__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor ap_cred__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "ap_cred", - "ApCred", - "ApCred", - "", - sizeof(ApCred), - 2, - ap_cred__field_descriptors, - ap_cred__field_indices_by_name, - 1, ap_cred__number_ranges, - (ProtobufCMessageInit) ap_cred__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_event_sta_wps_er_success__field_descriptors[2] = -{ - { - "ap_cred_cnt", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventStaWpsErSuccess, ap_cred_cnt), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ap_creds", - 2, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(WifiEventStaWpsErSuccess, n_ap_creds), - offsetof(WifiEventStaWpsErSuccess, ap_creds), - &ap_cred__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_event_sta_wps_er_success__field_indices_by_name[] = { - 0, /* field[0] = ap_cred_cnt */ - 1, /* field[1] = ap_creds */ -}; -static const ProtobufCIntRange wifi_event_sta_wps_er_success__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor wifi_event_sta_wps_er_success__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_event_sta_wps_er_success", - "WifiEventStaWpsErSuccess", - "WifiEventStaWpsErSuccess", - "", - sizeof(WifiEventStaWpsErSuccess), - 2, - wifi_event_sta_wps_er_success__field_descriptors, - wifi_event_sta_wps_er_success__field_indices_by_name, - 1, wifi_event_sta_wps_er_success__number_ranges, - (ProtobufCMessageInit) wifi_event_sta_wps_er_success__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_event_ap_probe_req_rx__field_descriptors[2] = -{ - { - "rssi", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiEventApProbeReqRx, rssi), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "mac", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventApProbeReqRx, mac), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_event_ap_probe_req_rx__field_indices_by_name[] = { - 1, /* field[1] = mac */ - 0, /* field[0] = rssi */ -}; -static const ProtobufCIntRange wifi_event_ap_probe_req_rx__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor wifi_event_ap_probe_req_rx__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_event_ap_probe_req_rx", - "WifiEventApProbeReqRx", - "WifiEventApProbeReqRx", - "", - sizeof(WifiEventApProbeReqRx), - 2, - wifi_event_ap_probe_req_rx__field_descriptors, - wifi_event_ap_probe_req_rx__field_indices_by_name, - 1, wifi_event_ap_probe_req_rx__number_ranges, - (ProtobufCMessageInit) wifi_event_ap_probe_req_rx__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_event_bss_rssi_low__field_descriptors[1] = -{ - { - "rssi", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiEventBssRssiLow, rssi), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_event_bss_rssi_low__field_indices_by_name[] = { - 0, /* field[0] = rssi */ -}; -static const ProtobufCIntRange wifi_event_bss_rssi_low__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor wifi_event_bss_rssi_low__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_event_bss_rssi_low", - "WifiEventBssRssiLow", - "WifiEventBssRssiLow", - "", - sizeof(WifiEventBssRssiLow), - 1, - wifi_event_bss_rssi_low__field_descriptors, - wifi_event_bss_rssi_low__field_indices_by_name, - 1, wifi_event_bss_rssi_low__number_ranges, - (ProtobufCMessageInit) wifi_event_bss_rssi_low__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_ftm_report_entry__field_descriptors[7] = -{ - { - "dlog_token", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiFtmReportEntry, dlog_token), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "rssi", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiFtmReportEntry, rssi), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "rtt", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiFtmReportEntry, rtt), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "t1", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT64, - 0, /* quantifier_offset */ - offsetof(WifiFtmReportEntry, t1), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "t2", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT64, - 0, /* quantifier_offset */ - offsetof(WifiFtmReportEntry, t2), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "t3", - 6, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT64, - 0, /* quantifier_offset */ - offsetof(WifiFtmReportEntry, t3), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "t4", - 7, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT64, - 0, /* quantifier_offset */ - offsetof(WifiFtmReportEntry, t4), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_ftm_report_entry__field_indices_by_name[] = { - 0, /* field[0] = dlog_token */ - 1, /* field[1] = rssi */ - 2, /* field[2] = rtt */ - 3, /* field[3] = t1 */ - 4, /* field[4] = t2 */ - 5, /* field[5] = t3 */ - 6, /* field[6] = t4 */ -}; -static const ProtobufCIntRange wifi_ftm_report_entry__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 7 } -}; -const ProtobufCMessageDescriptor wifi_ftm_report_entry__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_ftm_report_entry", - "WifiFtmReportEntry", - "WifiFtmReportEntry", - "", - sizeof(WifiFtmReportEntry), - 7, - wifi_ftm_report_entry__field_descriptors, - wifi_ftm_report_entry__field_indices_by_name, - 1, wifi_ftm_report_entry__number_ranges, - (ProtobufCMessageInit) wifi_ftm_report_entry__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_event_ftm_report__field_descriptors[7] = -{ - { - "peer_mac", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiEventFtmReport, peer_mac), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "status", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiEventFtmReport, status), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "rtt_raw", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventFtmReport, rtt_raw), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "rtt_est", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventFtmReport, rtt_est), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "dist_est", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventFtmReport, dist_est), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ftm_report_data", - 6, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(WifiEventFtmReport, n_ftm_report_data), - offsetof(WifiEventFtmReport, ftm_report_data), - &wifi_ftm_report_entry__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ftm_report_num_entries", - 7, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventFtmReport, ftm_report_num_entries), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_event_ftm_report__field_indices_by_name[] = { - 4, /* field[4] = dist_est */ - 5, /* field[5] = ftm_report_data */ - 6, /* field[6] = ftm_report_num_entries */ - 0, /* field[0] = peer_mac */ - 3, /* field[3] = rtt_est */ - 2, /* field[2] = rtt_raw */ - 1, /* field[1] = status */ -}; -static const ProtobufCIntRange wifi_event_ftm_report__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 7 } -}; -const ProtobufCMessageDescriptor wifi_event_ftm_report__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_event_ftm_report", - "WifiEventFtmReport", - "WifiEventFtmReport", - "", - sizeof(WifiEventFtmReport), - 7, - wifi_event_ftm_report__field_descriptors, - wifi_event_ftm_report__field_indices_by_name, - 1, wifi_event_ftm_report__number_ranges, - (ProtobufCMessageInit) wifi_event_ftm_report__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_event_action_tx_status__field_descriptors[4] = -{ - { - "ifx", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiEventActionTxStatus, ifx), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "context", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventActionTxStatus, context), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "da", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiEventActionTxStatus, da), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "status", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventActionTxStatus, status), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_event_action_tx_status__field_indices_by_name[] = { - 1, /* field[1] = context */ - 2, /* field[2] = da */ - 0, /* field[0] = ifx */ - 3, /* field[3] = status */ -}; -static const ProtobufCIntRange wifi_event_action_tx_status__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 4 } -}; -const ProtobufCMessageDescriptor wifi_event_action_tx_status__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_event_action_tx_status", - "WifiEventActionTxStatus", - "WifiEventActionTxStatus", - "", - sizeof(WifiEventActionTxStatus), - 4, - wifi_event_action_tx_status__field_descriptors, - wifi_event_action_tx_status__field_indices_by_name, - 1, wifi_event_action_tx_status__number_ranges, - (ProtobufCMessageInit) wifi_event_action_tx_status__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_event_roc_done__field_descriptors[1] = -{ - { - "context", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiEventRocDone, context), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_event_roc_done__field_indices_by_name[] = { - 0, /* field[0] = context */ -}; -static const ProtobufCIntRange wifi_event_roc_done__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor wifi_event_roc_done__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_event_roc_done", - "WifiEventRocDone", - "WifiEventRocDone", - "", - sizeof(WifiEventRocDone), - 1, - wifi_event_roc_done__field_descriptors, - wifi_event_roc_done__field_indices_by_name, - 1, wifi_event_roc_done__number_ranges, - (ProtobufCMessageInit) wifi_event_roc_done__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_event_ap_wps_rg_pin__field_descriptors[1] = -{ - { - "pin_code", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiEventApWpsRgPin, pin_code), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_event_ap_wps_rg_pin__field_indices_by_name[] = { - 0, /* field[0] = pin_code */ -}; -static const ProtobufCIntRange wifi_event_ap_wps_rg_pin__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor wifi_event_ap_wps_rg_pin__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_event_ap_wps_rg_pin", - "WifiEventApWpsRgPin", - "WifiEventApWpsRgPin", - "", - sizeof(WifiEventApWpsRgPin), - 1, - wifi_event_ap_wps_rg_pin__field_descriptors, - wifi_event_ap_wps_rg_pin__field_indices_by_name, - 1, wifi_event_ap_wps_rg_pin__number_ranges, - (ProtobufCMessageInit) wifi_event_ap_wps_rg_pin__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_event_ap_wps_rg_fail_reason__field_descriptors[2] = -{ - { - "reason", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(WifiEventApWpsRgFailReason, reason), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "peer_macaddr", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiEventApWpsRgFailReason, peer_macaddr), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_event_ap_wps_rg_fail_reason__field_indices_by_name[] = { - 1, /* field[1] = peer_macaddr */ - 0, /* field[0] = reason */ -}; -static const ProtobufCIntRange wifi_event_ap_wps_rg_fail_reason__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor wifi_event_ap_wps_rg_fail_reason__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_event_ap_wps_rg_fail_reason", - "WifiEventApWpsRgFailReason", - "WifiEventApWpsRgFailReason", - "", - sizeof(WifiEventApWpsRgFailReason), - 2, - wifi_event_ap_wps_rg_fail_reason__field_descriptors, - wifi_event_ap_wps_rg_fail_reason__field_indices_by_name, - 1, wifi_event_ap_wps_rg_fail_reason__number_ranges, - (ProtobufCMessageInit) wifi_event_ap_wps_rg_fail_reason__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_event_ap_wps_rg_success__field_descriptors[1] = -{ - { - "peer_macaddr", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(WifiEventApWpsRgSuccess, peer_macaddr), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_event_ap_wps_rg_success__field_indices_by_name[] = { - 0, /* field[0] = peer_macaddr */ -}; -static const ProtobufCIntRange wifi_event_ap_wps_rg_success__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor wifi_event_ap_wps_rg_success__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_event_ap_wps_rg_success", - "WifiEventApWpsRgSuccess", - "WifiEventApWpsRgSuccess", - "", - sizeof(WifiEventApWpsRgSuccess), - 1, - wifi_event_ap_wps_rg_success__field_descriptors, - wifi_event_ap_wps_rg_success__field_indices_by_name, - 1, wifi_event_ap_wps_rg_success__number_ranges, - (ProtobufCMessageInit) wifi_event_ap_wps_rg_success__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_protocols__field_descriptors[2] = -{ - { - "ghz_2g", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiProtocols, ghz_2g), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ghz_5g", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiProtocols, ghz_5g), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_protocols__field_indices_by_name[] = { - 0, /* field[0] = ghz_2g */ - 1, /* field[1] = ghz_5g */ -}; -static const ProtobufCIntRange wifi_protocols__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor wifi_protocols__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_protocols", - "WifiProtocols", - "WifiProtocols", - "", - sizeof(WifiProtocols), - 2, - wifi_protocols__field_descriptors, - wifi_protocols__field_indices_by_name, - 1, wifi_protocols__number_ranges, - (ProtobufCMessageInit) wifi_protocols__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor wifi_bandwidths__field_descriptors[2] = -{ - { - "ghz_2g", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiBandwidths, ghz_2g), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ghz_5g", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(WifiBandwidths, ghz_5g), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned wifi_bandwidths__field_indices_by_name[] = { - 0, /* field[0] = ghz_2g */ - 1, /* field[1] = ghz_5g */ -}; -static const ProtobufCIntRange wifi_bandwidths__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor wifi_bandwidths__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "wifi_bandwidths", - "WifiBandwidths", - "WifiBandwidths", - "", - sizeof(WifiBandwidths), - 2, - wifi_bandwidths__field_descriptors, - wifi_bandwidths__field_indices_by_name, - 1, wifi_bandwidths__number_ranges, - (ProtobufCMessageInit) wifi_bandwidths__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor connected_stalist__field_descriptors[2] = -{ - { - "mac", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(ConnectedSTAList, mac), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "rssi", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(ConnectedSTAList, rssi), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned connected_stalist__field_indices_by_name[] = { - 0, /* field[0] = mac */ - 1, /* field[1] = rssi */ -}; -static const ProtobufCIntRange connected_stalist__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor connected_stalist__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "ConnectedSTAList", - "ConnectedSTAList", - "ConnectedSTAList", - "", - sizeof(ConnectedSTAList), - 2, - connected_stalist__field_descriptors, - connected_stalist__field_indices_by_name, - 1, connected_stalist__number_ranges, - (ProtobufCMessageInit) connected_stalist__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__get_mac_address__field_descriptors[1] = -{ - { - "mode", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqGetMacAddress, mode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__get_mac_address__field_indices_by_name[] = { - 0, /* field[0] = mode */ -}; -static const ProtobufCIntRange rpc__req__get_mac_address__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__get_mac_address__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_GetMacAddress", - "RpcReqGetMacAddress", - "RpcReqGetMacAddress", - "", - sizeof(RpcReqGetMacAddress), - 1, - rpc__req__get_mac_address__field_descriptors, - rpc__req__get_mac_address__field_indices_by_name, - 1, rpc__req__get_mac_address__number_ranges, - (ProtobufCMessageInit) rpc__req__get_mac_address__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__get_mac_address__field_descriptors[2] = -{ - { - "mac", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(RpcRespGetMacAddress, mac), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespGetMacAddress, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__get_mac_address__field_indices_by_name[] = { - 0, /* field[0] = mac */ - 1, /* field[1] = resp */ -}; -static const ProtobufCIntRange rpc__resp__get_mac_address__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__get_mac_address__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_GetMacAddress", - "RpcRespGetMacAddress", - "RpcRespGetMacAddress", - "", - sizeof(RpcRespGetMacAddress), - 2, - rpc__resp__get_mac_address__field_descriptors, - rpc__resp__get_mac_address__field_indices_by_name, - 1, rpc__resp__get_mac_address__number_ranges, - (ProtobufCMessageInit) rpc__resp__get_mac_address__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__get_mode__field_descriptors NULL -#define rpc__req__get_mode__field_indices_by_name NULL -#define rpc__req__get_mode__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__get_mode__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_GetMode", - "RpcReqGetMode", - "RpcReqGetMode", - "", - sizeof(RpcReqGetMode), - 0, - rpc__req__get_mode__field_descriptors, - rpc__req__get_mode__field_indices_by_name, - 0, rpc__req__get_mode__number_ranges, - (ProtobufCMessageInit) rpc__req__get_mode__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__get_mode__field_descriptors[2] = -{ - { - "mode", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespGetMode, mode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespGetMode, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__get_mode__field_indices_by_name[] = { - 0, /* field[0] = mode */ - 1, /* field[1] = resp */ -}; -static const ProtobufCIntRange rpc__resp__get_mode__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__get_mode__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_GetMode", - "RpcRespGetMode", - "RpcRespGetMode", - "", - sizeof(RpcRespGetMode), - 2, - rpc__resp__get_mode__field_descriptors, - rpc__resp__get_mode__field_indices_by_name, - 1, rpc__resp__get_mode__number_ranges, - (ProtobufCMessageInit) rpc__resp__get_mode__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__set_mode__field_descriptors[1] = -{ - { - "mode", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqSetMode, mode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__set_mode__field_indices_by_name[] = { - 0, /* field[0] = mode */ -}; -static const ProtobufCIntRange rpc__req__set_mode__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__set_mode__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_SetMode", - "RpcReqSetMode", - "RpcReqSetMode", - "", - sizeof(RpcReqSetMode), - 1, - rpc__req__set_mode__field_descriptors, - rpc__req__set_mode__field_indices_by_name, - 1, rpc__req__set_mode__number_ranges, - (ProtobufCMessageInit) rpc__req__set_mode__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__set_mode__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespSetMode, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__set_mode__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__set_mode__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__set_mode__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_SetMode", - "RpcRespSetMode", - "RpcRespSetMode", - "", - sizeof(RpcRespSetMode), - 1, - rpc__resp__set_mode__field_descriptors, - rpc__resp__set_mode__field_indices_by_name, - 1, rpc__resp__set_mode__number_ranges, - (ProtobufCMessageInit) rpc__resp__set_mode__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__get_ps__field_descriptors NULL -#define rpc__req__get_ps__field_indices_by_name NULL -#define rpc__req__get_ps__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__get_ps__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_GetPs", - "RpcReqGetPs", - "RpcReqGetPs", - "", - sizeof(RpcReqGetPs), - 0, - rpc__req__get_ps__field_descriptors, - rpc__req__get_ps__field_indices_by_name, - 0, rpc__req__get_ps__number_ranges, - (ProtobufCMessageInit) rpc__req__get_ps__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__get_ps__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespGetPs, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "type", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespGetPs, type), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__get_ps__field_indices_by_name[] = { - 0, /* field[0] = resp */ - 1, /* field[1] = type */ -}; -static const ProtobufCIntRange rpc__resp__get_ps__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__get_ps__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_GetPs", - "RpcRespGetPs", - "RpcRespGetPs", - "", - sizeof(RpcRespGetPs), - 2, - rpc__resp__get_ps__field_descriptors, - rpc__resp__get_ps__field_indices_by_name, - 1, rpc__resp__get_ps__number_ranges, - (ProtobufCMessageInit) rpc__resp__get_ps__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__set_ps__field_descriptors[1] = -{ - { - "type", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqSetPs, type), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__set_ps__field_indices_by_name[] = { - 0, /* field[0] = type */ -}; -static const ProtobufCIntRange rpc__req__set_ps__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__set_ps__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_SetPs", - "RpcReqSetPs", - "RpcReqSetPs", - "", - sizeof(RpcReqSetPs), - 1, - rpc__req__set_ps__field_descriptors, - rpc__req__set_ps__field_indices_by_name, - 1, rpc__req__set_ps__number_ranges, - (ProtobufCMessageInit) rpc__req__set_ps__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__set_ps__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespSetPs, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__set_ps__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__set_ps__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__set_ps__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_SetPs", - "RpcRespSetPs", - "RpcRespSetPs", - "", - sizeof(RpcRespSetPs), - 1, - rpc__resp__set_ps__field_descriptors, - rpc__resp__set_ps__field_indices_by_name, - 1, rpc__resp__set_ps__number_ranges, - (ProtobufCMessageInit) rpc__resp__set_ps__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__set_mac_address__field_descriptors[2] = -{ - { - "mac", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(RpcReqSetMacAddress, mac), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "mode", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqSetMacAddress, mode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__set_mac_address__field_indices_by_name[] = { - 0, /* field[0] = mac */ - 1, /* field[1] = mode */ -}; -static const ProtobufCIntRange rpc__req__set_mac_address__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__req__set_mac_address__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_SetMacAddress", - "RpcReqSetMacAddress", - "RpcReqSetMacAddress", - "", - sizeof(RpcReqSetMacAddress), - 2, - rpc__req__set_mac_address__field_descriptors, - rpc__req__set_mac_address__field_indices_by_name, - 1, rpc__req__set_mac_address__number_ranges, - (ProtobufCMessageInit) rpc__req__set_mac_address__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__set_mac_address__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespSetMacAddress, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__set_mac_address__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__set_mac_address__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__set_mac_address__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_SetMacAddress", - "RpcRespSetMacAddress", - "RpcRespSetMacAddress", - "", - sizeof(RpcRespSetMacAddress), - 1, - rpc__resp__set_mac_address__field_descriptors, - rpc__resp__set_mac_address__field_indices_by_name, - 1, rpc__resp__set_mac_address__number_ranges, - (ProtobufCMessageInit) rpc__resp__set_mac_address__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__otabegin__field_descriptors NULL -#define rpc__req__otabegin__field_indices_by_name NULL -#define rpc__req__otabegin__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__otabegin__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_OTABegin", - "RpcReqOTABegin", - "RpcReqOTABegin", - "", - sizeof(RpcReqOTABegin), - 0, - rpc__req__otabegin__field_descriptors, - rpc__req__otabegin__field_indices_by_name, - 0, rpc__req__otabegin__number_ranges, - (ProtobufCMessageInit) rpc__req__otabegin__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__otabegin__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespOTABegin, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__otabegin__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__otabegin__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__otabegin__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_OTABegin", - "RpcRespOTABegin", - "RpcRespOTABegin", - "", - sizeof(RpcRespOTABegin), - 1, - rpc__resp__otabegin__field_descriptors, - rpc__resp__otabegin__field_indices_by_name, - 1, rpc__resp__otabegin__number_ranges, - (ProtobufCMessageInit) rpc__resp__otabegin__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__otawrite__field_descriptors[1] = -{ - { - "ota_data", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(RpcReqOTAWrite, ota_data), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__otawrite__field_indices_by_name[] = { - 0, /* field[0] = ota_data */ -}; -static const ProtobufCIntRange rpc__req__otawrite__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__otawrite__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_OTAWrite", - "RpcReqOTAWrite", - "RpcReqOTAWrite", - "", - sizeof(RpcReqOTAWrite), - 1, - rpc__req__otawrite__field_descriptors, - rpc__req__otawrite__field_indices_by_name, - 1, rpc__req__otawrite__number_ranges, - (ProtobufCMessageInit) rpc__req__otawrite__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__otawrite__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespOTAWrite, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__otawrite__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__otawrite__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__otawrite__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_OTAWrite", - "RpcRespOTAWrite", - "RpcRespOTAWrite", - "", - sizeof(RpcRespOTAWrite), - 1, - rpc__resp__otawrite__field_descriptors, - rpc__resp__otawrite__field_indices_by_name, - 1, rpc__resp__otawrite__number_ranges, - (ProtobufCMessageInit) rpc__resp__otawrite__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__otaend__field_descriptors NULL -#define rpc__req__otaend__field_indices_by_name NULL -#define rpc__req__otaend__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__otaend__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_OTAEnd", - "RpcReqOTAEnd", - "RpcReqOTAEnd", - "", - sizeof(RpcReqOTAEnd), - 0, - rpc__req__otaend__field_descriptors, - rpc__req__otaend__field_indices_by_name, - 0, rpc__req__otaend__number_ranges, - (ProtobufCMessageInit) rpc__req__otaend__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__otaend__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespOTAEnd, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__otaend__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__otaend__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__otaend__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_OTAEnd", - "RpcRespOTAEnd", - "RpcRespOTAEnd", - "", - sizeof(RpcRespOTAEnd), - 1, - rpc__resp__otaend__field_descriptors, - rpc__resp__otaend__field_indices_by_name, - 1, rpc__resp__otaend__number_ranges, - (ProtobufCMessageInit) rpc__resp__otaend__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_set_max_tx_power__field_descriptors[1] = -{ - { - "power", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetMaxTxPower, power), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_set_max_tx_power__field_indices_by_name[] = { - 0, /* field[0] = power */ -}; -static const ProtobufCIntRange rpc__req__wifi_set_max_tx_power__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_set_max_tx_power__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiSetMaxTxPower", - "RpcReqWifiSetMaxTxPower", - "RpcReqWifiSetMaxTxPower", - "", - sizeof(RpcReqWifiSetMaxTxPower), - 1, - rpc__req__wifi_set_max_tx_power__field_descriptors, - rpc__req__wifi_set_max_tx_power__field_indices_by_name, - 1, rpc__req__wifi_set_max_tx_power__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_set_max_tx_power__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_set_max_tx_power__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiSetMaxTxPower, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_set_max_tx_power__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_set_max_tx_power__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_set_max_tx_power__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiSetMaxTxPower", - "RpcRespWifiSetMaxTxPower", - "RpcRespWifiSetMaxTxPower", - "", - sizeof(RpcRespWifiSetMaxTxPower), - 1, - rpc__resp__wifi_set_max_tx_power__field_descriptors, - rpc__resp__wifi_set_max_tx_power__field_indices_by_name, - 1, rpc__resp__wifi_set_max_tx_power__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_set_max_tx_power__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_get_max_tx_power__field_descriptors NULL -#define rpc__req__wifi_get_max_tx_power__field_indices_by_name NULL -#define rpc__req__wifi_get_max_tx_power__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_get_max_tx_power__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiGetMaxTxPower", - "RpcReqWifiGetMaxTxPower", - "RpcReqWifiGetMaxTxPower", - "", - sizeof(RpcReqWifiGetMaxTxPower), - 0, - rpc__req__wifi_get_max_tx_power__field_descriptors, - rpc__req__wifi_get_max_tx_power__field_indices_by_name, - 0, rpc__req__wifi_get_max_tx_power__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_get_max_tx_power__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_get_max_tx_power__field_descriptors[2] = -{ - { - "power", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetMaxTxPower, power), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetMaxTxPower, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_get_max_tx_power__field_indices_by_name[] = { - 0, /* field[0] = power */ - 1, /* field[1] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_get_max_tx_power__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_get_max_tx_power__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiGetMaxTxPower", - "RpcRespWifiGetMaxTxPower", - "RpcRespWifiGetMaxTxPower", - "", - sizeof(RpcRespWifiGetMaxTxPower), - 2, - rpc__resp__wifi_get_max_tx_power__field_descriptors, - rpc__resp__wifi_get_max_tx_power__field_indices_by_name, - 1, rpc__resp__wifi_get_max_tx_power__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_get_max_tx_power__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__config_heartbeat__field_descriptors[2] = -{ - { - "enable", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(RpcReqConfigHeartbeat, enable), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "duration", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqConfigHeartbeat, duration), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__config_heartbeat__field_indices_by_name[] = { - 1, /* field[1] = duration */ - 0, /* field[0] = enable */ -}; -static const ProtobufCIntRange rpc__req__config_heartbeat__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__req__config_heartbeat__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_ConfigHeartbeat", - "RpcReqConfigHeartbeat", - "RpcReqConfigHeartbeat", - "", - sizeof(RpcReqConfigHeartbeat), - 2, - rpc__req__config_heartbeat__field_descriptors, - rpc__req__config_heartbeat__field_indices_by_name, - 1, rpc__req__config_heartbeat__number_ranges, - (ProtobufCMessageInit) rpc__req__config_heartbeat__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__config_heartbeat__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespConfigHeartbeat, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__config_heartbeat__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__config_heartbeat__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__config_heartbeat__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_ConfigHeartbeat", - "RpcRespConfigHeartbeat", - "RpcRespConfigHeartbeat", - "", - sizeof(RpcRespConfigHeartbeat), - 1, - rpc__resp__config_heartbeat__field_descriptors, - rpc__resp__config_heartbeat__field_indices_by_name, - 1, rpc__resp__config_heartbeat__number_ranges, - (ProtobufCMessageInit) rpc__resp__config_heartbeat__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_init__field_descriptors[1] = -{ - { - "cfg", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiInit, cfg), - &wifi_init_config__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_init__field_indices_by_name[] = { - 0, /* field[0] = cfg */ -}; -static const ProtobufCIntRange rpc__req__wifi_init__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_init__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiInit", - "RpcReqWifiInit", - "RpcReqWifiInit", - "", - sizeof(RpcReqWifiInit), - 1, - rpc__req__wifi_init__field_descriptors, - rpc__req__wifi_init__field_indices_by_name, - 1, rpc__req__wifi_init__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_init__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_init__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiInit, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_init__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_init__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_init__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiInit", - "RpcRespWifiInit", - "RpcRespWifiInit", - "", - sizeof(RpcRespWifiInit), - 1, - rpc__resp__wifi_init__field_descriptors, - rpc__resp__wifi_init__field_indices_by_name, - 1, rpc__resp__wifi_init__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_init__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_deinit__field_descriptors NULL -#define rpc__req__wifi_deinit__field_indices_by_name NULL -#define rpc__req__wifi_deinit__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_deinit__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiDeinit", - "RpcReqWifiDeinit", - "RpcReqWifiDeinit", - "", - sizeof(RpcReqWifiDeinit), - 0, - rpc__req__wifi_deinit__field_descriptors, - rpc__req__wifi_deinit__field_indices_by_name, - 0, rpc__req__wifi_deinit__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_deinit__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_deinit__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiDeinit, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_deinit__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_deinit__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_deinit__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiDeinit", - "RpcRespWifiDeinit", - "RpcRespWifiDeinit", - "", - sizeof(RpcRespWifiDeinit), - 1, - rpc__resp__wifi_deinit__field_descriptors, - rpc__resp__wifi_deinit__field_indices_by_name, - 1, rpc__resp__wifi_deinit__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_deinit__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_set_config__field_descriptors[2] = -{ - { - "iface", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetConfig, iface), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "cfg", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetConfig, cfg), - &wifi_config__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_set_config__field_indices_by_name[] = { - 1, /* field[1] = cfg */ - 0, /* field[0] = iface */ -}; -static const ProtobufCIntRange rpc__req__wifi_set_config__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_set_config__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiSetConfig", - "RpcReqWifiSetConfig", - "RpcReqWifiSetConfig", - "", - sizeof(RpcReqWifiSetConfig), - 2, - rpc__req__wifi_set_config__field_descriptors, - rpc__req__wifi_set_config__field_indices_by_name, - 1, rpc__req__wifi_set_config__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_set_config__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_set_config__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiSetConfig, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_set_config__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_set_config__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_set_config__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiSetConfig", - "RpcRespWifiSetConfig", - "RpcRespWifiSetConfig", - "", - sizeof(RpcRespWifiSetConfig), - 1, - rpc__resp__wifi_set_config__field_descriptors, - rpc__resp__wifi_set_config__field_indices_by_name, - 1, rpc__resp__wifi_set_config__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_set_config__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_get_config__field_descriptors[1] = -{ - { - "iface", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiGetConfig, iface), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_get_config__field_indices_by_name[] = { - 0, /* field[0] = iface */ -}; -static const ProtobufCIntRange rpc__req__wifi_get_config__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_get_config__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiGetConfig", - "RpcReqWifiGetConfig", - "RpcReqWifiGetConfig", - "", - sizeof(RpcReqWifiGetConfig), - 1, - rpc__req__wifi_get_config__field_descriptors, - rpc__req__wifi_get_config__field_indices_by_name, - 1, rpc__req__wifi_get_config__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_get_config__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_get_config__field_descriptors[3] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetConfig, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "iface", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetConfig, iface), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "cfg", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetConfig, cfg), - &wifi_config__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_get_config__field_indices_by_name[] = { - 2, /* field[2] = cfg */ - 1, /* field[1] = iface */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_get_config__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 3 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_get_config__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiGetConfig", - "RpcRespWifiGetConfig", - "RpcRespWifiGetConfig", - "", - sizeof(RpcRespWifiGetConfig), - 3, - rpc__resp__wifi_get_config__field_descriptors, - rpc__resp__wifi_get_config__field_indices_by_name, - 1, rpc__resp__wifi_get_config__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_get_config__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_connect__field_descriptors NULL -#define rpc__req__wifi_connect__field_indices_by_name NULL -#define rpc__req__wifi_connect__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_connect__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiConnect", - "RpcReqWifiConnect", - "RpcReqWifiConnect", - "", - sizeof(RpcReqWifiConnect), - 0, - rpc__req__wifi_connect__field_descriptors, - rpc__req__wifi_connect__field_indices_by_name, - 0, rpc__req__wifi_connect__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_connect__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_connect__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiConnect, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_connect__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_connect__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_connect__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiConnect", - "RpcRespWifiConnect", - "RpcRespWifiConnect", - "", - sizeof(RpcRespWifiConnect), - 1, - rpc__resp__wifi_connect__field_descriptors, - rpc__resp__wifi_connect__field_indices_by_name, - 1, rpc__resp__wifi_connect__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_connect__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_disconnect__field_descriptors NULL -#define rpc__req__wifi_disconnect__field_indices_by_name NULL -#define rpc__req__wifi_disconnect__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_disconnect__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiDisconnect", - "RpcReqWifiDisconnect", - "RpcReqWifiDisconnect", - "", - sizeof(RpcReqWifiDisconnect), - 0, - rpc__req__wifi_disconnect__field_descriptors, - rpc__req__wifi_disconnect__field_indices_by_name, - 0, rpc__req__wifi_disconnect__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_disconnect__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_disconnect__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiDisconnect, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_disconnect__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_disconnect__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_disconnect__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiDisconnect", - "RpcRespWifiDisconnect", - "RpcRespWifiDisconnect", - "", - sizeof(RpcRespWifiDisconnect), - 1, - rpc__resp__wifi_disconnect__field_descriptors, - rpc__resp__wifi_disconnect__field_indices_by_name, - 1, rpc__resp__wifi_disconnect__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_disconnect__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_start__field_descriptors NULL -#define rpc__req__wifi_start__field_indices_by_name NULL -#define rpc__req__wifi_start__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_start__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiStart", - "RpcReqWifiStart", - "RpcReqWifiStart", - "", - sizeof(RpcReqWifiStart), - 0, - rpc__req__wifi_start__field_descriptors, - rpc__req__wifi_start__field_indices_by_name, - 0, rpc__req__wifi_start__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_start__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_start__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiStart, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_start__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_start__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_start__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiStart", - "RpcRespWifiStart", - "RpcRespWifiStart", - "", - sizeof(RpcRespWifiStart), - 1, - rpc__resp__wifi_start__field_descriptors, - rpc__resp__wifi_start__field_indices_by_name, - 1, rpc__resp__wifi_start__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_start__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_stop__field_descriptors NULL -#define rpc__req__wifi_stop__field_indices_by_name NULL -#define rpc__req__wifi_stop__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_stop__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiStop", - "RpcReqWifiStop", - "RpcReqWifiStop", - "", - sizeof(RpcReqWifiStop), - 0, - rpc__req__wifi_stop__field_descriptors, - rpc__req__wifi_stop__field_indices_by_name, - 0, rpc__req__wifi_stop__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_stop__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_stop__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiStop, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_stop__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_stop__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_stop__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiStop", - "RpcRespWifiStop", - "RpcRespWifiStop", - "", - sizeof(RpcRespWifiStop), - 1, - rpc__resp__wifi_stop__field_descriptors, - rpc__resp__wifi_stop__field_indices_by_name, - 1, rpc__resp__wifi_stop__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_stop__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_scan_start__field_descriptors[3] = -{ - { - "config", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiScanStart, config), - &wifi_scan_config__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "block", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiScanStart, block), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "config_set", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiScanStart, config_set), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_scan_start__field_indices_by_name[] = { - 1, /* field[1] = block */ - 0, /* field[0] = config */ - 2, /* field[2] = config_set */ -}; -static const ProtobufCIntRange rpc__req__wifi_scan_start__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 3 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_scan_start__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiScanStart", - "RpcReqWifiScanStart", - "RpcReqWifiScanStart", - "", - sizeof(RpcReqWifiScanStart), - 3, - rpc__req__wifi_scan_start__field_descriptors, - rpc__req__wifi_scan_start__field_indices_by_name, - 1, rpc__req__wifi_scan_start__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_scan_start__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_scan_start__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiScanStart, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_scan_start__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_scan_start__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_scan_start__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiScanStart", - "RpcRespWifiScanStart", - "RpcRespWifiScanStart", - "", - sizeof(RpcRespWifiScanStart), - 1, - rpc__resp__wifi_scan_start__field_descriptors, - rpc__resp__wifi_scan_start__field_indices_by_name, - 1, rpc__resp__wifi_scan_start__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_scan_start__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_scan_stop__field_descriptors NULL -#define rpc__req__wifi_scan_stop__field_indices_by_name NULL -#define rpc__req__wifi_scan_stop__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_scan_stop__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiScanStop", - "RpcReqWifiScanStop", - "RpcReqWifiScanStop", - "", - sizeof(RpcReqWifiScanStop), - 0, - rpc__req__wifi_scan_stop__field_descriptors, - rpc__req__wifi_scan_stop__field_indices_by_name, - 0, rpc__req__wifi_scan_stop__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_scan_stop__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_scan_stop__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiScanStop, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_scan_stop__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_scan_stop__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_scan_stop__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiScanStop", - "RpcRespWifiScanStop", - "RpcRespWifiScanStop", - "", - sizeof(RpcRespWifiScanStop), - 1, - rpc__resp__wifi_scan_stop__field_descriptors, - rpc__resp__wifi_scan_stop__field_indices_by_name, - 1, rpc__resp__wifi_scan_stop__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_scan_stop__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_scan_get_ap_num__field_descriptors NULL -#define rpc__req__wifi_scan_get_ap_num__field_indices_by_name NULL -#define rpc__req__wifi_scan_get_ap_num__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_scan_get_ap_num__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiScanGetApNum", - "RpcReqWifiScanGetApNum", - "RpcReqWifiScanGetApNum", - "", - sizeof(RpcReqWifiScanGetApNum), - 0, - rpc__req__wifi_scan_get_ap_num__field_descriptors, - rpc__req__wifi_scan_get_ap_num__field_indices_by_name, - 0, rpc__req__wifi_scan_get_ap_num__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_scan_get_ap_num__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_scan_get_ap_num__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiScanGetApNum, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "number", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiScanGetApNum, number), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_scan_get_ap_num__field_indices_by_name[] = { - 1, /* field[1] = number */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_scan_get_ap_num__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_scan_get_ap_num__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiScanGetApNum", - "RpcRespWifiScanGetApNum", - "RpcRespWifiScanGetApNum", - "", - sizeof(RpcRespWifiScanGetApNum), - 2, - rpc__resp__wifi_scan_get_ap_num__field_descriptors, - rpc__resp__wifi_scan_get_ap_num__field_indices_by_name, - 1, rpc__resp__wifi_scan_get_ap_num__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_scan_get_ap_num__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_scan_get_ap_records__field_descriptors[1] = -{ - { - "number", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiScanGetApRecords, number), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_scan_get_ap_records__field_indices_by_name[] = { - 0, /* field[0] = number */ -}; -static const ProtobufCIntRange rpc__req__wifi_scan_get_ap_records__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_scan_get_ap_records__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiScanGetApRecords", - "RpcReqWifiScanGetApRecords", - "RpcReqWifiScanGetApRecords", - "", - sizeof(RpcReqWifiScanGetApRecords), - 1, - rpc__req__wifi_scan_get_ap_records__field_descriptors, - rpc__req__wifi_scan_get_ap_records__field_indices_by_name, - 1, rpc__req__wifi_scan_get_ap_records__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_scan_get_ap_records__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_scan_get_ap_records__field_descriptors[3] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiScanGetApRecords, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "number", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiScanGetApRecords, number), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ap_records", - 3, - PROTOBUF_C_LABEL_REPEATED, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(RpcRespWifiScanGetApRecords, n_ap_records), - offsetof(RpcRespWifiScanGetApRecords, ap_records), - &wifi_ap_record__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_scan_get_ap_records__field_indices_by_name[] = { - 2, /* field[2] = ap_records */ - 1, /* field[1] = number */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_scan_get_ap_records__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 3 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_scan_get_ap_records__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiScanGetApRecords", - "RpcRespWifiScanGetApRecords", - "RpcRespWifiScanGetApRecords", - "", - sizeof(RpcRespWifiScanGetApRecords), - 3, - rpc__resp__wifi_scan_get_ap_records__field_descriptors, - rpc__resp__wifi_scan_get_ap_records__field_indices_by_name, - 1, rpc__resp__wifi_scan_get_ap_records__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_scan_get_ap_records__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_scan_get_ap_record__field_descriptors NULL -#define rpc__req__wifi_scan_get_ap_record__field_indices_by_name NULL -#define rpc__req__wifi_scan_get_ap_record__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_scan_get_ap_record__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiScanGetApRecord", - "RpcReqWifiScanGetApRecord", - "RpcReqWifiScanGetApRecord", - "", - sizeof(RpcReqWifiScanGetApRecord), - 0, - rpc__req__wifi_scan_get_ap_record__field_descriptors, - rpc__req__wifi_scan_get_ap_record__field_indices_by_name, - 0, rpc__req__wifi_scan_get_ap_record__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_scan_get_ap_record__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_scan_get_ap_record__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiScanGetApRecord, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ap_record", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiScanGetApRecord, ap_record), - &wifi_ap_record__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_scan_get_ap_record__field_indices_by_name[] = { - 1, /* field[1] = ap_record */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_scan_get_ap_record__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_scan_get_ap_record__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiScanGetApRecord", - "RpcRespWifiScanGetApRecord", - "RpcRespWifiScanGetApRecord", - "", - sizeof(RpcRespWifiScanGetApRecord), - 2, - rpc__resp__wifi_scan_get_ap_record__field_descriptors, - rpc__resp__wifi_scan_get_ap_record__field_indices_by_name, - 1, rpc__resp__wifi_scan_get_ap_record__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_scan_get_ap_record__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_clear_ap_list__field_descriptors NULL -#define rpc__req__wifi_clear_ap_list__field_indices_by_name NULL -#define rpc__req__wifi_clear_ap_list__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_clear_ap_list__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiClearApList", - "RpcReqWifiClearApList", - "RpcReqWifiClearApList", - "", - sizeof(RpcReqWifiClearApList), - 0, - rpc__req__wifi_clear_ap_list__field_descriptors, - rpc__req__wifi_clear_ap_list__field_indices_by_name, - 0, rpc__req__wifi_clear_ap_list__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_clear_ap_list__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_clear_ap_list__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiClearApList, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_clear_ap_list__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_clear_ap_list__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_clear_ap_list__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiClearApList", - "RpcRespWifiClearApList", - "RpcRespWifiClearApList", - "", - sizeof(RpcRespWifiClearApList), - 1, - rpc__resp__wifi_clear_ap_list__field_descriptors, - rpc__resp__wifi_clear_ap_list__field_indices_by_name, - 1, rpc__resp__wifi_clear_ap_list__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_clear_ap_list__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_restore__field_descriptors NULL -#define rpc__req__wifi_restore__field_indices_by_name NULL -#define rpc__req__wifi_restore__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_restore__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiRestore", - "RpcReqWifiRestore", - "RpcReqWifiRestore", - "", - sizeof(RpcReqWifiRestore), - 0, - rpc__req__wifi_restore__field_descriptors, - rpc__req__wifi_restore__field_indices_by_name, - 0, rpc__req__wifi_restore__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_restore__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_restore__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiRestore, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_restore__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_restore__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_restore__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiRestore", - "RpcRespWifiRestore", - "RpcRespWifiRestore", - "", - sizeof(RpcRespWifiRestore), - 1, - rpc__resp__wifi_restore__field_descriptors, - rpc__resp__wifi_restore__field_indices_by_name, - 1, rpc__resp__wifi_restore__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_restore__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_clear_fast_connect__field_descriptors NULL -#define rpc__req__wifi_clear_fast_connect__field_indices_by_name NULL -#define rpc__req__wifi_clear_fast_connect__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_clear_fast_connect__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiClearFastConnect", - "RpcReqWifiClearFastConnect", - "RpcReqWifiClearFastConnect", - "", - sizeof(RpcReqWifiClearFastConnect), - 0, - rpc__req__wifi_clear_fast_connect__field_descriptors, - rpc__req__wifi_clear_fast_connect__field_indices_by_name, - 0, rpc__req__wifi_clear_fast_connect__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_clear_fast_connect__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_clear_fast_connect__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiClearFastConnect, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_clear_fast_connect__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_clear_fast_connect__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_clear_fast_connect__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiClearFastConnect", - "RpcRespWifiClearFastConnect", - "RpcRespWifiClearFastConnect", - "", - sizeof(RpcRespWifiClearFastConnect), - 1, - rpc__resp__wifi_clear_fast_connect__field_descriptors, - rpc__resp__wifi_clear_fast_connect__field_indices_by_name, - 1, rpc__resp__wifi_clear_fast_connect__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_clear_fast_connect__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_deauth_sta__field_descriptors[1] = -{ - { - "aid", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiDeauthSta, aid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_deauth_sta__field_indices_by_name[] = { - 0, /* field[0] = aid */ -}; -static const ProtobufCIntRange rpc__req__wifi_deauth_sta__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_deauth_sta__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiDeauthSta", - "RpcReqWifiDeauthSta", - "RpcReqWifiDeauthSta", - "", - sizeof(RpcReqWifiDeauthSta), - 1, - rpc__req__wifi_deauth_sta__field_descriptors, - rpc__req__wifi_deauth_sta__field_indices_by_name, - 1, rpc__req__wifi_deauth_sta__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_deauth_sta__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_deauth_sta__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiDeauthSta, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "aid", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiDeauthSta, aid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_deauth_sta__field_indices_by_name[] = { - 1, /* field[1] = aid */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_deauth_sta__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_deauth_sta__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiDeauthSta", - "RpcRespWifiDeauthSta", - "RpcRespWifiDeauthSta", - "", - sizeof(RpcRespWifiDeauthSta), - 2, - rpc__resp__wifi_deauth_sta__field_descriptors, - rpc__resp__wifi_deauth_sta__field_indices_by_name, - 1, rpc__resp__wifi_deauth_sta__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_deauth_sta__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_sta_get_ap_info__field_descriptors NULL -#define rpc__req__wifi_sta_get_ap_info__field_indices_by_name NULL -#define rpc__req__wifi_sta_get_ap_info__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_ap_info__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiStaGetApInfo", - "RpcReqWifiStaGetApInfo", - "RpcReqWifiStaGetApInfo", - "", - sizeof(RpcReqWifiStaGetApInfo), - 0, - rpc__req__wifi_sta_get_ap_info__field_descriptors, - rpc__req__wifi_sta_get_ap_info__field_indices_by_name, - 0, rpc__req__wifi_sta_get_ap_info__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_sta_get_ap_info__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_sta_get_ap_info__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiStaGetApInfo, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ap_record", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiStaGetApInfo, ap_record), - &wifi_ap_record__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_sta_get_ap_info__field_indices_by_name[] = { - 1, /* field[1] = ap_record */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_sta_get_ap_info__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_ap_info__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiStaGetApInfo", - "RpcRespWifiStaGetApInfo", - "RpcRespWifiStaGetApInfo", - "", - sizeof(RpcRespWifiStaGetApInfo), - 2, - rpc__resp__wifi_sta_get_ap_info__field_descriptors, - rpc__resp__wifi_sta_get_ap_info__field_indices_by_name, - 1, rpc__resp__wifi_sta_get_ap_info__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_sta_get_ap_info__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_set_protocol__field_descriptors[2] = -{ - { - "ifx", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetProtocol, ifx), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "protocol_bitmap", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetProtocol, protocol_bitmap), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_set_protocol__field_indices_by_name[] = { - 0, /* field[0] = ifx */ - 1, /* field[1] = protocol_bitmap */ -}; -static const ProtobufCIntRange rpc__req__wifi_set_protocol__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_set_protocol__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiSetProtocol", - "RpcReqWifiSetProtocol", - "RpcReqWifiSetProtocol", - "", - sizeof(RpcReqWifiSetProtocol), - 2, - rpc__req__wifi_set_protocol__field_descriptors, - rpc__req__wifi_set_protocol__field_indices_by_name, - 1, rpc__req__wifi_set_protocol__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_set_protocol__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_set_protocol__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiSetProtocol, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_set_protocol__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_set_protocol__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_set_protocol__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiSetProtocol", - "RpcRespWifiSetProtocol", - "RpcRespWifiSetProtocol", - "", - sizeof(RpcRespWifiSetProtocol), - 1, - rpc__resp__wifi_set_protocol__field_descriptors, - rpc__resp__wifi_set_protocol__field_indices_by_name, - 1, rpc__resp__wifi_set_protocol__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_set_protocol__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_get_protocol__field_descriptors[1] = -{ - { - "ifx", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiGetProtocol, ifx), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_get_protocol__field_indices_by_name[] = { - 0, /* field[0] = ifx */ -}; -static const ProtobufCIntRange rpc__req__wifi_get_protocol__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_get_protocol__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiGetProtocol", - "RpcReqWifiGetProtocol", - "RpcReqWifiGetProtocol", - "", - sizeof(RpcReqWifiGetProtocol), - 1, - rpc__req__wifi_get_protocol__field_descriptors, - rpc__req__wifi_get_protocol__field_indices_by_name, - 1, rpc__req__wifi_get_protocol__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_get_protocol__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_get_protocol__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetProtocol, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "protocol_bitmap", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetProtocol, protocol_bitmap), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_get_protocol__field_indices_by_name[] = { - 1, /* field[1] = protocol_bitmap */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_get_protocol__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_get_protocol__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiGetProtocol", - "RpcRespWifiGetProtocol", - "RpcRespWifiGetProtocol", - "", - sizeof(RpcRespWifiGetProtocol), - 2, - rpc__resp__wifi_get_protocol__field_descriptors, - rpc__resp__wifi_get_protocol__field_indices_by_name, - 1, rpc__resp__wifi_get_protocol__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_get_protocol__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_set_bandwidth__field_descriptors[2] = -{ - { - "ifx", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetBandwidth, ifx), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "bw", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetBandwidth, bw), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_set_bandwidth__field_indices_by_name[] = { - 1, /* field[1] = bw */ - 0, /* field[0] = ifx */ -}; -static const ProtobufCIntRange rpc__req__wifi_set_bandwidth__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_set_bandwidth__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiSetBandwidth", - "RpcReqWifiSetBandwidth", - "RpcReqWifiSetBandwidth", - "", - sizeof(RpcReqWifiSetBandwidth), - 2, - rpc__req__wifi_set_bandwidth__field_descriptors, - rpc__req__wifi_set_bandwidth__field_indices_by_name, - 1, rpc__req__wifi_set_bandwidth__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_set_bandwidth__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_set_bandwidth__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiSetBandwidth, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_set_bandwidth__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_set_bandwidth__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_set_bandwidth__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiSetBandwidth", - "RpcRespWifiSetBandwidth", - "RpcRespWifiSetBandwidth", - "", - sizeof(RpcRespWifiSetBandwidth), - 1, - rpc__resp__wifi_set_bandwidth__field_descriptors, - rpc__resp__wifi_set_bandwidth__field_indices_by_name, - 1, rpc__resp__wifi_set_bandwidth__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_set_bandwidth__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_get_bandwidth__field_descriptors[1] = -{ - { - "ifx", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiGetBandwidth, ifx), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_get_bandwidth__field_indices_by_name[] = { - 0, /* field[0] = ifx */ -}; -static const ProtobufCIntRange rpc__req__wifi_get_bandwidth__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_get_bandwidth__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiGetBandwidth", - "RpcReqWifiGetBandwidth", - "RpcReqWifiGetBandwidth", - "", - sizeof(RpcReqWifiGetBandwidth), - 1, - rpc__req__wifi_get_bandwidth__field_descriptors, - rpc__req__wifi_get_bandwidth__field_indices_by_name, - 1, rpc__req__wifi_get_bandwidth__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_get_bandwidth__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_get_bandwidth__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetBandwidth, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "bw", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetBandwidth, bw), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_get_bandwidth__field_indices_by_name[] = { - 1, /* field[1] = bw */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_get_bandwidth__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_get_bandwidth__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiGetBandwidth", - "RpcRespWifiGetBandwidth", - "RpcRespWifiGetBandwidth", - "", - sizeof(RpcRespWifiGetBandwidth), - 2, - rpc__resp__wifi_get_bandwidth__field_descriptors, - rpc__resp__wifi_get_bandwidth__field_indices_by_name, - 1, rpc__resp__wifi_get_bandwidth__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_get_bandwidth__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_set_channel__field_descriptors[2] = -{ - { - "primary", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetChannel, primary), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "second", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetChannel, second), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_set_channel__field_indices_by_name[] = { - 0, /* field[0] = primary */ - 1, /* field[1] = second */ -}; -static const ProtobufCIntRange rpc__req__wifi_set_channel__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_set_channel__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiSetChannel", - "RpcReqWifiSetChannel", - "RpcReqWifiSetChannel", - "", - sizeof(RpcReqWifiSetChannel), - 2, - rpc__req__wifi_set_channel__field_descriptors, - rpc__req__wifi_set_channel__field_indices_by_name, - 1, rpc__req__wifi_set_channel__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_set_channel__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_set_channel__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiSetChannel, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_set_channel__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_set_channel__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_set_channel__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiSetChannel", - "RpcRespWifiSetChannel", - "RpcRespWifiSetChannel", - "", - sizeof(RpcRespWifiSetChannel), - 1, - rpc__resp__wifi_set_channel__field_descriptors, - rpc__resp__wifi_set_channel__field_indices_by_name, - 1, rpc__resp__wifi_set_channel__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_set_channel__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_get_channel__field_descriptors NULL -#define rpc__req__wifi_get_channel__field_indices_by_name NULL -#define rpc__req__wifi_get_channel__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_get_channel__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiGetChannel", - "RpcReqWifiGetChannel", - "RpcReqWifiGetChannel", - "", - sizeof(RpcReqWifiGetChannel), - 0, - rpc__req__wifi_get_channel__field_descriptors, - rpc__req__wifi_get_channel__field_indices_by_name, - 0, rpc__req__wifi_get_channel__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_get_channel__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_get_channel__field_descriptors[3] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetChannel, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "primary", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetChannel, primary), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "second", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetChannel, second), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_get_channel__field_indices_by_name[] = { - 1, /* field[1] = primary */ - 0, /* field[0] = resp */ - 2, /* field[2] = second */ -}; -static const ProtobufCIntRange rpc__resp__wifi_get_channel__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 3 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_get_channel__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiGetChannel", - "RpcRespWifiGetChannel", - "RpcRespWifiGetChannel", - "", - sizeof(RpcRespWifiGetChannel), - 3, - rpc__resp__wifi_get_channel__field_descriptors, - rpc__resp__wifi_get_channel__field_indices_by_name, - 1, rpc__resp__wifi_get_channel__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_get_channel__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_set_storage__field_descriptors[1] = -{ - { - "storage", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetStorage, storage), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_set_storage__field_indices_by_name[] = { - 0, /* field[0] = storage */ -}; -static const ProtobufCIntRange rpc__req__wifi_set_storage__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_set_storage__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiSetStorage", - "RpcReqWifiSetStorage", - "RpcReqWifiSetStorage", - "", - sizeof(RpcReqWifiSetStorage), - 1, - rpc__req__wifi_set_storage__field_descriptors, - rpc__req__wifi_set_storage__field_indices_by_name, - 1, rpc__req__wifi_set_storage__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_set_storage__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_set_storage__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiSetStorage, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_set_storage__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_set_storage__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_set_storage__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiSetStorage", - "RpcRespWifiSetStorage", - "RpcRespWifiSetStorage", - "", - sizeof(RpcRespWifiSetStorage), - 1, - rpc__resp__wifi_set_storage__field_descriptors, - rpc__resp__wifi_set_storage__field_indices_by_name, - 1, rpc__resp__wifi_set_storage__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_set_storage__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_set_country_code__field_descriptors[2] = -{ - { - "country", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetCountryCode, country), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ieee80211d_enabled", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetCountryCode, ieee80211d_enabled), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_set_country_code__field_indices_by_name[] = { - 0, /* field[0] = country */ - 1, /* field[1] = ieee80211d_enabled */ -}; -static const ProtobufCIntRange rpc__req__wifi_set_country_code__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_set_country_code__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiSetCountryCode", - "RpcReqWifiSetCountryCode", - "RpcReqWifiSetCountryCode", - "", - sizeof(RpcReqWifiSetCountryCode), - 2, - rpc__req__wifi_set_country_code__field_descriptors, - rpc__req__wifi_set_country_code__field_indices_by_name, - 1, rpc__req__wifi_set_country_code__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_set_country_code__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_set_country_code__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiSetCountryCode, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_set_country_code__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_set_country_code__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_set_country_code__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiSetCountryCode", - "RpcRespWifiSetCountryCode", - "RpcRespWifiSetCountryCode", - "", - sizeof(RpcRespWifiSetCountryCode), - 1, - rpc__resp__wifi_set_country_code__field_descriptors, - rpc__resp__wifi_set_country_code__field_indices_by_name, - 1, rpc__resp__wifi_set_country_code__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_set_country_code__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_get_country_code__field_descriptors NULL -#define rpc__req__wifi_get_country_code__field_indices_by_name NULL -#define rpc__req__wifi_get_country_code__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_get_country_code__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiGetCountryCode", - "RpcReqWifiGetCountryCode", - "RpcReqWifiGetCountryCode", - "", - sizeof(RpcReqWifiGetCountryCode), - 0, - rpc__req__wifi_get_country_code__field_descriptors, - rpc__req__wifi_get_country_code__field_indices_by_name, - 0, rpc__req__wifi_get_country_code__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_get_country_code__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_get_country_code__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetCountryCode, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "country", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetCountryCode, country), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_get_country_code__field_indices_by_name[] = { - 1, /* field[1] = country */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_get_country_code__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_get_country_code__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiGetCountryCode", - "RpcRespWifiGetCountryCode", - "RpcRespWifiGetCountryCode", - "", - sizeof(RpcRespWifiGetCountryCode), - 2, - rpc__resp__wifi_get_country_code__field_descriptors, - rpc__resp__wifi_get_country_code__field_indices_by_name, - 1, rpc__resp__wifi_get_country_code__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_get_country_code__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_set_country__field_descriptors[1] = -{ - { - "country", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetCountry, country), - &wifi_country__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_set_country__field_indices_by_name[] = { - 0, /* field[0] = country */ -}; -static const ProtobufCIntRange rpc__req__wifi_set_country__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_set_country__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiSetCountry", - "RpcReqWifiSetCountry", - "RpcReqWifiSetCountry", - "", - sizeof(RpcReqWifiSetCountry), - 1, - rpc__req__wifi_set_country__field_descriptors, - rpc__req__wifi_set_country__field_indices_by_name, - 1, rpc__req__wifi_set_country__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_set_country__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_set_country__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiSetCountry, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_set_country__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_set_country__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_set_country__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiSetCountry", - "RpcRespWifiSetCountry", - "RpcRespWifiSetCountry", - "", - sizeof(RpcRespWifiSetCountry), - 1, - rpc__resp__wifi_set_country__field_descriptors, - rpc__resp__wifi_set_country__field_indices_by_name, - 1, rpc__resp__wifi_set_country__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_set_country__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_get_country__field_descriptors NULL -#define rpc__req__wifi_get_country__field_indices_by_name NULL -#define rpc__req__wifi_get_country__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_get_country__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiGetCountry", - "RpcReqWifiGetCountry", - "RpcReqWifiGetCountry", - "", - sizeof(RpcReqWifiGetCountry), - 0, - rpc__req__wifi_get_country__field_descriptors, - rpc__req__wifi_get_country__field_indices_by_name, - 0, rpc__req__wifi_get_country__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_get_country__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_get_country__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetCountry, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "country", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetCountry, country), - &wifi_country__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_get_country__field_indices_by_name[] = { - 1, /* field[1] = country */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_get_country__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_get_country__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiGetCountry", - "RpcRespWifiGetCountry", - "RpcRespWifiGetCountry", - "", - sizeof(RpcRespWifiGetCountry), - 2, - rpc__resp__wifi_get_country__field_descriptors, - rpc__resp__wifi_get_country__field_indices_by_name, - 1, rpc__resp__wifi_get_country__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_get_country__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_ap_get_sta_list__field_descriptors NULL -#define rpc__req__wifi_ap_get_sta_list__field_indices_by_name NULL -#define rpc__req__wifi_ap_get_sta_list__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_ap_get_sta_list__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiApGetStaList", - "RpcReqWifiApGetStaList", - "RpcReqWifiApGetStaList", - "", - sizeof(RpcReqWifiApGetStaList), - 0, - rpc__req__wifi_ap_get_sta_list__field_descriptors, - rpc__req__wifi_ap_get_sta_list__field_indices_by_name, - 0, rpc__req__wifi_ap_get_sta_list__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_ap_get_sta_list__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_ap_get_sta_list__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiApGetStaList, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "sta_list", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiApGetStaList, sta_list), - &wifi_sta_list__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_ap_get_sta_list__field_indices_by_name[] = { - 0, /* field[0] = resp */ - 1, /* field[1] = sta_list */ -}; -static const ProtobufCIntRange rpc__resp__wifi_ap_get_sta_list__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_ap_get_sta_list__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiApGetStaList", - "RpcRespWifiApGetStaList", - "RpcRespWifiApGetStaList", - "", - sizeof(RpcRespWifiApGetStaList), - 2, - rpc__resp__wifi_ap_get_sta_list__field_descriptors, - rpc__resp__wifi_ap_get_sta_list__field_indices_by_name, - 1, rpc__resp__wifi_ap_get_sta_list__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_ap_get_sta_list__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_ap_get_sta_aid__field_descriptors[1] = -{ - { - "mac", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiApGetStaAid, mac), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_ap_get_sta_aid__field_indices_by_name[] = { - 0, /* field[0] = mac */ -}; -static const ProtobufCIntRange rpc__req__wifi_ap_get_sta_aid__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_ap_get_sta_aid__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiApGetStaAid", - "RpcReqWifiApGetStaAid", - "RpcReqWifiApGetStaAid", - "", - sizeof(RpcReqWifiApGetStaAid), - 1, - rpc__req__wifi_ap_get_sta_aid__field_descriptors, - rpc__req__wifi_ap_get_sta_aid__field_indices_by_name, - 1, rpc__req__wifi_ap_get_sta_aid__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_ap_get_sta_aid__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_sta_get_negotiated_phymode__field_descriptors NULL -#define rpc__req__wifi_sta_get_negotiated_phymode__field_indices_by_name NULL -#define rpc__req__wifi_sta_get_negotiated_phymode__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_negotiated_phymode__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiStaGetNegotiatedPhymode", - "RpcReqWifiStaGetNegotiatedPhymode", - "RpcReqWifiStaGetNegotiatedPhymode", - "", - sizeof(RpcReqWifiStaGetNegotiatedPhymode), - 0, - rpc__req__wifi_sta_get_negotiated_phymode__field_descriptors, - rpc__req__wifi_sta_get_negotiated_phymode__field_indices_by_name, - 0, rpc__req__wifi_sta_get_negotiated_phymode__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_sta_get_negotiated_phymode__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_sta_get_negotiated_phymode__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiStaGetNegotiatedPhymode, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "phymode", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiStaGetNegotiatedPhymode, phymode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_sta_get_negotiated_phymode__field_indices_by_name[] = { - 1, /* field[1] = phymode */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_sta_get_negotiated_phymode__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_negotiated_phymode__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiStaGetNegotiatedPhymode", - "RpcRespWifiStaGetNegotiatedPhymode", - "RpcRespWifiStaGetNegotiatedPhymode", - "", - sizeof(RpcRespWifiStaGetNegotiatedPhymode), - 2, - rpc__resp__wifi_sta_get_negotiated_phymode__field_descriptors, - rpc__resp__wifi_sta_get_negotiated_phymode__field_indices_by_name, - 1, rpc__resp__wifi_sta_get_negotiated_phymode__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_sta_get_negotiated_phymode__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_ap_get_sta_aid__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiApGetStaAid, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "aid", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiApGetStaAid, aid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_ap_get_sta_aid__field_indices_by_name[] = { - 1, /* field[1] = aid */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_ap_get_sta_aid__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_ap_get_sta_aid__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiApGetStaAid", - "RpcRespWifiApGetStaAid", - "RpcRespWifiApGetStaAid", - "", - sizeof(RpcRespWifiApGetStaAid), - 2, - rpc__resp__wifi_ap_get_sta_aid__field_descriptors, - rpc__resp__wifi_ap_get_sta_aid__field_indices_by_name, - 1, rpc__resp__wifi_ap_get_sta_aid__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_ap_get_sta_aid__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_sta_get_rssi__field_descriptors NULL -#define rpc__req__wifi_sta_get_rssi__field_indices_by_name NULL -#define rpc__req__wifi_sta_get_rssi__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_rssi__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiStaGetRssi", - "RpcReqWifiStaGetRssi", - "RpcReqWifiStaGetRssi", - "", - sizeof(RpcReqWifiStaGetRssi), - 0, - rpc__req__wifi_sta_get_rssi__field_descriptors, - rpc__req__wifi_sta_get_rssi__field_indices_by_name, - 0, rpc__req__wifi_sta_get_rssi__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_sta_get_rssi__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_sta_get_rssi__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiStaGetRssi, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "rssi", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiStaGetRssi, rssi), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_sta_get_rssi__field_indices_by_name[] = { - 0, /* field[0] = resp */ - 1, /* field[1] = rssi */ -}; -static const ProtobufCIntRange rpc__resp__wifi_sta_get_rssi__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_rssi__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiStaGetRssi", - "RpcRespWifiStaGetRssi", - "RpcRespWifiStaGetRssi", - "", - sizeof(RpcRespWifiStaGetRssi), - 2, - rpc__resp__wifi_sta_get_rssi__field_descriptors, - rpc__resp__wifi_sta_get_rssi__field_indices_by_name, - 1, rpc__resp__wifi_sta_get_rssi__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_sta_get_rssi__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_sta_get_aid__field_descriptors NULL -#define rpc__req__wifi_sta_get_aid__field_indices_by_name NULL -#define rpc__req__wifi_sta_get_aid__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_aid__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiStaGetAid", - "RpcReqWifiStaGetAid", - "RpcReqWifiStaGetAid", - "", - sizeof(RpcReqWifiStaGetAid), - 0, - rpc__req__wifi_sta_get_aid__field_descriptors, - rpc__req__wifi_sta_get_aid__field_indices_by_name, - 0, rpc__req__wifi_sta_get_aid__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_sta_get_aid__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_sta_get_aid__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiStaGetAid, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "aid", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiStaGetAid, aid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_sta_get_aid__field_indices_by_name[] = { - 1, /* field[1] = aid */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_sta_get_aid__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_aid__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiStaGetAid", - "RpcRespWifiStaGetAid", - "RpcRespWifiStaGetAid", - "", - sizeof(RpcRespWifiStaGetAid), - 2, - rpc__resp__wifi_sta_get_aid__field_descriptors, - rpc__resp__wifi_sta_get_aid__field_indices_by_name, - 1, rpc__resp__wifi_sta_get_aid__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_sta_get_aid__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_set_protocols__field_descriptors[2] = -{ - { - "ifx", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetProtocols, ifx), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "protocols", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetProtocols, protocols), - &wifi_protocols__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_set_protocols__field_indices_by_name[] = { - 0, /* field[0] = ifx */ - 1, /* field[1] = protocols */ -}; -static const ProtobufCIntRange rpc__req__wifi_set_protocols__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_set_protocols__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiSetProtocols", - "RpcReqWifiSetProtocols", - "RpcReqWifiSetProtocols", - "", - sizeof(RpcReqWifiSetProtocols), - 2, - rpc__req__wifi_set_protocols__field_descriptors, - rpc__req__wifi_set_protocols__field_indices_by_name, - 1, rpc__req__wifi_set_protocols__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_set_protocols__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_set_protocols__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiSetProtocols, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ifx", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiSetProtocols, ifx), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_set_protocols__field_indices_by_name[] = { - 1, /* field[1] = ifx */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_set_protocols__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_set_protocols__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiSetProtocols", - "RpcRespWifiSetProtocols", - "RpcRespWifiSetProtocols", - "", - sizeof(RpcRespWifiSetProtocols), - 2, - rpc__resp__wifi_set_protocols__field_descriptors, - rpc__resp__wifi_set_protocols__field_indices_by_name, - 1, rpc__resp__wifi_set_protocols__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_set_protocols__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_get_protocols__field_descriptors[1] = -{ - { - "ifx", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiGetProtocols, ifx), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_get_protocols__field_indices_by_name[] = { - 0, /* field[0] = ifx */ -}; -static const ProtobufCIntRange rpc__req__wifi_get_protocols__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_get_protocols__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiGetProtocols", - "RpcReqWifiGetProtocols", - "RpcReqWifiGetProtocols", - "", - sizeof(RpcReqWifiGetProtocols), - 1, - rpc__req__wifi_get_protocols__field_descriptors, - rpc__req__wifi_get_protocols__field_indices_by_name, - 1, rpc__req__wifi_get_protocols__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_get_protocols__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_get_protocols__field_descriptors[3] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetProtocols, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ifx", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetProtocols, ifx), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "protocols", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetProtocols, protocols), - &wifi_protocols__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_get_protocols__field_indices_by_name[] = { - 1, /* field[1] = ifx */ - 2, /* field[2] = protocols */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_get_protocols__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 3 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_get_protocols__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiGetProtocols", - "RpcRespWifiGetProtocols", - "RpcRespWifiGetProtocols", - "", - sizeof(RpcRespWifiGetProtocols), - 3, - rpc__resp__wifi_get_protocols__field_descriptors, - rpc__resp__wifi_get_protocols__field_indices_by_name, - 1, rpc__resp__wifi_get_protocols__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_get_protocols__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_set_bandwidths__field_descriptors[2] = -{ - { - "ifx", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetBandwidths, ifx), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "bandwidths", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetBandwidths, bandwidths), - &wifi_bandwidths__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_set_bandwidths__field_indices_by_name[] = { - 1, /* field[1] = bandwidths */ - 0, /* field[0] = ifx */ -}; -static const ProtobufCIntRange rpc__req__wifi_set_bandwidths__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_set_bandwidths__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiSetBandwidths", - "RpcReqWifiSetBandwidths", - "RpcReqWifiSetBandwidths", - "", - sizeof(RpcReqWifiSetBandwidths), - 2, - rpc__req__wifi_set_bandwidths__field_descriptors, - rpc__req__wifi_set_bandwidths__field_indices_by_name, - 1, rpc__req__wifi_set_bandwidths__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_set_bandwidths__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_set_bandwidths__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiSetBandwidths, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ifx", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiSetBandwidths, ifx), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_set_bandwidths__field_indices_by_name[] = { - 1, /* field[1] = ifx */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_set_bandwidths__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_set_bandwidths__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiSetBandwidths", - "RpcRespWifiSetBandwidths", - "RpcRespWifiSetBandwidths", - "", - sizeof(RpcRespWifiSetBandwidths), - 2, - rpc__resp__wifi_set_bandwidths__field_descriptors, - rpc__resp__wifi_set_bandwidths__field_indices_by_name, - 1, rpc__resp__wifi_set_bandwidths__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_set_bandwidths__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_get_bandwidths__field_descriptors[1] = -{ - { - "ifx", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiGetBandwidths, ifx), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_get_bandwidths__field_indices_by_name[] = { - 0, /* field[0] = ifx */ -}; -static const ProtobufCIntRange rpc__req__wifi_get_bandwidths__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_get_bandwidths__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiGetBandwidths", - "RpcReqWifiGetBandwidths", - "RpcReqWifiGetBandwidths", - "", - sizeof(RpcReqWifiGetBandwidths), - 1, - rpc__req__wifi_get_bandwidths__field_descriptors, - rpc__req__wifi_get_bandwidths__field_indices_by_name, - 1, rpc__req__wifi_get_bandwidths__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_get_bandwidths__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_get_bandwidths__field_descriptors[3] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetBandwidths, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "ifx", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetBandwidths, ifx), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "bandwidths", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetBandwidths, bandwidths), - &wifi_bandwidths__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_get_bandwidths__field_indices_by_name[] = { - 2, /* field[2] = bandwidths */ - 1, /* field[1] = ifx */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_get_bandwidths__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 3 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_get_bandwidths__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiGetBandwidths", - "RpcRespWifiGetBandwidths", - "RpcRespWifiGetBandwidths", - "", - sizeof(RpcRespWifiGetBandwidths), - 3, - rpc__resp__wifi_get_bandwidths__field_descriptors, - rpc__resp__wifi_get_bandwidths__field_indices_by_name, - 1, rpc__resp__wifi_get_bandwidths__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_get_bandwidths__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_set_band__field_descriptors[1] = -{ - { - "band", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetBand, band), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_set_band__field_indices_by_name[] = { - 0, /* field[0] = band */ -}; -static const ProtobufCIntRange rpc__req__wifi_set_band__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_set_band__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiSetBand", - "RpcReqWifiSetBand", - "RpcReqWifiSetBand", - "", - sizeof(RpcReqWifiSetBand), - 1, - rpc__req__wifi_set_band__field_descriptors, - rpc__req__wifi_set_band__field_indices_by_name, - 1, rpc__req__wifi_set_band__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_set_band__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_set_band__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiSetBand, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_set_band__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_set_band__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_set_band__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiSetBand", - "RpcRespWifiSetBand", - "RpcRespWifiSetBand", - "", - sizeof(RpcRespWifiSetBand), - 1, - rpc__resp__wifi_set_band__field_descriptors, - rpc__resp__wifi_set_band__field_indices_by_name, - 1, rpc__resp__wifi_set_band__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_set_band__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_get_band__field_descriptors NULL -#define rpc__req__wifi_get_band__field_indices_by_name NULL -#define rpc__req__wifi_get_band__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_get_band__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiGetBand", - "RpcReqWifiGetBand", - "RpcReqWifiGetBand", - "", - sizeof(RpcReqWifiGetBand), - 0, - rpc__req__wifi_get_band__field_descriptors, - rpc__req__wifi_get_band__field_indices_by_name, - 0, rpc__req__wifi_get_band__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_get_band__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_get_band__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetBand, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "band", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetBand, band), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_get_band__field_indices_by_name[] = { - 1, /* field[1] = band */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_get_band__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_get_band__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiGetBand", - "RpcRespWifiGetBand", - "RpcRespWifiGetBand", - "", - sizeof(RpcRespWifiGetBand), - 2, - rpc__resp__wifi_get_band__field_descriptors, - rpc__resp__wifi_get_band__field_indices_by_name, - 1, rpc__resp__wifi_get_band__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_get_band__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__req__wifi_set_band_mode__field_descriptors[1] = -{ - { - "bandmode", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(RpcReqWifiSetBandMode, bandmode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__req__wifi_set_band_mode__field_indices_by_name[] = { - 0, /* field[0] = bandmode */ -}; -static const ProtobufCIntRange rpc__req__wifi_set_band_mode__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__req__wifi_set_band_mode__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiSetBandMode", - "RpcReqWifiSetBandMode", - "RpcReqWifiSetBandMode", - "", - sizeof(RpcReqWifiSetBandMode), - 1, - rpc__req__wifi_set_band_mode__field_descriptors, - rpc__req__wifi_set_band_mode__field_indices_by_name, - 1, rpc__req__wifi_set_band_mode__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_set_band_mode__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_set_band_mode__field_descriptors[1] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiSetBandMode, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_set_band_mode__field_indices_by_name[] = { - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_set_band_mode__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_set_band_mode__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiSetBandMode", - "RpcRespWifiSetBandMode", - "RpcRespWifiSetBandMode", - "", - sizeof(RpcRespWifiSetBandMode), - 1, - rpc__resp__wifi_set_band_mode__field_descriptors, - rpc__resp__wifi_set_band_mode__field_indices_by_name, - 1, rpc__resp__wifi_set_band_mode__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_set_band_mode__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__wifi_get_band_mode__field_descriptors NULL -#define rpc__req__wifi_get_band_mode__field_indices_by_name NULL -#define rpc__req__wifi_get_band_mode__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__wifi_get_band_mode__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_WifiGetBandMode", - "RpcReqWifiGetBandMode", - "RpcReqWifiGetBandMode", - "", - sizeof(RpcReqWifiGetBandMode), - 0, - rpc__req__wifi_get_band_mode__field_descriptors, - rpc__req__wifi_get_band_mode__field_indices_by_name, - 0, rpc__req__wifi_get_band_mode__number_ranges, - (ProtobufCMessageInit) rpc__req__wifi_get_band_mode__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__wifi_get_band_mode__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetBandMode, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "bandmode", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(RpcRespWifiGetBandMode, bandmode), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__wifi_get_band_mode__field_indices_by_name[] = { - 1, /* field[1] = bandmode */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__wifi_get_band_mode__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__resp__wifi_get_band_mode__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_WifiGetBandMode", - "RpcRespWifiGetBandMode", - "RpcRespWifiGetBandMode", - "", - sizeof(RpcRespWifiGetBandMode), - 2, - rpc__resp__wifi_get_band_mode__field_descriptors, - rpc__resp__wifi_get_band_mode__field_indices_by_name, - 1, rpc__resp__wifi_get_band_mode__number_ranges, - (ProtobufCMessageInit) rpc__resp__wifi_get_band_mode__init, - NULL,NULL,NULL /* reserved[123] */ -}; -#define rpc__req__get_coprocessor_fw_version__field_descriptors NULL -#define rpc__req__get_coprocessor_fw_version__field_indices_by_name NULL -#define rpc__req__get_coprocessor_fw_version__number_ranges NULL -const ProtobufCMessageDescriptor rpc__req__get_coprocessor_fw_version__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Req_GetCoprocessorFwVersion", - "RpcReqGetCoprocessorFwVersion", - "RpcReqGetCoprocessorFwVersion", - "", - sizeof(RpcReqGetCoprocessorFwVersion), - 0, - rpc__req__get_coprocessor_fw_version__field_descriptors, - rpc__req__get_coprocessor_fw_version__field_indices_by_name, - 0, rpc__req__get_coprocessor_fw_version__number_ranges, - (ProtobufCMessageInit) rpc__req__get_coprocessor_fw_version__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__resp__get_coprocessor_fw_version__field_descriptors[4] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcRespGetCoprocessorFwVersion, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "major1", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(RpcRespGetCoprocessorFwVersion, major1), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "minor1", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(RpcRespGetCoprocessorFwVersion, minor1), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "patch1", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(RpcRespGetCoprocessorFwVersion, patch1), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__resp__get_coprocessor_fw_version__field_indices_by_name[] = { - 1, /* field[1] = major1 */ - 2, /* field[2] = minor1 */ - 3, /* field[3] = patch1 */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__resp__get_coprocessor_fw_version__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 4 } -}; -const ProtobufCMessageDescriptor rpc__resp__get_coprocessor_fw_version__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Resp_GetCoprocessorFwVersion", - "RpcRespGetCoprocessorFwVersion", - "RpcRespGetCoprocessorFwVersion", - "", - sizeof(RpcRespGetCoprocessorFwVersion), - 4, - rpc__resp__get_coprocessor_fw_version__field_descriptors, - rpc__resp__get_coprocessor_fw_version__field_indices_by_name, - 1, rpc__resp__get_coprocessor_fw_version__number_ranges, - (ProtobufCMessageInit) rpc__resp__get_coprocessor_fw_version__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__event__wifi_event_no_args__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcEventWifiEventNoArgs, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "event_id", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcEventWifiEventNoArgs, event_id), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__event__wifi_event_no_args__field_indices_by_name[] = { - 1, /* field[1] = event_id */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__event__wifi_event_no_args__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__event__wifi_event_no_args__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Event_WifiEventNoArgs", - "RpcEventWifiEventNoArgs", - "RpcEventWifiEventNoArgs", - "", - sizeof(RpcEventWifiEventNoArgs), - 2, - rpc__event__wifi_event_no_args__field_descriptors, - rpc__event__wifi_event_no_args__field_indices_by_name, - 1, rpc__event__wifi_event_no_args__number_ranges, - (ProtobufCMessageInit) rpc__event__wifi_event_no_args__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__event__espinit__field_descriptors[1] = -{ - { - "init_data", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(RpcEventESPInit, init_data), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__event__espinit__field_indices_by_name[] = { - 0, /* field[0] = init_data */ -}; -static const ProtobufCIntRange rpc__event__espinit__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__event__espinit__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Event_ESPInit", - "RpcEventESPInit", - "RpcEventESPInit", - "", - sizeof(RpcEventESPInit), - 1, - rpc__event__espinit__field_descriptors, - rpc__event__espinit__field_indices_by_name, - 1, rpc__event__espinit__number_ranges, - (ProtobufCMessageInit) rpc__event__espinit__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__event__heartbeat__field_descriptors[1] = -{ - { - "hb_num", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcEventHeartbeat, hb_num), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__event__heartbeat__field_indices_by_name[] = { - 0, /* field[0] = hb_num */ -}; -static const ProtobufCIntRange rpc__event__heartbeat__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 1 } -}; -const ProtobufCMessageDescriptor rpc__event__heartbeat__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Event_Heartbeat", - "RpcEventHeartbeat", - "RpcEventHeartbeat", - "", - sizeof(RpcEventHeartbeat), - 1, - rpc__event__heartbeat__field_descriptors, - rpc__event__heartbeat__field_indices_by_name, - 1, rpc__event__heartbeat__number_ranges, - (ProtobufCMessageInit) rpc__event__heartbeat__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__event__ap__sta_disconnected__field_descriptors[5] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcEventAPStaDisconnected, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "mac", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(RpcEventAPStaDisconnected, mac), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "aid", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(RpcEventAPStaDisconnected, aid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "is_mesh_child", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(RpcEventAPStaDisconnected, is_mesh_child), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "reason", - 5, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(RpcEventAPStaDisconnected, reason), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__event__ap__sta_disconnected__field_indices_by_name[] = { - 2, /* field[2] = aid */ - 3, /* field[3] = is_mesh_child */ - 1, /* field[1] = mac */ - 4, /* field[4] = reason */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__event__ap__sta_disconnected__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 5 } -}; -const ProtobufCMessageDescriptor rpc__event__ap__sta_disconnected__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Event_AP_StaDisconnected", - "RpcEventAPStaDisconnected", - "RpcEventAPStaDisconnected", - "", - sizeof(RpcEventAPStaDisconnected), - 5, - rpc__event__ap__sta_disconnected__field_descriptors, - rpc__event__ap__sta_disconnected__field_indices_by_name, - 1, rpc__event__ap__sta_disconnected__number_ranges, - (ProtobufCMessageInit) rpc__event__ap__sta_disconnected__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__event__ap__sta_connected__field_descriptors[4] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcEventAPStaConnected, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "mac", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BYTES, - 0, /* quantifier_offset */ - offsetof(RpcEventAPStaConnected, mac), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "aid", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(RpcEventAPStaConnected, aid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "is_mesh_child", - 4, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_BOOL, - 0, /* quantifier_offset */ - offsetof(RpcEventAPStaConnected, is_mesh_child), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__event__ap__sta_connected__field_indices_by_name[] = { - 2, /* field[2] = aid */ - 3, /* field[3] = is_mesh_child */ - 1, /* field[1] = mac */ - 0, /* field[0] = resp */ -}; -static const ProtobufCIntRange rpc__event__ap__sta_connected__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 4 } -}; -const ProtobufCMessageDescriptor rpc__event__ap__sta_connected__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Event_AP_StaConnected", - "RpcEventAPStaConnected", - "RpcEventAPStaConnected", - "", - sizeof(RpcEventAPStaConnected), - 4, - rpc__event__ap__sta_connected__field_descriptors, - rpc__event__ap__sta_connected__field_indices_by_name, - 1, rpc__event__ap__sta_connected__number_ranges, - (ProtobufCMessageInit) rpc__event__ap__sta_connected__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__event__sta_scan_done__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcEventStaScanDone, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "scan_done", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcEventStaScanDone, scan_done), - &wifi_event_sta_scan_done__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__event__sta_scan_done__field_indices_by_name[] = { - 0, /* field[0] = resp */ - 1, /* field[1] = scan_done */ -}; -static const ProtobufCIntRange rpc__event__sta_scan_done__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__event__sta_scan_done__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Event_StaScanDone", - "RpcEventStaScanDone", - "RpcEventStaScanDone", - "", - sizeof(RpcEventStaScanDone), - 2, - rpc__event__sta_scan_done__field_descriptors, - rpc__event__sta_scan_done__field_indices_by_name, - 1, rpc__event__sta_scan_done__number_ranges, - (ProtobufCMessageInit) rpc__event__sta_scan_done__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__event__sta_connected__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcEventStaConnected, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "sta_connected", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcEventStaConnected, sta_connected), - &wifi_event_sta_connected__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__event__sta_connected__field_indices_by_name[] = { - 0, /* field[0] = resp */ - 1, /* field[1] = sta_connected */ -}; -static const ProtobufCIntRange rpc__event__sta_connected__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__event__sta_connected__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Event_StaConnected", - "RpcEventStaConnected", - "RpcEventStaConnected", - "", - sizeof(RpcEventStaConnected), - 2, - rpc__event__sta_connected__field_descriptors, - rpc__event__sta_connected__field_indices_by_name, - 1, rpc__event__sta_connected__number_ranges, - (ProtobufCMessageInit) rpc__event__sta_connected__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__event__sta_disconnected__field_descriptors[2] = -{ - { - "resp", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_INT32, - 0, /* quantifier_offset */ - offsetof(RpcEventStaDisconnected, resp), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "sta_disconnected", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - 0, /* quantifier_offset */ - offsetof(RpcEventStaDisconnected, sta_disconnected), - &wifi_event_sta_disconnected__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__event__sta_disconnected__field_indices_by_name[] = { - 0, /* field[0] = resp */ - 1, /* field[1] = sta_disconnected */ -}; -static const ProtobufCIntRange rpc__event__sta_disconnected__number_ranges[1 + 1] = -{ - { 1, 0 }, - { 0, 2 } -}; -const ProtobufCMessageDescriptor rpc__event__sta_disconnected__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc_Event_StaDisconnected", - "RpcEventStaDisconnected", - "RpcEventStaDisconnected", - "", - sizeof(RpcEventStaDisconnected), - 2, - rpc__event__sta_disconnected__field_descriptors, - rpc__event__sta_disconnected__field_indices_by_name, - 1, rpc__event__sta_disconnected__number_ranges, - (ProtobufCMessageInit) rpc__event__sta_disconnected__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCFieldDescriptor rpc__field_descriptors[121] = -{ - { - "msg_type", - 1, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_ENUM, - 0, /* quantifier_offset */ - offsetof(Rpc, msg_type), - &rpc_type__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "msg_id", - 2, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_ENUM, - 0, /* quantifier_offset */ - offsetof(Rpc, msg_id), - &rpc_id__descriptor, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "uid", - 3, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_UINT32, - 0, /* quantifier_offset */ - offsetof(Rpc, uid), - NULL, - NULL, - 0, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_get_mac_address", - 257, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_get_mac_address), - &rpc__req__get_mac_address__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_set_mac_address", - 258, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_set_mac_address), - &rpc__req__set_mac_address__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_get_wifi_mode", - 259, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_get_wifi_mode), - &rpc__req__get_mode__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_set_wifi_mode", - 260, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_set_wifi_mode), - &rpc__req__set_mode__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_set_ps", - 270, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_set_ps), - &rpc__req__set_ps__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_get_ps", - 271, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_get_ps), - &rpc__req__get_ps__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_ota_begin", - 272, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_ota_begin), - &rpc__req__otabegin__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_ota_write", - 273, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_ota_write), - &rpc__req__otawrite__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_ota_end", - 274, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_ota_end), - &rpc__req__otaend__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_set_wifi_max_tx_power", - 275, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_set_wifi_max_tx_power), - &rpc__req__wifi_set_max_tx_power__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_get_wifi_max_tx_power", - 276, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_get_wifi_max_tx_power), - &rpc__req__wifi_get_max_tx_power__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_config_heartbeat", - 277, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_config_heartbeat), - &rpc__req__config_heartbeat__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_init", - 278, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_init), - &rpc__req__wifi_init__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_deinit", - 279, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_deinit), - &rpc__req__wifi_deinit__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_start", - 280, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_start), - &rpc__req__wifi_start__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_stop", - 281, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_stop), - &rpc__req__wifi_stop__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_connect", - 282, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_connect), - &rpc__req__wifi_connect__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_disconnect", - 283, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_disconnect), - &rpc__req__wifi_disconnect__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_set_config", - 284, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_set_config), - &rpc__req__wifi_set_config__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_get_config", - 285, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_get_config), - &rpc__req__wifi_get_config__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_scan_start", - 286, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_scan_start), - &rpc__req__wifi_scan_start__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_scan_stop", - 287, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_scan_stop), - &rpc__req__wifi_scan_stop__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_scan_get_ap_num", - 288, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_scan_get_ap_num), - &rpc__req__wifi_scan_get_ap_num__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_scan_get_ap_records", - 289, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_scan_get_ap_records), - &rpc__req__wifi_scan_get_ap_records__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_clear_ap_list", - 290, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_clear_ap_list), - &rpc__req__wifi_clear_ap_list__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_restore", - 291, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_restore), - &rpc__req__wifi_restore__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_clear_fast_connect", - 292, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_clear_fast_connect), - &rpc__req__wifi_clear_fast_connect__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_deauth_sta", - 293, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_deauth_sta), - &rpc__req__wifi_deauth_sta__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_sta_get_ap_info", - 294, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_sta_get_ap_info), - &rpc__req__wifi_sta_get_ap_info__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_set_protocol", - 297, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_set_protocol), - &rpc__req__wifi_set_protocol__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_get_protocol", - 298, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_get_protocol), - &rpc__req__wifi_get_protocol__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_set_bandwidth", - 299, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_set_bandwidth), - &rpc__req__wifi_set_bandwidth__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_get_bandwidth", - 300, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_get_bandwidth), - &rpc__req__wifi_get_bandwidth__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_set_channel", - 301, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_set_channel), - &rpc__req__wifi_set_channel__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_get_channel", - 302, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_get_channel), - &rpc__req__wifi_get_channel__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_set_country", - 303, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_set_country), - &rpc__req__wifi_set_country__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_get_country", - 304, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_get_country), - &rpc__req__wifi_get_country__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_ap_get_sta_list", - 311, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_ap_get_sta_list), - &rpc__req__wifi_ap_get_sta_list__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_ap_get_sta_aid", - 312, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_ap_get_sta_aid), - &rpc__req__wifi_ap_get_sta_aid__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_set_storage", - 313, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_set_storage), - &rpc__req__wifi_set_storage__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_set_country_code", - 334, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_set_country_code), - &rpc__req__wifi_set_country_code__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_get_country_code", - 335, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_get_country_code), - &rpc__req__wifi_get_country_code__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_sta_get_aid", - 338, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_sta_get_aid), - &rpc__req__wifi_sta_get_aid__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_sta_get_negotiated_phymode", - 339, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_sta_get_negotiated_phymode), - &rpc__req__wifi_sta_get_negotiated_phymode__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_sta_get_rssi", - 341, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_sta_get_rssi), - &rpc__req__wifi_sta_get_rssi__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_set_protocols", - 342, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_set_protocols), - &rpc__req__wifi_set_protocols__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_get_protocols", - 343, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_get_protocols), - &rpc__req__wifi_get_protocols__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_set_bandwidths", - 344, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_set_bandwidths), - &rpc__req__wifi_set_bandwidths__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_get_bandwidths", - 345, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_get_bandwidths), - &rpc__req__wifi_get_bandwidths__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_set_band", - 346, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_set_band), - &rpc__req__wifi_set_band__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_get_band", - 347, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_get_band), - &rpc__req__wifi_get_band__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_set_bandmode", - 348, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_set_bandmode), - &rpc__req__wifi_set_band_mode__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_get_bandmode", - 349, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_get_bandmode), - &rpc__req__wifi_get_band_mode__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_get_coprocessor_fwversion", - 350, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_get_coprocessor_fwversion), - &rpc__req__get_coprocessor_fw_version__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "req_wifi_scan_get_ap_record", - 351, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, req_wifi_scan_get_ap_record), - &rpc__req__wifi_scan_get_ap_record__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_get_mac_address", - 513, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_get_mac_address), - &rpc__resp__get_mac_address__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_set_mac_address", - 514, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_set_mac_address), - &rpc__resp__set_mac_address__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_get_wifi_mode", - 515, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_get_wifi_mode), - &rpc__resp__get_mode__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_set_wifi_mode", - 516, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_set_wifi_mode), - &rpc__resp__set_mode__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_set_ps", - 526, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_set_ps), - &rpc__resp__set_ps__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_get_ps", - 527, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_get_ps), - &rpc__resp__get_ps__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_ota_begin", - 528, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_ota_begin), - &rpc__resp__otabegin__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_ota_write", - 529, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_ota_write), - &rpc__resp__otawrite__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_ota_end", - 530, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_ota_end), - &rpc__resp__otaend__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_set_wifi_max_tx_power", - 531, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_set_wifi_max_tx_power), - &rpc__resp__wifi_set_max_tx_power__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_get_wifi_max_tx_power", - 532, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_get_wifi_max_tx_power), - &rpc__resp__wifi_get_max_tx_power__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_config_heartbeat", - 533, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_config_heartbeat), - &rpc__resp__config_heartbeat__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_init", - 534, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_init), - &rpc__resp__wifi_init__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_deinit", - 535, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_deinit), - &rpc__resp__wifi_deinit__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_start", - 536, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_start), - &rpc__resp__wifi_start__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_stop", - 537, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_stop), - &rpc__resp__wifi_stop__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_connect", - 538, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_connect), - &rpc__resp__wifi_connect__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_disconnect", - 539, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_disconnect), - &rpc__resp__wifi_disconnect__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_set_config", - 540, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_set_config), - &rpc__resp__wifi_set_config__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_get_config", - 541, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_get_config), - &rpc__resp__wifi_get_config__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_scan_start", - 542, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_scan_start), - &rpc__resp__wifi_scan_start__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_scan_stop", - 543, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_scan_stop), - &rpc__resp__wifi_scan_stop__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_scan_get_ap_num", - 544, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_scan_get_ap_num), - &rpc__resp__wifi_scan_get_ap_num__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_scan_get_ap_records", - 545, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_scan_get_ap_records), - &rpc__resp__wifi_scan_get_ap_records__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_clear_ap_list", - 546, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_clear_ap_list), - &rpc__resp__wifi_clear_ap_list__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_restore", - 547, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_restore), - &rpc__resp__wifi_restore__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_clear_fast_connect", - 548, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_clear_fast_connect), - &rpc__resp__wifi_clear_fast_connect__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_deauth_sta", - 549, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_deauth_sta), - &rpc__resp__wifi_deauth_sta__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_sta_get_ap_info", - 550, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_sta_get_ap_info), - &rpc__resp__wifi_sta_get_ap_info__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_set_protocol", - 553, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_set_protocol), - &rpc__resp__wifi_set_protocol__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_get_protocol", - 554, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_get_protocol), - &rpc__resp__wifi_get_protocol__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_set_bandwidth", - 555, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_set_bandwidth), - &rpc__resp__wifi_set_bandwidth__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_get_bandwidth", - 556, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_get_bandwidth), - &rpc__resp__wifi_get_bandwidth__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_set_channel", - 557, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_set_channel), - &rpc__resp__wifi_set_channel__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_get_channel", - 558, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_get_channel), - &rpc__resp__wifi_get_channel__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_set_country", - 559, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_set_country), - &rpc__resp__wifi_set_country__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_get_country", - 560, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_get_country), - &rpc__resp__wifi_get_country__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_ap_get_sta_list", - 567, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_ap_get_sta_list), - &rpc__resp__wifi_ap_get_sta_list__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_ap_get_sta_aid", - 568, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_ap_get_sta_aid), - &rpc__resp__wifi_ap_get_sta_aid__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_set_storage", - 569, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_set_storage), - &rpc__resp__wifi_set_storage__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_set_country_code", - 590, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_set_country_code), - &rpc__resp__wifi_set_country_code__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_get_country_code", - 591, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_get_country_code), - &rpc__resp__wifi_get_country_code__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_sta_get_aid", - 594, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_sta_get_aid), - &rpc__resp__wifi_sta_get_aid__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_sta_get_negotiated_phymode", - 595, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_sta_get_negotiated_phymode), - &rpc__resp__wifi_sta_get_negotiated_phymode__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_sta_get_rssi", - 597, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_sta_get_rssi), - &rpc__resp__wifi_sta_get_rssi__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_set_protocols", - 598, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_set_protocols), - &rpc__resp__wifi_set_protocols__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_get_protocols", - 599, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_get_protocols), - &rpc__resp__wifi_get_protocols__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_set_bandwidths", - 600, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_set_bandwidths), - &rpc__resp__wifi_set_bandwidths__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_get_bandwidths", - 601, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_get_bandwidths), - &rpc__resp__wifi_get_bandwidths__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_set_band", - 602, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_set_band), - &rpc__resp__wifi_set_band__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_get_band", - 603, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_get_band), - &rpc__resp__wifi_get_band__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_set_bandmode", - 604, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_set_bandmode), - &rpc__resp__wifi_set_band_mode__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_get_bandmode", - 605, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_get_bandmode), - &rpc__resp__wifi_get_band_mode__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_get_coprocessor_fwversion", - 606, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_get_coprocessor_fwversion), - &rpc__resp__get_coprocessor_fw_version__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "resp_wifi_scan_get_ap_record", - 607, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, resp_wifi_scan_get_ap_record), - &rpc__resp__wifi_scan_get_ap_record__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "event_esp_init", - 769, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, event_esp_init), - &rpc__event__espinit__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "event_heartbeat", - 770, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, event_heartbeat), - &rpc__event__heartbeat__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "event_ap_sta_connected", - 771, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, event_ap_sta_connected), - &rpc__event__ap__sta_connected__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "event_ap_sta_disconnected", - 772, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, event_ap_sta_disconnected), - &rpc__event__ap__sta_disconnected__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "event_wifi_event_no_args", - 773, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, event_wifi_event_no_args), - &rpc__event__wifi_event_no_args__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "event_sta_scan_done", - 774, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, event_sta_scan_done), - &rpc__event__sta_scan_done__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "event_sta_connected", - 775, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, event_sta_connected), - &rpc__event__sta_connected__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, - { - "event_sta_disconnected", - 776, - PROTOBUF_C_LABEL_NONE, - PROTOBUF_C_TYPE_MESSAGE, - offsetof(Rpc, payload_case), - offsetof(Rpc, event_sta_disconnected), - &rpc__event__sta_disconnected__descriptor, - NULL, - 0 | PROTOBUF_C_FIELD_FLAG_ONEOF, /* flags */ - 0,NULL,NULL /* reserved1,reserved2, etc */ - }, -}; -static const unsigned rpc__field_indices_by_name[] = { - 115, /* field[115] = event_ap_sta_connected */ - 116, /* field[116] = event_ap_sta_disconnected */ - 113, /* field[113] = event_esp_init */ - 114, /* field[114] = event_heartbeat */ - 119, /* field[119] = event_sta_connected */ - 120, /* field[120] = event_sta_disconnected */ - 118, /* field[118] = event_sta_scan_done */ - 117, /* field[117] = event_wifi_event_no_args */ - 1, /* field[1] = msg_id */ - 0, /* field[0] = msg_type */ - 14, /* field[14] = req_config_heartbeat */ - 56, /* field[56] = req_get_coprocessor_fwversion */ - 3, /* field[3] = req_get_mac_address */ - 13, /* field[13] = req_get_wifi_max_tx_power */ - 5, /* field[5] = req_get_wifi_mode */ - 9, /* field[9] = req_ota_begin */ - 11, /* field[11] = req_ota_end */ - 10, /* field[10] = req_ota_write */ - 4, /* field[4] = req_set_mac_address */ - 12, /* field[12] = req_set_wifi_max_tx_power */ - 6, /* field[6] = req_set_wifi_mode */ - 41, /* field[41] = req_wifi_ap_get_sta_aid */ - 40, /* field[40] = req_wifi_ap_get_sta_list */ - 27, /* field[27] = req_wifi_clear_ap_list */ - 29, /* field[29] = req_wifi_clear_fast_connect */ - 19, /* field[19] = req_wifi_connect */ - 30, /* field[30] = req_wifi_deauth_sta */ - 16, /* field[16] = req_wifi_deinit */ - 20, /* field[20] = req_wifi_disconnect */ - 53, /* field[53] = req_wifi_get_band */ - 55, /* field[55] = req_wifi_get_bandmode */ - 35, /* field[35] = req_wifi_get_bandwidth */ - 51, /* field[51] = req_wifi_get_bandwidths */ - 37, /* field[37] = req_wifi_get_channel */ - 22, /* field[22] = req_wifi_get_config */ - 39, /* field[39] = req_wifi_get_country */ - 44, /* field[44] = req_wifi_get_country_code */ - 33, /* field[33] = req_wifi_get_protocol */ - 49, /* field[49] = req_wifi_get_protocols */ - 8, /* field[8] = req_wifi_get_ps */ - 15, /* field[15] = req_wifi_init */ - 28, /* field[28] = req_wifi_restore */ - 25, /* field[25] = req_wifi_scan_get_ap_num */ - 57, /* field[57] = req_wifi_scan_get_ap_record */ - 26, /* field[26] = req_wifi_scan_get_ap_records */ - 23, /* field[23] = req_wifi_scan_start */ - 24, /* field[24] = req_wifi_scan_stop */ - 52, /* field[52] = req_wifi_set_band */ - 54, /* field[54] = req_wifi_set_bandmode */ - 34, /* field[34] = req_wifi_set_bandwidth */ - 50, /* field[50] = req_wifi_set_bandwidths */ - 36, /* field[36] = req_wifi_set_channel */ - 21, /* field[21] = req_wifi_set_config */ - 38, /* field[38] = req_wifi_set_country */ - 43, /* field[43] = req_wifi_set_country_code */ - 32, /* field[32] = req_wifi_set_protocol */ - 48, /* field[48] = req_wifi_set_protocols */ - 7, /* field[7] = req_wifi_set_ps */ - 42, /* field[42] = req_wifi_set_storage */ - 45, /* field[45] = req_wifi_sta_get_aid */ - 31, /* field[31] = req_wifi_sta_get_ap_info */ - 46, /* field[46] = req_wifi_sta_get_negotiated_phymode */ - 47, /* field[47] = req_wifi_sta_get_rssi */ - 17, /* field[17] = req_wifi_start */ - 18, /* field[18] = req_wifi_stop */ - 69, /* field[69] = resp_config_heartbeat */ - 111, /* field[111] = resp_get_coprocessor_fwversion */ - 58, /* field[58] = resp_get_mac_address */ - 68, /* field[68] = resp_get_wifi_max_tx_power */ - 60, /* field[60] = resp_get_wifi_mode */ - 64, /* field[64] = resp_ota_begin */ - 66, /* field[66] = resp_ota_end */ - 65, /* field[65] = resp_ota_write */ - 59, /* field[59] = resp_set_mac_address */ - 67, /* field[67] = resp_set_wifi_max_tx_power */ - 61, /* field[61] = resp_set_wifi_mode */ - 96, /* field[96] = resp_wifi_ap_get_sta_aid */ - 95, /* field[95] = resp_wifi_ap_get_sta_list */ - 82, /* field[82] = resp_wifi_clear_ap_list */ - 84, /* field[84] = resp_wifi_clear_fast_connect */ - 74, /* field[74] = resp_wifi_connect */ - 85, /* field[85] = resp_wifi_deauth_sta */ - 71, /* field[71] = resp_wifi_deinit */ - 75, /* field[75] = resp_wifi_disconnect */ - 108, /* field[108] = resp_wifi_get_band */ - 110, /* field[110] = resp_wifi_get_bandmode */ - 90, /* field[90] = resp_wifi_get_bandwidth */ - 106, /* field[106] = resp_wifi_get_bandwidths */ - 92, /* field[92] = resp_wifi_get_channel */ - 77, /* field[77] = resp_wifi_get_config */ - 94, /* field[94] = resp_wifi_get_country */ - 99, /* field[99] = resp_wifi_get_country_code */ - 88, /* field[88] = resp_wifi_get_protocol */ - 104, /* field[104] = resp_wifi_get_protocols */ - 63, /* field[63] = resp_wifi_get_ps */ - 70, /* field[70] = resp_wifi_init */ - 83, /* field[83] = resp_wifi_restore */ - 80, /* field[80] = resp_wifi_scan_get_ap_num */ - 112, /* field[112] = resp_wifi_scan_get_ap_record */ - 81, /* field[81] = resp_wifi_scan_get_ap_records */ - 78, /* field[78] = resp_wifi_scan_start */ - 79, /* field[79] = resp_wifi_scan_stop */ - 107, /* field[107] = resp_wifi_set_band */ - 109, /* field[109] = resp_wifi_set_bandmode */ - 89, /* field[89] = resp_wifi_set_bandwidth */ - 105, /* field[105] = resp_wifi_set_bandwidths */ - 91, /* field[91] = resp_wifi_set_channel */ - 76, /* field[76] = resp_wifi_set_config */ - 93, /* field[93] = resp_wifi_set_country */ - 98, /* field[98] = resp_wifi_set_country_code */ - 87, /* field[87] = resp_wifi_set_protocol */ - 103, /* field[103] = resp_wifi_set_protocols */ - 62, /* field[62] = resp_wifi_set_ps */ - 97, /* field[97] = resp_wifi_set_storage */ - 100, /* field[100] = resp_wifi_sta_get_aid */ - 86, /* field[86] = resp_wifi_sta_get_ap_info */ - 101, /* field[101] = resp_wifi_sta_get_negotiated_phymode */ - 102, /* field[102] = resp_wifi_sta_get_rssi */ - 72, /* field[72] = resp_wifi_start */ - 73, /* field[73] = resp_wifi_stop */ - 2, /* field[2] = uid */ -}; -static const ProtobufCIntRange rpc__number_ranges[16 + 1] = -{ - { 1, 0 }, - { 257, 3 }, - { 270, 7 }, - { 297, 32 }, - { 311, 40 }, - { 334, 43 }, - { 338, 45 }, - { 341, 47 }, - { 513, 58 }, - { 526, 62 }, - { 553, 87 }, - { 567, 95 }, - { 590, 98 }, - { 594, 100 }, - { 597, 102 }, - { 769, 113 }, - { 0, 121 } -}; -const ProtobufCMessageDescriptor rpc__descriptor = -{ - PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC, - "Rpc", - "Rpc", - "Rpc", - "", - sizeof(Rpc), - 121, - rpc__field_descriptors, - rpc__field_indices_by_name, - 16, rpc__number_ranges, - (ProtobufCMessageInit) rpc__init, - NULL,NULL,NULL /* reserved[123] */ -}; -static const ProtobufCEnumValue rpc__wifi_bw__enum_values_by_number[3] = -{ - { "BW_Invalid", "RPC__WIFI_BW__BW_Invalid", 0 }, - { "HT20", "RPC__WIFI_BW__HT20", 1 }, - { "HT40", "RPC__WIFI_BW__HT40", 2 }, -}; -static const ProtobufCIntRange rpc__wifi_bw__value_ranges[] = { -{0, 0},{0, 3} -}; -static const ProtobufCEnumValueIndex rpc__wifi_bw__enum_values_by_name[3] = -{ - { "BW_Invalid", 0 }, - { "HT20", 1 }, - { "HT40", 2 }, -}; -const ProtobufCEnumDescriptor rpc__wifi_bw__descriptor = -{ - PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, - "Rpc_WifiBw", - "Rpc_WifiBw", - "RpcWifiBw", - "", - 3, - rpc__wifi_bw__enum_values_by_number, - 3, - rpc__wifi_bw__enum_values_by_name, - 1, - rpc__wifi_bw__value_ranges, - NULL,NULL,NULL,NULL /* reserved[1234] */ -}; -static const ProtobufCEnumValue rpc__wifi_power_save__enum_values_by_number[3] = -{ - { "PS_Invalid", "RPC__WIFI_POWER_SAVE__PS_Invalid", 0 }, - { "MIN_MODEM", "RPC__WIFI_POWER_SAVE__MIN_MODEM", 1 }, - { "MAX_MODEM", "RPC__WIFI_POWER_SAVE__MAX_MODEM", 2 }, -}; -static const ProtobufCIntRange rpc__wifi_power_save__value_ranges[] = { -{0, 0},{0, 3} -}; -static const ProtobufCEnumValueIndex rpc__wifi_power_save__enum_values_by_name[3] = -{ - { "MAX_MODEM", 2 }, - { "MIN_MODEM", 1 }, - { "PS_Invalid", 0 }, -}; -const ProtobufCEnumDescriptor rpc__wifi_power_save__descriptor = -{ - PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, - "Rpc_WifiPowerSave", - "Rpc_WifiPowerSave", - "RpcWifiPowerSave", - "", - 3, - rpc__wifi_power_save__enum_values_by_number, - 3, - rpc__wifi_power_save__enum_values_by_name, - 1, - rpc__wifi_power_save__value_ranges, - NULL,NULL,NULL,NULL /* reserved[1234] */ -}; -static const ProtobufCEnumValue rpc__wifi_sec_prot__enum_values_by_number[8] = -{ - { "Open", "RPC__WIFI_SEC_PROT__Open", 0 }, - { "WEP", "RPC__WIFI_SEC_PROT__WEP", 1 }, - { "WPA_PSK", "RPC__WIFI_SEC_PROT__WPA_PSK", 2 }, - { "WPA2_PSK", "RPC__WIFI_SEC_PROT__WPA2_PSK", 3 }, - { "WPA_WPA2_PSK", "RPC__WIFI_SEC_PROT__WPA_WPA2_PSK", 4 }, - { "WPA2_ENTERPRISE", "RPC__WIFI_SEC_PROT__WPA2_ENTERPRISE", 5 }, - { "WPA3_PSK", "RPC__WIFI_SEC_PROT__WPA3_PSK", 6 }, - { "WPA2_WPA3_PSK", "RPC__WIFI_SEC_PROT__WPA2_WPA3_PSK", 7 }, -}; -static const ProtobufCIntRange rpc__wifi_sec_prot__value_ranges[] = { -{0, 0},{0, 8} -}; -static const ProtobufCEnumValueIndex rpc__wifi_sec_prot__enum_values_by_name[8] = -{ - { "Open", 0 }, - { "WEP", 1 }, - { "WPA2_ENTERPRISE", 5 }, - { "WPA2_PSK", 3 }, - { "WPA2_WPA3_PSK", 7 }, - { "WPA3_PSK", 6 }, - { "WPA_PSK", 2 }, - { "WPA_WPA2_PSK", 4 }, -}; -const ProtobufCEnumDescriptor rpc__wifi_sec_prot__descriptor = -{ - PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, - "Rpc_WifiSecProt", - "Rpc_WifiSecProt", - "RpcWifiSecProt", - "", - 8, - rpc__wifi_sec_prot__enum_values_by_number, - 8, - rpc__wifi_sec_prot__enum_values_by_name, - 1, - rpc__wifi_sec_prot__value_ranges, - NULL,NULL,NULL,NULL /* reserved[1234] */ -}; -static const ProtobufCEnumValue rpc__status__enum_values_by_number[6] = -{ - { "Connected", "RPC__STATUS__Connected", 0 }, - { "Not_Connected", "RPC__STATUS__Not_Connected", 1 }, - { "No_AP_Found", "RPC__STATUS__No_AP_Found", 2 }, - { "Connection_Fail", "RPC__STATUS__Connection_Fail", 3 }, - { "Invalid_Argument", "RPC__STATUS__Invalid_Argument", 4 }, - { "Out_Of_Range", "RPC__STATUS__Out_Of_Range", 5 }, -}; -static const ProtobufCIntRange rpc__status__value_ranges[] = { -{0, 0},{0, 6} -}; -static const ProtobufCEnumValueIndex rpc__status__enum_values_by_name[6] = -{ - { "Connected", 0 }, - { "Connection_Fail", 3 }, - { "Invalid_Argument", 4 }, - { "No_AP_Found", 2 }, - { "Not_Connected", 1 }, - { "Out_Of_Range", 5 }, -}; -const ProtobufCEnumDescriptor rpc__status__descriptor = -{ - PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, - "Rpc_Status", - "Rpc_Status", - "RpcStatus", - "", - 6, - rpc__status__enum_values_by_number, - 6, - rpc__status__enum_values_by_name, - 1, - rpc__status__value_ranges, - NULL,NULL,NULL,NULL /* reserved[1234] */ -}; -static const ProtobufCEnumValue rpc_type__enum_values_by_number[5] = -{ - { "MsgType_Invalid", "RPC_TYPE__MsgType_Invalid", 0 }, - { "Req", "RPC_TYPE__Req", 1 }, - { "Resp", "RPC_TYPE__Resp", 2 }, - { "Event", "RPC_TYPE__Event", 3 }, - { "MsgType_Max", "RPC_TYPE__MsgType_Max", 4 }, -}; -static const ProtobufCIntRange rpc_type__value_ranges[] = { -{0, 0},{0, 5} -}; -static const ProtobufCEnumValueIndex rpc_type__enum_values_by_name[5] = -{ - { "Event", 3 }, - { "MsgType_Invalid", 0 }, - { "MsgType_Max", 4 }, - { "Req", 1 }, - { "Resp", 2 }, -}; -const ProtobufCEnumDescriptor rpc_type__descriptor = -{ - PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, - "RpcType", - "RpcType", - "RpcType", - "", - 5, - rpc_type__enum_values_by_number, - 5, - rpc_type__enum_values_by_name, - 1, - rpc_type__value_ranges, - NULL,NULL,NULL,NULL /* reserved[1234] */ -}; -static const ProtobufCEnumValue rpc_id__enum_values_by_number[183] = -{ - { "MsgId_Invalid", "RPC_ID__MsgId_Invalid", 0 }, - { "Req_Base", "RPC_ID__Req_Base", 256 }, - { "Req_GetMACAddress", "RPC_ID__Req_GetMACAddress", 257 }, - { "Req_SetMacAddress", "RPC_ID__Req_SetMacAddress", 258 }, - { "Req_GetWifiMode", "RPC_ID__Req_GetWifiMode", 259 }, - { "Req_SetWifiMode", "RPC_ID__Req_SetWifiMode", 260 }, - { "Req_WifiSetPs", "RPC_ID__Req_WifiSetPs", 270 }, - { "Req_WifiGetPs", "RPC_ID__Req_WifiGetPs", 271 }, - { "Req_OTABegin", "RPC_ID__Req_OTABegin", 272 }, - { "Req_OTAWrite", "RPC_ID__Req_OTAWrite", 273 }, - { "Req_OTAEnd", "RPC_ID__Req_OTAEnd", 274 }, - { "Req_WifiSetMaxTxPower", "RPC_ID__Req_WifiSetMaxTxPower", 275 }, - { "Req_WifiGetMaxTxPower", "RPC_ID__Req_WifiGetMaxTxPower", 276 }, - { "Req_ConfigHeartbeat", "RPC_ID__Req_ConfigHeartbeat", 277 }, - { "Req_WifiInit", "RPC_ID__Req_WifiInit", 278 }, - { "Req_WifiDeinit", "RPC_ID__Req_WifiDeinit", 279 }, - { "Req_WifiStart", "RPC_ID__Req_WifiStart", 280 }, - { "Req_WifiStop", "RPC_ID__Req_WifiStop", 281 }, - { "Req_WifiConnect", "RPC_ID__Req_WifiConnect", 282 }, - { "Req_WifiDisconnect", "RPC_ID__Req_WifiDisconnect", 283 }, - { "Req_WifiSetConfig", "RPC_ID__Req_WifiSetConfig", 284 }, - { "Req_WifiGetConfig", "RPC_ID__Req_WifiGetConfig", 285 }, - { "Req_WifiScanStart", "RPC_ID__Req_WifiScanStart", 286 }, - { "Req_WifiScanStop", "RPC_ID__Req_WifiScanStop", 287 }, - { "Req_WifiScanGetApNum", "RPC_ID__Req_WifiScanGetApNum", 288 }, - { "Req_WifiScanGetApRecords", "RPC_ID__Req_WifiScanGetApRecords", 289 }, - { "Req_WifiClearApList", "RPC_ID__Req_WifiClearApList", 290 }, - { "Req_WifiRestore", "RPC_ID__Req_WifiRestore", 291 }, - { "Req_WifiClearFastConnect", "RPC_ID__Req_WifiClearFastConnect", 292 }, - { "Req_WifiDeauthSta", "RPC_ID__Req_WifiDeauthSta", 293 }, - { "Req_WifiStaGetApInfo", "RPC_ID__Req_WifiStaGetApInfo", 294 }, - { "Req_WifiSetProtocol", "RPC_ID__Req_WifiSetProtocol", 297 }, - { "Req_WifiGetProtocol", "RPC_ID__Req_WifiGetProtocol", 298 }, - { "Req_WifiSetBandwidth", "RPC_ID__Req_WifiSetBandwidth", 299 }, - { "Req_WifiGetBandwidth", "RPC_ID__Req_WifiGetBandwidth", 300 }, - { "Req_WifiSetChannel", "RPC_ID__Req_WifiSetChannel", 301 }, - { "Req_WifiGetChannel", "RPC_ID__Req_WifiGetChannel", 302 }, - { "Req_WifiSetCountry", "RPC_ID__Req_WifiSetCountry", 303 }, - { "Req_WifiGetCountry", "RPC_ID__Req_WifiGetCountry", 304 }, - { "Req_WifiSetPromiscuous", "RPC_ID__Req_WifiSetPromiscuous", 305 }, - { "Req_WifiGetPromiscuous", "RPC_ID__Req_WifiGetPromiscuous", 306 }, - { "Req_WifiSetPromiscuousFilter", "RPC_ID__Req_WifiSetPromiscuousFilter", 307 }, - { "Req_WifiGetPromiscuousFilter", "RPC_ID__Req_WifiGetPromiscuousFilter", 308 }, - { "Req_WifiSetPromiscuousCtrlFilter", "RPC_ID__Req_WifiSetPromiscuousCtrlFilter", 309 }, - { "Req_WifiGetPromiscuousCtrlFilter", "RPC_ID__Req_WifiGetPromiscuousCtrlFilter", 310 }, - { "Req_WifiApGetStaList", "RPC_ID__Req_WifiApGetStaList", 311 }, - { "Req_WifiApGetStaAid", "RPC_ID__Req_WifiApGetStaAid", 312 }, - { "Req_WifiSetStorage", "RPC_ID__Req_WifiSetStorage", 313 }, - { "Req_WifiSetVendorIe", "RPC_ID__Req_WifiSetVendorIe", 314 }, - { "Req_WifiSetEventMask", "RPC_ID__Req_WifiSetEventMask", 315 }, - { "Req_WifiGetEventMask", "RPC_ID__Req_WifiGetEventMask", 316 }, - { "Req_Wifi80211Tx", "RPC_ID__Req_Wifi80211Tx", 317 }, - { "Req_WifiSetCsiConfig", "RPC_ID__Req_WifiSetCsiConfig", 318 }, - { "Req_WifiSetCsi", "RPC_ID__Req_WifiSetCsi", 319 }, - { "Req_WifiSetAntGpio", "RPC_ID__Req_WifiSetAntGpio", 320 }, - { "Req_WifiGetAntGpio", "RPC_ID__Req_WifiGetAntGpio", 321 }, - { "Req_WifiSetAnt", "RPC_ID__Req_WifiSetAnt", 322 }, - { "Req_WifiGetAnt", "RPC_ID__Req_WifiGetAnt", 323 }, - { "Req_WifiGetTsfTime", "RPC_ID__Req_WifiGetTsfTime", 324 }, - { "Req_WifiSetInactiveTime", "RPC_ID__Req_WifiSetInactiveTime", 325 }, - { "Req_WifiGetInactiveTime", "RPC_ID__Req_WifiGetInactiveTime", 326 }, - { "Req_WifiStatisDump", "RPC_ID__Req_WifiStatisDump", 327 }, - { "Req_WifiSetRssiThreshold", "RPC_ID__Req_WifiSetRssiThreshold", 328 }, - { "Req_WifiFtmInitiateSession", "RPC_ID__Req_WifiFtmInitiateSession", 329 }, - { "Req_WifiFtmEndSession", "RPC_ID__Req_WifiFtmEndSession", 330 }, - { "Req_WifiFtmRespSetOffset", "RPC_ID__Req_WifiFtmRespSetOffset", 331 }, - { "Req_WifiConfig11bRate", "RPC_ID__Req_WifiConfig11bRate", 332 }, - { "Req_WifiConnectionlessModuleSetWakeInterval", "RPC_ID__Req_WifiConnectionlessModuleSetWakeInterval", 333 }, - { "Req_WifiSetCountryCode", "RPC_ID__Req_WifiSetCountryCode", 334 }, - { "Req_WifiGetCountryCode", "RPC_ID__Req_WifiGetCountryCode", 335 }, - { "Req_WifiConfig80211TxRate", "RPC_ID__Req_WifiConfig80211TxRate", 336 }, - { "Req_WifiDisablePmfConfig", "RPC_ID__Req_WifiDisablePmfConfig", 337 }, - { "Req_WifiStaGetAid", "RPC_ID__Req_WifiStaGetAid", 338 }, - { "Req_WifiStaGetNegotiatedPhymode", "RPC_ID__Req_WifiStaGetNegotiatedPhymode", 339 }, - { "Req_WifiSetDynamicCs", "RPC_ID__Req_WifiSetDynamicCs", 340 }, - { "Req_WifiStaGetRssi", "RPC_ID__Req_WifiStaGetRssi", 341 }, - { "Req_WifiSetProtocols", "RPC_ID__Req_WifiSetProtocols", 342 }, - { "Req_WifiGetProtocols", "RPC_ID__Req_WifiGetProtocols", 343 }, - { "Req_WifiSetBandwidths", "RPC_ID__Req_WifiSetBandwidths", 344 }, - { "Req_WifiGetBandwidths", "RPC_ID__Req_WifiGetBandwidths", 345 }, - { "Req_WifiSetBand", "RPC_ID__Req_WifiSetBand", 346 }, - { "Req_WifiGetBand", "RPC_ID__Req_WifiGetBand", 347 }, - { "Req_WifiSetBandMode", "RPC_ID__Req_WifiSetBandMode", 348 }, - { "Req_WifiGetBandMode", "RPC_ID__Req_WifiGetBandMode", 349 }, - { "Req_GetCoprocessorFwVersion", "RPC_ID__Req_GetCoprocessorFwVersion", 350 }, - { "Req_WifiScanGetApRecord", "RPC_ID__Req_WifiScanGetApRecord", 351 }, - { "Req_Max", "RPC_ID__Req_Max", 352 }, - { "Resp_Base", "RPC_ID__Resp_Base", 512 }, - { "Resp_GetMACAddress", "RPC_ID__Resp_GetMACAddress", 513 }, - { "Resp_SetMacAddress", "RPC_ID__Resp_SetMacAddress", 514 }, - { "Resp_GetWifiMode", "RPC_ID__Resp_GetWifiMode", 515 }, - { "Resp_SetWifiMode", "RPC_ID__Resp_SetWifiMode", 516 }, - { "Resp_WifiSetPs", "RPC_ID__Resp_WifiSetPs", 526 }, - { "Resp_WifiGetPs", "RPC_ID__Resp_WifiGetPs", 527 }, - { "Resp_OTABegin", "RPC_ID__Resp_OTABegin", 528 }, - { "Resp_OTAWrite", "RPC_ID__Resp_OTAWrite", 529 }, - { "Resp_OTAEnd", "RPC_ID__Resp_OTAEnd", 530 }, - { "Resp_WifiSetMaxTxPower", "RPC_ID__Resp_WifiSetMaxTxPower", 531 }, - { "Resp_WifiGetMaxTxPower", "RPC_ID__Resp_WifiGetMaxTxPower", 532 }, - { "Resp_ConfigHeartbeat", "RPC_ID__Resp_ConfigHeartbeat", 533 }, - { "Resp_WifiInit", "RPC_ID__Resp_WifiInit", 534 }, - { "Resp_WifiDeinit", "RPC_ID__Resp_WifiDeinit", 535 }, - { "Resp_WifiStart", "RPC_ID__Resp_WifiStart", 536 }, - { "Resp_WifiStop", "RPC_ID__Resp_WifiStop", 537 }, - { "Resp_WifiConnect", "RPC_ID__Resp_WifiConnect", 538 }, - { "Resp_WifiDisconnect", "RPC_ID__Resp_WifiDisconnect", 539 }, - { "Resp_WifiSetConfig", "RPC_ID__Resp_WifiSetConfig", 540 }, - { "Resp_WifiGetConfig", "RPC_ID__Resp_WifiGetConfig", 541 }, - { "Resp_WifiScanStart", "RPC_ID__Resp_WifiScanStart", 542 }, - { "Resp_WifiScanStop", "RPC_ID__Resp_WifiScanStop", 543 }, - { "Resp_WifiScanGetApNum", "RPC_ID__Resp_WifiScanGetApNum", 544 }, - { "Resp_WifiScanGetApRecords", "RPC_ID__Resp_WifiScanGetApRecords", 545 }, - { "Resp_WifiClearApList", "RPC_ID__Resp_WifiClearApList", 546 }, - { "Resp_WifiRestore", "RPC_ID__Resp_WifiRestore", 547 }, - { "Resp_WifiClearFastConnect", "RPC_ID__Resp_WifiClearFastConnect", 548 }, - { "Resp_WifiDeauthSta", "RPC_ID__Resp_WifiDeauthSta", 549 }, - { "Resp_WifiStaGetApInfo", "RPC_ID__Resp_WifiStaGetApInfo", 550 }, - { "Resp_WifiSetProtocol", "RPC_ID__Resp_WifiSetProtocol", 553 }, - { "Resp_WifiGetProtocol", "RPC_ID__Resp_WifiGetProtocol", 554 }, - { "Resp_WifiSetBandwidth", "RPC_ID__Resp_WifiSetBandwidth", 555 }, - { "Resp_WifiGetBandwidth", "RPC_ID__Resp_WifiGetBandwidth", 556 }, - { "Resp_WifiSetChannel", "RPC_ID__Resp_WifiSetChannel", 557 }, - { "Resp_WifiGetChannel", "RPC_ID__Resp_WifiGetChannel", 558 }, - { "Resp_WifiSetCountry", "RPC_ID__Resp_WifiSetCountry", 559 }, - { "Resp_WifiGetCountry", "RPC_ID__Resp_WifiGetCountry", 560 }, - { "Resp_WifiSetPromiscuous", "RPC_ID__Resp_WifiSetPromiscuous", 561 }, - { "Resp_WifiGetPromiscuous", "RPC_ID__Resp_WifiGetPromiscuous", 562 }, - { "Resp_WifiSetPromiscuousFilter", "RPC_ID__Resp_WifiSetPromiscuousFilter", 563 }, - { "Resp_WifiGetPromiscuousFilter", "RPC_ID__Resp_WifiGetPromiscuousFilter", 564 }, - { "Resp_WifiSetPromiscuousCtrlFilter", "RPC_ID__Resp_WifiSetPromiscuousCtrlFilter", 565 }, - { "Resp_WifiGetPromiscuousCtrlFilter", "RPC_ID__Resp_WifiGetPromiscuousCtrlFilter", 566 }, - { "Resp_WifiApGetStaList", "RPC_ID__Resp_WifiApGetStaList", 567 }, - { "Resp_WifiApGetStaAid", "RPC_ID__Resp_WifiApGetStaAid", 568 }, - { "Resp_WifiSetStorage", "RPC_ID__Resp_WifiSetStorage", 569 }, - { "Resp_WifiSetVendorIe", "RPC_ID__Resp_WifiSetVendorIe", 570 }, - { "Resp_WifiSetEventMask", "RPC_ID__Resp_WifiSetEventMask", 571 }, - { "Resp_WifiGetEventMask", "RPC_ID__Resp_WifiGetEventMask", 572 }, - { "Resp_Wifi80211Tx", "RPC_ID__Resp_Wifi80211Tx", 573 }, - { "Resp_WifiSetCsiConfig", "RPC_ID__Resp_WifiSetCsiConfig", 574 }, - { "Resp_WifiSetCsi", "RPC_ID__Resp_WifiSetCsi", 575 }, - { "Resp_WifiSetAntGpio", "RPC_ID__Resp_WifiSetAntGpio", 576 }, - { "Resp_WifiGetAntGpio", "RPC_ID__Resp_WifiGetAntGpio", 577 }, - { "Resp_WifiSetAnt", "RPC_ID__Resp_WifiSetAnt", 578 }, - { "Resp_WifiGetAnt", "RPC_ID__Resp_WifiGetAnt", 579 }, - { "Resp_WifiGetTsfTime", "RPC_ID__Resp_WifiGetTsfTime", 580 }, - { "Resp_WifiSetInactiveTime", "RPC_ID__Resp_WifiSetInactiveTime", 581 }, - { "Resp_WifiGetInactiveTime", "RPC_ID__Resp_WifiGetInactiveTime", 582 }, - { "Resp_WifiStatisDump", "RPC_ID__Resp_WifiStatisDump", 583 }, - { "Resp_WifiSetRssiThreshold", "RPC_ID__Resp_WifiSetRssiThreshold", 584 }, - { "Resp_WifiFtmInitiateSession", "RPC_ID__Resp_WifiFtmInitiateSession", 585 }, - { "Resp_WifiFtmEndSession", "RPC_ID__Resp_WifiFtmEndSession", 586 }, - { "Resp_WifiFtmRespSetOffset", "RPC_ID__Resp_WifiFtmRespSetOffset", 587 }, - { "Resp_WifiConfig11bRate", "RPC_ID__Resp_WifiConfig11bRate", 588 }, - { "Resp_WifiConnectionlessModuleSetWakeInterval", "RPC_ID__Resp_WifiConnectionlessModuleSetWakeInterval", 589 }, - { "Resp_WifiSetCountryCode", "RPC_ID__Resp_WifiSetCountryCode", 590 }, - { "Resp_WifiGetCountryCode", "RPC_ID__Resp_WifiGetCountryCode", 591 }, - { "Resp_WifiConfig80211TxRate", "RPC_ID__Resp_WifiConfig80211TxRate", 592 }, - { "Resp_WifiDisablePmfConfig", "RPC_ID__Resp_WifiDisablePmfConfig", 593 }, - { "Resp_WifiStaGetAid", "RPC_ID__Resp_WifiStaGetAid", 594 }, - { "Resp_WifiStaGetNegotiatedPhymode", "RPC_ID__Resp_WifiStaGetNegotiatedPhymode", 595 }, - { "Resp_WifiSetDynamicCs", "RPC_ID__Resp_WifiSetDynamicCs", 596 }, - { "Resp_WifiStaGetRssi", "RPC_ID__Resp_WifiStaGetRssi", 597 }, - { "Resp_WifiSetProtocols", "RPC_ID__Resp_WifiSetProtocols", 598 }, - { "Resp_WifiGetProtocols", "RPC_ID__Resp_WifiGetProtocols", 599 }, - { "Resp_WifiSetBandwidths", "RPC_ID__Resp_WifiSetBandwidths", 600 }, - { "Resp_WifiGetBandwidths", "RPC_ID__Resp_WifiGetBandwidths", 601 }, - { "Resp_WifiSetBand", "RPC_ID__Resp_WifiSetBand", 602 }, - { "Resp_WifiGetBand", "RPC_ID__Resp_WifiGetBand", 603 }, - { "Resp_WifiSetBandMode", "RPC_ID__Resp_WifiSetBandMode", 604 }, - { "Resp_WifiGetBandMode", "RPC_ID__Resp_WifiGetBandMode", 605 }, - { "Resp_GetCoprocessorFwVersion", "RPC_ID__Resp_GetCoprocessorFwVersion", 606 }, - { "Resp_WifiScanGetApRecord", "RPC_ID__Resp_WifiScanGetApRecord", 607 }, - { "Resp_Max", "RPC_ID__Resp_Max", 608 }, - { "Event_Base", "RPC_ID__Event_Base", 768 }, - { "Event_ESPInit", "RPC_ID__Event_ESPInit", 769 }, - { "Event_Heartbeat", "RPC_ID__Event_Heartbeat", 770 }, - { "Event_AP_StaConnected", "RPC_ID__Event_AP_StaConnected", 771 }, - { "Event_AP_StaDisconnected", "RPC_ID__Event_AP_StaDisconnected", 772 }, - { "Event_WifiEventNoArgs", "RPC_ID__Event_WifiEventNoArgs", 773 }, - { "Event_StaScanDone", "RPC_ID__Event_StaScanDone", 774 }, - { "Event_StaConnected", "RPC_ID__Event_StaConnected", 775 }, - { "Event_StaDisconnected", "RPC_ID__Event_StaDisconnected", 776 }, - { "Event_Max", "RPC_ID__Event_Max", 777 }, -}; -static const ProtobufCIntRange rpc_id__value_ranges[] = { -{0, 0},{256, 1},{270, 6},{297, 31},{512, 87},{526, 92},{553, 117},{768, 173},{0, 183} -}; -static const ProtobufCEnumValueIndex rpc_id__enum_values_by_name[183] = -{ - { "Event_AP_StaConnected", 176 }, - { "Event_AP_StaDisconnected", 177 }, - { "Event_Base", 173 }, - { "Event_ESPInit", 174 }, - { "Event_Heartbeat", 175 }, - { "Event_Max", 182 }, - { "Event_StaConnected", 180 }, - { "Event_StaDisconnected", 181 }, - { "Event_StaScanDone", 179 }, - { "Event_WifiEventNoArgs", 178 }, - { "MsgId_Invalid", 0 }, - { "Req_Base", 1 }, - { "Req_ConfigHeartbeat", 13 }, - { "Req_GetCoprocessorFwVersion", 84 }, - { "Req_GetMACAddress", 2 }, - { "Req_GetWifiMode", 4 }, - { "Req_Max", 86 }, - { "Req_OTABegin", 8 }, - { "Req_OTAEnd", 10 }, - { "Req_OTAWrite", 9 }, - { "Req_SetMacAddress", 3 }, - { "Req_SetWifiMode", 5 }, - { "Req_Wifi80211Tx", 51 }, - { "Req_WifiApGetStaAid", 46 }, - { "Req_WifiApGetStaList", 45 }, - { "Req_WifiClearApList", 26 }, - { "Req_WifiClearFastConnect", 28 }, - { "Req_WifiConfig11bRate", 66 }, - { "Req_WifiConfig80211TxRate", 70 }, - { "Req_WifiConnect", 18 }, - { "Req_WifiConnectionlessModuleSetWakeInterval", 67 }, - { "Req_WifiDeauthSta", 29 }, - { "Req_WifiDeinit", 15 }, - { "Req_WifiDisablePmfConfig", 71 }, - { "Req_WifiDisconnect", 19 }, - { "Req_WifiFtmEndSession", 64 }, - { "Req_WifiFtmInitiateSession", 63 }, - { "Req_WifiFtmRespSetOffset", 65 }, - { "Req_WifiGetAnt", 57 }, - { "Req_WifiGetAntGpio", 55 }, - { "Req_WifiGetBand", 81 }, - { "Req_WifiGetBandMode", 83 }, - { "Req_WifiGetBandwidth", 34 }, - { "Req_WifiGetBandwidths", 79 }, - { "Req_WifiGetChannel", 36 }, - { "Req_WifiGetConfig", 21 }, - { "Req_WifiGetCountry", 38 }, - { "Req_WifiGetCountryCode", 69 }, - { "Req_WifiGetEventMask", 50 }, - { "Req_WifiGetInactiveTime", 60 }, - { "Req_WifiGetMaxTxPower", 12 }, - { "Req_WifiGetPromiscuous", 40 }, - { "Req_WifiGetPromiscuousCtrlFilter", 44 }, - { "Req_WifiGetPromiscuousFilter", 42 }, - { "Req_WifiGetProtocol", 32 }, - { "Req_WifiGetProtocols", 77 }, - { "Req_WifiGetPs", 7 }, - { "Req_WifiGetTsfTime", 58 }, - { "Req_WifiInit", 14 }, - { "Req_WifiRestore", 27 }, - { "Req_WifiScanGetApNum", 24 }, - { "Req_WifiScanGetApRecord", 85 }, - { "Req_WifiScanGetApRecords", 25 }, - { "Req_WifiScanStart", 22 }, - { "Req_WifiScanStop", 23 }, - { "Req_WifiSetAnt", 56 }, - { "Req_WifiSetAntGpio", 54 }, - { "Req_WifiSetBand", 80 }, - { "Req_WifiSetBandMode", 82 }, - { "Req_WifiSetBandwidth", 33 }, - { "Req_WifiSetBandwidths", 78 }, - { "Req_WifiSetChannel", 35 }, - { "Req_WifiSetConfig", 20 }, - { "Req_WifiSetCountry", 37 }, - { "Req_WifiSetCountryCode", 68 }, - { "Req_WifiSetCsi", 53 }, - { "Req_WifiSetCsiConfig", 52 }, - { "Req_WifiSetDynamicCs", 74 }, - { "Req_WifiSetEventMask", 49 }, - { "Req_WifiSetInactiveTime", 59 }, - { "Req_WifiSetMaxTxPower", 11 }, - { "Req_WifiSetPromiscuous", 39 }, - { "Req_WifiSetPromiscuousCtrlFilter", 43 }, - { "Req_WifiSetPromiscuousFilter", 41 }, - { "Req_WifiSetProtocol", 31 }, - { "Req_WifiSetProtocols", 76 }, - { "Req_WifiSetPs", 6 }, - { "Req_WifiSetRssiThreshold", 62 }, - { "Req_WifiSetStorage", 47 }, - { "Req_WifiSetVendorIe", 48 }, - { "Req_WifiStaGetAid", 72 }, - { "Req_WifiStaGetApInfo", 30 }, - { "Req_WifiStaGetNegotiatedPhymode", 73 }, - { "Req_WifiStaGetRssi", 75 }, - { "Req_WifiStart", 16 }, - { "Req_WifiStatisDump", 61 }, - { "Req_WifiStop", 17 }, - { "Resp_Base", 87 }, - { "Resp_ConfigHeartbeat", 99 }, - { "Resp_GetCoprocessorFwVersion", 170 }, - { "Resp_GetMACAddress", 88 }, - { "Resp_GetWifiMode", 90 }, - { "Resp_Max", 172 }, - { "Resp_OTABegin", 94 }, - { "Resp_OTAEnd", 96 }, - { "Resp_OTAWrite", 95 }, - { "Resp_SetMacAddress", 89 }, - { "Resp_SetWifiMode", 91 }, - { "Resp_Wifi80211Tx", 137 }, - { "Resp_WifiApGetStaAid", 132 }, - { "Resp_WifiApGetStaList", 131 }, - { "Resp_WifiClearApList", 112 }, - { "Resp_WifiClearFastConnect", 114 }, - { "Resp_WifiConfig11bRate", 152 }, - { "Resp_WifiConfig80211TxRate", 156 }, - { "Resp_WifiConnect", 104 }, - { "Resp_WifiConnectionlessModuleSetWakeInterval", 153 }, - { "Resp_WifiDeauthSta", 115 }, - { "Resp_WifiDeinit", 101 }, - { "Resp_WifiDisablePmfConfig", 157 }, - { "Resp_WifiDisconnect", 105 }, - { "Resp_WifiFtmEndSession", 150 }, - { "Resp_WifiFtmInitiateSession", 149 }, - { "Resp_WifiFtmRespSetOffset", 151 }, - { "Resp_WifiGetAnt", 143 }, - { "Resp_WifiGetAntGpio", 141 }, - { "Resp_WifiGetBand", 167 }, - { "Resp_WifiGetBandMode", 169 }, - { "Resp_WifiGetBandwidth", 120 }, - { "Resp_WifiGetBandwidths", 165 }, - { "Resp_WifiGetChannel", 122 }, - { "Resp_WifiGetConfig", 107 }, - { "Resp_WifiGetCountry", 124 }, - { "Resp_WifiGetCountryCode", 155 }, - { "Resp_WifiGetEventMask", 136 }, - { "Resp_WifiGetInactiveTime", 146 }, - { "Resp_WifiGetMaxTxPower", 98 }, - { "Resp_WifiGetPromiscuous", 126 }, - { "Resp_WifiGetPromiscuousCtrlFilter", 130 }, - { "Resp_WifiGetPromiscuousFilter", 128 }, - { "Resp_WifiGetProtocol", 118 }, - { "Resp_WifiGetProtocols", 163 }, - { "Resp_WifiGetPs", 93 }, - { "Resp_WifiGetTsfTime", 144 }, - { "Resp_WifiInit", 100 }, - { "Resp_WifiRestore", 113 }, - { "Resp_WifiScanGetApNum", 110 }, - { "Resp_WifiScanGetApRecord", 171 }, - { "Resp_WifiScanGetApRecords", 111 }, - { "Resp_WifiScanStart", 108 }, - { "Resp_WifiScanStop", 109 }, - { "Resp_WifiSetAnt", 142 }, - { "Resp_WifiSetAntGpio", 140 }, - { "Resp_WifiSetBand", 166 }, - { "Resp_WifiSetBandMode", 168 }, - { "Resp_WifiSetBandwidth", 119 }, - { "Resp_WifiSetBandwidths", 164 }, - { "Resp_WifiSetChannel", 121 }, - { "Resp_WifiSetConfig", 106 }, - { "Resp_WifiSetCountry", 123 }, - { "Resp_WifiSetCountryCode", 154 }, - { "Resp_WifiSetCsi", 139 }, - { "Resp_WifiSetCsiConfig", 138 }, - { "Resp_WifiSetDynamicCs", 160 }, - { "Resp_WifiSetEventMask", 135 }, - { "Resp_WifiSetInactiveTime", 145 }, - { "Resp_WifiSetMaxTxPower", 97 }, - { "Resp_WifiSetPromiscuous", 125 }, - { "Resp_WifiSetPromiscuousCtrlFilter", 129 }, - { "Resp_WifiSetPromiscuousFilter", 127 }, - { "Resp_WifiSetProtocol", 117 }, - { "Resp_WifiSetProtocols", 162 }, - { "Resp_WifiSetPs", 92 }, - { "Resp_WifiSetRssiThreshold", 148 }, - { "Resp_WifiSetStorage", 133 }, - { "Resp_WifiSetVendorIe", 134 }, - { "Resp_WifiStaGetAid", 158 }, - { "Resp_WifiStaGetApInfo", 116 }, - { "Resp_WifiStaGetNegotiatedPhymode", 159 }, - { "Resp_WifiStaGetRssi", 161 }, - { "Resp_WifiStart", 102 }, - { "Resp_WifiStatisDump", 147 }, - { "Resp_WifiStop", 103 }, -}; -const ProtobufCEnumDescriptor rpc_id__descriptor = -{ - PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC, - "RpcId", - "RpcId", - "RpcId", - "", - 183, - rpc_id__enum_values_by_number, - 183, - rpc_id__enum_values_by_name, - 8, - rpc_id__value_ranges, - NULL,NULL,NULL,NULL /* reserved[1234] */ -}; diff --git a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/esp_hosted_rpc.pb-c.h b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/esp_hosted_rpc.pb-c.h deleted file mode 100644 index 03a11fc..0000000 --- a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/esp_hosted_rpc.pb-c.h +++ /dev/null @@ -1,7219 +0,0 @@ -/* Generated by the protocol buffer compiler. DO NOT EDIT! */ -/* Generated from: esp_hosted_rpc.proto */ - -#ifndef PROTOBUF_C_esp_5fhosted_5frpc_2eproto__INCLUDED -#define PROTOBUF_C_esp_5fhosted_5frpc_2eproto__INCLUDED - -#include - -PROTOBUF_C__BEGIN_DECLS - -#if PROTOBUF_C_VERSION_NUMBER < 1003000 -# error This file was generated by a newer version of protoc-c which is incompatible with your libprotobuf-c headers. Please update your headers. -#elif 1004001 < PROTOBUF_C_MIN_COMPILER_VERSION -# error This file was generated by an older version of protoc-c which is incompatible with your libprotobuf-c headers. Please regenerate this file with a newer version of protoc-c. -#endif - - -typedef struct WifiInitConfig WifiInitConfig; -typedef struct WifiCountry WifiCountry; -typedef struct WifiActiveScanTime WifiActiveScanTime; -typedef struct WifiScanTime WifiScanTime; -typedef struct WifiScanConfig WifiScanConfig; -typedef struct WifiHeApInfo WifiHeApInfo; -typedef struct WifiApRecord WifiApRecord; -typedef struct WifiScanThreshold WifiScanThreshold; -typedef struct WifiPmfConfig WifiPmfConfig; -typedef struct WifiApConfig WifiApConfig; -typedef struct WifiStaConfig WifiStaConfig; -typedef struct WifiConfig WifiConfig; -typedef struct WifiStaInfo WifiStaInfo; -typedef struct WifiStaList WifiStaList; -typedef struct WifiPktRxCtrl WifiPktRxCtrl; -typedef struct WifiPromiscuousPkt WifiPromiscuousPkt; -typedef struct WifiPromiscuousFilter WifiPromiscuousFilter; -typedef struct WifiCsiConfig WifiCsiConfig; -typedef struct WifiCsiInfo WifiCsiInfo; -typedef struct WifiAntGpio WifiAntGpio; -typedef struct WifiAntGpioConfig WifiAntGpioConfig; -typedef struct WifiAntConfig WifiAntConfig; -typedef struct WifiActionTxReq WifiActionTxReq; -typedef struct WifiFtmInitiatorCfg WifiFtmInitiatorCfg; -typedef struct WifiEventStaScanDone WifiEventStaScanDone; -typedef struct WifiEventStaConnected WifiEventStaConnected; -typedef struct WifiEventStaDisconnected WifiEventStaDisconnected; -typedef struct WifiEventStaAuthmodeChange WifiEventStaAuthmodeChange; -typedef struct WifiEventStaWpsErPin WifiEventStaWpsErPin; -typedef struct ApCred ApCred; -typedef struct WifiEventStaWpsErSuccess WifiEventStaWpsErSuccess; -typedef struct WifiEventApProbeReqRx WifiEventApProbeReqRx; -typedef struct WifiEventBssRssiLow WifiEventBssRssiLow; -typedef struct WifiFtmReportEntry WifiFtmReportEntry; -typedef struct WifiEventFtmReport WifiEventFtmReport; -typedef struct WifiEventActionTxStatus WifiEventActionTxStatus; -typedef struct WifiEventRocDone WifiEventRocDone; -typedef struct WifiEventApWpsRgPin WifiEventApWpsRgPin; -typedef struct WifiEventApWpsRgFailReason WifiEventApWpsRgFailReason; -typedef struct WifiEventApWpsRgSuccess WifiEventApWpsRgSuccess; -typedef struct WifiProtocols WifiProtocols; -typedef struct WifiBandwidths WifiBandwidths; -typedef struct ConnectedSTAList ConnectedSTAList; -typedef struct RpcReqGetMacAddress RpcReqGetMacAddress; -typedef struct RpcRespGetMacAddress RpcRespGetMacAddress; -typedef struct RpcReqGetMode RpcReqGetMode; -typedef struct RpcRespGetMode RpcRespGetMode; -typedef struct RpcReqSetMode RpcReqSetMode; -typedef struct RpcRespSetMode RpcRespSetMode; -typedef struct RpcReqGetPs RpcReqGetPs; -typedef struct RpcRespGetPs RpcRespGetPs; -typedef struct RpcReqSetPs RpcReqSetPs; -typedef struct RpcRespSetPs RpcRespSetPs; -typedef struct RpcReqSetMacAddress RpcReqSetMacAddress; -typedef struct RpcRespSetMacAddress RpcRespSetMacAddress; -typedef struct RpcReqOTABegin RpcReqOTABegin; -typedef struct RpcRespOTABegin RpcRespOTABegin; -typedef struct RpcReqOTAWrite RpcReqOTAWrite; -typedef struct RpcRespOTAWrite RpcRespOTAWrite; -typedef struct RpcReqOTAEnd RpcReqOTAEnd; -typedef struct RpcRespOTAEnd RpcRespOTAEnd; -typedef struct RpcReqWifiSetMaxTxPower RpcReqWifiSetMaxTxPower; -typedef struct RpcRespWifiSetMaxTxPower RpcRespWifiSetMaxTxPower; -typedef struct RpcReqWifiGetMaxTxPower RpcReqWifiGetMaxTxPower; -typedef struct RpcRespWifiGetMaxTxPower RpcRespWifiGetMaxTxPower; -typedef struct RpcReqConfigHeartbeat RpcReqConfigHeartbeat; -typedef struct RpcRespConfigHeartbeat RpcRespConfigHeartbeat; -typedef struct RpcReqWifiInit RpcReqWifiInit; -typedef struct RpcRespWifiInit RpcRespWifiInit; -typedef struct RpcReqWifiDeinit RpcReqWifiDeinit; -typedef struct RpcRespWifiDeinit RpcRespWifiDeinit; -typedef struct RpcReqWifiSetConfig RpcReqWifiSetConfig; -typedef struct RpcRespWifiSetConfig RpcRespWifiSetConfig; -typedef struct RpcReqWifiGetConfig RpcReqWifiGetConfig; -typedef struct RpcRespWifiGetConfig RpcRespWifiGetConfig; -typedef struct RpcReqWifiConnect RpcReqWifiConnect; -typedef struct RpcRespWifiConnect RpcRespWifiConnect; -typedef struct RpcReqWifiDisconnect RpcReqWifiDisconnect; -typedef struct RpcRespWifiDisconnect RpcRespWifiDisconnect; -typedef struct RpcReqWifiStart RpcReqWifiStart; -typedef struct RpcRespWifiStart RpcRespWifiStart; -typedef struct RpcReqWifiStop RpcReqWifiStop; -typedef struct RpcRespWifiStop RpcRespWifiStop; -typedef struct RpcReqWifiScanStart RpcReqWifiScanStart; -typedef struct RpcRespWifiScanStart RpcRespWifiScanStart; -typedef struct RpcReqWifiScanStop RpcReqWifiScanStop; -typedef struct RpcRespWifiScanStop RpcRespWifiScanStop; -typedef struct RpcReqWifiScanGetApNum RpcReqWifiScanGetApNum; -typedef struct RpcRespWifiScanGetApNum RpcRespWifiScanGetApNum; -typedef struct RpcReqWifiScanGetApRecords RpcReqWifiScanGetApRecords; -typedef struct RpcRespWifiScanGetApRecords RpcRespWifiScanGetApRecords; -typedef struct RpcReqWifiScanGetApRecord RpcReqWifiScanGetApRecord; -typedef struct RpcRespWifiScanGetApRecord RpcRespWifiScanGetApRecord; -typedef struct RpcReqWifiClearApList RpcReqWifiClearApList; -typedef struct RpcRespWifiClearApList RpcRespWifiClearApList; -typedef struct RpcReqWifiRestore RpcReqWifiRestore; -typedef struct RpcRespWifiRestore RpcRespWifiRestore; -typedef struct RpcReqWifiClearFastConnect RpcReqWifiClearFastConnect; -typedef struct RpcRespWifiClearFastConnect RpcRespWifiClearFastConnect; -typedef struct RpcReqWifiDeauthSta RpcReqWifiDeauthSta; -typedef struct RpcRespWifiDeauthSta RpcRespWifiDeauthSta; -typedef struct RpcReqWifiStaGetApInfo RpcReqWifiStaGetApInfo; -typedef struct RpcRespWifiStaGetApInfo RpcRespWifiStaGetApInfo; -typedef struct RpcReqWifiSetProtocol RpcReqWifiSetProtocol; -typedef struct RpcRespWifiSetProtocol RpcRespWifiSetProtocol; -typedef struct RpcReqWifiGetProtocol RpcReqWifiGetProtocol; -typedef struct RpcRespWifiGetProtocol RpcRespWifiGetProtocol; -typedef struct RpcReqWifiSetBandwidth RpcReqWifiSetBandwidth; -typedef struct RpcRespWifiSetBandwidth RpcRespWifiSetBandwidth; -typedef struct RpcReqWifiGetBandwidth RpcReqWifiGetBandwidth; -typedef struct RpcRespWifiGetBandwidth RpcRespWifiGetBandwidth; -typedef struct RpcReqWifiSetChannel RpcReqWifiSetChannel; -typedef struct RpcRespWifiSetChannel RpcRespWifiSetChannel; -typedef struct RpcReqWifiGetChannel RpcReqWifiGetChannel; -typedef struct RpcRespWifiGetChannel RpcRespWifiGetChannel; -typedef struct RpcReqWifiSetStorage RpcReqWifiSetStorage; -typedef struct RpcRespWifiSetStorage RpcRespWifiSetStorage; -typedef struct RpcReqWifiSetCountryCode RpcReqWifiSetCountryCode; -typedef struct RpcRespWifiSetCountryCode RpcRespWifiSetCountryCode; -typedef struct RpcReqWifiGetCountryCode RpcReqWifiGetCountryCode; -typedef struct RpcRespWifiGetCountryCode RpcRespWifiGetCountryCode; -typedef struct RpcReqWifiSetCountry RpcReqWifiSetCountry; -typedef struct RpcRespWifiSetCountry RpcRespWifiSetCountry; -typedef struct RpcReqWifiGetCountry RpcReqWifiGetCountry; -typedef struct RpcRespWifiGetCountry RpcRespWifiGetCountry; -typedef struct RpcReqWifiApGetStaList RpcReqWifiApGetStaList; -typedef struct RpcRespWifiApGetStaList RpcRespWifiApGetStaList; -typedef struct RpcReqWifiApGetStaAid RpcReqWifiApGetStaAid; -typedef struct RpcReqWifiStaGetNegotiatedPhymode RpcReqWifiStaGetNegotiatedPhymode; -typedef struct RpcRespWifiStaGetNegotiatedPhymode RpcRespWifiStaGetNegotiatedPhymode; -typedef struct RpcRespWifiApGetStaAid RpcRespWifiApGetStaAid; -typedef struct RpcReqWifiStaGetRssi RpcReqWifiStaGetRssi; -typedef struct RpcRespWifiStaGetRssi RpcRespWifiStaGetRssi; -typedef struct RpcReqWifiStaGetAid RpcReqWifiStaGetAid; -typedef struct RpcRespWifiStaGetAid RpcRespWifiStaGetAid; -typedef struct RpcReqWifiSetProtocols RpcReqWifiSetProtocols; -typedef struct RpcRespWifiSetProtocols RpcRespWifiSetProtocols; -typedef struct RpcReqWifiGetProtocols RpcReqWifiGetProtocols; -typedef struct RpcRespWifiGetProtocols RpcRespWifiGetProtocols; -typedef struct RpcReqWifiSetBandwidths RpcReqWifiSetBandwidths; -typedef struct RpcRespWifiSetBandwidths RpcRespWifiSetBandwidths; -typedef struct RpcReqWifiGetBandwidths RpcReqWifiGetBandwidths; -typedef struct RpcRespWifiGetBandwidths RpcRespWifiGetBandwidths; -typedef struct RpcReqWifiSetBand RpcReqWifiSetBand; -typedef struct RpcRespWifiSetBand RpcRespWifiSetBand; -typedef struct RpcReqWifiGetBand RpcReqWifiGetBand; -typedef struct RpcRespWifiGetBand RpcRespWifiGetBand; -typedef struct RpcReqWifiSetBandMode RpcReqWifiSetBandMode; -typedef struct RpcRespWifiSetBandMode RpcRespWifiSetBandMode; -typedef struct RpcReqWifiGetBandMode RpcReqWifiGetBandMode; -typedef struct RpcRespWifiGetBandMode RpcRespWifiGetBandMode; -typedef struct RpcReqGetCoprocessorFwVersion RpcReqGetCoprocessorFwVersion; -typedef struct RpcRespGetCoprocessorFwVersion RpcRespGetCoprocessorFwVersion; -typedef struct RpcEventWifiEventNoArgs RpcEventWifiEventNoArgs; -typedef struct RpcEventESPInit RpcEventESPInit; -typedef struct RpcEventHeartbeat RpcEventHeartbeat; -typedef struct RpcEventAPStaDisconnected RpcEventAPStaDisconnected; -typedef struct RpcEventAPStaConnected RpcEventAPStaConnected; -typedef struct RpcEventStaScanDone RpcEventStaScanDone; -typedef struct RpcEventStaConnected RpcEventStaConnected; -typedef struct RpcEventStaDisconnected RpcEventStaDisconnected; -typedef struct Rpc Rpc; - - -/* --- enums --- */ - -typedef enum _RpcWifiBw { - RPC__WIFI_BW__BW_Invalid = 0, - RPC__WIFI_BW__HT20 = 1, - RPC__WIFI_BW__HT40 = 2 - PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RPC__WIFI_BW) -} RpcWifiBw; -typedef enum _RpcWifiPowerSave { - RPC__WIFI_POWER_SAVE__PS_Invalid = 0, - RPC__WIFI_POWER_SAVE__MIN_MODEM = 1, - RPC__WIFI_POWER_SAVE__MAX_MODEM = 2 - PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RPC__WIFI_POWER_SAVE) -} RpcWifiPowerSave; -typedef enum _RpcWifiSecProt { - RPC__WIFI_SEC_PROT__Open = 0, - RPC__WIFI_SEC_PROT__WEP = 1, - RPC__WIFI_SEC_PROT__WPA_PSK = 2, - RPC__WIFI_SEC_PROT__WPA2_PSK = 3, - RPC__WIFI_SEC_PROT__WPA_WPA2_PSK = 4, - RPC__WIFI_SEC_PROT__WPA2_ENTERPRISE = 5, - RPC__WIFI_SEC_PROT__WPA3_PSK = 6, - RPC__WIFI_SEC_PROT__WPA2_WPA3_PSK = 7 - PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RPC__WIFI_SEC_PROT) -} RpcWifiSecProt; -/* - * enums for Control path - */ -typedef enum _RpcStatus { - RPC__STATUS__Connected = 0, - RPC__STATUS__Not_Connected = 1, - RPC__STATUS__No_AP_Found = 2, - RPC__STATUS__Connection_Fail = 3, - RPC__STATUS__Invalid_Argument = 4, - RPC__STATUS__Out_Of_Range = 5 - PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RPC__STATUS) -} RpcStatus; -typedef enum _RpcType { - RPC_TYPE__MsgType_Invalid = 0, - RPC_TYPE__Req = 1, - RPC_TYPE__Resp = 2, - RPC_TYPE__Event = 3, - RPC_TYPE__MsgType_Max = 4 - PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RPC_TYPE) -} RpcType; -typedef enum _RpcId { - RPC_ID__MsgId_Invalid = 0, - /* - ** Request Msgs * - */ - /* - *0x100 - */ - RPC_ID__Req_Base = 256, - /* - *0x101 - */ - RPC_ID__Req_GetMACAddress = 257, - /* - *0x102 - */ - RPC_ID__Req_SetMacAddress = 258, - /* - *0x103 - */ - RPC_ID__Req_GetWifiMode = 259, - /* - *0x104 - */ - RPC_ID__Req_SetWifiMode = 260, - /* - *0x10e - */ - RPC_ID__Req_WifiSetPs = 270, - /* - *0x10f - */ - RPC_ID__Req_WifiGetPs = 271, - /* - *0x110 - */ - RPC_ID__Req_OTABegin = 272, - /* - *0x111 - */ - RPC_ID__Req_OTAWrite = 273, - /* - *0x112 - */ - RPC_ID__Req_OTAEnd = 274, - /* - *0x113 - */ - RPC_ID__Req_WifiSetMaxTxPower = 275, - /* - *0x114 - */ - RPC_ID__Req_WifiGetMaxTxPower = 276, - /* - *0x115 - */ - RPC_ID__Req_ConfigHeartbeat = 277, - /* - *0x116 - */ - RPC_ID__Req_WifiInit = 278, - /* - *0x117 - */ - RPC_ID__Req_WifiDeinit = 279, - /* - *0x118 - */ - RPC_ID__Req_WifiStart = 280, - /* - *0x119 - */ - RPC_ID__Req_WifiStop = 281, - /* - *0x11a - */ - RPC_ID__Req_WifiConnect = 282, - /* - *0x11b - */ - RPC_ID__Req_WifiDisconnect = 283, - /* - *0x11c - */ - RPC_ID__Req_WifiSetConfig = 284, - /* - *0x11d - */ - RPC_ID__Req_WifiGetConfig = 285, - /* - *0x11e - */ - RPC_ID__Req_WifiScanStart = 286, - /* - *0x11f - */ - RPC_ID__Req_WifiScanStop = 287, - /* - *0x120 - */ - RPC_ID__Req_WifiScanGetApNum = 288, - /* - *0x121 - */ - RPC_ID__Req_WifiScanGetApRecords = 289, - /* - *0x122 - */ - RPC_ID__Req_WifiClearApList = 290, - /* - *0x123 - */ - RPC_ID__Req_WifiRestore = 291, - /* - *0x124 - */ - RPC_ID__Req_WifiClearFastConnect = 292, - /* - *0x125 - */ - RPC_ID__Req_WifiDeauthSta = 293, - /* - *0x126 - */ - RPC_ID__Req_WifiStaGetApInfo = 294, - /* - *Req_WifiSetPs = 295; //0x127 - *Req_WifiGetPs = 296; //0x128 - */ - /* - *0x129 - */ - RPC_ID__Req_WifiSetProtocol = 297, - /* - *0x12a - */ - RPC_ID__Req_WifiGetProtocol = 298, - /* - *0x12b - */ - RPC_ID__Req_WifiSetBandwidth = 299, - /* - *0x12c - */ - RPC_ID__Req_WifiGetBandwidth = 300, - /* - *0x12d - */ - RPC_ID__Req_WifiSetChannel = 301, - /* - *0x12e - */ - RPC_ID__Req_WifiGetChannel = 302, - /* - *0x12f - */ - RPC_ID__Req_WifiSetCountry = 303, - /* - *0x130 - */ - RPC_ID__Req_WifiGetCountry = 304, - /* - * Req_WifiSetPromiscuousRxCb = 305; //0x131 - */ - /* - *0x131 - */ - RPC_ID__Req_WifiSetPromiscuous = 305, - /* - *0x132 - */ - RPC_ID__Req_WifiGetPromiscuous = 306, - /* - *0x133 - */ - RPC_ID__Req_WifiSetPromiscuousFilter = 307, - /* - *0x134 - */ - RPC_ID__Req_WifiGetPromiscuousFilter = 308, - /* - *0x135 - */ - RPC_ID__Req_WifiSetPromiscuousCtrlFilter = 309, - /* - *0x136 - */ - RPC_ID__Req_WifiGetPromiscuousCtrlFilter = 310, - /* - *0x137 - */ - RPC_ID__Req_WifiApGetStaList = 311, - /* - *0x138 - */ - RPC_ID__Req_WifiApGetStaAid = 312, - /* - *0x139 - */ - RPC_ID__Req_WifiSetStorage = 313, - /* - *0x13a - */ - RPC_ID__Req_WifiSetVendorIe = 314, - /* - * Req_WifiSetVendorIeCb = 315; //0x13b - */ - /* - *0x13b - */ - RPC_ID__Req_WifiSetEventMask = 315, - /* - *0x13c - */ - RPC_ID__Req_WifiGetEventMask = 316, - /* - *0x13d - */ - RPC_ID__Req_Wifi80211Tx = 317, - /* - * Req_WifiSetCsiRxCb = 318; //0x13e - */ - /* - *0x13e - */ - RPC_ID__Req_WifiSetCsiConfig = 318, - /* - *0x13f - */ - RPC_ID__Req_WifiSetCsi = 319, - /* - *0x140 - */ - RPC_ID__Req_WifiSetAntGpio = 320, - /* - *0x141 - */ - RPC_ID__Req_WifiGetAntGpio = 321, - /* - *0x142 - */ - RPC_ID__Req_WifiSetAnt = 322, - /* - *0x143 - */ - RPC_ID__Req_WifiGetAnt = 323, - /* - *0x144 - */ - RPC_ID__Req_WifiGetTsfTime = 324, - /* - *0x145 - */ - RPC_ID__Req_WifiSetInactiveTime = 325, - /* - *0x146 - */ - RPC_ID__Req_WifiGetInactiveTime = 326, - /* - *0x147 - */ - RPC_ID__Req_WifiStatisDump = 327, - /* - *0x148 - */ - RPC_ID__Req_WifiSetRssiThreshold = 328, - /* - *0x149 - */ - RPC_ID__Req_WifiFtmInitiateSession = 329, - /* - *0x14a - */ - RPC_ID__Req_WifiFtmEndSession = 330, - /* - *0x14b - */ - RPC_ID__Req_WifiFtmRespSetOffset = 331, - /* - *0x14c - */ - RPC_ID__Req_WifiConfig11bRate = 332, - /* - *0x14d - */ - RPC_ID__Req_WifiConnectionlessModuleSetWakeInterval = 333, - /* - *0x14e - */ - RPC_ID__Req_WifiSetCountryCode = 334, - /* - *0x14f - */ - RPC_ID__Req_WifiGetCountryCode = 335, - /* - *0x150 - */ - RPC_ID__Req_WifiConfig80211TxRate = 336, - /* - *0x151 - */ - RPC_ID__Req_WifiDisablePmfConfig = 337, - /* - *0x152 - */ - RPC_ID__Req_WifiStaGetAid = 338, - /* - *0x153 - */ - RPC_ID__Req_WifiStaGetNegotiatedPhymode = 339, - /* - *0x154 - */ - RPC_ID__Req_WifiSetDynamicCs = 340, - /* - *0x155 - */ - RPC_ID__Req_WifiStaGetRssi = 341, - /* - *0x156 - */ - RPC_ID__Req_WifiSetProtocols = 342, - /* - *0x157 - */ - RPC_ID__Req_WifiGetProtocols = 343, - /* - *0x158 - */ - RPC_ID__Req_WifiSetBandwidths = 344, - /* - *0x159 - */ - RPC_ID__Req_WifiGetBandwidths = 345, - /* - *0x15a - */ - RPC_ID__Req_WifiSetBand = 346, - /* - *0x15b - */ - RPC_ID__Req_WifiGetBand = 347, - /* - *0x15c - */ - RPC_ID__Req_WifiSetBandMode = 348, - /* - *0x15d - */ - RPC_ID__Req_WifiGetBandMode = 349, - /* - *0x15e - */ - RPC_ID__Req_GetCoprocessorFwVersion = 350, - /* - *0x15f - */ - RPC_ID__Req_WifiScanGetApRecord = 351, - /* - * Add new control path command response before Req_Max - * and update Req_Max - */ - /* - *0x160 - */ - RPC_ID__Req_Max = 352, - /* - ** Response Msgs * - */ - RPC_ID__Resp_Base = 512, - RPC_ID__Resp_GetMACAddress = 513, - RPC_ID__Resp_SetMacAddress = 514, - RPC_ID__Resp_GetWifiMode = 515, - RPC_ID__Resp_SetWifiMode = 516, - RPC_ID__Resp_WifiSetPs = 526, - RPC_ID__Resp_WifiGetPs = 527, - RPC_ID__Resp_OTABegin = 528, - RPC_ID__Resp_OTAWrite = 529, - RPC_ID__Resp_OTAEnd = 530, - RPC_ID__Resp_WifiSetMaxTxPower = 531, - RPC_ID__Resp_WifiGetMaxTxPower = 532, - RPC_ID__Resp_ConfigHeartbeat = 533, - RPC_ID__Resp_WifiInit = 534, - RPC_ID__Resp_WifiDeinit = 535, - RPC_ID__Resp_WifiStart = 536, - RPC_ID__Resp_WifiStop = 537, - RPC_ID__Resp_WifiConnect = 538, - RPC_ID__Resp_WifiDisconnect = 539, - RPC_ID__Resp_WifiSetConfig = 540, - RPC_ID__Resp_WifiGetConfig = 541, - RPC_ID__Resp_WifiScanStart = 542, - RPC_ID__Resp_WifiScanStop = 543, - RPC_ID__Resp_WifiScanGetApNum = 544, - RPC_ID__Resp_WifiScanGetApRecords = 545, - RPC_ID__Resp_WifiClearApList = 546, - RPC_ID__Resp_WifiRestore = 547, - RPC_ID__Resp_WifiClearFastConnect = 548, - RPC_ID__Resp_WifiDeauthSta = 549, - RPC_ID__Resp_WifiStaGetApInfo = 550, - /* - *Resp_WifiSetPs = 551; - *Resp_WifiGetPs = 552; - */ - RPC_ID__Resp_WifiSetProtocol = 553, - RPC_ID__Resp_WifiGetProtocol = 554, - RPC_ID__Resp_WifiSetBandwidth = 555, - RPC_ID__Resp_WifiGetBandwidth = 556, - RPC_ID__Resp_WifiSetChannel = 557, - RPC_ID__Resp_WifiGetChannel = 558, - RPC_ID__Resp_WifiSetCountry = 559, - RPC_ID__Resp_WifiGetCountry = 560, - /* - * Resp_WifiSetPromiscuousRxCb = 561; - */ - RPC_ID__Resp_WifiSetPromiscuous = 561, - RPC_ID__Resp_WifiGetPromiscuous = 562, - RPC_ID__Resp_WifiSetPromiscuousFilter = 563, - RPC_ID__Resp_WifiGetPromiscuousFilter = 564, - RPC_ID__Resp_WifiSetPromiscuousCtrlFilter = 565, - RPC_ID__Resp_WifiGetPromiscuousCtrlFilter = 566, - RPC_ID__Resp_WifiApGetStaList = 567, - RPC_ID__Resp_WifiApGetStaAid = 568, - RPC_ID__Resp_WifiSetStorage = 569, - RPC_ID__Resp_WifiSetVendorIe = 570, - /* - * Resp_WifiSetVendorIeCb = 571; - */ - RPC_ID__Resp_WifiSetEventMask = 571, - RPC_ID__Resp_WifiGetEventMask = 572, - RPC_ID__Resp_Wifi80211Tx = 573, - /* - * Resp_WifiSetCsiRxCb = 573; - */ - RPC_ID__Resp_WifiSetCsiConfig = 574, - RPC_ID__Resp_WifiSetCsi = 575, - RPC_ID__Resp_WifiSetAntGpio = 576, - RPC_ID__Resp_WifiGetAntGpio = 577, - RPC_ID__Resp_WifiSetAnt = 578, - RPC_ID__Resp_WifiGetAnt = 579, - RPC_ID__Resp_WifiGetTsfTime = 580, - RPC_ID__Resp_WifiSetInactiveTime = 581, - RPC_ID__Resp_WifiGetInactiveTime = 582, - RPC_ID__Resp_WifiStatisDump = 583, - RPC_ID__Resp_WifiSetRssiThreshold = 584, - RPC_ID__Resp_WifiFtmInitiateSession = 585, - RPC_ID__Resp_WifiFtmEndSession = 586, - RPC_ID__Resp_WifiFtmRespSetOffset = 587, - RPC_ID__Resp_WifiConfig11bRate = 588, - RPC_ID__Resp_WifiConnectionlessModuleSetWakeInterval = 589, - RPC_ID__Resp_WifiSetCountryCode = 590, - RPC_ID__Resp_WifiGetCountryCode = 591, - RPC_ID__Resp_WifiConfig80211TxRate = 592, - RPC_ID__Resp_WifiDisablePmfConfig = 593, - RPC_ID__Resp_WifiStaGetAid = 594, - RPC_ID__Resp_WifiStaGetNegotiatedPhymode = 595, - RPC_ID__Resp_WifiSetDynamicCs = 596, - RPC_ID__Resp_WifiStaGetRssi = 597, - RPC_ID__Resp_WifiSetProtocols = 598, - RPC_ID__Resp_WifiGetProtocols = 599, - RPC_ID__Resp_WifiSetBandwidths = 600, - RPC_ID__Resp_WifiGetBandwidths = 601, - RPC_ID__Resp_WifiSetBand = 602, - RPC_ID__Resp_WifiGetBand = 603, - RPC_ID__Resp_WifiSetBandMode = 604, - RPC_ID__Resp_WifiGetBandMode = 605, - RPC_ID__Resp_GetCoprocessorFwVersion = 606, - RPC_ID__Resp_WifiScanGetApRecord = 607, - /* - * Add new control path command response before Resp_Max - * and update Resp_Max - */ - RPC_ID__Resp_Max = 608, - /* - ** Event Msgs * - */ - RPC_ID__Event_Base = 768, - RPC_ID__Event_ESPInit = 769, - RPC_ID__Event_Heartbeat = 770, - RPC_ID__Event_AP_StaConnected = 771, - RPC_ID__Event_AP_StaDisconnected = 772, - RPC_ID__Event_WifiEventNoArgs = 773, - RPC_ID__Event_StaScanDone = 774, - RPC_ID__Event_StaConnected = 775, - RPC_ID__Event_StaDisconnected = 776, - /* - * Add new control path command notification before Event_Max - * and update Event_Max - */ - RPC_ID__Event_Max = 777 - PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RPC_ID) -} RpcId; - -/* --- messages --- */ - -struct WifiInitConfig -{ - ProtobufCMessage base; - /* - **< WiFi static RX buffer number - */ - int32_t static_rx_buf_num; - /* - **< WiFi dynamic RX buffer number - */ - int32_t dynamic_rx_buf_num; - /* - **< WiFi TX buffer type - */ - int32_t tx_buf_type; - /* - **< WiFi static TX buffer number - */ - int32_t static_tx_buf_num; - /* - **< WiFi dynamic TX buffer number - */ - int32_t dynamic_tx_buf_num; - /* - **< WiFi TX cache buffer number - */ - int32_t cache_tx_buf_num; - /* - **< WiFi channel state information enable flag - */ - int32_t csi_enable; - /* - **< WiFi AMPDU RX feature enable flag - */ - int32_t ampdu_rx_enable; - /* - **< WiFi AMPDU TX feature enable flag - */ - int32_t ampdu_tx_enable; - /* - **< WiFi AMSDU TX feature enable flag - */ - int32_t amsdu_tx_enable; - /* - **< WiFi NVS flash enable flag - */ - int32_t nvs_enable; - /* - **< Nano option for printf/scan family enable flag - */ - int32_t nano_enable; - /* - **< WiFi Block Ack RX window size - */ - int32_t rx_ba_win; - /* - **< WiFi Task Core ID - */ - int32_t wifi_task_core_id; - /* - **< WiFi softAP maximum length of the beacon - */ - int32_t beacon_max_len; - /* - **< WiFi management short buffer number, the minimum value is 6, the maximum value is 32 - */ - int32_t mgmt_sbuf_num; - /* - **< Enables additional WiFi features and capabilities - */ - uint64_t feature_caps; - /* - **< WiFi Power Management for station at disconnected status - */ - protobuf_c_boolean sta_disconnected_pm; - /* - **< Maximum encrypt number of peers supported by espnow - */ - int32_t espnow_max_encrypt_num; - /* - **< WiFi init magic number, it should be the last field - */ - int32_t magic; -}; -#define WIFI_INIT_CONFIG__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_init_config__descriptor) \ - , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } - - -struct WifiCountry -{ - ProtobufCMessage base; - /* - **< country code string of 3 chars - */ - ProtobufCBinaryData cc; - /* - **< start channel - */ - uint32_t schan; - /* - **< total channel number - */ - uint32_t nchan; - /* - **< This field is used for getting WiFi maximum transmitting power, - *call esp_wifi_set_max_tx_power to set the maximum transmitting power. - */ - int32_t max_tx_power; - /* - **< country policy - */ - int32_t policy; -}; -#define WIFI_COUNTRY__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_country__descriptor) \ - , {0,NULL}, 0, 0, 0, 0 } - - -struct WifiActiveScanTime -{ - ProtobufCMessage base; - /* - **< minimum active scan time per channel, units: millisecond - */ - uint32_t min; - /* - **< maximum active scan time per channel, units: millisecond, values above 1500ms may - *cause station to disconnect from AP and are not recommended. - */ - uint32_t max; -}; -#define WIFI_ACTIVE_SCAN_TIME__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_active_scan_time__descriptor) \ - , 0, 0 } - - -struct WifiScanTime -{ - ProtobufCMessage base; - /* - **< active scan time per channel, units: millisecond. - */ - WifiActiveScanTime *active; - /* - **< passive scan time per channel, units: millisecond, values above 1500ms may - *cause station to disconnect from AP and are not recommended. - */ - uint32_t passive; -}; -#define WIFI_SCAN_TIME__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_scan_time__descriptor) \ - , NULL, 0 } - - -struct WifiScanConfig -{ - ProtobufCMessage base; - /* - **< SSID of AP 33char - */ - ProtobufCBinaryData ssid; - /* - **< MAC address of AP 6char - */ - ProtobufCBinaryData bssid; - /* - **< channel, scan the specific channel - */ - uint32_t channel; - /* - **< enable to scan AP whose SSID is hidden - */ - protobuf_c_boolean show_hidden; - /* - **< scan type, active or passive - */ - int32_t scan_type; - /* - **< scan time per channel - */ - WifiScanTime *scan_time; - /* - **< time spent at home channel between scanning consecutive channels. - */ - uint32_t home_chan_dwell_time; -}; -#define WIFI_SCAN_CONFIG__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_scan_config__descriptor) \ - , {0,NULL}, {0,NULL}, 0, 0, 0, NULL, 0 } - - -struct WifiHeApInfo -{ - ProtobufCMessage base; - /* - *uint8_t bss_color:6; **< an unsigned integer whose value is the BSS Color of the BSS corresponding to the AP * - *uint8_t partial_bss_color:1; **< indicate if an AID assignment rule based on the BSS color * - *uint8_t bss_color_disabled:1; **< indicate if the use of BSS color is disabled * - */ - /* - * Manually have to parse for above bits - */ - uint32_t bitmask; - /* - **< in M-BSSID set, identifies the nontransmitted BSSID - */ - uint32_t bssid_index; -}; -#define WIFI_HE_AP_INFO__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_he_ap_info__descriptor) \ - , 0, 0 } - - -struct WifiApRecord -{ - ProtobufCMessage base; - /* - **< MAC address of AP 6char - */ - ProtobufCBinaryData bssid; - /* - **< SSID of AP 33char - */ - ProtobufCBinaryData ssid; - /* - **< channel of AP - */ - uint32_t primary; - /* - **< secondary channel of AP - */ - int32_t second; - /* - **< signal strength of AP - */ - int32_t rssi; - /* - **< authmode of AP - */ - int32_t authmode; - /* - **< pairwise cipher of AP - */ - int32_t pairwise_cipher; - /* - **< group cipher of AP - */ - int32_t group_cipher; - /* - **< antenna used to receive beacon from AP - */ - int32_t ant; - /* - *uint32_t phy_11b:1; **< bit: 0 flag to identify if 11b mode is enabled or not * - *uint32_t phy_11g:1; **< bit: 1 flag to identify if 11g mode is enabled or not * - *uint32_t phy_11n:1; **< bit: 2 flag to identify if 11n mode is enabled or not * - *uint32_t phy_lr:1; **< bit: 3 flag to identify if low rate is enabled or not * - *uint32_t wps:1; **< bit: 4 flag to identify if WPS is supported or not * - *uint32_t ftm_responder:1; **< bit: 5 flag to identify if FTM is supported in responder mode * - *uint32_t ftm_initiator:1; **< bit: 6 flag to identify if FTM is supported in initiator mode * - *uint32_t reserved:25; **< bit: 7..31 reserved * - */ - /* - * Manually have to parse for above bits - */ - uint32_t bitmask; - /* - **< country information of AP - */ - WifiCountry *country; - WifiHeApInfo *he_ap; - /* - **< For AP 20 MHz this value is set to 1. For AP 40 MHz this value is set to 2. - *For AP 80 MHz this value is set to 3. For AP 160MHz this value is set to 4. - *For AP 80+80MHz this value is set to 5 - */ - uint32_t bandwidth; - /* - **< This fields are used only AP bandwidth is 80 and 160 MHz, to transmit the center channel - *frequency of the BSS. For AP bandwidth is 80 + 80 MHz, it is the center channel frequency - *of the lower frequency segment. - */ - uint32_t vht_ch_freq1; - /* - **< This fields are used only AP bandwidth is 80 + 80 MHz, and is used to transmit the center - *channel frequency of the second segment. - */ - uint32_t vht_ch_freq2; -}; -#define WIFI_AP_RECORD__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_ap_record__descriptor) \ - , {0,NULL}, {0,NULL}, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0 } - - -struct WifiScanThreshold -{ - ProtobufCMessage base; - /* - **< The minimum rssi to accept in the fast scan mode - */ - int32_t rssi; - /* - **< The weakest authmode to accept in the fast scan mode - *Note: Incase this value is not set and password is set as per WPA2 standards(password len >= 8), - *it will be defaulted to WPA2 and device won't connect to deprecated WEP/WPA networks. - *Please set authmode threshold as WIFI_AUTH_WEP/WIFI_AUTH_WPA_PSK to connect to WEP/WPA networks - */ - int32_t authmode; -}; -#define WIFI_SCAN_THRESHOLD__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_scan_threshold__descriptor) \ - , 0, 0 } - - -struct WifiPmfConfig -{ - ProtobufCMessage base; - /* - **< Deprecated variable. Device will always connect in PMF mode if other device also advertizes PMF capability. - */ - protobuf_c_boolean capable; - /* - **< Advertizes that Protected Management Frame is required. Device will not associate to non-PMF capable devices. - */ - protobuf_c_boolean required; -}; -#define WIFI_PMF_CONFIG__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_pmf_config__descriptor) \ - , 0, 0 } - - -struct WifiApConfig -{ - ProtobufCMessage base; - /* - **< SSID of ESP32 soft-AP. If ssid_len field is 0, this must be a Null terminated string. Otherwise, length is set according to ssid_len. 32 char - */ - ProtobufCBinaryData ssid; - /* - **< Password of ESP32 soft-AP. 64 char - */ - ProtobufCBinaryData password; - /* - **< Optional length of SSID field. - */ - uint32_t ssid_len; - /* - **< Channel of ESP32 soft-AP - */ - uint32_t channel; - /* - **< Auth mode of ESP32 soft-AP. Do not support AUTH_WEP in soft-AP mode - */ - int32_t authmode; - /* - **< Broadcast SSID or not, default 0, broadcast the SSID - */ - uint32_t ssid_hidden; - /* - **< Max number of stations allowed to connect in - */ - uint32_t max_connection; - /* - **< Beacon interval which should be multiples of 100. Unit: TU(time unit, 1 TU = 1024 us). Range: 100 ~ 60000. Default value: 100 - */ - uint32_t beacon_interval; - /* - **< pairwise cipher of SoftAP, group cipher will be derived using this. - *cipher values are valid starting from WIFI_CIPHER_TYPE_TKIP, enum values before that will be considered as invalid and default cipher suites(TKIP+CCMP) will be used. - *Valid cipher suites in softAP mode are WIFI_CIPHER_TYPE_TKIP, WIFI_CIPHER_TYPE_CCMP and WIFI_CIPHER_TYPE_TKIP_CCMP. - */ - int32_t pairwise_cipher; - /* - **< Enable FTM Responder mode - */ - protobuf_c_boolean ftm_responder; - /* - **< Configuration for Protected Management Frame - */ - WifiPmfConfig *pmf_cfg; - /* - **< Configuration for SAE PWE derivation method - */ - int32_t sae_pwe_h2e; -}; -#define WIFI_AP_CONFIG__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_ap_config__descriptor) \ - , {0,NULL}, {0,NULL}, 0, 0, 0, 0, 0, 0, 0, 0, NULL, 0 } - - -struct WifiStaConfig -{ - ProtobufCMessage base; - /* - **< SSID of target AP. 32char - */ - ProtobufCBinaryData ssid; - /* - **< Password of target AP. 64char - */ - ProtobufCBinaryData password; - /* - **< do all channel scan or fast scan - */ - int32_t scan_method; - /* - **< whether set MAC address of target AP or not. Generally, station_config.bssid_set needs to be 0, - *and it needs to be 1 only when users need to check the MAC address of the AP. - */ - protobuf_c_boolean bssid_set; - /* - **< MAC address of target AP 6char - */ - ProtobufCBinaryData bssid; - /* - **< channel of target AP. Set to 1~13 to scan starting from the specified channel - *before connecting to AP. If the channel of AP is unknown, set it to 0. - */ - uint32_t channel; - /* - **< Listen interval for ESP32 station to receive beacon when WIFI_PS_MAX_MODEM is set. - *Units: AP beacon intervals. Defaults to 3 if set to 0. - */ - uint32_t listen_interval; - /* - **< sort the connect AP in the list by rssi or security mode - */ - int32_t sort_method; - /* - **< When sort_method is set, only APs which have an auth mode that is more secure - *than the selected auth mode and a signal stronger than the minimum RSSI will be used. - */ - WifiScanThreshold *threshold; - /* - **< Configuration for Protected Management Frame. Will be advertized in RSN Capabilities in RSN IE. - */ - WifiPmfConfig *pmf_cfg; - /* - *uint32_t rm_enabled:1; **< Whether Radio Measurements are enabled for the connection * - *uint32_t btm_enabled:1; **< Whether BSS Transition Management is enabled for the connection * - *uint32_t mbo_enabled:1; **< Whether MBO is enabled for the connection * - *uint32_t ft_enabled:1; **< Whether FT is enabled for the connection * - *uint32_t owe_enabled:1; **< Whether OWE is enabled for the connection * - *uint32_t transition_disable:1; **< Whether to enable transition disable feature * - *uint32_t reserved:26; **< Reserved for future feature set * - */ - uint32_t bitmask; - /* - **< Whether SAE hash to element is enabled - */ - int32_t sae_pwe_h2e; - /* - **< Number of connection retries station will do before moving to next AP. - *scan_method should be set as WIFI_ALL_CHANNEL_SCAN to use this config. - *Note: Enabling this may cause connection time to increase incase best AP doesn't behave properly. - */ - uint32_t failure_retry_cnt; - /* - *uint32_t he_dcm_set:1; **< Whether DCM max.constellation for transmission and reception is set. * - *uint32_t he_dcm_max_constellation_tx:2; **< Indicate the max.constellation for DCM in TB PPDU the STA supported. 0: not supported. 1: BPSK, 2: QPSK, 3: 16-QAM. The default value is 3. * - *uint32_t he_dcm_max_constellation_rx:2; **< Indicate the max.constellation for DCM in both Data field and HE-SIG-B field the STA supported. 0: not supported. 1: BPSK, 2: QPSK, 3: 16-QAM. The default value is 3. * - *uint32_t he_mcs9_enabled:1; **< Whether to support HE-MCS 0 to 9. The default value is 0. * - *uint32_t he_su_beamformee_disabled:1; **< Whether to disable support for operation as an SU beamformee. * - *uint32_t he_trig_su_bmforming_feedback_disabled:1; **< Whether to disable support the transmission of SU feedback in an HE TB sounding sequence. * - *uint32_t he_trig_mu_bmforming_partial_feedback_disabled:1; **< Whether to disable support the transmission of partial-bandwidth MU feedback in an HE TB sounding sequence. * - * uint32_t he_trig_cqi_feedback_disabled:1; **< Whether to disable support the transmission of CQI feedback in an HE TB sounding sequence. * - * uint32_t he_reserved:22; **< Reserved for future feature set * - */ - uint32_t he_bitmask; - /* - **< Password identifier for H2E. this needs to be null terminated string. SAE_H2E_IDENTIFIER_LEN chars - */ - ProtobufCBinaryData sae_h2e_identifier; -}; -#define WIFI_STA_CONFIG__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_sta_config__descriptor) \ - , {0,NULL}, {0,NULL}, 0, 0, {0,NULL}, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, {0,NULL} } - - -typedef enum { - WIFI_CONFIG__U__NOT_SET = 0, - WIFI_CONFIG__U_AP = 1, - WIFI_CONFIG__U_STA = 2 - PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(WIFI_CONFIG__U__CASE) -} WifiConfig__UCase; - -struct WifiConfig -{ - ProtobufCMessage base; - WifiConfig__UCase u_case; - union { - /* - **< configuration of AP - */ - WifiApConfig *ap; - /* - **< configuration of STA - */ - WifiStaConfig *sta; - }; -}; -#define WIFI_CONFIG__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_config__descriptor) \ - , WIFI_CONFIG__U__NOT_SET, {0} } - - -struct WifiStaInfo -{ - ProtobufCMessage base; - /* - **< mac address 6 char - */ - ProtobufCBinaryData mac; - /* - **< current average rssi of sta connected - */ - int32_t rssi; - /* - *uint32_t phy_11b:1; **< bit: 0 flag to identify if 11b mode is enabled or not * - *uint32_t phy_11g:1; **< bit: 1 flag to identify if 11g mode is enabled or not * - *uint32_t phy_11n:1; **< bit: 2 flag to identify if 11n mode is enabled or not * - *uint32_t phy_lr:1; **< bit: 3 flag to identify if low rate is enabled or not * - *uint32_t phy_11x:1; **< bit: 4 flag to identify identify if 11ax mode is enabled or not * - *uint32_t is_mesh_child:1; **< bit: 5 flag to identify mesh child * - *uint32_t reserved:26; **< bit: 6..31 reserved * - */ - uint32_t bitmask; -}; -#define WIFI_STA_INFO__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_sta_info__descriptor) \ - , {0,NULL}, 0, 0 } - - -struct WifiStaList -{ - ProtobufCMessage base; - /* - **< station list - */ - size_t n_sta; - WifiStaInfo **sta; - /* - **< number of stations in the list (other entries are invalid) - */ - int32_t num; -}; -#define WIFI_STA_LIST__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_sta_list__descriptor) \ - , 0,NULL, 0 } - - -struct WifiPktRxCtrl -{ - ProtobufCMessage base; - /* - **< 8bits Received Signal Strength Indicator(RSSI) of packet. unit: dBm - */ - int32_t rssi; - /* - **< 5bits PHY rate encoding of the packet. Only valid for non HT(11bg) packet - */ - uint32_t rate; - /* - *uint32 :1; **< reserved * - */ - /* - **< 2bits 0: non HT(11bg) packet; 1: HT(11n) packet; 3: VHT(11ac) packet - */ - uint32_t sig_mode; - /* - *uint32 :16; **< reserved * - */ - /* - **< 7bits Modulation Coding Scheme. If is HT(11n) packet, shows the modulation, range from 0 to 76(MSC0 ~ MCS76) - */ - uint32_t mcs; - /* - **< 1bit Channel Bandwidth of the packet. 0: 20MHz; 1: 40MHz - */ - uint32_t cwb; - /* - *uint32 :16; **< reserved * - */ - /* - **< 1bit reserved - */ - uint32_t smoothing; - /* - **< 1bit reserved - */ - uint32_t not_sounding; - /* - *uint32 :1; **< reserved * - */ - /* - **< 1bit Aggregation. 0: MPDU packet; 1: AMPDU packet - */ - uint32_t aggregation; - /* - **< 2bits Space Time Block Code(STBC). 0: non STBC packet; 1: STBC packet - */ - uint32_t stbc; - /* - **< 1bit Flag is set for 11n packets which are LDPC - */ - uint32_t fec_coding; - /* - **< 1bit Short Guide Interval(SGI). 0: Long GI; 1: Short GI - */ - uint32_t sgi; - /* - **< 8bits noise floor of Radio Frequency Module(RF). unit: dBm - */ - int32_t noise_floor; - /* - **< 8bits ampdu cnt - */ - uint32_t ampdu_cnt; - /* - **< 4bits primary channel on which this packet is received - */ - uint32_t channel; - /* - **< 4bits secondary channel on which this packet is received. 0: none; 1: above; 2: below - */ - uint32_t secondary_channel; - /* - *uint32 :8; **< reserved * - */ - /* - **< 32bit timestamp. The local time when this packet is received. It is precise only if modem sleep or light sleep is not enabled. unit: microsecond - */ - uint32_t timestamp; - /* - *uint32 :32; **< reserved * - *unsigned :32; **< reserved * - *unsigned :31; **< reserved * - */ - /* - **< 1bit antenna number from which this packet is received. 0: WiFi antenna 0; 1: WiFi antenna 1 - */ - uint32_t ant; - /* - **< 12bits length of packet including Frame Check Sequence(FCS) - */ - uint32_t sig_len; - /* - *unsigned :12; **< reserved * - */ - /* - **< 8bits state of the packet. 0: no error; others: error numbers which are not public - */ - uint32_t rx_state; -}; -#define WIFI_PKT_RX_CTRL__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_pkt_rx_ctrl__descriptor) \ - , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } - - -struct WifiPromiscuousPkt -{ - ProtobufCMessage base; - /* - **< metadata header - */ - WifiPktRxCtrl *rx_ctrl; - /* - **< Note: variable length. Data or management payload. Length of payload is described by rx_ctrl.sig_len. Type of content determined by packet type argument of callback. - */ - ProtobufCBinaryData payload; -}; -#define WIFI_PROMISCUOUS_PKT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_promiscuous_pkt__descriptor) \ - , NULL, {0,NULL} } - - -struct WifiPromiscuousFilter -{ - ProtobufCMessage base; - /* - **< OR of one or more filter values WIFI_PROMIS_FILTER_* - */ - uint32_t filter_mask; -}; -#define WIFI_PROMISCUOUS_FILTER__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_promiscuous_filter__descriptor) \ - , 0 } - - -struct WifiCsiConfig -{ - ProtobufCMessage base; - /* - **< enable to receive legacy long training field(lltf) data. Default enabled - */ - protobuf_c_boolean lltf_en; - /* - **< enable to receive HT long training field(htltf) data. Default enabled - */ - protobuf_c_boolean htltf_en; - /* - **< enable to receive space time block code HT long training field(stbc-htltf2) data. Default enabled - */ - protobuf_c_boolean stbc_htltf2_en; - /* - **< enable to generate htlft data by averaging lltf and ht_ltf data when receiving HT packet. Otherwise, use ht_ltf data directly. Default enabled - */ - protobuf_c_boolean ltf_merge_en; - /* - **< enable to turn on channel filter to smooth adjacent sub-carrier. Disable it to keep independence of adjacent sub-carrier. Default enabled - */ - protobuf_c_boolean channel_filter_en; - /* - **< manually scale the CSI data by left shifting or automatically scale the CSI data. - *If set true, please set the shift bits. false: automatically. true: manually. Default false - */ - protobuf_c_boolean manu_scale; - /* - **< manually left shift bits of the scale of the CSI data. The range of the left shift bits is 0~15 - */ - uint32_t shift; -}; -#define WIFI_CSI_CONFIG__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_csi_config__descriptor) \ - , 0, 0, 0, 0, 0, 0, 0 } - - -struct WifiCsiInfo -{ - ProtobufCMessage base; - /* - **< received packet radio metadata header of the CSI data - */ - WifiPktRxCtrl *rx_ctrl; - /* - **< 6bits source MAC address of the CSI data - */ - ProtobufCBinaryData mac; - /* - **< 6bits destination MAC address of the CSI data - */ - ProtobufCBinaryData dmac; - /* - **< first four bytes of the CSI data is invalid or not - */ - protobuf_c_boolean first_word_invalid; - /* - **< Note: variable length. buffer of CSI data - */ - ProtobufCBinaryData buf; - /* - **< length of CSI data - */ - uint32_t len; -}; -#define WIFI_CSI_INFO__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_csi_info__descriptor) \ - , NULL, {0,NULL}, {0,NULL}, 0, {0,NULL}, 0 } - - -struct WifiAntGpio -{ - ProtobufCMessage base; - /* - **< 1bit Whether this GPIO is connected to external antenna switch - */ - uint32_t gpio_select; - /* - **< 7bits The GPIO number that connects to external antenna switch - */ - uint32_t gpio_num; -}; -#define WIFI_ANT_GPIO__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_ant_gpio__descriptor) \ - , 0, 0 } - - -struct WifiAntGpioConfig -{ - ProtobufCMessage base; - /* - **< The configurations of GPIOs that connect to external antenna switch - */ - size_t n_gpio_cfgs; - WifiAntGpio **gpio_cfgs; -}; -#define WIFI_ANT_GPIO_CONFIG__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_ant_gpio_config__descriptor) \ - , 0,NULL } - - -struct WifiAntConfig -{ - ProtobufCMessage base; - /* - **< WiFi antenna mode for receiving - */ - int32_t rx_ant_mode; - /* - **< Default antenna mode for receiving, it's ignored if rx_ant_mode is not WIFI_ANT_MODE_AUTO - */ - int32_t rx_ant_default; - /* - **< WiFi antenna mode for transmission, it can be set to WIFI_ANT_MODE_AUTO only if rx_ant_mode is set to WIFI_ANT_MODE_AUTO - */ - int32_t tx_ant_mode; - /* - **< 4bits Index (in antenna GPIO configuration) of enabled WIFI_ANT_MODE_ANT0 - */ - uint32_t enabled_ant0; - /* - **< 4bits Index (in antenna GPIO configuration) of enabled WIFI_ANT_MODE_ANT1 - */ - uint32_t enabled_ant1; -}; -#define WIFI_ANT_CONFIG__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_ant_config__descriptor) \ - , 0, 0, 0, 0, 0 } - - -struct WifiActionTxReq -{ - ProtobufCMessage base; - /* - **< WiFi interface to send request to - */ - int32_t ifx; - /* - **< 6bits Destination MAC address - */ - ProtobufCBinaryData dest_mac; - /* - **< Indicates no ack required - */ - protobuf_c_boolean no_ack; - /* - *TODO - *wifi_action_rx_cb_t rx_cb; **< Rx Callback to receive any response * - */ - /* - **< Length of the appended Data - */ - uint32_t data_len; - /* - **< note: variable length. Appended Data payload - */ - ProtobufCBinaryData data; -}; -#define WIFI_ACTION_TX_REQ__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_action_tx_req__descriptor) \ - , 0, {0,NULL}, 0, 0, {0,NULL} } - - -struct WifiFtmInitiatorCfg -{ - ProtobufCMessage base; - /* - **< 6bits MAC address of the FTM Responder - */ - ProtobufCBinaryData resp_mac; - /* - **< Primary channel of the FTM Responder - */ - uint32_t channel; - /* - **< No. of FTM frames requested in terms of 4 or 8 bursts (allowed values - 0(No pref), 16, 24, 32, 64) - */ - uint32_t frm_count; - /* - **< Requested time period between consecutive FTM bursts in 100's of milliseconds (0 - No pref) - */ - uint32_t burst_period; -}; -#define WIFI_FTM_INITIATOR_CFG__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_ftm_initiator_cfg__descriptor) \ - , {0,NULL}, 0, 0, 0 } - - -struct WifiEventStaScanDone -{ - ProtobufCMessage base; - /* - **< status of scanning APs: 0 — success, 1 - failure - */ - uint32_t status; - /* - **< number of scan results - */ - uint32_t number; - /* - **< scan sequence number, used for block scan - */ - uint32_t scan_id; -}; -#define WIFI_EVENT_STA_SCAN_DONE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_event_sta_scan_done__descriptor) \ - , 0, 0, 0 } - - -struct WifiEventStaConnected -{ - ProtobufCMessage base; - /* - **< 32bytes SSID of connected AP - */ - ProtobufCBinaryData ssid; - /* - **< SSID length of connected AP - */ - uint32_t ssid_len; - /* - **< 6bytes BSSID of connected AP - */ - ProtobufCBinaryData bssid; - /* - **< channel of connected AP - */ - uint32_t channel; - /* - **< authentication mode used by AP - */ - int32_t authmode; - /* - **< authentication id assigned by the connected AP - */ - int32_t aid; -}; -#define WIFI_EVENT_STA_CONNECTED__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_event_sta_connected__descriptor) \ - , {0,NULL}, 0, {0,NULL}, 0, 0, 0 } - - -struct WifiEventStaDisconnected -{ - ProtobufCMessage base; - /* - **< SSID of disconnected AP - */ - ProtobufCBinaryData ssid; - /* - **< SSID length of disconnected AP - */ - uint32_t ssid_len; - /* - **< BSSID of disconnected AP - */ - ProtobufCBinaryData bssid; - /* - **< reason of disconnection - */ - uint32_t reason; - /* - **< rssi of disconnection - */ - int32_t rssi; -}; -#define WIFI_EVENT_STA_DISCONNECTED__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_event_sta_disconnected__descriptor) \ - , {0,NULL}, 0, {0,NULL}, 0, 0 } - - -struct WifiEventStaAuthmodeChange -{ - ProtobufCMessage base; - /* - **< the old auth mode of AP - */ - int32_t old_mode; - /* - **< the new auth mode of AP - */ - int32_t new_mode; -}; -#define WIFI_EVENT_STA_AUTHMODE_CHANGE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_event_sta_authmode_change__descriptor) \ - , 0, 0 } - - -struct WifiEventStaWpsErPin -{ - ProtobufCMessage base; - /* - **< 8bytes PIN code of station in enrollee mode - */ - ProtobufCBinaryData pin_code; -}; -#define WIFI_EVENT_STA_WPS_ER_PIN__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_event_sta_wps_er_pin__descriptor) \ - , {0,NULL} } - - -struct ApCred -{ - ProtobufCMessage base; - /* - **< 32bytes SSID of AP - */ - ProtobufCBinaryData ssid; - /* - **< 64bytes Passphrase for the AP - */ - ProtobufCBinaryData passphrase; -}; -#define AP_CRED__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&ap_cred__descriptor) \ - , {0,NULL}, {0,NULL} } - - -struct WifiEventStaWpsErSuccess -{ - ProtobufCMessage base; - /* - **< Number of AP credentials received - */ - uint32_t ap_cred_cnt; - /* - **< All AP credentials received from WPS handshake - */ - size_t n_ap_creds; - ApCred **ap_creds; -}; -#define WIFI_EVENT_STA_WPS_ER_SUCCESS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_event_sta_wps_er_success__descriptor) \ - , 0, 0,NULL } - - -/* - ** Argument structure for WIFI_EVENT_AP_PROBEREQRECVED event - */ -struct WifiEventApProbeReqRx -{ - ProtobufCMessage base; - /* - **< Received probe request signal strength - */ - int32_t rssi; - /* - **< MAC address of the station which send probe request - */ - uint32_t mac; -}; -#define WIFI_EVENT_AP_PROBE_REQ_RX__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_event_ap_probe_req_rx__descriptor) \ - , 0, 0 } - - -/* - ** Argument structure for WIFI_EVENT_STA_BSS_RSSI_LOW event - */ -struct WifiEventBssRssiLow -{ - ProtobufCMessage base; - /* - **< RSSI value of bss - */ - int32_t rssi; -}; -#define WIFI_EVENT_BSS_RSSI_LOW__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_event_bss_rssi_low__descriptor) \ - , 0 } - - -struct WifiFtmReportEntry -{ - ProtobufCMessage base; - /* - * *< Dialog Token of the FTM frame - */ - uint32_t dlog_token; - /* - * *< RSSI of the FTM frame received - */ - int32_t rssi; - /* - * *< Round Trip Time in pSec with a peer - */ - uint32_t rtt; - /* - * TODO: uint32 is supported by proto? - */ - /* - * *< Time of departure of FTM frame from FTM Responder in pSec - */ - uint64_t t1; - /* - * *< Time of arrival of FTM frame at FTM Initiator in pSec - */ - uint64_t t2; - /* - * *< Time of departure of ACK from FTM Initiator in pSec - */ - uint64_t t3; - /* - * *< Time of arrival of ACK at FTM Responder in pSec - */ - uint64_t t4; -}; -#define WIFI_FTM_REPORT_ENTRY__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_ftm_report_entry__descriptor) \ - , 0, 0, 0, 0, 0, 0, 0 } - - -struct WifiEventFtmReport -{ - ProtobufCMessage base; - /* - * *< 6bytes MAC address of the FTM Peer - */ - ProtobufCBinaryData peer_mac; - /* - * *< Status of the FTM operation - */ - int32_t status; - /* - * *< Raw average Round-Trip-Time with peer in Nano-Seconds - */ - uint32_t rtt_raw; - /* - * *< Estimated Round-Trip-Time with peer in Nano-Seconds - */ - uint32_t rtt_est; - /* - * *< Estimated one-way distance in Centi-Meters - */ - uint32_t dist_est; - /* - * *< Note var len Pointer to FTM Report with multiple entries, should be freed after use - */ - size_t n_ftm_report_data; - WifiFtmReportEntry **ftm_report_data; - /* - * *< Number of entries in the FTM Report data - */ - uint32_t ftm_report_num_entries; -}; -#define WIFI_EVENT_FTM_REPORT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_event_ftm_report__descriptor) \ - , {0,NULL}, 0, 0, 0, 0, 0,NULL, 0 } - - -struct WifiEventActionTxStatus -{ - ProtobufCMessage base; - /* - **< WiFi interface to send request to - */ - int32_t ifx; - /* - **< Context to identify the request - */ - uint32_t context; - /* - **< 6bytes Destination MAC address - */ - ProtobufCBinaryData da; - /* - **< Status of the operation - */ - uint32_t status; -}; -#define WIFI_EVENT_ACTION_TX_STATUS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_event_action_tx_status__descriptor) \ - , 0, 0, {0,NULL}, 0 } - - -struct WifiEventRocDone -{ - ProtobufCMessage base; - /* - **< Context to identify the request - */ - uint32_t context; -}; -#define WIFI_EVENT_ROC_DONE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_event_roc_done__descriptor) \ - , 0 } - - -struct WifiEventApWpsRgPin -{ - ProtobufCMessage base; - /* - **< 8bytes PIN code of station in enrollee mode - */ - ProtobufCBinaryData pin_code; -}; -#define WIFI_EVENT_AP_WPS_RG_PIN__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_event_ap_wps_rg_pin__descriptor) \ - , {0,NULL} } - - -struct WifiEventApWpsRgFailReason -{ - ProtobufCMessage base; - /* - **< WPS failure reason wps_fail_reason_t - */ - int32_t reason; - /* - **< 6bytes Enrollee mac address - */ - ProtobufCBinaryData peer_macaddr; -}; -#define WIFI_EVENT_AP_WPS_RG_FAIL_REASON__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_event_ap_wps_rg_fail_reason__descriptor) \ - , 0, {0,NULL} } - - -struct WifiEventApWpsRgSuccess -{ - ProtobufCMessage base; - /* - **< 6bytes Enrollee mac address - */ - ProtobufCBinaryData peer_macaddr; -}; -#define WIFI_EVENT_AP_WPS_RG_SUCCESS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_event_ap_wps_rg_success__descriptor) \ - , {0,NULL} } - - -struct WifiProtocols -{ - ProtobufCMessage base; - /* - **< Represents 2.4 GHz protocol, support 802.11b or 802.11g or 802.11n or 802.11ax or LR mode - */ - uint32_t ghz_2g; - /* - **< Represents 5 GHz protocol, support 802.11a or 802.11n or 802.11ac or 802.11ax - */ - uint32_t ghz_5g; -}; -#define WIFI_PROTOCOLS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_protocols__descriptor) \ - , 0, 0 } - - -struct WifiBandwidths -{ - ProtobufCMessage base; - /* - * Represents 2.4 GHz bandwidth - */ - uint32_t ghz_2g; - /* - * Represents 5 GHz bandwidth - */ - uint32_t ghz_5g; -}; -#define WIFI_BANDWIDTHS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&wifi_bandwidths__descriptor) \ - , 0, 0 } - - -struct ConnectedSTAList -{ - ProtobufCMessage base; - ProtobufCBinaryData mac; - int32_t rssi; -}; -#define CONNECTED_STALIST__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&connected_stalist__descriptor) \ - , {0,NULL}, 0 } - - -/* - ** Req/Resp structure * - */ -struct RpcReqGetMacAddress -{ - ProtobufCMessage base; - int32_t mode; -}; -#define RPC__REQ__GET_MAC_ADDRESS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__get_mac_address__descriptor) \ - , 0 } - - -struct RpcRespGetMacAddress -{ - ProtobufCMessage base; - ProtobufCBinaryData mac; - int32_t resp; -}; -#define RPC__RESP__GET_MAC_ADDRESS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__get_mac_address__descriptor) \ - , {0,NULL}, 0 } - - -struct RpcReqGetMode -{ - ProtobufCMessage base; -}; -#define RPC__REQ__GET_MODE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__get_mode__descriptor) \ - } - - -struct RpcRespGetMode -{ - ProtobufCMessage base; - int32_t mode; - int32_t resp; -}; -#define RPC__RESP__GET_MODE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__get_mode__descriptor) \ - , 0, 0 } - - -struct RpcReqSetMode -{ - ProtobufCMessage base; - int32_t mode; -}; -#define RPC__REQ__SET_MODE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__set_mode__descriptor) \ - , 0 } - - -struct RpcRespSetMode -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__SET_MODE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__set_mode__descriptor) \ - , 0 } - - -struct RpcReqGetPs -{ - ProtobufCMessage base; -}; -#define RPC__REQ__GET_PS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__get_ps__descriptor) \ - } - - -struct RpcRespGetPs -{ - ProtobufCMessage base; - int32_t resp; - int32_t type; -}; -#define RPC__RESP__GET_PS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__get_ps__descriptor) \ - , 0, 0 } - - -struct RpcReqSetPs -{ - ProtobufCMessage base; - int32_t type; -}; -#define RPC__REQ__SET_PS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__set_ps__descriptor) \ - , 0 } - - -struct RpcRespSetPs -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__SET_PS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__set_ps__descriptor) \ - , 0 } - - -struct RpcReqSetMacAddress -{ - ProtobufCMessage base; - ProtobufCBinaryData mac; - int32_t mode; -}; -#define RPC__REQ__SET_MAC_ADDRESS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__set_mac_address__descriptor) \ - , {0,NULL}, 0 } - - -struct RpcRespSetMacAddress -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__SET_MAC_ADDRESS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__set_mac_address__descriptor) \ - , 0 } - - -struct RpcReqOTABegin -{ - ProtobufCMessage base; -}; -#define RPC__REQ__OTABEGIN__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__otabegin__descriptor) \ - } - - -struct RpcRespOTABegin -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__OTABEGIN__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__otabegin__descriptor) \ - , 0 } - - -struct RpcReqOTAWrite -{ - ProtobufCMessage base; - ProtobufCBinaryData ota_data; -}; -#define RPC__REQ__OTAWRITE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__otawrite__descriptor) \ - , {0,NULL} } - - -struct RpcRespOTAWrite -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__OTAWRITE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__otawrite__descriptor) \ - , 0 } - - -struct RpcReqOTAEnd -{ - ProtobufCMessage base; -}; -#define RPC__REQ__OTAEND__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__otaend__descriptor) \ - } - - -struct RpcRespOTAEnd -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__OTAEND__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__otaend__descriptor) \ - , 0 } - - -struct RpcReqWifiSetMaxTxPower -{ - ProtobufCMessage base; - int32_t power; -}; -#define RPC__REQ__WIFI_SET_MAX_TX_POWER__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_max_tx_power__descriptor) \ - , 0 } - - -struct RpcRespWifiSetMaxTxPower -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_SET_MAX_TX_POWER__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_max_tx_power__descriptor) \ - , 0 } - - -struct RpcReqWifiGetMaxTxPower -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_GET_MAX_TX_POWER__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_max_tx_power__descriptor) \ - } - - -struct RpcRespWifiGetMaxTxPower -{ - ProtobufCMessage base; - int32_t power; - int32_t resp; -}; -#define RPC__RESP__WIFI_GET_MAX_TX_POWER__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_max_tx_power__descriptor) \ - , 0, 0 } - - -struct RpcReqConfigHeartbeat -{ - ProtobufCMessage base; - protobuf_c_boolean enable; - int32_t duration; -}; -#define RPC__REQ__CONFIG_HEARTBEAT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__config_heartbeat__descriptor) \ - , 0, 0 } - - -struct RpcRespConfigHeartbeat -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__CONFIG_HEARTBEAT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__config_heartbeat__descriptor) \ - , 0 } - - -struct RpcReqWifiInit -{ - ProtobufCMessage base; - WifiInitConfig *cfg; -}; -#define RPC__REQ__WIFI_INIT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_init__descriptor) \ - , NULL } - - -struct RpcRespWifiInit -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_INIT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_init__descriptor) \ - , 0 } - - -struct RpcReqWifiDeinit -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_DEINIT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_deinit__descriptor) \ - } - - -struct RpcRespWifiDeinit -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_DEINIT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_deinit__descriptor) \ - , 0 } - - -struct RpcReqWifiSetConfig -{ - ProtobufCMessage base; - int32_t iface; - WifiConfig *cfg; -}; -#define RPC__REQ__WIFI_SET_CONFIG__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_config__descriptor) \ - , 0, NULL } - - -struct RpcRespWifiSetConfig -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_SET_CONFIG__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_config__descriptor) \ - , 0 } - - -struct RpcReqWifiGetConfig -{ - ProtobufCMessage base; - int32_t iface; -}; -#define RPC__REQ__WIFI_GET_CONFIG__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_config__descriptor) \ - , 0 } - - -struct RpcRespWifiGetConfig -{ - ProtobufCMessage base; - int32_t resp; - int32_t iface; - WifiConfig *cfg; -}; -#define RPC__RESP__WIFI_GET_CONFIG__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_config__descriptor) \ - , 0, 0, NULL } - - -struct RpcReqWifiConnect -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_CONNECT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_connect__descriptor) \ - } - - -struct RpcRespWifiConnect -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_CONNECT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_connect__descriptor) \ - , 0 } - - -struct RpcReqWifiDisconnect -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_DISCONNECT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_disconnect__descriptor) \ - } - - -struct RpcRespWifiDisconnect -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_DISCONNECT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_disconnect__descriptor) \ - , 0 } - - -struct RpcReqWifiStart -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_START__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_start__descriptor) \ - } - - -struct RpcRespWifiStart -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_START__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_start__descriptor) \ - , 0 } - - -struct RpcReqWifiStop -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_STOP__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_stop__descriptor) \ - } - - -struct RpcRespWifiStop -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_STOP__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_stop__descriptor) \ - , 0 } - - -struct RpcReqWifiScanStart -{ - ProtobufCMessage base; - WifiScanConfig *config; - protobuf_c_boolean block; - int32_t config_set; -}; -#define RPC__REQ__WIFI_SCAN_START__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_scan_start__descriptor) \ - , NULL, 0, 0 } - - -struct RpcRespWifiScanStart -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_SCAN_START__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_scan_start__descriptor) \ - , 0 } - - -struct RpcReqWifiScanStop -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_SCAN_STOP__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_scan_stop__descriptor) \ - } - - -struct RpcRespWifiScanStop -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_SCAN_STOP__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_scan_stop__descriptor) \ - , 0 } - - -struct RpcReqWifiScanGetApNum -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_SCAN_GET_AP_NUM__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_scan_get_ap_num__descriptor) \ - } - - -struct RpcRespWifiScanGetApNum -{ - ProtobufCMessage base; - int32_t resp; - int32_t number; -}; -#define RPC__RESP__WIFI_SCAN_GET_AP_NUM__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_scan_get_ap_num__descriptor) \ - , 0, 0 } - - -struct RpcReqWifiScanGetApRecords -{ - ProtobufCMessage base; - int32_t number; -}; -#define RPC__REQ__WIFI_SCAN_GET_AP_RECORDS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_scan_get_ap_records__descriptor) \ - , 0 } - - -struct RpcRespWifiScanGetApRecords -{ - ProtobufCMessage base; - int32_t resp; - int32_t number; - size_t n_ap_records; - WifiApRecord **ap_records; -}; -#define RPC__RESP__WIFI_SCAN_GET_AP_RECORDS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_scan_get_ap_records__descriptor) \ - , 0, 0, 0,NULL } - - -struct RpcReqWifiScanGetApRecord -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_SCAN_GET_AP_RECORD__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_scan_get_ap_record__descriptor) \ - } - - -struct RpcRespWifiScanGetApRecord -{ - ProtobufCMessage base; - int32_t resp; - WifiApRecord *ap_record; -}; -#define RPC__RESP__WIFI_SCAN_GET_AP_RECORD__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_scan_get_ap_record__descriptor) \ - , 0, NULL } - - -struct RpcReqWifiClearApList -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_CLEAR_AP_LIST__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_clear_ap_list__descriptor) \ - } - - -struct RpcRespWifiClearApList -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_CLEAR_AP_LIST__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_clear_ap_list__descriptor) \ - , 0 } - - -struct RpcReqWifiRestore -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_RESTORE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_restore__descriptor) \ - } - - -struct RpcRespWifiRestore -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_RESTORE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_restore__descriptor) \ - , 0 } - - -struct RpcReqWifiClearFastConnect -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_CLEAR_FAST_CONNECT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_clear_fast_connect__descriptor) \ - } - - -struct RpcRespWifiClearFastConnect -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_CLEAR_FAST_CONNECT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_clear_fast_connect__descriptor) \ - , 0 } - - -struct RpcReqWifiDeauthSta -{ - ProtobufCMessage base; - int32_t aid; -}; -#define RPC__REQ__WIFI_DEAUTH_STA__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_deauth_sta__descriptor) \ - , 0 } - - -struct RpcRespWifiDeauthSta -{ - ProtobufCMessage base; - int32_t resp; - int32_t aid; -}; -#define RPC__RESP__WIFI_DEAUTH_STA__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_deauth_sta__descriptor) \ - , 0, 0 } - - -struct RpcReqWifiStaGetApInfo -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_STA_GET_AP_INFO__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_sta_get_ap_info__descriptor) \ - } - - -struct RpcRespWifiStaGetApInfo -{ - ProtobufCMessage base; - int32_t resp; - WifiApRecord *ap_record; -}; -#define RPC__RESP__WIFI_STA_GET_AP_INFO__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_sta_get_ap_info__descriptor) \ - , 0, NULL } - - -struct RpcReqWifiSetProtocol -{ - ProtobufCMessage base; - int32_t ifx; - int32_t protocol_bitmap; -}; -#define RPC__REQ__WIFI_SET_PROTOCOL__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_protocol__descriptor) \ - , 0, 0 } - - -struct RpcRespWifiSetProtocol -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_SET_PROTOCOL__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_protocol__descriptor) \ - , 0 } - - -struct RpcReqWifiGetProtocol -{ - ProtobufCMessage base; - int32_t ifx; -}; -#define RPC__REQ__WIFI_GET_PROTOCOL__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_protocol__descriptor) \ - , 0 } - - -struct RpcRespWifiGetProtocol -{ - ProtobufCMessage base; - int32_t resp; - int32_t protocol_bitmap; -}; -#define RPC__RESP__WIFI_GET_PROTOCOL__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_protocol__descriptor) \ - , 0, 0 } - - -struct RpcReqWifiSetBandwidth -{ - ProtobufCMessage base; - int32_t ifx; - int32_t bw; -}; -#define RPC__REQ__WIFI_SET_BANDWIDTH__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_bandwidth__descriptor) \ - , 0, 0 } - - -struct RpcRespWifiSetBandwidth -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_SET_BANDWIDTH__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_bandwidth__descriptor) \ - , 0 } - - -struct RpcReqWifiGetBandwidth -{ - ProtobufCMessage base; - int32_t ifx; -}; -#define RPC__REQ__WIFI_GET_BANDWIDTH__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_bandwidth__descriptor) \ - , 0 } - - -struct RpcRespWifiGetBandwidth -{ - ProtobufCMessage base; - int32_t resp; - int32_t bw; -}; -#define RPC__RESP__WIFI_GET_BANDWIDTH__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_bandwidth__descriptor) \ - , 0, 0 } - - -struct RpcReqWifiSetChannel -{ - ProtobufCMessage base; - int32_t primary; - int32_t second; -}; -#define RPC__REQ__WIFI_SET_CHANNEL__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_channel__descriptor) \ - , 0, 0 } - - -struct RpcRespWifiSetChannel -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_SET_CHANNEL__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_channel__descriptor) \ - , 0 } - - -struct RpcReqWifiGetChannel -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_GET_CHANNEL__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_channel__descriptor) \ - } - - -struct RpcRespWifiGetChannel -{ - ProtobufCMessage base; - int32_t resp; - int32_t primary; - int32_t second; -}; -#define RPC__RESP__WIFI_GET_CHANNEL__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_channel__descriptor) \ - , 0, 0, 0 } - - -struct RpcReqWifiSetStorage -{ - ProtobufCMessage base; - int32_t storage; -}; -#define RPC__REQ__WIFI_SET_STORAGE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_storage__descriptor) \ - , 0 } - - -struct RpcRespWifiSetStorage -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_SET_STORAGE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_storage__descriptor) \ - , 0 } - - -struct RpcReqWifiSetCountryCode -{ - ProtobufCMessage base; - ProtobufCBinaryData country; - protobuf_c_boolean ieee80211d_enabled; -}; -#define RPC__REQ__WIFI_SET_COUNTRY_CODE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_country_code__descriptor) \ - , {0,NULL}, 0 } - - -struct RpcRespWifiSetCountryCode -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_SET_COUNTRY_CODE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_country_code__descriptor) \ - , 0 } - - -struct RpcReqWifiGetCountryCode -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_GET_COUNTRY_CODE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_country_code__descriptor) \ - } - - -struct RpcRespWifiGetCountryCode -{ - ProtobufCMessage base; - int32_t resp; - ProtobufCBinaryData country; -}; -#define RPC__RESP__WIFI_GET_COUNTRY_CODE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_country_code__descriptor) \ - , 0, {0,NULL} } - - -struct RpcReqWifiSetCountry -{ - ProtobufCMessage base; - WifiCountry *country; -}; -#define RPC__REQ__WIFI_SET_COUNTRY__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_country__descriptor) \ - , NULL } - - -struct RpcRespWifiSetCountry -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_SET_COUNTRY__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_country__descriptor) \ - , 0 } - - -struct RpcReqWifiGetCountry -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_GET_COUNTRY__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_country__descriptor) \ - } - - -struct RpcRespWifiGetCountry -{ - ProtobufCMessage base; - int32_t resp; - WifiCountry *country; -}; -#define RPC__RESP__WIFI_GET_COUNTRY__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_country__descriptor) \ - , 0, NULL } - - -struct RpcReqWifiApGetStaList -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_AP_GET_STA_LIST__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_ap_get_sta_list__descriptor) \ - } - - -struct RpcRespWifiApGetStaList -{ - ProtobufCMessage base; - int32_t resp; - WifiStaList *sta_list; -}; -#define RPC__RESP__WIFI_AP_GET_STA_LIST__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_ap_get_sta_list__descriptor) \ - , 0, NULL } - - -struct RpcReqWifiApGetStaAid -{ - ProtobufCMessage base; - ProtobufCBinaryData mac; -}; -#define RPC__REQ__WIFI_AP_GET_STA_AID__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_ap_get_sta_aid__descriptor) \ - , {0,NULL} } - - -struct RpcReqWifiStaGetNegotiatedPhymode -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_STA_GET_NEGOTIATED_PHYMODE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_sta_get_negotiated_phymode__descriptor) \ - } - - -struct RpcRespWifiStaGetNegotiatedPhymode -{ - ProtobufCMessage base; - int32_t resp; - uint32_t phymode; -}; -#define RPC__RESP__WIFI_STA_GET_NEGOTIATED_PHYMODE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_sta_get_negotiated_phymode__descriptor) \ - , 0, 0 } - - -struct RpcRespWifiApGetStaAid -{ - ProtobufCMessage base; - int32_t resp; - uint32_t aid; -}; -#define RPC__RESP__WIFI_AP_GET_STA_AID__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_ap_get_sta_aid__descriptor) \ - , 0, 0 } - - -struct RpcReqWifiStaGetRssi -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_STA_GET_RSSI__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_sta_get_rssi__descriptor) \ - } - - -struct RpcRespWifiStaGetRssi -{ - ProtobufCMessage base; - int32_t resp; - int32_t rssi; -}; -#define RPC__RESP__WIFI_STA_GET_RSSI__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_sta_get_rssi__descriptor) \ - , 0, 0 } - - -struct RpcReqWifiStaGetAid -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_STA_GET_AID__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_sta_get_aid__descriptor) \ - } - - -struct RpcRespWifiStaGetAid -{ - ProtobufCMessage base; - int32_t resp; - uint32_t aid; -}; -#define RPC__RESP__WIFI_STA_GET_AID__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_sta_get_aid__descriptor) \ - , 0, 0 } - - -struct RpcReqWifiSetProtocols -{ - ProtobufCMessage base; - int32_t ifx; - WifiProtocols *protocols; -}; -#define RPC__REQ__WIFI_SET_PROTOCOLS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_protocols__descriptor) \ - , 0, NULL } - - -struct RpcRespWifiSetProtocols -{ - ProtobufCMessage base; - int32_t resp; - uint32_t ifx; -}; -#define RPC__RESP__WIFI_SET_PROTOCOLS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_protocols__descriptor) \ - , 0, 0 } - - -struct RpcReqWifiGetProtocols -{ - ProtobufCMessage base; - int32_t ifx; -}; -#define RPC__REQ__WIFI_GET_PROTOCOLS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_protocols__descriptor) \ - , 0 } - - -struct RpcRespWifiGetProtocols -{ - ProtobufCMessage base; - int32_t resp; - int32_t ifx; - WifiProtocols *protocols; -}; -#define RPC__RESP__WIFI_GET_PROTOCOLS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_protocols__descriptor) \ - , 0, 0, NULL } - - -struct RpcReqWifiSetBandwidths -{ - ProtobufCMessage base; - int32_t ifx; - WifiBandwidths *bandwidths; -}; -#define RPC__REQ__WIFI_SET_BANDWIDTHS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_bandwidths__descriptor) \ - , 0, NULL } - - -struct RpcRespWifiSetBandwidths -{ - ProtobufCMessage base; - int32_t resp; - int32_t ifx; -}; -#define RPC__RESP__WIFI_SET_BANDWIDTHS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_bandwidths__descriptor) \ - , 0, 0 } - - -struct RpcReqWifiGetBandwidths -{ - ProtobufCMessage base; - int32_t ifx; -}; -#define RPC__REQ__WIFI_GET_BANDWIDTHS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_bandwidths__descriptor) \ - , 0 } - - -struct RpcRespWifiGetBandwidths -{ - ProtobufCMessage base; - int32_t resp; - int32_t ifx; - WifiBandwidths *bandwidths; -}; -#define RPC__RESP__WIFI_GET_BANDWIDTHS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_bandwidths__descriptor) \ - , 0, 0, NULL } - - -struct RpcReqWifiSetBand -{ - ProtobufCMessage base; - uint32_t band; -}; -#define RPC__REQ__WIFI_SET_BAND__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_band__descriptor) \ - , 0 } - - -struct RpcRespWifiSetBand -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_SET_BAND__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_band__descriptor) \ - , 0 } - - -struct RpcReqWifiGetBand -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_GET_BAND__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_band__descriptor) \ - } - - -struct RpcRespWifiGetBand -{ - ProtobufCMessage base; - int32_t resp; - uint32_t band; -}; -#define RPC__RESP__WIFI_GET_BAND__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_band__descriptor) \ - , 0, 0 } - - -struct RpcReqWifiSetBandMode -{ - ProtobufCMessage base; - uint32_t bandmode; -}; -#define RPC__REQ__WIFI_SET_BAND_MODE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_set_band_mode__descriptor) \ - , 0 } - - -struct RpcRespWifiSetBandMode -{ - ProtobufCMessage base; - int32_t resp; -}; -#define RPC__RESP__WIFI_SET_BAND_MODE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_set_band_mode__descriptor) \ - , 0 } - - -struct RpcReqWifiGetBandMode -{ - ProtobufCMessage base; -}; -#define RPC__REQ__WIFI_GET_BAND_MODE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__wifi_get_band_mode__descriptor) \ - } - - -struct RpcRespWifiGetBandMode -{ - ProtobufCMessage base; - int32_t resp; - uint32_t bandmode; -}; -#define RPC__RESP__WIFI_GET_BAND_MODE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__wifi_get_band_mode__descriptor) \ - , 0, 0 } - - -struct RpcReqGetCoprocessorFwVersion -{ - ProtobufCMessage base; -}; -#define RPC__REQ__GET_COPROCESSOR_FW_VERSION__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__req__get_coprocessor_fw_version__descriptor) \ - } - - -struct RpcRespGetCoprocessorFwVersion -{ - ProtobufCMessage base; - int32_t resp; - uint32_t major1; - uint32_t minor1; - uint32_t patch1; -}; -#define RPC__RESP__GET_COPROCESSOR_FW_VERSION__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__resp__get_coprocessor_fw_version__descriptor) \ - , 0, 0, 0, 0 } - - -struct RpcEventWifiEventNoArgs -{ - ProtobufCMessage base; - int32_t resp; - int32_t event_id; -}; -#define RPC__EVENT__WIFI_EVENT_NO_ARGS__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__event__wifi_event_no_args__descriptor) \ - , 0, 0 } - - -struct RpcEventESPInit -{ - ProtobufCMessage base; - ProtobufCBinaryData init_data; -}; -#define RPC__EVENT__ESPINIT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__event__espinit__descriptor) \ - , {0,NULL} } - - -struct RpcEventHeartbeat -{ - ProtobufCMessage base; - int32_t hb_num; -}; -#define RPC__EVENT__HEARTBEAT__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__event__heartbeat__descriptor) \ - , 0 } - - -struct RpcEventAPStaDisconnected -{ - ProtobufCMessage base; - int32_t resp; - ProtobufCBinaryData mac; - uint32_t aid; - protobuf_c_boolean is_mesh_child; - uint32_t reason; -}; -#define RPC__EVENT__AP__STA_DISCONNECTED__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__event__ap__sta_disconnected__descriptor) \ - , 0, {0,NULL}, 0, 0, 0 } - - -struct RpcEventAPStaConnected -{ - ProtobufCMessage base; - int32_t resp; - ProtobufCBinaryData mac; - uint32_t aid; - protobuf_c_boolean is_mesh_child; -}; -#define RPC__EVENT__AP__STA_CONNECTED__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__event__ap__sta_connected__descriptor) \ - , 0, {0,NULL}, 0, 0 } - - -struct RpcEventStaScanDone -{ - ProtobufCMessage base; - int32_t resp; - WifiEventStaScanDone *scan_done; -}; -#define RPC__EVENT__STA_SCAN_DONE__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__event__sta_scan_done__descriptor) \ - , 0, NULL } - - -struct RpcEventStaConnected -{ - ProtobufCMessage base; - int32_t resp; - WifiEventStaConnected *sta_connected; -}; -#define RPC__EVENT__STA_CONNECTED__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__event__sta_connected__descriptor) \ - , 0, NULL } - - -struct RpcEventStaDisconnected -{ - ProtobufCMessage base; - int32_t resp; - WifiEventStaDisconnected *sta_disconnected; -}; -#define RPC__EVENT__STA_DISCONNECTED__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__event__sta_disconnected__descriptor) \ - , 0, NULL } - - -typedef enum { - RPC__PAYLOAD__NOT_SET = 0, - RPC__PAYLOAD_REQ_GET_MAC_ADDRESS = 257, - RPC__PAYLOAD_REQ_SET_MAC_ADDRESS = 258, - RPC__PAYLOAD_REQ_GET_WIFI_MODE = 259, - RPC__PAYLOAD_REQ_SET_WIFI_MODE = 260, - RPC__PAYLOAD_REQ_WIFI_SET_PS = 270, - RPC__PAYLOAD_REQ_WIFI_GET_PS = 271, - RPC__PAYLOAD_REQ_OTA_BEGIN = 272, - RPC__PAYLOAD_REQ_OTA_WRITE = 273, - RPC__PAYLOAD_REQ_OTA_END = 274, - RPC__PAYLOAD_REQ_SET_WIFI_MAX_TX_POWER = 275, - RPC__PAYLOAD_REQ_GET_WIFI_MAX_TX_POWER = 276, - RPC__PAYLOAD_REQ_CONFIG_HEARTBEAT = 277, - RPC__PAYLOAD_REQ_WIFI_INIT = 278, - RPC__PAYLOAD_REQ_WIFI_DEINIT = 279, - RPC__PAYLOAD_REQ_WIFI_START = 280, - RPC__PAYLOAD_REQ_WIFI_STOP = 281, - RPC__PAYLOAD_REQ_WIFI_CONNECT = 282, - RPC__PAYLOAD_REQ_WIFI_DISCONNECT = 283, - RPC__PAYLOAD_REQ_WIFI_SET_CONFIG = 284, - RPC__PAYLOAD_REQ_WIFI_GET_CONFIG = 285, - RPC__PAYLOAD_REQ_WIFI_SCAN_START = 286, - RPC__PAYLOAD_REQ_WIFI_SCAN_STOP = 287, - RPC__PAYLOAD_REQ_WIFI_SCAN_GET_AP_NUM = 288, - RPC__PAYLOAD_REQ_WIFI_SCAN_GET_AP_RECORDS = 289, - RPC__PAYLOAD_REQ_WIFI_CLEAR_AP_LIST = 290, - RPC__PAYLOAD_REQ_WIFI_RESTORE = 291, - RPC__PAYLOAD_REQ_WIFI_CLEAR_FAST_CONNECT = 292, - RPC__PAYLOAD_REQ_WIFI_DEAUTH_STA = 293, - RPC__PAYLOAD_REQ_WIFI_STA_GET_AP_INFO = 294, - RPC__PAYLOAD_REQ_WIFI_SET_PROTOCOL = 297, - RPC__PAYLOAD_REQ_WIFI_GET_PROTOCOL = 298, - RPC__PAYLOAD_REQ_WIFI_SET_BANDWIDTH = 299, - RPC__PAYLOAD_REQ_WIFI_GET_BANDWIDTH = 300, - RPC__PAYLOAD_REQ_WIFI_SET_CHANNEL = 301, - RPC__PAYLOAD_REQ_WIFI_GET_CHANNEL = 302, - RPC__PAYLOAD_REQ_WIFI_SET_COUNTRY = 303, - RPC__PAYLOAD_REQ_WIFI_GET_COUNTRY = 304, - RPC__PAYLOAD_REQ_WIFI_AP_GET_STA_LIST = 311, - RPC__PAYLOAD_REQ_WIFI_AP_GET_STA_AID = 312, - RPC__PAYLOAD_REQ_WIFI_SET_STORAGE = 313, - RPC__PAYLOAD_REQ_WIFI_SET_COUNTRY_CODE = 334, - RPC__PAYLOAD_REQ_WIFI_GET_COUNTRY_CODE = 335, - RPC__PAYLOAD_REQ_WIFI_STA_GET_AID = 338, - RPC__PAYLOAD_REQ_WIFI_STA_GET_NEGOTIATED_PHYMODE = 339, - RPC__PAYLOAD_REQ_WIFI_STA_GET_RSSI = 341, - RPC__PAYLOAD_REQ_WIFI_SET_PROTOCOLS = 342, - RPC__PAYLOAD_REQ_WIFI_GET_PROTOCOLS = 343, - RPC__PAYLOAD_REQ_WIFI_SET_BANDWIDTHS = 344, - RPC__PAYLOAD_REQ_WIFI_GET_BANDWIDTHS = 345, - RPC__PAYLOAD_REQ_WIFI_SET_BAND = 346, - RPC__PAYLOAD_REQ_WIFI_GET_BAND = 347, - RPC__PAYLOAD_REQ_WIFI_SET_BANDMODE = 348, - RPC__PAYLOAD_REQ_WIFI_GET_BANDMODE = 349, - RPC__PAYLOAD_REQ_GET_COPROCESSOR_FWVERSION = 350, - RPC__PAYLOAD_REQ_WIFI_SCAN_GET_AP_RECORD = 351, - RPC__PAYLOAD_RESP_GET_MAC_ADDRESS = 513, - RPC__PAYLOAD_RESP_SET_MAC_ADDRESS = 514, - RPC__PAYLOAD_RESP_GET_WIFI_MODE = 515, - RPC__PAYLOAD_RESP_SET_WIFI_MODE = 516, - RPC__PAYLOAD_RESP_WIFI_SET_PS = 526, - RPC__PAYLOAD_RESP_WIFI_GET_PS = 527, - RPC__PAYLOAD_RESP_OTA_BEGIN = 528, - RPC__PAYLOAD_RESP_OTA_WRITE = 529, - RPC__PAYLOAD_RESP_OTA_END = 530, - RPC__PAYLOAD_RESP_SET_WIFI_MAX_TX_POWER = 531, - RPC__PAYLOAD_RESP_GET_WIFI_MAX_TX_POWER = 532, - RPC__PAYLOAD_RESP_CONFIG_HEARTBEAT = 533, - RPC__PAYLOAD_RESP_WIFI_INIT = 534, - RPC__PAYLOAD_RESP_WIFI_DEINIT = 535, - RPC__PAYLOAD_RESP_WIFI_START = 536, - RPC__PAYLOAD_RESP_WIFI_STOP = 537, - RPC__PAYLOAD_RESP_WIFI_CONNECT = 538, - RPC__PAYLOAD_RESP_WIFI_DISCONNECT = 539, - RPC__PAYLOAD_RESP_WIFI_SET_CONFIG = 540, - RPC__PAYLOAD_RESP_WIFI_GET_CONFIG = 541, - RPC__PAYLOAD_RESP_WIFI_SCAN_START = 542, - RPC__PAYLOAD_RESP_WIFI_SCAN_STOP = 543, - RPC__PAYLOAD_RESP_WIFI_SCAN_GET_AP_NUM = 544, - RPC__PAYLOAD_RESP_WIFI_SCAN_GET_AP_RECORDS = 545, - RPC__PAYLOAD_RESP_WIFI_CLEAR_AP_LIST = 546, - RPC__PAYLOAD_RESP_WIFI_RESTORE = 547, - RPC__PAYLOAD_RESP_WIFI_CLEAR_FAST_CONNECT = 548, - RPC__PAYLOAD_RESP_WIFI_DEAUTH_STA = 549, - RPC__PAYLOAD_RESP_WIFI_STA_GET_AP_INFO = 550, - RPC__PAYLOAD_RESP_WIFI_SET_PROTOCOL = 553, - RPC__PAYLOAD_RESP_WIFI_GET_PROTOCOL = 554, - RPC__PAYLOAD_RESP_WIFI_SET_BANDWIDTH = 555, - RPC__PAYLOAD_RESP_WIFI_GET_BANDWIDTH = 556, - RPC__PAYLOAD_RESP_WIFI_SET_CHANNEL = 557, - RPC__PAYLOAD_RESP_WIFI_GET_CHANNEL = 558, - RPC__PAYLOAD_RESP_WIFI_SET_COUNTRY = 559, - RPC__PAYLOAD_RESP_WIFI_GET_COUNTRY = 560, - RPC__PAYLOAD_RESP_WIFI_AP_GET_STA_LIST = 567, - RPC__PAYLOAD_RESP_WIFI_AP_GET_STA_AID = 568, - RPC__PAYLOAD_RESP_WIFI_SET_STORAGE = 569, - RPC__PAYLOAD_RESP_WIFI_SET_COUNTRY_CODE = 590, - RPC__PAYLOAD_RESP_WIFI_GET_COUNTRY_CODE = 591, - RPC__PAYLOAD_RESP_WIFI_STA_GET_AID = 594, - RPC__PAYLOAD_RESP_WIFI_STA_GET_NEGOTIATED_PHYMODE = 595, - RPC__PAYLOAD_RESP_WIFI_STA_GET_RSSI = 597, - RPC__PAYLOAD_RESP_WIFI_SET_PROTOCOLS = 598, - RPC__PAYLOAD_RESP_WIFI_GET_PROTOCOLS = 599, - RPC__PAYLOAD_RESP_WIFI_SET_BANDWIDTHS = 600, - RPC__PAYLOAD_RESP_WIFI_GET_BANDWIDTHS = 601, - RPC__PAYLOAD_RESP_WIFI_SET_BAND = 602, - RPC__PAYLOAD_RESP_WIFI_GET_BAND = 603, - RPC__PAYLOAD_RESP_WIFI_SET_BANDMODE = 604, - RPC__PAYLOAD_RESP_WIFI_GET_BANDMODE = 605, - RPC__PAYLOAD_RESP_GET_COPROCESSOR_FWVERSION = 606, - RPC__PAYLOAD_RESP_WIFI_SCAN_GET_AP_RECORD = 607, - RPC__PAYLOAD_EVENT_ESP_INIT = 769, - RPC__PAYLOAD_EVENT_HEARTBEAT = 770, - RPC__PAYLOAD_EVENT_AP_STA_CONNECTED = 771, - RPC__PAYLOAD_EVENT_AP_STA_DISCONNECTED = 772, - RPC__PAYLOAD_EVENT_WIFI_EVENT_NO_ARGS = 773, - RPC__PAYLOAD_EVENT_STA_SCAN_DONE = 774, - RPC__PAYLOAD_EVENT_STA_CONNECTED = 775, - RPC__PAYLOAD_EVENT_STA_DISCONNECTED = 776 - PROTOBUF_C__FORCE_ENUM_TO_BE_INT_SIZE(RPC__PAYLOAD__CASE) -} Rpc__PayloadCase; - -struct Rpc -{ - ProtobufCMessage base; - /* - * msg_type could be req, resp or Event - */ - RpcType msg_type; - /* - * msg id - */ - RpcId msg_id; - /* - * UID of message - */ - uint32_t uid; - Rpc__PayloadCase payload_case; - union { - /* - ** Requests * - */ - RpcReqGetMacAddress *req_get_mac_address; - RpcReqSetMacAddress *req_set_mac_address; - RpcReqGetMode *req_get_wifi_mode; - RpcReqSetMode *req_set_wifi_mode; - RpcReqSetPs *req_wifi_set_ps; - RpcReqGetPs *req_wifi_get_ps; - RpcReqOTABegin *req_ota_begin; - RpcReqOTAWrite *req_ota_write; - RpcReqOTAEnd *req_ota_end; - RpcReqWifiSetMaxTxPower *req_set_wifi_max_tx_power; - RpcReqWifiGetMaxTxPower *req_get_wifi_max_tx_power; - RpcReqConfigHeartbeat *req_config_heartbeat; - RpcReqWifiInit *req_wifi_init; - RpcReqWifiDeinit *req_wifi_deinit; - RpcReqWifiStart *req_wifi_start; - RpcReqWifiStop *req_wifi_stop; - RpcReqWifiConnect *req_wifi_connect; - RpcReqWifiDisconnect *req_wifi_disconnect; - RpcReqWifiSetConfig *req_wifi_set_config; - RpcReqWifiGetConfig *req_wifi_get_config; - RpcReqWifiScanStart *req_wifi_scan_start; - RpcReqWifiScanStop *req_wifi_scan_stop; - RpcReqWifiScanGetApNum *req_wifi_scan_get_ap_num; - RpcReqWifiScanGetApRecords *req_wifi_scan_get_ap_records; - RpcReqWifiClearApList *req_wifi_clear_ap_list; - RpcReqWifiRestore *req_wifi_restore; - RpcReqWifiClearFastConnect *req_wifi_clear_fast_connect; - RpcReqWifiDeauthSta *req_wifi_deauth_sta; - RpcReqWifiStaGetApInfo *req_wifi_sta_get_ap_info; - RpcReqWifiSetProtocol *req_wifi_set_protocol; - RpcReqWifiGetProtocol *req_wifi_get_protocol; - RpcReqWifiSetBandwidth *req_wifi_set_bandwidth; - RpcReqWifiGetBandwidth *req_wifi_get_bandwidth; - RpcReqWifiSetChannel *req_wifi_set_channel; - RpcReqWifiGetChannel *req_wifi_get_channel; - RpcReqWifiSetCountry *req_wifi_set_country; - RpcReqWifiGetCountry *req_wifi_get_country; - RpcReqWifiApGetStaList *req_wifi_ap_get_sta_list; - RpcReqWifiApGetStaAid *req_wifi_ap_get_sta_aid; - RpcReqWifiSetStorage *req_wifi_set_storage; - RpcReqWifiSetCountryCode *req_wifi_set_country_code; - RpcReqWifiGetCountryCode *req_wifi_get_country_code; - RpcReqWifiStaGetAid *req_wifi_sta_get_aid; - RpcReqWifiStaGetNegotiatedPhymode *req_wifi_sta_get_negotiated_phymode; - RpcReqWifiStaGetRssi *req_wifi_sta_get_rssi; - RpcReqWifiSetProtocols *req_wifi_set_protocols; - RpcReqWifiGetProtocols *req_wifi_get_protocols; - RpcReqWifiSetBandwidths *req_wifi_set_bandwidths; - RpcReqWifiGetBandwidths *req_wifi_get_bandwidths; - RpcReqWifiSetBand *req_wifi_set_band; - RpcReqWifiGetBand *req_wifi_get_band; - RpcReqWifiSetBandMode *req_wifi_set_bandmode; - RpcReqWifiGetBandMode *req_wifi_get_bandmode; - RpcReqGetCoprocessorFwVersion *req_get_coprocessor_fwversion; - RpcReqWifiScanGetApRecord *req_wifi_scan_get_ap_record; - /* - ** Responses * - */ - RpcRespGetMacAddress *resp_get_mac_address; - RpcRespSetMacAddress *resp_set_mac_address; - RpcRespGetMode *resp_get_wifi_mode; - RpcRespSetMode *resp_set_wifi_mode; - RpcRespSetPs *resp_wifi_set_ps; - RpcRespGetPs *resp_wifi_get_ps; - RpcRespOTABegin *resp_ota_begin; - RpcRespOTAWrite *resp_ota_write; - RpcRespOTAEnd *resp_ota_end; - RpcRespWifiSetMaxTxPower *resp_set_wifi_max_tx_power; - RpcRespWifiGetMaxTxPower *resp_get_wifi_max_tx_power; - RpcRespConfigHeartbeat *resp_config_heartbeat; - RpcRespWifiInit *resp_wifi_init; - RpcRespWifiDeinit *resp_wifi_deinit; - RpcRespWifiStart *resp_wifi_start; - RpcRespWifiStop *resp_wifi_stop; - RpcRespWifiConnect *resp_wifi_connect; - RpcRespWifiDisconnect *resp_wifi_disconnect; - RpcRespWifiSetConfig *resp_wifi_set_config; - RpcRespWifiGetConfig *resp_wifi_get_config; - RpcRespWifiScanStart *resp_wifi_scan_start; - RpcRespWifiScanStop *resp_wifi_scan_stop; - RpcRespWifiScanGetApNum *resp_wifi_scan_get_ap_num; - RpcRespWifiScanGetApRecords *resp_wifi_scan_get_ap_records; - RpcRespWifiClearApList *resp_wifi_clear_ap_list; - RpcRespWifiRestore *resp_wifi_restore; - RpcRespWifiClearFastConnect *resp_wifi_clear_fast_connect; - RpcRespWifiDeauthSta *resp_wifi_deauth_sta; - RpcRespWifiStaGetApInfo *resp_wifi_sta_get_ap_info; - RpcRespWifiSetProtocol *resp_wifi_set_protocol; - RpcRespWifiGetProtocol *resp_wifi_get_protocol; - RpcRespWifiSetBandwidth *resp_wifi_set_bandwidth; - RpcRespWifiGetBandwidth *resp_wifi_get_bandwidth; - RpcRespWifiSetChannel *resp_wifi_set_channel; - RpcRespWifiGetChannel *resp_wifi_get_channel; - RpcRespWifiSetCountry *resp_wifi_set_country; - RpcRespWifiGetCountry *resp_wifi_get_country; - RpcRespWifiApGetStaList *resp_wifi_ap_get_sta_list; - RpcRespWifiApGetStaAid *resp_wifi_ap_get_sta_aid; - RpcRespWifiSetStorage *resp_wifi_set_storage; - RpcRespWifiSetCountryCode *resp_wifi_set_country_code; - RpcRespWifiGetCountryCode *resp_wifi_get_country_code; - RpcRespWifiStaGetAid *resp_wifi_sta_get_aid; - RpcRespWifiStaGetNegotiatedPhymode *resp_wifi_sta_get_negotiated_phymode; - RpcRespWifiStaGetRssi *resp_wifi_sta_get_rssi; - RpcRespWifiSetProtocols *resp_wifi_set_protocols; - RpcRespWifiGetProtocols *resp_wifi_get_protocols; - RpcRespWifiSetBandwidths *resp_wifi_set_bandwidths; - RpcRespWifiGetBandwidths *resp_wifi_get_bandwidths; - RpcRespWifiSetBand *resp_wifi_set_band; - RpcRespWifiGetBand *resp_wifi_get_band; - RpcRespWifiSetBandMode *resp_wifi_set_bandmode; - RpcRespWifiGetBandMode *resp_wifi_get_bandmode; - RpcRespGetCoprocessorFwVersion *resp_get_coprocessor_fwversion; - RpcRespWifiScanGetApRecord *resp_wifi_scan_get_ap_record; - /* - ** Notifications * - */ - RpcEventESPInit *event_esp_init; - RpcEventHeartbeat *event_heartbeat; - RpcEventAPStaConnected *event_ap_sta_connected; - RpcEventAPStaDisconnected *event_ap_sta_disconnected; - RpcEventWifiEventNoArgs *event_wifi_event_no_args; - RpcEventStaScanDone *event_sta_scan_done; - RpcEventStaConnected *event_sta_connected; - RpcEventStaDisconnected *event_sta_disconnected; - }; -}; -#define RPC__INIT \ - { PROTOBUF_C_MESSAGE_INIT (&rpc__descriptor) \ - , RPC_TYPE__MsgType_Invalid, RPC_ID__MsgId_Invalid, 0, RPC__PAYLOAD__NOT_SET, {0} } - - -/* WifiInitConfig methods */ -void wifi_init_config__init - (WifiInitConfig *message); -size_t wifi_init_config__get_packed_size - (const WifiInitConfig *message); -size_t wifi_init_config__pack - (const WifiInitConfig *message, - uint8_t *out); -size_t wifi_init_config__pack_to_buffer - (const WifiInitConfig *message, - ProtobufCBuffer *buffer); -WifiInitConfig * - wifi_init_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_init_config__free_unpacked - (WifiInitConfig *message, - ProtobufCAllocator *allocator); -/* WifiCountry methods */ -void wifi_country__init - (WifiCountry *message); -size_t wifi_country__get_packed_size - (const WifiCountry *message); -size_t wifi_country__pack - (const WifiCountry *message, - uint8_t *out); -size_t wifi_country__pack_to_buffer - (const WifiCountry *message, - ProtobufCBuffer *buffer); -WifiCountry * - wifi_country__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_country__free_unpacked - (WifiCountry *message, - ProtobufCAllocator *allocator); -/* WifiActiveScanTime methods */ -void wifi_active_scan_time__init - (WifiActiveScanTime *message); -size_t wifi_active_scan_time__get_packed_size - (const WifiActiveScanTime *message); -size_t wifi_active_scan_time__pack - (const WifiActiveScanTime *message, - uint8_t *out); -size_t wifi_active_scan_time__pack_to_buffer - (const WifiActiveScanTime *message, - ProtobufCBuffer *buffer); -WifiActiveScanTime * - wifi_active_scan_time__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_active_scan_time__free_unpacked - (WifiActiveScanTime *message, - ProtobufCAllocator *allocator); -/* WifiScanTime methods */ -void wifi_scan_time__init - (WifiScanTime *message); -size_t wifi_scan_time__get_packed_size - (const WifiScanTime *message); -size_t wifi_scan_time__pack - (const WifiScanTime *message, - uint8_t *out); -size_t wifi_scan_time__pack_to_buffer - (const WifiScanTime *message, - ProtobufCBuffer *buffer); -WifiScanTime * - wifi_scan_time__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_scan_time__free_unpacked - (WifiScanTime *message, - ProtobufCAllocator *allocator); -/* WifiScanConfig methods */ -void wifi_scan_config__init - (WifiScanConfig *message); -size_t wifi_scan_config__get_packed_size - (const WifiScanConfig *message); -size_t wifi_scan_config__pack - (const WifiScanConfig *message, - uint8_t *out); -size_t wifi_scan_config__pack_to_buffer - (const WifiScanConfig *message, - ProtobufCBuffer *buffer); -WifiScanConfig * - wifi_scan_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_scan_config__free_unpacked - (WifiScanConfig *message, - ProtobufCAllocator *allocator); -/* WifiHeApInfo methods */ -void wifi_he_ap_info__init - (WifiHeApInfo *message); -size_t wifi_he_ap_info__get_packed_size - (const WifiHeApInfo *message); -size_t wifi_he_ap_info__pack - (const WifiHeApInfo *message, - uint8_t *out); -size_t wifi_he_ap_info__pack_to_buffer - (const WifiHeApInfo *message, - ProtobufCBuffer *buffer); -WifiHeApInfo * - wifi_he_ap_info__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_he_ap_info__free_unpacked - (WifiHeApInfo *message, - ProtobufCAllocator *allocator); -/* WifiApRecord methods */ -void wifi_ap_record__init - (WifiApRecord *message); -size_t wifi_ap_record__get_packed_size - (const WifiApRecord *message); -size_t wifi_ap_record__pack - (const WifiApRecord *message, - uint8_t *out); -size_t wifi_ap_record__pack_to_buffer - (const WifiApRecord *message, - ProtobufCBuffer *buffer); -WifiApRecord * - wifi_ap_record__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_ap_record__free_unpacked - (WifiApRecord *message, - ProtobufCAllocator *allocator); -/* WifiScanThreshold methods */ -void wifi_scan_threshold__init - (WifiScanThreshold *message); -size_t wifi_scan_threshold__get_packed_size - (const WifiScanThreshold *message); -size_t wifi_scan_threshold__pack - (const WifiScanThreshold *message, - uint8_t *out); -size_t wifi_scan_threshold__pack_to_buffer - (const WifiScanThreshold *message, - ProtobufCBuffer *buffer); -WifiScanThreshold * - wifi_scan_threshold__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_scan_threshold__free_unpacked - (WifiScanThreshold *message, - ProtobufCAllocator *allocator); -/* WifiPmfConfig methods */ -void wifi_pmf_config__init - (WifiPmfConfig *message); -size_t wifi_pmf_config__get_packed_size - (const WifiPmfConfig *message); -size_t wifi_pmf_config__pack - (const WifiPmfConfig *message, - uint8_t *out); -size_t wifi_pmf_config__pack_to_buffer - (const WifiPmfConfig *message, - ProtobufCBuffer *buffer); -WifiPmfConfig * - wifi_pmf_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_pmf_config__free_unpacked - (WifiPmfConfig *message, - ProtobufCAllocator *allocator); -/* WifiApConfig methods */ -void wifi_ap_config__init - (WifiApConfig *message); -size_t wifi_ap_config__get_packed_size - (const WifiApConfig *message); -size_t wifi_ap_config__pack - (const WifiApConfig *message, - uint8_t *out); -size_t wifi_ap_config__pack_to_buffer - (const WifiApConfig *message, - ProtobufCBuffer *buffer); -WifiApConfig * - wifi_ap_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_ap_config__free_unpacked - (WifiApConfig *message, - ProtobufCAllocator *allocator); -/* WifiStaConfig methods */ -void wifi_sta_config__init - (WifiStaConfig *message); -size_t wifi_sta_config__get_packed_size - (const WifiStaConfig *message); -size_t wifi_sta_config__pack - (const WifiStaConfig *message, - uint8_t *out); -size_t wifi_sta_config__pack_to_buffer - (const WifiStaConfig *message, - ProtobufCBuffer *buffer); -WifiStaConfig * - wifi_sta_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_sta_config__free_unpacked - (WifiStaConfig *message, - ProtobufCAllocator *allocator); -/* WifiConfig methods */ -void wifi_config__init - (WifiConfig *message); -size_t wifi_config__get_packed_size - (const WifiConfig *message); -size_t wifi_config__pack - (const WifiConfig *message, - uint8_t *out); -size_t wifi_config__pack_to_buffer - (const WifiConfig *message, - ProtobufCBuffer *buffer); -WifiConfig * - wifi_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_config__free_unpacked - (WifiConfig *message, - ProtobufCAllocator *allocator); -/* WifiStaInfo methods */ -void wifi_sta_info__init - (WifiStaInfo *message); -size_t wifi_sta_info__get_packed_size - (const WifiStaInfo *message); -size_t wifi_sta_info__pack - (const WifiStaInfo *message, - uint8_t *out); -size_t wifi_sta_info__pack_to_buffer - (const WifiStaInfo *message, - ProtobufCBuffer *buffer); -WifiStaInfo * - wifi_sta_info__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_sta_info__free_unpacked - (WifiStaInfo *message, - ProtobufCAllocator *allocator); -/* WifiStaList methods */ -void wifi_sta_list__init - (WifiStaList *message); -size_t wifi_sta_list__get_packed_size - (const WifiStaList *message); -size_t wifi_sta_list__pack - (const WifiStaList *message, - uint8_t *out); -size_t wifi_sta_list__pack_to_buffer - (const WifiStaList *message, - ProtobufCBuffer *buffer); -WifiStaList * - wifi_sta_list__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_sta_list__free_unpacked - (WifiStaList *message, - ProtobufCAllocator *allocator); -/* WifiPktRxCtrl methods */ -void wifi_pkt_rx_ctrl__init - (WifiPktRxCtrl *message); -size_t wifi_pkt_rx_ctrl__get_packed_size - (const WifiPktRxCtrl *message); -size_t wifi_pkt_rx_ctrl__pack - (const WifiPktRxCtrl *message, - uint8_t *out); -size_t wifi_pkt_rx_ctrl__pack_to_buffer - (const WifiPktRxCtrl *message, - ProtobufCBuffer *buffer); -WifiPktRxCtrl * - wifi_pkt_rx_ctrl__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_pkt_rx_ctrl__free_unpacked - (WifiPktRxCtrl *message, - ProtobufCAllocator *allocator); -/* WifiPromiscuousPkt methods */ -void wifi_promiscuous_pkt__init - (WifiPromiscuousPkt *message); -size_t wifi_promiscuous_pkt__get_packed_size - (const WifiPromiscuousPkt *message); -size_t wifi_promiscuous_pkt__pack - (const WifiPromiscuousPkt *message, - uint8_t *out); -size_t wifi_promiscuous_pkt__pack_to_buffer - (const WifiPromiscuousPkt *message, - ProtobufCBuffer *buffer); -WifiPromiscuousPkt * - wifi_promiscuous_pkt__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_promiscuous_pkt__free_unpacked - (WifiPromiscuousPkt *message, - ProtobufCAllocator *allocator); -/* WifiPromiscuousFilter methods */ -void wifi_promiscuous_filter__init - (WifiPromiscuousFilter *message); -size_t wifi_promiscuous_filter__get_packed_size - (const WifiPromiscuousFilter *message); -size_t wifi_promiscuous_filter__pack - (const WifiPromiscuousFilter *message, - uint8_t *out); -size_t wifi_promiscuous_filter__pack_to_buffer - (const WifiPromiscuousFilter *message, - ProtobufCBuffer *buffer); -WifiPromiscuousFilter * - wifi_promiscuous_filter__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_promiscuous_filter__free_unpacked - (WifiPromiscuousFilter *message, - ProtobufCAllocator *allocator); -/* WifiCsiConfig methods */ -void wifi_csi_config__init - (WifiCsiConfig *message); -size_t wifi_csi_config__get_packed_size - (const WifiCsiConfig *message); -size_t wifi_csi_config__pack - (const WifiCsiConfig *message, - uint8_t *out); -size_t wifi_csi_config__pack_to_buffer - (const WifiCsiConfig *message, - ProtobufCBuffer *buffer); -WifiCsiConfig * - wifi_csi_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_csi_config__free_unpacked - (WifiCsiConfig *message, - ProtobufCAllocator *allocator); -/* WifiCsiInfo methods */ -void wifi_csi_info__init - (WifiCsiInfo *message); -size_t wifi_csi_info__get_packed_size - (const WifiCsiInfo *message); -size_t wifi_csi_info__pack - (const WifiCsiInfo *message, - uint8_t *out); -size_t wifi_csi_info__pack_to_buffer - (const WifiCsiInfo *message, - ProtobufCBuffer *buffer); -WifiCsiInfo * - wifi_csi_info__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_csi_info__free_unpacked - (WifiCsiInfo *message, - ProtobufCAllocator *allocator); -/* WifiAntGpio methods */ -void wifi_ant_gpio__init - (WifiAntGpio *message); -size_t wifi_ant_gpio__get_packed_size - (const WifiAntGpio *message); -size_t wifi_ant_gpio__pack - (const WifiAntGpio *message, - uint8_t *out); -size_t wifi_ant_gpio__pack_to_buffer - (const WifiAntGpio *message, - ProtobufCBuffer *buffer); -WifiAntGpio * - wifi_ant_gpio__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_ant_gpio__free_unpacked - (WifiAntGpio *message, - ProtobufCAllocator *allocator); -/* WifiAntGpioConfig methods */ -void wifi_ant_gpio_config__init - (WifiAntGpioConfig *message); -size_t wifi_ant_gpio_config__get_packed_size - (const WifiAntGpioConfig *message); -size_t wifi_ant_gpio_config__pack - (const WifiAntGpioConfig *message, - uint8_t *out); -size_t wifi_ant_gpio_config__pack_to_buffer - (const WifiAntGpioConfig *message, - ProtobufCBuffer *buffer); -WifiAntGpioConfig * - wifi_ant_gpio_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_ant_gpio_config__free_unpacked - (WifiAntGpioConfig *message, - ProtobufCAllocator *allocator); -/* WifiAntConfig methods */ -void wifi_ant_config__init - (WifiAntConfig *message); -size_t wifi_ant_config__get_packed_size - (const WifiAntConfig *message); -size_t wifi_ant_config__pack - (const WifiAntConfig *message, - uint8_t *out); -size_t wifi_ant_config__pack_to_buffer - (const WifiAntConfig *message, - ProtobufCBuffer *buffer); -WifiAntConfig * - wifi_ant_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_ant_config__free_unpacked - (WifiAntConfig *message, - ProtobufCAllocator *allocator); -/* WifiActionTxReq methods */ -void wifi_action_tx_req__init - (WifiActionTxReq *message); -size_t wifi_action_tx_req__get_packed_size - (const WifiActionTxReq *message); -size_t wifi_action_tx_req__pack - (const WifiActionTxReq *message, - uint8_t *out); -size_t wifi_action_tx_req__pack_to_buffer - (const WifiActionTxReq *message, - ProtobufCBuffer *buffer); -WifiActionTxReq * - wifi_action_tx_req__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_action_tx_req__free_unpacked - (WifiActionTxReq *message, - ProtobufCAllocator *allocator); -/* WifiFtmInitiatorCfg methods */ -void wifi_ftm_initiator_cfg__init - (WifiFtmInitiatorCfg *message); -size_t wifi_ftm_initiator_cfg__get_packed_size - (const WifiFtmInitiatorCfg *message); -size_t wifi_ftm_initiator_cfg__pack - (const WifiFtmInitiatorCfg *message, - uint8_t *out); -size_t wifi_ftm_initiator_cfg__pack_to_buffer - (const WifiFtmInitiatorCfg *message, - ProtobufCBuffer *buffer); -WifiFtmInitiatorCfg * - wifi_ftm_initiator_cfg__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_ftm_initiator_cfg__free_unpacked - (WifiFtmInitiatorCfg *message, - ProtobufCAllocator *allocator); -/* WifiEventStaScanDone methods */ -void wifi_event_sta_scan_done__init - (WifiEventStaScanDone *message); -size_t wifi_event_sta_scan_done__get_packed_size - (const WifiEventStaScanDone *message); -size_t wifi_event_sta_scan_done__pack - (const WifiEventStaScanDone *message, - uint8_t *out); -size_t wifi_event_sta_scan_done__pack_to_buffer - (const WifiEventStaScanDone *message, - ProtobufCBuffer *buffer); -WifiEventStaScanDone * - wifi_event_sta_scan_done__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_event_sta_scan_done__free_unpacked - (WifiEventStaScanDone *message, - ProtobufCAllocator *allocator); -/* WifiEventStaConnected methods */ -void wifi_event_sta_connected__init - (WifiEventStaConnected *message); -size_t wifi_event_sta_connected__get_packed_size - (const WifiEventStaConnected *message); -size_t wifi_event_sta_connected__pack - (const WifiEventStaConnected *message, - uint8_t *out); -size_t wifi_event_sta_connected__pack_to_buffer - (const WifiEventStaConnected *message, - ProtobufCBuffer *buffer); -WifiEventStaConnected * - wifi_event_sta_connected__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_event_sta_connected__free_unpacked - (WifiEventStaConnected *message, - ProtobufCAllocator *allocator); -/* WifiEventStaDisconnected methods */ -void wifi_event_sta_disconnected__init - (WifiEventStaDisconnected *message); -size_t wifi_event_sta_disconnected__get_packed_size - (const WifiEventStaDisconnected *message); -size_t wifi_event_sta_disconnected__pack - (const WifiEventStaDisconnected *message, - uint8_t *out); -size_t wifi_event_sta_disconnected__pack_to_buffer - (const WifiEventStaDisconnected *message, - ProtobufCBuffer *buffer); -WifiEventStaDisconnected * - wifi_event_sta_disconnected__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_event_sta_disconnected__free_unpacked - (WifiEventStaDisconnected *message, - ProtobufCAllocator *allocator); -/* WifiEventStaAuthmodeChange methods */ -void wifi_event_sta_authmode_change__init - (WifiEventStaAuthmodeChange *message); -size_t wifi_event_sta_authmode_change__get_packed_size - (const WifiEventStaAuthmodeChange *message); -size_t wifi_event_sta_authmode_change__pack - (const WifiEventStaAuthmodeChange *message, - uint8_t *out); -size_t wifi_event_sta_authmode_change__pack_to_buffer - (const WifiEventStaAuthmodeChange *message, - ProtobufCBuffer *buffer); -WifiEventStaAuthmodeChange * - wifi_event_sta_authmode_change__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_event_sta_authmode_change__free_unpacked - (WifiEventStaAuthmodeChange *message, - ProtobufCAllocator *allocator); -/* WifiEventStaWpsErPin methods */ -void wifi_event_sta_wps_er_pin__init - (WifiEventStaWpsErPin *message); -size_t wifi_event_sta_wps_er_pin__get_packed_size - (const WifiEventStaWpsErPin *message); -size_t wifi_event_sta_wps_er_pin__pack - (const WifiEventStaWpsErPin *message, - uint8_t *out); -size_t wifi_event_sta_wps_er_pin__pack_to_buffer - (const WifiEventStaWpsErPin *message, - ProtobufCBuffer *buffer); -WifiEventStaWpsErPin * - wifi_event_sta_wps_er_pin__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_event_sta_wps_er_pin__free_unpacked - (WifiEventStaWpsErPin *message, - ProtobufCAllocator *allocator); -/* ApCred methods */ -void ap_cred__init - (ApCred *message); -size_t ap_cred__get_packed_size - (const ApCred *message); -size_t ap_cred__pack - (const ApCred *message, - uint8_t *out); -size_t ap_cred__pack_to_buffer - (const ApCred *message, - ProtobufCBuffer *buffer); -ApCred * - ap_cred__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void ap_cred__free_unpacked - (ApCred *message, - ProtobufCAllocator *allocator); -/* WifiEventStaWpsErSuccess methods */ -void wifi_event_sta_wps_er_success__init - (WifiEventStaWpsErSuccess *message); -size_t wifi_event_sta_wps_er_success__get_packed_size - (const WifiEventStaWpsErSuccess *message); -size_t wifi_event_sta_wps_er_success__pack - (const WifiEventStaWpsErSuccess *message, - uint8_t *out); -size_t wifi_event_sta_wps_er_success__pack_to_buffer - (const WifiEventStaWpsErSuccess *message, - ProtobufCBuffer *buffer); -WifiEventStaWpsErSuccess * - wifi_event_sta_wps_er_success__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_event_sta_wps_er_success__free_unpacked - (WifiEventStaWpsErSuccess *message, - ProtobufCAllocator *allocator); -/* WifiEventApProbeReqRx methods */ -void wifi_event_ap_probe_req_rx__init - (WifiEventApProbeReqRx *message); -size_t wifi_event_ap_probe_req_rx__get_packed_size - (const WifiEventApProbeReqRx *message); -size_t wifi_event_ap_probe_req_rx__pack - (const WifiEventApProbeReqRx *message, - uint8_t *out); -size_t wifi_event_ap_probe_req_rx__pack_to_buffer - (const WifiEventApProbeReqRx *message, - ProtobufCBuffer *buffer); -WifiEventApProbeReqRx * - wifi_event_ap_probe_req_rx__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_event_ap_probe_req_rx__free_unpacked - (WifiEventApProbeReqRx *message, - ProtobufCAllocator *allocator); -/* WifiEventBssRssiLow methods */ -void wifi_event_bss_rssi_low__init - (WifiEventBssRssiLow *message); -size_t wifi_event_bss_rssi_low__get_packed_size - (const WifiEventBssRssiLow *message); -size_t wifi_event_bss_rssi_low__pack - (const WifiEventBssRssiLow *message, - uint8_t *out); -size_t wifi_event_bss_rssi_low__pack_to_buffer - (const WifiEventBssRssiLow *message, - ProtobufCBuffer *buffer); -WifiEventBssRssiLow * - wifi_event_bss_rssi_low__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_event_bss_rssi_low__free_unpacked - (WifiEventBssRssiLow *message, - ProtobufCAllocator *allocator); -/* WifiFtmReportEntry methods */ -void wifi_ftm_report_entry__init - (WifiFtmReportEntry *message); -size_t wifi_ftm_report_entry__get_packed_size - (const WifiFtmReportEntry *message); -size_t wifi_ftm_report_entry__pack - (const WifiFtmReportEntry *message, - uint8_t *out); -size_t wifi_ftm_report_entry__pack_to_buffer - (const WifiFtmReportEntry *message, - ProtobufCBuffer *buffer); -WifiFtmReportEntry * - wifi_ftm_report_entry__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_ftm_report_entry__free_unpacked - (WifiFtmReportEntry *message, - ProtobufCAllocator *allocator); -/* WifiEventFtmReport methods */ -void wifi_event_ftm_report__init - (WifiEventFtmReport *message); -size_t wifi_event_ftm_report__get_packed_size - (const WifiEventFtmReport *message); -size_t wifi_event_ftm_report__pack - (const WifiEventFtmReport *message, - uint8_t *out); -size_t wifi_event_ftm_report__pack_to_buffer - (const WifiEventFtmReport *message, - ProtobufCBuffer *buffer); -WifiEventFtmReport * - wifi_event_ftm_report__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_event_ftm_report__free_unpacked - (WifiEventFtmReport *message, - ProtobufCAllocator *allocator); -/* WifiEventActionTxStatus methods */ -void wifi_event_action_tx_status__init - (WifiEventActionTxStatus *message); -size_t wifi_event_action_tx_status__get_packed_size - (const WifiEventActionTxStatus *message); -size_t wifi_event_action_tx_status__pack - (const WifiEventActionTxStatus *message, - uint8_t *out); -size_t wifi_event_action_tx_status__pack_to_buffer - (const WifiEventActionTxStatus *message, - ProtobufCBuffer *buffer); -WifiEventActionTxStatus * - wifi_event_action_tx_status__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_event_action_tx_status__free_unpacked - (WifiEventActionTxStatus *message, - ProtobufCAllocator *allocator); -/* WifiEventRocDone methods */ -void wifi_event_roc_done__init - (WifiEventRocDone *message); -size_t wifi_event_roc_done__get_packed_size - (const WifiEventRocDone *message); -size_t wifi_event_roc_done__pack - (const WifiEventRocDone *message, - uint8_t *out); -size_t wifi_event_roc_done__pack_to_buffer - (const WifiEventRocDone *message, - ProtobufCBuffer *buffer); -WifiEventRocDone * - wifi_event_roc_done__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_event_roc_done__free_unpacked - (WifiEventRocDone *message, - ProtobufCAllocator *allocator); -/* WifiEventApWpsRgPin methods */ -void wifi_event_ap_wps_rg_pin__init - (WifiEventApWpsRgPin *message); -size_t wifi_event_ap_wps_rg_pin__get_packed_size - (const WifiEventApWpsRgPin *message); -size_t wifi_event_ap_wps_rg_pin__pack - (const WifiEventApWpsRgPin *message, - uint8_t *out); -size_t wifi_event_ap_wps_rg_pin__pack_to_buffer - (const WifiEventApWpsRgPin *message, - ProtobufCBuffer *buffer); -WifiEventApWpsRgPin * - wifi_event_ap_wps_rg_pin__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_event_ap_wps_rg_pin__free_unpacked - (WifiEventApWpsRgPin *message, - ProtobufCAllocator *allocator); -/* WifiEventApWpsRgFailReason methods */ -void wifi_event_ap_wps_rg_fail_reason__init - (WifiEventApWpsRgFailReason *message); -size_t wifi_event_ap_wps_rg_fail_reason__get_packed_size - (const WifiEventApWpsRgFailReason *message); -size_t wifi_event_ap_wps_rg_fail_reason__pack - (const WifiEventApWpsRgFailReason *message, - uint8_t *out); -size_t wifi_event_ap_wps_rg_fail_reason__pack_to_buffer - (const WifiEventApWpsRgFailReason *message, - ProtobufCBuffer *buffer); -WifiEventApWpsRgFailReason * - wifi_event_ap_wps_rg_fail_reason__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_event_ap_wps_rg_fail_reason__free_unpacked - (WifiEventApWpsRgFailReason *message, - ProtobufCAllocator *allocator); -/* WifiEventApWpsRgSuccess methods */ -void wifi_event_ap_wps_rg_success__init - (WifiEventApWpsRgSuccess *message); -size_t wifi_event_ap_wps_rg_success__get_packed_size - (const WifiEventApWpsRgSuccess *message); -size_t wifi_event_ap_wps_rg_success__pack - (const WifiEventApWpsRgSuccess *message, - uint8_t *out); -size_t wifi_event_ap_wps_rg_success__pack_to_buffer - (const WifiEventApWpsRgSuccess *message, - ProtobufCBuffer *buffer); -WifiEventApWpsRgSuccess * - wifi_event_ap_wps_rg_success__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_event_ap_wps_rg_success__free_unpacked - (WifiEventApWpsRgSuccess *message, - ProtobufCAllocator *allocator); -/* WifiProtocols methods */ -void wifi_protocols__init - (WifiProtocols *message); -size_t wifi_protocols__get_packed_size - (const WifiProtocols *message); -size_t wifi_protocols__pack - (const WifiProtocols *message, - uint8_t *out); -size_t wifi_protocols__pack_to_buffer - (const WifiProtocols *message, - ProtobufCBuffer *buffer); -WifiProtocols * - wifi_protocols__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_protocols__free_unpacked - (WifiProtocols *message, - ProtobufCAllocator *allocator); -/* WifiBandwidths methods */ -void wifi_bandwidths__init - (WifiBandwidths *message); -size_t wifi_bandwidths__get_packed_size - (const WifiBandwidths *message); -size_t wifi_bandwidths__pack - (const WifiBandwidths *message, - uint8_t *out); -size_t wifi_bandwidths__pack_to_buffer - (const WifiBandwidths *message, - ProtobufCBuffer *buffer); -WifiBandwidths * - wifi_bandwidths__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void wifi_bandwidths__free_unpacked - (WifiBandwidths *message, - ProtobufCAllocator *allocator); -/* ConnectedSTAList methods */ -void connected_stalist__init - (ConnectedSTAList *message); -size_t connected_stalist__get_packed_size - (const ConnectedSTAList *message); -size_t connected_stalist__pack - (const ConnectedSTAList *message, - uint8_t *out); -size_t connected_stalist__pack_to_buffer - (const ConnectedSTAList *message, - ProtobufCBuffer *buffer); -ConnectedSTAList * - connected_stalist__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void connected_stalist__free_unpacked - (ConnectedSTAList *message, - ProtobufCAllocator *allocator); -/* RpcReqGetMacAddress methods */ -void rpc__req__get_mac_address__init - (RpcReqGetMacAddress *message); -size_t rpc__req__get_mac_address__get_packed_size - (const RpcReqGetMacAddress *message); -size_t rpc__req__get_mac_address__pack - (const RpcReqGetMacAddress *message, - uint8_t *out); -size_t rpc__req__get_mac_address__pack_to_buffer - (const RpcReqGetMacAddress *message, - ProtobufCBuffer *buffer); -RpcReqGetMacAddress * - rpc__req__get_mac_address__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__get_mac_address__free_unpacked - (RpcReqGetMacAddress *message, - ProtobufCAllocator *allocator); -/* RpcRespGetMacAddress methods */ -void rpc__resp__get_mac_address__init - (RpcRespGetMacAddress *message); -size_t rpc__resp__get_mac_address__get_packed_size - (const RpcRespGetMacAddress *message); -size_t rpc__resp__get_mac_address__pack - (const RpcRespGetMacAddress *message, - uint8_t *out); -size_t rpc__resp__get_mac_address__pack_to_buffer - (const RpcRespGetMacAddress *message, - ProtobufCBuffer *buffer); -RpcRespGetMacAddress * - rpc__resp__get_mac_address__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__get_mac_address__free_unpacked - (RpcRespGetMacAddress *message, - ProtobufCAllocator *allocator); -/* RpcReqGetMode methods */ -void rpc__req__get_mode__init - (RpcReqGetMode *message); -size_t rpc__req__get_mode__get_packed_size - (const RpcReqGetMode *message); -size_t rpc__req__get_mode__pack - (const RpcReqGetMode *message, - uint8_t *out); -size_t rpc__req__get_mode__pack_to_buffer - (const RpcReqGetMode *message, - ProtobufCBuffer *buffer); -RpcReqGetMode * - rpc__req__get_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__get_mode__free_unpacked - (RpcReqGetMode *message, - ProtobufCAllocator *allocator); -/* RpcRespGetMode methods */ -void rpc__resp__get_mode__init - (RpcRespGetMode *message); -size_t rpc__resp__get_mode__get_packed_size - (const RpcRespGetMode *message); -size_t rpc__resp__get_mode__pack - (const RpcRespGetMode *message, - uint8_t *out); -size_t rpc__resp__get_mode__pack_to_buffer - (const RpcRespGetMode *message, - ProtobufCBuffer *buffer); -RpcRespGetMode * - rpc__resp__get_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__get_mode__free_unpacked - (RpcRespGetMode *message, - ProtobufCAllocator *allocator); -/* RpcReqSetMode methods */ -void rpc__req__set_mode__init - (RpcReqSetMode *message); -size_t rpc__req__set_mode__get_packed_size - (const RpcReqSetMode *message); -size_t rpc__req__set_mode__pack - (const RpcReqSetMode *message, - uint8_t *out); -size_t rpc__req__set_mode__pack_to_buffer - (const RpcReqSetMode *message, - ProtobufCBuffer *buffer); -RpcReqSetMode * - rpc__req__set_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__set_mode__free_unpacked - (RpcReqSetMode *message, - ProtobufCAllocator *allocator); -/* RpcRespSetMode methods */ -void rpc__resp__set_mode__init - (RpcRespSetMode *message); -size_t rpc__resp__set_mode__get_packed_size - (const RpcRespSetMode *message); -size_t rpc__resp__set_mode__pack - (const RpcRespSetMode *message, - uint8_t *out); -size_t rpc__resp__set_mode__pack_to_buffer - (const RpcRespSetMode *message, - ProtobufCBuffer *buffer); -RpcRespSetMode * - rpc__resp__set_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__set_mode__free_unpacked - (RpcRespSetMode *message, - ProtobufCAllocator *allocator); -/* RpcReqGetPs methods */ -void rpc__req__get_ps__init - (RpcReqGetPs *message); -size_t rpc__req__get_ps__get_packed_size - (const RpcReqGetPs *message); -size_t rpc__req__get_ps__pack - (const RpcReqGetPs *message, - uint8_t *out); -size_t rpc__req__get_ps__pack_to_buffer - (const RpcReqGetPs *message, - ProtobufCBuffer *buffer); -RpcReqGetPs * - rpc__req__get_ps__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__get_ps__free_unpacked - (RpcReqGetPs *message, - ProtobufCAllocator *allocator); -/* RpcRespGetPs methods */ -void rpc__resp__get_ps__init - (RpcRespGetPs *message); -size_t rpc__resp__get_ps__get_packed_size - (const RpcRespGetPs *message); -size_t rpc__resp__get_ps__pack - (const RpcRespGetPs *message, - uint8_t *out); -size_t rpc__resp__get_ps__pack_to_buffer - (const RpcRespGetPs *message, - ProtobufCBuffer *buffer); -RpcRespGetPs * - rpc__resp__get_ps__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__get_ps__free_unpacked - (RpcRespGetPs *message, - ProtobufCAllocator *allocator); -/* RpcReqSetPs methods */ -void rpc__req__set_ps__init - (RpcReqSetPs *message); -size_t rpc__req__set_ps__get_packed_size - (const RpcReqSetPs *message); -size_t rpc__req__set_ps__pack - (const RpcReqSetPs *message, - uint8_t *out); -size_t rpc__req__set_ps__pack_to_buffer - (const RpcReqSetPs *message, - ProtobufCBuffer *buffer); -RpcReqSetPs * - rpc__req__set_ps__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__set_ps__free_unpacked - (RpcReqSetPs *message, - ProtobufCAllocator *allocator); -/* RpcRespSetPs methods */ -void rpc__resp__set_ps__init - (RpcRespSetPs *message); -size_t rpc__resp__set_ps__get_packed_size - (const RpcRespSetPs *message); -size_t rpc__resp__set_ps__pack - (const RpcRespSetPs *message, - uint8_t *out); -size_t rpc__resp__set_ps__pack_to_buffer - (const RpcRespSetPs *message, - ProtobufCBuffer *buffer); -RpcRespSetPs * - rpc__resp__set_ps__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__set_ps__free_unpacked - (RpcRespSetPs *message, - ProtobufCAllocator *allocator); -/* RpcReqSetMacAddress methods */ -void rpc__req__set_mac_address__init - (RpcReqSetMacAddress *message); -size_t rpc__req__set_mac_address__get_packed_size - (const RpcReqSetMacAddress *message); -size_t rpc__req__set_mac_address__pack - (const RpcReqSetMacAddress *message, - uint8_t *out); -size_t rpc__req__set_mac_address__pack_to_buffer - (const RpcReqSetMacAddress *message, - ProtobufCBuffer *buffer); -RpcReqSetMacAddress * - rpc__req__set_mac_address__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__set_mac_address__free_unpacked - (RpcReqSetMacAddress *message, - ProtobufCAllocator *allocator); -/* RpcRespSetMacAddress methods */ -void rpc__resp__set_mac_address__init - (RpcRespSetMacAddress *message); -size_t rpc__resp__set_mac_address__get_packed_size - (const RpcRespSetMacAddress *message); -size_t rpc__resp__set_mac_address__pack - (const RpcRespSetMacAddress *message, - uint8_t *out); -size_t rpc__resp__set_mac_address__pack_to_buffer - (const RpcRespSetMacAddress *message, - ProtobufCBuffer *buffer); -RpcRespSetMacAddress * - rpc__resp__set_mac_address__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__set_mac_address__free_unpacked - (RpcRespSetMacAddress *message, - ProtobufCAllocator *allocator); -/* RpcReqOTABegin methods */ -void rpc__req__otabegin__init - (RpcReqOTABegin *message); -size_t rpc__req__otabegin__get_packed_size - (const RpcReqOTABegin *message); -size_t rpc__req__otabegin__pack - (const RpcReqOTABegin *message, - uint8_t *out); -size_t rpc__req__otabegin__pack_to_buffer - (const RpcReqOTABegin *message, - ProtobufCBuffer *buffer); -RpcReqOTABegin * - rpc__req__otabegin__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__otabegin__free_unpacked - (RpcReqOTABegin *message, - ProtobufCAllocator *allocator); -/* RpcRespOTABegin methods */ -void rpc__resp__otabegin__init - (RpcRespOTABegin *message); -size_t rpc__resp__otabegin__get_packed_size - (const RpcRespOTABegin *message); -size_t rpc__resp__otabegin__pack - (const RpcRespOTABegin *message, - uint8_t *out); -size_t rpc__resp__otabegin__pack_to_buffer - (const RpcRespOTABegin *message, - ProtobufCBuffer *buffer); -RpcRespOTABegin * - rpc__resp__otabegin__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__otabegin__free_unpacked - (RpcRespOTABegin *message, - ProtobufCAllocator *allocator); -/* RpcReqOTAWrite methods */ -void rpc__req__otawrite__init - (RpcReqOTAWrite *message); -size_t rpc__req__otawrite__get_packed_size - (const RpcReqOTAWrite *message); -size_t rpc__req__otawrite__pack - (const RpcReqOTAWrite *message, - uint8_t *out); -size_t rpc__req__otawrite__pack_to_buffer - (const RpcReqOTAWrite *message, - ProtobufCBuffer *buffer); -RpcReqOTAWrite * - rpc__req__otawrite__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__otawrite__free_unpacked - (RpcReqOTAWrite *message, - ProtobufCAllocator *allocator); -/* RpcRespOTAWrite methods */ -void rpc__resp__otawrite__init - (RpcRespOTAWrite *message); -size_t rpc__resp__otawrite__get_packed_size - (const RpcRespOTAWrite *message); -size_t rpc__resp__otawrite__pack - (const RpcRespOTAWrite *message, - uint8_t *out); -size_t rpc__resp__otawrite__pack_to_buffer - (const RpcRespOTAWrite *message, - ProtobufCBuffer *buffer); -RpcRespOTAWrite * - rpc__resp__otawrite__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__otawrite__free_unpacked - (RpcRespOTAWrite *message, - ProtobufCAllocator *allocator); -/* RpcReqOTAEnd methods */ -void rpc__req__otaend__init - (RpcReqOTAEnd *message); -size_t rpc__req__otaend__get_packed_size - (const RpcReqOTAEnd *message); -size_t rpc__req__otaend__pack - (const RpcReqOTAEnd *message, - uint8_t *out); -size_t rpc__req__otaend__pack_to_buffer - (const RpcReqOTAEnd *message, - ProtobufCBuffer *buffer); -RpcReqOTAEnd * - rpc__req__otaend__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__otaend__free_unpacked - (RpcReqOTAEnd *message, - ProtobufCAllocator *allocator); -/* RpcRespOTAEnd methods */ -void rpc__resp__otaend__init - (RpcRespOTAEnd *message); -size_t rpc__resp__otaend__get_packed_size - (const RpcRespOTAEnd *message); -size_t rpc__resp__otaend__pack - (const RpcRespOTAEnd *message, - uint8_t *out); -size_t rpc__resp__otaend__pack_to_buffer - (const RpcRespOTAEnd *message, - ProtobufCBuffer *buffer); -RpcRespOTAEnd * - rpc__resp__otaend__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__otaend__free_unpacked - (RpcRespOTAEnd *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiSetMaxTxPower methods */ -void rpc__req__wifi_set_max_tx_power__init - (RpcReqWifiSetMaxTxPower *message); -size_t rpc__req__wifi_set_max_tx_power__get_packed_size - (const RpcReqWifiSetMaxTxPower *message); -size_t rpc__req__wifi_set_max_tx_power__pack - (const RpcReqWifiSetMaxTxPower *message, - uint8_t *out); -size_t rpc__req__wifi_set_max_tx_power__pack_to_buffer - (const RpcReqWifiSetMaxTxPower *message, - ProtobufCBuffer *buffer); -RpcReqWifiSetMaxTxPower * - rpc__req__wifi_set_max_tx_power__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_set_max_tx_power__free_unpacked - (RpcReqWifiSetMaxTxPower *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiSetMaxTxPower methods */ -void rpc__resp__wifi_set_max_tx_power__init - (RpcRespWifiSetMaxTxPower *message); -size_t rpc__resp__wifi_set_max_tx_power__get_packed_size - (const RpcRespWifiSetMaxTxPower *message); -size_t rpc__resp__wifi_set_max_tx_power__pack - (const RpcRespWifiSetMaxTxPower *message, - uint8_t *out); -size_t rpc__resp__wifi_set_max_tx_power__pack_to_buffer - (const RpcRespWifiSetMaxTxPower *message, - ProtobufCBuffer *buffer); -RpcRespWifiSetMaxTxPower * - rpc__resp__wifi_set_max_tx_power__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_set_max_tx_power__free_unpacked - (RpcRespWifiSetMaxTxPower *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiGetMaxTxPower methods */ -void rpc__req__wifi_get_max_tx_power__init - (RpcReqWifiGetMaxTxPower *message); -size_t rpc__req__wifi_get_max_tx_power__get_packed_size - (const RpcReqWifiGetMaxTxPower *message); -size_t rpc__req__wifi_get_max_tx_power__pack - (const RpcReqWifiGetMaxTxPower *message, - uint8_t *out); -size_t rpc__req__wifi_get_max_tx_power__pack_to_buffer - (const RpcReqWifiGetMaxTxPower *message, - ProtobufCBuffer *buffer); -RpcReqWifiGetMaxTxPower * - rpc__req__wifi_get_max_tx_power__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_get_max_tx_power__free_unpacked - (RpcReqWifiGetMaxTxPower *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiGetMaxTxPower methods */ -void rpc__resp__wifi_get_max_tx_power__init - (RpcRespWifiGetMaxTxPower *message); -size_t rpc__resp__wifi_get_max_tx_power__get_packed_size - (const RpcRespWifiGetMaxTxPower *message); -size_t rpc__resp__wifi_get_max_tx_power__pack - (const RpcRespWifiGetMaxTxPower *message, - uint8_t *out); -size_t rpc__resp__wifi_get_max_tx_power__pack_to_buffer - (const RpcRespWifiGetMaxTxPower *message, - ProtobufCBuffer *buffer); -RpcRespWifiGetMaxTxPower * - rpc__resp__wifi_get_max_tx_power__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_get_max_tx_power__free_unpacked - (RpcRespWifiGetMaxTxPower *message, - ProtobufCAllocator *allocator); -/* RpcReqConfigHeartbeat methods */ -void rpc__req__config_heartbeat__init - (RpcReqConfigHeartbeat *message); -size_t rpc__req__config_heartbeat__get_packed_size - (const RpcReqConfigHeartbeat *message); -size_t rpc__req__config_heartbeat__pack - (const RpcReqConfigHeartbeat *message, - uint8_t *out); -size_t rpc__req__config_heartbeat__pack_to_buffer - (const RpcReqConfigHeartbeat *message, - ProtobufCBuffer *buffer); -RpcReqConfigHeartbeat * - rpc__req__config_heartbeat__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__config_heartbeat__free_unpacked - (RpcReqConfigHeartbeat *message, - ProtobufCAllocator *allocator); -/* RpcRespConfigHeartbeat methods */ -void rpc__resp__config_heartbeat__init - (RpcRespConfigHeartbeat *message); -size_t rpc__resp__config_heartbeat__get_packed_size - (const RpcRespConfigHeartbeat *message); -size_t rpc__resp__config_heartbeat__pack - (const RpcRespConfigHeartbeat *message, - uint8_t *out); -size_t rpc__resp__config_heartbeat__pack_to_buffer - (const RpcRespConfigHeartbeat *message, - ProtobufCBuffer *buffer); -RpcRespConfigHeartbeat * - rpc__resp__config_heartbeat__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__config_heartbeat__free_unpacked - (RpcRespConfigHeartbeat *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiInit methods */ -void rpc__req__wifi_init__init - (RpcReqWifiInit *message); -size_t rpc__req__wifi_init__get_packed_size - (const RpcReqWifiInit *message); -size_t rpc__req__wifi_init__pack - (const RpcReqWifiInit *message, - uint8_t *out); -size_t rpc__req__wifi_init__pack_to_buffer - (const RpcReqWifiInit *message, - ProtobufCBuffer *buffer); -RpcReqWifiInit * - rpc__req__wifi_init__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_init__free_unpacked - (RpcReqWifiInit *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiInit methods */ -void rpc__resp__wifi_init__init - (RpcRespWifiInit *message); -size_t rpc__resp__wifi_init__get_packed_size - (const RpcRespWifiInit *message); -size_t rpc__resp__wifi_init__pack - (const RpcRespWifiInit *message, - uint8_t *out); -size_t rpc__resp__wifi_init__pack_to_buffer - (const RpcRespWifiInit *message, - ProtobufCBuffer *buffer); -RpcRespWifiInit * - rpc__resp__wifi_init__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_init__free_unpacked - (RpcRespWifiInit *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiDeinit methods */ -void rpc__req__wifi_deinit__init - (RpcReqWifiDeinit *message); -size_t rpc__req__wifi_deinit__get_packed_size - (const RpcReqWifiDeinit *message); -size_t rpc__req__wifi_deinit__pack - (const RpcReqWifiDeinit *message, - uint8_t *out); -size_t rpc__req__wifi_deinit__pack_to_buffer - (const RpcReqWifiDeinit *message, - ProtobufCBuffer *buffer); -RpcReqWifiDeinit * - rpc__req__wifi_deinit__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_deinit__free_unpacked - (RpcReqWifiDeinit *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiDeinit methods */ -void rpc__resp__wifi_deinit__init - (RpcRespWifiDeinit *message); -size_t rpc__resp__wifi_deinit__get_packed_size - (const RpcRespWifiDeinit *message); -size_t rpc__resp__wifi_deinit__pack - (const RpcRespWifiDeinit *message, - uint8_t *out); -size_t rpc__resp__wifi_deinit__pack_to_buffer - (const RpcRespWifiDeinit *message, - ProtobufCBuffer *buffer); -RpcRespWifiDeinit * - rpc__resp__wifi_deinit__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_deinit__free_unpacked - (RpcRespWifiDeinit *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiSetConfig methods */ -void rpc__req__wifi_set_config__init - (RpcReqWifiSetConfig *message); -size_t rpc__req__wifi_set_config__get_packed_size - (const RpcReqWifiSetConfig *message); -size_t rpc__req__wifi_set_config__pack - (const RpcReqWifiSetConfig *message, - uint8_t *out); -size_t rpc__req__wifi_set_config__pack_to_buffer - (const RpcReqWifiSetConfig *message, - ProtobufCBuffer *buffer); -RpcReqWifiSetConfig * - rpc__req__wifi_set_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_set_config__free_unpacked - (RpcReqWifiSetConfig *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiSetConfig methods */ -void rpc__resp__wifi_set_config__init - (RpcRespWifiSetConfig *message); -size_t rpc__resp__wifi_set_config__get_packed_size - (const RpcRespWifiSetConfig *message); -size_t rpc__resp__wifi_set_config__pack - (const RpcRespWifiSetConfig *message, - uint8_t *out); -size_t rpc__resp__wifi_set_config__pack_to_buffer - (const RpcRespWifiSetConfig *message, - ProtobufCBuffer *buffer); -RpcRespWifiSetConfig * - rpc__resp__wifi_set_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_set_config__free_unpacked - (RpcRespWifiSetConfig *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiGetConfig methods */ -void rpc__req__wifi_get_config__init - (RpcReqWifiGetConfig *message); -size_t rpc__req__wifi_get_config__get_packed_size - (const RpcReqWifiGetConfig *message); -size_t rpc__req__wifi_get_config__pack - (const RpcReqWifiGetConfig *message, - uint8_t *out); -size_t rpc__req__wifi_get_config__pack_to_buffer - (const RpcReqWifiGetConfig *message, - ProtobufCBuffer *buffer); -RpcReqWifiGetConfig * - rpc__req__wifi_get_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_get_config__free_unpacked - (RpcReqWifiGetConfig *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiGetConfig methods */ -void rpc__resp__wifi_get_config__init - (RpcRespWifiGetConfig *message); -size_t rpc__resp__wifi_get_config__get_packed_size - (const RpcRespWifiGetConfig *message); -size_t rpc__resp__wifi_get_config__pack - (const RpcRespWifiGetConfig *message, - uint8_t *out); -size_t rpc__resp__wifi_get_config__pack_to_buffer - (const RpcRespWifiGetConfig *message, - ProtobufCBuffer *buffer); -RpcRespWifiGetConfig * - rpc__resp__wifi_get_config__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_get_config__free_unpacked - (RpcRespWifiGetConfig *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiConnect methods */ -void rpc__req__wifi_connect__init - (RpcReqWifiConnect *message); -size_t rpc__req__wifi_connect__get_packed_size - (const RpcReqWifiConnect *message); -size_t rpc__req__wifi_connect__pack - (const RpcReqWifiConnect *message, - uint8_t *out); -size_t rpc__req__wifi_connect__pack_to_buffer - (const RpcReqWifiConnect *message, - ProtobufCBuffer *buffer); -RpcReqWifiConnect * - rpc__req__wifi_connect__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_connect__free_unpacked - (RpcReqWifiConnect *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiConnect methods */ -void rpc__resp__wifi_connect__init - (RpcRespWifiConnect *message); -size_t rpc__resp__wifi_connect__get_packed_size - (const RpcRespWifiConnect *message); -size_t rpc__resp__wifi_connect__pack - (const RpcRespWifiConnect *message, - uint8_t *out); -size_t rpc__resp__wifi_connect__pack_to_buffer - (const RpcRespWifiConnect *message, - ProtobufCBuffer *buffer); -RpcRespWifiConnect * - rpc__resp__wifi_connect__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_connect__free_unpacked - (RpcRespWifiConnect *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiDisconnect methods */ -void rpc__req__wifi_disconnect__init - (RpcReqWifiDisconnect *message); -size_t rpc__req__wifi_disconnect__get_packed_size - (const RpcReqWifiDisconnect *message); -size_t rpc__req__wifi_disconnect__pack - (const RpcReqWifiDisconnect *message, - uint8_t *out); -size_t rpc__req__wifi_disconnect__pack_to_buffer - (const RpcReqWifiDisconnect *message, - ProtobufCBuffer *buffer); -RpcReqWifiDisconnect * - rpc__req__wifi_disconnect__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_disconnect__free_unpacked - (RpcReqWifiDisconnect *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiDisconnect methods */ -void rpc__resp__wifi_disconnect__init - (RpcRespWifiDisconnect *message); -size_t rpc__resp__wifi_disconnect__get_packed_size - (const RpcRespWifiDisconnect *message); -size_t rpc__resp__wifi_disconnect__pack - (const RpcRespWifiDisconnect *message, - uint8_t *out); -size_t rpc__resp__wifi_disconnect__pack_to_buffer - (const RpcRespWifiDisconnect *message, - ProtobufCBuffer *buffer); -RpcRespWifiDisconnect * - rpc__resp__wifi_disconnect__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_disconnect__free_unpacked - (RpcRespWifiDisconnect *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiStart methods */ -void rpc__req__wifi_start__init - (RpcReqWifiStart *message); -size_t rpc__req__wifi_start__get_packed_size - (const RpcReqWifiStart *message); -size_t rpc__req__wifi_start__pack - (const RpcReqWifiStart *message, - uint8_t *out); -size_t rpc__req__wifi_start__pack_to_buffer - (const RpcReqWifiStart *message, - ProtobufCBuffer *buffer); -RpcReqWifiStart * - rpc__req__wifi_start__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_start__free_unpacked - (RpcReqWifiStart *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiStart methods */ -void rpc__resp__wifi_start__init - (RpcRespWifiStart *message); -size_t rpc__resp__wifi_start__get_packed_size - (const RpcRespWifiStart *message); -size_t rpc__resp__wifi_start__pack - (const RpcRespWifiStart *message, - uint8_t *out); -size_t rpc__resp__wifi_start__pack_to_buffer - (const RpcRespWifiStart *message, - ProtobufCBuffer *buffer); -RpcRespWifiStart * - rpc__resp__wifi_start__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_start__free_unpacked - (RpcRespWifiStart *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiStop methods */ -void rpc__req__wifi_stop__init - (RpcReqWifiStop *message); -size_t rpc__req__wifi_stop__get_packed_size - (const RpcReqWifiStop *message); -size_t rpc__req__wifi_stop__pack - (const RpcReqWifiStop *message, - uint8_t *out); -size_t rpc__req__wifi_stop__pack_to_buffer - (const RpcReqWifiStop *message, - ProtobufCBuffer *buffer); -RpcReqWifiStop * - rpc__req__wifi_stop__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_stop__free_unpacked - (RpcReqWifiStop *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiStop methods */ -void rpc__resp__wifi_stop__init - (RpcRespWifiStop *message); -size_t rpc__resp__wifi_stop__get_packed_size - (const RpcRespWifiStop *message); -size_t rpc__resp__wifi_stop__pack - (const RpcRespWifiStop *message, - uint8_t *out); -size_t rpc__resp__wifi_stop__pack_to_buffer - (const RpcRespWifiStop *message, - ProtobufCBuffer *buffer); -RpcRespWifiStop * - rpc__resp__wifi_stop__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_stop__free_unpacked - (RpcRespWifiStop *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiScanStart methods */ -void rpc__req__wifi_scan_start__init - (RpcReqWifiScanStart *message); -size_t rpc__req__wifi_scan_start__get_packed_size - (const RpcReqWifiScanStart *message); -size_t rpc__req__wifi_scan_start__pack - (const RpcReqWifiScanStart *message, - uint8_t *out); -size_t rpc__req__wifi_scan_start__pack_to_buffer - (const RpcReqWifiScanStart *message, - ProtobufCBuffer *buffer); -RpcReqWifiScanStart * - rpc__req__wifi_scan_start__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_scan_start__free_unpacked - (RpcReqWifiScanStart *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiScanStart methods */ -void rpc__resp__wifi_scan_start__init - (RpcRespWifiScanStart *message); -size_t rpc__resp__wifi_scan_start__get_packed_size - (const RpcRespWifiScanStart *message); -size_t rpc__resp__wifi_scan_start__pack - (const RpcRespWifiScanStart *message, - uint8_t *out); -size_t rpc__resp__wifi_scan_start__pack_to_buffer - (const RpcRespWifiScanStart *message, - ProtobufCBuffer *buffer); -RpcRespWifiScanStart * - rpc__resp__wifi_scan_start__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_scan_start__free_unpacked - (RpcRespWifiScanStart *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiScanStop methods */ -void rpc__req__wifi_scan_stop__init - (RpcReqWifiScanStop *message); -size_t rpc__req__wifi_scan_stop__get_packed_size - (const RpcReqWifiScanStop *message); -size_t rpc__req__wifi_scan_stop__pack - (const RpcReqWifiScanStop *message, - uint8_t *out); -size_t rpc__req__wifi_scan_stop__pack_to_buffer - (const RpcReqWifiScanStop *message, - ProtobufCBuffer *buffer); -RpcReqWifiScanStop * - rpc__req__wifi_scan_stop__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_scan_stop__free_unpacked - (RpcReqWifiScanStop *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiScanStop methods */ -void rpc__resp__wifi_scan_stop__init - (RpcRespWifiScanStop *message); -size_t rpc__resp__wifi_scan_stop__get_packed_size - (const RpcRespWifiScanStop *message); -size_t rpc__resp__wifi_scan_stop__pack - (const RpcRespWifiScanStop *message, - uint8_t *out); -size_t rpc__resp__wifi_scan_stop__pack_to_buffer - (const RpcRespWifiScanStop *message, - ProtobufCBuffer *buffer); -RpcRespWifiScanStop * - rpc__resp__wifi_scan_stop__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_scan_stop__free_unpacked - (RpcRespWifiScanStop *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiScanGetApNum methods */ -void rpc__req__wifi_scan_get_ap_num__init - (RpcReqWifiScanGetApNum *message); -size_t rpc__req__wifi_scan_get_ap_num__get_packed_size - (const RpcReqWifiScanGetApNum *message); -size_t rpc__req__wifi_scan_get_ap_num__pack - (const RpcReqWifiScanGetApNum *message, - uint8_t *out); -size_t rpc__req__wifi_scan_get_ap_num__pack_to_buffer - (const RpcReqWifiScanGetApNum *message, - ProtobufCBuffer *buffer); -RpcReqWifiScanGetApNum * - rpc__req__wifi_scan_get_ap_num__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_scan_get_ap_num__free_unpacked - (RpcReqWifiScanGetApNum *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiScanGetApNum methods */ -void rpc__resp__wifi_scan_get_ap_num__init - (RpcRespWifiScanGetApNum *message); -size_t rpc__resp__wifi_scan_get_ap_num__get_packed_size - (const RpcRespWifiScanGetApNum *message); -size_t rpc__resp__wifi_scan_get_ap_num__pack - (const RpcRespWifiScanGetApNum *message, - uint8_t *out); -size_t rpc__resp__wifi_scan_get_ap_num__pack_to_buffer - (const RpcRespWifiScanGetApNum *message, - ProtobufCBuffer *buffer); -RpcRespWifiScanGetApNum * - rpc__resp__wifi_scan_get_ap_num__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_scan_get_ap_num__free_unpacked - (RpcRespWifiScanGetApNum *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiScanGetApRecords methods */ -void rpc__req__wifi_scan_get_ap_records__init - (RpcReqWifiScanGetApRecords *message); -size_t rpc__req__wifi_scan_get_ap_records__get_packed_size - (const RpcReqWifiScanGetApRecords *message); -size_t rpc__req__wifi_scan_get_ap_records__pack - (const RpcReqWifiScanGetApRecords *message, - uint8_t *out); -size_t rpc__req__wifi_scan_get_ap_records__pack_to_buffer - (const RpcReqWifiScanGetApRecords *message, - ProtobufCBuffer *buffer); -RpcReqWifiScanGetApRecords * - rpc__req__wifi_scan_get_ap_records__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_scan_get_ap_records__free_unpacked - (RpcReqWifiScanGetApRecords *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiScanGetApRecords methods */ -void rpc__resp__wifi_scan_get_ap_records__init - (RpcRespWifiScanGetApRecords *message); -size_t rpc__resp__wifi_scan_get_ap_records__get_packed_size - (const RpcRespWifiScanGetApRecords *message); -size_t rpc__resp__wifi_scan_get_ap_records__pack - (const RpcRespWifiScanGetApRecords *message, - uint8_t *out); -size_t rpc__resp__wifi_scan_get_ap_records__pack_to_buffer - (const RpcRespWifiScanGetApRecords *message, - ProtobufCBuffer *buffer); -RpcRespWifiScanGetApRecords * - rpc__resp__wifi_scan_get_ap_records__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_scan_get_ap_records__free_unpacked - (RpcRespWifiScanGetApRecords *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiScanGetApRecord methods */ -void rpc__req__wifi_scan_get_ap_record__init - (RpcReqWifiScanGetApRecord *message); -size_t rpc__req__wifi_scan_get_ap_record__get_packed_size - (const RpcReqWifiScanGetApRecord *message); -size_t rpc__req__wifi_scan_get_ap_record__pack - (const RpcReqWifiScanGetApRecord *message, - uint8_t *out); -size_t rpc__req__wifi_scan_get_ap_record__pack_to_buffer - (const RpcReqWifiScanGetApRecord *message, - ProtobufCBuffer *buffer); -RpcReqWifiScanGetApRecord * - rpc__req__wifi_scan_get_ap_record__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_scan_get_ap_record__free_unpacked - (RpcReqWifiScanGetApRecord *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiScanGetApRecord methods */ -void rpc__resp__wifi_scan_get_ap_record__init - (RpcRespWifiScanGetApRecord *message); -size_t rpc__resp__wifi_scan_get_ap_record__get_packed_size - (const RpcRespWifiScanGetApRecord *message); -size_t rpc__resp__wifi_scan_get_ap_record__pack - (const RpcRespWifiScanGetApRecord *message, - uint8_t *out); -size_t rpc__resp__wifi_scan_get_ap_record__pack_to_buffer - (const RpcRespWifiScanGetApRecord *message, - ProtobufCBuffer *buffer); -RpcRespWifiScanGetApRecord * - rpc__resp__wifi_scan_get_ap_record__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_scan_get_ap_record__free_unpacked - (RpcRespWifiScanGetApRecord *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiClearApList methods */ -void rpc__req__wifi_clear_ap_list__init - (RpcReqWifiClearApList *message); -size_t rpc__req__wifi_clear_ap_list__get_packed_size - (const RpcReqWifiClearApList *message); -size_t rpc__req__wifi_clear_ap_list__pack - (const RpcReqWifiClearApList *message, - uint8_t *out); -size_t rpc__req__wifi_clear_ap_list__pack_to_buffer - (const RpcReqWifiClearApList *message, - ProtobufCBuffer *buffer); -RpcReqWifiClearApList * - rpc__req__wifi_clear_ap_list__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_clear_ap_list__free_unpacked - (RpcReqWifiClearApList *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiClearApList methods */ -void rpc__resp__wifi_clear_ap_list__init - (RpcRespWifiClearApList *message); -size_t rpc__resp__wifi_clear_ap_list__get_packed_size - (const RpcRespWifiClearApList *message); -size_t rpc__resp__wifi_clear_ap_list__pack - (const RpcRespWifiClearApList *message, - uint8_t *out); -size_t rpc__resp__wifi_clear_ap_list__pack_to_buffer - (const RpcRespWifiClearApList *message, - ProtobufCBuffer *buffer); -RpcRespWifiClearApList * - rpc__resp__wifi_clear_ap_list__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_clear_ap_list__free_unpacked - (RpcRespWifiClearApList *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiRestore methods */ -void rpc__req__wifi_restore__init - (RpcReqWifiRestore *message); -size_t rpc__req__wifi_restore__get_packed_size - (const RpcReqWifiRestore *message); -size_t rpc__req__wifi_restore__pack - (const RpcReqWifiRestore *message, - uint8_t *out); -size_t rpc__req__wifi_restore__pack_to_buffer - (const RpcReqWifiRestore *message, - ProtobufCBuffer *buffer); -RpcReqWifiRestore * - rpc__req__wifi_restore__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_restore__free_unpacked - (RpcReqWifiRestore *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiRestore methods */ -void rpc__resp__wifi_restore__init - (RpcRespWifiRestore *message); -size_t rpc__resp__wifi_restore__get_packed_size - (const RpcRespWifiRestore *message); -size_t rpc__resp__wifi_restore__pack - (const RpcRespWifiRestore *message, - uint8_t *out); -size_t rpc__resp__wifi_restore__pack_to_buffer - (const RpcRespWifiRestore *message, - ProtobufCBuffer *buffer); -RpcRespWifiRestore * - rpc__resp__wifi_restore__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_restore__free_unpacked - (RpcRespWifiRestore *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiClearFastConnect methods */ -void rpc__req__wifi_clear_fast_connect__init - (RpcReqWifiClearFastConnect *message); -size_t rpc__req__wifi_clear_fast_connect__get_packed_size - (const RpcReqWifiClearFastConnect *message); -size_t rpc__req__wifi_clear_fast_connect__pack - (const RpcReqWifiClearFastConnect *message, - uint8_t *out); -size_t rpc__req__wifi_clear_fast_connect__pack_to_buffer - (const RpcReqWifiClearFastConnect *message, - ProtobufCBuffer *buffer); -RpcReqWifiClearFastConnect * - rpc__req__wifi_clear_fast_connect__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_clear_fast_connect__free_unpacked - (RpcReqWifiClearFastConnect *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiClearFastConnect methods */ -void rpc__resp__wifi_clear_fast_connect__init - (RpcRespWifiClearFastConnect *message); -size_t rpc__resp__wifi_clear_fast_connect__get_packed_size - (const RpcRespWifiClearFastConnect *message); -size_t rpc__resp__wifi_clear_fast_connect__pack - (const RpcRespWifiClearFastConnect *message, - uint8_t *out); -size_t rpc__resp__wifi_clear_fast_connect__pack_to_buffer - (const RpcRespWifiClearFastConnect *message, - ProtobufCBuffer *buffer); -RpcRespWifiClearFastConnect * - rpc__resp__wifi_clear_fast_connect__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_clear_fast_connect__free_unpacked - (RpcRespWifiClearFastConnect *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiDeauthSta methods */ -void rpc__req__wifi_deauth_sta__init - (RpcReqWifiDeauthSta *message); -size_t rpc__req__wifi_deauth_sta__get_packed_size - (const RpcReqWifiDeauthSta *message); -size_t rpc__req__wifi_deauth_sta__pack - (const RpcReqWifiDeauthSta *message, - uint8_t *out); -size_t rpc__req__wifi_deauth_sta__pack_to_buffer - (const RpcReqWifiDeauthSta *message, - ProtobufCBuffer *buffer); -RpcReqWifiDeauthSta * - rpc__req__wifi_deauth_sta__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_deauth_sta__free_unpacked - (RpcReqWifiDeauthSta *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiDeauthSta methods */ -void rpc__resp__wifi_deauth_sta__init - (RpcRespWifiDeauthSta *message); -size_t rpc__resp__wifi_deauth_sta__get_packed_size - (const RpcRespWifiDeauthSta *message); -size_t rpc__resp__wifi_deauth_sta__pack - (const RpcRespWifiDeauthSta *message, - uint8_t *out); -size_t rpc__resp__wifi_deauth_sta__pack_to_buffer - (const RpcRespWifiDeauthSta *message, - ProtobufCBuffer *buffer); -RpcRespWifiDeauthSta * - rpc__resp__wifi_deauth_sta__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_deauth_sta__free_unpacked - (RpcRespWifiDeauthSta *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiStaGetApInfo methods */ -void rpc__req__wifi_sta_get_ap_info__init - (RpcReqWifiStaGetApInfo *message); -size_t rpc__req__wifi_sta_get_ap_info__get_packed_size - (const RpcReqWifiStaGetApInfo *message); -size_t rpc__req__wifi_sta_get_ap_info__pack - (const RpcReqWifiStaGetApInfo *message, - uint8_t *out); -size_t rpc__req__wifi_sta_get_ap_info__pack_to_buffer - (const RpcReqWifiStaGetApInfo *message, - ProtobufCBuffer *buffer); -RpcReqWifiStaGetApInfo * - rpc__req__wifi_sta_get_ap_info__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_sta_get_ap_info__free_unpacked - (RpcReqWifiStaGetApInfo *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiStaGetApInfo methods */ -void rpc__resp__wifi_sta_get_ap_info__init - (RpcRespWifiStaGetApInfo *message); -size_t rpc__resp__wifi_sta_get_ap_info__get_packed_size - (const RpcRespWifiStaGetApInfo *message); -size_t rpc__resp__wifi_sta_get_ap_info__pack - (const RpcRespWifiStaGetApInfo *message, - uint8_t *out); -size_t rpc__resp__wifi_sta_get_ap_info__pack_to_buffer - (const RpcRespWifiStaGetApInfo *message, - ProtobufCBuffer *buffer); -RpcRespWifiStaGetApInfo * - rpc__resp__wifi_sta_get_ap_info__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_sta_get_ap_info__free_unpacked - (RpcRespWifiStaGetApInfo *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiSetProtocol methods */ -void rpc__req__wifi_set_protocol__init - (RpcReqWifiSetProtocol *message); -size_t rpc__req__wifi_set_protocol__get_packed_size - (const RpcReqWifiSetProtocol *message); -size_t rpc__req__wifi_set_protocol__pack - (const RpcReqWifiSetProtocol *message, - uint8_t *out); -size_t rpc__req__wifi_set_protocol__pack_to_buffer - (const RpcReqWifiSetProtocol *message, - ProtobufCBuffer *buffer); -RpcReqWifiSetProtocol * - rpc__req__wifi_set_protocol__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_set_protocol__free_unpacked - (RpcReqWifiSetProtocol *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiSetProtocol methods */ -void rpc__resp__wifi_set_protocol__init - (RpcRespWifiSetProtocol *message); -size_t rpc__resp__wifi_set_protocol__get_packed_size - (const RpcRespWifiSetProtocol *message); -size_t rpc__resp__wifi_set_protocol__pack - (const RpcRespWifiSetProtocol *message, - uint8_t *out); -size_t rpc__resp__wifi_set_protocol__pack_to_buffer - (const RpcRespWifiSetProtocol *message, - ProtobufCBuffer *buffer); -RpcRespWifiSetProtocol * - rpc__resp__wifi_set_protocol__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_set_protocol__free_unpacked - (RpcRespWifiSetProtocol *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiGetProtocol methods */ -void rpc__req__wifi_get_protocol__init - (RpcReqWifiGetProtocol *message); -size_t rpc__req__wifi_get_protocol__get_packed_size - (const RpcReqWifiGetProtocol *message); -size_t rpc__req__wifi_get_protocol__pack - (const RpcReqWifiGetProtocol *message, - uint8_t *out); -size_t rpc__req__wifi_get_protocol__pack_to_buffer - (const RpcReqWifiGetProtocol *message, - ProtobufCBuffer *buffer); -RpcReqWifiGetProtocol * - rpc__req__wifi_get_protocol__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_get_protocol__free_unpacked - (RpcReqWifiGetProtocol *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiGetProtocol methods */ -void rpc__resp__wifi_get_protocol__init - (RpcRespWifiGetProtocol *message); -size_t rpc__resp__wifi_get_protocol__get_packed_size - (const RpcRespWifiGetProtocol *message); -size_t rpc__resp__wifi_get_protocol__pack - (const RpcRespWifiGetProtocol *message, - uint8_t *out); -size_t rpc__resp__wifi_get_protocol__pack_to_buffer - (const RpcRespWifiGetProtocol *message, - ProtobufCBuffer *buffer); -RpcRespWifiGetProtocol * - rpc__resp__wifi_get_protocol__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_get_protocol__free_unpacked - (RpcRespWifiGetProtocol *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiSetBandwidth methods */ -void rpc__req__wifi_set_bandwidth__init - (RpcReqWifiSetBandwidth *message); -size_t rpc__req__wifi_set_bandwidth__get_packed_size - (const RpcReqWifiSetBandwidth *message); -size_t rpc__req__wifi_set_bandwidth__pack - (const RpcReqWifiSetBandwidth *message, - uint8_t *out); -size_t rpc__req__wifi_set_bandwidth__pack_to_buffer - (const RpcReqWifiSetBandwidth *message, - ProtobufCBuffer *buffer); -RpcReqWifiSetBandwidth * - rpc__req__wifi_set_bandwidth__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_set_bandwidth__free_unpacked - (RpcReqWifiSetBandwidth *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiSetBandwidth methods */ -void rpc__resp__wifi_set_bandwidth__init - (RpcRespWifiSetBandwidth *message); -size_t rpc__resp__wifi_set_bandwidth__get_packed_size - (const RpcRespWifiSetBandwidth *message); -size_t rpc__resp__wifi_set_bandwidth__pack - (const RpcRespWifiSetBandwidth *message, - uint8_t *out); -size_t rpc__resp__wifi_set_bandwidth__pack_to_buffer - (const RpcRespWifiSetBandwidth *message, - ProtobufCBuffer *buffer); -RpcRespWifiSetBandwidth * - rpc__resp__wifi_set_bandwidth__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_set_bandwidth__free_unpacked - (RpcRespWifiSetBandwidth *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiGetBandwidth methods */ -void rpc__req__wifi_get_bandwidth__init - (RpcReqWifiGetBandwidth *message); -size_t rpc__req__wifi_get_bandwidth__get_packed_size - (const RpcReqWifiGetBandwidth *message); -size_t rpc__req__wifi_get_bandwidth__pack - (const RpcReqWifiGetBandwidth *message, - uint8_t *out); -size_t rpc__req__wifi_get_bandwidth__pack_to_buffer - (const RpcReqWifiGetBandwidth *message, - ProtobufCBuffer *buffer); -RpcReqWifiGetBandwidth * - rpc__req__wifi_get_bandwidth__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_get_bandwidth__free_unpacked - (RpcReqWifiGetBandwidth *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiGetBandwidth methods */ -void rpc__resp__wifi_get_bandwidth__init - (RpcRespWifiGetBandwidth *message); -size_t rpc__resp__wifi_get_bandwidth__get_packed_size - (const RpcRespWifiGetBandwidth *message); -size_t rpc__resp__wifi_get_bandwidth__pack - (const RpcRespWifiGetBandwidth *message, - uint8_t *out); -size_t rpc__resp__wifi_get_bandwidth__pack_to_buffer - (const RpcRespWifiGetBandwidth *message, - ProtobufCBuffer *buffer); -RpcRespWifiGetBandwidth * - rpc__resp__wifi_get_bandwidth__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_get_bandwidth__free_unpacked - (RpcRespWifiGetBandwidth *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiSetChannel methods */ -void rpc__req__wifi_set_channel__init - (RpcReqWifiSetChannel *message); -size_t rpc__req__wifi_set_channel__get_packed_size - (const RpcReqWifiSetChannel *message); -size_t rpc__req__wifi_set_channel__pack - (const RpcReqWifiSetChannel *message, - uint8_t *out); -size_t rpc__req__wifi_set_channel__pack_to_buffer - (const RpcReqWifiSetChannel *message, - ProtobufCBuffer *buffer); -RpcReqWifiSetChannel * - rpc__req__wifi_set_channel__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_set_channel__free_unpacked - (RpcReqWifiSetChannel *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiSetChannel methods */ -void rpc__resp__wifi_set_channel__init - (RpcRespWifiSetChannel *message); -size_t rpc__resp__wifi_set_channel__get_packed_size - (const RpcRespWifiSetChannel *message); -size_t rpc__resp__wifi_set_channel__pack - (const RpcRespWifiSetChannel *message, - uint8_t *out); -size_t rpc__resp__wifi_set_channel__pack_to_buffer - (const RpcRespWifiSetChannel *message, - ProtobufCBuffer *buffer); -RpcRespWifiSetChannel * - rpc__resp__wifi_set_channel__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_set_channel__free_unpacked - (RpcRespWifiSetChannel *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiGetChannel methods */ -void rpc__req__wifi_get_channel__init - (RpcReqWifiGetChannel *message); -size_t rpc__req__wifi_get_channel__get_packed_size - (const RpcReqWifiGetChannel *message); -size_t rpc__req__wifi_get_channel__pack - (const RpcReqWifiGetChannel *message, - uint8_t *out); -size_t rpc__req__wifi_get_channel__pack_to_buffer - (const RpcReqWifiGetChannel *message, - ProtobufCBuffer *buffer); -RpcReqWifiGetChannel * - rpc__req__wifi_get_channel__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_get_channel__free_unpacked - (RpcReqWifiGetChannel *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiGetChannel methods */ -void rpc__resp__wifi_get_channel__init - (RpcRespWifiGetChannel *message); -size_t rpc__resp__wifi_get_channel__get_packed_size - (const RpcRespWifiGetChannel *message); -size_t rpc__resp__wifi_get_channel__pack - (const RpcRespWifiGetChannel *message, - uint8_t *out); -size_t rpc__resp__wifi_get_channel__pack_to_buffer - (const RpcRespWifiGetChannel *message, - ProtobufCBuffer *buffer); -RpcRespWifiGetChannel * - rpc__resp__wifi_get_channel__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_get_channel__free_unpacked - (RpcRespWifiGetChannel *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiSetStorage methods */ -void rpc__req__wifi_set_storage__init - (RpcReqWifiSetStorage *message); -size_t rpc__req__wifi_set_storage__get_packed_size - (const RpcReqWifiSetStorage *message); -size_t rpc__req__wifi_set_storage__pack - (const RpcReqWifiSetStorage *message, - uint8_t *out); -size_t rpc__req__wifi_set_storage__pack_to_buffer - (const RpcReqWifiSetStorage *message, - ProtobufCBuffer *buffer); -RpcReqWifiSetStorage * - rpc__req__wifi_set_storage__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_set_storage__free_unpacked - (RpcReqWifiSetStorage *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiSetStorage methods */ -void rpc__resp__wifi_set_storage__init - (RpcRespWifiSetStorage *message); -size_t rpc__resp__wifi_set_storage__get_packed_size - (const RpcRespWifiSetStorage *message); -size_t rpc__resp__wifi_set_storage__pack - (const RpcRespWifiSetStorage *message, - uint8_t *out); -size_t rpc__resp__wifi_set_storage__pack_to_buffer - (const RpcRespWifiSetStorage *message, - ProtobufCBuffer *buffer); -RpcRespWifiSetStorage * - rpc__resp__wifi_set_storage__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_set_storage__free_unpacked - (RpcRespWifiSetStorage *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiSetCountryCode methods */ -void rpc__req__wifi_set_country_code__init - (RpcReqWifiSetCountryCode *message); -size_t rpc__req__wifi_set_country_code__get_packed_size - (const RpcReqWifiSetCountryCode *message); -size_t rpc__req__wifi_set_country_code__pack - (const RpcReqWifiSetCountryCode *message, - uint8_t *out); -size_t rpc__req__wifi_set_country_code__pack_to_buffer - (const RpcReqWifiSetCountryCode *message, - ProtobufCBuffer *buffer); -RpcReqWifiSetCountryCode * - rpc__req__wifi_set_country_code__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_set_country_code__free_unpacked - (RpcReqWifiSetCountryCode *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiSetCountryCode methods */ -void rpc__resp__wifi_set_country_code__init - (RpcRespWifiSetCountryCode *message); -size_t rpc__resp__wifi_set_country_code__get_packed_size - (const RpcRespWifiSetCountryCode *message); -size_t rpc__resp__wifi_set_country_code__pack - (const RpcRespWifiSetCountryCode *message, - uint8_t *out); -size_t rpc__resp__wifi_set_country_code__pack_to_buffer - (const RpcRespWifiSetCountryCode *message, - ProtobufCBuffer *buffer); -RpcRespWifiSetCountryCode * - rpc__resp__wifi_set_country_code__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_set_country_code__free_unpacked - (RpcRespWifiSetCountryCode *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiGetCountryCode methods */ -void rpc__req__wifi_get_country_code__init - (RpcReqWifiGetCountryCode *message); -size_t rpc__req__wifi_get_country_code__get_packed_size - (const RpcReqWifiGetCountryCode *message); -size_t rpc__req__wifi_get_country_code__pack - (const RpcReqWifiGetCountryCode *message, - uint8_t *out); -size_t rpc__req__wifi_get_country_code__pack_to_buffer - (const RpcReqWifiGetCountryCode *message, - ProtobufCBuffer *buffer); -RpcReqWifiGetCountryCode * - rpc__req__wifi_get_country_code__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_get_country_code__free_unpacked - (RpcReqWifiGetCountryCode *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiGetCountryCode methods */ -void rpc__resp__wifi_get_country_code__init - (RpcRespWifiGetCountryCode *message); -size_t rpc__resp__wifi_get_country_code__get_packed_size - (const RpcRespWifiGetCountryCode *message); -size_t rpc__resp__wifi_get_country_code__pack - (const RpcRespWifiGetCountryCode *message, - uint8_t *out); -size_t rpc__resp__wifi_get_country_code__pack_to_buffer - (const RpcRespWifiGetCountryCode *message, - ProtobufCBuffer *buffer); -RpcRespWifiGetCountryCode * - rpc__resp__wifi_get_country_code__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_get_country_code__free_unpacked - (RpcRespWifiGetCountryCode *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiSetCountry methods */ -void rpc__req__wifi_set_country__init - (RpcReqWifiSetCountry *message); -size_t rpc__req__wifi_set_country__get_packed_size - (const RpcReqWifiSetCountry *message); -size_t rpc__req__wifi_set_country__pack - (const RpcReqWifiSetCountry *message, - uint8_t *out); -size_t rpc__req__wifi_set_country__pack_to_buffer - (const RpcReqWifiSetCountry *message, - ProtobufCBuffer *buffer); -RpcReqWifiSetCountry * - rpc__req__wifi_set_country__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_set_country__free_unpacked - (RpcReqWifiSetCountry *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiSetCountry methods */ -void rpc__resp__wifi_set_country__init - (RpcRespWifiSetCountry *message); -size_t rpc__resp__wifi_set_country__get_packed_size - (const RpcRespWifiSetCountry *message); -size_t rpc__resp__wifi_set_country__pack - (const RpcRespWifiSetCountry *message, - uint8_t *out); -size_t rpc__resp__wifi_set_country__pack_to_buffer - (const RpcRespWifiSetCountry *message, - ProtobufCBuffer *buffer); -RpcRespWifiSetCountry * - rpc__resp__wifi_set_country__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_set_country__free_unpacked - (RpcRespWifiSetCountry *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiGetCountry methods */ -void rpc__req__wifi_get_country__init - (RpcReqWifiGetCountry *message); -size_t rpc__req__wifi_get_country__get_packed_size - (const RpcReqWifiGetCountry *message); -size_t rpc__req__wifi_get_country__pack - (const RpcReqWifiGetCountry *message, - uint8_t *out); -size_t rpc__req__wifi_get_country__pack_to_buffer - (const RpcReqWifiGetCountry *message, - ProtobufCBuffer *buffer); -RpcReqWifiGetCountry * - rpc__req__wifi_get_country__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_get_country__free_unpacked - (RpcReqWifiGetCountry *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiGetCountry methods */ -void rpc__resp__wifi_get_country__init - (RpcRespWifiGetCountry *message); -size_t rpc__resp__wifi_get_country__get_packed_size - (const RpcRespWifiGetCountry *message); -size_t rpc__resp__wifi_get_country__pack - (const RpcRespWifiGetCountry *message, - uint8_t *out); -size_t rpc__resp__wifi_get_country__pack_to_buffer - (const RpcRespWifiGetCountry *message, - ProtobufCBuffer *buffer); -RpcRespWifiGetCountry * - rpc__resp__wifi_get_country__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_get_country__free_unpacked - (RpcRespWifiGetCountry *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiApGetStaList methods */ -void rpc__req__wifi_ap_get_sta_list__init - (RpcReqWifiApGetStaList *message); -size_t rpc__req__wifi_ap_get_sta_list__get_packed_size - (const RpcReqWifiApGetStaList *message); -size_t rpc__req__wifi_ap_get_sta_list__pack - (const RpcReqWifiApGetStaList *message, - uint8_t *out); -size_t rpc__req__wifi_ap_get_sta_list__pack_to_buffer - (const RpcReqWifiApGetStaList *message, - ProtobufCBuffer *buffer); -RpcReqWifiApGetStaList * - rpc__req__wifi_ap_get_sta_list__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_ap_get_sta_list__free_unpacked - (RpcReqWifiApGetStaList *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiApGetStaList methods */ -void rpc__resp__wifi_ap_get_sta_list__init - (RpcRespWifiApGetStaList *message); -size_t rpc__resp__wifi_ap_get_sta_list__get_packed_size - (const RpcRespWifiApGetStaList *message); -size_t rpc__resp__wifi_ap_get_sta_list__pack - (const RpcRespWifiApGetStaList *message, - uint8_t *out); -size_t rpc__resp__wifi_ap_get_sta_list__pack_to_buffer - (const RpcRespWifiApGetStaList *message, - ProtobufCBuffer *buffer); -RpcRespWifiApGetStaList * - rpc__resp__wifi_ap_get_sta_list__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_ap_get_sta_list__free_unpacked - (RpcRespWifiApGetStaList *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiApGetStaAid methods */ -void rpc__req__wifi_ap_get_sta_aid__init - (RpcReqWifiApGetStaAid *message); -size_t rpc__req__wifi_ap_get_sta_aid__get_packed_size - (const RpcReqWifiApGetStaAid *message); -size_t rpc__req__wifi_ap_get_sta_aid__pack - (const RpcReqWifiApGetStaAid *message, - uint8_t *out); -size_t rpc__req__wifi_ap_get_sta_aid__pack_to_buffer - (const RpcReqWifiApGetStaAid *message, - ProtobufCBuffer *buffer); -RpcReqWifiApGetStaAid * - rpc__req__wifi_ap_get_sta_aid__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_ap_get_sta_aid__free_unpacked - (RpcReqWifiApGetStaAid *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiStaGetNegotiatedPhymode methods */ -void rpc__req__wifi_sta_get_negotiated_phymode__init - (RpcReqWifiStaGetNegotiatedPhymode *message); -size_t rpc__req__wifi_sta_get_negotiated_phymode__get_packed_size - (const RpcReqWifiStaGetNegotiatedPhymode *message); -size_t rpc__req__wifi_sta_get_negotiated_phymode__pack - (const RpcReqWifiStaGetNegotiatedPhymode *message, - uint8_t *out); -size_t rpc__req__wifi_sta_get_negotiated_phymode__pack_to_buffer - (const RpcReqWifiStaGetNegotiatedPhymode *message, - ProtobufCBuffer *buffer); -RpcReqWifiStaGetNegotiatedPhymode * - rpc__req__wifi_sta_get_negotiated_phymode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_sta_get_negotiated_phymode__free_unpacked - (RpcReqWifiStaGetNegotiatedPhymode *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiStaGetNegotiatedPhymode methods */ -void rpc__resp__wifi_sta_get_negotiated_phymode__init - (RpcRespWifiStaGetNegotiatedPhymode *message); -size_t rpc__resp__wifi_sta_get_negotiated_phymode__get_packed_size - (const RpcRespWifiStaGetNegotiatedPhymode *message); -size_t rpc__resp__wifi_sta_get_negotiated_phymode__pack - (const RpcRespWifiStaGetNegotiatedPhymode *message, - uint8_t *out); -size_t rpc__resp__wifi_sta_get_negotiated_phymode__pack_to_buffer - (const RpcRespWifiStaGetNegotiatedPhymode *message, - ProtobufCBuffer *buffer); -RpcRespWifiStaGetNegotiatedPhymode * - rpc__resp__wifi_sta_get_negotiated_phymode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_sta_get_negotiated_phymode__free_unpacked - (RpcRespWifiStaGetNegotiatedPhymode *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiApGetStaAid methods */ -void rpc__resp__wifi_ap_get_sta_aid__init - (RpcRespWifiApGetStaAid *message); -size_t rpc__resp__wifi_ap_get_sta_aid__get_packed_size - (const RpcRespWifiApGetStaAid *message); -size_t rpc__resp__wifi_ap_get_sta_aid__pack - (const RpcRespWifiApGetStaAid *message, - uint8_t *out); -size_t rpc__resp__wifi_ap_get_sta_aid__pack_to_buffer - (const RpcRespWifiApGetStaAid *message, - ProtobufCBuffer *buffer); -RpcRespWifiApGetStaAid * - rpc__resp__wifi_ap_get_sta_aid__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_ap_get_sta_aid__free_unpacked - (RpcRespWifiApGetStaAid *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiStaGetRssi methods */ -void rpc__req__wifi_sta_get_rssi__init - (RpcReqWifiStaGetRssi *message); -size_t rpc__req__wifi_sta_get_rssi__get_packed_size - (const RpcReqWifiStaGetRssi *message); -size_t rpc__req__wifi_sta_get_rssi__pack - (const RpcReqWifiStaGetRssi *message, - uint8_t *out); -size_t rpc__req__wifi_sta_get_rssi__pack_to_buffer - (const RpcReqWifiStaGetRssi *message, - ProtobufCBuffer *buffer); -RpcReqWifiStaGetRssi * - rpc__req__wifi_sta_get_rssi__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_sta_get_rssi__free_unpacked - (RpcReqWifiStaGetRssi *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiStaGetRssi methods */ -void rpc__resp__wifi_sta_get_rssi__init - (RpcRespWifiStaGetRssi *message); -size_t rpc__resp__wifi_sta_get_rssi__get_packed_size - (const RpcRespWifiStaGetRssi *message); -size_t rpc__resp__wifi_sta_get_rssi__pack - (const RpcRespWifiStaGetRssi *message, - uint8_t *out); -size_t rpc__resp__wifi_sta_get_rssi__pack_to_buffer - (const RpcRespWifiStaGetRssi *message, - ProtobufCBuffer *buffer); -RpcRespWifiStaGetRssi * - rpc__resp__wifi_sta_get_rssi__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_sta_get_rssi__free_unpacked - (RpcRespWifiStaGetRssi *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiStaGetAid methods */ -void rpc__req__wifi_sta_get_aid__init - (RpcReqWifiStaGetAid *message); -size_t rpc__req__wifi_sta_get_aid__get_packed_size - (const RpcReqWifiStaGetAid *message); -size_t rpc__req__wifi_sta_get_aid__pack - (const RpcReqWifiStaGetAid *message, - uint8_t *out); -size_t rpc__req__wifi_sta_get_aid__pack_to_buffer - (const RpcReqWifiStaGetAid *message, - ProtobufCBuffer *buffer); -RpcReqWifiStaGetAid * - rpc__req__wifi_sta_get_aid__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_sta_get_aid__free_unpacked - (RpcReqWifiStaGetAid *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiStaGetAid methods */ -void rpc__resp__wifi_sta_get_aid__init - (RpcRespWifiStaGetAid *message); -size_t rpc__resp__wifi_sta_get_aid__get_packed_size - (const RpcRespWifiStaGetAid *message); -size_t rpc__resp__wifi_sta_get_aid__pack - (const RpcRespWifiStaGetAid *message, - uint8_t *out); -size_t rpc__resp__wifi_sta_get_aid__pack_to_buffer - (const RpcRespWifiStaGetAid *message, - ProtobufCBuffer *buffer); -RpcRespWifiStaGetAid * - rpc__resp__wifi_sta_get_aid__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_sta_get_aid__free_unpacked - (RpcRespWifiStaGetAid *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiSetProtocols methods */ -void rpc__req__wifi_set_protocols__init - (RpcReqWifiSetProtocols *message); -size_t rpc__req__wifi_set_protocols__get_packed_size - (const RpcReqWifiSetProtocols *message); -size_t rpc__req__wifi_set_protocols__pack - (const RpcReqWifiSetProtocols *message, - uint8_t *out); -size_t rpc__req__wifi_set_protocols__pack_to_buffer - (const RpcReqWifiSetProtocols *message, - ProtobufCBuffer *buffer); -RpcReqWifiSetProtocols * - rpc__req__wifi_set_protocols__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_set_protocols__free_unpacked - (RpcReqWifiSetProtocols *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiSetProtocols methods */ -void rpc__resp__wifi_set_protocols__init - (RpcRespWifiSetProtocols *message); -size_t rpc__resp__wifi_set_protocols__get_packed_size - (const RpcRespWifiSetProtocols *message); -size_t rpc__resp__wifi_set_protocols__pack - (const RpcRespWifiSetProtocols *message, - uint8_t *out); -size_t rpc__resp__wifi_set_protocols__pack_to_buffer - (const RpcRespWifiSetProtocols *message, - ProtobufCBuffer *buffer); -RpcRespWifiSetProtocols * - rpc__resp__wifi_set_protocols__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_set_protocols__free_unpacked - (RpcRespWifiSetProtocols *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiGetProtocols methods */ -void rpc__req__wifi_get_protocols__init - (RpcReqWifiGetProtocols *message); -size_t rpc__req__wifi_get_protocols__get_packed_size - (const RpcReqWifiGetProtocols *message); -size_t rpc__req__wifi_get_protocols__pack - (const RpcReqWifiGetProtocols *message, - uint8_t *out); -size_t rpc__req__wifi_get_protocols__pack_to_buffer - (const RpcReqWifiGetProtocols *message, - ProtobufCBuffer *buffer); -RpcReqWifiGetProtocols * - rpc__req__wifi_get_protocols__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_get_protocols__free_unpacked - (RpcReqWifiGetProtocols *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiGetProtocols methods */ -void rpc__resp__wifi_get_protocols__init - (RpcRespWifiGetProtocols *message); -size_t rpc__resp__wifi_get_protocols__get_packed_size - (const RpcRespWifiGetProtocols *message); -size_t rpc__resp__wifi_get_protocols__pack - (const RpcRespWifiGetProtocols *message, - uint8_t *out); -size_t rpc__resp__wifi_get_protocols__pack_to_buffer - (const RpcRespWifiGetProtocols *message, - ProtobufCBuffer *buffer); -RpcRespWifiGetProtocols * - rpc__resp__wifi_get_protocols__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_get_protocols__free_unpacked - (RpcRespWifiGetProtocols *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiSetBandwidths methods */ -void rpc__req__wifi_set_bandwidths__init - (RpcReqWifiSetBandwidths *message); -size_t rpc__req__wifi_set_bandwidths__get_packed_size - (const RpcReqWifiSetBandwidths *message); -size_t rpc__req__wifi_set_bandwidths__pack - (const RpcReqWifiSetBandwidths *message, - uint8_t *out); -size_t rpc__req__wifi_set_bandwidths__pack_to_buffer - (const RpcReqWifiSetBandwidths *message, - ProtobufCBuffer *buffer); -RpcReqWifiSetBandwidths * - rpc__req__wifi_set_bandwidths__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_set_bandwidths__free_unpacked - (RpcReqWifiSetBandwidths *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiSetBandwidths methods */ -void rpc__resp__wifi_set_bandwidths__init - (RpcRespWifiSetBandwidths *message); -size_t rpc__resp__wifi_set_bandwidths__get_packed_size - (const RpcRespWifiSetBandwidths *message); -size_t rpc__resp__wifi_set_bandwidths__pack - (const RpcRespWifiSetBandwidths *message, - uint8_t *out); -size_t rpc__resp__wifi_set_bandwidths__pack_to_buffer - (const RpcRespWifiSetBandwidths *message, - ProtobufCBuffer *buffer); -RpcRespWifiSetBandwidths * - rpc__resp__wifi_set_bandwidths__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_set_bandwidths__free_unpacked - (RpcRespWifiSetBandwidths *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiGetBandwidths methods */ -void rpc__req__wifi_get_bandwidths__init - (RpcReqWifiGetBandwidths *message); -size_t rpc__req__wifi_get_bandwidths__get_packed_size - (const RpcReqWifiGetBandwidths *message); -size_t rpc__req__wifi_get_bandwidths__pack - (const RpcReqWifiGetBandwidths *message, - uint8_t *out); -size_t rpc__req__wifi_get_bandwidths__pack_to_buffer - (const RpcReqWifiGetBandwidths *message, - ProtobufCBuffer *buffer); -RpcReqWifiGetBandwidths * - rpc__req__wifi_get_bandwidths__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_get_bandwidths__free_unpacked - (RpcReqWifiGetBandwidths *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiGetBandwidths methods */ -void rpc__resp__wifi_get_bandwidths__init - (RpcRespWifiGetBandwidths *message); -size_t rpc__resp__wifi_get_bandwidths__get_packed_size - (const RpcRespWifiGetBandwidths *message); -size_t rpc__resp__wifi_get_bandwidths__pack - (const RpcRespWifiGetBandwidths *message, - uint8_t *out); -size_t rpc__resp__wifi_get_bandwidths__pack_to_buffer - (const RpcRespWifiGetBandwidths *message, - ProtobufCBuffer *buffer); -RpcRespWifiGetBandwidths * - rpc__resp__wifi_get_bandwidths__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_get_bandwidths__free_unpacked - (RpcRespWifiGetBandwidths *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiSetBand methods */ -void rpc__req__wifi_set_band__init - (RpcReqWifiSetBand *message); -size_t rpc__req__wifi_set_band__get_packed_size - (const RpcReqWifiSetBand *message); -size_t rpc__req__wifi_set_band__pack - (const RpcReqWifiSetBand *message, - uint8_t *out); -size_t rpc__req__wifi_set_band__pack_to_buffer - (const RpcReqWifiSetBand *message, - ProtobufCBuffer *buffer); -RpcReqWifiSetBand * - rpc__req__wifi_set_band__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_set_band__free_unpacked - (RpcReqWifiSetBand *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiSetBand methods */ -void rpc__resp__wifi_set_band__init - (RpcRespWifiSetBand *message); -size_t rpc__resp__wifi_set_band__get_packed_size - (const RpcRespWifiSetBand *message); -size_t rpc__resp__wifi_set_band__pack - (const RpcRespWifiSetBand *message, - uint8_t *out); -size_t rpc__resp__wifi_set_band__pack_to_buffer - (const RpcRespWifiSetBand *message, - ProtobufCBuffer *buffer); -RpcRespWifiSetBand * - rpc__resp__wifi_set_band__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_set_band__free_unpacked - (RpcRespWifiSetBand *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiGetBand methods */ -void rpc__req__wifi_get_band__init - (RpcReqWifiGetBand *message); -size_t rpc__req__wifi_get_band__get_packed_size - (const RpcReqWifiGetBand *message); -size_t rpc__req__wifi_get_band__pack - (const RpcReqWifiGetBand *message, - uint8_t *out); -size_t rpc__req__wifi_get_band__pack_to_buffer - (const RpcReqWifiGetBand *message, - ProtobufCBuffer *buffer); -RpcReqWifiGetBand * - rpc__req__wifi_get_band__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_get_band__free_unpacked - (RpcReqWifiGetBand *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiGetBand methods */ -void rpc__resp__wifi_get_band__init - (RpcRespWifiGetBand *message); -size_t rpc__resp__wifi_get_band__get_packed_size - (const RpcRespWifiGetBand *message); -size_t rpc__resp__wifi_get_band__pack - (const RpcRespWifiGetBand *message, - uint8_t *out); -size_t rpc__resp__wifi_get_band__pack_to_buffer - (const RpcRespWifiGetBand *message, - ProtobufCBuffer *buffer); -RpcRespWifiGetBand * - rpc__resp__wifi_get_band__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_get_band__free_unpacked - (RpcRespWifiGetBand *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiSetBandMode methods */ -void rpc__req__wifi_set_band_mode__init - (RpcReqWifiSetBandMode *message); -size_t rpc__req__wifi_set_band_mode__get_packed_size - (const RpcReqWifiSetBandMode *message); -size_t rpc__req__wifi_set_band_mode__pack - (const RpcReqWifiSetBandMode *message, - uint8_t *out); -size_t rpc__req__wifi_set_band_mode__pack_to_buffer - (const RpcReqWifiSetBandMode *message, - ProtobufCBuffer *buffer); -RpcReqWifiSetBandMode * - rpc__req__wifi_set_band_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_set_band_mode__free_unpacked - (RpcReqWifiSetBandMode *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiSetBandMode methods */ -void rpc__resp__wifi_set_band_mode__init - (RpcRespWifiSetBandMode *message); -size_t rpc__resp__wifi_set_band_mode__get_packed_size - (const RpcRespWifiSetBandMode *message); -size_t rpc__resp__wifi_set_band_mode__pack - (const RpcRespWifiSetBandMode *message, - uint8_t *out); -size_t rpc__resp__wifi_set_band_mode__pack_to_buffer - (const RpcRespWifiSetBandMode *message, - ProtobufCBuffer *buffer); -RpcRespWifiSetBandMode * - rpc__resp__wifi_set_band_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_set_band_mode__free_unpacked - (RpcRespWifiSetBandMode *message, - ProtobufCAllocator *allocator); -/* RpcReqWifiGetBandMode methods */ -void rpc__req__wifi_get_band_mode__init - (RpcReqWifiGetBandMode *message); -size_t rpc__req__wifi_get_band_mode__get_packed_size - (const RpcReqWifiGetBandMode *message); -size_t rpc__req__wifi_get_band_mode__pack - (const RpcReqWifiGetBandMode *message, - uint8_t *out); -size_t rpc__req__wifi_get_band_mode__pack_to_buffer - (const RpcReqWifiGetBandMode *message, - ProtobufCBuffer *buffer); -RpcReqWifiGetBandMode * - rpc__req__wifi_get_band_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__wifi_get_band_mode__free_unpacked - (RpcReqWifiGetBandMode *message, - ProtobufCAllocator *allocator); -/* RpcRespWifiGetBandMode methods */ -void rpc__resp__wifi_get_band_mode__init - (RpcRespWifiGetBandMode *message); -size_t rpc__resp__wifi_get_band_mode__get_packed_size - (const RpcRespWifiGetBandMode *message); -size_t rpc__resp__wifi_get_band_mode__pack - (const RpcRespWifiGetBandMode *message, - uint8_t *out); -size_t rpc__resp__wifi_get_band_mode__pack_to_buffer - (const RpcRespWifiGetBandMode *message, - ProtobufCBuffer *buffer); -RpcRespWifiGetBandMode * - rpc__resp__wifi_get_band_mode__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__wifi_get_band_mode__free_unpacked - (RpcRespWifiGetBandMode *message, - ProtobufCAllocator *allocator); -/* RpcReqGetCoprocessorFwVersion methods */ -void rpc__req__get_coprocessor_fw_version__init - (RpcReqGetCoprocessorFwVersion *message); -size_t rpc__req__get_coprocessor_fw_version__get_packed_size - (const RpcReqGetCoprocessorFwVersion *message); -size_t rpc__req__get_coprocessor_fw_version__pack - (const RpcReqGetCoprocessorFwVersion *message, - uint8_t *out); -size_t rpc__req__get_coprocessor_fw_version__pack_to_buffer - (const RpcReqGetCoprocessorFwVersion *message, - ProtobufCBuffer *buffer); -RpcReqGetCoprocessorFwVersion * - rpc__req__get_coprocessor_fw_version__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__req__get_coprocessor_fw_version__free_unpacked - (RpcReqGetCoprocessorFwVersion *message, - ProtobufCAllocator *allocator); -/* RpcRespGetCoprocessorFwVersion methods */ -void rpc__resp__get_coprocessor_fw_version__init - (RpcRespGetCoprocessorFwVersion *message); -size_t rpc__resp__get_coprocessor_fw_version__get_packed_size - (const RpcRespGetCoprocessorFwVersion *message); -size_t rpc__resp__get_coprocessor_fw_version__pack - (const RpcRespGetCoprocessorFwVersion *message, - uint8_t *out); -size_t rpc__resp__get_coprocessor_fw_version__pack_to_buffer - (const RpcRespGetCoprocessorFwVersion *message, - ProtobufCBuffer *buffer); -RpcRespGetCoprocessorFwVersion * - rpc__resp__get_coprocessor_fw_version__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__resp__get_coprocessor_fw_version__free_unpacked - (RpcRespGetCoprocessorFwVersion *message, - ProtobufCAllocator *allocator); -/* RpcEventWifiEventNoArgs methods */ -void rpc__event__wifi_event_no_args__init - (RpcEventWifiEventNoArgs *message); -size_t rpc__event__wifi_event_no_args__get_packed_size - (const RpcEventWifiEventNoArgs *message); -size_t rpc__event__wifi_event_no_args__pack - (const RpcEventWifiEventNoArgs *message, - uint8_t *out); -size_t rpc__event__wifi_event_no_args__pack_to_buffer - (const RpcEventWifiEventNoArgs *message, - ProtobufCBuffer *buffer); -RpcEventWifiEventNoArgs * - rpc__event__wifi_event_no_args__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__event__wifi_event_no_args__free_unpacked - (RpcEventWifiEventNoArgs *message, - ProtobufCAllocator *allocator); -/* RpcEventESPInit methods */ -void rpc__event__espinit__init - (RpcEventESPInit *message); -size_t rpc__event__espinit__get_packed_size - (const RpcEventESPInit *message); -size_t rpc__event__espinit__pack - (const RpcEventESPInit *message, - uint8_t *out); -size_t rpc__event__espinit__pack_to_buffer - (const RpcEventESPInit *message, - ProtobufCBuffer *buffer); -RpcEventESPInit * - rpc__event__espinit__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__event__espinit__free_unpacked - (RpcEventESPInit *message, - ProtobufCAllocator *allocator); -/* RpcEventHeartbeat methods */ -void rpc__event__heartbeat__init - (RpcEventHeartbeat *message); -size_t rpc__event__heartbeat__get_packed_size - (const RpcEventHeartbeat *message); -size_t rpc__event__heartbeat__pack - (const RpcEventHeartbeat *message, - uint8_t *out); -size_t rpc__event__heartbeat__pack_to_buffer - (const RpcEventHeartbeat *message, - ProtobufCBuffer *buffer); -RpcEventHeartbeat * - rpc__event__heartbeat__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__event__heartbeat__free_unpacked - (RpcEventHeartbeat *message, - ProtobufCAllocator *allocator); -/* RpcEventAPStaDisconnected methods */ -void rpc__event__ap__sta_disconnected__init - (RpcEventAPStaDisconnected *message); -size_t rpc__event__ap__sta_disconnected__get_packed_size - (const RpcEventAPStaDisconnected *message); -size_t rpc__event__ap__sta_disconnected__pack - (const RpcEventAPStaDisconnected *message, - uint8_t *out); -size_t rpc__event__ap__sta_disconnected__pack_to_buffer - (const RpcEventAPStaDisconnected *message, - ProtobufCBuffer *buffer); -RpcEventAPStaDisconnected * - rpc__event__ap__sta_disconnected__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__event__ap__sta_disconnected__free_unpacked - (RpcEventAPStaDisconnected *message, - ProtobufCAllocator *allocator); -/* RpcEventAPStaConnected methods */ -void rpc__event__ap__sta_connected__init - (RpcEventAPStaConnected *message); -size_t rpc__event__ap__sta_connected__get_packed_size - (const RpcEventAPStaConnected *message); -size_t rpc__event__ap__sta_connected__pack - (const RpcEventAPStaConnected *message, - uint8_t *out); -size_t rpc__event__ap__sta_connected__pack_to_buffer - (const RpcEventAPStaConnected *message, - ProtobufCBuffer *buffer); -RpcEventAPStaConnected * - rpc__event__ap__sta_connected__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__event__ap__sta_connected__free_unpacked - (RpcEventAPStaConnected *message, - ProtobufCAllocator *allocator); -/* RpcEventStaScanDone methods */ -void rpc__event__sta_scan_done__init - (RpcEventStaScanDone *message); -size_t rpc__event__sta_scan_done__get_packed_size - (const RpcEventStaScanDone *message); -size_t rpc__event__sta_scan_done__pack - (const RpcEventStaScanDone *message, - uint8_t *out); -size_t rpc__event__sta_scan_done__pack_to_buffer - (const RpcEventStaScanDone *message, - ProtobufCBuffer *buffer); -RpcEventStaScanDone * - rpc__event__sta_scan_done__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__event__sta_scan_done__free_unpacked - (RpcEventStaScanDone *message, - ProtobufCAllocator *allocator); -/* RpcEventStaConnected methods */ -void rpc__event__sta_connected__init - (RpcEventStaConnected *message); -size_t rpc__event__sta_connected__get_packed_size - (const RpcEventStaConnected *message); -size_t rpc__event__sta_connected__pack - (const RpcEventStaConnected *message, - uint8_t *out); -size_t rpc__event__sta_connected__pack_to_buffer - (const RpcEventStaConnected *message, - ProtobufCBuffer *buffer); -RpcEventStaConnected * - rpc__event__sta_connected__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__event__sta_connected__free_unpacked - (RpcEventStaConnected *message, - ProtobufCAllocator *allocator); -/* RpcEventStaDisconnected methods */ -void rpc__event__sta_disconnected__init - (RpcEventStaDisconnected *message); -size_t rpc__event__sta_disconnected__get_packed_size - (const RpcEventStaDisconnected *message); -size_t rpc__event__sta_disconnected__pack - (const RpcEventStaDisconnected *message, - uint8_t *out); -size_t rpc__event__sta_disconnected__pack_to_buffer - (const RpcEventStaDisconnected *message, - ProtobufCBuffer *buffer); -RpcEventStaDisconnected * - rpc__event__sta_disconnected__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__event__sta_disconnected__free_unpacked - (RpcEventStaDisconnected *message, - ProtobufCAllocator *allocator); -/* Rpc methods */ -void rpc__init - (Rpc *message); -size_t rpc__get_packed_size - (const Rpc *message); -size_t rpc__pack - (const Rpc *message, - uint8_t *out); -size_t rpc__pack_to_buffer - (const Rpc *message, - ProtobufCBuffer *buffer); -Rpc * - rpc__unpack - (ProtobufCAllocator *allocator, - size_t len, - const uint8_t *data); -void rpc__free_unpacked - (Rpc *message, - ProtobufCAllocator *allocator); -/* --- per-message closures --- */ - -typedef void (*WifiInitConfig_Closure) - (const WifiInitConfig *message, - void *closure_data); -typedef void (*WifiCountry_Closure) - (const WifiCountry *message, - void *closure_data); -typedef void (*WifiActiveScanTime_Closure) - (const WifiActiveScanTime *message, - void *closure_data); -typedef void (*WifiScanTime_Closure) - (const WifiScanTime *message, - void *closure_data); -typedef void (*WifiScanConfig_Closure) - (const WifiScanConfig *message, - void *closure_data); -typedef void (*WifiHeApInfo_Closure) - (const WifiHeApInfo *message, - void *closure_data); -typedef void (*WifiApRecord_Closure) - (const WifiApRecord *message, - void *closure_data); -typedef void (*WifiScanThreshold_Closure) - (const WifiScanThreshold *message, - void *closure_data); -typedef void (*WifiPmfConfig_Closure) - (const WifiPmfConfig *message, - void *closure_data); -typedef void (*WifiApConfig_Closure) - (const WifiApConfig *message, - void *closure_data); -typedef void (*WifiStaConfig_Closure) - (const WifiStaConfig *message, - void *closure_data); -typedef void (*WifiConfig_Closure) - (const WifiConfig *message, - void *closure_data); -typedef void (*WifiStaInfo_Closure) - (const WifiStaInfo *message, - void *closure_data); -typedef void (*WifiStaList_Closure) - (const WifiStaList *message, - void *closure_data); -typedef void (*WifiPktRxCtrl_Closure) - (const WifiPktRxCtrl *message, - void *closure_data); -typedef void (*WifiPromiscuousPkt_Closure) - (const WifiPromiscuousPkt *message, - void *closure_data); -typedef void (*WifiPromiscuousFilter_Closure) - (const WifiPromiscuousFilter *message, - void *closure_data); -typedef void (*WifiCsiConfig_Closure) - (const WifiCsiConfig *message, - void *closure_data); -typedef void (*WifiCsiInfo_Closure) - (const WifiCsiInfo *message, - void *closure_data); -typedef void (*WifiAntGpio_Closure) - (const WifiAntGpio *message, - void *closure_data); -typedef void (*WifiAntGpioConfig_Closure) - (const WifiAntGpioConfig *message, - void *closure_data); -typedef void (*WifiAntConfig_Closure) - (const WifiAntConfig *message, - void *closure_data); -typedef void (*WifiActionTxReq_Closure) - (const WifiActionTxReq *message, - void *closure_data); -typedef void (*WifiFtmInitiatorCfg_Closure) - (const WifiFtmInitiatorCfg *message, - void *closure_data); -typedef void (*WifiEventStaScanDone_Closure) - (const WifiEventStaScanDone *message, - void *closure_data); -typedef void (*WifiEventStaConnected_Closure) - (const WifiEventStaConnected *message, - void *closure_data); -typedef void (*WifiEventStaDisconnected_Closure) - (const WifiEventStaDisconnected *message, - void *closure_data); -typedef void (*WifiEventStaAuthmodeChange_Closure) - (const WifiEventStaAuthmodeChange *message, - void *closure_data); -typedef void (*WifiEventStaWpsErPin_Closure) - (const WifiEventStaWpsErPin *message, - void *closure_data); -typedef void (*ApCred_Closure) - (const ApCred *message, - void *closure_data); -typedef void (*WifiEventStaWpsErSuccess_Closure) - (const WifiEventStaWpsErSuccess *message, - void *closure_data); -typedef void (*WifiEventApProbeReqRx_Closure) - (const WifiEventApProbeReqRx *message, - void *closure_data); -typedef void (*WifiEventBssRssiLow_Closure) - (const WifiEventBssRssiLow *message, - void *closure_data); -typedef void (*WifiFtmReportEntry_Closure) - (const WifiFtmReportEntry *message, - void *closure_data); -typedef void (*WifiEventFtmReport_Closure) - (const WifiEventFtmReport *message, - void *closure_data); -typedef void (*WifiEventActionTxStatus_Closure) - (const WifiEventActionTxStatus *message, - void *closure_data); -typedef void (*WifiEventRocDone_Closure) - (const WifiEventRocDone *message, - void *closure_data); -typedef void (*WifiEventApWpsRgPin_Closure) - (const WifiEventApWpsRgPin *message, - void *closure_data); -typedef void (*WifiEventApWpsRgFailReason_Closure) - (const WifiEventApWpsRgFailReason *message, - void *closure_data); -typedef void (*WifiEventApWpsRgSuccess_Closure) - (const WifiEventApWpsRgSuccess *message, - void *closure_data); -typedef void (*WifiProtocols_Closure) - (const WifiProtocols *message, - void *closure_data); -typedef void (*WifiBandwidths_Closure) - (const WifiBandwidths *message, - void *closure_data); -typedef void (*ConnectedSTAList_Closure) - (const ConnectedSTAList *message, - void *closure_data); -typedef void (*RpcReqGetMacAddress_Closure) - (const RpcReqGetMacAddress *message, - void *closure_data); -typedef void (*RpcRespGetMacAddress_Closure) - (const RpcRespGetMacAddress *message, - void *closure_data); -typedef void (*RpcReqGetMode_Closure) - (const RpcReqGetMode *message, - void *closure_data); -typedef void (*RpcRespGetMode_Closure) - (const RpcRespGetMode *message, - void *closure_data); -typedef void (*RpcReqSetMode_Closure) - (const RpcReqSetMode *message, - void *closure_data); -typedef void (*RpcRespSetMode_Closure) - (const RpcRespSetMode *message, - void *closure_data); -typedef void (*RpcReqGetPs_Closure) - (const RpcReqGetPs *message, - void *closure_data); -typedef void (*RpcRespGetPs_Closure) - (const RpcRespGetPs *message, - void *closure_data); -typedef void (*RpcReqSetPs_Closure) - (const RpcReqSetPs *message, - void *closure_data); -typedef void (*RpcRespSetPs_Closure) - (const RpcRespSetPs *message, - void *closure_data); -typedef void (*RpcReqSetMacAddress_Closure) - (const RpcReqSetMacAddress *message, - void *closure_data); -typedef void (*RpcRespSetMacAddress_Closure) - (const RpcRespSetMacAddress *message, - void *closure_data); -typedef void (*RpcReqOTABegin_Closure) - (const RpcReqOTABegin *message, - void *closure_data); -typedef void (*RpcRespOTABegin_Closure) - (const RpcRespOTABegin *message, - void *closure_data); -typedef void (*RpcReqOTAWrite_Closure) - (const RpcReqOTAWrite *message, - void *closure_data); -typedef void (*RpcRespOTAWrite_Closure) - (const RpcRespOTAWrite *message, - void *closure_data); -typedef void (*RpcReqOTAEnd_Closure) - (const RpcReqOTAEnd *message, - void *closure_data); -typedef void (*RpcRespOTAEnd_Closure) - (const RpcRespOTAEnd *message, - void *closure_data); -typedef void (*RpcReqWifiSetMaxTxPower_Closure) - (const RpcReqWifiSetMaxTxPower *message, - void *closure_data); -typedef void (*RpcRespWifiSetMaxTxPower_Closure) - (const RpcRespWifiSetMaxTxPower *message, - void *closure_data); -typedef void (*RpcReqWifiGetMaxTxPower_Closure) - (const RpcReqWifiGetMaxTxPower *message, - void *closure_data); -typedef void (*RpcRespWifiGetMaxTxPower_Closure) - (const RpcRespWifiGetMaxTxPower *message, - void *closure_data); -typedef void (*RpcReqConfigHeartbeat_Closure) - (const RpcReqConfigHeartbeat *message, - void *closure_data); -typedef void (*RpcRespConfigHeartbeat_Closure) - (const RpcRespConfigHeartbeat *message, - void *closure_data); -typedef void (*RpcReqWifiInit_Closure) - (const RpcReqWifiInit *message, - void *closure_data); -typedef void (*RpcRespWifiInit_Closure) - (const RpcRespWifiInit *message, - void *closure_data); -typedef void (*RpcReqWifiDeinit_Closure) - (const RpcReqWifiDeinit *message, - void *closure_data); -typedef void (*RpcRespWifiDeinit_Closure) - (const RpcRespWifiDeinit *message, - void *closure_data); -typedef void (*RpcReqWifiSetConfig_Closure) - (const RpcReqWifiSetConfig *message, - void *closure_data); -typedef void (*RpcRespWifiSetConfig_Closure) - (const RpcRespWifiSetConfig *message, - void *closure_data); -typedef void (*RpcReqWifiGetConfig_Closure) - (const RpcReqWifiGetConfig *message, - void *closure_data); -typedef void (*RpcRespWifiGetConfig_Closure) - (const RpcRespWifiGetConfig *message, - void *closure_data); -typedef void (*RpcReqWifiConnect_Closure) - (const RpcReqWifiConnect *message, - void *closure_data); -typedef void (*RpcRespWifiConnect_Closure) - (const RpcRespWifiConnect *message, - void *closure_data); -typedef void (*RpcReqWifiDisconnect_Closure) - (const RpcReqWifiDisconnect *message, - void *closure_data); -typedef void (*RpcRespWifiDisconnect_Closure) - (const RpcRespWifiDisconnect *message, - void *closure_data); -typedef void (*RpcReqWifiStart_Closure) - (const RpcReqWifiStart *message, - void *closure_data); -typedef void (*RpcRespWifiStart_Closure) - (const RpcRespWifiStart *message, - void *closure_data); -typedef void (*RpcReqWifiStop_Closure) - (const RpcReqWifiStop *message, - void *closure_data); -typedef void (*RpcRespWifiStop_Closure) - (const RpcRespWifiStop *message, - void *closure_data); -typedef void (*RpcReqWifiScanStart_Closure) - (const RpcReqWifiScanStart *message, - void *closure_data); -typedef void (*RpcRespWifiScanStart_Closure) - (const RpcRespWifiScanStart *message, - void *closure_data); -typedef void (*RpcReqWifiScanStop_Closure) - (const RpcReqWifiScanStop *message, - void *closure_data); -typedef void (*RpcRespWifiScanStop_Closure) - (const RpcRespWifiScanStop *message, - void *closure_data); -typedef void (*RpcReqWifiScanGetApNum_Closure) - (const RpcReqWifiScanGetApNum *message, - void *closure_data); -typedef void (*RpcRespWifiScanGetApNum_Closure) - (const RpcRespWifiScanGetApNum *message, - void *closure_data); -typedef void (*RpcReqWifiScanGetApRecords_Closure) - (const RpcReqWifiScanGetApRecords *message, - void *closure_data); -typedef void (*RpcRespWifiScanGetApRecords_Closure) - (const RpcRespWifiScanGetApRecords *message, - void *closure_data); -typedef void (*RpcReqWifiScanGetApRecord_Closure) - (const RpcReqWifiScanGetApRecord *message, - void *closure_data); -typedef void (*RpcRespWifiScanGetApRecord_Closure) - (const RpcRespWifiScanGetApRecord *message, - void *closure_data); -typedef void (*RpcReqWifiClearApList_Closure) - (const RpcReqWifiClearApList *message, - void *closure_data); -typedef void (*RpcRespWifiClearApList_Closure) - (const RpcRespWifiClearApList *message, - void *closure_data); -typedef void (*RpcReqWifiRestore_Closure) - (const RpcReqWifiRestore *message, - void *closure_data); -typedef void (*RpcRespWifiRestore_Closure) - (const RpcRespWifiRestore *message, - void *closure_data); -typedef void (*RpcReqWifiClearFastConnect_Closure) - (const RpcReqWifiClearFastConnect *message, - void *closure_data); -typedef void (*RpcRespWifiClearFastConnect_Closure) - (const RpcRespWifiClearFastConnect *message, - void *closure_data); -typedef void (*RpcReqWifiDeauthSta_Closure) - (const RpcReqWifiDeauthSta *message, - void *closure_data); -typedef void (*RpcRespWifiDeauthSta_Closure) - (const RpcRespWifiDeauthSta *message, - void *closure_data); -typedef void (*RpcReqWifiStaGetApInfo_Closure) - (const RpcReqWifiStaGetApInfo *message, - void *closure_data); -typedef void (*RpcRespWifiStaGetApInfo_Closure) - (const RpcRespWifiStaGetApInfo *message, - void *closure_data); -typedef void (*RpcReqWifiSetProtocol_Closure) - (const RpcReqWifiSetProtocol *message, - void *closure_data); -typedef void (*RpcRespWifiSetProtocol_Closure) - (const RpcRespWifiSetProtocol *message, - void *closure_data); -typedef void (*RpcReqWifiGetProtocol_Closure) - (const RpcReqWifiGetProtocol *message, - void *closure_data); -typedef void (*RpcRespWifiGetProtocol_Closure) - (const RpcRespWifiGetProtocol *message, - void *closure_data); -typedef void (*RpcReqWifiSetBandwidth_Closure) - (const RpcReqWifiSetBandwidth *message, - void *closure_data); -typedef void (*RpcRespWifiSetBandwidth_Closure) - (const RpcRespWifiSetBandwidth *message, - void *closure_data); -typedef void (*RpcReqWifiGetBandwidth_Closure) - (const RpcReqWifiGetBandwidth *message, - void *closure_data); -typedef void (*RpcRespWifiGetBandwidth_Closure) - (const RpcRespWifiGetBandwidth *message, - void *closure_data); -typedef void (*RpcReqWifiSetChannel_Closure) - (const RpcReqWifiSetChannel *message, - void *closure_data); -typedef void (*RpcRespWifiSetChannel_Closure) - (const RpcRespWifiSetChannel *message, - void *closure_data); -typedef void (*RpcReqWifiGetChannel_Closure) - (const RpcReqWifiGetChannel *message, - void *closure_data); -typedef void (*RpcRespWifiGetChannel_Closure) - (const RpcRespWifiGetChannel *message, - void *closure_data); -typedef void (*RpcReqWifiSetStorage_Closure) - (const RpcReqWifiSetStorage *message, - void *closure_data); -typedef void (*RpcRespWifiSetStorage_Closure) - (const RpcRespWifiSetStorage *message, - void *closure_data); -typedef void (*RpcReqWifiSetCountryCode_Closure) - (const RpcReqWifiSetCountryCode *message, - void *closure_data); -typedef void (*RpcRespWifiSetCountryCode_Closure) - (const RpcRespWifiSetCountryCode *message, - void *closure_data); -typedef void (*RpcReqWifiGetCountryCode_Closure) - (const RpcReqWifiGetCountryCode *message, - void *closure_data); -typedef void (*RpcRespWifiGetCountryCode_Closure) - (const RpcRespWifiGetCountryCode *message, - void *closure_data); -typedef void (*RpcReqWifiSetCountry_Closure) - (const RpcReqWifiSetCountry *message, - void *closure_data); -typedef void (*RpcRespWifiSetCountry_Closure) - (const RpcRespWifiSetCountry *message, - void *closure_data); -typedef void (*RpcReqWifiGetCountry_Closure) - (const RpcReqWifiGetCountry *message, - void *closure_data); -typedef void (*RpcRespWifiGetCountry_Closure) - (const RpcRespWifiGetCountry *message, - void *closure_data); -typedef void (*RpcReqWifiApGetStaList_Closure) - (const RpcReqWifiApGetStaList *message, - void *closure_data); -typedef void (*RpcRespWifiApGetStaList_Closure) - (const RpcRespWifiApGetStaList *message, - void *closure_data); -typedef void (*RpcReqWifiApGetStaAid_Closure) - (const RpcReqWifiApGetStaAid *message, - void *closure_data); -typedef void (*RpcReqWifiStaGetNegotiatedPhymode_Closure) - (const RpcReqWifiStaGetNegotiatedPhymode *message, - void *closure_data); -typedef void (*RpcRespWifiStaGetNegotiatedPhymode_Closure) - (const RpcRespWifiStaGetNegotiatedPhymode *message, - void *closure_data); -typedef void (*RpcRespWifiApGetStaAid_Closure) - (const RpcRespWifiApGetStaAid *message, - void *closure_data); -typedef void (*RpcReqWifiStaGetRssi_Closure) - (const RpcReqWifiStaGetRssi *message, - void *closure_data); -typedef void (*RpcRespWifiStaGetRssi_Closure) - (const RpcRespWifiStaGetRssi *message, - void *closure_data); -typedef void (*RpcReqWifiStaGetAid_Closure) - (const RpcReqWifiStaGetAid *message, - void *closure_data); -typedef void (*RpcRespWifiStaGetAid_Closure) - (const RpcRespWifiStaGetAid *message, - void *closure_data); -typedef void (*RpcReqWifiSetProtocols_Closure) - (const RpcReqWifiSetProtocols *message, - void *closure_data); -typedef void (*RpcRespWifiSetProtocols_Closure) - (const RpcRespWifiSetProtocols *message, - void *closure_data); -typedef void (*RpcReqWifiGetProtocols_Closure) - (const RpcReqWifiGetProtocols *message, - void *closure_data); -typedef void (*RpcRespWifiGetProtocols_Closure) - (const RpcRespWifiGetProtocols *message, - void *closure_data); -typedef void (*RpcReqWifiSetBandwidths_Closure) - (const RpcReqWifiSetBandwidths *message, - void *closure_data); -typedef void (*RpcRespWifiSetBandwidths_Closure) - (const RpcRespWifiSetBandwidths *message, - void *closure_data); -typedef void (*RpcReqWifiGetBandwidths_Closure) - (const RpcReqWifiGetBandwidths *message, - void *closure_data); -typedef void (*RpcRespWifiGetBandwidths_Closure) - (const RpcRespWifiGetBandwidths *message, - void *closure_data); -typedef void (*RpcReqWifiSetBand_Closure) - (const RpcReqWifiSetBand *message, - void *closure_data); -typedef void (*RpcRespWifiSetBand_Closure) - (const RpcRespWifiSetBand *message, - void *closure_data); -typedef void (*RpcReqWifiGetBand_Closure) - (const RpcReqWifiGetBand *message, - void *closure_data); -typedef void (*RpcRespWifiGetBand_Closure) - (const RpcRespWifiGetBand *message, - void *closure_data); -typedef void (*RpcReqWifiSetBandMode_Closure) - (const RpcReqWifiSetBandMode *message, - void *closure_data); -typedef void (*RpcRespWifiSetBandMode_Closure) - (const RpcRespWifiSetBandMode *message, - void *closure_data); -typedef void (*RpcReqWifiGetBandMode_Closure) - (const RpcReqWifiGetBandMode *message, - void *closure_data); -typedef void (*RpcRespWifiGetBandMode_Closure) - (const RpcRespWifiGetBandMode *message, - void *closure_data); -typedef void (*RpcReqGetCoprocessorFwVersion_Closure) - (const RpcReqGetCoprocessorFwVersion *message, - void *closure_data); -typedef void (*RpcRespGetCoprocessorFwVersion_Closure) - (const RpcRespGetCoprocessorFwVersion *message, - void *closure_data); -typedef void (*RpcEventWifiEventNoArgs_Closure) - (const RpcEventWifiEventNoArgs *message, - void *closure_data); -typedef void (*RpcEventESPInit_Closure) - (const RpcEventESPInit *message, - void *closure_data); -typedef void (*RpcEventHeartbeat_Closure) - (const RpcEventHeartbeat *message, - void *closure_data); -typedef void (*RpcEventAPStaDisconnected_Closure) - (const RpcEventAPStaDisconnected *message, - void *closure_data); -typedef void (*RpcEventAPStaConnected_Closure) - (const RpcEventAPStaConnected *message, - void *closure_data); -typedef void (*RpcEventStaScanDone_Closure) - (const RpcEventStaScanDone *message, - void *closure_data); -typedef void (*RpcEventStaConnected_Closure) - (const RpcEventStaConnected *message, - void *closure_data); -typedef void (*RpcEventStaDisconnected_Closure) - (const RpcEventStaDisconnected *message, - void *closure_data); -typedef void (*Rpc_Closure) - (const Rpc *message, - void *closure_data); - -/* --- services --- */ - - -/* --- descriptors --- */ - -extern const ProtobufCEnumDescriptor rpc__wifi_bw__descriptor; -extern const ProtobufCEnumDescriptor rpc__wifi_power_save__descriptor; -extern const ProtobufCEnumDescriptor rpc__wifi_sec_prot__descriptor; -extern const ProtobufCEnumDescriptor rpc__status__descriptor; -extern const ProtobufCEnumDescriptor rpc_type__descriptor; -extern const ProtobufCEnumDescriptor rpc_id__descriptor; -extern const ProtobufCMessageDescriptor wifi_init_config__descriptor; -extern const ProtobufCMessageDescriptor wifi_country__descriptor; -extern const ProtobufCMessageDescriptor wifi_active_scan_time__descriptor; -extern const ProtobufCMessageDescriptor wifi_scan_time__descriptor; -extern const ProtobufCMessageDescriptor wifi_scan_config__descriptor; -extern const ProtobufCMessageDescriptor wifi_he_ap_info__descriptor; -extern const ProtobufCMessageDescriptor wifi_ap_record__descriptor; -extern const ProtobufCMessageDescriptor wifi_scan_threshold__descriptor; -extern const ProtobufCMessageDescriptor wifi_pmf_config__descriptor; -extern const ProtobufCMessageDescriptor wifi_ap_config__descriptor; -extern const ProtobufCMessageDescriptor wifi_sta_config__descriptor; -extern const ProtobufCMessageDescriptor wifi_config__descriptor; -extern const ProtobufCMessageDescriptor wifi_sta_info__descriptor; -extern const ProtobufCMessageDescriptor wifi_sta_list__descriptor; -extern const ProtobufCMessageDescriptor wifi_pkt_rx_ctrl__descriptor; -extern const ProtobufCMessageDescriptor wifi_promiscuous_pkt__descriptor; -extern const ProtobufCMessageDescriptor wifi_promiscuous_filter__descriptor; -extern const ProtobufCMessageDescriptor wifi_csi_config__descriptor; -extern const ProtobufCMessageDescriptor wifi_csi_info__descriptor; -extern const ProtobufCMessageDescriptor wifi_ant_gpio__descriptor; -extern const ProtobufCMessageDescriptor wifi_ant_gpio_config__descriptor; -extern const ProtobufCMessageDescriptor wifi_ant_config__descriptor; -extern const ProtobufCMessageDescriptor wifi_action_tx_req__descriptor; -extern const ProtobufCMessageDescriptor wifi_ftm_initiator_cfg__descriptor; -extern const ProtobufCMessageDescriptor wifi_event_sta_scan_done__descriptor; -extern const ProtobufCMessageDescriptor wifi_event_sta_connected__descriptor; -extern const ProtobufCMessageDescriptor wifi_event_sta_disconnected__descriptor; -extern const ProtobufCMessageDescriptor wifi_event_sta_authmode_change__descriptor; -extern const ProtobufCMessageDescriptor wifi_event_sta_wps_er_pin__descriptor; -extern const ProtobufCMessageDescriptor ap_cred__descriptor; -extern const ProtobufCMessageDescriptor wifi_event_sta_wps_er_success__descriptor; -extern const ProtobufCMessageDescriptor wifi_event_ap_probe_req_rx__descriptor; -extern const ProtobufCMessageDescriptor wifi_event_bss_rssi_low__descriptor; -extern const ProtobufCMessageDescriptor wifi_ftm_report_entry__descriptor; -extern const ProtobufCMessageDescriptor wifi_event_ftm_report__descriptor; -extern const ProtobufCMessageDescriptor wifi_event_action_tx_status__descriptor; -extern const ProtobufCMessageDescriptor wifi_event_roc_done__descriptor; -extern const ProtobufCMessageDescriptor wifi_event_ap_wps_rg_pin__descriptor; -extern const ProtobufCMessageDescriptor wifi_event_ap_wps_rg_fail_reason__descriptor; -extern const ProtobufCMessageDescriptor wifi_event_ap_wps_rg_success__descriptor; -extern const ProtobufCMessageDescriptor wifi_protocols__descriptor; -extern const ProtobufCMessageDescriptor wifi_bandwidths__descriptor; -extern const ProtobufCMessageDescriptor connected_stalist__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__get_mac_address__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__get_mac_address__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__get_mode__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__get_mode__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__set_mode__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__set_mode__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__get_ps__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__get_ps__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__set_ps__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__set_ps__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__set_mac_address__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__set_mac_address__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__otabegin__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__otabegin__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__otawrite__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__otawrite__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__otaend__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__otaend__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_set_max_tx_power__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_max_tx_power__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_get_max_tx_power__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_max_tx_power__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__config_heartbeat__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__config_heartbeat__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_init__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_init__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_deinit__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_deinit__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_set_config__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_config__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_get_config__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_config__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_connect__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_connect__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_disconnect__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_disconnect__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_start__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_start__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_stop__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_stop__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_scan_start__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_scan_start__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_scan_stop__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_scan_stop__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_scan_get_ap_num__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_scan_get_ap_num__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_scan_get_ap_records__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_scan_get_ap_records__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_scan_get_ap_record__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_scan_get_ap_record__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_clear_ap_list__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_clear_ap_list__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_restore__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_restore__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_clear_fast_connect__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_clear_fast_connect__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_deauth_sta__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_deauth_sta__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_ap_info__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_ap_info__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_set_protocol__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_protocol__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_get_protocol__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_protocol__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_set_bandwidth__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_bandwidth__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_get_bandwidth__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_bandwidth__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_set_channel__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_channel__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_get_channel__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_channel__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_set_storage__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_storage__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_set_country_code__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_country_code__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_get_country_code__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_country_code__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_set_country__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_country__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_get_country__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_country__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_ap_get_sta_list__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_ap_get_sta_list__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_ap_get_sta_aid__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_negotiated_phymode__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_negotiated_phymode__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_ap_get_sta_aid__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_rssi__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_rssi__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_sta_get_aid__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_sta_get_aid__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_set_protocols__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_protocols__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_get_protocols__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_protocols__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_set_bandwidths__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_bandwidths__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_get_bandwidths__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_bandwidths__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_set_band__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_band__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_get_band__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_band__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_set_band_mode__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_set_band_mode__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__wifi_get_band_mode__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__wifi_get_band_mode__descriptor; -extern const ProtobufCMessageDescriptor rpc__req__get_coprocessor_fw_version__descriptor; -extern const ProtobufCMessageDescriptor rpc__resp__get_coprocessor_fw_version__descriptor; -extern const ProtobufCMessageDescriptor rpc__event__wifi_event_no_args__descriptor; -extern const ProtobufCMessageDescriptor rpc__event__espinit__descriptor; -extern const ProtobufCMessageDescriptor rpc__event__heartbeat__descriptor; -extern const ProtobufCMessageDescriptor rpc__event__ap__sta_disconnected__descriptor; -extern const ProtobufCMessageDescriptor rpc__event__ap__sta_connected__descriptor; -extern const ProtobufCMessageDescriptor rpc__event__sta_scan_done__descriptor; -extern const ProtobufCMessageDescriptor rpc__event__sta_connected__descriptor; -extern const ProtobufCMessageDescriptor rpc__event__sta_disconnected__descriptor; -extern const ProtobufCMessageDescriptor rpc__descriptor; - -PROTOBUF_C__END_DECLS - - -#endif /* PROTOBUF_C_esp_5fhosted_5frpc_2eproto__INCLUDED */ diff --git a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/esp_hosted_rpc.proto b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/esp_hosted_rpc.proto deleted file mode 100644 index db37ac4..0000000 --- a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/proto/esp_hosted_rpc.proto +++ /dev/null @@ -1,1830 +0,0 @@ -/* Copyright (C) 2015-2023 Espressif Systems (Shanghai) PTE LTD */ -/* SPDX-License-Identifier: GPL-2.0-only OR Apache-2.0 */ - -syntax = "proto3"; - -/* Enums similar to ESP IDF */ -//enum Rpc_VendorIEType { -// Beacon = 0; -// Probe_req = 1; -// Probe_resp = 2; -// Assoc_req = 3; -// Assoc_resp = 4; -//} -// -//enum Rpc_VendorIEID { -// ID_0 = 0; -// ID_1 = 1; -//} - - -enum Rpc_WifiBw { - BW_Invalid = 0; - HT20 = 1; - HT40 = 2; -} - -enum Rpc_WifiPowerSave { - PS_Invalid = 0; - MIN_MODEM = 1; - MAX_MODEM = 2; -} - -enum Rpc_WifiSecProt { - Open = 0; - WEP = 1; - WPA_PSK = 2; - WPA2_PSK = 3; - WPA_WPA2_PSK = 4; - WPA2_ENTERPRISE = 5; - WPA3_PSK = 6; - WPA2_WPA3_PSK = 7; -} - -/* enums for Control path */ -enum Rpc_Status { - Connected = 0; - Not_Connected = 1; - No_AP_Found = 2; - Connection_Fail = 3; - Invalid_Argument = 4; - Out_Of_Range = 5; -} - - -enum RpcType { -MsgType_Invalid = 0; - Req = 1; - Resp = 2; - Event = 3; - MsgType_Max = 4; -} -// -//enum Rpc { -// ESP_ERR_WIFI_BASE = 0x3000; -// ESP_ERR_WIFI_NOT_INIT = 0x3001; -// ESP_ERR_WIFI_NOT_STARTED = 0x3002; -// ESP_ERR_WIFI_NOT_STOPPED = 0x3003; -// ESP_ERR_WIFI_IF = 0x3004; -// ESP_ERR_WIFI_MODE = 0x3005; -// ESP_ERR_WIFI_STATE = 0x3006; -// ESP_ERR_WIFI_CONN = 0x3007; -// ESP_ERR_WIFI_NVS = 0x3008; -// ESP_ERR_WIFI_MAC = 0x3009; -// ESP_ERR_WIFI_SSID = 0x300a; -// ESP_ERR_WIFI_PASSWORD = 0x300b; -// ESP_ERR_WIFI_TIMEOUT = 0x300c; -// ESP_ERR_WIFI_WAKE_FAIL = 0x300d; -// ESP_ERR_WIFI_WOULD_BLOCK = 0x300e; -// ESP_ERR_WIFI_NOT_CONNECT = 0x300f; -// /* 0x3010 0x3011 not present intentionally */ -// ESP_ERR_WIFI_POST = 0x3012; -// ESP_ERR_WIFI_INIT_STATE = 0x3013; -// ESP_ERR_WIFI_STOP_STATE = 0x3014; -// ESP_ERR_WIFI_NOT_ASSOC = 0x3015; -// ESP_ERR_WIFI_TX_DISALLOW = 0x3016; -//} - - -//enum ctrl_msg_type { -// invalid = 0; -// req = 1; -// resp = 2; -// event = 3; -// max = 4; -//} -// -//enum ctrl_msg_id { -// invalid = 0; -// req_base = 400; -// req_w_init = 401; -// req_w_deinit = 402; -// req_w_set_mode = 403; -// req_w_get_mode = 404; -// req_w_start = 405; -// req_w_stop = 406; -// req_w_restore = 407; -// req_w_connect = 408; -// req_w_disconnect = 409; -// req_w_clear_fast_connect = 410; -// req_w_deauth_sta = 411; -// req_w_scan_start = 412; -// req_w_scan_stop = 413; -// req_w_scan_get_ap_name = 414; -// req_w_scan_get_ap_records = 415; -// req_w_clear_ap_list = 416; -// req_w_sta_get_ap_info = 417; -// req_w_set_ps = 418; -// req_w_get_ps = 419; -// req_w_set_protocol = 420; -// req_w_get_protocol = 421; -// req_w_set_bandwidth = 422; -// req_w_get_bandwidth = 423; -// req_w_set_channel = 424; -// req_w_get_channel = 425; -// req_w_set_country = 426; -// req_w_get_country = 427; -// req_w_set_mac = 428; -// req_w_get_mac = 429; -// req_w_set_promiscuous_cb = 430; -// req_w_set_promiscuous = 431; -// req_w_get_promiscuous = 432; -// req_w_set_promiscuous_filter = 433; -// req_w_get_promiscuous_filter = 434; -// req_w_set_promiscuous_ctrl_filter = 435; -// req_w_get_promiscuous_ctrl_filter = 436; -// req_w_set_config = 437; -// req_w_get_config = 438; -// req_w_ap_get_sta_list = 439; -// req_w_ap_get_sta_aid = 440; -// req_w_set_storage = 441; -// req_w_set_vendor_ie = 442; -// req_w_set_vendor_ie_cb = 443; -// req_w_set_max_tx_power = 444; -// req_w_get_max_tx_power = 445; -// req_w_set_event_mask = 446; -// req_w_get_event_mask = 447; -// req_w_80211_tx = 448; -// req_w_set_csi_rx_cb = 449; -// req_w_set_csi_config = 450; -// req_w_set_csi = 451; -// req_w_set_ant_gpio = 452; -// req_w_get_ant_gpio = 453; -// req_w_set_ant = 454; -// req_w_get_ant = 455; -// req_w_get_tsf_time = 456; -// req_w_set_inactive_time = 457; -// req_w_get_inactive_time = 458; -// req_w_statis_dump = 459; -// req_w_set_rssi_threshold = 460; -// req_w_ftm_initiate_session = 461; -// req_w_ftm_end_session = 462; -// req_w_ftm_resp_set_offset = 463; -// req_w_config_11b_rate = 464; -// req_w_connectionless_module_set_wake_interval = 465; -// req_w_set_country_code = 466; -// req_w_get_country_code = 467; -// req_w_config_80211_tx_rate = 468; -// req_w_disable_pmf_config = 469; -// -// req_max = 470; -// -// -// rsp_base = 600; -// rsp_w_init = 601; -// rsp_w_deinit = 602; -// rsp_w_set_mode = 603; -// rsp_w_get_mode = 604; -// rsp_w_start = 605; -// rsp_w_stop = 606; -// rsp_w_restore = 607; -// rsp_w_connect = 608; -// rsp_w_disconnect = 609; -// rsp_w_clear_fast_connect = 610; -// rsp_w_deauth_sta = 611; -// rsp_w_scan_start = 612; -// rsp_w_scan_stop = 613; -// rsp_w_scan_get_ap_name = 614; -// rsp_w_scan_get_ap_records = 615; -// rsp_w_clear_ap_list = 616; -// rsp_w_sta_get_ap_info = 617; -// rsp_w_set_ps = 618; -// rsp_w_get_ps = 619; -// rsp_w_set_protocol = 620; -// rsp_w_get_protocol = 621; -// rsp_w_set_bandwidth = 622; -// rsp_w_get_bandwidth = 623; -// rsp_w_set_channel = 624; -// rsp_w_get_channel = 625; -// rsp_w_set_country = 626; -// rsp_w_get_country = 627; -// rsp_w_set_mac = 628; -// rsp_w_get_mac = 629; -// rsp_w_set_promiscuous_cb = 630; -// rsp_w_set_promiscuous = 631; -// rsp_w_get_promiscuous = 632; -// rsp_w_set_promiscuous_filter = 633; -// rsp_w_get_promiscuous_filter = 634; -// rsp_w_set_promiscuous_ctrl_filter = 635; -// rsp_w_get_promiscuous_ctrl_filter = 636; -// rsp_w_set_config = 637; -// rsp_w_get_config = 638; -// rsp_w_ap_get_sta_list = 639; -// rsp_w_ap_get_sta_aid = 640; -// rsp_w_set_storage = 641; -// rsp_w_set_vendor_ie = 642; -// rsp_w_set_vendor_ie_cb = 643; -// rsp_w_set_max_tx_power = 644; -// rsp_w_get_max_tx_power = 645; -// rsp_w_set_event_mask = 646; -// rsp_w_get_event_mask = 647; -// rsp_w_80211_tx = 648; -// rsp_w_set_csi_rx_cb = 649; -// rsp_w_set_csi_config = 650; -// rsp_w_set_csi = 651; -// rsp_w_set_ant_gpio = 652; -// rsp_w_get_ant_gpio = 653; -// rsp_w_set_ant = 654; -// rsp_w_get_ant = 655; -// rsp_w_get_tsf_time = 656; -// rsp_w_set_inactive_time = 657; -// rsp_w_get_inactive_time = 658; -// rsp_w_statis_dump = 659; -// rsp_w_set_rssi_threshold = 660; -// rsp_w_ftm_initiate_session = 661; -// rsp_w_ftm_end_session = 662; -// rsp_w_ftm_resp_set_offset = 663; -// rsp_w_config_11b_rate = 664; -// rsp_w_connectionless_module_set_wake_interval = 665; -// rsp_w_set_country_code = 666; -// rsp_w_get_country_code = 667; -// rsp_w_config_80211_tx_rate = 668; -// rsp_w_disable_pmf_config = 669; -// -// rsp_max = 670; -// -// -// evt_base = 800; -// evt_esp_started = 801; -// evt_heartbeat = 802; -// evt_w_ready = 803; /**< ESP32 WiFi ready */ -// evt_w_scan_done = 804; /**< ESP32 finish scanning AP */ -// evt_w_sta_start = 805; /**< ESP32 station start */ -// evt_w_sta_stop = 806; /**< ESP32 station stop */ -// evt_w_sta_connected = 807; /**< ESP32 station connected to AP */ -// evt_w_sta_disconnected = 808; /**< ESP32 station disconnected from AP */ -// evt_w_sta_authmode_change = 809; /**< the auth mode of AP connected by ESP32 station changed */ -// -// evt_w_sta_wps_er_success = 810; /**< ESP32 station wps succeeds in enrollee mode */ -// evt_w_sta_wps_er_failed = 811; /**< ESP32 station wps fails in enrollee mode */ -// evt_w_sta_wps_er_timeout = 812; /**< ESP32 station wps timeout in enrollee mode */ -// evt_w_sta_wps_er_pin = 813; /**< ESP32 station wps pin code in enrollee mode */ -// evt_w_sta_wps_er_pbc_overlap = 814; /**< ESP32 station wps overlap in enrollee mode */ -// -// evt_w_ap_start = 815; /**< ESP32 soft-AP start */ -// evt_w_ap_stop = 816; /**< ESP32 soft-AP stop */ -// evt_w_ap_staconnected = 817; /**< a station connected to ESP32 soft-AP */ -// evt_w_ap_stadisconnected = 818; /**< a station disconnected from ESP32 soft-AP */ -// evt_w_ap_probereqrecved = 819; /**< Receive probe request packet in soft-AP interface */ -// -// evt_w_ftm_report = 820; /**< Receive report of FTM procedure */ -// -// /* Add next events after this only */ -// evt_w_sta_bss_rssi_low = 821; /**< AP's RSSI crossed configured threshold */ -// evt_w_action_tx_status = 822; /**< Status indication of Action Tx operation */ -// evt_w_roc_done = 823; /**< Remain-on-Channel operation complete */ -// -// evt_w_sta_beacon_timeout = 824; /**< ESP32 station beacon timeout */ -// -// evt_w_connectionless_module_wake_interval_start = 825; /**< ESP32 connectionless module wake interval start */ -// -// evt_w_ap_wps_rg_success = 826; /**< Soft-AP wps succeeds in registrar mode */ -// evt_w_ap_wps_rg_failed = 827; /**< Soft-AP wps fails in registrar mode */ -// evt_w_ap_wps_rg_timeout = 828; /**< Soft-AP wps timeout in registrar mode */ -// evt_w_ap_wps_rg_pin = 829; /**< Soft-AP wps pin code in registrar mode */ -// evt_w_ap_wps_rg_pbc_overlap = 830; /**< Soft-AP wps overlap in registrar mode */ -// -// evt_max = 831; /**< Invalid WiFi event ID */ -// -//} - - -enum RpcId { - MsgId_Invalid = 0; - - /** Request Msgs **/ - Req_Base = 256; //0x100 - - Req_GetMACAddress = 257; //0x101 - Req_SetMacAddress = 258; //0x102 - Req_GetWifiMode = 259; //0x103 - Req_SetWifiMode = 260; //0x104 - - //Req_GetAPScanList = 261; //0x105 - //Req_GetAPConfig = 262; //0x106 - //Req_ConnectAP = 263; //0x107 - //Req_DisconnectAP = 264; //0x108 - - //Req_GetSoftAPConfig = 265; //0x109 - //Req_SetSoftAPVendorSpecificIE = 266; //0x10a - //Req_StartSoftAP = 267; //0x10b - //Req_GetSoftAPConnectedSTAList = 268; //0x10c - //Req_StopSoftAP = 269; //0x10d - - Req_WifiSetPs = 270; //0x10e - Req_WifiGetPs = 271; //0x10f - - Req_OTABegin = 272; //0x110 - Req_OTAWrite = 273; //0x111 - Req_OTAEnd = 274; //0x112 - - Req_WifiSetMaxTxPower = 275; //0x113 - Req_WifiGetMaxTxPower = 276; //0x114 - - Req_ConfigHeartbeat = 277; //0x115 - - Req_WifiInit = 278; //0x116 - Req_WifiDeinit = 279; //0x117 - Req_WifiStart = 280; //0x118 - Req_WifiStop = 281; //0x119 - Req_WifiConnect = 282; //0x11a - Req_WifiDisconnect = 283; //0x11b - Req_WifiSetConfig = 284; //0x11c - Req_WifiGetConfig = 285; //0x11d - - Req_WifiScanStart = 286; //0x11e - Req_WifiScanStop = 287; //0x11f - Req_WifiScanGetApNum = 288; //0x120 - Req_WifiScanGetApRecords = 289; //0x121 - Req_WifiClearApList = 290; //0x122 - - Req_WifiRestore = 291; //0x123 - Req_WifiClearFastConnect = 292; //0x124 - Req_WifiDeauthSta = 293; //0x125 - Req_WifiStaGetApInfo = 294; //0x126 - //Req_WifiSetPs = 295; //0x127 - //Req_WifiGetPs = 296; //0x128 - Req_WifiSetProtocol = 297; //0x129 - Req_WifiGetProtocol = 298; //0x12a - Req_WifiSetBandwidth = 299; //0x12b - Req_WifiGetBandwidth = 300; //0x12c - Req_WifiSetChannel = 301; //0x12d - Req_WifiGetChannel = 302; //0x12e - Req_WifiSetCountry = 303; //0x12f - Req_WifiGetCountry = 304; //0x130 - -// Req_WifiSetPromiscuousRxCb = 305; //0x131 - Req_WifiSetPromiscuous = 305; //0x131 - Req_WifiGetPromiscuous = 306; //0x132 - Req_WifiSetPromiscuousFilter = 307; //0x133 - Req_WifiGetPromiscuousFilter = 308; //0x134 - Req_WifiSetPromiscuousCtrlFilter = 309; //0x135 - Req_WifiGetPromiscuousCtrlFilter = 310; //0x136 - - Req_WifiApGetStaList = 311; //0x137 - Req_WifiApGetStaAid = 312; //0x138 - Req_WifiSetStorage = 313; //0x139 - Req_WifiSetVendorIe = 314; //0x13a -// Req_WifiSetVendorIeCb = 315; //0x13b - Req_WifiSetEventMask = 315; //0x13b - Req_WifiGetEventMask = 316; //0x13c - Req_Wifi80211Tx = 317; //0x13d - -// Req_WifiSetCsiRxCb = 318; //0x13e - Req_WifiSetCsiConfig = 318; //0x13e - Req_WifiSetCsi = 319; //0x13f - - Req_WifiSetAntGpio = 320; //0x140 - Req_WifiGetAntGpio = 321; //0x141 - Req_WifiSetAnt = 322; //0x142 - Req_WifiGetAnt = 323; //0x143 - - Req_WifiGetTsfTime = 324; //0x144 - Req_WifiSetInactiveTime = 325; //0x145 - Req_WifiGetInactiveTime = 326; //0x146 - Req_WifiStatisDump = 327; //0x147 - Req_WifiSetRssiThreshold = 328; //0x148 - - Req_WifiFtmInitiateSession = 329; //0x149 - Req_WifiFtmEndSession = 330; //0x14a - Req_WifiFtmRespSetOffset = 331; //0x14b - - Req_WifiConfig11bRate = 332; //0x14c - Req_WifiConnectionlessModuleSetWakeInterval = 333; //0x14d - Req_WifiSetCountryCode = 334; //0x14e - Req_WifiGetCountryCode = 335; //0x14f - Req_WifiConfig80211TxRate = 336; //0x150 - Req_WifiDisablePmfConfig = 337; //0x151 - Req_WifiStaGetAid = 338; //0x152 - Req_WifiStaGetNegotiatedPhymode = 339; //0x153 - Req_WifiSetDynamicCs = 340; //0x154 - Req_WifiStaGetRssi = 341; //0x155 - - Req_WifiSetProtocols = 342; //0x156 - Req_WifiGetProtocols = 343; //0x157 - Req_WifiSetBandwidths = 344; //0x158 - Req_WifiGetBandwidths = 345; //0x159 - - Req_WifiSetBand = 346; //0x15a - Req_WifiGetBand = 347; //0x15b - Req_WifiSetBandMode = 348; //0x15c - Req_WifiGetBandMode = 349; //0x15d - - Req_GetCoprocessorFwVersion = 350; //0x15e - - Req_WifiScanGetApRecord = 351; //0x15f - -/* Add new control path command response before Req_Max - * and update Req_Max */ - Req_Max = 352; //0x160 - - /** Response Msgs **/ - Resp_Base = 512; - - Resp_GetMACAddress = 513; - Resp_SetMacAddress = 514; - Resp_GetWifiMode = 515; - Resp_SetWifiMode = 516; - - //Resp_GetAPScanList = 517; - //Resp_GetAPConfig = 518; - //Resp_ConnectAP = 519; - //Resp_DisconnectAP = 520; - - //Resp_GetSoftAPConfig = 521; - //Resp_SetSoftAPVendorSpecificIE = 522; - //Resp_StartSoftAP = 523; - //Resp_GetSoftAPConnectedSTAList = 524; - //Resp_StopSoftAP = 525; - - Resp_WifiSetPs = 526; - Resp_WifiGetPs = 527; - - Resp_OTABegin = 528; - Resp_OTAWrite = 529; - Resp_OTAEnd = 530; - - Resp_WifiSetMaxTxPower = 531; - Resp_WifiGetMaxTxPower = 532; - - Resp_ConfigHeartbeat = 533; - - Resp_WifiInit = 534; - Resp_WifiDeinit = 535; - Resp_WifiStart = 536; - Resp_WifiStop = 537; - Resp_WifiConnect = 538; - Resp_WifiDisconnect = 539; - Resp_WifiSetConfig = 540; - Resp_WifiGetConfig = 541; - - Resp_WifiScanStart = 542; - Resp_WifiScanStop = 543; - Resp_WifiScanGetApNum = 544; - Resp_WifiScanGetApRecords = 545; - Resp_WifiClearApList = 546; - - Resp_WifiRestore = 547; - Resp_WifiClearFastConnect = 548; - Resp_WifiDeauthSta = 549; - Resp_WifiStaGetApInfo = 550; - //Resp_WifiSetPs = 551; - //Resp_WifiGetPs = 552; - Resp_WifiSetProtocol = 553; - Resp_WifiGetProtocol = 554; - Resp_WifiSetBandwidth = 555; - Resp_WifiGetBandwidth = 556; - Resp_WifiSetChannel = 557; - Resp_WifiGetChannel = 558; - Resp_WifiSetCountry = 559; - Resp_WifiGetCountry = 560; - -// Resp_WifiSetPromiscuousRxCb = 561; - Resp_WifiSetPromiscuous = 561; - Resp_WifiGetPromiscuous = 562; - Resp_WifiSetPromiscuousFilter = 563; - Resp_WifiGetPromiscuousFilter = 564; - Resp_WifiSetPromiscuousCtrlFilter = 565; - Resp_WifiGetPromiscuousCtrlFilter = 566; - - Resp_WifiApGetStaList = 567; - Resp_WifiApGetStaAid = 568; - Resp_WifiSetStorage = 569; - Resp_WifiSetVendorIe = 570; -// Resp_WifiSetVendorIeCb = 571; - Resp_WifiSetEventMask = 571; - Resp_WifiGetEventMask = 572; - Resp_Wifi80211Tx = 573; - -// Resp_WifiSetCsiRxCb = 573; - Resp_WifiSetCsiConfig = 574; - Resp_WifiSetCsi = 575; - - Resp_WifiSetAntGpio = 576; - Resp_WifiGetAntGpio = 577; - Resp_WifiSetAnt = 578; - Resp_WifiGetAnt = 579; - - Resp_WifiGetTsfTime = 580; - Resp_WifiSetInactiveTime = 581; - Resp_WifiGetInactiveTime = 582; - Resp_WifiStatisDump = 583; - Resp_WifiSetRssiThreshold = 584; - - Resp_WifiFtmInitiateSession = 585; - Resp_WifiFtmEndSession = 586; - Resp_WifiFtmRespSetOffset = 587; - - Resp_WifiConfig11bRate = 588; - Resp_WifiConnectionlessModuleSetWakeInterval = 589; - Resp_WifiSetCountryCode = 590; - Resp_WifiGetCountryCode = 591; - Resp_WifiConfig80211TxRate = 592; - Resp_WifiDisablePmfConfig = 593; - Resp_WifiStaGetAid = 594; - Resp_WifiStaGetNegotiatedPhymode = 595; - Resp_WifiSetDynamicCs = 596; - Resp_WifiStaGetRssi = 597; - - Resp_WifiSetProtocols = 598; - Resp_WifiGetProtocols = 599; - Resp_WifiSetBandwidths = 600; - Resp_WifiGetBandwidths = 601; - - Resp_WifiSetBand = 602; - Resp_WifiGetBand = 603; - Resp_WifiSetBandMode = 604; - Resp_WifiGetBandMode = 605; - - Resp_GetCoprocessorFwVersion = 606; - - Resp_WifiScanGetApRecord = 607; - - /* Add new control path command response before Resp_Max - * and update Resp_Max */ - Resp_Max = 608; - - /** Event Msgs **/ - Event_Base = 768; - Event_ESPInit = 769; - Event_Heartbeat = 770; - Event_AP_StaConnected = 771; - Event_AP_StaDisconnected = 772; - Event_WifiEventNoArgs = 773; - Event_StaScanDone = 774; - Event_StaConnected = 775; - Event_StaDisconnected = 776; - - /* Add new control path command notification before Event_Max - * and update Event_Max */ - Event_Max = 777; -} - -message wifi_init_config { - int32 static_rx_buf_num = 1; /**< WiFi static RX buffer number */ - int32 dynamic_rx_buf_num = 2; /**< WiFi dynamic RX buffer number */ - int32 tx_buf_type = 3; /**< WiFi TX buffer type */ - int32 static_tx_buf_num = 4; /**< WiFi static TX buffer number */ - int32 dynamic_tx_buf_num = 5; /**< WiFi dynamic TX buffer number */ - int32 cache_tx_buf_num = 6; /**< WiFi TX cache buffer number */ - int32 csi_enable = 7; /**< WiFi channel state information enable flag */ - int32 ampdu_rx_enable = 8; /**< WiFi AMPDU RX feature enable flag */ - int32 ampdu_tx_enable = 9; /**< WiFi AMPDU TX feature enable flag */ - int32 amsdu_tx_enable = 10; /**< WiFi AMSDU TX feature enable flag */ - int32 nvs_enable = 11; /**< WiFi NVS flash enable flag */ - int32 nano_enable = 12; /**< Nano option for printf/scan family enable flag */ - int32 rx_ba_win = 13; /**< WiFi Block Ack RX window size */ - int32 wifi_task_core_id = 14; /**< WiFi Task Core ID */ - int32 beacon_max_len = 15; /**< WiFi softAP maximum length of the beacon */ - int32 mgmt_sbuf_num = 16; /**< WiFi management short buffer number, the minimum value is 6, the maximum value is 32 */ - uint64 feature_caps = 17; /**< Enables additional WiFi features and capabilities */ - bool sta_disconnected_pm = 18; /**< WiFi Power Management for station at disconnected status */ - int32 espnow_max_encrypt_num = 19; /**< Maximum encrypt number of peers supported by espnow */ - int32 magic = 20; /**< WiFi init magic number, it should be the last field */ -} - -message wifi_country { - bytes cc = 1; /**< country code string of 3 chars*/ - uint32 schan = 2; /**< start channel */ - uint32 nchan = 3; /**< total channel number */ - int32 max_tx_power = 4; /**< This field is used for getting WiFi maximum transmitting power, - call esp_wifi_set_max_tx_power to set the maximum transmitting power. */ - int32 policy = 5; /**< country policy */ -} - - -message wifi_active_scan_time { - uint32 min = 1; /**< minimum active scan time per channel, units: millisecond */ - uint32 max = 2; /**< maximum active scan time per channel, units: millisecond, values above 1500ms may - cause station to disconnect from AP and are not recommended. */ -} ; - -message wifi_scan_time { - wifi_active_scan_time active = 1; /**< active scan time per channel, units: millisecond. */ - uint32 passive = 2; /**< passive scan time per channel, units: millisecond, values above 1500ms may - cause station to disconnect from AP and are not recommended. */ -} - -message wifi_scan_config { - bytes ssid = 1; /**< SSID of AP 33char*/ - bytes bssid = 2; /**< MAC address of AP 6char */ - uint32 channel = 3; /**< channel, scan the specific channel */ - bool show_hidden = 4; /**< enable to scan AP whose SSID is hidden */ - int32 scan_type = 5; /**< scan type, active or passive */ - wifi_scan_time scan_time = 6; /**< scan time per channel */ - uint32 home_chan_dwell_time = 7; /**< time spent at home channel between scanning consecutive channels.*/ -} - -message wifi_he_ap_info { - //uint8_t bss_color:6; /**< an unsigned integer whose value is the BSS Color of the BSS corresponding to the AP */ - //uint8_t partial_bss_color:1; /**< indicate if an AID assignment rule based on the BSS color */ - //uint8_t bss_color_disabled:1; /**< indicate if the use of BSS color is disabled */ - uint32 bitmask = 1; /* Manually have to parse for above bits */ - uint32 bssid_index = 2; /**< in M-BSSID set, identifies the nontransmitted BSSID */ -} - -message wifi_ap_record { - bytes bssid = 1; /**< MAC address of AP 6char */ - bytes ssid = 2; /**< SSID of AP 33char */ - uint32 primary = 3; /**< channel of AP */ - int32 second = 4; /**< secondary channel of AP */ - int32 rssi = 5; /**< signal strength of AP */ - int32 authmode = 6; /**< authmode of AP */ - int32 pairwise_cipher = 7; /**< pairwise cipher of AP */ - int32 group_cipher = 8; /**< group cipher of AP */ - int32 ant = 9; /**< antenna used to receive beacon from AP */ - //uint32_t phy_11b:1; /**< bit: 0 flag to identify if 11b mode is enabled or not */ - //uint32_t phy_11g:1; /**< bit: 1 flag to identify if 11g mode is enabled or not */ - //uint32_t phy_11n:1; /**< bit: 2 flag to identify if 11n mode is enabled or not */ - //uint32_t phy_lr:1; /**< bit: 3 flag to identify if low rate is enabled or not */ - //uint32_t wps:1; /**< bit: 4 flag to identify if WPS is supported or not */ - //uint32_t ftm_responder:1; /**< bit: 5 flag to identify if FTM is supported in responder mode */ - //uint32_t ftm_initiator:1; /**< bit: 6 flag to identify if FTM is supported in initiator mode */ - //uint32_t reserved:25; /**< bit: 7..31 reserved */ - uint32 bitmask = 10; /* Manually have to parse for above bits */ - - wifi_country country = 11; /**< country information of AP */ - wifi_he_ap_info he_ap = 12; - uint32 bandwidth = 13; /**< For AP 20 MHz this value is set to 1. For AP 40 MHz this value is set to 2. - For AP 80 MHz this value is set to 3. For AP 160MHz this value is set to 4. - For AP 80+80MHz this value is set to 5*/ - uint32 vht_ch_freq1 = 14; /**< This fields are used only AP bandwidth is 80 and 160 MHz, to transmit the center channel - frequency of the BSS. For AP bandwidth is 80 + 80 MHz, it is the center channel frequency - of the lower frequency segment.*/ - uint32 vht_ch_freq2 = 15; /**< This fields are used only AP bandwidth is 80 + 80 MHz, and is used to transmit the center - channel frequency of the second segment. */ -} - -message wifi_scan_threshold { - int32 rssi = 1; /**< The minimum rssi to accept in the fast scan mode */ - int32 authmode = 2; /**< The weakest authmode to accept in the fast scan mode -Note: Incase this value is not set and password is set as per WPA2 standards(password len >= 8), -it will be defaulted to WPA2 and device won't connect to deprecated WEP/WPA networks. -Please set authmode threshold as WIFI_AUTH_WEP/WIFI_AUTH_WPA_PSK to connect to WEP/WPA networks */ -} - -message wifi_pmf_config { - bool capable = 1; /**< Deprecated variable. Device will always connect in PMF mode if other device also advertizes PMF capability. */ - bool required = 2; /**< Advertizes that Protected Management Frame is required. Device will not associate to non-PMF capable devices. */ -} - -message wifi_ap_config { - bytes ssid = 1; /**< SSID of ESP32 soft-AP. If ssid_len field is 0, this must be a Null terminated string. Otherwise, length is set according to ssid_len. 32 char*/ - bytes password = 2; /**< Password of ESP32 soft-AP. 64 char*/ - uint32 ssid_len = 3; /**< Optional length of SSID field. */ - uint32 channel = 4; /**< Channel of ESP32 soft-AP */ - int32 authmode = 5; /**< Auth mode of ESP32 soft-AP. Do not support AUTH_WEP in soft-AP mode */ - uint32 ssid_hidden = 6; /**< Broadcast SSID or not, default 0, broadcast the SSID */ - uint32 max_connection = 7; /**< Max number of stations allowed to connect in */ - uint32 beacon_interval = 8; /**< Beacon interval which should be multiples of 100. Unit: TU(time unit, 1 TU = 1024 us). Range: 100 ~ 60000. Default value: 100 */ - int32 pairwise_cipher = 9; /**< pairwise cipher of SoftAP, group cipher will be derived using this. - cipher values are valid starting from WIFI_CIPHER_TYPE_TKIP, enum values before that will be considered as invalid and default cipher suites(TKIP+CCMP) will be used. - Valid cipher suites in softAP mode are WIFI_CIPHER_TYPE_TKIP, WIFI_CIPHER_TYPE_CCMP and WIFI_CIPHER_TYPE_TKIP_CCMP. */ - bool ftm_responder = 10; /**< Enable FTM Responder mode */ - wifi_pmf_config pmf_cfg = 11; /**< Configuration for Protected Management Frame */ - int32 sae_pwe_h2e = 12; /**< Configuration for SAE PWE derivation method */ -} - -message wifi_sta_config { - bytes ssid = 1; /**< SSID of target AP. 32char */ - bytes password = 2; /**< Password of target AP. 64char */ - int32 scan_method = 3; /**< do all channel scan or fast scan */ - bool bssid_set = 4; /**< whether set MAC address of target AP or not. Generally, station_config.bssid_set needs to be 0, - and it needs to be 1 only when users need to check the MAC address of the AP.*/ - bytes bssid = 5; /**< MAC address of target AP 6char */ - uint32 channel = 6; /**< channel of target AP. Set to 1~13 to scan starting from the specified channel - before connecting to AP. If the channel of AP is unknown, set it to 0.*/ - uint32 listen_interval = 7; /**< Listen interval for ESP32 station to receive beacon when WIFI_PS_MAX_MODEM is set. -Units: AP beacon intervals. Defaults to 3 if set to 0. */ - int32 sort_method = 8; /**< sort the connect AP in the list by rssi or security mode */ - wifi_scan_threshold threshold = 9; /**< When sort_method is set, only APs which have an auth mode that is more secure - than the selected auth mode and a signal stronger than the minimum RSSI will be used. */ - wifi_pmf_config pmf_cfg = 10; /**< Configuration for Protected Management Frame. Will be advertized in RSN Capabilities in RSN IE. */ - //uint32_t rm_enabled:1; /**< Whether Radio Measurements are enabled for the connection */ - //uint32_t btm_enabled:1; /**< Whether BSS Transition Management is enabled for the connection */ - //uint32_t mbo_enabled:1; /**< Whether MBO is enabled for the connection */ - //uint32_t ft_enabled:1; /**< Whether FT is enabled for the connection */ - //uint32_t owe_enabled:1; /**< Whether OWE is enabled for the connection */ - //uint32_t transition_disable:1; /**< Whether to enable transition disable feature */ - //uint32_t reserved:26; /**< Reserved for future feature set */ - uint32 bitmask = 11; - int32 sae_pwe_h2e = 12; /**< Whether SAE hash to element is enabled */ - uint32 failure_retry_cnt = 13; /**< Number of connection retries station will do before moving to next AP. - scan_method should be set as WIFI_ALL_CHANNEL_SCAN to use this config. - Note: Enabling this may cause connection time to increase incase best AP doesn't behave properly. */ - //uint32_t he_dcm_set:1; /**< Whether DCM max.constellation for transmission and reception is set. */ - //uint32_t he_dcm_max_constellation_tx:2; /**< Indicate the max.constellation for DCM in TB PPDU the STA supported. 0: not supported. 1: BPSK, 2: QPSK, 3: 16-QAM. The default value is 3. */ - //uint32_t he_dcm_max_constellation_rx:2; /**< Indicate the max.constellation for DCM in both Data field and HE-SIG-B field the STA supported. 0: not supported. 1: BPSK, 2: QPSK, 3: 16-QAM. The default value is 3. */ - //uint32_t he_mcs9_enabled:1; /**< Whether to support HE-MCS 0 to 9. The default value is 0. */ - //uint32_t he_su_beamformee_disabled:1; /**< Whether to disable support for operation as an SU beamformee. */ - //uint32_t he_trig_su_bmforming_feedback_disabled:1; /**< Whether to disable support the transmission of SU feedback in an HE TB sounding sequence. */ - //uint32_t he_trig_mu_bmforming_partial_feedback_disabled:1; /**< Whether to disable support the transmission of partial-bandwidth MU feedback in an HE TB sounding sequence. */ - // uint32_t he_trig_cqi_feedback_disabled:1; /**< Whether to disable support the transmission of CQI feedback in an HE TB sounding sequence. */ - // uint32_t he_reserved:22; /**< Reserved for future feature set */ - uint32 he_bitmask = 14; - bytes sae_h2e_identifier = 15; /**< Password identifier for H2E. this needs to be null terminated string. SAE_H2E_IDENTIFIER_LEN chars */ -} - -message wifi_config { - oneof u { - wifi_ap_config ap = 1; /**< configuration of AP */ - wifi_sta_config sta = 2; /**< configuration of STA */ - } -} - -message wifi_sta_info { - bytes mac = 1; /**< mac address 6 char */ - int32 rssi = 2; /**< current average rssi of sta connected */ - //uint32_t phy_11b:1; /**< bit: 0 flag to identify if 11b mode is enabled or not */ - //uint32_t phy_11g:1; /**< bit: 1 flag to identify if 11g mode is enabled or not */ - //uint32_t phy_11n:1; /**< bit: 2 flag to identify if 11n mode is enabled or not */ - //uint32_t phy_lr:1; /**< bit: 3 flag to identify if low rate is enabled or not */ - //uint32_t phy_11x:1; /**< bit: 4 flag to identify identify if 11ax mode is enabled or not */ - //uint32_t is_mesh_child:1; /**< bit: 5 flag to identify mesh child */ - //uint32_t reserved:26; /**< bit: 6..31 reserved */ - uint32 bitmask = 3; -} - -message wifi_sta_list { - repeated wifi_sta_info sta = 1; /**< station list */ - int32 num = 2; /**< number of stations in the list (other entries are invalid) */ -} - -//message vendor_ie_data { -// uint32 element_id = 1; /**< Should be set to WIFI_VENDOR_IE_ELEMENT_ID (0xDD) */ -// uint32 length = 2; /**< Length of all bytes in the element data following this field. Minimum 4. */ -// bytes vendor_oui = 3; /**< Vendor identifier (OUI). 3 chars */ -// uint32 vendor_oui_type = 4; /**< Vendor-specific OUI type. */ -// bytes payload = 5; /**< Payload. Length is equal to value in 'length' field, minus 4. Note: Variable size */ -//} - -message wifi_pkt_rx_ctrl { - int32 rssi = 1; /**< 8bits Received Signal Strength Indicator(RSSI) of packet. unit: dBm */ - uint32 rate = 2; /**< 5bits PHY rate encoding of the packet. Only valid for non HT(11bg) packet */ - //uint32 :1; /**< reserved */ - uint32 sig_mode = 3; /**< 2bits 0: non HT(11bg) packet; 1: HT(11n) packet; 3: VHT(11ac) packet */ - //uint32 :16; /**< reserved */ - uint32 mcs = 4; /**< 7bits Modulation Coding Scheme. If is HT(11n) packet, shows the modulation, range from 0 to 76(MSC0 ~ MCS76) */ - uint32 cwb = 5; /**< 1bit Channel Bandwidth of the packet. 0: 20MHz; 1: 40MHz */ - //uint32 :16; /**< reserved */ - uint32 smoothing = 6; /**< 1bit reserved */ - uint32 not_sounding = 7; /**< 1bit reserved */ - //uint32 :1; /**< reserved */ - uint32 aggregation = 8; /**< 1bit Aggregation. 0: MPDU packet; 1: AMPDU packet */ - uint32 stbc = 9; /**< 2bits Space Time Block Code(STBC). 0: non STBC packet; 1: STBC packet */ - uint32 fec_coding = 10; /**< 1bit Flag is set for 11n packets which are LDPC */ - uint32 sgi = 11; /**< 1bit Short Guide Interval(SGI). 0: Long GI; 1: Short GI */ - int32 noise_floor = 12; /**< 8bits noise floor of Radio Frequency Module(RF). unit: dBm*/ - uint32 ampdu_cnt = 13; /**< 8bits ampdu cnt */ - uint32 channel = 14; /**< 4bits primary channel on which this packet is received */ - uint32 secondary_channel = 15; /**< 4bits secondary channel on which this packet is received. 0: none; 1: above; 2: below */ - //uint32 :8; /**< reserved */ - uint32 timestamp = 16; /**< 32bit timestamp. The local time when this packet is received. It is precise only if modem sleep or light sleep is not enabled. unit: microsecond */ - //uint32 :32; /**< reserved */ - //unsigned :32; /**< reserved */ - //unsigned :31; /**< reserved */ - uint32 ant = 17; /**< 1bit antenna number from which this packet is received. 0: WiFi antenna 0; 1: WiFi antenna 1 */ - uint32 sig_len = 18; /**< 12bits length of packet including Frame Check Sequence(FCS) */ - //unsigned :12; /**< reserved */ - uint32 rx_state = 19; /**< 8bits state of the packet. 0: no error; others: error numbers which are not public */ -} - -message wifi_promiscuous_pkt { - wifi_pkt_rx_ctrl rx_ctrl = 1; /**< metadata header */ - bytes payload = 2; /**< Note: variable length. Data or management payload. Length of payload is described by rx_ctrl.sig_len. Type of content determined by packet type argument of callback. */ -} - -message wifi_promiscuous_filter { - uint32 filter_mask = 1; /**< OR of one or more filter values WIFI_PROMIS_FILTER_* */ -} - -message wifi_csi_config { - bool lltf_en = 1; /**< enable to receive legacy long training field(lltf) data. Default enabled */ - bool htltf_en = 2; /**< enable to receive HT long training field(htltf) data. Default enabled */ - bool stbc_htltf2_en = 3; /**< enable to receive space time block code HT long training field(stbc-htltf2) data. Default enabled */ - bool ltf_merge_en = 4; /**< enable to generate htlft data by averaging lltf and ht_ltf data when receiving HT packet. Otherwise, use ht_ltf data directly. Default enabled */ - bool channel_filter_en = 5; /**< enable to turn on channel filter to smooth adjacent sub-carrier. Disable it to keep independence of adjacent sub-carrier. Default enabled */ - bool manu_scale = 6; /**< manually scale the CSI data by left shifting or automatically scale the CSI data. - If set true, please set the shift bits. false: automatically. true: manually. Default false */ - uint32 shift = 7; /**< manually left shift bits of the scale of the CSI data. The range of the left shift bits is 0~15 */ -} - -message wifi_csi_info { - wifi_pkt_rx_ctrl rx_ctrl = 1; /**< received packet radio metadata header of the CSI data */ - bytes mac = 2; /**< 6bits source MAC address of the CSI data */ - bytes dmac = 3; /**< 6bits destination MAC address of the CSI data */ - bool first_word_invalid = 4; /**< first four bytes of the CSI data is invalid or not */ - bytes buf = 5; /**< Note: variable length. buffer of CSI data */ - uint32 len = 6; /**< length of CSI data */ -} - -message wifi_ant_gpio { - uint32 gpio_select = 1; /**< 1bit Whether this GPIO is connected to external antenna switch */ - uint32 gpio_num = 2; /**< 7bits The GPIO number that connects to external antenna switch */ -} - -message wifi_ant_gpio_config { - repeated wifi_ant_gpio gpio_cfgs = 1; /**< The configurations of GPIOs that connect to external antenna switch */ -} - -message wifi_ant_config { - int32 rx_ant_mode = 1; /**< WiFi antenna mode for receiving */ - int32 rx_ant_default = 2; /**< Default antenna mode for receiving, it's ignored if rx_ant_mode is not WIFI_ANT_MODE_AUTO */ - int32 tx_ant_mode = 3; /**< WiFi antenna mode for transmission, it can be set to WIFI_ANT_MODE_AUTO only if rx_ant_mode is set to WIFI_ANT_MODE_AUTO */ - uint32 enabled_ant0 = 4; /**< 4bits Index (in antenna GPIO configuration) of enabled WIFI_ANT_MODE_ANT0 */ - uint32 enabled_ant1 = 5; /**< 4bits Index (in antenna GPIO configuration) of enabled WIFI_ANT_MODE_ANT1 */ -} - -message wifi_action_tx_req { - int32 ifx = 1; /**< WiFi interface to send request to */ - bytes dest_mac = 2; /**< 6bits Destination MAC address */ - bool no_ack = 3; /**< Indicates no ack required */ - //TODO - //wifi_action_rx_cb_t rx_cb; /**< Rx Callback to receive any response */ - uint32 data_len = 4; /**< Length of the appended Data */ - bytes data = 5; /**< note: variable length. Appended Data payload */ -} - -message wifi_ftm_initiator_cfg { - bytes resp_mac = 1; /**< 6bits MAC address of the FTM Responder */ - uint32 channel = 2; /**< Primary channel of the FTM Responder */ - uint32 frm_count = 3; /**< No. of FTM frames requested in terms of 4 or 8 bursts (allowed values - 0(No pref), 16, 24, 32, 64) */ - uint32 burst_period = 4; /**< Requested time period between consecutive FTM bursts in 100's of milliseconds (0 - No pref) */ -} - -message wifi_event_sta_scan_done { - uint32 status = 1; /**< status of scanning APs: 0 — success, 1 - failure */ - uint32 number = 2; /**< number of scan results */ - uint32 scan_id = 3; /**< scan sequence number, used for block scan */ -} - -message wifi_event_sta_connected { - bytes ssid = 1; /**< 32bytes SSID of connected AP */ - uint32 ssid_len = 2; /**< SSID length of connected AP */ - bytes bssid = 3; /**< 6bytes BSSID of connected AP*/ - uint32 channel = 4; /**< channel of connected AP*/ - int32 authmode = 5; /**< authentication mode used by AP*/ - int32 aid = 6; /**< authentication id assigned by the connected AP*/ -} - -message wifi_event_sta_disconnected { - bytes ssid = 1; /**< SSID of disconnected AP */ - uint32 ssid_len = 2; /**< SSID length of disconnected AP */ - bytes bssid = 3; /**< BSSID of disconnected AP */ - uint32 reason = 4; /**< reason of disconnection */ - int32 rssi = 5; /**< rssi of disconnection */ -} - -message wifi_event_sta_authmode_change { - int32 old_mode = 1; /**< the old auth mode of AP */ - int32 new_mode = 2; /**< the new auth mode of AP */ -} - -message wifi_event_sta_wps_er_pin { - bytes pin_code = 1; /**< 8bytes PIN code of station in enrollee mode */ -} - -message ap_cred { - bytes ssid = 1; /**< 32bytes SSID of AP */ - bytes passphrase = 2; /**< 64bytes Passphrase for the AP */ -} - -message wifi_event_sta_wps_er_success { - uint32 ap_cred_cnt = 1; /**< Number of AP credentials received */ - repeated ap_cred ap_creds = 2; /**< All AP credentials received from WPS handshake */ -} - -/** Argument structure for WIFI_EVENT_AP_PROBEREQRECVED event */ -message wifi_event_ap_probe_req_rx { - int32 rssi = 1; /**< Received probe request signal strength */ - uint32 mac = 2; /**< MAC address of the station which send probe request */ -} - -/** Argument structure for WIFI_EVENT_STA_BSS_RSSI_LOW event */ -message wifi_event_bss_rssi_low { - int32 rssi = 1; /**< RSSI value of bss */ -} - -message wifi_ftm_report_entry { - uint32 dlog_token = 1; /* *< Dialog Token of the FTM frame */ - int32 rssi = 2; /* *< RSSI of the FTM frame received */ - uint32 rtt = 3; /* *< Round Trip Time in pSec with a peer */ - /* TODO: uint32 is supported by proto? */ - uint64 t1 = 4; /* *< Time of departure of FTM frame from FTM Responder in pSec */ - uint64 t2 = 5; /* *< Time of arrival of FTM frame at FTM Initiator in pSec */ - uint64 t3 = 6; /* *< Time of departure of ACK from FTM Initiator in pSec */ - uint64 t4 = 7; /* *< Time of arrival of ACK at FTM Responder in pSec */ -} - -message wifi_event_ftm_report { - bytes peer_mac = 1; /* *< 6bytes MAC address of the FTM Peer */ - int32 status = 2; /* *< Status of the FTM operation */ - uint32 rtt_raw = 3; /* *< Raw average Round-Trip-Time with peer in Nano-Seconds */ - uint32 rtt_est = 4; /* *< Estimated Round-Trip-Time with peer in Nano-Seconds */ - uint32 dist_est = 5; /* *< Estimated one-way distance in Centi-Meters */ - repeated wifi_ftm_report_entry ftm_report_data = 6; /* *< Note var len Pointer to FTM Report with multiple entries, should be freed after use */ - uint32 ftm_report_num_entries = 7; /* *< Number of entries in the FTM Report data */ -} - -message wifi_event_action_tx_status { - int32 ifx = 1; /**< WiFi interface to send request to */ - uint32 context = 2; /**< Context to identify the request */ - bytes da = 3; /**< 6bytes Destination MAC address */ - uint32 status = 4; /**< Status of the operation */ -} - -message wifi_event_roc_done { - uint32 context = 1; /**< Context to identify the request */ -} - -message wifi_event_ap_wps_rg_pin { - bytes pin_code = 1; /**< 8bytes PIN code of station in enrollee mode */ -} - -message wifi_event_ap_wps_rg_fail_reason { - int32 reason = 1; /**< WPS failure reason wps_fail_reason_t */ - bytes peer_macaddr = 2; /**< 6bytes Enrollee mac address */ -} - -message wifi_event_ap_wps_rg_success { - bytes peer_macaddr = 1; /**< 6bytes Enrollee mac address */ -} - -message wifi_protocols { - uint32 ghz_2g = 1; /**< Represents 2.4 GHz protocol, support 802.11b or 802.11g or 802.11n or 802.11ax or LR mode */ - uint32 ghz_5g = 2; /**< Represents 5 GHz protocol, support 802.11a or 802.11n or 802.11ac or 802.11ax */ -} - -message wifi_bandwidths { - uint32 ghz_2g = 1; /* Represents 2.4 GHz bandwidth */ - uint32 ghz_5g = 2; /* Represents 5 GHz bandwidth */ -} - -/* internal supporting structures for Rpc */ -//message ScanResult { -// bytes bssid = 1; -// bytes ssid = 2; -// uint32 chnl = 3; -// int32 rssi = 4; -// int32 sec_prot = 5; -//} - -message ConnectedSTAList { - bytes mac = 1; - int32 rssi = 2; -} - - -/* Control path structures */ -/** Req/Resp structure **/ -message Rpc_Req_GetMacAddress { - int32 mode = 1; -} - -message Rpc_Resp_GetMacAddress { - bytes mac = 1; - int32 resp = 2; -} - -message Rpc_Req_GetMode { -} - -message Rpc_Resp_GetMode { - int32 mode = 1; - int32 resp = 2; -} - -message Rpc_Req_SetMode { - int32 mode = 1; -} - -message Rpc_Resp_SetMode { - int32 resp = 1; -} - -message Rpc_Req_GetPs { -} - -message Rpc_Resp_GetPs { - int32 resp = 1; - int32 type = 2; -} - -message Rpc_Req_SetPs { - int32 type = 1; -} - -message Rpc_Resp_SetPs { - int32 resp = 1; -} - -message Rpc_Req_SetMacAddress { - bytes mac = 1; - int32 mode = 2; -} - -message Rpc_Resp_SetMacAddress { - int32 resp = 1; -} - - -//message Rpc_Req_GetAPConfig { -//} -// -///* To be deprecated */ -//message Rpc_Resp_GetAPConfig { -// bytes ssid = 1; -// bytes bssid = 2; -// int32 rssi = 3; -// int32 chnl = 4; -// int32 sec_prot = 5; -// int32 resp = 6; -//} - -/* To be deprecated */ -//message Rpc_Req_ConnectAP { -// string ssid = 1; -// string pwd = 2; -// string bssid = 3; -// bool is_wpa3_supported = 4; -// int32 listen_interval = 5; -//} -// -//message Rpc_Resp_ConnectAP { -// int32 resp = 1; -// bytes mac = 2; -//} - -//message Rpc_Req_GetSoftAPConfig { -//} -// -//message Rpc_Resp_GetSoftAPConfig { -// bytes ssid = 1; -// bytes pwd = 2; -// int32 chnl = 3; -// int32 sec_prot = 4; -// int32 max_conn = 5; -// bool ssid_hidden = 6; -// int32 bw = 7; -// int32 resp = 8; -//} - -//message Rpc_Req_StartSoftAP { -// string ssid = 1; -// string pwd = 2; -// int32 chnl = 3; -// int32 sec_prot = 4; -// int32 max_conn = 5; -// bool ssid_hidden = 6; -// int32 bw = 7; -//} -// -//message Rpc_Resp_StartSoftAP { -// int32 resp = 1; -// bytes mac = 2; -//} - -//message Rpc_Req_ScanResult { -//} -// -//message Rpc_Resp_ScanResult { -// uint32 count = 1; -// repeated ScanResult entries = 2; -// int32 resp = 3; -//} - -//message Rpc_Req_SoftAPConnectedSTA { -//} -// -//message Rpc_Resp_SoftAPConnectedSTA { -// uint32 num = 1; -// repeated ConnectedSTAList stations = 2; -// int32 resp = 3; -//} - -message Rpc_Req_OTABegin { -} - -message Rpc_Resp_OTABegin { - int32 resp = 1; -} - -message Rpc_Req_OTAWrite { - bytes ota_data = 1; -} - -message Rpc_Resp_OTAWrite { - int32 resp = 1; -} - -message Rpc_Req_OTAEnd { -} - -message Rpc_Resp_OTAEnd { - int32 resp = 1; -} - -//message Rpc_Req_VendorIEData { -// int32 element_id = 1; -// int32 length = 2; -// bytes vendor_oui = 3; -// int32 vendor_oui_type = 4; -// bytes payload = 5; -//} -// -//message Rpc_Req_SetSoftAPVendorSpecificIE { -// bool enable = 1; -// int32 type = 2; -// int32 idx = 3; -// Rpc_Req_VendorIEData vendor_ie_data = 4; -//} -// -//message Rpc_Resp_SetSoftAPVendorSpecificIE { -// int32 resp = 1; -//} - -message Rpc_Req_WifiSetMaxTxPower { - int32 power = 1; -} - -message Rpc_Resp_WifiSetMaxTxPower { - int32 resp = 1; -} - -message Rpc_Req_WifiGetMaxTxPower { -} - -message Rpc_Resp_WifiGetMaxTxPower { - int32 power = 1; - int32 resp = 2; -} - -message Rpc_Req_ConfigHeartbeat { - bool enable = 1; - int32 duration = 2; -} - -message Rpc_Resp_ConfigHeartbeat { - int32 resp = 1; -} - -message Rpc_Req_WifiInit { - wifi_init_config cfg = 1; -} - -message Rpc_Resp_WifiInit { - int32 resp = 1; -} - -message Rpc_Req_WifiDeinit { -} - -message Rpc_Resp_WifiDeinit { - int32 resp = 1; -} - -message Rpc_Req_WifiSetConfig { - int32 iface = 1; - wifi_config cfg = 2; -} - -message Rpc_Resp_WifiSetConfig { - int32 resp = 1; -} - -message Rpc_Req_WifiGetConfig { - int32 iface = 1; -} - -message Rpc_Resp_WifiGetConfig { - int32 resp = 1; - int32 iface = 2; - wifi_config cfg = 3; -} - -message Rpc_Req_WifiConnect { -} - -message Rpc_Resp_WifiConnect { - int32 resp = 1; -} - -message Rpc_Req_WifiDisconnect { -} - -message Rpc_Resp_WifiDisconnect { - int32 resp = 1; -} - -message Rpc_Req_WifiStart { -} - -message Rpc_Resp_WifiStart { - int32 resp = 1; -} - -message Rpc_Req_WifiStop { -} - -message Rpc_Resp_WifiStop { - int32 resp = 1; -} - -message Rpc_Req_WifiScanStart { - wifi_scan_config config = 1; - bool block = 2; - int32 config_set = 3; -} - -message Rpc_Resp_WifiScanStart { - int32 resp = 1; -} - -message Rpc_Req_WifiScanStop { -} - -message Rpc_Resp_WifiScanStop { - int32 resp = 1; -} - -message Rpc_Req_WifiScanGetApNum { -} - -message Rpc_Resp_WifiScanGetApNum { - int32 resp = 1; - int32 number = 2; -} - -message Rpc_Req_WifiScanGetApRecords { - int32 number = 1; -} - -message Rpc_Resp_WifiScanGetApRecords { - int32 resp = 1; - int32 number = 2; - repeated wifi_ap_record ap_records = 3; -} - -message Rpc_Req_WifiScanGetApRecord { -} - -message Rpc_Resp_WifiScanGetApRecord { - int32 resp = 1; - wifi_ap_record ap_record = 2; -} - -message Rpc_Req_WifiClearApList { -} - -message Rpc_Resp_WifiClearApList { - int32 resp = 1; -} - -message Rpc_Req_WifiRestore { -} - -message Rpc_Resp_WifiRestore { - int32 resp = 1; -} - -message Rpc_Req_WifiClearFastConnect{ -} - -message Rpc_Resp_WifiClearFastConnect { - int32 resp = 1; -} - -message Rpc_Req_WifiDeauthSta { - int32 aid = 1; -} - -message Rpc_Resp_WifiDeauthSta { - int32 resp = 1; - int32 aid = 2; -} - -message Rpc_Req_WifiStaGetApInfo { -} - -message Rpc_Resp_WifiStaGetApInfo { - int32 resp = 1; - wifi_ap_record ap_record = 2; -} - -message Rpc_Req_WifiSetProtocol { - int32 ifx = 1; - int32 protocol_bitmap = 2; -} - -message Rpc_Resp_WifiSetProtocol { - int32 resp = 1; -} - -message Rpc_Req_WifiGetProtocol { - int32 ifx = 1; -} - -message Rpc_Resp_WifiGetProtocol { - int32 resp = 1; - int32 protocol_bitmap = 2; -} - -message Rpc_Req_WifiSetBandwidth { - int32 ifx = 1; - int32 bw = 2; -} - -message Rpc_Resp_WifiSetBandwidth { - int32 resp = 1; -} - -message Rpc_Req_WifiGetBandwidth { - int32 ifx = 1; -} - -message Rpc_Resp_WifiGetBandwidth { - int32 resp = 1; - int32 bw = 2; -} - -message Rpc_Req_WifiSetChannel { - int32 primary = 1; - int32 second = 2; -} - -message Rpc_Resp_WifiSetChannel { - int32 resp = 1; -} - -message Rpc_Req_WifiGetChannel { -} - -message Rpc_Resp_WifiGetChannel { - int32 resp = 1; - int32 primary = 2; - int32 second = 3; -} - -message Rpc_Req_WifiSetStorage { - int32 storage = 1; -} - -message Rpc_Resp_WifiSetStorage { - int32 resp = 1; -} - -message Rpc_Req_WifiSetCountryCode { - bytes country = 1; - bool ieee80211d_enabled = 2; -} - -message Rpc_Resp_WifiSetCountryCode { - int32 resp = 1; -} - -message Rpc_Req_WifiGetCountryCode { -} - -message Rpc_Resp_WifiGetCountryCode { - int32 resp = 1; - bytes country = 2; -} - -message Rpc_Req_WifiSetCountry { - wifi_country country = 1; -} - -message Rpc_Resp_WifiSetCountry { - int32 resp = 1; -} - -message Rpc_Req_WifiGetCountry { -} - -message Rpc_Resp_WifiGetCountry { - int32 resp = 1; - wifi_country country = 2; -} - -message Rpc_Req_WifiApGetStaList { -} - -message Rpc_Resp_WifiApGetStaList { - int32 resp = 1; - wifi_sta_list sta_list = 2; -} - -message Rpc_Req_WifiApGetStaAid { - bytes mac = 1; -} - -message Rpc_Req_WifiStaGetNegotiatedPhymode { -} - -message Rpc_Resp_WifiStaGetNegotiatedPhymode { - int32 resp = 1; - uint32 phymode = 2; -} - -message Rpc_Resp_WifiApGetStaAid { - int32 resp = 1; - uint32 aid = 2; -} - -message Rpc_Req_WifiStaGetRssi { -} - -message Rpc_Resp_WifiStaGetRssi { - int32 resp = 1; - int32 rssi = 2; -} - -message Rpc_Req_WifiStaGetAid { -} - -message Rpc_Resp_WifiStaGetAid { - int32 resp = 1; - uint32 aid = 2; -} - -message Rpc_Req_WifiSetProtocols { - int32 ifx = 1; - wifi_protocols protocols = 2; -} - -message Rpc_Resp_WifiSetProtocols { - int32 resp = 1; - uint32 ifx = 2; -} - -message Rpc_Req_WifiGetProtocols { - int32 ifx = 1; -} - -message Rpc_Resp_WifiGetProtocols { - int32 resp = 1; - int32 ifx = 2; - wifi_protocols protocols = 3; -} - -message Rpc_Req_WifiSetBandwidths { - int32 ifx = 1; - wifi_bandwidths bandwidths = 2; -} - -message Rpc_Resp_WifiSetBandwidths { - int32 resp = 1; - int32 ifx = 2; -} - -message Rpc_Req_WifiGetBandwidths { - int32 ifx = 1; -} - -message Rpc_Resp_WifiGetBandwidths { - int32 resp = 1; - int32 ifx = 2; - wifi_bandwidths bandwidths = 3; -} - -message Rpc_Req_WifiSetBand { - uint32 band = 1; -} - -message Rpc_Resp_WifiSetBand { - int32 resp = 1; -} - -message Rpc_Req_WifiGetBand { -} - -message Rpc_Resp_WifiGetBand { - int32 resp = 1; - uint32 band = 2; -} - -message Rpc_Req_WifiSetBandMode { - uint32 bandmode = 1; -} - -message Rpc_Resp_WifiSetBandMode { - int32 resp = 1; -} - -message Rpc_Req_WifiGetBandMode { -} - -message Rpc_Resp_WifiGetBandMode { - int32 resp = 1; - uint32 bandmode = 2; -} - -message Rpc_Req_GetCoprocessorFwVersion { -} - -message Rpc_Resp_GetCoprocessorFwVersion { - int32 resp = 1; - uint32 major1 = 2; - uint32 minor1 = 3; - uint32 patch1 = 4; -} - -/** Event structure **/ - -message Rpc_Event_WifiEventNoArgs { - int32 resp = 1; - int32 event_id = 2; -} - -message Rpc_Event_ESPInit { - bytes init_data = 1; -} - -message Rpc_Event_Heartbeat { - int32 hb_num = 1; -} - -message Rpc_Event_AP_StaDisconnected { - int32 resp = 1; - bytes mac = 2; - uint32 aid = 3; - bool is_mesh_child = 4; - uint32 reason = 5; -} - -message Rpc_Event_AP_StaConnected { - int32 resp = 1; - bytes mac = 2; - uint32 aid = 3; - bool is_mesh_child = 4; -} - -message Rpc_Event_StaScanDone { - int32 resp = 1; - wifi_event_sta_scan_done scan_done = 2; -} - -message Rpc_Event_StaConnected { - int32 resp = 1; - wifi_event_sta_connected sta_connected = 2; -} - -message Rpc_Event_StaDisconnected { - int32 resp = 1; - wifi_event_sta_disconnected sta_disconnected = 2; -} - -message Rpc { - /* msg_type could be req, resp or Event */ - RpcType msg_type = 1; - - /* msg id */ - RpcId msg_id = 2; - - /* UID of message */ - uint32 uid = 3; - - /* union of all msg ids */ - oneof payload { - /** Requests **/ - Rpc_Req_GetMacAddress req_get_mac_address = 257; - Rpc_Req_SetMacAddress req_set_mac_address = 258; - Rpc_Req_GetMode req_get_wifi_mode = 259; - Rpc_Req_SetMode req_set_wifi_mode = 260; - - //Rpc_Req_ScanResult req_scan_ap_list = 261; - //Rpc_Req_GetAPConfig req_get_ap_config = 262; - //Rpc_Req_ConnectAP req_connect_ap = 263; - //Rpc_Req_GetStatus req_disconnect_ap = 264; - - //Rpc_Req_GetSoftAPConfig req_get_softap_config = 265; - //Rpc_Req_SetSoftAPVendorSpecificIE req_set_softap_vendor_specific_ie = 266; - //Rpc_Req_StartSoftAP req_start_softap = 267; - //Rpc_Req_SoftAPConnectedSTA req_softap_connected_stas_list = 268; - //Rpc_Req_GetStatus req_stop_softap = 269; - - Rpc_Req_SetPs req_wifi_set_ps = 270; - Rpc_Req_GetPs req_wifi_get_ps = 271; - - Rpc_Req_OTABegin req_ota_begin = 272; - Rpc_Req_OTAWrite req_ota_write = 273; - Rpc_Req_OTAEnd req_ota_end = 274; - - Rpc_Req_WifiSetMaxTxPower req_set_wifi_max_tx_power = 275; - Rpc_Req_WifiGetMaxTxPower req_get_wifi_max_tx_power = 276; - Rpc_Req_ConfigHeartbeat req_config_heartbeat = 277; - - Rpc_Req_WifiInit req_wifi_init = 278; - Rpc_Req_WifiDeinit req_wifi_deinit = 279; - Rpc_Req_WifiStart req_wifi_start = 280; - Rpc_Req_WifiStop req_wifi_stop = 281; - Rpc_Req_WifiConnect req_wifi_connect = 282; - Rpc_Req_WifiDisconnect req_wifi_disconnect = 283; - Rpc_Req_WifiSetConfig req_wifi_set_config = 284; - Rpc_Req_WifiGetConfig req_wifi_get_config = 285; - - Rpc_Req_WifiScanStart req_wifi_scan_start = 286; - Rpc_Req_WifiScanStop req_wifi_scan_stop = 287; - Rpc_Req_WifiScanGetApNum req_wifi_scan_get_ap_num = 288; - Rpc_Req_WifiScanGetApRecords req_wifi_scan_get_ap_records = 289; - Rpc_Req_WifiClearApList req_wifi_clear_ap_list = 290; - - Rpc_Req_WifiRestore req_wifi_restore = 291; - Rpc_Req_WifiClearFastConnect req_wifi_clear_fast_connect = 292; - Rpc_Req_WifiDeauthSta req_wifi_deauth_sta = 293; - Rpc_Req_WifiStaGetApInfo req_wifi_sta_get_ap_info = 294; - - Rpc_Req_WifiSetProtocol req_wifi_set_protocol = 297; - Rpc_Req_WifiGetProtocol req_wifi_get_protocol = 298; - Rpc_Req_WifiSetBandwidth req_wifi_set_bandwidth = 299; - Rpc_Req_WifiGetBandwidth req_wifi_get_bandwidth = 300; - Rpc_Req_WifiSetChannel req_wifi_set_channel = 301; - Rpc_Req_WifiGetChannel req_wifi_get_channel = 302; - Rpc_Req_WifiSetCountry req_wifi_set_country = 303; - Rpc_Req_WifiGetCountry req_wifi_get_country = 304; - - Rpc_Req_WifiApGetStaList req_wifi_ap_get_sta_list = 311; - Rpc_Req_WifiApGetStaAid req_wifi_ap_get_sta_aid = 312; - Rpc_Req_WifiSetStorage req_wifi_set_storage = 313; - - Rpc_Req_WifiSetCountryCode req_wifi_set_country_code = 334; - Rpc_Req_WifiGetCountryCode req_wifi_get_country_code = 335; - Rpc_Req_WifiStaGetAid req_wifi_sta_get_aid = 338; - Rpc_Req_WifiStaGetNegotiatedPhymode req_wifi_sta_get_negotiated_phymode = 339; - - Rpc_Req_WifiStaGetRssi req_wifi_sta_get_rssi = 341; - - Rpc_Req_WifiSetProtocols req_wifi_set_protocols = 342; - Rpc_Req_WifiGetProtocols req_wifi_get_protocols = 343; - Rpc_Req_WifiSetBandwidths req_wifi_set_bandwidths = 344; - Rpc_Req_WifiGetBandwidths req_wifi_get_bandwidths = 345; - - Rpc_Req_WifiSetBand req_wifi_set_band = 346; - Rpc_Req_WifiGetBand req_wifi_get_band = 347; - Rpc_Req_WifiSetBandMode req_wifi_set_bandmode = 348; - Rpc_Req_WifiGetBandMode req_wifi_get_bandmode = 349; - - Rpc_Req_GetCoprocessorFwVersion req_get_coprocessor_fwversion = 350; - - Rpc_Req_WifiScanGetApRecord req_wifi_scan_get_ap_record = 351; - - /** Responses **/ - Rpc_Resp_GetMacAddress resp_get_mac_address = 513; - Rpc_Resp_SetMacAddress resp_set_mac_address = 514; - Rpc_Resp_GetMode resp_get_wifi_mode = 515; - Rpc_Resp_SetMode resp_set_wifi_mode = 516; - - //Rpc_Resp_ScanResult resp_scan_ap_list = 517; - //Rpc_Resp_GetAPConfig resp_get_ap_config = 518; - //Rpc_Resp_ConnectAP resp_connect_ap = 519; - //Rpc_Resp_GetStatus resp_disconnect_ap = 520; - - //Rpc_Resp_GetSoftAPConfig resp_get_softap_config = 521; - //Rpc_Resp_SetSoftAPVendorSpecificIE resp_set_softap_vendor_specific_ie = 522; - //Rpc_Resp_StartSoftAP resp_start_softap = 523; - //Rpc_Resp_SoftAPConnectedSTA resp_softap_connected_stas_list = 524; - //Rpc_Resp_GetStatus resp_stop_softap = 525; - - Rpc_Resp_SetPs resp_wifi_set_ps = 526; - Rpc_Resp_GetPs resp_wifi_get_ps = 527; - - Rpc_Resp_OTABegin resp_ota_begin = 528; - Rpc_Resp_OTAWrite resp_ota_write = 529; - Rpc_Resp_OTAEnd resp_ota_end = 530; - Rpc_Resp_WifiSetMaxTxPower resp_set_wifi_max_tx_power = 531; - Rpc_Resp_WifiGetMaxTxPower resp_get_wifi_max_tx_power = 532; - Rpc_Resp_ConfigHeartbeat resp_config_heartbeat = 533; - - Rpc_Resp_WifiInit resp_wifi_init = 534; - Rpc_Resp_WifiDeinit resp_wifi_deinit = 535; - Rpc_Resp_WifiStart resp_wifi_start = 536; - Rpc_Resp_WifiStop resp_wifi_stop = 537; - Rpc_Resp_WifiConnect resp_wifi_connect = 538; - Rpc_Resp_WifiDisconnect resp_wifi_disconnect = 539; - Rpc_Resp_WifiSetConfig resp_wifi_set_config = 540; - Rpc_Resp_WifiGetConfig resp_wifi_get_config = 541; - - Rpc_Resp_WifiScanStart resp_wifi_scan_start = 542; - Rpc_Resp_WifiScanStop resp_wifi_scan_stop = 543; - Rpc_Resp_WifiScanGetApNum resp_wifi_scan_get_ap_num = 544; - Rpc_Resp_WifiScanGetApRecords resp_wifi_scan_get_ap_records = 545; - Rpc_Resp_WifiClearApList resp_wifi_clear_ap_list = 546; - - Rpc_Resp_WifiRestore resp_wifi_restore = 547; - Rpc_Resp_WifiClearFastConnect resp_wifi_clear_fast_connect = 548; - Rpc_Resp_WifiDeauthSta resp_wifi_deauth_sta = 549; - Rpc_Resp_WifiStaGetApInfo resp_wifi_sta_get_ap_info = 550; - - Rpc_Resp_WifiSetProtocol resp_wifi_set_protocol = 553; - Rpc_Resp_WifiGetProtocol resp_wifi_get_protocol = 554; - Rpc_Resp_WifiSetBandwidth resp_wifi_set_bandwidth = 555; - Rpc_Resp_WifiGetBandwidth resp_wifi_get_bandwidth = 556; - Rpc_Resp_WifiSetChannel resp_wifi_set_channel = 557; - Rpc_Resp_WifiGetChannel resp_wifi_get_channel = 558; - Rpc_Resp_WifiSetCountry resp_wifi_set_country = 559; - Rpc_Resp_WifiGetCountry resp_wifi_get_country = 560; - - Rpc_Resp_WifiApGetStaList resp_wifi_ap_get_sta_list = 567; - Rpc_Resp_WifiApGetStaAid resp_wifi_ap_get_sta_aid = 568; - Rpc_Resp_WifiSetStorage resp_wifi_set_storage = 569; - - Rpc_Resp_WifiSetCountryCode resp_wifi_set_country_code = 590; - Rpc_Resp_WifiGetCountryCode resp_wifi_get_country_code = 591; - Rpc_Resp_WifiStaGetAid resp_wifi_sta_get_aid = 594; - Rpc_Resp_WifiStaGetNegotiatedPhymode resp_wifi_sta_get_negotiated_phymode = 595; - - Rpc_Resp_WifiStaGetRssi resp_wifi_sta_get_rssi = 597; - - Rpc_Resp_WifiSetProtocols resp_wifi_set_protocols = 598; - Rpc_Resp_WifiGetProtocols resp_wifi_get_protocols = 599; - Rpc_Resp_WifiSetBandwidths resp_wifi_set_bandwidths = 600; - Rpc_Resp_WifiGetBandwidths resp_wifi_get_bandwidths = 601; - - Rpc_Resp_WifiSetBand resp_wifi_set_band = 602; - Rpc_Resp_WifiGetBand resp_wifi_get_band = 603; - Rpc_Resp_WifiSetBandMode resp_wifi_set_bandmode = 604; - Rpc_Resp_WifiGetBandMode resp_wifi_get_bandmode = 605; - - Rpc_Resp_GetCoprocessorFwVersion resp_get_coprocessor_fwversion = 606; - - Rpc_Resp_WifiScanGetApRecord resp_wifi_scan_get_ap_record = 607; - - /** Notifications **/ - Rpc_Event_ESPInit event_esp_init = 769; - Rpc_Event_Heartbeat event_heartbeat = 770; - Rpc_Event_AP_StaConnected event_ap_sta_connected = 771; - Rpc_Event_AP_StaDisconnected event_ap_sta_disconnected = 772; - Rpc_Event_WifiEventNoArgs event_wifi_event_no_args = 773; - Rpc_Event_StaScanDone event_sta_scan_done = 774; - Rpc_Event_StaConnected event_sta_connected = 775; - Rpc_Event_StaDisconnected event_sta_disconnected = 776; - } -} - - -//message req_w_set_config { -// int32 iface = 1; -// wifi_config cfg = 2; -//} -// -//message rsp_w_set_config { -// int32 resp = 1; -//} -// -//message req_w_get_config { -// int32 iface = 1; -//} -// -//message rsp_w_get_config { -// int32 resp = 1; -// wifi_config cfg = 2; -//} -// -//message req_w_start { -//} -// -//message rsp_w_start { -// int32 resp = 1; -//} -// -//message evt_w_sta_connected { -// int32 resp = 1; -//} -// -//message evt_w_sta_disconnected { -// int32 resp = 1; -//} -// -//message evt_w_sta_start { -// int32 resp = 1; -//} -// -//message evt_w_sta_stop { -// int32 resp = 1; -//} -// -//message evt_w_ready { -// int32 resp = 1; -//} - -//message { -// int32 resp = 1; -//} - - - - - - - -//message Rpc_Resp_GetMode { -// int32 mode = 1; -// int32 resp = 2; -//} -// -//message Rpc_Req_SetMode { -//} -// -//message Rpc_Resp_SetMode { -// int32 resp = 1; -//} diff --git a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/.commit_docs.sh b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/.commit_docs.sh deleted file mode 100644 index 048a81b..0000000 --- a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/.commit_docs.sh +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/bash -e - -# from git-sh-setup.sh -require_clean_work_tree () { - git rev-parse --verify HEAD >/dev/null || exit 1 - git update-index -q --ignore-submodules --refresh - err=0 - - if ! git diff-files --quiet --ignore-submodules - then - echo >&2 "Cannot $0: You have unstaged changes." - err=1 - fi - - if ! git diff-index --cached --quiet --ignore-submodules HEAD -- - then - if [ $err = 0 ] - then - echo >&2 "Cannot $0: Your index contains uncommitted changes." - else - echo >&2 "Additionally, your index contains uncommitted changes." - fi - err=1 - fi - - if [ $err = 1 ] - then - test -n "$2" && echo >&2 "$2" - exit 1 - fi -} - -require_clean_work_tree - -if ! which doxygen >/dev/null; then - echo "Error: doxygen is required" - exit 1 -fi - -DOXYGEN_VERSION="$(doxygen --version)" - -DOC_BRANCH="gh-pages" -ORIG_BRANCH="$(git rev-parse --abbrev-ref HEAD)" -ORIG_COMMIT="$(git describe --match=NeVeRmAtCh --always --abbrev=40 --dirty)" - -TOP="$(pwd)" -export GIT_DIR="$TOP/.git" - -TMPDIR="$(mktemp --tmpdir=$TOP -d)" -HTMLDIR="$TMPDIR/_build/html" -INDEX_FILE="$GIT_DIR/index.${DOC_BRANCH}" - -rm -f "$INDEX_FILE" - -trap "{ cd $TOP; git checkout --force ${ORIG_BRANCH}; rm -f $INDEX_FILE; rm -rf $TMPDIR; }" EXIT - -cd "$TMPDIR" -git reset --hard HEAD - -./autogen.sh -mkdir _build -cd _build -../configure -make html - -if ! git checkout "${DOC_BRANCH}"; then - git checkout --orphan "${DOC_BRANCH}" -fi - -touch "$HTMLDIR/.nojekyll" - -GIT_INDEX_FILE="$INDEX_FILE" GIT_WORK_TREE="$HTMLDIR" \ - git add --no-ignore-removal . -GIT_INDEX_FILE="$INDEX_FILE" GIT_WORK_TREE="$HTMLDIR" \ - git commit -m "Rebuild html documentation from commit ${ORIG_COMMIT} using Doxygen ${DOXYGEN_VERSION}" diff --git a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/.gitignore b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/.gitignore deleted file mode 100644 index 9733625..0000000 --- a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/.gitignore +++ /dev/null @@ -1,43 +0,0 @@ -*~ -.*swp -*.la -*.gcda -*.gcno -*.lo -*.log -*.o -*.tar.gz -*.trs -.deps/ -.dirstamp -.libs/ -/Doxyfile -/Makefile -/Makefile.in -/aclocal.m4 -/autom4te.cache -/build-aux -/config.* -/configure -/doxygen-doc -/html -/libtool -/protobuf-c-*-coverage.info -/protobuf-c-*-coverage/ -/stamp-h1 -/stamp-html -/test-suite.log -TAGS -protobuf-c/libprotobuf-c.pc -protoc-c/protoc-c -protoc-c/protoc-gen-c -t/generated-code/test-generated-code -t/generated-code2/cxx-generate-packed-data -t/generated-code2/test-full-cxx-output.inc -t/generated-code2/test-generated-code2 -t/generated-code3/test-generated-code3 -t/version/version -*.pb-c.c -*.pb-c.h -*.pb.cc -*.pb.h diff --git a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/CONTRIBUTING.md b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/CONTRIBUTING.md deleted file mode 100644 index ceaba8f..0000000 --- a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/CONTRIBUTING.md +++ /dev/null @@ -1,5 +0,0 @@ -## Contributing - -The most recently released `protobuf-c` version is kept on the `master` branch, while the `next` branch is used for commits targeted at the next release. Please base patches and pull requests against the `next` branch. __Do not open pull requests against master!__ - -Copyright to all contributions are retained by the original author, but must be licensed under the terms of the [BSD-2-Clause](http://opensource.org/licenses/BSD-2-Clause) license. diff --git a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/ChangeLog b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/ChangeLog deleted file mode 100644 index 91164dd..0000000 --- a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/ChangeLog +++ /dev/null @@ -1,564 +0,0 @@ -protobuf-c (1.4.1) - - [ Robert Edmonds ] - * Release 1.4.1 - - [ Todd C. Miller ] - * Only shift unsigned values to avoid implementation-specific behavior - (#506, #508). - * Fix regression with zero-length messages introduced in protobuf-c PR 500. - * Fix a clang analyzer 14 warning about a possible NULL deref (#512, #514). - - [ steed717 ] - * Fix unsigned integer overflow (#499, #513). - -protobuf-c (1.4.0) - - [ Robert Edmonds ] - * Release 1.4.0. - - [ Ilya Lipnitsky ] - * c_message.cc: Resolve name conflict between certain enums and oneofs - (#427). - * protobuf-c.h: Fix Windows DLL export issue with the - protobuf_c_empty_string symbol (#428). - * Standardize pkg-config for use by autotools and cmake, fix cmake tests - (#425). - * protobuf-c.c: Cast %lu args to unsigned long int (#429). - * protoc-c: Remove leading underscores from structs (#430). - * protoc-c: Fix shared lib build on windows, migrate from Travis CI to - GitHub Actions (#459). - * protobuf-c: Don't use ProtobufCWireType internally (#463). - * protoc-c: Add custom options support (#466). - * protobuf-c.c: Fix packed repeated bool parsing (#467). - - [ Markus Engel ] - * Pack nested messages inline (#431). - - [ Daniel Axtens ] - * Travis CI: Test on other platforms (#438). - - [ Adam Cozzette ] - * Update the generator to fully qualify std::string (#443). - - [ Piotr Pietraszkiewicz ] - * Install MSVC debug symbols alongside the protobuf-c.lib file (#456). - - [ ihsinme ] - * Fix invalid unsigned arithmetic (#455). - - [ Wolfram Rösler ] - * Avoid "unused function parameter" compiler warning (#453). - -protobuf-c (1.3.3) - - [ Robert Edmonds ] - * Release 1.3.3. - - * Fix build failure on protobuf 2.x (#398). - - [ msshapira ] - * CMake: Fix support for MSVC static build (#350). - - [ Adam Cozzette ] - * Fix some test assertions in test-generated-code2.c (#392). - - [ Ilya Lipnitskiy ] - * protobuf-c.c: Make zigzag encoding more compact (#400). - - [ Markus Engel ] - * CMake: Fix endianness check. - -protobuf-c (1.3.2) - - [ Robert Edmonds ] - * Release 1.3.2. - - * Use protobuf 3.7.1 in the Travis-CI environment (#368). - - * Fix test suite build failure on newer versions of protobuf (#369). - - [ Ilya Lipnitskiy ] - * Fix proto3 repeated scalar field default packing behavior (#330, #377). - - [ Adam Cozzette ] - * Fix out-of-bounds read in scan_length_prefixed_data() (#375, #376). - - [ Jurriaan Bremer ] - * Fix -Wdeclaration-after-statement warning in parse_oneof_member() (#360). - - [ Hayri Ugur Koltuk ] - * Fix SIGSEGV in protobuf_c_message_check() on messages with unpopulated - oneof members (#358). - - [ Italo Guerrieri ] - * Do not allow tag values of 0 in protobuf messages, as these are not - allowed by proto2 or proto3 (#299). - -protobuf-c (1.3.1) - - [ Robert Edmonds ] - * Release 1.3.1. - - * Restore protobuf-2.x compatibility (#284, #285). - - * Use xenial and protobuf 3.6.1 in the Travis-CI environment (#332). - - * Convert uses of protobuf's scoped_ptr.h to C++11 std::unique_ptr, needed - to compile against protobuf 3.6.1 (#320, #333). - - * Use AX_CXX_COMPILE_STDCXX macro to enable C++11 support in old compilers - (#312, #317, #327, #334). - - [ Fredrik Gustafsson ] - * Add std:: to some types (#294, #305, #309). - - [ Sam Collinson ] - * Check the return value of int_range_lookup before using as an array index; - it can return -1 (#315). - - [ Matthias Dittrich ] - * Fix compilation on mingw by using explicit protoc --plugin=NAME=PATH syntax - in Makefile.am (#289, #290). - -protobuf-c (1.3.0) - - [ Robert Edmonds ] - * Release 1.3.0. - - * Add test case for the issue in #220 (#254). - - * Fix issue #251, "Bad enums with multiple oneofs" (#256). - - * Add warning flags to my_CFLAGS (#257). - - * Fix namespace errors when compiled with latest protobuf (#280). - - * Bump minimum required header version for proto3 syntax (#282). - - [ Paolo Borelli ] - * Turn the compiler into a protoc plugin (#206). This allows the protobuf-c - compiler to be invoked as "protoc --c_out=...". For backwards - compatibility, we still ship a protoc-c command, but it's a symlink to the - protoc-gen-c binary. - - * proto3 support (#228). - - * Remove leftover FIXME comment (#258). - - * Fix proto3 "is zeroish" evaluation (#264). - - * Small cleanup in oneof handling (#265). - - * Rework is_zeroish one more time (#267). - - * proto3: make strings default to "" instead of NULL (#274). - - [ Tomek Wasilczyk ] - * Fix -Wsign-compare warnings (#213). - - * Fix ISO C90 -Wdeclaration-after-statement warnings (#214). - - * Fix bigendian -Wunused-label warning (#215). - - [ Ilya Lipnitsky ] - * protoc-c/c_message.cc: Force int size on oneof enums (#221). Fixes wrong - enum generation and handling for onceof cases (#220). - - [ Adnan ] - * Fix cmake build if built as part of an external project (#231). - - [ Gregory Detal ] - * Remove .pb.{cc,h} in distdir instead of top_distdir in order to prevent - removing files from other projects when protobuf-c is included as an - autotools subproject (#232). - - [ Ben Farnham ] - * Relax autoconf constraint from v2.64 to v2.63 so that it works on older - Linux distros (#233). - - [ Thomas Köckerbauer ] - * rm argument fix for Solaris (#234). - - * Add 'const' qualifier to 'init_value' variable in generated files (#236). - - [ Richard Kettlewell ] - * Document and extend the effect of passing NULL to ..._free_unpacked - functions (#255). - - [ Alex Milich ] - * CMake: Workaround for static builds that use MSVC (#243). - - [ Josh Junon ] - * CMake: Allow protobuf-c to be included via include_subdirectory (#245). - - [ Alexei Kasatkin ] - * CMake: Windows fixes (#266). - -protobuf-c (1.2.1) - - [ Robert Edmonds ] - * Release 1.2.1. - - [ Paolo Borelli ] - * protoc-c: Generate code that uses the universal zero initializer {0} when - initializing a oneof union (#187, #205). - -protobuf-c (1.2.0) - - [ Robert Edmonds ] - * Release 1.2.0. - - [ Ilya Lipnitsky ] - * Implement the "optimize_for = CODE_SIZE" option (#183). - - * Eliminate undefined behavior in zigzag functions (#198). - - * Pack negative enum values correctly (#199). - - [ Peter Leschev ] - * Fix protobuf_c_message_get_packed_size() on 16-bit systems (#196, #197). - - [ Diego Elio Pettenò ] - * Update link to Autotools Mythbuster to canonical site (#201). - - [ Zex Li ] - * Skip test suite when cross-compiling (#184). - -protobuf-c (1.1.1) - - [ Robert Edmonds ] - * Release 1.1.1. - - * Use protobuf 2.6.1 in the Travis-CI environment. - - [ Ilya Lipnitskiy ] - * Munge C block comment delimiters in protobuf comments, preventing syntax - errors in generated header files (Issue #180, #185). - - * Add static qualifier to ProtobufCEnumValue and ProtobufCEnumValueIndex - variables in generated output. - - [ Oleg Efimov ] - * Fix -Wpointer-sign compiler diagnostics in the test suite. - - * Check for NULL pointers in protobuf_c_message_free_unpacked() - (Issue #177). - - * Exclude protoc-c and downloaded protobuf sources from Coveralls report. - - [ Andrey Myznikov ] - * Fix incorrect 'short_name' field values in ProtobufCServiceDescriptor - variables in generated output. - -protobuf-c (1.1.0) - - [ Robert Edmonds ] - * Release 1.1.0. - - [ Ilya Lipnitskiy ] - * Fix a bug when merging optional byte fields. - - * Documentation updates. - - * Implement oneof support (Issue #174). Protobuf 2.6.0 or newer is now - required to build protobuf-c. - - * Print leading comments for enum, message, and field definitions into - generated header files (Issue #175). - -protobuf-c (1.0.2) - - [ Robert Edmonds ] - * Release 1.0.2. - - [ Ilya Lipnitskiy ] - * Fix a build failure with Protobuf 2.6.0 related to aliased enum constants - (Issue #163). - - * Protobuf 2.5.0 or newer is now required to build protobuf-c (Issue #166). - This is due to the fix for #163. - - [ Alexei Kasatkin ] - * Eliminate void pointer arithmetic (Issue #167). - - * Always define PROTOBUF_C__DEPRECATED, even on compilers that are not GCC - (Issue #167). - - * Work around the lack of the 'inline' keyword in Microsoft compilers - (Issue #167). - - * Add a CMakeLists.txt file as a fallback build system for Windows - (Issue #168). - - [ Natanael Copa ] - * Fix a build failure in the test suite that occurred with a parallel make - running on a system with a large number of CPUs (Issue #156, #169). - -protobuf-c (1.0.1) - - [ Robert Edmonds ] - * Explicitly set the .data field of ProtobufCBinaryData's to NULL when - unpacking a zero length byte string (Issue #157). - -protobuf-c (1.0.0) - - [ Andrei Nigmatulin ] - * Append "u", "ull", and "ll" integer literal suffixes for uint32, uint64, - and int64 default values in generated code, in order to avoid "integer - constant is so large that it is unsigned" compiler warnings. - (Issue #136.) - - * Revert the problematic hash-based required field detection. - (Related to Issue #60, #79, #137.) - - * Replace the 'packed' member of ProtobufCFieldDescriptor with a 'flags' - word. Define flags for packed and deprecated fields. (Issue #138.) - - [ Dave Benson ] - * Treat a "length-prefixed" wire-type message for a repeated field as - packed-repeated whenever it makes sense (for all types other than - messages, strings, and bytes). - - * Switch to New BSD license. - - * Add protobuf_c_message_check(). - - * Compile error in packing 64-bit versions on some platforms - (srobbins99: Issue #68 Comment 1). - - * Fix for memory error if the required-field check fails. See Issue #63 - for demo (w/ nice test case by dror.harari). - - * Add PROTOBUF_C_{MAJOR,MINOR} for compile-time checks and - protobuf_c_{major,minor} for checks about the running library - (Issue #53). - - * Use a small constant-size hash-table instead of alloca() for detecting - required fields, and it also prevents us from using too much stack, etc. - (Related to Issue #60, #79). - - * Add a macro to ensure enums are the size of ints (Issue #69). - - [ Ilya Lipnitskiy ] - * Travis-CI integration. - - * Add source .proto filename to generated files. - - * Add protobuf-c version to protoc-c --version output (Issue #52). - - * For embedded submessage fields, merge multiple instances of the same - field, per the protobuf documentation (Issue #91). - - * Don't print unpack errors by default. - - * Optionally allow running the test suite under valgrind with ./configure - --enable-valgrind-tests. (Based on valgrind-tests.m4 from gnulib.) - - [ Kevin Lyda ] - * Autoconf portability fixes. - - * Add doxygen detection and make targets to the build system. - - * Doxygen documentation for the libprotobuf-c public API (Issue #132). - - [ Nick Galbreath ] - * Prevent possible overflow on 64-bit systems (Issue #106). - - [ Robert Edmonds ] - * Remove CMake (Issue #87). - - * Modernize the build system. - - Don't generate any diagnostics when building the build system with - modern autotools (Issue #89). - - - Use the PKG_CHECK_MODULES macro to locate protobuf. - - - Use the AC_C_BIGENDIAN macro to detect endianness, rather than custom - code. - - - Use the automake silent-rules option so the build output is actually - readable. - - - Generate our own pkg-config .pc files. - - * Reorganize the source tree. This affects the public protobuf-c header - path, which is now . A compatibility symlink from - to has been installed so that existing - code will continue to compile. New code should at some point begin using - the new include path, i.e., "#include " rather - than "#include ". - - * The RPC code has been split out into a separate project, protobuf-c-rpc. - - * Fix a potential use of an unitialized value in protobuf_c_message_unpack() - and several memory leaks in protoc-c, discovered by a commercial static code - analysis tool. - - * Bump the libprotobuf-c SONAME. - - * Begin versioning the library's symbols. (Based on ld-version-script.m4 - from gnulib.) - - * Preserve case in enum value names generated by protoc-c (Issue #129). - Reported by Oleg Efimov. - - * Add library functions protobuf_c_version() and protobuf_c_version_string() - for retrieving the version of the compiled library, and header macros - PROTOBUF_C_VERSION and PROTOBUF_C_VERSION_STRING for retrieving the - version of the header file. This replaces the interfaces for retrieving - the protobuf-c version numbers in Issue #53. - - * Add a version guard that ensures that the output of protoc-c is only - compiled against a protobuf-c header file from the exact same protobuf-c - release. - - * Add a --enable-code-coverage option to configure, which enables a - "make check-code-coverage" build target. This generates a code coverage - report and requires the lcov tool to be installed. - - * Remove the old DocBook documentation in doc/c-code-generator.{html,xml}. - Relevant material has been updated and incorporated into the Doxygen - documentation in the protobuf-c header file. - - * Remove the protobuf_c_default_allocator and protobuf_c_system_allocator - global variables from the exported library interface. All exported library - functions that need to perform dynamic memory allocation receive a - user-provided ProtobufCAllocator* parameter. If this parameter is NULL, - the system's default memory allocator will be used. - - Client code that previously passed "&protobuf_c_system_allocator" to - protobuf-c library functions taking a ProtobufCAllocator* argument should - be updated to pass "NULL" instead. - - Client code that previously overrode protobuf_c_default_allocator with - custom allocation functions and passed NULL as the ProtobufCAllocator* - argument to protobuf-c library functions should be updated to instead - enclose the custom allocation functions in a ProtobufCAllocator struct and - pass this object to protobuf-c library functions taking a - ProtobufCAllocator* parameter. - - * Update copyright and license statements throughout. The original - protobuf code released by Google was relicensed from Apache-2.0 to - BSD-3-Clause. Dave Benson also converted his license from BSD-3-Clause - to BSD-2-Clause. - - [ Tomasz Wasilczyk ] - * Don't export protobuf_c_message_init_generic() as an external symbol. - - * Don't use C++ style comments in C code. - - * Fix -Wcast-align warnings when compiled with clang. - -protobuf-c (0.15) - - make protobuf_c_message_init() into a function (Issue #49, daveb) - - Fix for freeing memory after unpacking bytes w/o a default-value. - (Andrei Nigmatulin) - - minor windows portability issues (use ProtobufC_FD) (Pop Stelian) - - --with-endianness={little,big} (Pop Stelian) - - bug setting up values of has_idle in public dispatch, - make protobuf_c_dispatch_run() use only public members (daveb) - - provide cmake support and some Windows compatibility (Nikita Manovich) - -protobuf-c (0.14) - - build fix (missing dependency in test directory) - - add generation / installation of pkg-config files. (Bobby Powers) - - support for packed repeated fields (Dave Benson) - - bug in protobuf_c_dispatch_close_fd(), which usually only - showed up in later function calls. - - support for deprecated fields -- enable a GCC warning - if a field has the "deprecated" option enabled. (Andrei Nigmatulin) - - hackery to try to avoid touching inttypes.h on windows (Issue #41) - - fix for protobuf_c_message_unpack() to issue error if any - "required" field is missing in input stream. (Andrei Nigmatulin) - -protobuf-c (0.13) - - Fix for when the number of connections gets too great in RPC. - (Leszek Swirski) (issue #32) - - Add --disable-protoc to only build libprotobuf-c (daveb) - - Bug fixes for protobuf_c_enum_descriptor_get_value_by_name() - and protobuf_c_service_descriptor_get_method_by_name() - - if descriptor->message_init != NULL, use it from unpack() - as an optimization (daveb) - - implement protobuf_c_{client,server}_set_error_handler() - -protobuf-c (0.12) - - for field names which are reserved words, use the real name - given in the protobuf-c file, not the mangled name which - is the name of the member in the C structure. (Andrei Nigmatulin) - - add protobuf_c_message_init() function; add virtual function - that implements it efficiently. (Andrei Nigmatulin) - - bug fix for sfixed32, fixed32, float wire-types on - big-endian platforms (Robert Edmonds) - - compile with the latest protobuf (the header file wire_format_inl.h - is now wire_format.h) (Robert Edmonds) - -protobuf-c (0.11) - - allow CFLAGS=-DPRINT_UNPACK_ERRORS=0 to suppress - unpack warnings from being printed at compile time (Andrei Nigmatulin) - - give error if an unknown wire-type is encountered (Andrei Nigmatulin) - - fix technically possible overflows during unpack of very - large messages (Andrei Nigmatulin) - - [UNFINISHED] windows RPC work - - use automake's "foreign" mode from within configure.ac - and add version information to the library (Robert Edmonds) - - ProtobufCServiceDescriptor::method_indices_by_name: missing - const. (Issue 21) - - Update to support new UnknownFields API. (fix by dcreager) (Issue 20) - -protobuf-c (0.10) - - build issue on platforms which don't compute library dependencies - automatically. - - fix for certain types of corrupt messages (Landon Fuller) (issue 16) - -protobuf-c (0.9) - - build issue: needed $(EXEEXT) in dependency lists for cygwin - - bug fix: protobuf_c_service_get_method_by_name() was not correct b/c - the service's methods were not sorted by name (the header file - used to incorrectly state that they were). - Now we correctly implement protobuf_c_service_get_method_by_name() - (using a bsearch indexed by separate array). - - generated source incompatibility: we added a new - member to ProtobufCServiceDescriptor (method_indices_by_name). - You will have to run the latest protobuf - to generate those structures. - - rename rpc-client's "autoretry" mechanism to "autoreconnect". - - bug fixes using TCP clients with the RPC system. - - handle allocation failures more gracefully (Jason Lunz) (issue 15) - -protobuf-c (0.8) - - Destroy function typedef for Services was omitting a "*" - - service_machgen_invoke was broken. (issue 12) - - add RPC system (BETA) - - don't segfault when packing NULL strings and messages. (issue 13) - -protobuf-c (0.7) - - memory leak: unknown fields were not being freed by free_unpacked() - - lowercase field names consistently when composing - default_value names. (issue 11) - - remove spurious semicolon (issue 10) - -protobuf-c (0.6) - - Warning suppression for -Wcast-qual and -Wshadow. - - Support for default values of all types allowed by core protobuf. - - Generate message__init functions, for when the static initializer - isn't convenient. - - add some reserved fields at the end of the various descriptors - -protobuf-c (0.5) - - License now included in major files. - - Use little-endian optimizations; fix a bug therein. - - Include 'make deb' target. - -protobuf-c (0.4) - - Update to work with protobuf 2.0.1. - -protobuf-c (0.2) -protobuf-c (0.3) - - Minor pedantic concerns about generated code. - -protobuf-c (0.1) - - Lots of test code (and bug fixes). - -protobuf-c (0.0) - - Initial release. diff --git a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/Doxyfile.in b/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/Doxyfile.in deleted file mode 100644 index 7d556ec..0000000 --- a/resources/espressif__esp_hosted/external_examples/8d519870/slave/main/common/protobuf-c/Doxyfile.in +++ /dev/null @@ -1,2312 +0,0 @@ -# Doxyfile 1.8.7 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project. -# -# All text after a double hash (##) is considered a comment and is placed in -# front of the TAG it is preceding. -# -# All text after a single hash (#) is considered a comment and will be ignored. -# The format is: -# TAG = value [value, ...] -# For lists, items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (\" \"). - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the config file -# that follow. The default is UTF-8 which is also the encoding used for all text -# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv -# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv -# for the list of possible encodings. -# The default value is: UTF-8. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by -# double-quotes, unless you are using Doxywizard) that should identify the -# project for which the documentation is generated. This name is used in the -# title of most generated pages and in a few other places. -# The default value is: My Project. - -PROJECT_NAME = "@PACKAGE@" - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. This -# could be handy for archiving the generated documentation or if some version -# control system is used. - -PROJECT_NUMBER = @PACKAGE_VERSION@ - -# Using the PROJECT_BRIEF tag one can provide an optional one line description -# for a project that appears at the top of each page and should give viewer a -# quick idea about the purpose of the project. Keep the description short. - -PROJECT_BRIEF = "@PACKAGE_DESCRIPTION@" - -# With the PROJECT_LOGO tag one can specify an logo or icon that is included in -# the documentation. The maximum height of the logo should not exceed 55 pixels -# and the maximum width should not exceed 200 pixels. Doxygen will copy the logo -# to the output directory. - -PROJECT_LOGO = - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path -# into which the generated documentation will be written. If a relative path is -# entered, it will be relative to the location where doxygen was started. If -# left blank the current directory will be used. - -OUTPUT_DIRECTORY = - -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub- -# directories (in 2 levels) under the output directory of each output format and -# will distribute the generated files over these directories. Enabling this -# option can be useful when feeding doxygen a huge amount of source files, where -# putting all generated files in the same directory would otherwise causes -# performance problems for the file system. -# The default value is: NO. - -CREATE_SUBDIRS = NO - -# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII -# characters to appear in the names of generated files. If set to NO, non-ASCII -# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode -# U+3044. -# The default value is: NO. - -ALLOW_UNICODE_NAMES = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, -# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), -# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, -# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), -# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, -# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, -# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, -# Ukrainian and Vietnamese. -# The default value is: English. - -OUTPUT_LANGUAGE = English - -# If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member -# descriptions after the members that are listed in the file and class -# documentation (similar to Javadoc). Set to NO to disable this. -# The default value is: YES. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief -# description of a member or function before the detailed description -# -# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. -# The default value is: YES. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator that is -# used to form the text in various listings. Each string in this list, if found -# as the leading text of the brief description, will be stripped from the text -# and the result, after processing the whole list, is used as the annotated -# text. Otherwise, the brief description is used as-is. If left blank, the -# following values are used ($name is automatically replaced with the name of -# the entity):The $name class, The $name widget, The $name file, is, provides, -# specifies, contains, represents, a, an and the. - -ABBREVIATE_BRIEF = - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# doxygen will generate a detailed section even if there is only a brief -# description. -# The default value is: NO. - -ALWAYS_DETAILED_SEC = YES - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. -# The default value is: NO. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path -# before files name in the file list and in the header files. If set to NO the -# shortest path that makes the file name unique will be used -# The default value is: YES. - -FULL_PATH_NAMES = NO - -# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. -# Stripping is only done if one of the specified strings matches the left-hand -# part of the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the path to -# strip. -# -# Note that you can specify absolute paths here, but also relative paths, which -# will be relative from the directory where doxygen is started. -# This tag requires that the tag FULL_PATH_NAMES is set to YES. - -STRIP_FROM_PATH = @top_srcdir@ - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the -# path mentioned in the documentation of a class, which tells the reader which -# header file to include in order to use a class. If left blank only the name of -# the header file containing the class definition is used. Otherwise one should -# specify the list of include paths that are normally passed to the compiler -# using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but -# less readable) file names. This can be useful is your file systems doesn't -# support long names like on DOS, Mac, or CD-ROM. -# The default value is: NO. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the -# first line (until the first dot) of a Javadoc-style comment as the brief -# description. If set to NO, the Javadoc-style will behave just like regular Qt- -# style comments (thus requiring an explicit @brief command for a brief -# description.) -# The default value is: NO. - -JAVADOC_AUTOBRIEF = YES - -# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first -# line (until the first dot) of a Qt-style comment as the brief description. If -# set to NO, the Qt-style will behave just like regular Qt-style comments (thus -# requiring an explicit \brief command for a brief description.) -# The default value is: NO. - -QT_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a -# multi-line C++ special comment block (i.e. a block of //! or /// comments) as -# a brief description. This used to be the default behavior. The new default is -# to treat a multi-line C++ comment block as a detailed description. Set this -# tag to YES if you prefer the old behavior instead. -# -# Note that setting this tag to YES also means that rational rose comments are -# not recognized any more. -# The default value is: NO. - -MULTILINE_CPP_IS_BRIEF = NO - -# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the -# documentation from any documented member that it re-implements. -# The default value is: YES. - -INHERIT_DOCS = YES - -# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a -# new page for each member. If set to NO, the documentation of a member will be -# part of the file/class/namespace that contains it. -# The default value is: NO. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen -# uses this value to replace tabs by spaces in code fragments. -# Minimum value: 1, maximum value: 16, default value: 4. - -TAB_SIZE = 8 - -# This tag can be used to specify a number of aliases that act as commands in -# the documentation. An alias has the form: -# name=value -# For example adding -# "sideeffect=@par Side Effects:\n" -# will allow you to put the command \sideeffect (or @sideeffect) in the -# documentation, which will result in a user-defined paragraph with heading -# "Side Effects:". You can put \n's in the value part of an alias to insert -# newlines. - -ALIASES = - -# This tag can be used to specify a number of word-keyword mappings (TCL only). -# A mapping has the form "name=value". For example adding "class=itcl::class" -# will allow you to use the command class in the itcl::class meaning. - -TCL_SUBST = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources -# only. Doxygen will then generate output that is more tailored for C. For -# instance, some of the names that are used will be different. The list of all -# members will be omitted, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_FOR_C = YES - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or -# Python sources only. Doxygen will then generate output that is more tailored -# for that language. For instance, namespaces will be presented as packages, -# qualified scopes will look different, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources. Doxygen will then generate output that is tailored for Fortran. -# The default value is: NO. - -OPTIMIZE_FOR_FORTRAN = NO - -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for VHDL. -# The default value is: NO. - -OPTIMIZE_OUTPUT_VHDL = NO - -# Doxygen selects the parser to use depending on the extension of the files it -# parses. With this tag you can assign which parser to use for a given -# extension. Doxygen has a built-in mapping, but you can override or extend it -# using this tag. The format is ext=language, where ext is a file extension, and -# language is one of the parsers supported by doxygen: IDL, Java, Javascript, -# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: -# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: -# Fortran. In the later case the parser tries to guess whether the code is fixed -# or free formatted code, this is the default for Fortran type files), VHDL. For -# instance to make doxygen treat .inc files as Fortran files (default is PHP), -# and .f files as C (default is Fortran), use: inc=Fortran f=C. -# -# Note For files without extension you can use no_extension as a placeholder. -# -# Note that for custom extensions you also need to set FILE_PATTERNS otherwise -# the files are not read by doxygen. - -EXTENSION_MAPPING = - -# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments -# according to the Markdown format, which allows for more readable -# documentation. See http://daringfireball.net/projects/markdown/ for details. -# The output of markdown processing is further processed by doxygen, so you can -# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in -# case of backward compatibilities issues. -# The default value is: YES. - -MARKDOWN_SUPPORT = YES - -# When enabled doxygen tries to link words that correspond to documented -# classes, or namespaces to their corresponding documentation. Such a link can -# be prevented in individual cases by by putting a % sign in front of the word -# or globally by setting AUTOLINK_SUPPORT to NO. -# The default value is: YES. - -AUTOLINK_SUPPORT = YES - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want -# to include (a tag file for) the STL sources as input, then you should set this -# tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); -# versus func(std::string) {}). This also make the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. -# The default value is: NO. - -BUILTIN_STL_SUPPORT = NO - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. -# The default value is: NO. - -CPP_CLI_SUPPORT = NO - -# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: -# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen -# will parse them like normal C++ but will assume all classes use public instead -# of private inheritance when no explicit protection keyword is present. -# The default value is: NO. - -SIP_SUPPORT = NO - -# For Microsoft's IDL there are propget and propput attributes to indicate -# getter and setter methods for a property. Setting this option to YES will make -# doxygen to replace the get and set methods by a property in the documentation. -# This will only work if the methods are indeed getting or setting a simple -# type. If this is not the case, or you want to show the methods anyway, you -# should set this option to NO. -# The default value is: YES. - -IDL_PROPERTY_SUPPORT = YES - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. -# The default value is: NO. - -DISTRIBUTE_GROUP_DOC = NO - -# Set the SUBGROUPING tag to YES to allow class member groups of the same type -# (for instance a group of public functions) to be put as a subgroup of that -# type (e.g. under the Public Functions section). Set it to NO to prevent -# subgrouping. Alternatively, this can be done per class using the -# \nosubgrouping command. -# The default value is: YES. - -SUBGROUPING = YES - -# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions -# are shown inside the group in which they are included (e.g. using \ingroup) -# instead of on a separate page (for HTML and Man pages) or section (for LaTeX -# and RTF). -# -# Note that this feature does not work in combination with -# SEPARATE_MEMBER_PAGES. -# The default value is: NO. - -INLINE_GROUPED_CLASSES = NO - -# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions -# with only public data fields or simple typedef fields will be shown inline in -# the documentation of the scope in which they are defined (i.e. file, -# namespace, or group documentation), provided this scope is documented. If set -# to NO, structs, classes, and unions are shown on a separate page (for HTML and -# Man pages) or section (for LaTeX and RTF). -# The default value is: NO. - -INLINE_SIMPLE_STRUCTS = NO - -# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or -# enum is documented as struct, union, or enum with the name of the typedef. So -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct -# with name TypeT. When disabled the typedef will appear as a member of a file, -# namespace, or class. And the struct will be named TypeS. This can typically be -# useful for C code in case the coding convention dictates that all compound -# types are typedef'ed and only the typedef is referenced, never the tag name. -# The default value is: NO. - -TYPEDEF_HIDES_STRUCT = YES - -# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This -# cache is used to resolve symbols given their name and scope. Since this can be -# an expensive process and often the same symbol appears multiple times in the -# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small -# doxygen will become slower. If the cache is too large, memory is wasted. The -# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range -# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 -# symbols. At the end of a run doxygen will report the cache usage and suggest -# the optimal cache size from a speed point of view. -# Minimum value: 0, maximum value: 9, default value: 0. - -LOOKUP_CACHE_SIZE = 0 - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in -# documentation are documented, even if no documentation was available. Private -# class members and static file members will be hidden unless the -# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. -# Note: This will also disable the warnings about undocumented members that are -# normally produced when WARNINGS is set to YES. -# The default value is: NO. - -EXTRACT_ALL = NO - -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class will -# be included in the documentation. -# The default value is: NO. - -EXTRACT_PRIVATE = NO - -# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal -# scope will be included in the documentation. -# The default value is: NO. - -EXTRACT_PACKAGE = NO - -# If the EXTRACT_STATIC tag is set to YES all static members of a file will be -# included in the documentation. -# The default value is: NO. - -EXTRACT_STATIC = NO - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined -# locally in source files will be included in the documentation. If set to NO -# only classes defined in header files are included. Does not have any effect -# for Java sources. -# The default value is: YES. - -EXTRACT_LOCAL_CLASSES = YES - -# This flag is only useful for Objective-C code. When set to YES local methods, -# which are defined in the implementation section but not in the interface are -# included in the documentation. If set to NO only methods in the interface are -# included. -# The default value is: NO. - -EXTRACT_LOCAL_METHODS = NO - -# If this flag is set to YES, the members of anonymous namespaces will be -# extracted and appear in the documentation as a namespace called -# 'anonymous_namespace{file}', where file will be replaced with the base name of -# the file that contains the anonymous namespace. By default anonymous namespace -# are hidden. -# The default value is: NO. - -EXTRACT_ANON_NSPACES = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all -# undocumented members inside documented classes or files. If set to NO these -# members will be included in the various overviews, but no documentation -# section is generated. This option has no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. If set -# to NO these classes will be included in the various overviews. This option has -# no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend -# (class|struct|union) declarations. If set to NO these declarations will be -# included in the documentation. -# The default value is: NO. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any -# documentation blocks found inside the body of a function. If set to NO these -# blocks will be appended to the function's detailed documentation block. -# The default value is: NO. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation that is typed after a -# \internal command is included. If the tag is set to NO then the documentation -# will be excluded. Set it to YES to include the internal documentation. -# The default value is: NO. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file -# names in lower-case letters. If set to YES upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# and Mac users are advised to set this option to NO. -# The default value is: system dependent. - -CASE_SENSE_NAMES = YES - -# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with -# their full class and namespace scopes in the documentation. If set to YES the -# scope will be hidden. -# The default value is: NO. - -HIDE_SCOPE_NAMES = NO - -# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of -# the files that are included by a file in the documentation of that file. -# The default value is: YES. - -SHOW_INCLUDE_FILES = NO - -# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each -# grouped member an include statement to the documentation, telling the reader -# which file to include in order to use the member. -# The default value is: NO. - -SHOW_GROUPED_MEMB_INC = NO - -# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include -# files with double quotes in the documentation rather than with sharp brackets. -# The default value is: NO. - -FORCE_LOCAL_INCLUDES = NO - -# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the -# documentation for inline members. -# The default value is: YES. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the -# (detailed) documentation of file and class members alphabetically by member -# name. If set to NO the members will appear in declaration order. -# The default value is: YES. - -SORT_MEMBER_DOCS = NO - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief -# descriptions of file, namespace and class members alphabetically by member -# name. If set to NO the members will appear in declaration order. Note that -# this will also influence the order of the classes in the class list. -# The default value is: NO. - -SORT_BRIEF_DOCS = NO - -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the -# (brief and detailed) documentation of class members so that constructors and -# destructors are listed first. If set to NO the constructors will appear in the -# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. -# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief -# member documentation. -# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting -# detailed member documentation. -# The default value is: NO. - -SORT_MEMBERS_CTORS_1ST = NO - -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy -# of group names into alphabetical order. If set to NO the group names will -# appear in their defined order. -# The default value is: NO. - -SORT_GROUP_NAMES = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by -# fully-qualified names, including namespaces. If set to NO, the class list will -# be sorted only by class name, not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the alphabetical -# list. -# The default value is: NO. - -SORT_BY_SCOPE_NAME = NO - -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper -# type resolution of all parameters of a function it will reject a match between -# the prototype and the implementation of a member function even if there is -# only one candidate or it is obvious which candidate to choose by doing a -# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still -# accept a match between prototype and implementation in such cases. -# The default value is: NO. - -STRICT_PROTO_MATCHING = NO - -# The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the -# todo list. This list is created by putting \todo commands in the -# documentation. -# The default value is: YES. - -GENERATE_TODOLIST = NO - -# The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the -# test list. This list is created by putting \test commands in the -# documentation. -# The default value is: YES. - -GENERATE_TESTLIST = NO - -# The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug -# list. This list is created by putting \bug commands in the documentation. -# The default value is: YES. - -GENERATE_BUGLIST = NO - -# The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO) -# the deprecated list. This list is created by putting \deprecated commands in -# the documentation. -# The default value is: YES. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional documentation -# sections, marked by \if ... \endif and \cond -# ... \endcond blocks. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the -# initial value of a variable or macro / define can have for it to appear in the -# documentation. If the initializer consists of more lines than specified here -# it will be hidden. Use a value of 0 to hide initializers completely. The -# appearance of the value of individual variables and macros / defines can be -# controlled using \showinitializer or \hideinitializer command in the -# documentation regardless of this setting. -# Minimum value: 0, maximum value: 10000, default value: 30. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at -# the bottom of the documentation of classes and structs. If set to YES the list -# will mention the files that were used to generate the documentation. -# The default value is: YES. - -SHOW_USED_FILES = NO - -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This -# will remove the Files entry from the Quick Index and from the Folder Tree View -# (if specified). -# The default value is: YES. - -SHOW_FILES = NO - -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces -# page. This will remove the Namespaces entry from the Quick Index and from the -# Folder Tree View (if specified). -# The default value is: YES. - -SHOW_NAMESPACES = NO - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from -# the version control system). Doxygen will invoke the program by executing (via -# popen()) the command command input-file, where command is the value of the -# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided -# by doxygen. Whatever the program writes to standard output is used as the file -# version. For an example see the documentation. - -FILE_VERSION_FILTER = - -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed -# by doxygen. The layout file controls the global structure of the generated -# output files in an output format independent way. To create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. You can -# optionally specify a file name after the option, if omitted DoxygenLayout.xml -# will be used as the name of the layout file. -# -# Note that if you run doxygen from a directory containing a file called -# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE -# tag is left empty. - -LAYOUT_FILE = @top_srcdir@/DoxygenLayout.xml - -# The CITE_BIB_FILES tag can be used to specify one or more bib files containing -# the reference definitions. This must be a list of .bib files. The .bib -# extension is automatically appended if omitted. This requires the bibtex tool -# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. -# For LaTeX the style of the bibliography can be controlled using -# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the -# search path. Do not use file names with spaces, bibtex cannot handle them. See -# also \cite for info how to create references. - -CITE_BIB_FILES = - -#--------------------------------------------------------------------------- -# Configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated to -# standard output by doxygen. If QUIET is set to YES this implies that the -# messages are off. -# The default value is: NO. - -QUIET = YES - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES -# this implies that the warnings are on. -# -# Tip: Turn warnings on while writing the documentation. -# The default value is: YES. - -WARNINGS = YES - -# If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate -# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag -# will automatically be disabled. -# The default value is: YES. - -WARN_IF_UNDOCUMENTED = YES - -# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some parameters -# in a documented function, or documenting parameters that don't exist or using -# markup commands wrongly. -# The default value is: YES. - -WARN_IF_DOC_ERROR = YES - -# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that -# are documented, but have no documentation for their parameters or return -# value. If set to NO doxygen will only warn about wrong or incomplete parameter -# documentation, but not about the absence of documentation. -# The default value is: NO. - -WARN_NO_PARAMDOC = YES - -# The WARN_FORMAT tag determines the format of the warning messages that doxygen -# can produce. The string should contain the $file, $line, and $text tags, which -# will be replaced by the file and line number from which the warning originated -# and the warning text. Optionally the format may contain $version, which will -# be replaced by the version of the file (if it could be obtained via -# FILE_VERSION_FILTER) -# The default value is: $file:$line: $text. - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning and error -# messages should be written. If left blank the output is written to standard -# error (stderr). - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# Configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag is used to specify the files and/or directories that contain -# documented source files. You may enter file names like myfile.cpp or -# directories like /usr/src/myproject. Separate the files or directories with -# spaces. -# Note: If this tag is empty the current directory is searched. - -INPUT = @DOXYGEN_INPUT@ - -# This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses -# libiconv (or the iconv built into libc) for the transcoding. See the libiconv -# documentation (see: http://www.gnu.org/software/libiconv) for the list of -# possible encodings. -# The default value is: UTF-8. - -INPUT_ENCODING = UTF-8 - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and -# *.h) to filter out the source-files in the directories. If left blank the -# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii, -# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, -# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, -# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, -# *.qsf, *.as and *.js. - -FILE_PATTERNS = *.h - -# The RECURSIVE tag can be used to specify whether or not subdirectories should -# be searched for input files as well. -# The default value is: NO. - -RECURSIVE = YES - -# The EXCLUDE tag can be used to specify files and/or directories that should be -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. -# -# Note that relative paths are relative to the directory from which doxygen is -# run. - -EXCLUDE = - -# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or -# directories that are symbolic links (a Unix file system feature) are excluded -# from the input. -# The default value is: NO. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories for example use the pattern */test/* - -EXCLUDE_PATTERNS = *private* - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the -# output. The symbol name can be a fully qualified name, a word, or if the -# wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories use the pattern */test/* - -EXCLUDE_SYMBOLS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or directories -# that contain example code fragments that are included (see the \include -# command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and -# *.h) to filter out the source-files in the directories. If left blank all -# files are included. - -EXAMPLE_PATTERNS = - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude commands -# irrespective of the value of the RECURSIVE tag. -# The default value is: NO. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or directories -# that contain images that are to be included in the documentation (see the -# \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command: -# -# -# -# where is the value of the INPUT_FILTER tag, and is the -# name of an input file. Doxygen will then use the output that the filter -# program writes to standard output. If FILTER_PATTERNS is specified, this tag -# will be ignored. -# -# Note that the filter must not add or remove lines; it is applied before the -# code is scanned, but not when the output code is generated. If lines are added -# or removed, the anchors will not be placed correctly. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: pattern=filter -# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how -# filters are used. If the FILTER_PATTERNS tag is empty or if none of the -# patterns match the file name, INPUT_FILTER is applied. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER ) will also be used to filter the input files that are used for -# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). -# The default value is: NO. - -FILTER_SOURCE_FILES = NO - -# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file -# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and -# it is also possible to disable source filtering for a specific pattern using -# *.ext= (so without naming a filter). -# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. - -FILTER_SOURCE_PATTERNS = - -# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that -# is part of the input, its contents will be placed on the main page -# (index.html). This can be useful if you have a project on for instance GitHub -# and want to reuse the introduction page also for the doxygen output. - -USE_MDFILE_AS_MAINPAGE = - -#--------------------------------------------------------------------------- -# Configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will be -# generated. Documented entities will be cross-referenced with these sources. -# -# Note: To get rid of all source code in the generated output, make sure that -# also VERBATIM_HEADERS is set to NO. -# The default value is: NO. - -SOURCE_BROWSER = NO - -# Setting the INLINE_SOURCES tag to YES will include the body of functions, -# classes and enums directly into the documentation. -# The default value is: NO. - -INLINE_SOURCES = NO - -# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any -# special comment blocks from generated source code fragments. Normal C, C++ and -# Fortran comments will always remain visible. -# The default value is: YES. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES then for each documented -# function all documented functions referencing it will be listed. -# The default value is: NO. - -REFERENCED_BY_RELATION = NO - -# If the REFERENCES_RELATION tag is set to YES then for each documented function -# all documented entities called/used by that function will be listed. -# The default value is: NO. - -REFERENCES_RELATION = NO - -# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set -# to YES, then the hyperlinks from functions in REFERENCES_RELATION and -# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will -# link to the documentation. -# The default value is: YES. - -REFERENCES_LINK_SOURCE = YES - -# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the -# source code will show a tooltip with additional information such as prototype, -# brief description and links to the definition and documentation. Since this -# will make the HTML file larger and loading of large files a bit slower, you -# can opt to disable this feature. -# The default value is: YES. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -SOURCE_TOOLTIPS = NO - -# If the USE_HTAGS tag is set to YES then the references to source code will -# point to the HTML generated by the htags(1) tool instead of doxygen built-in -# source browser. The htags tool is part of GNU's global source tagging system -# (see http://www.gnu.org/software/global/global.html). You will need version -# 4.8.6 or higher. -# -# To use it do the following: -# - Install the latest version of global -# - Enable SOURCE_BROWSER and USE_HTAGS in the config file -# - Make sure the INPUT points to the root of the source tree -# - Run doxygen as normal -# -# Doxygen will invoke htags (and that will in turn invoke gtags), so these -# tools must be available from the command line (i.e. in the search path). -# -# The result: instead of the source browser generated by doxygen, the links to -# source code will now point to the output of htags. -# The default value is: NO. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a -# verbatim copy of the header file for each class for which an include is -# specified. Set to NO to disable this. -# See also: Section \class. -# The default value is: YES. - -VERBATIM_HEADERS = NO - -#--------------------------------------------------------------------------- -# Configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all -# compounds will be generated. Enable this if the project contains a lot of -# classes, structs, unions or interfaces. -# The default value is: YES. - -ALPHABETICAL_INDEX = NO - -# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in -# which the alphabetical index list will be split. -# Minimum value: 1, maximum value: 20, default value: 5. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all classes will -# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag -# can be used to specify a prefix (or a list of prefixes) that should be ignored -# while generating the index headers. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES doxygen will generate HTML output -# The default value is: YES. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a -# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of -# it. -# The default directory is: html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each -# generated HTML page (for example: .htm, .php, .asp). -# The default value is: .html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a user-defined HTML header file for -# each generated HTML page. If the tag is left blank doxygen will generate a -# standard header. -# -# To get valid HTML the header file that includes any scripts and style sheets -# that doxygen needs, which is dependent on the configuration options used (e.g. -# the setting GENERATE_TREEVIEW). It is highly recommended to start with a -# default header using -# doxygen -w html new_header.html new_footer.html new_stylesheet.css -# YourConfigFile -# and then modify the file new_header.html. See also section "Doxygen usage" -# for information on how to generate the default header that doxygen normally -# uses. -# Note: The header is subject to change so you typically have to regenerate the -# default header when upgrading to a newer version of doxygen. For a description -# of the possible markers and block names see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each -# generated HTML page. If the tag is left blank doxygen will generate a standard -# footer. See HTML_HEADER for more information on how to generate a default -# footer and what special commands can be used inside the footer. See also -# section "Doxygen usage" for information on how to generate the default footer -# that doxygen normally uses. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FOOTER = - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style -# sheet that is used by each HTML page. It can be used to fine-tune the look of -# the HTML output. If left blank doxygen will generate a default style sheet. -# See also section "Doxygen usage" for information on how to generate the style -# sheet that doxygen normally uses. -# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as -# it is more robust and this tag (HTML_STYLESHEET) will in the future become -# obsolete. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_STYLESHEET = - -# The HTML_EXTRA_STYLESHEET tag can be used to specify an additional user- -# defined cascading style sheet that is included after the standard style sheets -# created by doxygen. Using this option one can overrule certain style aspects. -# This is preferred over using HTML_STYLESHEET since it does not replace the -# standard style sheet and is therefor more robust against future updates. -# Doxygen will copy the style sheet file to the output directory. For an example -# see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_STYLESHEET = - -# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or -# other source files which should be copied to the HTML output directory. Note -# that these files will be copied to the base HTML output directory. Use the -# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these -# files. In the HTML_STYLESHEET file, use the file name only. Also note that the -# files will be copied as-is; there are no commands or markers available. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_FILES = - -# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen -# will adjust the colors in the stylesheet and background images according to -# this color. Hue is specified as an angle on a colorwheel, see -# http://en.wikipedia.org/wiki/Hue for more information. For instance the value -# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 -# purple, and 360 is red again. -# Minimum value: 0, maximum value: 359, default value: 220. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_HUE = 220 - -# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors -# in the HTML output. For a value of 0 the output will use grayscales only. A -# value of 255 will produce the most vivid colors. -# Minimum value: 0, maximum value: 255, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_SAT = 100 - -# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the -# luminance component of the colors in the HTML output. Values below 100 -# gradually make the output lighter, whereas values above 100 make the output -# darker. The value divided by 100 is the actual gamma applied, so 80 represents -# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not -# change the gamma. -# Minimum value: 40, maximum value: 240, default value: 80. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_GAMMA = 80 - -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting this -# to NO can help when comparing the output of multiple runs. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_TIMESTAMP = NO - -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_DYNAMIC_SECTIONS = NO - -# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries -# shown in the various tree structured indices initially; the user can expand -# and collapse entries dynamically later on. Doxygen will expand the tree to -# such a level that at most the specified number of entries are visible (unless -# a fully collapsed tree already exceeds this amount). So setting the number of -# entries 1 will produce a full collapsed tree by default. 0 is a special value -# representing an infinite number of entries and will result in a full expanded -# tree by default. -# Minimum value: 0, maximum value: 9999, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_INDEX_NUM_ENTRIES = 100 - -# If the GENERATE_DOCSET tag is set to YES, additional index files will be -# generated that can be used as input for Apple's Xcode 3 integrated development -# environment (see: http://developer.apple.com/tools/xcode/), introduced with -# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a -# Makefile in the HTML output directory. Running make will produce the docset in -# that directory and running make install will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at -# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html -# for more information. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_DOCSET = NO - -# This tag determines the name of the docset feed. A documentation feed provides -# an umbrella under which multiple documentation sets from a single provider -# (such as a company or product suite) can be grouped. -# The default value is: Doxygen generated docs. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_FEEDNAME = "Doxygen generated docs" - -# This tag specifies a string that should uniquely identify the documentation -# set bundle. This should be a reverse domain-name style string, e.g. -# com.mycompany.MyDocSet. Doxygen will append .docset to the name. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_BUNDLE_ID = org.doxygen.Project - -# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify -# the documentation publisher. This should be a reverse domain-name style -# string, e.g. com.mycompany.MyDocSet.documentation. -# The default value is: org.doxygen.Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_ID = org.doxygen.Publisher - -# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. -# The default value is: Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_NAME = Publisher - -# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three -# additional HTML index files: index.hhp, index.hhc, and index.hhk. The -# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop -# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on -# Windows. -# -# The HTML Help Workshop contains a compiler that can convert all HTML output -# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML -# files are now used as the Windows 98 help format, and will replace the old -# Windows help format (.hlp) on all Windows platforms in the future. Compressed -# HTML files also contain an index, a table of contents, and you can search for -# words in the documentation. The HTML workshop also contains a viewer for -# compressed HTML files. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_HTMLHELP = NO - -# The CHM_FILE tag can be used to specify the file name of the resulting .chm -# file. You can add a path in front of the file if the result should not be -# written to the html output directory. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_FILE = - -# The HHC_LOCATION tag can be used to specify the location (absolute path -# including file name) of the HTML help compiler ( hhc.exe). If non-empty -# doxygen will try to run the HTML help compiler on the generated index.hhp. -# The file has to be specified with full path. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -HHC_LOCATION = - -# The GENERATE_CHI flag controls if a separate .chi index file is generated ( -# YES) or that it should be included in the master .chm file ( NO). -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -GENERATE_CHI = NO - -# The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc) -# and project file content. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_INDEX_ENCODING = - -# The BINARY_TOC flag controls whether a binary table of contents is generated ( -# YES) or a normal table of contents ( NO) in the .chm file. Furthermore it -# enables the Previous and Next buttons. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members to -# the table of contents of the HTML help documentation and to the tree view. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -TOC_EXPAND = NO - -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and -# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that -# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help -# (.qch) of the generated HTML documentation. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_QHP = NO - -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify -# the file name of the resulting .qch file. The path specified is relative to -# the HTML output folder. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QCH_FILE = - -# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help -# Project output. For more information please see Qt Help Project / Namespace -# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_NAMESPACE = org.doxygen.Project - -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt -# Help Project output. For more information please see Qt Help Project / Virtual -# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- -# folders). -# The default value is: doc. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_VIRTUAL_FOLDER = doc - -# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom -# filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- -# filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_NAME = - -# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the -# custom filter to add. For more information please see Qt Help Project / Custom -# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- -# filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_ATTRS = - -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this -# project's filter section matches. Qt Help Project / Filter Attributes (see: -# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_SECT_FILTER_ATTRS = - -# The QHG_LOCATION tag can be used to specify the location of Qt's -# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the -# generated .qhp file. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHG_LOCATION = - -# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be -# generated, together with the HTML files, they form an Eclipse help plugin. To -# install this plugin and make it available under the help contents menu in -# Eclipse, the contents of the directory containing the HTML and XML files needs -# to be copied into the plugins directory of eclipse. The name of the directory -# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. -# After copying Eclipse needs to be restarted before the help appears. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_ECLIPSEHELP = NO - -# A unique identifier for the Eclipse help plugin. When installing the plugin -# the directory name containing the HTML and XML files should also have this -# name. Each documentation set should have its own identifier. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. - -ECLIPSE_DOC_ID = org.doxygen.Project - -# If you want full control over the layout of the generated HTML pages it might -# be necessary to disable the index and replace it with your own. The -# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top -# of each HTML page. A value of NO enables the index and the value YES disables -# it. Since the tabs in the index contain the same information as the navigation -# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -DISABLE_INDEX = YES - -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. If the tag -# value is set to YES, a side panel will be generated containing a tree-like -# index structure (just like the one that is generated for HTML Help). For this -# to work a browser that supports JavaScript, DHTML, CSS and frames is required -# (i.e. any modern browser). Windows users are probably better off using the -# HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can -# further fine-tune the look of the index. As an example, the default style -# sheet generated by doxygen has an example that shows how to put an image at -# the root of the tree instead of the PROJECT_NAME. Since the tree basically has -# the same information as the tab index, you could consider setting -# DISABLE_INDEX to YES when enabling this option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_TREEVIEW = YES - -# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that -# doxygen will group on one line in the generated HTML documentation. -# -# Note that a value of 0 will completely suppress the enum values from appearing -# in the overview section. -# Minimum value: 0, maximum value: 20, default value: 4. -# This tag requires that the tag GENERATE_HTML is set to YES. - -ENUM_VALUES_PER_LINE = 0 - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used -# to set the initial width (in pixels) of the frame in which the tree is shown. -# Minimum value: 0, maximum value: 1500, default value: 250. -# This tag requires that the tag GENERATE_HTML is set to YES. - -TREEVIEW_WIDTH = 250 - -# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to -# external symbols imported via tag files in a separate window. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -EXT_LINKS_IN_WINDOW = NO - -# Use this tag to change the font size of LaTeX formulas included as images in -# the HTML documentation. When you change the font size after a successful -# doxygen run you need to manually remove any form_*.png images from the HTML -# output directory to force them to be regenerated. -# Minimum value: 8, maximum value: 50, default value: 10. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_FONTSIZE = 10 - -# Use the FORMULA_TRANPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are not -# supported properly for IE 6.0, but are supported on all modern browsers. -# -# Note that when changing this option you need to delete any form_*.png files in -# the HTML output directory before the changes have effect. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_TRANSPARENT = YES - -# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see -# http://www.mathjax.org) which uses client side Javascript for the rendering -# instead of using prerendered bitmaps. Use this if you do not have LaTeX -# installed or if you want to formulas look prettier in the HTML output. When -# enabled you may also need to install MathJax separately and configure the path -# to it using the MATHJAX_RELPATH option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -USE_MATHJAX = NO - -# When MathJax is enabled you can set the default output format to be used for -# the MathJax output. See the MathJax site (see: -# http://docs.mathjax.org/en/latest/output.html) for more details. -# Possible values are: HTML-CSS (which is slower, but has the best -# compatibility), NativeMML (i.e. MathML) and SVG. -# The default value is: HTML-CSS. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_FORMAT = HTML-CSS - -# When MathJax is enabled you need to specify the location relative to the HTML -# output directory using the MATHJAX_RELPATH option. The destination directory -# should contain the MathJax.js script. For instance, if the mathjax directory -# is located at the same level as the HTML output directory, then -# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax -# Content Delivery Network so you can quickly see the result without installing -# MathJax. However, it is strongly recommended to install a local copy of -# MathJax from http://www.mathjax.org before deployment. -# The default value is: http://cdn.mathjax.org/mathjax/latest. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest - -# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax -# extension names that should be enabled during MathJax rendering. For example -# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_EXTENSIONS = - -# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces -# of code that will be used on startup of the MathJax code. See the MathJax site -# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an -# example see the documentation. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_CODEFILE = - -# When the SEARCHENGINE tag is enabled doxygen will generate a search box for -# the HTML output. The underlying search engine uses javascript and DHTML and -# should work on any modern browser. Note that when using HTML help -# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) -# there is already a search function so this one should typically be disabled. -# For large projects the javascript based search engine can be slow, then -# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to -# search using the keyboard; to jump to the search box use + S -# (what the is depends on the OS and browser, but it is typically -# , /

    I5Cga0@@{mxpmi&1v%i<8)NjAv%oD@ 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

    GzZfZpJf&I?p45EQWV?T*GD;*7KY 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�@yc+X0$;u~E~ z!z6U3l6Zo0$8Ez~(-Bg9#p;oRT~IaqlYC0PqOX;d7^Aq4V>x0k&LRrbhF!olyPJ