From 28286a2e4695fcbd7af1e2d68943a801c0dc1c98 Mon Sep 17 00:00:00 2001
From: Ujjwal Kumar <31813384+Ujjwal0501@users.noreply.github.com>
Date: Fri, 29 Dec 2023 04:12:52 +0530
Subject: [PATCH 01/32] feat (app): Manager add wallet selector flow

---
 apps/manager_app/manager_app.c                |   4 +
 apps/manager_app/manager_app_priv.h           |   7 +
 apps/manager_app/wallet_selector.c            | 234 ++++++++++++++++++
 common/cypherock-common                       |   2 +-
 common/interfaces/user_interface/ui_menu.c    |  11 +-
 common/interfaces/user_interface/ui_menu.h    |  14 +-
 common/proto-options/manager/common.options   |   3 +
 .../proto-options/manager/get_wallets.options |   2 -
 .../manager/wallet_selector.options           |   1 +
 src/constant_texts.c                          |   4 +
 src/constant_texts.h                          |   1 +
 11 files changed, 270 insertions(+), 13 deletions(-)
 create mode 100644 apps/manager_app/wallet_selector.c
 create mode 100644 common/proto-options/manager/common.options
 create mode 100644 common/proto-options/manager/wallet_selector.options

diff --git a/apps/manager_app/manager_app.c b/apps/manager_app/manager_app.c
index 37106c052..4e980d597 100644
--- a/apps/manager_app/manager_app.c
+++ b/apps/manager_app/manager_app.c
@@ -164,6 +164,10 @@ void manager_app_main(usb_event_t usb_evt, const void *app_config) {
       manager_confirm_firmware_update(&query);
       break;
     }
+    case MANAGER_QUERY_SELECT_WALLET_TAG: {
+      manager_wallet_selector(&query);
+      break;
+    }
     default: {
       /* In case we ever encounter invalid query, convey to the host app */
       manager_send_error(ERROR_COMMON_ERROR_CORRUPT_DATA_TAG,
diff --git a/apps/manager_app/manager_app_priv.h b/apps/manager_app/manager_app_priv.h
index 28d33def6..8f763df02 100644
--- a/apps/manager_app/manager_app_priv.h
+++ b/apps/manager_app/manager_app_priv.h
@@ -89,4 +89,11 @@ void manager_export_wallets(manager_query_t *query);
  * @param query Reference to the decoded query struct from the host app
  */
 void manager_confirm_firmware_update(manager_query_t *query);
+
+/**
+ * @brief
+ *
+ * @param query Reference to the decoded query struct from the host app
+ */
+void manager_wallet_selector(manager_query_t *query);
 #endif
diff --git a/apps/manager_app/wallet_selector.c b/apps/manager_app/wallet_selector.c
new file mode 100644
index 000000000..7f48ca58d
--- /dev/null
+++ b/apps/manager_app/wallet_selector.c
@@ -0,0 +1,234 @@
+/**
+ * @file    wallet_selector.c
+ * @author  Cypherock X1 Team
+ * @brief   Exports list of existing wallets to the host
+ * @copyright Copyright (c) 2023 HODL TECH PTE LTD
+ * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
+ *target=_blank>https://mitcc.org/</a>
+ *
+ ******************************************************************************
+ * @attention
+ *
+ * (c) Copyright 2023 by HODL TECH PTE LTD
+ *
+ * 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.
+ *
+ *
+ * "Commons Clause" License Condition v1.0
+ *
+ * The Software is provided to you by the Licensor under the License,
+ * as defined below, subject to the following condition.
+ *
+ * Without limiting other conditions in the License, the grant of
+ * rights under the License will not include, and the License does not
+ * grant to you, the right to Sell the Software.
+ *
+ * For purposes of the foregoing, "Sell" means practicing any or all
+ * of the rights granted to you under the License to provide to third
+ * parties, for a fee or other consideration (including without
+ * limitation fees for hosting or consulting/ support services related
+ * to the Software), a product or service whose value derives, entirely
+ * or substantially, from the functionality of the Software. Any license
+ * notice or attribution required by the License must also include
+ * this Commons Clause License Condition notice.
+ *
+ * Software: All X1Wallet associated files.
+ * License: MIT
+ * Licensor: HODL TECH PTE LTD
+ *
+ ******************************************************************************
+ */
+
+/*****************************************************************************
+ * INCLUDES
+ *****************************************************************************/
+#include "events.h"
+#include "flash_api.h"
+#include "manager_api.h"
+#include "ui_core_confirm.h"
+#include "wallet_list.h"
+
+/*****************************************************************************
+ * EXTERN VARIABLES
+ *****************************************************************************/
+
+/*****************************************************************************
+ * PRIVATE MACROS AND DEFINES
+ *****************************************************************************/
+
+/*****************************************************************************
+ * PRIVATE TYPEDEFS
+ *****************************************************************************/
+
+/*****************************************************************************
+ * STATIC FUNCTION PROTOTYPES
+ *****************************************************************************/
+/**
+ * @brief Checks if the provided query contains expected request.
+ * @details The function performs the check on the request type and if the check
+ * fails, then it will send an error to the host manager app and return false.
+ *
+ * @param query Reference to an instance of manager_query_t containing query
+ * received from host app
+ * @param which_request The expected request type enum
+ *
+ * @return bool Indicating if the check succeeded or failed
+ * @retval true If the query contains the expected request
+ * @retval false If the query does not contain the expected request
+ */
+static bool check_which_request(const manager_query_t *query,
+                                pb_size_t which_request);
+
+/**
+ * @brief The functions presents wallet list to the user & waits for input.
+ * @details The function waits for user action and returns true if the
+ * selections was completed by the user. In case if user chooses a wallet
+ * that is unusable, the function will convey the situation to the user &
+ * prompt the user to choose a wallet again.
+ *
+ * @param flash_wallet_idx Reference to store the selected wallet index as on
+ * flash
+ *
+ * @return bool Indicating if the user chose a valid wallet to continue with
+ * @retval true If user chose a valid wallet
+ * @retval false If user rejected, timeout happened, or abort received.
+ */
+// static bool choose_wallet(uint8_t *flash_wallet_idx);
+
+/**
+ * @brief Fills wallet list in structure type manager_wallet_item_t with
+ * details of the provided wallet_idx on device storage.
+ *
+ * @param wallet a Pointer to the structure to be filled
+ * @param wallet_idx Index of wallet in storage whose details are to be copied
+ */
+static void fill_wallet(manager_wallet_item_t *wallet, uint8_t wallet_idx);
+
+/*****************************************************************************
+ * STATIC VARIABLES
+ *****************************************************************************/
+
+/*****************************************************************************
+ * GLOBAL VARIABLES
+ *****************************************************************************/
+
+/*****************************************************************************
+ * STATIC FUNCTIONS
+ *****************************************************************************/
+static bool check_which_request(const manager_query_t *query,
+                                pb_size_t which_request) {
+  if (which_request != query->get_wallets.which_request) {
+    manager_send_error(ERROR_COMMON_ERROR_CORRUPT_DATA_TAG,
+                       ERROR_DATA_FLOW_INVALID_REQUEST);
+    return false;
+  }
+
+  return true;
+}
+
+// static bool choose_wallet(uint8_t *flash_wallet_idx) {
+
+// }
+
+static void fill_wallet(manager_wallet_item_t *wallet, uint8_t wallet_idx) {
+  const Flash_Wallet *flash_wallet = get_wallet_by_index(wallet_idx);
+  ASSERT(flash_wallet != NULL);
+
+  snprintf(wallet->name, sizeof(wallet->name), "%s", flash_wallet->wallet_name);
+  memcpy(wallet->id, flash_wallet->wallet_id, WALLET_ID_SIZE);
+
+  uint8_t wallet_info = flash_wallet->wallet_info;
+  wallet->has_passphrase = WALLET_IS_PASSPHRASE_SET(wallet_info);
+  wallet->has_pin = WALLET_IS_PIN_SET(wallet_info);
+
+  ASSERT(NULL != flash_wallet);
+
+  // Wallet is NOT in usable state if
+  // 1. It is in locked state in any of the X1 cards
+  // 2. Wallet state in X1 Vault flash is not VALID_WALLET
+  // 3. Card state in X1 Vault flash is not 0xF
+  if (flash_wallet->is_wallet_locked || VALID_WALLET != flash_wallet->state ||
+      0x0F != flash_wallet->cards_states) {
+    wallet->is_valid = false;
+  } else {
+    wallet->is_valid = true;
+  }
+}
+
+/*****************************************************************************
+ * GLOBAL FUNCTIONS
+ *****************************************************************************/
+void manager_wallet_selector(manager_query_t *query) {
+  if (!check_which_request(query, MANAGER_SELECT_WALLET_REQUEST_INITIATE_TAG)) {
+    return;
+  }
+
+  /* Create an array of pointers holding the string to display on the menu. */
+  const char *options[MAX_WALLETS_ALLOWED] = {0};
+  static uint16_t choice_idx = 0;
+  uint8_t option_count = get_wallet_list(&options[0]);
+
+  while (true) {
+    menu_init_with_choice(
+        options, option_count, "Wallet Select", choice_idx, true);
+
+    evt_status_t events = get_events(EVENT_CONFIG_UI, MAX_INACTIVITY_TIMEOUT);
+    if (true == events.p0_event.flag) {
+      // core will handle p0 events, exit now
+      break;
+    }
+    if (UI_EVENT_REJECT == events.ui_event.event_type) {
+      // user rejected, send error and exit
+      manager_send_error(ERROR_COMMON_ERROR_USER_REJECTION_TAG,
+                         ERROR_USER_REJECTION_CONFIRMATION);
+      break;
+    }
+
+    uint8_t flash_wallet_idx = 0;
+    choice_idx = events.ui_event.list_selection - 1;
+
+    ASSERT(UI_EVENT_LIST_CHOICE == events.ui_event.event_type);
+    ASSERT(SUCCESS ==
+           get_index_by_name(options[choice_idx], &flash_wallet_idx));
+    if (get_wallet_data_by_id(get_wallet_id(flash_wallet_idx), &wallet, NULL)) {
+      manager_result_t result =
+          init_manager_result(MANAGER_RESULT_SELECT_WALLET_TAG);
+      result.select_wallet.which_response =
+          MANAGER_SELECT_WALLET_RESPONSE_RESULT_TAG;
+      result.select_wallet.result.has_wallet = true;
+      fill_wallet(&result.select_wallet.result.wallet, flash_wallet_idx);
+
+      manager_send_result(&result);
+      break;
+    } else {
+      bool retry_choice =
+          core_scroll_page(NULL, ui_text_wallet_selector_invalid, NULL);
+
+      if (false == retry_choice) {
+        // user selected to choose a different wallet
+        manager_send_error(ERROR_COMMON_ERROR_USER_REJECTION_TAG,
+                           ERROR_USER_REJECTION_CONFIRMATION);
+        break;
+      }
+    }
+  }
+
+  return;
+}
\ No newline at end of file
diff --git a/common/cypherock-common b/common/cypherock-common
index aa836c796..1563db21a 160000
--- a/common/cypherock-common
+++ b/common/cypherock-common
@@ -1 +1 @@
-Subproject commit aa836c796375c7c1bdb90f35011b0be0e35d80df
+Subproject commit 1563db21a8a4b6cd2cccdbb2c5228b33ee7b9fc7
diff --git a/common/interfaces/user_interface/ui_menu.c b/common/interfaces/user_interface/ui_menu.c
index 8ea408dc1..ca8c556f2 100644
--- a/common/interfaces/user_interface/ui_menu.c
+++ b/common/interfaces/user_interface/ui_menu.c
@@ -79,10 +79,11 @@ static struct Menu_Object *obj = NULL;
  */
 static void menu_create();
 
-void menu_init(const char *option_list[],
-               const int number_of_options,
-               const char heading[],
-               const bool back_button_allowed) {
+void menu_init_with_choice(const char *option_list[],
+                           const int number_of_options,
+                           const char heading[],
+                           const int initial_selection,
+                           const bool back_button_allowed) {
   ASSERT(NULL != option_list);
   ASSERT(NULL != heading);
 
@@ -96,7 +97,7 @@ void menu_init(const char *option_list[],
 
   if (data != NULL) {
     data->number_of_options = number_of_options;
-    data->current_index = 0;
+    data->current_index = initial_selection;
     data->back_button_allowed = back_button_allowed;
     snprintf(data->heading, sizeof(data->heading), "%s", heading);
 
diff --git a/common/interfaces/user_interface/ui_menu.h b/common/interfaces/user_interface/ui_menu.h
index 3faa2c1d4..7869ff7e2 100644
--- a/common/interfaces/user_interface/ui_menu.h
+++ b/common/interfaces/user_interface/ui_menu.h
@@ -17,6 +17,9 @@
 #define MENU_MAX_NUMBER_OF_OPTIONS 12
 #define MAX_LEN_OF_MENU_OPTIONS 25
 
+// wrapper for reducing changes in codebase
+#define menu_init(o, n, h, b) menu_init_with_choice(o, n, h, 0, b)
+
 /**
  * @brief struct to store Menu data and meta data
  * @details
@@ -59,6 +62,7 @@ struct Menu_Object {
  * @param option_list Array of char array for options
  * @param number_of_options Number of options
  * @param heading Heading text
+ * @param initial_selection The default selected choice
  * @param back_button_allowed Show a back button
  *
  * @return
@@ -69,9 +73,9 @@ struct Menu_Object {
  *
  * @note
  */
-void menu_init(const char *option_list[],
-               int number_of_options,
-               const char heading[],
-               bool back_button_allowed);
-
+void menu_init_with_choice(const char *option_list[],
+                           const int number_of_options,
+                           const char heading[],
+                           const int initial_selection,
+                           const bool back_button_allowed);
 #endif    // UI_MENU_H
\ No newline at end of file
diff --git a/common/proto-options/manager/common.options b/common/proto-options/manager/common.options
new file mode 100644
index 000000000..d23a4ba55
--- /dev/null
+++ b/common/proto-options/manager/common.options
@@ -0,0 +1,3 @@
+# Options for file common/cypherock-common/proto/manager/common.proto
+manager.WalletItem.id type:FT_STATIC max_size:32 fixed_length:true
+manager.WalletItem.name type:FT_STATIC max_size:16 fixed_length:true
diff --git a/common/proto-options/manager/get_wallets.options b/common/proto-options/manager/get_wallets.options
index d2426ba23..5ef99e174 100644
--- a/common/proto-options/manager/get_wallets.options
+++ b/common/proto-options/manager/get_wallets.options
@@ -1,4 +1,2 @@
 # Options for file common/cypherock-common/proto/manager/get_wallets.proto
-manager.WalletItem.id type:FT_STATIC max_size:32 fixed_length:true
-manager.WalletItem.name type:FT_STATIC max_size:16 fixed_length:true
 manager.GetWalletsResultResponse.wallet_list type:FT_STATIC max_count:4 fixed_length:true
diff --git a/common/proto-options/manager/wallet_selector.options b/common/proto-options/manager/wallet_selector.options
new file mode 100644
index 000000000..aa0492239
--- /dev/null
+++ b/common/proto-options/manager/wallet_selector.options
@@ -0,0 +1 @@
+# Options for file common/cypherock-common/proto/manager/wallet_selector.proto
diff --git a/src/constant_texts.c b/src/constant_texts.c
index 500b2503b..83e34d309 100644
--- a/src/constant_texts.c
+++ b/src/constant_texts.c
@@ -183,6 +183,10 @@ const char *ui_text_joystick_left = "Toggle joystick left";
 const char *ui_text_joystick_center = "Center click joystick";
 const char *ui_text_joystick_checkup_complete =
     "Joystick instructions complete";
+const char *ui_text_wallet_selector_invalid =
+    "The selected wallet is misconfigured\n"
+    "Visit the wallet from main menu to fix it\n"
+    "Or choose a different wallet to continue";
 
 // Onboarding flow text
 const char *ui_text_onboarding_welcome = "Welcome";
diff --git a/src/constant_texts.h b/src/constant_texts.h
index 4eab8efd1..4d9e788c6 100644
--- a/src/constant_texts.h
+++ b/src/constant_texts.h
@@ -148,6 +148,7 @@ extern const char *ui_text_joystick_down;
 extern const char *ui_text_joystick_left;
 extern const char *ui_text_joystick_center;
 extern const char *ui_text_joystick_checkup_complete;
+extern const char *ui_text_wallet_selector_invalid;
 
 // Onboarding text
 extern const char *ui_text_onboarding_welcome;

From ab5a2750f05752c70fbabb67aa1854e023b69bf1 Mon Sep 17 00:00:00 2001
From: Ujjwal Kumar <31813384+Ujjwal0501@users.noreply.github.com>
Date: Thu, 15 Feb 2024 13:33:07 +0530
Subject: [PATCH 02/32] chore (build): Correct vscode config settings

---
 .vscode/launch.json   | 4 ++--
 .vscode/settings.json | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/.vscode/launch.json b/.vscode/launch.json
index b1060a499..7ce14a4c4 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -28,7 +28,7 @@
         {
             "name": "Main Debug [Launch]",
             "cwd": "${workspaceRoot}",
-            "executable": "build/Cypherock-Main.elf",
+            "executable": "build/Main/Cypherock-Main.elf",
             "request": "launch",
             "type": "cortex-debug",
             "servertype": "openocd",
@@ -44,7 +44,7 @@
         {
             "name": "Main Debug [Attach]",
             "cwd": "${workspaceRoot}",
-            "executable": "build/Cypherock-Main.elf",
+            "executable": "build/Main/Cypherock-Main.elf",
             "request": "attach",
             "type": "cortex-debug",
             "servertype": "openocd",
diff --git a/.vscode/settings.json b/.vscode/settings.json
index 58df5a942..eb22ad697 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -8,10 +8,10 @@
         "FIRMWARE_TYPE":"Main",
     },
     "terminal.integrated.env.linux": {
-        "PATH": "${workspaceFolder}/venv/bin:${env:PATH}",
+        "PATH": "${env:HOME}/.local/bin:${workspaceFolder}/venv/bin:${env:PATH}",
     },
     "terminal.integrated.env.osx": {
-        "PATH": "${workspaceFolder}/venv/bin:${env:PATH}",
+        "PATH": "${env:HOME}/.local/bin:${workspaceFolder}/venv/bin:${env:PATH}",
     },
     "terminal.integrated.env.windows": {
         "PATH": "${workspaceFolder}/venv/Scripts:${workspaceFolder}/venv/bin:${env:PATH}",

From 10c4c26eb647cbef260cbdf8a7e4469a9edff1cf Mon Sep 17 00:00:00 2001
From: vrockz747 <vrockz747@gmail.com>
Date: Mon, 4 Mar 2024 17:11:39 +0530
Subject: [PATCH 03/32] fix (app): Prf-6996

---
 common/coin_support/eth_sign_data/abi_decode.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/common/coin_support/eth_sign_data/abi_decode.c b/common/coin_support/eth_sign_data/abi_decode.c
index fc33e968e..73cc77329 100644
--- a/common/coin_support/eth_sign_data/abi_decode.c
+++ b/common/coin_support/eth_sign_data/abi_decode.c
@@ -60,7 +60,9 @@
 #include <stdint.h>
 
 #include "abi.h"
+#include "address.h"
 #include "assert_conf.h"
+#include "evm_priv.h"
 #include "utils.h"
 
 /* Global functions
@@ -215,11 +217,11 @@ ui_display_node *ABI_Stringify(Abi_Type_e inputAbiType,
     case Abi_address_e: {
       char staticBufferInUTF8[43] = "0x";
 
-      byte_array_to_hex_string(pAbiTypeData + Abi_address_e_OFFSET_BE,
-                               20,
-                               &(staticBufferInUTF8[2]),
-                               41);
-
+      // generating checksum'd address
+      ethereum_address_checksum((pAbiTypeData + Abi_address_e_OFFSET_BE),
+                                &(staticBufferInUTF8[2]),
+                                false,
+                                g_evm_app->chain_id);
       ui_node = ui_create_display_node("Datatype:address\0",
                                        25,
                                        &(staticBufferInUTF8[0]),

From d3ca8a1eea3f96300cdc590e984db15c2d82aad7 Mon Sep 17 00:00:00 2001
From: Ujjwal Kumar <31813384+Ujjwal0501@users.noreply.github.com>
Date: Tue, 5 Mar 2024 15:41:32 +0530
Subject: [PATCH 04/32] chore: Update common submodule

---
 common/cypherock-common | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/common/cypherock-common b/common/cypherock-common
index 1563db21a..7fcd2bcf6 160000
--- a/common/cypherock-common
+++ b/common/cypherock-common
@@ -1 +1 @@
-Subproject commit 1563db21a8a4b6cd2cccdbb2c5228b33ee7b9fc7
+Subproject commit 7fcd2bcf6b1a90ead126191444c7fdd07c40764a

From d3f477146f0397f50f771995ae502853d7fd694f Mon Sep 17 00:00:00 2001
From: ParnikaGupta <guptaparnika9@gmail.com>
Date: Mon, 4 Mar 2024 17:53:47 +0530
Subject: [PATCH 05/32] chore (build): Remove unused func

---
 .../core/controller/card_upgrade_controller.c | 140 -----
 .../core/controller/controller_level_four.h   | 398 --------------
 .../initial_device_provision_contoller.c      | 516 ------------------
 .../initial_verify_card_controller.c          | 116 ----
 .../receive_transaction_controller_b_eth.c    | 108 ----
 .../receive_transaction_controller_b_near.c   | 117 ----
 .../receive_transaction_controller_b_solana.c | 108 ----
 .../receive_transaction_controller_eth.c      | 220 --------
 .../receive_transaction_controller_near.c     | 364 ------------
 .../receive_transaction_controller_solana.c   | 205 -------
 .../send_transaction_controller_b_eth.c       | 136 -----
 .../send_transaction_controller_b_solana.c    | 122 -----
 .../send_transaction_controller_eth.c         | 267 ---------
 .../send_transaction_controller_solana.c      | 282 ----------
 .../controller/sign_message_controller_eth.c  | 229 --------
 .../sign_messgae_controller_b_eth.c           | 103 ----
 .../controller/verify_wallet_controller.c     | 113 ----
 .../controller/verify_wallet_controller_b.c   |  73 ---
 .../controller/wallet_locked_controller.c     | 186 -------
 .../controller/wallet_locked_controller_b.c   |  76 ---
 .../core/tasks/card_upgrade_tasks.c           |  86 ---
 .../tasks/initial_device_provision_tasks.c    |  91 ---
 .../tasks/receive_transaction_tasks_eth.c     | 172 ------
 .../tasks/receive_transaction_tasks_near.c    | 247 ---------
 .../tasks/receive_transaction_tasks_solana.c  | 156 ------
 .../core/tasks/send_transaction_tasks_eth.c   | 326 -----------
 .../tasks/send_transaction_tasks_solana.c     | 260 ---------
 .../core/tasks/sign_message_tasks_eth.c       | 178 ------
 src/level_four/core/tasks/tasks_level_four.h  | 123 -----
 .../core/tasks/verify_wallet_task.c           | 134 -----
 .../core/tasks/wallet_locked_tasks.c          | 129 -----
 .../controller/card_action_controllers.h      |  19 -
 .../controller/controller_tap_cards.c         | 305 -----------
 .../controller/controller_tap_cards.h         | 202 -------
 .../retrieve_key_from_card_controllers.c      | 127 -----
 .../controller/tap_one_card_controllers.c     | 116 ----
 ...onstruct_from_four_cards_to_verify_tasks.c |  99 ----
 .../reconstruct_from_threshold_cards_tasks.c  |  71 ---
 .../tasks/retrieve_key_from_card_tasks.c      |  84 ---
 .../tap_cards/tasks/tap_one_card_tasks.c      | 105 ----
 .../tap_cards/tasks/tasks_tap_cards.h         |  97 ----
 .../tap_cards/tasks/write_to_cards_tasks.c    | 115 ----
 .../controller/controller_add_wallet.h        |  35 --
 .../controller/controller_arbitrary_data.c    | 253 ---------
 .../controller/controller_arbitrary_data_b.c  |  98 ----
 .../add_wallet/tasks/tasks_add_wallet.h       |  38 --
 .../add_wallet/tasks/tasks_arbitrary_data.c   | 226 --------
 .../controller/advanced_settings_controller.c |  95 ----
 .../controller/controller_advanced_settings.h |  35 --
 .../tasks/advanced_settings_tasks.c           | 105 ----
 .../tasks/tasks_advanced_settings.h           |  34 --
 .../controller/controller_old_wallet.c        | 107 ----
 .../controller/controller_old_wallet.h        |  65 ---
 .../controller/controller_old_wallet_b.c      | 107 ----
 .../old_wallet/tasks/tasks_old_wallet.c       | 115 ----
 .../old_wallet/tasks/tasks_old_wallet.h       |  34 --
 56 files changed, 8468 deletions(-)
 delete mode 100644 src/level_four/core/controller/card_upgrade_controller.c
 delete mode 100644 src/level_four/core/controller/controller_level_four.h
 delete mode 100644 src/level_four/core/controller/initial_device_provision_contoller.c
 delete mode 100644 src/level_four/core/controller/initial_verify_card_controller.c
 delete mode 100644 src/level_four/core/controller/receive_transaction_controller_b_eth.c
 delete mode 100644 src/level_four/core/controller/receive_transaction_controller_b_near.c
 delete mode 100644 src/level_four/core/controller/receive_transaction_controller_b_solana.c
 delete mode 100644 src/level_four/core/controller/receive_transaction_controller_eth.c
 delete mode 100644 src/level_four/core/controller/receive_transaction_controller_near.c
 delete mode 100644 src/level_four/core/controller/receive_transaction_controller_solana.c
 delete mode 100644 src/level_four/core/controller/send_transaction_controller_b_eth.c
 delete mode 100644 src/level_four/core/controller/send_transaction_controller_b_solana.c
 delete mode 100644 src/level_four/core/controller/send_transaction_controller_eth.c
 delete mode 100644 src/level_four/core/controller/send_transaction_controller_solana.c
 delete mode 100644 src/level_four/core/controller/sign_message_controller_eth.c
 delete mode 100644 src/level_four/core/controller/sign_messgae_controller_b_eth.c
 delete mode 100644 src/level_four/core/controller/verify_wallet_controller.c
 delete mode 100644 src/level_four/core/controller/verify_wallet_controller_b.c
 delete mode 100644 src/level_four/core/controller/wallet_locked_controller.c
 delete mode 100644 src/level_four/core/controller/wallet_locked_controller_b.c
 delete mode 100644 src/level_four/core/tasks/card_upgrade_tasks.c
 delete mode 100644 src/level_four/core/tasks/initial_device_provision_tasks.c
 delete mode 100644 src/level_four/core/tasks/receive_transaction_tasks_eth.c
 delete mode 100644 src/level_four/core/tasks/receive_transaction_tasks_near.c
 delete mode 100644 src/level_four/core/tasks/receive_transaction_tasks_solana.c
 delete mode 100644 src/level_four/core/tasks/send_transaction_tasks_eth.c
 delete mode 100644 src/level_four/core/tasks/send_transaction_tasks_solana.c
 delete mode 100644 src/level_four/core/tasks/sign_message_tasks_eth.c
 delete mode 100644 src/level_four/core/tasks/tasks_level_four.h
 delete mode 100644 src/level_four/core/tasks/verify_wallet_task.c
 delete mode 100644 src/level_four/core/tasks/wallet_locked_tasks.c
 delete mode 100644 src/level_four/tap_cards/controller/card_action_controllers.h
 delete mode 100644 src/level_four/tap_cards/controller/controller_tap_cards.c
 delete mode 100644 src/level_four/tap_cards/controller/controller_tap_cards.h
 delete mode 100644 src/level_four/tap_cards/controller/retrieve_key_from_card_controllers.c
 delete mode 100644 src/level_four/tap_cards/controller/tap_one_card_controllers.c
 delete mode 100644 src/level_four/tap_cards/tasks/reconstruct_from_four_cards_to_verify_tasks.c
 delete mode 100644 src/level_four/tap_cards/tasks/reconstruct_from_threshold_cards_tasks.c
 delete mode 100644 src/level_four/tap_cards/tasks/retrieve_key_from_card_tasks.c
 delete mode 100644 src/level_four/tap_cards/tasks/tap_one_card_tasks.c
 delete mode 100644 src/level_four/tap_cards/tasks/tasks_tap_cards.h
 delete mode 100644 src/level_four/tap_cards/tasks/write_to_cards_tasks.c
 delete mode 100644 src/level_three/add_wallet/controller/controller_add_wallet.h
 delete mode 100644 src/level_three/add_wallet/controller/controller_arbitrary_data.c
 delete mode 100644 src/level_three/add_wallet/controller/controller_arbitrary_data_b.c
 delete mode 100644 src/level_three/add_wallet/tasks/tasks_add_wallet.h
 delete mode 100644 src/level_three/add_wallet/tasks/tasks_arbitrary_data.c
 delete mode 100644 src/level_three/advanced_settings/controller/advanced_settings_controller.c
 delete mode 100644 src/level_three/advanced_settings/controller/controller_advanced_settings.h
 delete mode 100644 src/level_three/advanced_settings/tasks/advanced_settings_tasks.c
 delete mode 100644 src/level_three/advanced_settings/tasks/tasks_advanced_settings.h
 delete mode 100644 src/level_three/old_wallet/controller/controller_old_wallet.c
 delete mode 100644 src/level_three/old_wallet/controller/controller_old_wallet.h
 delete mode 100644 src/level_three/old_wallet/controller/controller_old_wallet_b.c
 delete mode 100644 src/level_three/old_wallet/tasks/tasks_old_wallet.c
 delete mode 100644 src/level_three/old_wallet/tasks/tasks_old_wallet.h

diff --git a/src/level_four/core/controller/card_upgrade_controller.c b/src/level_four/core/controller/card_upgrade_controller.c
deleted file mode 100644
index 943d92933..000000000
--- a/src/level_four/core/controller/card_upgrade_controller.c
+++ /dev/null
@@ -1,140 +0,0 @@
-/**
- * @file    card_upgrade_controller.c
- * @author  Cypherock X1 Team
- * @brief   Card upgrade next controller.
- *          Handles post event (only next events) operations for card upgrade
- *flow initiated by desktop app.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "communication.h"
-#include "controller_level_four.h"
-#include "nfc.h"
-#include "ui_instruction.h"
-
-extern Flow_level flow_level;
-extern Counter counter;
-extern Wallet wallet;
-
-char *textDisplay;
-char text[80];
-
-#ifdef DEV_BUILD
-static uint16_t number_of_apdus_sent;
-#endif    // DEV_BUILD
-
-void card_upgrade_controller() {
-#ifdef DEV_BUILD
-  switch (flow_level.level_three) {
-    case CARD_UPGRADE_TAP_CARD_MESSAGE:
-      flow_level.level_three = CARD_UPGRADE_SELECT_CARD;
-      break;
-
-    case CARD_UPGRADE_SELECT_CARD: {
-      while (nfc_select_card() != STM_SUCCESS)
-        ;
-      flow_level.level_three = CARD_UPGRADE_FORWARD_MESSAGE;
-      number_of_apdus_sent = 0;
-      snprintf(text, sizeof(text), "Sending APDU\n%d", number_of_apdus_sent);
-      textDisplay = text;
-      instruction_scr_change_text(textDisplay, false);
-      uint8_t arr[4];
-      arr[0] = STATUS_CMD_SUCCESS;
-      transmit_data_to_app(STATUS_PACKET, arr, 4);
-    } break;
-
-    case CARD_UPGRADE_FORWARD_MESSAGE: {
-      uint8_t *data_array = NULL;
-      uint16_t msg_size = 0;
-      if (get_usb_msg_by_cmd_type(APDU_PACKET, &data_array, &msg_size)) {
-        uint8_t max_tries = 5;
-        uint8_t recv_apdu[255], recv_len = 236;
-        ret_code_t err_code = STM_ERROR_BUSY;
-
-        while (max_tries--) {
-          err_code = adafruit_pn532_in_data_exchange(
-              data_array, msg_size, recv_apdu, &recv_len);
-
-          if (err_code == STM_SUCCESS) {
-            break;
-          }
-        }
-
-        if (err_code == STM_SUCCESS) {
-          transmit_data_to_app(APDU_PACKET, recv_apdu, recv_len);
-          number_of_apdus_sent++;
-          snprintf(
-              text, sizeof(text), "Sending APDU\n%d", number_of_apdus_sent);
-          textDisplay = text;
-          instruction_scr_change_text(textDisplay, false);
-        } else {
-          uint8_t arr[4];
-          arr[0] = STATUS_CMD_FAILURE;
-          transmit_data_to_app(STATUS_PACKET, arr, sizeof(arr));
-          instruction_scr_destructor();
-          mark_error_screen(ui_text_card_command_send_error);
-          reset_flow_level();
-        }
-        clear_message_received_data();
-      } else if (get_usb_msg_by_cmd_type(STOP_CARD_UPGRADE, NULL, NULL)) {
-        mark_error_screen(ui_text_card_update_done);
-        reset_flow_level();
-        clear_message_received_data();
-      }
-    } break;
-
-    default:
-      break;
-  }
-#endif
-}
diff --git a/src/level_four/core/controller/controller_level_four.h b/src/level_four/core/controller/controller_level_four.h
deleted file mode 100644
index ab6adff4c..000000000
--- a/src/level_four/core/controller/controller_level_four.h
+++ /dev/null
@@ -1,398 +0,0 @@
-/**
- * @file    controller_level_four.h
- * @author  Cypherock X1 Team
- * @brief   Header for level four controllers.
- *          Houses the declarations of controllers for level one tasks.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- * target=_blank>https://mitcc.org/</a>
- *
- */
-
-#ifndef CONTROLLER_LEVEL_FOUR_H
-#define CONTROLLER_LEVEL_FOUR_H
-
-#pragma once
-
-#include "controller_main.h"
-#include "cryptoauthlib.h"
-#include "eth.h"
-#include "flash_config.h"
-#include "near.h"
-#include "solana.h"
-#include "tasks.h"
-
-#define DEFAULT_ATECC_RETRIES 5
-
-#define DEVICE_SERIAL_SIZE 32
-#define MAXIMUM_COIN_SUPPORTED (14 + 5)    // 5 for segwit support
-
-typedef enum {
-  slot_0_unused = 0U,
-  slot_1_unused = 1U,
-  slot_2_auth_key = 2U,
-  slot_3_nfc_pair_key = 3U,
-  slot_4_unused = 4U,
-  slot_5_challenge = 5U,
-  slot_6_io_key = 6U,
-  slot_7_unused = 7U,
-  slot_8_serial = 8U,
-  slot_9_unused = 9U,
-  slot_10_unused = 10U,
-  slot_11_unused = 11U,
-  slot_12_unused = 12U,
-  slot_13_unused = 13U,
-  slot_14_unused = 14U,
-  slot_15_unused = 15U
-} atecc_slot_define_t;
-
-typedef struct {
-  uint8_t device_serial[DEVICE_SERIAL_SIZE], retries;
-  ATCA_STATUS status;
-  ATCAIfaceCfg *cfg_atecc608a_iface;
-} atecc_data_t;
-
-extern atecc_data_t atecc_data;
-
-typedef enum {
-  provision_empty = 0,
-  provision_incomplete = 1,
-  provision_complete = 2,
-  provision_v1_complete = 3
-} provision_status_t;
-
-extern uint8_t provision_date[4];
-extern uint8_t auth_card_number;
-extern solana_unsigned_txn solana_unsigned_txn_ptr;
-
-/**
- * @brief Stores the device specific information during provisioning process.
- * @details The device specific information is stored temporarily in the RAM
- * during the 2nd phase of device provisioning. These are received from the
- * in-house provisioning tool before a device is ready for use.
- *
- * @see Perm_Ext_Keys_Struct, Perm_Key_Data_Struct, Flash_Perm_Struct,
- * device_provision_controller(), FIREWALL_NVDATA_APP_KEYS_ADDR,
- * START_DEVICE_PROVISION, desktop_listener_task()
- * @since v1.0.0
- */
-#pragma pack(push, 1)
-typedef struct Provision_Data_Struct {
-  uint8_t device_private_key[32];
-  uint8_t device_public_key[ECDSA_PUB_KEY_SIZE];
-  uint8_t self_key_path[FS_KEYSTORE_KEYPATH_LEN];
-  uint8_t priv_key[FS_KEYSTORE_PRIVKEY_LEN];
-  uint8_t card_root_xpub[FS_KEYSTORE_XPUB_LEN];
-} Provision_Data_struct;
-#pragma pack(pop)
-
-extern Provision_Data_struct provision_keys_data;
-
-/**
- * @brief Stores the generated xpubs list for the add coin process.
- * @details The generated xpubs list is stored temporarily in the RAM during the
- * add coin process before it is sent to the desktop app.
- *
- * @see MAXIMUM_COIN_SUPPORTED, Add_Coin_Data, add_coin_controller(),
- * add_coin_task(), desktop_listener_task(), ADD_COIN_START
- * @since v1.0.0
- *
- * @note The number of entries in the list should not be greater than the
- * maximum number of coins supported (ref MAXIMUM_COIN_SUPPORTED).
- */
-#pragma pack(push, 1)
-typedef struct Cmd_Add_Coin_t {
-  uint8_t xpub[XPUB_SIZE];
-} Cmd_Add_Coin_t;
-#pragma pack(pop)
-
-/**
- * @brief send transaction data
- * @details The transaction data is stored temporarily in the RAM during the
- * intermediate phases of send transaction process.
- *
- * @see send_transaction_controller(), send_transaction_task(),
- * desktop_listener_task(), SEND_TXN_START
- * @since v1.0.0
- */
-#pragma pack(push, 1)
-typedef struct Send_Transaction_Data {
-  uint8_t transaction_confirmation_list_index;
-  txn_metadata transaction_metadata;
-
-} Send_Transaction_Data;
-#pragma pack(pop)
-
-extern Coin_Specific_Data_Struct coin_specific_data;
-extern uint8_t *eth_unsigned_txn_byte_array;
-extern Send_Transaction_Data var_send_transaction_data;
-
-/**
- * @brief Card upgrade controller available for development purposes.
- * @details This controller is used to upgrade the card using a desktop app.
- *
- * @see card_upgrade_task(), desktop_listener_task(), START_CARD_UPGRADE
- * @since v1.0.0
- */
-void card_upgrade_controller();
-
-/**
- * @brief Device provision controller
- * @details This controller is used to provision the device using the desktop
- * app.
- *
- * @see desktop_listener_task(),
- * START_DEVICE_PROVISION
- * @since v1.0.0
- */
-void device_provision_controller();
-
-/**
- * @brief This controller is executed for verifying card in main application.
- * @details This controller is used to verify the card with the servers using
- * the desktop app.
- *
- * @see task_card_verification(), desktop_listener_task(), START_CARD_AUTH
- * @since v1.0.0
- */
-void verify_card_controller();
-
-/**
- * @brief This controller is executed for verifying card in initial application.
- * @details This controller is used to verify the card using the desktop app in
- * initial application.
- *
- * @see initial_verify_card_task(), desktop_listener_task(), START_CARD_AUTH
- * @since v1.0.0
- */
-void initial_verify_card_controller();
-
-/**
- * @brief This controller is executed when the name of a wallet is clicked and
- * it is locked.
- * @details This controller is used to handle next event for unlocking the
- * wallet using the proof of work mechanism where the X1Wallet does the proof of
- * work and sends the result to the card.
- *
- * @see wallet_locked_task(), wallet_locked_controller_b()
- * @since v1.0.0
- */
-void wallet_locked_controller();
-
-/**
- * @brief Back button controller for wallet locked flow
- * @details This controller is used to handle back button event for unlocking
- * the wallet using the proof of work mechanism.
- *
- * @see wallet_locked_controller(), wallet_locked_task()
- * @since v1.0.0
- */
-void wallet_locked_controller_b();
-
-/**
- * @brief Next button controller is executed for processing and signing unsigned
- * transaction of Ethereum.
- * @details This controller is used to process and sign the unsigned transaction
- * for ETH that is requested from the desktop app.
- *
- * @see send_transaction_controller_b_eth(), send_transaction_tasks_eth(),
- * send_transaction_controller(), send_transaction_tasks(),
- * send_transaction_controller_b()
- * @since v1.0.0
- */
-void send_transaction_controller_eth();
-
-/**
- * @brief Back button controller for send transaction Ethereum flow.
- * @details This controller is used to handle back button events during
- * processing and signing unsigned transaction for ETH.
- *
- * @see send_transaction_controller_eth(), send_transaction_tasks_eth(),
- * send_transaction_controller(), send_transaction_tasks()
- * @since v1.0.0
- */
-void send_transaction_controller_b_eth();
-
-/**
- * @brief Next button controller is executed for processing and signing messages
- * of Ethereum.
- * @details This controller is used to process and sign the messages for ETH
- * that is requested from the desktop app.
- *
- */
-void sign_message_controller_eth();
-
-/**
- * @brief Back button controller for sign message Ethereum flow.
- * @details This controller is used to handle back button events during
- * processing and signing messages for ETH.
- *
- */
-void sign_message_controller_b_eth();
-
-/**
- * @brief Next button controller is executed for processing and signing unsigned
- * transaction.
- */
-void send_transaction_controller_solana();
-
-/**
- * @brief Back button controller is executed for handling cancellation of the
- * ongoing process.
- */
-void send_transaction_controller_b_solana();
-
-/**
- * @brief Next button controller is executed for generating address using xpub.
- * @details This controller handles is used to generate receiving address for
- * the BTC coins requested by desktop from a list of supported coins.
- *
- * @see receive_transaction_controller_b(), receive_transaction_tasks(),
- * desktop_listener_task(), RECV_TXN_START,
- * receive_transaction_controller_eth(), receive_transaction_tasks_eth()
- * @since v1.0.0
- */
-void receive_transaction_controller_near();
-
-/**
- * @brief Next button controller is executed for generating address using xpub
- * of Ethereum.
- * @details This controller handles is used to generate receiving address for
- * the ETH coins requested by desktop from a list of supported coins.
- *
- * @see receive_transaction_controller_b_eth(), receive_transaction_tasks_eth(),
- * desktop_listener_task(), RECV_TXN_START, receive_transaction_controller(),
- * receive_transaction_tasks()
- * @since v1.0.0
- */
-void receive_transaction_controller_eth();
-
-/**
- * @brief Back button controller for receive transaction Ethereum flow.
- * @details This controller is used to handle back button events during
- * generating receiving address for ETH.
- *
- * @see receive_transaction_controller_eth(), receive_transaction_tasks_eth(),
- * desktop_listener_task(), RECV_TXN_START, receive_transaction_controller(),
- * receive_transaction_tasks()
- * @since v1.0.0
- */
-void receive_transaction_controller_b_eth();
-
-/**
- * @brief Back button controller for receive transaction Near flow.
- * @details This controller is used to handle back button events during
- * receiving flow for Near.
- *
- * @see receive_transaction_controller_eth(), receive_transaction_tasks_eth(),
- * desktop_listener_task(), RECV_TXN_START, receive_transaction_controller(),
- * receive_transaction_tasks()
- * @since v1.0.0
- */
-void receive_transaction_controller_b_near();
-
-/**
- * @brief Next button controller is executed for generating address using xpub
- * of Ethereum.
- * @details This controller handles is used to generate receiving address for
- * the ETH coins requested by desktop from a list of supported coins.
- *
- * @see receive_transaction_controller_b_eth(), receive_transaction_tasks_eth(),
- * desktop_listener_task(), RECV_TXN_START, receive_transaction_controller(),
- * receive_transaction_tasks()
- * @since v1.0.0
- */
-void receive_transaction_controller_solana();
-
-/**
- * @brief Back button controller for receive transaction Ethereum flow.
- * @details This controller is used to handle back button events during
- * generating receiving address for ETH.
- *
- * @see receive_transaction_controller_eth(), receive_transaction_tasks_eth(),
- * desktop_listener_task(), RECV_TXN_START, receive_transaction_controller(),
- * receive_transaction_tasks()
- * @since v1.0.0
- */
-void receive_transaction_controller_b_solana();
-
-/**
- * @brief This controller is executed for verifying wallet added or restored on
- * the device and cards.
- * @details This controller is used to verify the wallet added or restored on
- * the device and cards.
- *
- * @see verify_wallet_controller_b(), verify_wallet_tasks(),
- * generate_wallet_controller(),
- * restore_wallet_controller(),
- * @since v1.0.0
- */
-void verify_wallet_controller();
-
-/**
- * @brief Back button controller for verify wallet flow.
- * @details This controller is used to handle back button events during wallet
- * verification of newly added wallet.
- *
- * @see verify_wallet_controller(), verify_wallet_tasks(),
- * generate_wallet_controller(),
- * restore_wallet_controller(),
- * @since v1.0.0
- */
-void verify_wallet_controller_b();
-
-/**
- * @brief
- * @details
- *
- * @return uint8_t Provision status of the device
- * @retval 0    Not provisioned
- * @retval 1    Semi-provisioned (serial and IO-Protection Key present)
- * @retval 2    Fully provisioned
- * @retval 3    External auth configuration
- */
-provision_status_t check_provision_status();
-
-/**
- * @brief   fetch device serial and check if UID in the serial matches MCU UID
- * or not
- * @details
- *
- * @return uint32_t device serial fetch status or failure status
- * @retval 0    fetched successfully
- * @retval 1    device UID doesn't match with serial UID
- */
-uint32_t get_device_serial();
-
-/**
- * @brief Request ATECC to generate signature on the hash with private available
- * on SLOT-3
- * @details
- *
- * @param [in] hash     - hash to be signed
- * @param [out] sign    - signature generated
- *
- * @return    ATCA_SUCCESS on success, otherwise an error code.
- *
- * @see atcab_init(), atcab_sign(), ATCAIfaceCfg, cfg_atecc608a_iface
- * @since v1.0.0
- */
-uint8_t atecc_nfc_sign_hash(const uint8_t *hash, uint8_t *sign);
-
-/**
- * @brief Request ATECC to perform ECDH operation on pub_key with private key
- * from SLOT-3
- * @details
- *
- * @param [in] pub_key          - public key to be used for ECDH
- * @param [out] shared_secret   - shared secret generated
- *
- * @return    ATCA_SUCCESS on success, otherwise an error code.
- *
- * @see atcab_init(), atcab_ecdh(), atcab_ecdh_ioenc(), ATCAIfaceCfg,
- * cfg_atecc608a_iface
- * @since v1.0.0
- */
-uint8_t atecc_nfc_ecdh(const uint8_t *pub_key, uint8_t *shared_secret);
-
-#endif
\ No newline at end of file
diff --git a/src/level_four/core/controller/initial_device_provision_contoller.c b/src/level_four/core/controller/initial_device_provision_contoller.c
deleted file mode 100644
index e7919d1f5..000000000
--- a/src/level_four/core/controller/initial_device_provision_contoller.c
+++ /dev/null
@@ -1,516 +0,0 @@
-/**
- * @file    initial_device_provision_contoller.c
- * @author  Cypherock X1 Team
- * @brief   Device provision controller.
- *          Handles post event (only next events) operations for device
- *provision flow initiated by desktop app.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "bip32.h"
-#include "communication.h"
-#include "controller_level_four.h"
-#include "cryptoauthlib.h"
-#include "curves.h"
-#include "flash_api.h"
-#include "nist256p1.h"
-#include "string.h"
-#include "ui_delay.h"
-#include "ui_instruction.h"
-#if USE_SIMULATOR == 0
-#include "stm32l4xx_it.h"
-#endif
-
-#define ATECC_CFG_88_MASK 0x4C
-#define ATECC_CFG_89_MASK 0x01
-
-#define ATECC_CFG_88_MASK_OLD_PROV 44
-
-#if X1WALLET_INITIAL
-// slot-5 shouldn't be locked
-uint8_t atecc_slot_to_lock[] = {slot_2_auth_key,
-                                slot_3_nfc_pair_key,
-                                slot_6_io_key,
-                                slot_8_serial,
-                                slot_0_unused,
-                                slot_1_unused,
-                                slot_4_unused,
-                                slot_7_unused,
-                                slot_9_unused,
-                                slot_10_unused,
-                                slot_11_unused,
-                                slot_12_unused,
-                                slot_13_unused,
-                                slot_14_unused,
-                                slot_15_unused};
-
-uint8_t provision_date[4];
-Provision_Data_struct provision_keys_data;
-
-extern lv_task_t *listener_task;
-static lv_task_t *timeout_task;
-
-static void __timeout_listener();
-static void lock_all_slots();
-#endif
-
-uint32_t get_device_serial() {
-  atecc_data.retries = DEFAULT_ATECC_RETRIES;
-  bool usb_irq_enable_on_entry = NVIC_GetEnableIRQ(OTG_FS_IRQn);
-
-  NVIC_DisableIRQ(OTG_FS_IRQn);
-  do {
-    atecc_data.status = atcab_init(atecc_data.cfg_atecc608a_iface);
-    atecc_data.status = atcab_read_zone(ATCA_ZONE_DATA,
-                                        slot_8_serial,
-                                        0,
-                                        0,
-                                        atecc_data.device_serial,
-                                        DEVICE_SERIAL_SIZE);
-  } while (atecc_data.status != ATCA_SUCCESS && --atecc_data.retries);
-  if (usb_irq_enable_on_entry == true)
-    NVIC_EnableIRQ(OTG_FS_IRQn);
-
-  if (atecc_data.status == ATCA_SUCCESS) {
-    if (0 != memcmp(atecc_data.device_serial + 8, (void *)UID_BASE, 12)) {
-      return 1;
-    } else {
-      return SUCCESS;
-    }
-  }
-  return atecc_data.status;
-}
-
-provision_status_t check_provision_status() {
-  uint8_t cfg[128];
-  memset(cfg, 0, 128);
-  atecc_data.retries = DEFAULT_ATECC_RETRIES;
-
-  bool usb_irq_enable_on_entry = NVIC_GetEnableIRQ(OTG_FS_IRQn);
-  NVIC_DisableIRQ(OTG_FS_IRQn);
-  do {
-    atecc_data.status = atcab_init(atecc_data.cfg_atecc608a_iface);
-    atecc_data.status = atcab_read_config_zone(cfg);
-  } while (atecc_data.status != ATCA_SUCCESS && --atecc_data.retries);
-  if (usb_irq_enable_on_entry == true)
-    NVIC_EnableIRQ(OTG_FS_IRQn);
-
-  if (atecc_data.status != ATCA_SUCCESS) {
-    LOG_CRITICAL("xxx30: %d", atecc_data.status);
-    return -1;
-  }
-
-  if (cfg[86] == 0x00 &&
-      cfg[87] == 0x00) {    // config zone and data zones are locked
-
-    if (cfg[88] == 0xBF &&
-        cfg[89] ==
-            0xFE) {    // device serial and IO key are programmed and locked
-      return provision_incomplete;
-
-    } else if ((cfg[88] & ATECC_CFG_88_MASK) == 0x00 &&
-               (cfg[89] & ATECC_CFG_89_MASK) ==
-                   0x00) {    // private key slots are locked
-      return provision_complete;
-    } else if ((cfg[88] & ATECC_CFG_88_MASK_OLD_PROV) == 0x00 &&
-               (cfg[89] & ATECC_CFG_89_MASK) ==
-                   0x00) {    // NFC private key slot not locked
-      return provision_v1_complete;
-    } else {
-      return provision_empty;
-    }
-  } else {
-    return provision_empty;
-  }
-}
-
-void device_provision_controller() {
-#if X1WALLET_INITIAL
-  switch (flow_level.level_three) {
-    case GENERATE_PROVSION_DATA: {
-      uint8_t io_protection_key[IO_KEY_SIZE] = {0};
-      uint8_t serial_no[38] = {0};
-      uint8_t test_ecc608_configdata[128] = {
-          // changes : i2c address = 0x30, secure boot disabled,
-          0x01, 0x23, 0x00, 0x00,          // serial no part1
-          0x00, 0x00, 0x00, 0x00,          // rev no
-          0x00, 0x00, 0x00, 0x00, 0x01,    // serial no part2
-          0x01,                            // AES enabled
-          0x01,                            // I2C enabled
-          0x00,                            // reserved
-          0xC0,    // 0x60, //I2C address : coverts to 0x30
-          0x00,    // reserved
-          0x00,    // counter match disabled
-          0x00,    // 0x01, //chipmode
-          0x85, 0x00, 0x82, 0x00, 0x86, 0x46, 0x87, 0x46, 0x87, 0x46, 0x8F,
-          0x46, 0x8F, 0x0F, 0x9F, 0x8F, 0x0F, 0x0F, 0x8F, 0x0F, 0x0F, 0x8F,
-          0x0F, 0x8F, 0x0F, 0x8F, 0x0F, 0x0F, 0x0D, 0x1F, 0x0F, 0x0F, 0xFF,
-          0xFF, 0xFF,
-          0xFF,    // monotonic counter 0 not attached to any key
-          0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
-          0xFF,    // monotonic counter 1 not attached to any key
-          0x00, 0x00, 0x00, 0x00,
-          0x00,          // use lock key disabled
-          0x00,          // volatile key permission disabled
-          0x00, 0x00,    // secure boot not used
-          0x00,          // KdflvLoc not used
-          0x69, 0x76,    // KdflvStr not used
-          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,    // reserved
-          0x00,                                                    // use later
-          0x00,                      // not used I2C address
-          0x55,                      // data zone unlocked
-          0x55,                      // config zone unlocked
-          0xFF, 0xFF,                // slot unlocked
-          0x0E, 0x61,                // ChipOptions
-          0x00, 0x00, 0x00, 0x00,    // certificate formatting disabled
-          0x73, 0x00, 0x73, 0x00, 0x73, 0x00, 0x73, 0x00, 0x73, 0x00, 0x18,
-          0x00, 0x7C, 0x00, 0x3C, 0x00, 0x3C, 0x00, 0x3A, 0x00, 0x3C, 0x00,
-          0x30, 0x00, 0x3C, 0x00, 0x30, 0x00, 0x32, 0x00, 0x30, 0x00};
-
-      atecc_data.retries = DEFAULT_ATECC_RETRIES;
-
-      bool usb_irq_enable_on_entry = NVIC_GetEnableIRQ(OTG_FS_IRQn);
-      NVIC_DisableIRQ(OTG_FS_IRQn);
-      do {
-        OTG_FS_IRQHandler();
-        if (atecc_data.status != ATCA_SUCCESS) {
-          LOG_ERROR("PERR0-0x%02x", atecc_data.status);
-        }
-
-        // atecc initialize
-        atecc_data.status = atcab_init(atecc_data.cfg_atecc608a_iface);
-        if (atecc_data.status != ATCA_SUCCESS) {
-          continue;
-        }
-
-        // check atecc config and data zone lock atecc_data.status
-        bool is_locked = false;
-        atecc_data.status = atcab_is_locked(LOCK_ZONE_CONFIG, &is_locked);
-
-        if (!is_locked || atecc_data.status != ATCA_SUCCESS) {
-          atecc_data.status = atcab_write_config_zone(test_ecc608_configdata);
-          if (atecc_data.status != ATCA_SUCCESS) {
-            continue;
-          }
-
-          atecc_data.status = atcab_lock_config_zone();
-        }
-
-        is_locked = false;
-        atecc_data.status = atcab_is_locked(LOCK_ZONE_DATA, &is_locked);
-
-        if (!is_locked || atecc_data.status != ATCA_SUCCESS) {
-          atecc_data.status = atcab_lock_data_zone();
-        }
-
-        memset(atecc_data.device_serial, 0, DEVICE_SERIAL_SIZE);
-
-        provision_status_t provision_status = check_provision_status();
-        // check if device already provisioned
-        if (provision_status == provision_empty) {
-          // called again if not locked in previous configuration
-          is_locked = false;
-          atecc_data.status = atcab_is_locked(LOCK_ZONE_CONFIG, &is_locked);
-
-          if (!is_locked || atecc_data.status != ATCA_SUCCESS) {
-            atecc_data.status = atcab_lock_config_zone();
-          }
-
-          is_locked = false;
-          atecc_data.status = atcab_is_locked(LOCK_ZONE_DATA, &is_locked);
-
-          if (!is_locked || atecc_data.status != ATCA_SUCCESS) {
-            atecc_data.status = atcab_lock_data_zone();
-          }
-
-          // fill whole serial_no with random
-          atecc_data.status = atcab_random(serial_no);
-
-          // overwrite date 4bytes
-          memcpy(serial_no, provision_date, 4);
-
-          // overwrite hw no 4bytes
-          uint32_t u32Temp = FW_get_hardware_version();
-          memcpy(serial_no + 4, &u32Temp, 4);
-
-#if USE_SIMULATOR == 0
-          // overwrite MCU UID 12 bytes
-          u32Temp = HAL_GetUIDw0();
-          memcpy(serial_no + 8, &u32Temp, 4);
-          u32Temp = HAL_GetUIDw1();
-          memcpy(serial_no + 12, &u32Temp, 4);
-          u32Temp = HAL_GetUIDw2();
-          memcpy(serial_no + 16, &u32Temp, 4);
-#endif
-
-          atecc_data.status = atcab_write_zone(
-              ATCA_ZONE_DATA, slot_8_serial, 0, 0, serial_no, 32);
-          if (atecc_data.status != ATCA_SUCCESS) {
-            continue;
-          }
-
-          // generate and write IO key
-          random_generate(io_protection_key, IO_KEY_SIZE);
-          if (atecc_data.status != ATCA_SUCCESS) {
-            continue;
-          }
-
-          atecc_data.status = atcab_write_zone(ATCA_ZONE_DATA,
-                                               slot_6_io_key,
-                                               0,
-                                               0,
-                                               io_protection_key,
-                                               IO_KEY_SIZE);
-          if (atecc_data.status != ATCA_SUCCESS) {
-            continue;
-          }
-
-          if (atecc_data.status == ATCA_SUCCESS) {
-            if (set_io_protection_key(io_protection_key) == SUCCESS_) {
-              // locking IO_KEY and serial number slots
-              atecc_data.status = atcab_lock_data_slot(slot_6_io_key);
-              atecc_data.status = atcab_lock_data_slot(slot_8_serial);
-              get_device_serial();
-            } else {
-              memset(serial_no, 0, 32);
-              LOG_ERROR("PERR1-IO");
-              continue;
-            }
-          } else {
-            memset(serial_no, 0, 32);
-            LOG_ERROR("PERR1-0x%02x", atecc_data.status);
-            continue;
-          }
-        } else if (provision_status == provision_incomplete) {
-          get_device_serial();
-        } else {
-          lv_obj_clean(lv_scr_act());
-          mark_error_screen(ui_text_device_already_provisioned);
-          reset_flow_level();
-          flow_level.level_one = 6;
-          flow_level.show_error_screen = true;
-          return;
-        }
-      } while ((atecc_data.status != ATCA_SUCCESS) && (--atecc_data.retries));
-      if (usb_irq_enable_on_entry == true)
-        NVIC_EnableIRQ(OTG_FS_IRQn);
-
-      transmit_data_to_app(ADD_DEVICE_PROVISION, atecc_data.device_serial, 32);
-
-      flow_level.level_three = PROVISION_STATUS_WAIT;
-      lv_task_set_prio(listener_task,
-                       LV_TASK_PRIO_MID);    // explicitly enable task listener
-
-      timeout_task =
-          lv_task_create(__timeout_listener, 10000, LV_TASK_PRIO_HIGH, NULL);
-      lv_task_once(timeout_task);
-    } break;
-
-    case PROVISION_STATUS_WAIT: {
-      // do nothing, just wait
-    } break;
-
-    case PROVISION_SAVE_EXT_KEYS: {
-      uint8_t private_write_key[36] = {0};
-      Perm_Key_Data_Struct perm_key_data;
-      uint8_t digest[SHA256_DIGEST_LENGTH];
-      lv_task_del(timeout_task);
-
-      get_io_protection_key(perm_key_data.io_protection_key);
-
-      ecdsa_get_public_key33(&nist256p1,
-                             provision_keys_data.device_private_key,
-                             perm_key_data.ext_keys.device_auth_public_key);
-      if (0 != memcmp(provision_keys_data.device_public_key,
-                      perm_key_data.ext_keys.device_auth_public_key,
-                      33)) {
-        comm_reject_request(CONFIRM_PROVISION, 0);
-        flow_level.level_three = PROVISION_UNSUCCESSFUL;
-        break;
-      }
-
-      atecc_data.retries = DEFAULT_ATECC_RETRIES;
-      bool usb_irq_enable_on_entry = NVIC_GetEnableIRQ(OTG_FS_IRQn);
-      NVIC_DisableIRQ(OTG_FS_IRQn);
-      do {
-        OTG_FS_IRQHandler();
-        atecc_data.status = atcab_init(atecc_data.cfg_atecc608a_iface);
-        if (atecc_data.status != ATCA_SUCCESS) {
-          continue;
-        }
-
-        memset(private_write_key, 0, sizeof(private_write_key));
-        memcpy(
-            &private_write_key[4], provision_keys_data.device_private_key, 32);
-        atecc_data.status = atcab_priv_write(slot_2_auth_key,
-                                             private_write_key,
-                                             slot_6_io_key,
-                                             perm_key_data.io_protection_key);
-        if (atecc_data.status != ATCA_SUCCESS) {
-          LOG_ERROR("PERR2-0x%02x", atecc_data.status);
-          continue;
-        }
-
-        memset(private_write_key, 0, sizeof(private_write_key));
-        memcpy(&private_write_key[4], provision_keys_data.priv_key, 32);
-        atecc_data.status = atcab_priv_write(slot_3_nfc_pair_key,
-                                             private_write_key,
-                                             slot_6_io_key,
-                                             perm_key_data.io_protection_key);
-        if (atecc_data.status != ATCA_SUCCESS) {
-          LOG_ERROR("PERR3-0x%02x", atecc_data.status);
-          continue;
-        }
-      } while (atecc_data.status != ATCA_SUCCESS && --atecc_data.retries);
-      if (usb_irq_enable_on_entry == true)
-        NVIC_EnableIRQ(OTG_FS_IRQn);
-
-      if (atecc_data.status != ATCA_SUCCESS) {
-        comm_reject_request(CONFIRM_PROVISION, 0);
-        flow_level.level_three = PROVISION_UNSUCCESSFUL;
-        break;
-      }
-
-      sha256_Raw(provision_keys_data.priv_key,
-                 sizeof(provision_keys_data.priv_key),
-                 digest);
-      memcpy(perm_key_data.ext_keys.self_key_id, digest, FS_KEYSTORE_KEYID_LEN);
-      memcpy(perm_key_data.ext_keys.self_key_path,
-             provision_keys_data.self_key_path,
-             FS_KEYSTORE_KEYPATH_LEN);
-      memcpy(perm_key_data.ext_keys.card_root_xpub,
-             provision_keys_data.card_root_xpub,
-             FS_KEYSTORE_XPUB_LEN);
-
-      if (set_ext_key(&perm_key_data.ext_keys) == SUCCESS_) {
-        lock_all_slots();
-
-        if (check_provision_status() == provision_complete)
-          transmit_one_byte_confirm(CONFIRM_PROVISION);
-        else {
-          comm_reject_request(CONFIRM_PROVISION, 0);
-          flow_level.level_three = PROVISION_UNSUCCESSFUL;
-          LOG_ERROR("PERR5-LOCK");
-          break;
-        }
-      } else {
-        comm_reject_request(CONFIRM_PROVISION, 0);
-        flow_level.level_three = PROVISION_UNSUCCESSFUL;
-        LOG_ERROR("PERR2-KEY");
-        break;
-      }
-      reset_flow_level();
-      flow_level.level_one = 10;
-      lv_obj_clean(lv_scr_act());
-
-    } break;
-
-    case PROVISION_UNSUCCESSFUL: {
-      lv_obj_clean(lv_scr_act());
-      mark_error_screen(ui_text_provision_fail);
-      reset_flow_level();
-      flow_level.level_one = 6;
-      flow_level.show_error_screen = true;
-    } break;
-
-    default:
-      break;
-  }
-}
-
-void lock_all_slots() {
-  uint8_t usb_irq_enable_on_entry = NVIC_GetEnableIRQ(OTG_FS_IRQn);
-  NVIC_DisableIRQ(OTG_FS_IRQn);
-
-  atecc_data.retries = DEFAULT_ATECC_RETRIES;
-  bool lock = false;
-  uint32_t err_count = 0;
-  atecc_data.status = ATCA_FUNC_FAIL;
-  do {
-    err_count = 0;
-    for (uint32_t i = 0; i < sizeof(atecc_slot_to_lock); i++) {
-      lock = false;
-      atecc_data.status = atcab_is_slot_locked(atecc_slot_to_lock[i], &lock);
-      if (atecc_data.status != ATCA_SUCCESS) {
-        LOG_CRITICAL("PERR4=0x%02x, retry-%d, slot=%d",
-                     atecc_data.retries,
-                     atecc_data.status,
-                     atecc_slot_to_lock[i]);
-        err_count++;
-      } else if (lock == true) {
-        continue;
-      }
-      atecc_data.status = atcab_lock_data_slot(atecc_slot_to_lock[i]);
-      if (atecc_data.status != ATCA_SUCCESS) {
-        LOG_CRITICAL("PERR5=0x%02x, retry-%d, slot=%d",
-                     atecc_data.retries,
-                     atecc_data.status,
-                     atecc_slot_to_lock[i]);
-        err_count++;
-      }
-    }
-  } while (err_count != 0 && --atecc_data.retries);
-
-  if (usb_irq_enable_on_entry == true)
-    NVIC_EnableIRQ(OTG_FS_IRQn);
-}
-
-static void __timeout_listener() {
-  mark_error_screen(ui_text_provision_fail);
-  instruction_scr_destructor();
-  reset_flow_level();
-  flow_level.level_one =
-      6;    // on command not received take to get-started screen
-  lv_task_del(timeout_task);
-#endif
-}
\ No newline at end of file
diff --git a/src/level_four/core/controller/initial_verify_card_controller.c b/src/level_four/core/controller/initial_verify_card_controller.c
deleted file mode 100644
index d3c831fd3..000000000
--- a/src/level_four/core/controller/initial_verify_card_controller.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/**
- * @file    initial_verify_card_controller.c
- * @author  Cypherock X1 Team
- * @brief   Verify card next controller (initial).
- *          Handles post event (only next events) operations for card
- *verification flow initiated by desktop app.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "base58.h"
-#include "bip32.h"
-#include "buzzer.h"
-#include "communication.h"
-#include "controller_level_four.h"
-#include "controller_tap_cards.h"
-#include "curves.h"
-#include "flash_api.h"
-#include "nfc.h"
-#include "nist256p1.h"
-#include "ui_instruction.h"
-#if USE_SIMULATOR == 0
-#include "stm32l4xx_it.h"
-#endif
-
-uint8_t atecc_nfc_sign_hash(const uint8_t *hash, uint8_t *sign) {
-  atecc_data.retries = DEFAULT_ATECC_RETRIES;
-
-  bool usb_irq_enable_on_entry = NVIC_GetEnableIRQ(OTG_FS_IRQn);
-  NVIC_DisableIRQ(OTG_FS_IRQn);
-  do {
-    if (atecc_data.status != ATCA_SUCCESS)
-      LOG_CRITICAL("PAIR SG: %04x, count:%d",
-                   atecc_data.status,
-                   DEFAULT_ATECC_RETRIES - atecc_data.retries);
-    atcab_init(atecc_data.cfg_atecc608a_iface);
-    atecc_data.status = atcab_sign(slot_3_nfc_pair_key, hash, sign);
-  } while (atecc_data.status != ATCA_SUCCESS && --atecc_data.retries);
-  if (usb_irq_enable_on_entry == true)
-    NVIC_EnableIRQ(OTG_FS_IRQn);
-
-  return atecc_data.status;
-}
-
-uint8_t atecc_nfc_ecdh(const uint8_t *pub_key, uint8_t *shared_secret) {
-  uint8_t io_key[IO_KEY_SIZE];
-  atecc_data.retries = DEFAULT_ATECC_RETRIES;
-
-  if (get_io_protection_key(io_key) != SUCCESS_)
-    return -1;
-
-  bool usb_irq_enable_on_entry = NVIC_GetEnableIRQ(OTG_FS_IRQn);
-  NVIC_DisableIRQ(OTG_FS_IRQn);
-  do {
-    if (atecc_data.status != ATCA_SUCCESS)
-      LOG_CRITICAL("ECDH: %04x, count:%d",
-                   atecc_data.status,
-                   DEFAULT_ATECC_RETRIES - atecc_data.retries);
-    atcab_init(atecc_data.cfg_atecc608a_iface);
-    atecc_data.status =
-        atcab_ecdh_ioenc(slot_3_nfc_pair_key, pub_key, shared_secret, io_key);
-  } while (atecc_data.status != ATCA_SUCCESS && --atecc_data.retries);
-  if (usb_irq_enable_on_entry == true)
-    NVIC_EnableIRQ(OTG_FS_IRQn);
-
-  return atecc_data.status;
-}
\ No newline at end of file
diff --git a/src/level_four/core/controller/receive_transaction_controller_b_eth.c b/src/level_four/core/controller/receive_transaction_controller_b_eth.c
deleted file mode 100644
index 9d83662c5..000000000
--- a/src/level_four/core/controller/receive_transaction_controller_b_eth.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/**
- * @file    receive_transaction_controller_b_eth.c
- * @author  Cypherock X1 Team
- * @brief   Receive transaction next controller for ETH.
- *          Handles post event (only back/cancel events) operations for receive
- *transaction flow initiated by desktop app.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "communication.h"
-#include "controller_level_four.h"
-#include "ui_confirmation.h"
-#include "ui_instruction.h"
-
-extern Wallet_credential_data wallet_credential_data;
-
-void receive_transaction_controller_b_eth() {
-  switch (flow_level.level_three) {
-    case RECV_TXN_FIND_XPUB_ETH: {
-      comm_reject_request(RECV_TXN_USER_VERIFIED_COINS, 0);
-      reset_flow_level();
-      counter.next_event_flag = true;
-    } break;
-
-    case RECV_TXN_ENTER_PIN_ETH: {
-      comm_reject_request(USER_REJECT_PIN_INPUT, 0);
-      reset_flow_level();
-      memzero(flow_level.screen_input.input_text,
-              sizeof(flow_level.screen_input.input_text));
-      counter.next_event_flag = true;
-
-    } break;
-
-    case RECV_TXN_ENTER_PASSPHRASE_ETH: {
-      comm_reject_request(USER_REJECTED_PASSPHRASE_INPUT, 0);
-      reset_flow_level();
-      memzero(flow_level.screen_input.input_text,
-              sizeof(flow_level.screen_input.input_text));
-      counter.next_event_flag = true;
-    } break;
-
-    case RECV_TXN_CONFIRM_PASSPHRASE_ETH: {
-      memzero(wallet_credential_data.passphrase,
-              sizeof(wallet_credential_data.passphrase));
-      flow_level.level_three = RECV_TXN_ENTER_PASSPHRASE_ETH;
-    } break;
-
-    case RECV_TXN_DISPLAY_ADDR_ETH: {
-      comm_reject_request(RECV_TXN_USER_VERIFIED_ADDRESS, 0);
-      reset_flow_level();
-      counter.next_event_flag = true;
-    } break;
-
-    default:
-      break;
-  }
-  return;
-}
diff --git a/src/level_four/core/controller/receive_transaction_controller_b_near.c b/src/level_four/core/controller/receive_transaction_controller_b_near.c
deleted file mode 100644
index 7d3d00b58..000000000
--- a/src/level_four/core/controller/receive_transaction_controller_b_near.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/**
- * @file    receive_transaction_controller_b.c
- * @author  Cypherock X1 Team
- * @brief   Receive transaction back controller for BTC.
- *          Handles post event (only back/cancel events) operations for receive
- *transaction flow initiated by desktop app.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "communication.h"
-#include "controller_level_four.h"
-#include "ui_confirmation.h"
-#include "ui_instruction.h"
-
-void receive_transaction_controller_b_near() {
-  switch (flow_level.level_three) {
-    case RECV_TXN_FIND_XPUB_NEAR: {
-      comm_reject_request(RECV_TXN_USER_VERIFIED_COINS, 0);
-      reset_flow_level();
-    } break;
-
-    case RECV_TXN_ENTER_PIN_NEAR: {
-      comm_reject_request(USER_REJECT_PIN_INPUT, 0);
-      reset_flow_level();
-      memzero(flow_level.screen_input.input_text,
-              sizeof(flow_level.screen_input.input_text));
-
-    } break;
-
-    case RECV_TXN_ENTER_PASSPHRASE_NEAR: {
-      comm_reject_request(USER_REJECTED_PASSPHRASE_INPUT, 0);
-      reset_flow_level();
-      memzero(flow_level.screen_input.input_text,
-              sizeof(flow_level.screen_input.input_text));
-    } break;
-
-    case RECV_TXN_CONFIRM_PASSPHRASE_NEAR: {
-      memzero(wallet_credential_data.passphrase,
-              sizeof(wallet_credential_data.passphrase));
-      flow_level.level_three = RECV_TXN_ENTER_PASSPHRASE_NEAR;
-    } break;
-
-    case RECV_TXN_DISPLAY_ACC_NEAR: {
-      comm_reject_request(RECV_TXN_USER_VERIFIED_ADDRESS, 0);
-      reset_flow_level();
-    } break;
-
-    case RECV_TXN_DISPLAY_ADDR_NEAR: {
-      comm_reject_request(RECV_TXN_USER_VERIFIED_ADDRESS, 0);
-      reset_flow_level();
-    } break;
-
-    case RECV_TXN_SELECT_REPLACE_ACC_NEAR: {
-      comm_reject_request(RECV_TXN_REPLACE_ACCOUNT, 0);
-      reset_flow_level();
-
-    } break;
-
-    case RECV_TXN_VERIFY_SAVE_ACC_NEAR: {
-      flow_level.level_three = RECV_TXN_SELECT_REPLACE_ACC_NEAR;
-    } break;
-
-    default:
-      reset_flow_level();
-      break;
-  }
-}
diff --git a/src/level_four/core/controller/receive_transaction_controller_b_solana.c b/src/level_four/core/controller/receive_transaction_controller_b_solana.c
deleted file mode 100644
index fa9c4f15a..000000000
--- a/src/level_four/core/controller/receive_transaction_controller_b_solana.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/**
- * @file    receive_transaction_controller_b_solana.c
- * @author  Cypherock X1 Team
- * @brief   Receive transaction next controller for SOLANA.
- *          Handles post event (only back/cancel events) operations for receive
- *transaction flow initiated by desktop app.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "communication.h"
-#include "controller_level_four.h"
-#include "ui_confirmation.h"
-#include "ui_instruction.h"
-
-extern Wallet_credential_data wallet_credential_data;
-
-void receive_transaction_controller_b_solana() {
-  switch (flow_level.level_three) {
-    case RECV_TXN_FIND_XPUB_SOLANA: {
-      comm_reject_request(RECV_TXN_USER_VERIFIED_COINS, 0);
-      reset_flow_level();
-      counter.next_event_flag = true;
-    } break;
-
-    case RECV_TXN_ENTER_PIN_SOLANA: {
-      comm_reject_request(USER_REJECT_PIN_INPUT, 0);
-      reset_flow_level();
-      memzero(flow_level.screen_input.input_text,
-              sizeof(flow_level.screen_input.input_text));
-      counter.next_event_flag = true;
-
-    } break;
-
-    case RECV_TXN_ENTER_PASSPHRASE_SOLANA: {
-      comm_reject_request(USER_REJECTED_PASSPHRASE_INPUT, 0);
-      reset_flow_level();
-      memzero(flow_level.screen_input.input_text,
-              sizeof(flow_level.screen_input.input_text));
-      counter.next_event_flag = true;
-    } break;
-
-    case RECV_TXN_CONFIRM_PASSPHRASE_SOLANA: {
-      memzero(wallet_credential_data.passphrase,
-              sizeof(wallet_credential_data.passphrase));
-      flow_level.level_three = RECV_TXN_ENTER_PASSPHRASE_SOLANA;
-    } break;
-
-    case RECV_TXN_DISPLAY_ADDR_SOLANA: {
-      comm_reject_request(RECV_TXN_USER_VERIFIED_ADDRESS, 0);
-      reset_flow_level();
-      counter.next_event_flag = true;
-    } break;
-
-    default:
-      break;
-  }
-  return;
-}
diff --git a/src/level_four/core/controller/receive_transaction_controller_eth.c b/src/level_four/core/controller/receive_transaction_controller_eth.c
deleted file mode 100644
index 7049787fd..000000000
--- a/src/level_four/core/controller/receive_transaction_controller_eth.c
+++ /dev/null
@@ -1,220 +0,0 @@
-/**
- * @file    receive_transaction_controller_eth.c
- * @author  Cypherock X1 Team
- * @brief   Receive transaction next controller for ETH.
- *          Handles post event (only next events) operations for receive
- *transaction flow initiated by desktop app.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "bip32.h"
-#include "communication.h"
-#include "constant_texts.h"
-#include "controller_level_four.h"
-#include "controller_tap_cards.h"
-#include "harmony.h"
-#include "sha2.h"
-#include "shamir_wrapper.h"
-#include "ui_confirmation.h"
-#include "ui_instruction.h"
-
-extern Receive_Transaction_Data receive_transaction_data;
-extern Wallet_shamir_data wallet_shamir_data;
-extern Wallet_credential_data wallet_credential_data;
-
-void receive_transaction_controller_eth() {
-  switch (flow_level.level_three) {
-      // TODO: Rename RECV_TXN_FIND_XPUB in all receive tasks to a relevant name
-      // (PROCESS_METADATA)
-    case RECV_TXN_FIND_XPUB_ETH: {
-      memzero(wallet_credential_data.passphrase,
-              sizeof(wallet_credential_data.passphrase));
-      if (WALLET_IS_PASSPHRASE_SET(wallet.wallet_info)) {
-        flow_level.level_three = RECV_TXN_ENTER_PASSPHRASE_ETH;
-      } else {
-        flow_level.level_three = RECV_TXN_CHECK_PIN_ETH;
-      }
-    } break;
-
-    case RECV_TXN_ENTER_PASSPHRASE_ETH: {
-      flow_level.level_three = RECV_TXN_CONFIRM_PASSPHRASE_ETH;
-    } break;
-
-    case RECV_TXN_CONFIRM_PASSPHRASE_ETH: {
-      snprintf(wallet_credential_data.passphrase,
-               sizeof(wallet_credential_data.passphrase),
-               "%s",
-               flow_level.screen_input.input_text);
-      memzero(flow_level.screen_input.input_text,
-              sizeof(flow_level.screen_input.input_text));
-      flow_level.level_three = RECV_TXN_CHECK_PIN_ETH;
-      flow_level.level_one = 1;
-    } break;
-
-    case RECV_TXN_CHECK_PIN_ETH: {
-      if (WALLET_IS_PIN_SET(wallet.wallet_info)) {
-        flow_level.level_three = RECV_TXN_ENTER_PIN_ETH;
-      } else {
-        flow_level.level_three = RECV_TXN_TAP_CARD_ETH;
-      }
-    } break;
-
-    case RECV_TXN_ENTER_PIN_ETH: {
-      sha256_Raw((uint8_t *)flow_level.screen_input.input_text,
-                 strnlen(flow_level.screen_input.input_text,
-                         sizeof(flow_level.screen_input.input_text)),
-                 wallet_credential_data.password_single_hash);
-      sha256_Raw(wallet_credential_data.password_single_hash,
-                 SHA256_DIGEST_LENGTH,
-                 wallet.password_double_hash);
-      memzero(flow_level.screen_input.input_text,
-              sizeof(flow_level.screen_input.input_text));
-      flow_level.level_three = RECV_TXN_TAP_CARD_ETH;
-    } break;
-
-    case RECV_TXN_TAP_CARD_ETH: {
-      tap_card_data.desktop_control = true;
-      tap_threshold_cards_for_reconstruction_flow_controller(1);
-    } break;
-
-    case RECV_TXN_TAP_CARD_SEND_CMD_ETH: {
-      flow_level.level_three = RECV_TXN_READ_DEVICE_SHARE_ETH;
-    } break;
-
-    case RECV_TXN_READ_DEVICE_SHARE_ETH:
-      wallet_shamir_data.share_x_coords[1] = 5;
-      get_flash_wallet_share_by_name((const char *)wallet.wallet_name,
-                                     wallet_shamir_data.mnemonic_shares[1]);
-      memcpy(wallet_shamir_data.share_encryption_data[1],
-             wallet_shamir_data.share_encryption_data[0],
-             PADDED_NONCE_SIZE + WALLET_MAC_SIZE);
-      flow_level.level_three = RECV_TXN_DERIVE_ADD_SCREEN_ETH;
-      break;
-
-    case RECV_TXN_DERIVE_ADD_SCREEN_ETH: {
-      flow_level.level_three = RECV_TXN_DERIVE_ADD_ETH;
-    } break;
-
-    case RECV_TXN_DERIVE_ADD_ETH: {
-      uint8_t secret[BLOCK_SIZE];
-      if (WALLET_IS_PIN_SET(wallet.wallet_info))
-        decrypt_shares();
-      recover_secret_from_shares(BLOCK_SIZE,
-                                 MINIMUM_NO_OF_SHARES,
-                                 wallet_shamir_data.mnemonic_shares,
-                                 wallet_shamir_data.share_x_coords,
-                                 secret);
-      memzero(wallet_shamir_data.mnemonic_shares,
-              sizeof(wallet_shamir_data.mnemonic_shares));
-      mnemonic_clear();
-      const char *mnemo =
-          mnemonic_from_data(secret, wallet.number_of_mnemonics * 4 / 3);
-      HDNode node;
-      uint8_t seed[64];
-
-      memzero(seed, sizeof(seed));
-      mnemonic_to_seed(mnemo, wallet_credential_data.passphrase, seed, NULL);
-      mnemonic_clear();
-      memzero(wallet_credential_data.passphrase,
-              sizeof(wallet_credential_data.passphrase));
-      hdnode_from_seed(seed, sizeof(seed), SECP256K1_NAME, &node);
-
-      hdnode_private_ckd(
-          &node, BYTE_ARRAY_TO_UINT32(receive_transaction_data.purpose));
-      hdnode_private_ckd(
-          &node, BYTE_ARRAY_TO_UINT32(receive_transaction_data.coin_index));
-      hdnode_private_ckd(
-          &node, BYTE_ARRAY_TO_UINT32(receive_transaction_data.account_index));
-
-      hdnode_fill_public_key(&node);
-
-      hdnode_public_ckd(
-          &node, BYTE_ARRAY_TO_UINT32(receive_transaction_data.change_index));
-      hdnode_fill_public_key(&node);
-      hdnode_public_ckd(
-          &node, BYTE_ARRAY_TO_UINT32(receive_transaction_data.address_index));
-      hdnode_fill_public_key(&node);
-      hdnode_get_ethereum_pubkeyhash(&node,
-                                     receive_transaction_data.eth_pubkeyhash);
-
-      flow_level.level_three = RECV_TXN_DISPLAY_ADDR_ETH;
-    } break;
-
-    case RECV_TXN_DISPLAY_ADDR_ETH: {
-      uint64_t chain_id = receive_transaction_data.network_chain_id;
-      uint8_t data[1 + sizeof(receive_transaction_data.address) +
-                   1];    // confirm byte + address length + null byte
-      size_t datalen;
-      data[0] = 1;    // confirmation byte
-      if (chain_id != HARMONY_MAINNET_CHAIN) {
-        memcpy(data + 1,
-               receive_transaction_data.eth_pubkeyhash,
-               sizeof(receive_transaction_data.eth_pubkeyhash));
-        datalen = 1 + sizeof(receive_transaction_data.eth_pubkeyhash);
-      } else {
-        strncpy((char *)data + 1,
-                receive_transaction_data.address,
-                sizeof(data) - 1);
-        datalen = strnlen((char *)data,
-                          sizeof(data));    // send excluding the null byte
-      }
-      transmit_data_to_app(RECV_TXN_USER_VERIFIED_ADDRESS, data, datalen);
-      reset_flow_level();
-    } break;
-
-    default:
-      break;
-  }
-
-  return;
-}
diff --git a/src/level_four/core/controller/receive_transaction_controller_near.c b/src/level_four/core/controller/receive_transaction_controller_near.c
deleted file mode 100644
index d657d358e..000000000
--- a/src/level_four/core/controller/receive_transaction_controller_near.c
+++ /dev/null
@@ -1,364 +0,0 @@
-/**
- * @file    receive_transaction_controller.c
- * @author  Cypherock X1 Team
- * @brief   Receive transaction next controller (for BTC).
- *          Handles post event (only next events) operations for receive
- *transaction flow initiated by desktop app.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "bip32.h"
-#include "communication.h"
-#include "constant_texts.h"
-#include "controller_level_four.h"
-#include "controller_tap_cards.h"
-#include "near_context.h"
-#include "sha2.h"
-#include "shamir_wrapper.h"
-#include "ui_confirmation.h"
-#include "ui_instruction.h"
-
-extern Wallet_credential_data wallet_credential_data;
-
-extern Receive_Transaction_Data receive_transaction_data;
-Coin_Specific_Data_Struct coin_specific_data;
-
-void receive_transaction_controller_near() {
-  switch (flow_level.level_three) {
-    case RECV_TXN_FIND_XPUB_NEAR: {
-      receive_transaction_data.near_acc_found = false;
-
-      if (false && receive_transaction_data.near_account_type == 1) {
-        coin_specific_data.coin_type = COIN_TYPE_NEAR;
-        memcpy(coin_specific_data.wallet_id,
-               receive_transaction_data.wallet_id,
-               WALLET_ID_SIZE);
-        coin_specific_data.coin_data =
-            (uint8_t *)cy_malloc(NEAR_COIN_DATA_MAX_LEN);
-        uint16_t len = 0;
-
-        get_coin_data(&coin_specific_data, NEAR_COIN_DATA_MAX_LEN, &len);
-        size_t acc_count =
-            near_get_account_ids_count(coin_specific_data.coin_data, len);
-        receive_transaction_data.near_acc_count = acc_count;
-
-        char *acc_id[NEAR_REGISTERED_ACCOUNT_COUNT] = {0};
-
-        near_deserialize_account_ids(
-            coin_specific_data.coin_data, len, acc_id, acc_count);
-
-        for (size_t i = 0; i < NEAR_REGISTERED_ACCOUNT_COUNT; i++) {
-          if (strcmp(acc_id[i],
-                     receive_transaction_data.near_registered_account) == 0) {
-            receive_transaction_data.near_acc_found = true;
-            break;
-          }
-        }
-      }
-
-      memzero(wallet_credential_data.passphrase,
-              sizeof(wallet_credential_data.passphrase));
-      if (WALLET_IS_PASSPHRASE_SET(wallet.wallet_info)) {
-        flow_level.level_three = RECV_TXN_ENTER_PASSPHRASE_NEAR;
-      } else {
-        flow_level.level_three = RECV_TXN_CHECK_PIN_NEAR;
-      }
-    } break;
-
-    case RECV_TXN_ENTER_PASSPHRASE_NEAR: {
-      flow_level.level_three = RECV_TXN_CONFIRM_PASSPHRASE_NEAR;
-    } break;
-
-    case RECV_TXN_CONFIRM_PASSPHRASE_NEAR: {
-      snprintf(wallet_credential_data.passphrase,
-               sizeof(wallet_credential_data.passphrase),
-               "%s",
-               flow_level.screen_input.input_text);
-      memzero(flow_level.screen_input.input_text,
-              sizeof(flow_level.screen_input.input_text));
-      flow_level.level_three = RECV_TXN_CHECK_PIN_NEAR;
-      flow_level.level_one = 1;
-    } break;
-
-    case RECV_TXN_CHECK_PIN_NEAR: {
-      if (WALLET_IS_PIN_SET(wallet.wallet_info)) {
-        flow_level.level_three = RECV_TXN_ENTER_PIN_NEAR;
-      } else {
-        flow_level.level_three = RECV_TXN_TAP_CARD_NEAR;
-      }
-    } break;
-
-    case RECV_TXN_ENTER_PIN_NEAR: {
-      sha256_Raw((uint8_t *)flow_level.screen_input.input_text,
-                 strnlen(flow_level.screen_input.input_text,
-                         sizeof(flow_level.screen_input.input_text)),
-                 wallet_credential_data.password_single_hash);
-      sha256_Raw(wallet_credential_data.password_single_hash,
-                 SHA256_DIGEST_LENGTH,
-                 wallet.password_double_hash);
-      memzero(flow_level.screen_input.input_text,
-              sizeof(flow_level.screen_input.input_text));
-
-      flow_level.level_three = RECV_TXN_TAP_CARD_NEAR;
-    } break;
-
-    case RECV_TXN_TAP_CARD_NEAR: {
-      tap_card_data.desktop_control = true;
-      // TODO: Shorten func name
-      tap_threshold_cards_for_reconstruction_flow_controller(1);
-    } break;
-
-    case RECV_TXN_TAP_CARD_SEND_CMD_NEAR: {
-      flow_level.level_three = RECV_TXN_READ_DEVICE_SHARE_NEAR;
-      if (!receive_transaction_data.near_acc_found &&
-          receive_transaction_data.near_account_type == 1)
-        transmit_one_byte(RECV_TXN_XPUBS_EXISTS_ON_DEVICE, 1);
-    } break;
-
-    case RECV_TXN_READ_DEVICE_SHARE_NEAR:
-      wallet_shamir_data.share_x_coords[1] = 5;
-      get_flash_wallet_share_by_name((const char *)wallet.wallet_name,
-                                     wallet_shamir_data.mnemonic_shares[1]);
-      memcpy(wallet_shamir_data.share_encryption_data[1],
-             wallet_shamir_data.share_encryption_data[0],
-             PADDED_NONCE_SIZE + WALLET_MAC_SIZE);
-      flow_level.level_three = RECV_TXN_DERIVE_ADD_SCREEN_NEAR;
-      break;
-
-    case RECV_TXN_DERIVE_ADD_SCREEN_NEAR: {
-      flow_level.level_three = RECV_TXN_DERIVE_ADD_NEAR;
-    } break;
-
-    case RECV_TXN_DERIVE_ADD_NEAR: {
-      // TODO: Extract common part i.e. secret recreation and public key
-      // derication
-      uint8_t secret[BLOCK_SIZE] = {0};
-      if (WALLET_IS_PIN_SET(wallet.wallet_info))
-        decrypt_shares();
-      recover_secret_from_shares(BLOCK_SIZE,
-                                 MINIMUM_NO_OF_SHARES,
-                                 wallet_shamir_data.mnemonic_shares,
-                                 wallet_shamir_data.share_x_coords,
-                                 secret);
-      memzero(wallet_shamir_data.share_encryption_data,
-              sizeof(wallet_shamir_data.share_encryption_data));
-      mnemonic_clear();
-      const char *mnemo =
-          mnemonic_from_data(secret, wallet.number_of_mnemonics * 4 / 3);
-      HDNode node;
-      uint8_t seed[64] = {0};
-
-      memzero(seed, sizeof(seed));
-
-      mnemonic_to_seed(mnemo, wallet_credential_data.passphrase, seed, NULL);
-      mnemonic_clear();
-      memzero(wallet_credential_data.passphrase,
-              sizeof(wallet_credential_data.passphrase));
-
-      uint32_t path[] = {
-          BYTE_ARRAY_TO_UINT32(receive_transaction_data.purpose),
-          BYTE_ARRAY_TO_UINT32(receive_transaction_data.coin_index),
-          BYTE_ARRAY_TO_UINT32(receive_transaction_data.account_index),
-          BYTE_ARRAY_TO_UINT32(receive_transaction_data.change_index),
-          BYTE_ARRAY_TO_UINT32(receive_transaction_data.address_index),
-      };
-      derive_hdnode_from_path(path, 5, ED25519_NAME, seed, &node);
-      memzero(path, sizeof(path));
-      memzero(receive_transaction_data.near_pubkey,
-              sizeof(receive_transaction_data.near_pubkey));
-      memcpy(receive_transaction_data.near_pubkey,
-             node.public_key + 1,
-             32 * sizeof(uint8_t));
-
-      if (receive_transaction_data.near_account_type == 0 ||
-          receive_transaction_data.near_acc_found) {
-        flow_level.level_three = RECV_TXN_DISPLAY_ADDR_NEAR;
-        instruction_scr_destructor();
-      } else {
-        flow_level.level_three = RECV_TXN_WAIT_FOR_LINK_NEAR;
-      }
-    } break;
-
-    case RECV_TXN_WAIT_FOR_LINK_NEAR: {
-      uint8_t *data = NULL;
-      uint16_t size = 0;
-      if (get_usb_msg_by_cmd_type(
-              RECV_TXN_USER_VERIFIED_ACCOUNT, &data, &size)) {
-        flow_level.level_three = RECV_TXN_DISPLAY_ACC_NEAR;
-        clear_message_received_data();
-        instruction_scr_destructor();
-      }
-    } break;
-
-    case RECV_TXN_DISPLAY_ACC_NEAR: {
-      flow_level.level_three = RECV_TXN_DISPLAY_ADDR_NEAR;
-    } break;
-
-    case RECV_TXN_DISPLAY_ADDR_NEAR: {
-      flow_level.level_three = RECV_TXN_FINAL_SCREEN_NEAR;
-
-      uint8_t data[1 + sizeof(receive_transaction_data.near_pubkey)] = {0};
-      data[0] = 1;    // confirmation byte
-
-      if (receive_transaction_data.near_account_type == 1 &&
-          !receive_transaction_data.near_acc_found) {
-        if (receive_transaction_data.near_acc_count <
-            NEAR_REGISTERED_ACCOUNT_COUNT) {
-          uint16_t len = 0;
-          memzero(coin_specific_data.coin_data, NEAR_COIN_DATA_MAX_LEN);
-          get_coin_data(&coin_specific_data, NEAR_COIN_DATA_MAX_LEN, &len);
-
-          char *acc_id[NEAR_REGISTERED_ACCOUNT_COUNT] = {0};
-
-          near_deserialize_account_ids(coin_specific_data.coin_data,
-                                       len,
-                                       acc_id,
-                                       receive_transaction_data.near_acc_count);
-
-          acc_id[receive_transaction_data.near_acc_count] =
-              receive_transaction_data.near_registered_account;
-
-          uint8_t new_near_coin_data[NEAR_COIN_DATA_MAX_LEN] = {0};
-          len = 0;
-
-          near_serialize_account_ids(
-              (const char **)acc_id,
-              receive_transaction_data.near_acc_count + 1,
-              new_near_coin_data,
-              &len);
-          memcpy(coin_specific_data.coin_data,
-                 new_near_coin_data,
-                 NEAR_COIN_DATA_MAX_LEN);
-
-          int status = set_coin_data(&coin_specific_data, len);
-          if (status != 0) {
-            comm_reject_request(COIN_SPECIFIC_DATA_ERROR, status);
-            reset_flow_level();
-            return;
-          }
-        } else {
-          data[0] = 2;
-          flow_level.level_three = RECV_TXN_WAIT_FOR_REPLACE_NEAR_SCREEN;
-        }
-      }
-
-      memcpy(data + 1,
-             receive_transaction_data.near_pubkey,
-             sizeof(receive_transaction_data.near_pubkey));
-      transmit_data_to_app(RECV_TXN_USER_VERIFIED_ADDRESS, data, sizeof(data));
-    } break;
-
-    case RECV_TXN_WAIT_FOR_REPLACE_NEAR_SCREEN: {
-      flow_level.level_three = RECV_TXN_WAIT_FOR_REPLACE_NEAR;
-    } break;
-
-    case RECV_TXN_WAIT_FOR_REPLACE_NEAR: {
-      uint8_t *data = NULL;
-      uint16_t size = 0;
-      if (get_usb_msg_by_cmd_type(RECV_TXN_REPLACE_ACCOUNT, &data, &size)) {
-        flow_level.level_three = RECV_TXN_SELECT_REPLACE_ACC_NEAR;
-        clear_message_received_data();
-        instruction_scr_destructor();
-      }
-    } break;
-
-    case RECV_TXN_SELECT_REPLACE_ACC_NEAR: {
-      flow_level.level_three = RECV_TXN_VERIFY_SAVE_ACC_NEAR;
-    } break;
-
-    case RECV_TXN_VERIFY_SAVE_ACC_NEAR: {
-      uint16_t filled_length = 0;
-      memzero(coin_specific_data.coin_data, NEAR_COIN_DATA_MAX_LEN);
-
-      get_coin_data(
-          &coin_specific_data, NEAR_COIN_DATA_MAX_LEN, &filled_length);
-      size_t acc_count = near_get_account_ids_count(
-          coin_specific_data.coin_data, filled_length);
-
-      char *acc_id[NEAR_REGISTERED_ACCOUNT_COUNT] = {0};
-
-      near_deserialize_account_ids(
-          coin_specific_data.coin_data, filled_length, acc_id, acc_count);
-
-      acc_id[receive_transaction_data.near_acc_index] =
-          receive_transaction_data.near_registered_account;
-
-      uint8_t new_near_coin_data[NEAR_COIN_DATA_MAX_LEN] = {0};
-      filled_length = 0;
-      near_serialize_account_ids(
-          (const char **)acc_id, acc_count, new_near_coin_data, &filled_length);
-      memcpy(coin_specific_data.coin_data,
-             new_near_coin_data,
-             NEAR_COIN_DATA_MAX_LEN);
-
-      int status = set_coin_data(&coin_specific_data, filled_length);
-      if (status != 0) {
-        comm_reject_request(COIN_SPECIFIC_DATA_ERROR, status);
-        reset_flow_level();
-        return;
-      }
-
-      transmit_one_byte_confirm(RECV_TXN_REPLACE_ACCOUNT);
-      reset_flow_level();
-    } break;
-
-    case RECV_TXN_FINAL_SCREEN_NEAR: {
-      reset_flow_level();
-    } break;
-
-    default:
-      break;
-  }
-
-  return;
-}
diff --git a/src/level_four/core/controller/receive_transaction_controller_solana.c b/src/level_four/core/controller/receive_transaction_controller_solana.c
deleted file mode 100644
index 397c5b16e..000000000
--- a/src/level_four/core/controller/receive_transaction_controller_solana.c
+++ /dev/null
@@ -1,205 +0,0 @@
-/**
- * @file    receive_transaction_controller_solana.c
- * @author  Cypherock X1 Team
- * @brief   Receive transaction next controller for SOLANA.
- *          Handles post event (only next events) operations for receive
- *transaction flow initiated by desktop app.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "bip32.h"
-#include "communication.h"
-#include "constant_texts.h"
-#include "controller_level_four.h"
-#include "controller_tap_cards.h"
-#include "sha2.h"
-#include "shamir_wrapper.h"
-#include "ui_confirmation.h"
-#include "ui_instruction.h"
-
-extern Receive_Transaction_Data receive_transaction_data;
-extern Wallet_shamir_data wallet_shamir_data;
-extern Wallet_credential_data wallet_credential_data;
-
-void receive_transaction_controller_solana() {
-  switch (flow_level.level_three) {
-    case RECV_TXN_FIND_XPUB_SOLANA: {
-      memzero(wallet_credential_data.passphrase,
-              sizeof(wallet_credential_data.passphrase));
-      if (WALLET_IS_PASSPHRASE_SET(wallet.wallet_info)) {
-        flow_level.level_three = RECV_TXN_ENTER_PASSPHRASE_SOLANA;
-      } else {
-        flow_level.level_three = RECV_TXN_CHECK_PIN_SOLANA;
-      }
-    } break;
-
-    case RECV_TXN_ENTER_PASSPHRASE_SOLANA: {
-      flow_level.level_three = RECV_TXN_CONFIRM_PASSPHRASE_SOLANA;
-    } break;
-
-    case RECV_TXN_CONFIRM_PASSPHRASE_SOLANA: {
-      snprintf(wallet_credential_data.passphrase,
-               sizeof(wallet_credential_data.passphrase),
-               "%s",
-               flow_level.screen_input.input_text);
-      memzero(flow_level.screen_input.input_text,
-              sizeof(flow_level.screen_input.input_text));
-      flow_level.level_three = RECV_TXN_CHECK_PIN_SOLANA;
-    } break;
-
-    case RECV_TXN_CHECK_PIN_SOLANA: {
-      if (WALLET_IS_PIN_SET(wallet.wallet_info)) {
-        flow_level.level_three = RECV_TXN_ENTER_PIN_SOLANA;
-      } else {
-        flow_level.level_three = RECV_TXN_TAP_CARD_SOLANA;
-      }
-    } break;
-
-    case RECV_TXN_ENTER_PIN_SOLANA: {
-      sha256_Raw((uint8_t *)flow_level.screen_input.input_text,
-                 strnlen(flow_level.screen_input.input_text,
-                         sizeof(flow_level.screen_input.input_text)),
-                 wallet_credential_data.password_single_hash);
-      sha256_Raw(wallet_credential_data.password_single_hash,
-                 SHA256_DIGEST_LENGTH,
-                 wallet.password_double_hash);
-      memzero(flow_level.screen_input.input_text,
-              sizeof(flow_level.screen_input.input_text));
-      flow_level.level_three = RECV_TXN_TAP_CARD_SOLANA;
-    } break;
-
-    case RECV_TXN_TAP_CARD_SOLANA: {
-      tap_card_data.desktop_control = true;
-      tap_threshold_cards_for_reconstruction_flow_controller(1);
-    } break;
-
-    case RECV_TXN_TAP_CARD_SEND_CMD_SOLANA: {
-      flow_level.level_three = RECV_TXN_READ_DEVICE_SHARE_SOLANA;
-    } break;
-
-    case RECV_TXN_READ_DEVICE_SHARE_SOLANA:
-      wallet_shamir_data.share_x_coords[1] = 5;
-      get_flash_wallet_share_by_name((const char *)wallet.wallet_name,
-                                     wallet_shamir_data.mnemonic_shares[1]);
-      memcpy(wallet_shamir_data.share_encryption_data[1],
-             wallet_shamir_data.share_encryption_data[0],
-             PADDED_NONCE_SIZE + WALLET_MAC_SIZE);
-      flow_level.level_three = RECV_TXN_DERIVE_ADD_SCREEN_SOLANA;
-      break;
-
-    case RECV_TXN_DERIVE_ADD_SCREEN_SOLANA: {
-      flow_level.level_three = RECV_TXN_DERIVE_ADD_SOLANA;
-    } break;
-
-    case RECV_TXN_DERIVE_ADD_SOLANA: {
-      uint8_t secret[BLOCK_SIZE];
-      if (WALLET_IS_PIN_SET(wallet.wallet_info))
-        decrypt_shares();
-      recover_secret_from_shares(BLOCK_SIZE,
-                                 MINIMUM_NO_OF_SHARES,
-                                 wallet_shamir_data.mnemonic_shares,
-                                 wallet_shamir_data.share_x_coords,
-                                 secret);
-      memzero(wallet_shamir_data.mnemonic_shares,
-              sizeof(wallet_shamir_data.mnemonic_shares));
-      mnemonic_clear();
-      const char *mnemo =
-          mnemonic_from_data(secret, wallet.number_of_mnemonics * 4 / 3);
-      HDNode node;
-      uint8_t seed[64] = {0};
-
-      memzero(seed, sizeof(seed));
-
-      mnemonic_to_seed(mnemo, wallet_credential_data.passphrase, seed, NULL);
-      mnemonic_clear();
-      memzero(wallet_credential_data.passphrase,
-              sizeof(wallet_credential_data.passphrase));
-
-      uint32_t path[] = {
-          BYTE_ARRAY_TO_UINT32(receive_transaction_data.purpose),
-          BYTE_ARRAY_TO_UINT32(receive_transaction_data.coin_index),
-          BYTE_ARRAY_TO_UINT32(receive_transaction_data.account_index),
-          BYTE_ARRAY_TO_UINT32(receive_transaction_data.change_index),
-          BYTE_ARRAY_TO_UINT32(receive_transaction_data.address_index),
-      };
-      size_t depth =
-          sol_get_derivation_depth(receive_transaction_data.address_tag);
-      derive_hdnode_from_path(path, depth, ED25519_NAME, seed, &node);
-      size_t public_key_size = sizeof(receive_transaction_data.solana_address);
-      memzero(receive_transaction_data.solana_address,
-              sizeof(receive_transaction_data.solana_address));
-      b58enc(receive_transaction_data.solana_address,
-             &public_key_size,
-             (char *)(node.public_key + 1),
-             32);
-      memzero(path, sizeof(path));
-
-      flow_level.level_three = RECV_TXN_DISPLAY_ADDR_SOLANA;
-    } break;
-
-    case RECV_TXN_DISPLAY_ADDR_SOLANA: {
-      uint8_t data[1 + sizeof(receive_transaction_data.solana_address)];
-      data[0] = 1;    // confirmation byte
-      memcpy(data + 1,
-             receive_transaction_data.solana_address,
-             sizeof(receive_transaction_data.solana_address));
-      transmit_data_to_app(RECV_TXN_USER_VERIFIED_ADDRESS, data, sizeof(data));
-      reset_flow_level();
-    } break;
-
-    default:
-      break;
-  }
-
-  return;
-}
diff --git a/src/level_four/core/controller/send_transaction_controller_b_eth.c b/src/level_four/core/controller/send_transaction_controller_b_eth.c
deleted file mode 100644
index c0bac96b2..000000000
--- a/src/level_four/core/controller/send_transaction_controller_b_eth.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/**
- * @file    send_transaction_controller_b_eth.c
- * @author  Cypherock X1 Team
- * @brief   Send transaction back controller for ETH.
- *          Handles post event (only back/cancel events) operations for send
- *transaction flow initiated by desktop app.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "communication.h"
-#include "controller_level_four.h"
-
-extern Wallet_credential_data wallet_credential_data;
-void send_transaction_controller_b_eth() {
-  switch (flow_level.level_three) {
-    case SEND_TXN_VERIFY_COIN_ETH: {
-      comm_reject_request(SEND_TXN_REQ_UNSIGNED_TXN, 0);
-      reset_flow_level();
-      counter.next_event_flag = true;
-    } break;
-
-    case SEND_TXN_VERIFY_TXN_NONCE_ETH: {
-      comm_reject_request(SEND_TXN_USER_VERIFIES_ADDRESS, 4);
-      reset_flow_level();
-      counter.next_event_flag = true;
-    }
-
-    case SEND_TXN_CALCULATE_AMOUNT_ETH: {
-      comm_reject_request(SEND_TXN_USER_VERIFIES_ADDRESS, 2);
-      reset_flow_level();
-      counter.next_event_flag = true;
-    } break;
-
-    case SEND_TXN_VERIFY_CONTRACT_ADDRESS:
-    case SEND_TXN_VERIFY_BLIND_SIGNING_ETH:
-    case SEND_TXN_VERIFY_DERIVATION_PATH:
-    case SEND_TXN_VERIFY_RECEIPT_ADDRESS_ETH: {
-      comm_reject_request(SEND_TXN_USER_VERIFIES_ADDRESS, 0);
-      reset_flow_level();
-      counter.next_event_flag = true;
-    } break;
-
-    case SEND_TXN_VERIFY_RECEIPT_AMOUNT_ETH: {
-      comm_reject_request(SEND_TXN_USER_VERIFIES_ADDRESS, 2);
-      reset_flow_level();
-      counter.next_event_flag = true;
-    } break;
-
-    case SEND_TXN_VERIFY_RECEIPT_FEES_ETH: {
-      comm_reject_request(SEND_TXN_USER_VERIFIES_ADDRESS, 3);
-      reset_flow_level();
-      counter.next_event_flag = true;
-    } break;
-
-    case SEND_TXN_DISPLAY_INFO_ETH: {
-      comm_reject_request(SEND_TXN_USER_VERIFIES_ADDRESS, 4);
-      reset_flow_level();
-      counter.next_event_flag = true;
-    } break;
-
-    case SEND_TXN_ENTER_PIN_ETH: {
-      comm_reject_request(USER_REJECT_PIN_INPUT, 0);
-      reset_flow_level();
-      memzero(flow_level.screen_input.input_text,
-              sizeof(flow_level.screen_input.input_text));
-      counter.next_event_flag = true;
-    } break;
-
-    case SEND_TXN_ENTER_PASSPHRASE_ETH: {
-      comm_reject_request(USER_REJECTED_PASSPHRASE_INPUT, 0);
-      reset_flow_level();
-      memzero(flow_level.screen_input.input_text,
-              sizeof(flow_level.screen_input.input_text));
-      counter.next_event_flag = true;
-    } break;
-
-    case SEND_TXN_CONFIRM_PASSPHRASE_ETH: {
-      memzero(wallet_credential_data.passphrase,
-              sizeof(wallet_credential_data.passphrase));
-      flow_level.level_three = SEND_TXN_ENTER_PASSPHRASE_ETH;
-    } break;
-
-    default:
-      break;
-  }
-}
\ No newline at end of file
diff --git a/src/level_four/core/controller/send_transaction_controller_b_solana.c b/src/level_four/core/controller/send_transaction_controller_b_solana.c
deleted file mode 100644
index f3cff547e..000000000
--- a/src/level_four/core/controller/send_transaction_controller_b_solana.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/**
- * @file    send_transaction_controller_b_solana.c
- * @author  Cypherock X1 Team
- * @brief   Send transaction back controller for SOLANA.
- *          Handles post event (only back/cancel events) operations for send
- *transaction flow initiated by desktop app.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "communication.h"
-#include "controller_level_four.h"
-
-extern Wallet_credential_data wallet_credential_data;
-void send_transaction_controller_b_solana() {
-  switch (flow_level.level_three) {
-    case SEND_TXN_VERIFY_COIN_SOLANA: {
-      comm_reject_request(SEND_TXN_REQ_UNSIGNED_TXN, 0);
-      reset_flow_level();
-      counter.next_event_flag = true;
-    } break;
-
-    case SEND_TXN_CALCULATE_AMOUNT_SOLANA: {
-      comm_reject_request(SEND_TXN_USER_VERIFIES_ADDRESS, 2);
-      reset_flow_level();
-      counter.next_event_flag = true;
-    } break;
-
-    case SEND_TXN_VERIFY_CONTRACT_ADDRESS:
-    case SEND_TXN_VERIFY_RECEIPT_ADDRESS_SOLANA: {
-      comm_reject_request(SEND_TXN_USER_VERIFIES_ADDRESS, 0);
-      reset_flow_level();
-      counter.next_event_flag = true;
-    } break;
-
-    case SEND_TXN_VERIFY_RECEIPT_AMOUNT_SOLANA: {
-      comm_reject_request(SEND_TXN_USER_VERIFIES_ADDRESS, 2);
-      reset_flow_level();
-      counter.next_event_flag = true;
-    } break;
-
-    case SEND_TXN_VERIFY_RECEIPT_FEES_SOLANA: {
-      comm_reject_request(SEND_TXN_USER_VERIFIES_ADDRESS, 3);
-      reset_flow_level();
-      counter.next_event_flag = true;
-    } break;
-
-    case SEND_TXN_ENTER_PIN_SOLANA: {
-      comm_reject_request(USER_REJECT_PIN_INPUT, 0);
-      reset_flow_level();
-      memzero(flow_level.screen_input.input_text,
-              sizeof(flow_level.screen_input.input_text));
-      counter.next_event_flag = true;
-    } break;
-
-    case SEND_TXN_ENTER_PASSPHRASE_SOLANA: {
-      comm_reject_request(USER_REJECTED_PASSPHRASE_INPUT, 0);
-      reset_flow_level();
-      memzero(flow_level.screen_input.input_text,
-              sizeof(flow_level.screen_input.input_text));
-      counter.next_event_flag = true;
-    } break;
-
-    case SEND_TXN_CONFIRM_PASSPHRASE_SOLANA: {
-      memzero(wallet_credential_data.passphrase,
-              sizeof(wallet_credential_data.passphrase));
-      flow_level.level_three = SEND_TXN_ENTER_PASSPHRASE_SOLANA;
-    } break;
-
-    default:
-      break;
-  }
-}
\ No newline at end of file
diff --git a/src/level_four/core/controller/send_transaction_controller_eth.c b/src/level_four/core/controller/send_transaction_controller_eth.c
deleted file mode 100644
index 9af38ae6b..000000000
--- a/src/level_four/core/controller/send_transaction_controller_eth.c
+++ /dev/null
@@ -1,267 +0,0 @@
-/**
- * @file    send_transaction_controller_eth.c
- * @author  Cypherock X1 Team
- * @brief   Send transaction next controller for ETH.
- *          Handles post event (only next events) operations for send
- *transaction flow initiated by desktop app.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "communication.h"
-#include "controller_level_four.h"
-#include "controller_main.h"
-#include "controller_tap_cards.h"
-#include "sha2.h"
-#include "shamir_wrapper.h"
-#include "ui_confirmation.h"
-#include "ui_instruction.h"
-#include "ui_message.h"
-
-extern Wallet_shamir_data wallet_shamir_data;
-extern Wallet_credential_data wallet_credential_data;
-
-extern lv_task_t *timeout_task;
-
-evm_unsigned_txn eth_unsigned_txn_ptr = {
-    .nonce_size = {0},
-    .nonce = {0},
-    .gas_price_size = {0},
-    .gas_price = {0},
-    .gas_limit_size = {0},
-    .gas_limit = {0},
-    .to_address = {0},
-    .value_size = {0},
-    .value = {0},
-    .data_size = 0,
-    .data = NULL,
-    .chain_id_size = {0},
-    .chain_id = {0},
-    .dummy_r = {0},
-    .dummy_s = {0},
-};
-uint8_t *eth_unsigned_txn_byte_array = NULL;
-uint16_t eth_unsigned_txn_len;
-
-extern ui_display_node *current_display_node;
-extern bool evm_is_token_whitelisted;
-
-void send_transaction_controller_eth() {
-  switch (flow_level.level_three) {
-    case SEND_TXN_VERIFY_COIN_ETH: {
-      uint8_t arr[3] = {0x01, 0x1f, 0x40};
-      transmit_data_to_app(SEND_TXN_REQ_UNSIGNED_TXN, arr, sizeof(arr));
-      flow_level.level_three = SEND_TXN_UNSIGNED_TXN_WAIT_SCREEN_ETH;
-    } break;
-
-    case SEND_TXN_UNSIGNED_TXN_WAIT_SCREEN_ETH: {
-      uint8_t *data_array = NULL;
-      uint16_t msg_size = 0;
-      if (get_usb_msg_by_cmd_type(
-              SEND_TXN_UNSIGNED_TXN, &data_array, &msg_size)) {
-        eth_unsigned_txn_byte_array = (uint8_t *)cy_malloc(msg_size);
-        eth_unsigned_txn_len = msg_size;
-        memcpy(eth_unsigned_txn_byte_array, data_array, msg_size);
-
-        clear_message_received_data();
-        flow_level.level_three = SEND_TXN_UNSIGNED_TXN_RECEIVED_ETH;
-      }
-    } break;
-
-    case SEND_TXN_VERIFY_BLIND_SIGNING_ETH: {
-      flow_level.level_three = SEND_TXN_VERIFY_DERIVATION_PATH;
-    } break;
-
-    case SEND_TXN_VERIFY_DERIVATION_PATH: {
-      flow_level.level_three = SEND_TXN_VERIFY_RECEIPT_ADDRESS_ETH;
-    } break;
-
-    case SEND_TXN_VERIFY_CONTRACT_ADDRESS: {
-      flow_level.level_three = SEND_TXN_VERIFY_RECEIPT_ADDRESS_ETH;
-    } break;
-
-    case SEND_TXN_VERIFY_TXN_NONCE_ETH: {
-      flow_level.level_three = SEND_TXN_VERIFY_RECEIPT_ADDRESS_ETH;
-    } break;
-
-    case SEND_TXN_VERIFY_RECEIPT_ADDRESS_ETH: {
-      flow_level.level_three = SEND_TXN_CALCULATE_AMOUNT_ETH;
-    } break;
-
-    case SEND_TXN_VERIFY_RECEIPT_AMOUNT_ETH: {
-      flow_level.level_three = SEND_TXN_VERIFY_RECEIPT_FEES_ETH;
-    } break;
-
-    case SEND_TXN_VERIFY_RECEIPT_FEES_ETH: {
-      flow_level.level_three = SEND_TXN_VERIFY_RECEIPT_ADDRESS_SEND_CMD_ETH;
-    } break;
-
-    case SEND_TXN_VERIFY_RECEIPT_ADDRESS_SEND_CMD_ETH: {
-      flow_level.level_three = SEND_TXN_DISPLAY_INFO_ETH;
-    } break;
-
-    case SEND_TXN_DISPLAY_INFO_ETH: {
-      if (current_display_node == NULL) {
-        memzero(wallet_credential_data.passphrase,
-                sizeof(wallet_credential_data.passphrase));
-        if (WALLET_IS_PASSPHRASE_SET(wallet.wallet_info)) {
-          flow_level.level_three = SEND_TXN_ENTER_PASSPHRASE_ETH;
-        } else {
-          flow_level.level_three = SEND_TXN_CHECK_PIN_ETH;
-        }
-      } else {
-        current_display_node = current_display_node->next;
-      }
-    } break;
-
-    case SEND_TXN_ENTER_PASSPHRASE_ETH: {
-      flow_level.level_three = SEND_TXN_CONFIRM_PASSPHRASE_ETH;
-    } break;
-
-    case SEND_TXN_CONFIRM_PASSPHRASE_ETH: {
-      snprintf(wallet_credential_data.passphrase,
-               sizeof(wallet_credential_data.passphrase),
-               "%s",
-               flow_level.screen_input.input_text);
-      memzero(flow_level.screen_input.input_text,
-              sizeof(flow_level.screen_input.input_text));
-      flow_level.level_three = SEND_TXN_CHECK_PIN_ETH;
-    } break;
-
-    case SEND_TXN_CHECK_PIN_ETH: {
-      if (WALLET_IS_PIN_SET(wallet.wallet_info)) {
-        flow_level.level_three = SEND_TXN_ENTER_PIN_ETH;
-      } else {
-        flow_level.level_three = SEND_TXN_TAP_CARD_ETH;
-      }
-
-    } break;
-
-    case SEND_TXN_ENTER_PIN_ETH: {
-      sha256_Raw((uint8_t *)flow_level.screen_input.input_text,
-                 strnlen(flow_level.screen_input.input_text,
-                         sizeof(flow_level.screen_input.input_text)),
-                 wallet_credential_data.password_single_hash);
-      sha256_Raw(wallet_credential_data.password_single_hash,
-                 SHA256_DIGEST_LENGTH,
-                 wallet.password_double_hash);
-      memzero(flow_level.screen_input.input_text,
-              sizeof(flow_level.screen_input.input_text));
-      flow_level.level_three = SEND_TXN_TAP_CARD_ETH;
-    } break;
-
-    case SEND_TXN_TAP_CARD_ETH: {
-      tap_card_data.desktop_control = true;
-      tap_threshold_cards_for_reconstruction_flow_controller(1);
-    } break;
-
-    case SEND_TXN_TAP_CARD_SEND_CMD_ETH: {
-      flow_level.level_three = SEND_TXN_READ_DEVICE_SHARE_ETH;
-    } break;
-
-    case SEND_TXN_READ_DEVICE_SHARE_ETH:
-      wallet_shamir_data.share_x_coords[1] = 5;
-      get_flash_wallet_share_by_name((const char *)wallet.wallet_name,
-                                     wallet_shamir_data.mnemonic_shares[1]);
-      memcpy(wallet_shamir_data.share_encryption_data[1],
-             wallet_shamir_data.share_encryption_data[0],
-             PADDED_NONCE_SIZE + WALLET_MAC_SIZE);
-      flow_level.level_three = SEND_TXN_SIGN_TXN_ETH;
-      break;
-
-    case SEND_TXN_SIGN_TXN_ETH: {
-      uint8_t secret[BLOCK_SIZE];
-      if (WALLET_IS_PIN_SET(wallet.wallet_info))
-        decrypt_shares();
-      recover_secret_from_shares(BLOCK_SIZE,
-                                 MINIMUM_NO_OF_SHARES,
-                                 wallet_shamir_data.mnemonic_shares,
-                                 wallet_shamir_data.share_x_coords,
-                                 secret);
-      mnemonic_clear();
-      const char *mnemo =
-          mnemonic_from_data(secret, wallet.number_of_mnemonics * 4 / 3);
-      ASSERT(mnemo != NULL);
-
-      uint8_t sig[65];
-      sig_unsigned_byte_array(
-          eth_unsigned_txn_byte_array,
-          eth_unsigned_txn_len,
-          (const txn_metadata *)&var_send_transaction_data.transaction_metadata,
-          mnemo,
-          wallet_credential_data.passphrase,
-          sig);
-      transmit_data_to_app(SEND_TXN_SENDING_SIGNED_TXN, sig, 65);
-      mnemonic_clear();
-      memzero(secret, sizeof(secret));
-      memzero(wallet_shamir_data.mnemonic_shares,
-              sizeof(wallet_shamir_data.mnemonic_shares));
-      memzero(wallet_credential_data.passphrase,
-              sizeof(wallet_credential_data.passphrase));
-
-      flow_level.level_three = SEND_TXN_WAITING_SCREEN_ETH;
-    } break;
-
-    case SEND_TXN_WAITING_SCREEN_ETH:
-      instruction_scr_destructor();
-      lv_obj_clean(lv_scr_act());
-      flow_level.level_three = SEND_TXN_FINAL_SCREEN_ETH;
-      break;
-
-    case SEND_TXN_FINAL_SCREEN_ETH:
-      reset_flow_level();
-      break;
-
-    default:
-      break;
-  }
-}
diff --git a/src/level_four/core/controller/send_transaction_controller_solana.c b/src/level_four/core/controller/send_transaction_controller_solana.c
deleted file mode 100644
index 66b932b20..000000000
--- a/src/level_four/core/controller/send_transaction_controller_solana.c
+++ /dev/null
@@ -1,282 +0,0 @@
-/**
- * @file    send_transaction_controller_solana.c
- * @author  Cypherock X1 Team
- * @brief   Send transaction next controller for SOLANA.
- *          Handles post event (only next events) operations for send
- *transaction flow initiated by desktop app.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "communication.h"
-#include "controller_level_four.h"
-#include "controller_main.h"
-#include "controller_tap_cards.h"
-#include "sha2.h"
-#include "shamir_wrapper.h"
-#include "ui_confirmation.h"
-#include "ui_instruction.h"
-#include "ui_message.h"
-
-extern Wallet_shamir_data wallet_shamir_data;
-extern Wallet_credential_data wallet_credential_data;
-
-extern lv_task_t *timeout_task;
-
-solana_unsigned_txn solana_unsigned_txn_ptr;
-uint8_t *solana_unsigned_txn_byte_array = NULL;
-uint16_t solana_unsigned_txn_len;
-
-void send_transaction_controller_solana() {
-  switch (flow_level.level_three) {
-    case SEND_TXN_VERIFY_COIN_SOLANA: {
-      uint8_t arr[3] = {0x01, 0x1f, 0x40};
-      transmit_data_to_app(SEND_TXN_REQ_UNSIGNED_TXN, arr, sizeof(arr));
-      flow_level.level_three = SEND_TXN_UNSIGNED_TXN_WAIT_SCREEN_SOLANA;
-    } break;
-
-    case SEND_TXN_UNSIGNED_TXN_WAIT_SCREEN_SOLANA: {
-      uint8_t *data_array = NULL;
-      uint16_t msg_size = 0;
-      if (get_usb_msg_by_cmd_type(
-              SEND_TXN_UNSIGNED_TXN, &data_array, &msg_size)) {
-        solana_unsigned_txn_byte_array = (uint8_t *)cy_malloc(msg_size);
-        solana_unsigned_txn_len = msg_size;
-        memcpy(solana_unsigned_txn_byte_array, data_array, msg_size);
-
-        int status =
-            solana_byte_array_to_unsigned_txn(solana_unsigned_txn_byte_array,
-                                              solana_unsigned_txn_len,
-                                              &solana_unsigned_txn_ptr);
-
-        clear_message_received_data();
-        flow_level.level_three = SEND_TXN_UNSIGNED_TXN_RECEIVED_SOLANA;
-
-        if (status == SOL_OK)
-          status = solana_validate_unsigned_txn(&solana_unsigned_txn_ptr);
-
-        if (status != SOL_OK) {
-          LOG_ERROR("Solana error code: %d", status);
-          instruction_scr_destructor();
-          mark_error_screen(ui_text_worng_eth_transaction);
-          comm_reject_request(SEND_TXN_USER_VERIFIES_ADDRESS, 0);
-          reset_flow_level();
-        }
-      }
-    } break;
-
-    case SEND_TXN_UNSIGNED_TXN_RECEIVED_SOLANA: {
-      flow_level.level_three = SEND_TXN_VERIFY_RECEIPT_ADDRESS_SOLANA;
-    } break;
-
-    case SEND_TXN_VERIFY_CONTRACT_ADDRESS: {
-      flow_level.level_three = SEND_TXN_VERIFY_RECEIPT_ADDRESS_SOLANA;
-    } break;
-
-    case SEND_TXN_VERIFY_RECEIPT_ADDRESS_SOLANA: {
-      flow_level.level_three = SEND_TXN_CALCULATE_AMOUNT_SOLANA;
-    } break;
-
-    case SEND_TXN_CALCULATE_AMOUNT_SOLANA: {
-      flow_level.level_three = SEND_TXN_VERIFY_RECEIPT_AMOUNT_SOLANA;
-    } break;
-
-    case SEND_TXN_VERIFY_RECEIPT_AMOUNT_SOLANA: {
-      flow_level.level_three = SEND_TXN_VERIFY_RECEIPT_FEES_SOLANA;
-    } break;
-
-    case SEND_TXN_VERIFY_RECEIPT_FEES_SOLANA: {
-      flow_level.level_three = SEND_TXN_VERIFY_RECEIPT_ADDRESS_SEND_CMD_SOLANA;
-    } break;
-
-    case SEND_TXN_VERIFY_RECEIPT_ADDRESS_SEND_CMD_SOLANA: {
-      memzero(wallet_credential_data.passphrase,
-              sizeof(wallet_credential_data.passphrase));
-      if (WALLET_IS_PASSPHRASE_SET(wallet.wallet_info)) {
-        flow_level.level_three = SEND_TXN_ENTER_PASSPHRASE_SOLANA;
-      } else {
-        flow_level.level_three = SEND_TXN_CHECK_PIN_SOLANA;
-      }
-    } break;
-
-    case SEND_TXN_ENTER_PASSPHRASE_SOLANA: {
-      flow_level.level_three = SEND_TXN_CONFIRM_PASSPHRASE_SOLANA;
-    } break;
-
-    case SEND_TXN_CONFIRM_PASSPHRASE_SOLANA: {
-      snprintf(wallet_credential_data.passphrase,
-               sizeof(wallet_credential_data.passphrase),
-               "%s",
-               flow_level.screen_input.input_text);
-      memzero(flow_level.screen_input.input_text,
-              sizeof(flow_level.screen_input.input_text));
-      flow_level.level_three = SEND_TXN_CHECK_PIN_SOLANA;
-    } break;
-
-    case SEND_TXN_CHECK_PIN_SOLANA: {
-      if (WALLET_IS_PIN_SET(wallet.wallet_info)) {
-        flow_level.level_three = SEND_TXN_ENTER_PIN_SOLANA;
-      } else {
-        flow_level.level_three = SEND_TXN_TAP_CARD_SOLANA;
-      }
-
-    } break;
-
-    case SEND_TXN_ENTER_PIN_SOLANA: {
-      sha256_Raw((uint8_t *)flow_level.screen_input.input_text,
-                 strnlen(flow_level.screen_input.input_text,
-                         sizeof(flow_level.screen_input.input_text)),
-                 wallet_credential_data.password_single_hash);
-      sha256_Raw(wallet_credential_data.password_single_hash,
-                 SHA256_DIGEST_LENGTH,
-                 wallet.password_double_hash);
-      memzero(flow_level.screen_input.input_text,
-              sizeof(flow_level.screen_input.input_text));
-      flow_level.level_three = SEND_TXN_TAP_CARD_SOLANA;
-    } break;
-
-    case SEND_TXN_TAP_CARD_SOLANA: {
-      tap_card_data.desktop_control = true;
-      tap_threshold_cards_for_reconstruction_flow_controller(1);
-    } break;
-
-    case SEND_TXN_TAP_CARD_SEND_CMD_SOLANA: {
-      flow_level.level_three = SEND_TXN_UPDATE_BLOCKHASH_SOLANA;
-      uint8_t arr[1] = {1};
-      transmit_data_to_app(SEND_TXN_UNSIGNED_TXN, arr, sizeof(arr));
-    } break;
-
-    case SEND_TXN_UPDATE_BLOCKHASH_SOLANA: {
-      uint8_t *blockhash_received = NULL;
-      uint16_t blockhash_msg_size = 0;
-      uint8_t solana_latest_blockhash[SOLANA_BLOCKHASH_LENGTH] = {0};
-
-      if (get_usb_msg_by_cmd_type(SEND_TXN_PRE_SIGNING_DATA,
-                                  &blockhash_received,
-                                  &blockhash_msg_size)) {
-        if (blockhash_msg_size != SOLANA_BLOCKHASH_LENGTH) {
-          comm_reject_invalid_cmd();
-          reset_flow_level();
-        }
-        memcpy(solana_latest_blockhash,
-               blockhash_received,
-               SOLANA_BLOCKHASH_LENGTH);
-        clear_message_received_data();
-
-        int status = solana_update_blockhash_in_byte_array(
-            solana_unsigned_txn_byte_array, solana_latest_blockhash);
-        if (status != SOL_OK) {
-          LOG_ERROR("SOL: %d", status);
-          comm_reject_request(SEND_TXN_PRE_SIGNING_DATA, 0);
-          reset_flow_level();
-        }
-        flow_level.level_three = SEND_TXN_READ_DEVICE_SHARE_SOLANA;
-      }
-
-    } break;
-
-    case SEND_TXN_READ_DEVICE_SHARE_SOLANA:
-      wallet_shamir_data.share_x_coords[1] = 5;
-      get_flash_wallet_share_by_name((const char *)wallet.wallet_name,
-                                     wallet_shamir_data.mnemonic_shares[1]);
-      memcpy(wallet_shamir_data.share_encryption_data[1],
-             wallet_shamir_data.share_encryption_data[0],
-             PADDED_NONCE_SIZE + WALLET_MAC_SIZE);
-      flow_level.level_three = SEND_TXN_SIGN_TXN_SOLANA;
-      break;
-
-    case SEND_TXN_SIGN_TXN_SOLANA: {
-      uint8_t secret[BLOCK_SIZE];
-      if (WALLET_IS_PIN_SET(wallet.wallet_info))
-        decrypt_shares();
-      recover_secret_from_shares(BLOCK_SIZE,
-                                 MINIMUM_NO_OF_SHARES,
-                                 wallet_shamir_data.mnemonic_shares,
-                                 wallet_shamir_data.share_x_coords,
-                                 secret);
-      mnemonic_clear();
-      const char *mnemo =
-          mnemonic_from_data(secret, wallet.number_of_mnemonics * 4 / 3);
-      ASSERT(mnemo != NULL);
-
-      uint8_t sig[64];
-      solana_sig_unsigned_byte_array(
-          solana_unsigned_txn_byte_array,
-          solana_unsigned_txn_len,
-          (const txn_metadata *)&var_send_transaction_data.transaction_metadata,
-          mnemo,
-          wallet_credential_data.passphrase,
-          sig);
-      transmit_data_to_app(SEND_TXN_SENDING_SIGNED_TXN, sig, 64);
-      mnemonic_clear();
-      memzero(secret, sizeof(secret));
-      memzero(wallet_shamir_data.mnemonic_shares,
-              sizeof(wallet_shamir_data.mnemonic_shares));
-      memzero(wallet_credential_data.passphrase,
-              sizeof(wallet_credential_data.passphrase));
-
-      flow_level.level_three = SEND_TXN_WAITING_SCREEN_SOLANA;
-    } break;
-
-    case SEND_TXN_WAITING_SCREEN_SOLANA:
-      instruction_scr_destructor();
-      flow_level.level_three = SEND_TXN_FINAL_SCREEN_SOLANA;
-      break;
-
-    case SEND_TXN_FINAL_SCREEN_SOLANA:
-      reset_flow_level();
-      break;
-
-    default:
-      break;
-  }
-}
diff --git a/src/level_four/core/controller/sign_message_controller_eth.c b/src/level_four/core/controller/sign_message_controller_eth.c
deleted file mode 100644
index 73f1ffe57..000000000
--- a/src/level_four/core/controller/sign_message_controller_eth.c
+++ /dev/null
@@ -1,229 +0,0 @@
-/**
- * @file    sign_message_controller_eth.c
- * @author  Cypherock X1 Team
- * @brief   Sign message next controller for ETH.
- *          Handles post event (only next events) operations for send
- *transaction flow initiated by desktop app.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "communication.h"
-#include "controller_level_four.h"
-#include "controller_main.h"
-#include "controller_tap_cards.h"
-#include "sha2.h"
-#include "shamir_wrapper.h"
-#include "ui_confirmation.h"
-#include "ui_instruction.h"
-#include "ui_message.h"
-
-extern Wallet_shamir_data wallet_shamir_data;
-extern Wallet_credential_data wallet_credential_data;
-
-extern lv_task_t *timeout_task;
-
-extern MessageData msg_data;
-extern ui_display_node *current_display_node;
-
-void sign_message_controller_eth() {
-  switch (flow_level.level_three) {
-    case SIGN_MSG_VERIFY_COIN_ETH: {
-      uint8_t arr[3] = {0x01, 0x1f, 0x40};
-      transmit_data_to_app(SIGN_MSG_RAW_MSG, arr, sizeof(arr));
-      flow_level.level_three = SIGN_MSG_RAW_MSG_WAIT_SCREEN_ETH;
-      eth_init_msg_data(
-          &msg_data);    // initialize variables and decoding functions
-    } break;
-
-    case SIGN_MSG_RAW_MSG_WAIT_SCREEN_ETH: {
-      uint8_t *data_array = NULL;
-      uint16_t msg_size = 0;
-      if (get_usb_msg_by_cmd_type(SIGN_MSG_RAW_MSG, &data_array, &msg_size)) {
-        int status = 0;
-        status = eth_byte_array_to_msg(data_array, msg_size, &msg_data);
-
-        clear_message_received_data();
-        flow_level.level_three = SIGN_MSG_DISPLAY_INFO_ETH;
-
-        if (status != 0) {
-          instruction_scr_destructor();
-          mark_error_screen(ui_text_worng_eth_transaction);
-          comm_reject_request(SIGN_MSG_START, 0);
-          reset_flow_level();
-        }
-
-        // eth_init_display_nodes(&current_display_node, &msg_data);
-        ASSERT(current_display_node != NULL);
-      }
-    } break;
-
-    case SIGN_MSG_DISPLAY_INFO_ETH: {
-      if (current_display_node == NULL)
-        flow_level.level_three = SIGN_MSG_CHECK_PASSPHRASE_ETH;
-      else
-        current_display_node = current_display_node->next;
-    } break;
-
-    case SIGN_MSG_CHECK_PASSPHRASE_ETH: {
-      instruction_scr_destructor();
-      memzero(wallet_credential_data.passphrase,
-              sizeof(wallet_credential_data.passphrase));
-      if (WALLET_IS_PASSPHRASE_SET(wallet.wallet_info)) {
-        flow_level.level_three = SIGN_MSG_ENTER_PASSPHRASE_ETH;
-      } else {
-        flow_level.level_three = SIGN_MSG_CHECK_PIN_ETH;
-      }
-    } break;
-
-    case SIGN_MSG_ENTER_PASSPHRASE_ETH: {
-      flow_level.level_three = SIGN_MSG_CONFIRM_PASSPHRASE_ETH;
-    } break;
-
-    case SIGN_MSG_CONFIRM_PASSPHRASE_ETH: {
-      snprintf(wallet_credential_data.passphrase,
-               sizeof(wallet_credential_data.passphrase),
-               "%s",
-               flow_level.screen_input.input_text);
-      memzero(flow_level.screen_input.input_text,
-              sizeof(flow_level.screen_input.input_text));
-      flow_level.level_three = SIGN_MSG_CHECK_PIN_ETH;
-    } break;
-
-    case SIGN_MSG_CHECK_PIN_ETH: {
-      if (WALLET_IS_PIN_SET(wallet.wallet_info)) {
-        flow_level.level_three = SIGN_MSG_ENTER_PIN_ETH;
-      } else {
-        flow_level.level_three = SIGN_MSG_TAP_CARD_ETH;
-      }
-
-    } break;
-
-    case SIGN_MSG_ENTER_PIN_ETH: {
-      sha256_Raw((uint8_t *)flow_level.screen_input.input_text,
-                 strnlen(flow_level.screen_input.input_text,
-                         sizeof(flow_level.screen_input.input_text)),
-                 wallet_credential_data.password_single_hash);
-      sha256_Raw(wallet_credential_data.password_single_hash,
-                 SHA256_DIGEST_LENGTH,
-                 wallet.password_double_hash);
-      memzero(flow_level.screen_input.input_text,
-              sizeof(flow_level.screen_input.input_text));
-      flow_level.level_three = SIGN_MSG_TAP_CARD_ETH;
-    } break;
-
-    case SIGN_MSG_TAP_CARD_ETH: {
-      tap_card_data.desktop_control = true;
-      tap_threshold_cards_for_reconstruction_flow_controller(1);
-    } break;
-
-    case SIGN_MSG_TAP_CARD_SEND_CMD_ETH: {
-      flow_level.level_three = SIGN_MSG_READ_DEVICE_SHARE_ETH;
-    } break;
-
-    case SIGN_MSG_READ_DEVICE_SHARE_ETH:
-      wallet_shamir_data.share_x_coords[1] = 5;
-      get_flash_wallet_share_by_name((const char *)wallet.wallet_name,
-                                     wallet_shamir_data.mnemonic_shares[1]);
-      memcpy(wallet_shamir_data.share_encryption_data[1],
-             wallet_shamir_data.share_encryption_data[0],
-             PADDED_NONCE_SIZE + WALLET_MAC_SIZE);
-      flow_level.level_three = SIGN_MSG_SIGN_TXN_ETH;
-      break;
-
-    case SIGN_MSG_SIGN_TXN_ETH: {
-      uint8_t secret[BLOCK_SIZE];
-      if (WALLET_IS_PIN_SET(wallet.wallet_info))
-        decrypt_shares();
-      recover_secret_from_shares(BLOCK_SIZE,
-                                 MINIMUM_NO_OF_SHARES,
-                                 wallet_shamir_data.mnemonic_shares,
-                                 wallet_shamir_data.share_x_coords,
-                                 secret);
-      mnemonic_clear();
-      const char *mnemo =
-          mnemonic_from_data(secret, wallet.number_of_mnemonics * 4 / 3);
-      ASSERT(mnemo != NULL);
-
-      uint8_t sig[65] = {0};
-
-      eth_sign_msg_data(
-          &msg_data,
-          (const txn_metadata *)&var_send_transaction_data.transaction_metadata,
-          mnemo,
-          wallet_credential_data.passphrase,
-          sig);
-      transmit_data_to_app(SIGN_MSG_SEND_SIG, sig, 65);
-      mnemonic_clear();
-      memzero(secret, sizeof(secret));
-      memzero(wallet_shamir_data.mnemonic_shares,
-              sizeof(wallet_shamir_data.mnemonic_shares));
-      memzero(wallet_credential_data.passphrase,
-              sizeof(wallet_credential_data.passphrase));
-
-      flow_level.level_three = SIGN_MSG_WAITING_SCREEN_ETH;
-    } break;
-
-    case SIGN_MSG_WAITING_SCREEN_ETH:
-      instruction_scr_destructor();
-      lv_obj_clean(lv_scr_act());
-      flow_level.level_three = SIGN_MSG_FINAL_SCREEN_ETH;
-      break;
-
-    case SIGN_MSG_FINAL_SCREEN_ETH:
-      reset_flow_level();
-      break;
-
-    default:
-      break;
-  }
-}
diff --git a/src/level_four/core/controller/sign_messgae_controller_b_eth.c b/src/level_four/core/controller/sign_messgae_controller_b_eth.c
deleted file mode 100644
index c4709fc05..000000000
--- a/src/level_four/core/controller/sign_messgae_controller_b_eth.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/**
- * @file    sign_message_controller_b_eth.c
- * @author  Cypherock X1 Team
- * @brief   back controller for ETH.
- *          Handles post event (only back/cancel events) operations for send
- *transaction flow initiated by desktop app.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "communication.h"
-#include "controller_level_four.h"
-
-extern Wallet_credential_data wallet_credential_data;
-void sign_message_controller_b_eth() {
-  switch (flow_level.level_three) {
-    case SIGN_MSG_VERIFY_COIN_ETH: {
-      comm_reject_request(SIGN_MSG_START, 0);
-      reset_flow_level();
-      counter.next_event_flag = true;
-    } break;
-
-    case SIGN_MSG_DISPLAY_INFO_ETH: {
-      comm_reject_request(SIGN_MSG_START, 0);
-      reset_flow_level();
-      counter.next_event_flag = true;
-    } break;
-
-    case SIGN_MSG_ENTER_PIN_ETH: {
-      comm_reject_request(USER_REJECT_PIN_INPUT, 0);
-      reset_flow_level();
-      memzero(flow_level.screen_input.input_text,
-              sizeof(flow_level.screen_input.input_text));
-      counter.next_event_flag = true;
-    } break;
-
-    case SIGN_MSG_ENTER_PASSPHRASE_ETH: {
-      comm_reject_request(USER_REJECTED_PASSPHRASE_INPUT, 0);
-      reset_flow_level();
-      memzero(flow_level.screen_input.input_text,
-              sizeof(flow_level.screen_input.input_text));
-      counter.next_event_flag = true;
-    } break;
-
-    case SIGN_MSG_CONFIRM_PASSPHRASE_ETH: {
-      memzero(wallet_credential_data.passphrase,
-              sizeof(wallet_credential_data.passphrase));
-      flow_level.level_three = SIGN_MSG_ENTER_PASSPHRASE_ETH;
-    } break;
-
-    default:
-      break;
-  }
-}
\ No newline at end of file
diff --git a/src/level_four/core/controller/verify_wallet_controller.c b/src/level_four/core/controller/verify_wallet_controller.c
deleted file mode 100644
index 875fd5146..000000000
--- a/src/level_four/core/controller/verify_wallet_controller.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/**
- * @file    verify_wallet_controller.c
- * @author  Cypherock X1 Team
- * @brief   Verify wallet next controller.
- *          Handles post event (only next events) operations for verify wallet
- *flow
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "card_action_controllers.h"
-#include "card_flow_verify_wallet.h"
-#include "controller_level_four.h"
-#include "controller_tap_cards.h"
-#include "flash_api.h"
-#include "sha2.h"
-
-extern Wallet_credential_data wallet_credential_data;
-
-void verify_wallet_controller() {
-  switch (flow_level.level_three) {
-    case VERIFY_WALLET_START:
-      if (WALLET_IS_PIN_SET(wallet.wallet_info))
-        flow_level.level_three = VERIFY_WALLET_PIN_INPUT;
-      else
-        flow_level.level_three = VERIFY_WALLET_TAP_CARDS_FLOW;
-      break;
-
-    case VERIFY_WALLET_PIN_INPUT:
-      sha256_Raw((uint8_t *)flow_level.screen_input.input_text,
-                 strnlen(flow_level.screen_input.input_text,
-                         sizeof(flow_level.screen_input.input_text)),
-                 wallet_credential_data.password_single_hash);
-      sha256_Raw(wallet_credential_data.password_single_hash,
-                 SHA256_DIGEST_LENGTH,
-                 wallet.password_double_hash);
-      memzero(flow_level.screen_input.input_text,
-              sizeof(flow_level.screen_input.input_text));
-      flow_level.level_three = VERIFY_WALLET_TAP_CARDS_FLOW;
-      break;
-
-    case VERIFY_WALLET_TAP_CARDS_FLOW:
-      card_flow_verify_wallet();
-      break;
-
-    case VERIFY_WALLET_DATA: {
-      flow_level.level_three = (verify_card_share_data() == 1)
-                                   ? VERIFY_WALLET_SUCCESS
-                                   : VERIFY_WALLET_DELETE;
-    } break;
-
-    case VERIFY_WALLET_SUCCESS:
-      reset_flow_level();
-      break;
-
-    case VERIFY_WALLET_DELETE:
-      mark_error_screen(ui_text_wallet_verification_failed_in_creation);
-      flow_level.level_three = 1;
-      break;
-
-    default:
-      break;
-  }
-}
diff --git a/src/level_four/core/controller/verify_wallet_controller_b.c b/src/level_four/core/controller/verify_wallet_controller_b.c
deleted file mode 100644
index 4ad05e20d..000000000
--- a/src/level_four/core/controller/verify_wallet_controller_b.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/**
- * @file    verify_wallet_controller_b.c
- * @author  Cypherock X1 Team
- * @brief   Verify wallet back controller.
- *          Handles post event (only back/cancel events) operations for verify
- *wallet.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "controller_level_four.h"
-
-void verify_wallet_controller_b() {
-  switch (flow_level.level_three) {
-    case VERIFY_WALLET_DELETE: {
-      reset_flow_level();
-      break;
-    }
-
-    default:
-      flow_level.level_three = VERIFY_WALLET_DELETE;
-      break;
-  }
-}
\ No newline at end of file
diff --git a/src/level_four/core/controller/wallet_locked_controller.c b/src/level_four/core/controller/wallet_locked_controller.c
deleted file mode 100644
index da5ca88a8..000000000
--- a/src/level_four/core/controller/wallet_locked_controller.c
+++ /dev/null
@@ -1,186 +0,0 @@
-/**
- * @file    wallet_locked_controller.c
- * @author  Cypherock X1 Team
- * @brief   Wallet unlock flow controller.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-
-/*****************************************************************************
- * INCLUDES
- *****************************************************************************/
-#include "card_internal.h"
-#include "card_unlock_wallet.h"
-#include "card_utils.h"
-#include "constant_texts.h"
-#include "core_error.h"
-#include "nfc.h"
-#include "pow.h"
-#include "pow_utilities.h"
-#include "ui_screens.h"
-
-/*****************************************************************************
- * EXTERN VARIABLES
- *****************************************************************************/
-
-/*****************************************************************************
- * PRIVATE MACROS AND DEFINES
- *****************************************************************************/
-
-/*****************************************************************************
- * PRIVATE TYPEDEFS
- *****************************************************************************/
-
-/*****************************************************************************
- * STATIC FUNCTION PROTOTYPES
- *****************************************************************************/
-
-/*****************************************************************************
- * STATIC VARIABLES
- *****************************************************************************/
-
-/*****************************************************************************
- * GLOBAL VARIABLES
- *****************************************************************************/
-
-/*****************************************************************************
- * STATIC FUNCTIONS
- *****************************************************************************/
-
-/*****************************************************************************
- * GLOBAL FUNCTIONS
- *****************************************************************************/
-
-card_error_type_e card_unlock_wallet(const Wallet *wallet) {
-  card_error_type_e result = CARD_OPERATION_DEFAULT_INVALID;
-  card_operation_data_t card_data = {0};
-
-  char heading[50] = "";
-  uint8_t wallet_index = 0xFF;
-  ASSERT(SUCCESS ==
-         get_index_by_name((const char *)wallet->wallet_name, &wallet_index));
-
-  snprintf(heading,
-           sizeof(heading),
-           UI_TEXT_TAP_CARD,
-           decode_card_number(get_wallet_card_locked(wallet_index)));
-  instruction_scr_init(ui_text_place_card_below, heading);
-
-  card_data.nfc_data.retries = 5;
-  card_data.nfc_data.init_session_keys = true;
-  while (1) {
-    card_data.nfc_data.acceptable_cards = get_wallet_card_locked(wallet_index);
-    memcpy(card_data.nfc_data.family_id, get_family_id(), FAMILY_ID_SIZE);
-    card_data.nfc_data.tapped_card = 0;
-
-    result = card_initialize_applet(&card_data);
-
-    if (CARD_OPERATION_SUCCESS == card_data.error_type) {
-      card_data.nfc_data.status =
-          nfc_verify_challenge(wallet->wallet_name,
-                               get_proof_of_work_nonce(),
-                               wallet->password_double_hash);
-
-      if (card_data.nfc_data.status == SW_NO_ERROR ||
-          card_data.nfc_data.status == SW_WARNING_STATE_UNCHANGED) {
-        update_wallet_locked_flash((const char *)wallet->wallet_name, false);
-        buzzer_start(BUZZER_DURATION);
-        break;
-      } else {
-        card_handle_errors(&card_data);
-        if (POW_SW_CHALLENGE_FAILED == card_data.nfc_data.status) {
-          uint16_t bits = pow_count_set_bits(
-              get_wallet_by_index(wallet_index)->challenge.target);
-          LOG_CRITICAL("ex-pow-tg n: %d", bits);
-          log_hex_array(
-              "ex-pow-rn: ",
-              get_wallet_by_index(wallet_index)->challenge.random_number,
-              POW_RAND_NUMBER_SIZE);
-        }
-      }
-    }
-
-    if (CARD_OPERATION_CARD_REMOVED == card_data.error_type ||
-        CARD_OPERATION_RETAP_BY_USER_REQUIRED == card_data.error_type) {
-      const char *error_msg = card_data.error_message;
-      if (CARD_OPERATION_SUCCESS == indicate_card_error(error_msg)) {
-        // Re-render the instruction screen
-        instruction_scr_init(ui_text_place_card_below, heading);
-        continue;
-      }
-    }
-
-    /**
-     * @brief For errors which lead to challenge failure or incorrect pin, we
-     * have to refetch the challenge which is performed subsequently in the same
-     * card tap session by the caller from user's perspective, so only for the
-     * condiion of `CARD_OPERATION_LOCKED_WALLET` we don't sound the buzzer as
-     * the card tap session has not completed.
-     */
-    if (CARD_OPERATION_LOCKED_WALLET != card_data.error_type) {
-      buzzer_start(BUZZER_DURATION);
-    }
-
-    result = handle_wallet_errors(&card_data, wallet);
-    if (CARD_OPERATION_SUCCESS != result) {
-      break;
-    }
-
-    // If control reached here, it is an unrecoverable error, so break
-    result = card_data.error_type;
-    break;
-  }
-
-  nfc_deselect_card();
-  return result;
-}
\ No newline at end of file
diff --git a/src/level_four/core/controller/wallet_locked_controller_b.c b/src/level_four/core/controller/wallet_locked_controller_b.c
deleted file mode 100644
index e8b1543ec..000000000
--- a/src/level_four/core/controller/wallet_locked_controller_b.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/**
- * @file    wallet_locked_controller_b.c
- * @author  Cypherock X1 Team
- * @brief   Wallet unlock next controller.
- *          Handles post event (only back/cancel events) operations for unlock
- *wallet.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "controller_level_four.h"
-
-// wallet_locked_controller_b
-void wallet_locked_controller_b() {
-  switch (flow_level.level_three) {
-    case WALLET_LOCKED_MESSAGE: {
-      reset_flow_level();
-      counter.next_event_flag = true;
-    } break;
-    case WALLET_LOCKED_ENTER_PIN: {
-      reset_flow_level();
-      counter.next_event_flag = true;
-    } break;
-    default:
-      break;
-  }
-}
\ No newline at end of file
diff --git a/src/level_four/core/tasks/card_upgrade_tasks.c b/src/level_four/core/tasks/card_upgrade_tasks.c
deleted file mode 100644
index 67a72e0ce..000000000
--- a/src/level_four/core/tasks/card_upgrade_tasks.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/**
- * @file    card_upgrade_tasks.c
- * @author  Cypherock X1 Team
- * @brief   Card upgrade task.
- *          This file contains the card upgrade task.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "communication.h"
-#include "tasks_level_four.h"
-#include "ui_instruction.h"
-
-extern Flow_level flow_level;
-extern Counter counter;
-extern Wallet wallet;
-void card_upgrade_task() {
-#ifdef DEV_BUILD
-  switch (flow_level.level_three) {
-    case CARD_UPGRADE_TAP_CARD_MESSAGE:
-      instruction_scr_init(ui_text_tap_card_to_start, NULL);
-      mark_event_over();
-      break;
-
-    case CARD_UPGRADE_SELECT_CARD:
-      mark_event_over();
-      break;
-
-    case CARD_UPGRADE_FORWARD_MESSAGE:
-      mark_event_over();
-      break;
-
-    default:
-      break;
-  }
-#endif
-}
diff --git a/src/level_four/core/tasks/initial_device_provision_tasks.c b/src/level_four/core/tasks/initial_device_provision_tasks.c
deleted file mode 100644
index 6381db1d3..000000000
--- a/src/level_four/core/tasks/initial_device_provision_tasks.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/**
- * @file    initial_device_provision_tasks.c
- * @author  Cypherock X1 Team
- * @brief   Device provision task (initial).
- *          This file contains the implementation of the device provision task
- *for initial application.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "constant_texts.h"
-#include "controller_level_four.h"
-#include "tasks_level_four.h"
-#include "ui_delay.h"
-#include "ui_input_text.h"
-#include "ui_instruction.h"
-#include "ui_menu.h"
-#include "ui_message.h"
-
-void task_device_provision() {
-#if X1WALLET_INITIAL
-  switch (flow_level.level_three) {
-    case GENERATE_PROVSION_DATA: {
-      ui_text_slideshow_init(ui_text_device_provisioning, 5, 500, false);
-      mark_event_over();
-    } break;
-
-    case PROVISION_STATUS_WAIT:
-    case PROVISION_SAVE_EXT_KEYS: {
-      mark_event_over();
-    } break;
-
-    case PROVISION_UNSUCCESSFUL: {
-      lv_obj_clean(lv_scr_act());
-      delay_scr_init(ui_text_provision_fail, DELAY_TIME);
-    } break;
-
-    default:
-      break;
-  }
-#endif
-}
\ No newline at end of file
diff --git a/src/level_four/core/tasks/receive_transaction_tasks_eth.c b/src/level_four/core/tasks/receive_transaction_tasks_eth.c
deleted file mode 100644
index 35d8a8fd7..000000000
--- a/src/level_four/core/tasks/receive_transaction_tasks_eth.c
+++ /dev/null
@@ -1,172 +0,0 @@
-/**
- * @file    receive_transaction_tasks_eth.c
- * @author  Cypherock X1 Team
- * @brief   Receive transaction task for ETH.
- *          This file contains the implementation of the receive transaction
- *task for ETH.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "communication.h"
-#include "constant_texts.h"
-#include "controller_level_four.h"
-#include "flash_api.h"
-#include "harmony.h"
-#include "segwit_addr.h"
-#include "tasks_level_four.h"
-#include "tasks_tap_cards.h"
-#include "ui_address.h"
-#include "ui_confirmation.h"
-#include "ui_delay.h"
-#include "ui_input_text.h"
-#include "ui_instruction.h"
-#include "ui_menu.h"
-#include "utils.h"
-
-extern char *ALPHABET;
-extern char *ALPHA_NUMERIC;
-extern char *NUMBERS;
-extern char *PASSPHRASE;
-
-extern Receive_Transaction_Data receive_transaction_data;
-
-void receive_transaction_tasks_eth() {
-  switch (flow_level.level_three) {
-    case RECV_TXN_FIND_XPUB_ETH: {
-      mark_event_over();
-    } break;
-
-    case RECV_TXN_ENTER_PASSPHRASE_ETH: {
-      if (!WALLET_IS_PASSPHRASE_SET(wallet.wallet_info)) {
-        flow_level.level_three = ADD_COINS_VERIFY;
-        break;
-      }
-      input_text_init(PASSPHRASE,
-                      26,
-                      ui_text_enter_passphrase,
-                      0,
-                      DATA_TYPE_PASSPHRASE,
-                      64);
-    } break;
-
-    case RECV_TXN_CONFIRM_PASSPHRASE_ETH: {
-      char display[65];
-      snprintf(
-          display, sizeof(display), "%s", flow_level.screen_input.input_text);
-      address_scr_init(ui_text_confirm_passphrase, display, false);
-      memzero(display, sizeof(display));
-    } break;
-
-    case RECV_TXN_CHECK_PIN_ETH: {
-      mark_event_over();
-    } break;
-
-    case RECV_TXN_ENTER_PIN_ETH: {
-      input_text_init(
-          ALPHA_NUMERIC, 26, ui_text_enter_pin, 4, DATA_TYPE_PIN, 8);
-    } break;
-
-    case RECV_TXN_TAP_CARD_ETH: {
-      // TODO: Use tap_threshold_cards_for_reconstruction instead
-      retrieve_key_from_card();
-    } break;
-
-    case RECV_TXN_TAP_CARD_SEND_CMD_ETH: {
-      mark_event_over();
-    } break;
-
-    case RECV_TXN_READ_DEVICE_SHARE_ETH: {
-      mark_event_over();
-    } break;
-
-    case RECV_TXN_DERIVE_ADD_SCREEN_ETH: {
-      instruction_scr_init("", NULL);
-      instruction_scr_change_text(ui_text_processing, true);
-      BSP_DelayMs(DELAY_SHORT);
-      mark_event_over();
-    } break;
-
-    case RECV_TXN_DERIVE_ADD_ETH: {
-      mark_event_over();
-    } break;
-
-    case RECV_TXN_DISPLAY_ADDR_ETH: {
-      instruction_scr_destructor();
-      char display[70];
-      char address_s[sizeof(receive_transaction_data.address)] = {
-          '0', 'x', '\0'};
-      uint64_t chain_id = receive_transaction_data.network_chain_id;
-      if (chain_id != HARMONY_MAINNET_CHAIN)
-        byte_array_to_hex_string(
-            receive_transaction_data.eth_pubkeyhash,
-            sizeof(receive_transaction_data.eth_pubkeyhash),
-            address_s + 2,
-            sizeof(address_s) - 2);
-      else
-        bech32_addr_encode(address_s,
-                           "one",
-                           receive_transaction_data.eth_pubkeyhash,
-                           sizeof(receive_transaction_data.eth_pubkeyhash));
-      strncpy(receive_transaction_data.address,
-              address_s,
-              sizeof(receive_transaction_data.address));
-      snprintf(display, sizeof(display), "%s%s", ui_text_20_spaces, address_s);
-      address_scr_init(ui_text_receive_on, display, true);    // add 0x prefix
-    } break;
-
-    default:
-      break;
-  }
-
-  return;
-}
diff --git a/src/level_four/core/tasks/receive_transaction_tasks_near.c b/src/level_four/core/tasks/receive_transaction_tasks_near.c
deleted file mode 100644
index e1dcfb438..000000000
--- a/src/level_four/core/tasks/receive_transaction_tasks_near.c
+++ /dev/null
@@ -1,247 +0,0 @@
-/**
- * @file    receive_transaction_tasks_near.c
- * @author  Cypherock X1 Team
- * @brief   Receive transaction for NEAR
- *          This file contains the implementation of the receive transaction for
- *NEAR.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "communication.h"
-#include "constant_texts.h"
-#include "controller_level_four.h"
-#include "flash_api.h"
-#include "near_context.h"
-#include "tasks_level_four.h"
-#include "tasks_tap_cards.h"
-#include "ui_address.h"
-#include "ui_confirmation.h"
-#include "ui_delay.h"
-#include "ui_input_text.h"
-#include "ui_instruction.h"
-#include "ui_menu.h"
-
-extern char *ALPHABET;
-extern char *ALPHA_NUMERIC;
-extern char *NUMBERS;
-extern char *PASSPHRASE;
-
-extern lv_task_t *timeout_task;
-
-extern Receive_Transaction_Data receive_transaction_data;
-
-void receive_transaction_tasks_near() {
-  switch (flow_level.level_three) {
-    case RECV_TXN_FIND_XPUB_NEAR: {
-      mark_event_over();
-    } break;
-
-    case RECV_TXN_ENTER_PASSPHRASE_NEAR: {
-      if (!WALLET_IS_PASSPHRASE_SET(wallet.wallet_info)) {
-        flow_level.level_three = ADD_COINS_VERIFY;
-        break;
-      }
-      input_text_init(PASSPHRASE,
-                      26,
-                      ui_text_enter_passphrase,
-                      0,
-                      DATA_TYPE_PASSPHRASE,
-                      64);
-    } break;
-
-    case RECV_TXN_CONFIRM_PASSPHRASE_NEAR: {
-      char display[65];
-      snprintf(
-          display, sizeof(display), "%s", flow_level.screen_input.input_text);
-      address_scr_init(ui_text_confirm_passphrase, display, false);
-      memzero(display, sizeof(display));
-    } break;
-
-    case RECV_TXN_CHECK_PIN_NEAR: {
-      mark_event_over();
-    } break;
-
-    case RECV_TXN_ENTER_PIN_NEAR: {
-      // TODO: Redundant check
-      if (!WALLET_IS_PIN_SET(wallet.wallet_info)) {
-        flow_level.level_three = RECV_TXN_CHECK_PIN_NEAR;
-        break;
-      }
-      input_text_init(
-          ALPHA_NUMERIC, 26, ui_text_enter_pin, 4, DATA_TYPE_PIN, 8);
-    } break;
-
-    case RECV_TXN_TAP_CARD_NEAR: {
-      // TODO: Shorten func name
-      tap_threshold_cards_for_reconstruction();
-    } break;
-
-    case RECV_TXN_TAP_CARD_SEND_CMD_NEAR: {
-      mark_event_over();
-    } break;
-
-    case RECV_TXN_READ_DEVICE_SHARE_NEAR: {
-      mark_event_over();
-    } break;
-
-    case RECV_TXN_DERIVE_ADD_SCREEN_NEAR: {
-      instruction_scr_init("", NULL);
-      instruction_scr_change_text(ui_text_processing, true);
-      BSP_DelayMs(DELAY_SHORT);
-      mark_event_over();
-    } break;
-
-    case RECV_TXN_DERIVE_ADD_NEAR: {
-      mark_event_over();
-    } break;
-
-    case RECV_TXN_WAIT_FOR_LINK_NEAR: {
-      instruction_scr_change_text(ui_text_waiting_for_desktop, true);
-      mark_event_over();
-    } break;
-
-    case RECV_TXN_DISPLAY_ACC_NEAR: {
-      char display[110];
-      snprintf(display,
-               sizeof(display),
-               "%s%s%s",
-               ui_text_20_spaces,
-               ui_text_20_spaces,
-               receive_transaction_data.near_registered_account);
-      address_scr_init(ui_text_new_account_id, display, true);
-    } break;
-
-    case RECV_TXN_DISPLAY_ADDR_NEAR: {
-      char display[110];
-      char heading[20] = {0};
-      snprintf(heading, sizeof(heading), "%s", ui_text_receive_on);
-      char address_s[2 * sizeof(receive_transaction_data.near_pubkey) + 1] =
-          "ed25519:";
-      if (receive_transaction_data.near_account_type == 1) {
-        if (receive_transaction_data.near_acc_found) {
-          memcpy(address_s,
-                 receive_transaction_data.near_registered_account,
-                 sizeof(receive_transaction_data.near_registered_account));
-        } else {
-          size_t sz = sizeof(address_s) - 8;
-          b58enc(address_s + 8, &sz, receive_transaction_data.near_pubkey, 32);
-          snprintf(heading, sizeof(heading), "%s", ui_text_new_public_key);
-        }
-      } else {
-        byte_array_to_hex_string(receive_transaction_data.near_pubkey,
-                                 sizeof(receive_transaction_data.near_pubkey),
-                                 address_s,
-                                 sizeof(address_s));
-      }
-      snprintf(display,
-               sizeof(display),
-               "%s%s%s",
-               ui_text_20_spaces,
-               ui_text_20_spaces,
-               address_s);
-
-      address_scr_init(heading, display, true);
-
-    } break;
-
-    case RECV_TXN_WAIT_FOR_REPLACE_NEAR_SCREEN: {
-      instruction_scr_init(ui_text_waiting_for_desktop, NULL);
-      mark_event_over();
-    } break;
-
-    case RECV_TXN_WAIT_FOR_REPLACE_NEAR: {
-      mark_event_over();
-    } break;
-
-    case RECV_TXN_SELECT_REPLACE_ACC_NEAR: {
-      char *acc_id[NEAR_REGISTERED_ACCOUNT_COUNT] = {0};
-
-      near_deserialize_account_ids(coin_specific_data.coin_data,
-                                   NEAR_COIN_DATA_MAX_LEN,
-                                   acc_id,
-                                   receive_transaction_data.near_acc_count);
-
-      menu_init((const char **)acc_id,
-                NEAR_REGISTERED_ACCOUNT_COUNT,
-                ui_text_replace_account,
-                true);
-
-    } break;
-
-    case RECV_TXN_VERIFY_SAVE_ACC_NEAR: {
-      receive_transaction_data.near_acc_index =
-          flow_level.screen_input.list_choice - 1;
-
-      char *acc_id[NEAR_REGISTERED_ACCOUNT_COUNT] = {0};
-
-      near_deserialize_account_ids(coin_specific_data.coin_data,
-                                   NEAR_COIN_DATA_MAX_LEN,
-                                   acc_id,
-                                   receive_transaction_data.near_acc_count);
-
-      address_scr_init(ui_text_confirm_account,
-                       acc_id[receive_transaction_data.near_acc_index],
-                       false);
-
-    } break;
-
-    case RECV_TXN_FINAL_SCREEN_NEAR: {
-      // this exists to handle multiple exit points in near's receive flow
-      mark_event_over();
-    } break;
-
-    default:
-      break;
-  }
-  return;
-}
diff --git a/src/level_four/core/tasks/receive_transaction_tasks_solana.c b/src/level_four/core/tasks/receive_transaction_tasks_solana.c
deleted file mode 100644
index cce3b3671..000000000
--- a/src/level_four/core/tasks/receive_transaction_tasks_solana.c
+++ /dev/null
@@ -1,156 +0,0 @@
-/**
- * @file    receive_transaction_tasks_solana.c
- * @author  Cypherock X1 Team
- * @brief   Receive transaction task for SOLANA.
- *          This file contains the implementation of the receive transaction
- *task for SOLANA.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "communication.h"
-#include "constant_texts.h"
-#include "controller_level_four.h"
-#include "flash_api.h"
-#include "tasks_level_four.h"
-#include "tasks_tap_cards.h"
-#include "ui_address.h"
-#include "ui_confirmation.h"
-#include "ui_delay.h"
-#include "ui_input_text.h"
-#include "ui_instruction.h"
-#include "ui_menu.h"
-#include "utils.h"
-
-extern char *ALPHABET;
-extern char *ALPHA_NUMERIC;
-extern char *NUMBERS;
-extern char *PASSPHRASE;
-
-extern Receive_Transaction_Data receive_transaction_data;
-
-void receive_transaction_tasks_solana() {
-  switch (flow_level.level_three) {
-    case RECV_TXN_FIND_XPUB_SOLANA: {
-      mark_event_over();
-    } break;
-
-    case RECV_TXN_ENTER_PASSPHRASE_SOLANA: {
-      if (!WALLET_IS_PASSPHRASE_SET(wallet.wallet_info)) {
-        flow_level.level_three = ADD_COINS_VERIFY;
-        break;
-      }
-      input_text_init(PASSPHRASE,
-                      26,
-                      ui_text_enter_passphrase,
-                      0,
-                      DATA_TYPE_PASSPHRASE,
-                      64);
-    } break;
-
-    case RECV_TXN_CONFIRM_PASSPHRASE_SOLANA: {
-      char display[65] = {0};
-      snprintf(
-          display, sizeof(display), "%s", flow_level.screen_input.input_text);
-      address_scr_init(ui_text_confirm_passphrase, display, false);
-      memzero(display, sizeof(display));
-    } break;
-
-    case RECV_TXN_CHECK_PIN_SOLANA: {
-      mark_event_over();
-    } break;
-
-    case RECV_TXN_ENTER_PIN_SOLANA: {
-      input_text_init(
-          ALPHA_NUMERIC, 26, ui_text_enter_pin, 4, DATA_TYPE_PIN, 8);
-    } break;
-
-    case RECV_TXN_TAP_CARD_SOLANA: {
-      retrieve_key_from_card();
-    } break;
-
-    case RECV_TXN_TAP_CARD_SEND_CMD_SOLANA: {
-      mark_event_over();
-    } break;
-
-    case RECV_TXN_READ_DEVICE_SHARE_SOLANA: {
-      mark_event_over();
-    } break;
-
-    case RECV_TXN_DERIVE_ADD_SCREEN_SOLANA: {
-      instruction_scr_init(ui_text_processing, NULL);
-      instruction_scr_change_text(ui_text_processing, true);
-      BSP_DelayMs(DELAY_SHORT);
-      mark_event_over();
-    } break;
-
-    case RECV_TXN_DERIVE_ADD_SOLANA: {
-      mark_event_over();
-    } break;
-
-    case RECV_TXN_DISPLAY_ADDR_SOLANA: {
-      instruction_scr_destructor();
-      char display[70] = {0};
-      snprintf(display,
-               sizeof(display),
-               "%s%s",
-               ui_text_20_spaces,
-               receive_transaction_data.solana_address);
-      address_scr_init(ui_text_receive_on, display, true);
-    } break;
-
-    default:
-      break;
-  }
-
-  return;
-}
diff --git a/src/level_four/core/tasks/send_transaction_tasks_eth.c b/src/level_four/core/tasks/send_transaction_tasks_eth.c
deleted file mode 100644
index ae0685458..000000000
--- a/src/level_four/core/tasks/send_transaction_tasks_eth.c
+++ /dev/null
@@ -1,326 +0,0 @@
-/**
- * @file    send_transaction_tasks_eth.c
- * @author  Cypherock X1 Team
- * @brief   Send transaction for ETH.
- *          This file contains functions to send transaction for ETH.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "constant_texts.h"
-#include "controller_level_four.h"
-#include "eth.h"
-#include "harmony.h"
-#include "math.h"
-#include "segwit_addr.h"
-#include "tasks_level_four.h"
-#include "tasks_tap_cards.h"
-#include "ui_address.h"
-#include "ui_confirmation.h"
-#include "ui_delay.h"
-#include "ui_input_text.h"
-#include "ui_instruction.h"
-#include "ui_message.h"
-#include "ui_scroll_page.h"
-#include "utils.h"
-
-extern char *ALPHABET;
-extern char *ALPHA_NUMERIC;
-extern char *NUMBERS;
-extern char *PASSPHRASE;
-
-extern lv_task_t *timeout_task;
-extern ui_display_node *current_display_node;
-
-void send_transaction_tasks_eth() {
-  switch (flow_level.level_three) {
-    case SEND_TXN_VERIFY_COIN_ETH: {
-      instruction_scr_init("", NULL);
-      instruction_scr_change_text(ui_text_processing, true);
-      BSP_DelayMs(DELAY_SHORT);
-      mark_event_over();
-    } break;
-
-    case SEND_TXN_UNSIGNED_TXN_WAIT_SCREEN_ETH: {
-      mark_event_over();
-    } break;
-
-    case SEND_TXN_VERIFY_CONTRACT_ADDRESS: {
-      char address[43];
-      address[0] = '0';
-      address[1] = 'x';
-      char top_heading[55];
-      char display[70];
-
-      instruction_scr_destructor();
-      byte_array_to_hex_string(eth_unsigned_txn_ptr.to_address,
-                               20,
-                               address + 2,
-                               sizeof(address) - 2);
-      snprintf(top_heading, sizeof(top_heading), "%s", ui_text_verify_contract);
-      snprintf(display, sizeof(display), "%s%s", ui_text_20_spaces, address);
-      address_scr_init(top_heading, display, true);
-    } break;
-
-    case SEND_TXN_VERIFY_TXN_NONCE_ETH: {
-      char nonce_hex_str[ETH_NONCE_SIZE_BYTES * 2 + 1] = {'\0'};
-      uint8_t nonce_dec_str[ETH_NONCE_SIZE_BYTES * 3] = {0};
-      uint16_t nonce_dec_len = sizeof(nonce_dec_str), nonce_hex_len;
-      int index, offset;
-      nonce_hex_len =
-          byte_array_to_hex_string(eth_unsigned_txn_ptr.nonce,
-                                   eth_unsigned_txn_ptr.nonce_size[0],
-                                   nonce_hex_str,
-                                   sizeof(nonce_hex_str));
-      convertbase16tobase10(
-          nonce_hex_len - 1, nonce_hex_str, nonce_dec_str, nonce_dec_len);
-      // Loop till 2nd last index; to handle "0" nonce value by generalising for
-      // 1 digit nonce values
-      for (index = 0; index < nonce_dec_len - 1; index++)
-        if (nonce_dec_str[index] != 0)
-          break;
-      for (offset = index; index < nonce_dec_len; index++)
-        nonce_dec_str[index - offset] = nonce_dec_str[index] + '0';
-      ASSERT((index > offset) && ((index - offset) < nonce_dec_len));
-      nonce_dec_str[index - offset] = '\0';
-      instruction_scr_destructor();
-      address_scr_init("Verify nonce", (char *)nonce_dec_str, false);
-    } break;
-
-    case SEND_TXN_VERIFY_RECEIPT_ADDRESS_ETH: {
-      instruction_scr_destructor();
-      char address[43];
-      address[0] = '0';
-      address[1] = 'x';
-      char top_heading[225];
-      uint8_t address_bytes[20];
-      char display[70];
-      uint64_t chain_id =
-          var_send_transaction_data.transaction_metadata.network_chain_id;
-      uint8_t is_harmony_hrp =
-          var_send_transaction_data.transaction_metadata.is_harmony_address;
-
-      instruction_scr_destructor();
-      if (is_harmony_hrp == 0 || (chain_id != HARMONY_MAINNET_CHAIN))
-        byte_array_to_hex_string(address_bytes,
-                                 sizeof(address_bytes),
-                                 address + 2,
-                                 sizeof(address) - 2);
-      else
-        bech32_addr_encode(
-            address, "one", address_bytes, sizeof(address_bytes));
-      snprintf(top_heading, sizeof(top_heading), "%s", "");
-      snprintf(display, sizeof(display), "%s%s", ui_text_20_spaces, address);
-      address_scr_init(top_heading, display, true);
-    } break;
-
-    case SEND_TXN_CALCULATE_AMOUNT_ETH: {
-      instruction_scr_init("", NULL);
-      instruction_scr_change_text(ui_text_processing, true);
-      BSP_DelayMs(DELAY_SHORT);
-      mark_event_over();
-    } break;
-
-    case SEND_TXN_VERIFY_RECEIPT_AMOUNT_ETH: {
-      char amount_string[65] = {'\0'}, amount_decimal_string[30] = {'\0'};
-      char display[110] = {'\0'};
-      memzero(amount_string, sizeof(amount_string));
-      uint8_t len = 0, i = 0, j = 0;
-
-      uint8_t decimal_val_s[ETH_VALUE_SIZE_BYTES * 3] = {0};
-      if (sizeof(decimal_val_s) / sizeof(decimal_val_s[0]) > UINT8_MAX) {
-        LOG_ERROR("0xxx#");
-        break;
-      }
-      const uint8_t dec_val_len =
-          sizeof(decimal_val_s) /
-          sizeof(decimal_val_s[0]);    // logbase10(2pow256) roughly equals 78
-      convertbase16tobase10(len, amount_string, decimal_val_s, dec_val_len);
-      bool pre_dec_digit = false, post_dec_digit = false;
-      uint8_t offset = 0;
-      log_hex_array("eth value: ", (uint8_t *)amount_string, len);
-      uint8_t point_index = dec_val_len - 0;
-      i = 0;
-      j = dec_val_len - 1;
-
-      while (i <= j) {
-        if (i == point_index && post_dec_digit) {
-          if (!pre_dec_digit) {
-            offset += snprintf(amount_decimal_string + offset,
-                               sizeof(amount_decimal_string) - offset,
-                               "0");
-          }
-          offset += snprintf(amount_decimal_string + offset,
-                             sizeof(amount_decimal_string) - offset,
-                             ".");
-        }
-        if (j >= point_index) {
-          if (!decimal_val_s[j] && !post_dec_digit) {
-            j--;
-          } else if (decimal_val_s[j]) {
-            post_dec_digit = true;
-          }
-        }
-        if (decimal_val_s[i] || i == point_index) {
-          pre_dec_digit = true;
-        }
-        if (pre_dec_digit || decimal_val_s[i]) {
-          // attach non zero leading value detected or decimal digits till
-          // j(should be the last non zero decimal digit index).
-          offset += snprintf(amount_decimal_string + offset,
-                             sizeof(amount_decimal_string) - offset,
-                             "%d",
-                             decimal_val_s[i]);
-        }
-        i++;
-      }
-      if (!post_dec_digit && !pre_dec_digit) {
-        snprintf(amount_decimal_string, sizeof(amount_decimal_string) - 1, "0");
-      }
-
-      instruction_scr_destructor();
-      confirm_scr_init(display);
-    } break;
-
-    case SEND_TXN_VERIFY_RECEIPT_FEES_ETH: {
-      char display[125] = {0}, fee[30] = {0};
-
-      instruction_scr_destructor();
-      eth_get_fee_string(&eth_unsigned_txn_ptr, fee, sizeof(fee), ETH_DECIMAL);
-      snprintf(display, sizeof(display), UI_TEXT_SEND_TXN_FEE, fee, "");
-      confirm_scr_init(display);
-    } break;
-
-    case SEND_TXN_VERIFY_RECEIPT_ADDRESS_SEND_CMD_ETH: {
-      mark_event_over();
-    } break;
-
-    case SEND_TXN_DISPLAY_INFO_ETH: {
-      instruction_scr_destructor();
-      if (current_display_node == NULL)
-        mark_event_over();
-      else
-        ui_scrollable_page(current_display_node->title,
-                           current_display_node->value,
-                           MENU_SCROLL_HORIZONTAL,
-                           false);
-    } break;
-
-    case SEND_TXN_ENTER_PASSPHRASE_ETH: {
-      if (!WALLET_IS_PASSPHRASE_SET(wallet.wallet_info)) {
-        flow_level.level_three = SEND_TXN_VERIFY_RECEIPT_ADDRESS_SEND_CMD_ETH;
-        break;
-      }
-      input_text_init(PASSPHRASE,
-                      26,
-                      ui_text_enter_passphrase,
-                      0,
-                      DATA_TYPE_PASSPHRASE,
-                      64);
-
-    } break;
-
-    case SEND_TXN_CONFIRM_PASSPHRASE_ETH: {
-      char display[65];
-      snprintf(
-          display, sizeof(display), "%s", flow_level.screen_input.input_text);
-      address_scr_init(ui_text_confirm_passphrase, display, false);
-      memzero(display, sizeof(display));
-    } break;
-
-    case SEND_TXN_CHECK_PIN_ETH: {
-      mark_event_over();
-    } break;
-
-    case SEND_TXN_ENTER_PIN_ETH: {
-      if (!WALLET_IS_PIN_SET(wallet.wallet_info)) {
-        flow_level.level_three = SEND_TXN_CHECK_PIN_ETH;
-        break;
-      }
-      input_text_init(
-          ALPHA_NUMERIC, 26, ui_text_enter_pin, 4, DATA_TYPE_PIN, 8);
-
-    } break;
-
-    case SEND_TXN_TAP_CARD_ETH: {
-      tap_threshold_cards_for_reconstruction();
-    } break;
-
-    case SEND_TXN_TAP_CARD_SEND_CMD_ETH: {
-      instruction_scr_init("", NULL);
-      instruction_scr_change_text(ui_text_processing, true);
-      BSP_DelayMs(DELAY_SHORT);
-      mark_event_over();
-    } break;
-
-    case SEND_TXN_READ_DEVICE_SHARE_ETH: {
-      mark_event_over();
-    } break;
-
-    case SEND_TXN_SIGN_TXN_ETH: {
-      mark_event_over();
-    } break;
-
-    case SEND_TXN_WAITING_SCREEN_ETH: {
-      mark_event_over();
-    } break;
-
-    case SEND_TXN_FINAL_SCREEN_ETH:
-      delay_scr_init(ui_text_exported_signed_transaction_to_desktop,
-                     DELAY_TIME);
-      CY_Reset_Not_Allow(true);
-      break;
-
-    default:
-      break;
-  }
-}
diff --git a/src/level_four/core/tasks/send_transaction_tasks_solana.c b/src/level_four/core/tasks/send_transaction_tasks_solana.c
deleted file mode 100644
index 874160d68..000000000
--- a/src/level_four/core/tasks/send_transaction_tasks_solana.c
+++ /dev/null
@@ -1,260 +0,0 @@
-/**
- * @file    send_transaction_tasks_solana.c
- * @author  Cypherock X1 Team
- * @brief   Send transaction for SOLANA.
- *          This file contains functions to send transaction for SOLANA.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "constant_texts.h"
-#include "controller_level_four.h"
-#include "int-util.h"
-#include "math.h"
-#include "solana.h"
-#include "tasks_level_four.h"
-#include "tasks_tap_cards.h"
-#include "ui_address.h"
-#include "ui_confirmation.h"
-#include "ui_delay.h"
-#include "ui_input_text.h"
-#include "ui_instruction.h"
-#include "ui_message.h"
-#include "utils.h"
-
-extern char *ALPHABET;
-extern char *ALPHA_NUMERIC;
-extern char *NUMBERS;
-extern char *PASSPHRASE;
-
-extern lv_task_t *timeout_task;
-
-void send_transaction_tasks_solana() {
-  switch (flow_level.level_three) {
-    case SEND_TXN_VERIFY_COIN_SOLANA: {
-      instruction_scr_init(ui_text_processing, NULL);
-      instruction_scr_change_text(ui_text_processing, true);
-      BSP_DelayMs(DELAY_SHORT);
-      mark_event_over();
-    } break;
-
-    case SEND_TXN_UNSIGNED_TXN_WAIT_SCREEN_SOLANA: {
-      mark_event_over();
-    } break;
-
-    case SEND_TXN_UNSIGNED_TXN_RECEIVED_SOLANA: {
-      mark_event_over();
-    } break;
-
-    case SEND_TXN_VERIFY_CONTRACT_ADDRESS: {
-      mark_event_over();
-    } break;
-
-    case SEND_TXN_VERIFY_RECEIPT_ADDRESS_SOLANA: {
-      instruction_scr_destructor();
-      char address[45] = {0};
-      char top_heading[225] = {0};
-      char display[70] = {0};
-
-      instruction_scr_destructor();
-      size_t address_size = sizeof(address);
-      b58enc(address,
-             &address_size,
-             solana_unsigned_txn_ptr.instruction.program.transfer
-                 .recipient_account,
-             SOLANA_ACCOUNT_ADDRESS_LENGTH);
-      snprintf(top_heading, sizeof(top_heading), "%s", ui_text_verify_address);
-      snprintf(display, sizeof(display), "%s%s", ui_text_20_spaces, address);
-      address_scr_init(top_heading, display, true);
-    } break;
-
-    case SEND_TXN_CALCULATE_AMOUNT_SOLANA: {
-      instruction_scr_init(ui_text_processing, NULL);
-      instruction_scr_change_text(ui_text_processing, true);
-      BSP_DelayMs(DELAY_SHORT);
-      mark_event_over();
-    } break;
-
-    case SEND_TXN_VERIFY_RECEIPT_AMOUNT_SOLANA: {
-      char amount_string[40] = {'\0'}, amount_decimal_string[30] = {'\0'};
-      char display[110] = {'\0'};
-      uint8_t be_lamports[8] = {0};
-      int i = 8;
-      while (i--)
-        be_lamports[i] =
-            solana_unsigned_txn_ptr.instruction.program.transfer.lamports >>
-            8 * (7 - i);
-      byte_array_to_hex_string(
-          be_lamports, 8, amount_string, sizeof(amount_string));
-      if (!convert_byte_array_to_decimal_string(16,
-                                                solana_get_decimal(),
-                                                amount_string,
-                                                amount_decimal_string,
-                                                sizeof(amount_decimal_string)))
-        break;
-      instruction_scr_destructor();
-      snprintf(display,
-               sizeof(display),
-               UI_TEXT_VERIFY_AMOUNT,
-               amount_decimal_string,
-               "");
-      confirm_scr_init(display);
-    } break;
-
-    case SEND_TXN_VERIFY_RECEIPT_FEES_SOLANA: {
-      char amount_string[40] = {'\0'}, amount_decimal_string[30] = {'\0'};
-      char display[110] = {'\0'};
-      byte_array_to_hex_string((const uint8_t *)var_send_transaction_data
-                                   .transaction_metadata.transaction_fees,
-                               8,
-                               amount_string,
-                               sizeof(amount_string));
-      uint8_t decimal_val_s[32 * 3] = {0};
-
-      if (sizeof(decimal_val_s) / sizeof(decimal_val_s[0]) > UINT8_MAX) {
-        LOG_ERROR("0xxx#");
-        break;
-      }
-
-      if (!convert_byte_array_to_decimal_string(16,
-                                                solana_get_decimal(),
-                                                amount_string,
-                                                amount_decimal_string,
-                                                sizeof(amount_decimal_string)))
-        break;
-      instruction_scr_destructor();
-      snprintf(display,
-               sizeof(display),
-               UI_TEXT_VERIFY_AMOUNT,
-               amount_decimal_string,
-               "");
-      confirm_scr_init(display);
-    } break;
-
-    case SEND_TXN_VERIFY_RECEIPT_ADDRESS_SEND_CMD_SOLANA: {
-      mark_event_over();
-    } break;
-
-    case SEND_TXN_ENTER_PASSPHRASE_SOLANA: {
-      if (!WALLET_IS_PASSPHRASE_SET(wallet.wallet_info)) {
-        flow_level.level_three =
-            SEND_TXN_VERIFY_RECEIPT_ADDRESS_SEND_CMD_SOLANA;
-        break;
-      }
-      input_text_init(PASSPHRASE,
-                      26,
-                      ui_text_enter_passphrase,
-                      0,
-                      DATA_TYPE_PASSPHRASE,
-                      64);
-
-    } break;
-
-    case SEND_TXN_CONFIRM_PASSPHRASE_SOLANA: {
-      char display[65];
-      snprintf(
-          display, sizeof(display), "%s", flow_level.screen_input.input_text);
-      address_scr_init(ui_text_confirm_passphrase, display, false);
-      memzero(display, sizeof(display));
-    } break;
-
-    case SEND_TXN_CHECK_PIN_SOLANA: {
-      mark_event_over();
-    } break;
-
-    case SEND_TXN_ENTER_PIN_SOLANA: {
-      if (!WALLET_IS_PIN_SET(wallet.wallet_info)) {
-        flow_level.level_three = SEND_TXN_CHECK_PIN_SOLANA;
-        break;
-      }
-      input_text_init(
-          ALPHA_NUMERIC, 26, ui_text_enter_pin, 4, DATA_TYPE_PIN, 8);
-
-    } break;
-
-    case SEND_TXN_TAP_CARD_SOLANA: {
-      tap_threshold_cards_for_reconstruction();
-    } break;
-
-    case SEND_TXN_TAP_CARD_SEND_CMD_SOLANA: {
-      instruction_scr_init(ui_text_processing, NULL);
-      instruction_scr_change_text(ui_text_processing, true);
-      BSP_DelayMs(DELAY_SHORT);
-      mark_event_over();
-    } break;
-
-    case SEND_TXN_UPDATE_BLOCKHASH_SOLANA: {
-      mark_event_over();
-    } break;
-
-    case SEND_TXN_READ_DEVICE_SHARE_SOLANA: {
-      mark_event_over();
-    } break;
-
-    case SEND_TXN_SIGN_TXN_SOLANA: {
-      mark_event_over();
-    } break;
-
-    case SEND_TXN_WAITING_SCREEN_SOLANA: {
-      mark_event_over();
-    } break;
-
-    case SEND_TXN_FINAL_SCREEN_SOLANA:
-      delay_scr_init(ui_text_exported_signed_transaction_to_desktop,
-                     DELAY_TIME);
-      CY_Reset_Not_Allow(true);
-      break;
-
-    default:
-      break;
-  }
-}
diff --git a/src/level_four/core/tasks/sign_message_tasks_eth.c b/src/level_four/core/tasks/sign_message_tasks_eth.c
deleted file mode 100644
index 8f25ccacd..000000000
--- a/src/level_four/core/tasks/sign_message_tasks_eth.c
+++ /dev/null
@@ -1,178 +0,0 @@
-/**
- * @file    sign_message_tasks_eth.c
- * @author  Cypherock X1 Team
- * @brief   Sign message for ETH.
- *          This file contains functions to send transaction for ETH.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "constant_texts.h"
-#include "controller_level_four.h"
-#include "int-util.h"
-#include "math.h"
-#include "tasks_level_four.h"
-#include "tasks_tap_cards.h"
-#include "ui_address.h"
-#include "ui_confirmation.h"
-#include "ui_delay.h"
-#include "ui_input_text.h"
-#include "ui_instruction.h"
-#include "ui_message.h"
-#include "ui_scroll_page.h"
-#include "utils.h"
-
-extern char *ALPHABET;
-extern char *ALPHA_NUMERIC;
-extern char *NUMBERS;
-extern char *PASSPHRASE;
-
-extern lv_task_t *timeout_task;
-extern ui_display_node *current_display_node;
-
-void sign_message_tasks_eth() {
-  switch (flow_level.level_three) {
-    case SIGN_MSG_VERIFY_COIN_ETH: {
-      instruction_scr_init("", NULL);
-      instruction_scr_change_text(ui_text_processing, true);
-      BSP_DelayMs(DELAY_SHORT);
-      mark_event_over();
-    } break;
-
-    case SIGN_MSG_RAW_MSG_WAIT_SCREEN_ETH: {
-      mark_event_over();
-    } break;
-
-    case SIGN_MSG_DISPLAY_INFO_ETH: {
-      instruction_scr_destructor();
-      if (current_display_node == NULL)
-        mark_event_over();
-      else
-        ui_scrollable_page(current_display_node->title,
-                           current_display_node->value,
-                           MENU_SCROLL_HORIZONTAL,
-                           false);
-    } break;
-
-    case SIGN_MSG_CHECK_PASSPHRASE_ETH: {
-      mark_event_over();
-    } break;
-
-    case SIGN_MSG_ENTER_PASSPHRASE_ETH: {
-      if (!WALLET_IS_PASSPHRASE_SET(wallet.wallet_info)) {
-        flow_level.level_three = SIGN_MSG_CHECK_PIN_ETH;
-        break;
-      }
-      input_text_init(PASSPHRASE,
-                      26,
-                      ui_text_enter_passphrase,
-                      0,
-                      DATA_TYPE_PASSPHRASE,
-                      64);
-
-    } break;
-
-    case SIGN_MSG_CONFIRM_PASSPHRASE_ETH: {
-      char display[65];
-      snprintf(
-          display, sizeof(display), "%s", flow_level.screen_input.input_text);
-      address_scr_init(ui_text_confirm_passphrase, display, false);
-      memzero(display, sizeof(display));
-    } break;
-
-    case SIGN_MSG_CHECK_PIN_ETH: {
-      mark_event_over();
-    } break;
-
-    case SIGN_MSG_ENTER_PIN_ETH: {
-      if (!WALLET_IS_PIN_SET(wallet.wallet_info)) {
-        flow_level.level_three = SIGN_MSG_CHECK_PIN_ETH;
-        break;
-      }
-      input_text_init(
-          ALPHA_NUMERIC, 26, ui_text_enter_pin, 4, DATA_TYPE_PIN, 8);
-
-    } break;
-
-    case SIGN_MSG_TAP_CARD_ETH: {
-      tap_threshold_cards_for_reconstruction();
-    } break;
-
-    case SIGN_MSG_TAP_CARD_SEND_CMD_ETH: {
-      instruction_scr_init("", NULL);
-      instruction_scr_change_text(ui_text_processing, true);
-      BSP_DelayMs(DELAY_SHORT);
-      mark_event_over();
-    } break;
-
-    case SIGN_MSG_READ_DEVICE_SHARE_ETH: {
-      mark_event_over();
-    } break;
-
-    case SIGN_MSG_SIGN_TXN_ETH: {
-      mark_event_over();
-    } break;
-
-    case SIGN_MSG_WAITING_SCREEN_ETH: {
-      mark_event_over();
-    } break;
-
-    case SIGN_MSG_FINAL_SCREEN_ETH:
-      delay_scr_init(ui_text_exported_signed_transaction_to_desktop,
-                     DELAY_TIME);
-      CY_Reset_Not_Allow(true);
-      break;
-
-    default:
-      break;
-  }
-}
diff --git a/src/level_four/core/tasks/tasks_level_four.h b/src/level_four/core/tasks/tasks_level_four.h
deleted file mode 100644
index d3ba89b50..000000000
--- a/src/level_four/core/tasks/tasks_level_four.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/**
- * @file    tasks_level_four.h
- * @author  Cypherock X1 Team
- * @brief   Header for level four tasks.
- *          This file contains all the functions prototypes for level four
- * tasks.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- * target=_blank>https://mitcc.org/</a>
- *
- */
-#ifndef TASKS_LEVEL_FOUR_H
-#define TASKS_LEVEL_FOUR_H
-
-#pragma once
-
-#include "coin_utils.h"
-#include "controller_main.h"
-#include "eth.h"
-#include "tasks.h"
-
-extern evm_unsigned_txn eth_unsigned_txn_ptr;
-extern uint8_t challenge_no[32];
-
-/**
- * @brief This task is executed for processing and signing unsigned transaction
- *  of Ethereum.
- * @details
- *
- * @see
- * @since v1.0.0
- */
-void send_transaction_tasks_eth();
-
-/**
- * @brief This task is executed for processing and signing unsigned transaction
- * of Ethereum.
- *
- */
-void sign_message_tasks_eth();
-
-/**
- * @brief This task is executed for processing and signing unsigned transaction.
- */
-void send_transaction_tasks_solana();
-
-/**
- * @brief This task is executed for generating address using xpub for Ethereum.
- * @details
- *
- * @see
- * @since v1.0.0
- */
-void receive_transaction_tasks_eth();
-
-/**
- * @brief This task is executed for handling near registered accounts and
- * generating near implicit account.
- * @details
- *
- * @see
- * @since v1.0.0
- */
-void receive_transaction_tasks_near();
-
-/**
- * @brief This task is executed for generating solana address using the public
- * key
- * @details
- *
- * @see
- * @since v1.0.0
- */
-void receive_transaction_tasks_solana();
-
-/**
- * @brief This task is executed for verifying wallet added or restored
- * on the device and cards.
- * @details
- *
- * @see
- * @since v1.0.0
- */
-void verify_wallet_tasks();
-
-/**
- * @brief Device provision task handler
- * @details
- *
- * @see
- * @since v1.0.0
- */
-void task_device_provision();
-
-/**
- * @brief This task is executed when the name of a wallet is clicked
- * and it is locked.
- * @details
- *
- * @see
- * @since v1.0.0
- */
-void wallet_locked_task();
-
-/**
- * @brief This task is executed for verifying card.
- * @details
- *
- * @see
- * @since v1.0.0
- */
-void verify_card_task();
-
-/**
- * @brief This task is executed for upgrading cards.
- * @details
- *
- * @see
- * @since v1.0.0
- */
-void card_upgrade_task();
-
-#endif
\ No newline at end of file
diff --git a/src/level_four/core/tasks/verify_wallet_task.c b/src/level_four/core/tasks/verify_wallet_task.c
deleted file mode 100644
index 81018b3b0..000000000
--- a/src/level_four/core/tasks/verify_wallet_task.c
+++ /dev/null
@@ -1,134 +0,0 @@
-/**
- * @file    verify_wallet_task.c
- * @author  Cypherock X1 Team
- * @brief   Verify wallet task.
- *          This file contains the implementation of the verify wallet task.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "bip39.h"
-#include "controller_main.h"
-#include "flash_api.h"
-#include "shamir_wrapper.h"
-#include "tasks_level_four.h"
-#include "tasks_tap_cards.h"
-#include "ui_address.h"
-#include "ui_confirmation.h"
-#include "ui_delay.h"
-#include "ui_input_text.h"
-#include "ui_instruction.h"
-#include "ui_list.h"
-#include "ui_message.h"
-#include "ui_multi_instruction.h"
-
-extern char *ALPHABET;
-extern char *ALPHA_NUMERIC;
-extern char *NUMBERS;
-
-extern Wallet_shamir_data wallet_shamir_data;
-extern Wallet_credential_data wallet_credential_data;
-
-void verify_wallet_tasks() {
-  switch (flow_level.level_three) {
-    case VERIFY_WALLET_START:
-      mark_event_over();
-      break;
-
-    case VERIFY_WALLET_PIN_INPUT:
-      input_text_init(
-          ALPHA_NUMERIC, 26, ui_text_enter_pin, 4, DATA_TYPE_PIN, 8);
-      break;
-
-    case VERIFY_WALLET_TAP_CARDS_FLOW:
-      tap_cards_for_verification_flow();
-      break;
-
-    case VERIFY_WALLET_DATA: {
-      instruction_scr_init(ui_text_processing, "");
-      instruction_scr_change_text(ui_text_processing, true);
-      BSP_DelayMs(DELAY_SHORT);
-      mark_event_over();
-    } break;
-
-    case VERIFY_WALLET_SUCCESS: {
-      instruction_scr_destructor();
-      const char *messages[6] = {
-          ui_text_verification_is_now_complete_messages[0],
-          ui_text_verification_is_now_complete_messages[1],
-          ui_text_verification_is_now_complete_messages[2],
-          ui_text_verification_is_now_complete_messages[4],
-          ui_text_verification_is_now_complete_messages[5],
-          NULL};
-      uint8_t count = 5;
-
-      if (WALLET_IS_PIN_SET(wallet.wallet_info)) {
-        messages[3] = ui_text_verification_is_now_complete_messages[3];
-        messages[4] = ui_text_verification_is_now_complete_messages[4];
-        messages[5] = ui_text_verification_is_now_complete_messages[5];
-        count = 6;
-      }
-
-      multi_instruction_init(messages, count, DELAY_LONG_STRING, true);
-    } break;
-
-    case VERIFY_WALLET_DELETE:
-      instruction_scr_destructor();
-      address_scr_init(ui_text_verification_cancelled,
-                       (char *)ui_text_delete_this_wallet,
-                       false);
-      break;
-
-    default:
-      break;
-  }
-}
diff --git a/src/level_four/core/tasks/wallet_locked_tasks.c b/src/level_four/core/tasks/wallet_locked_tasks.c
deleted file mode 100644
index 1ef6b66dd..000000000
--- a/src/level_four/core/tasks/wallet_locked_tasks.c
+++ /dev/null
@@ -1,129 +0,0 @@
-/**
- * @file    wallet_locked_tasks.c
- * @author  Cypherock X1 Team
- * @brief   Wallet unlock task.
- *          This file contains the implementation of wallet unlock task.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "pow.h"
-#include "pow_utilities.h"
-#include "tasks_level_four.h"
-#include "ui_delay.h"
-#include "ui_input_text.h"
-#include "ui_instruction.h"
-#include "ui_text_slideshow.h"
-
-extern Flow_level flow_level;
-extern Counter counter;
-extern Wallet wallet;
-extern char *ALPHA_NUMERIC;
-
-void wallet_locked_task() {
-  switch (flow_level.level_three) {
-    case WALLET_LOCKED_MESSAGE: {
-      char slideshow[2][MAX_NUM_OF_CHARS_IN_A_SLIDE];
-      uint8_t wallet_index;
-
-      get_index_by_name((const char *)wallet.wallet_name, &wallet_index);
-
-      convert_secs_to_time(get_wallet_time_to_unlock(wallet_index),
-                           (char *)wallet.wallet_name,
-                           slideshow[0]);
-      snprintf(slideshow[1],
-               sizeof(slideshow[1]),
-               "Multiple incorrect attempts may block %s",
-               wallet.wallet_name);
-      char *temp[3] = {
-          slideshow[0], (char *)ui_text_do_not_detach_device, slideshow[1]};
-      ui_text_slideshow_init((const char **)temp, 3, DELAY_TIME, false);
-      start_proof_of_work_task((const char *)wallet.wallet_name);
-
-    } break;
-
-    case WALLET_LOCKED_ENTER_PIN:
-      input_text_init(
-          ALPHA_NUMERIC, 26, ui_text_enter_pin, 4, DATA_TYPE_PIN, 8);
-      break;
-
-    case WALLET_LOCKED_TAP_CARD_FRONTEND: {
-      Flash_Wallet *flash_wallet;
-      get_flash_wallet_by_name((const char *)wallet.wallet_name, &flash_wallet);
-
-      char msg[32];
-      snprintf(msg,
-               sizeof(msg),
-               UI_TEXT_TAP_CARD,
-               decode_card_number(flash_wallet->challenge.card_locked));
-
-      instruction_scr_init(msg, NULL);
-      mark_event_over();
-    } break;
-
-    case WALLET_LOCKED_TAP_CARD_BACKEND:
-      mark_event_over();
-      break;
-
-    case WALLET_LOCKED_SUCCESS: {
-      char msg[50];
-      snprintf(msg,
-               sizeof(msg),
-               "Correct PIN! %s is now unlocked",
-               wallet.wallet_name);
-      delay_scr_init(msg, DELAY_TIME);
-    } break;
-
-    default:
-      break;
-  }
-}
\ No newline at end of file
diff --git a/src/level_four/tap_cards/controller/card_action_controllers.h b/src/level_four/tap_cards/controller/card_action_controllers.h
deleted file mode 100644
index 682fbc993..000000000
--- a/src/level_four/tap_cards/controller/card_action_controllers.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/**
- * @file    card_action_controllers.h
- * @author  Cypherock X1 Team
- * @brief   Header for card action controllers.
- *          This file contains the declaration of the card action controllers.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- * target=_blank>https://mitcc.org/</a>
- *
- */
-#ifndef CONTROLLER_CARD_ACTIONS
-#define CONTROLLER_CARD_ACTIONS
-#include <stdint.h>
-
-void readback_share_from_card(uint8_t xcor);
-
-int verify_card_share_data();
-
-#endif
\ No newline at end of file
diff --git a/src/level_four/tap_cards/controller/controller_tap_cards.c b/src/level_four/tap_cards/controller/controller_tap_cards.c
deleted file mode 100644
index dcf1c57ac..000000000
--- a/src/level_four/tap_cards/controller/controller_tap_cards.c
+++ /dev/null
@@ -1,305 +0,0 @@
-/**
- * @file    controller_tap_cards.c
- * @author  Cypherock X1 Team
- * @brief   Tap card next controller.
- *          This file contains the functions to control the tap card next
- *controller.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "controller_tap_cards.h"
-
-#include "app_error.h"
-#include "nfc.h"
-#include "tasks.h"
-#include "ui_instruction.h"
-
-NFC_connection_data tap_card_data;
-
-bool tap_card_applet_connection() {
-  uint8_t acceptable_cards;
-  tap_card_data.recovery_mode = 0;
-  if (tap_card_data.desktop_control) {
-    nfc_set_early_exit_handler(&cy_exit_flow);
-    CY_Reset_Not_Allow(false);
-  } else {
-    nfc_set_early_exit_handler(NULL);
-  }
-  if (!tap_card_data.card_absent_retries) {
-    tap_card_data.card_absent_retries = 100;
-  }
-
-  while (1) {
-    if (nfc_select_card() !=
-        STM_SUCCESS)    // Stuck here until card is detected
-      return false;
-
-    instruction_scr_change_text(ui_text_card_detected, true);
-
-    acceptable_cards = tap_card_data.acceptable_cards;
-    tap_card_data.status = nfc_select_applet(tap_card_data.family_id,
-                                             &tap_card_data.acceptable_cards,
-                                             NULL,
-                                             tap_card_data.card_key_id,
-                                             &tap_card_data.recovery_mode);
-
-    /* Card is in recovery mode. This is a critical situation. Instruct user to
-     * safely recover/export wallets to different set of cards in limited
-     * attempts. NOTE: Errors such as invalid card & invalid family id have
-     * higher priority than this.
-     */
-    if (tap_card_data.recovery_mode == 1)
-      mark_error_screen(ui_critical_card_health_migrate_data);
-
-    /* The tapped_card information should be persistent, as it is used at later
-     * stage in the flow For example, in the second half of card-verification,
-     * the card tapped in first half becomes the acceptable card for that half.
-     * It is the knowledge of previous round of card tapping, hence it's update
-     * should happen only here or at the fresh start of a card tap flow. */
-    tap_card_data.tapped_card =
-        (acceptable_cards ^ tap_card_data.acceptable_cards);
-
-    if (tap_card_data.status == SW_NO_ERROR) {
-#if X1WALLET_MAIN
-      tap_card_data.keystore_index =
-          get_paired_card_index(tap_card_data.card_key_id);
-      if (false) {
-        tap_card_take_to_pairing();
-        return false;
-      }
-#endif
-      const uint8_t *pairing_key =
-          get_keystore_pairing_key(tap_card_data.keystore_index);
-      if (tap_card_data.keystore_index >= 0)
-        init_session_keys(pairing_key, pairing_key + 32, NULL);
-      return true;
-    } else if (tap_card_data.status == SW_CONDITIONS_NOT_SATISFIED) {
-      mark_error_screen(ui_text_wrong_card_sequence);
-    } else if (tap_card_data.status == SW_FILE_INVALID) {
-      mark_error_screen(ui_text_family_id_mismatch);
-    } else if (tap_card_data.status == SW_FILE_NOT_FOUND) {
-      mark_error_screen(ui_text_corrupted_card_contact_support);
-      reset_flow_level();
-    } else if (tap_card_data.status == SW_INCOMPATIBLE_APPLET) {
-      mark_error_screen(ui_text_incompatible_card_version);
-      reset_flow_level();
-    } else {
-      tap_card_data.tapped_card = 0;
-      tap_card_data.acceptable_cards = acceptable_cards;
-      if ((tap_card_data.status == NFC_CARD_ABSENT) ||
-          (nfc_diagnose_card_presence() != 0)) {
-        instruction_scr_change_text(ui_text_card_removed_fast, true);
-        if ((!--tap_card_data.card_absent_retries)) {
-          tap_card_data.status = NFC_CARD_ABSENT;
-          mark_error_screen(ui_text_card_freq_discon_fault);
-        }
-      } else if (!(--tap_card_data.retries)) {
-        mark_error_screen(ui_text_unknown_error_contact_support);
-        reset_flow_level();
-      } else if ((tap_card_data.status & NFC_ERROR_BASE) == NFC_ERROR_BASE) {
-        instruction_scr_change_text(ui_text_card_align_with_device_screen,
-                                    true);
-        nfc_deselect_card();
-      }
-    }
-    LOG_ERROR("err (0x%04X)\n", tap_card_data.status);
-
-    if (flow_level.show_error_screen) {
-      buzzer_start(BUZZER_DURATION);
-      if (counter.level !=
-          LEVEL_ONE) {    // flow not reset, we wanna retry after prompting user
-        flow_level.level_three = tap_card_data.lvl3_retry_point;
-        flow_level.level_four = tap_card_data.lvl4_retry_point;
-      } else {    // flow is reset, convey to desktop if needed
-        if (tap_card_data.desktop_control)
-          comm_reject_request(tap_card_data.active_cmd_type, 0);
-      }
-      instruction_scr_destructor();
-      return false;
-    }
-  }
-}
-
-bool tap_card_handle_applet_errors() {
-  LOG_ERROR("err (0x%04X)\n", tap_card_data.status);
-  switch (tap_card_data.status) {
-    case SW_NO_ERROR:
-      return true;
-    case SW_SECURITY_CONDITIONS_NOT_SATISFIED:
-      mark_error_screen(ui_text_security_conditions_not_met);
-      reset_flow_level();
-      break;
-    case SW_NOT_PAIRED:
-      invalidate_keystore();
-      tap_card_take_to_pairing();
-      return true;
-    case SW_CONDITIONS_NOT_SATISFIED:
-      break;
-    case SW_WRONG_DATA:
-      mark_error_screen(ui_text_card_invalid_apdu_length);
-      reset_flow_level();
-      break;
-    case SW_FILE_FULL:
-      mark_error_screen(ui_text_card_is_full);
-      reset_flow_level();
-      break;
-    case SW_RECORD_NOT_FOUND:
-      tap_card_data.active_cmd_type = WALLET_DOES_NOT_EXISTS_ON_CARD;
-      mark_error_screen(ui_text_wallet_doesnt_exists_on_this_card);
-      reset_flow_level();
-      break;
-    case SW_TRANSACTION_EXCEPTION:
-      mark_error_screen(ui_text_card_transaction_exception);
-      reset_flow_level();
-      break;
-    case SW_NULL_POINTER_EXCEPTION:
-      mark_error_screen(ui_text_card_null_pointer_exception);
-      reset_flow_level();
-      break;
-    case SW_OUT_OF_BOUNDARY:
-      mark_error_screen(ui_text_card_out_of_boundary_exception);
-      reset_flow_level();
-      break;
-    case SW_INVALID_INS:
-      mark_error_screen(ui_text_card_error_contact_support);
-      reset_flow_level();
-      break;
-    case SW_INS_BLOCKED:
-      mark_error_screen(ui_critical_card_health_migrate_data);
-      reset_flow_level();
-      break;
-    default:
-      if ((tap_card_data.status & 0xFF00) == POW_SW_WALLET_LOCKED) {
-        uint8_t target[SHA256_SIZE], random_number[POW_RAND_NUMBER_SIZE];
-
-        tap_card_data.status =
-            nfc_get_challenge(wallet.wallet_name, target, random_number);
-
-        mark_error_screen(ui_text_wrong_wallet_is_now_locked);
-        // if (tap_card_data.status == SW_NO_ERROR)
-        //   add_challenge_flash((const char *)wallet.wallet_name,
-        //                       target,
-        //                       random_number,
-        //                       tap_card_data.tapped_card);
-        tap_card_data.lvl3_retry_point = WALLET_LOCKED_MESSAGE;
-        flow_level.level_one = LEVEL_TWO_OLD_WALLET;
-        flow_level.level_two = LEVEL_THREE_WALLET_LOCKED;
-        decrease_level_counter();
-        if (tap_card_data.desktop_control) {
-          comm_reject_request(WALLET_IS_LOCKED, 0);
-          CY_Set_External_Triggered(false);
-        }
-      } else if ((tap_card_data.status & 0xFF00) == SW_CORRECT_LENGTH_00) {
-        char error_text[40];
-        snprintf(error_text,
-                 sizeof(error_text),
-                 "Incorrect PIN!\n%d attempt(s) remaining",
-                 tap_card_data.status & 0xFF);
-        mark_error_screen(error_text);
-        tap_card_data.lvl3_retry_point = flow_level.level_three - 1;
-        tap_card_data.lvl4_retry_point = 1;
-      } else if ((tap_card_data.status & 0xFF00) == SW_CRYPTO_EXCEPTION) {
-        mark_error_screen(ui_text_card_crypto_exception);
-        reset_flow_level();
-      } else {
-        tap_card_data.tapped_card = 0;
-        if ((tap_card_data.status == NFC_CARD_ABSENT) ||
-            (nfc_diagnose_card_presence() != 0)) {
-          instruction_scr_change_text(ui_text_card_removed_fast, true);
-          if ((!--tap_card_data.card_absent_retries)) {
-            tap_card_data.status = NFC_CARD_ABSENT;
-            mark_error_screen(ui_text_card_freq_discon_fault);
-          }
-        } else if (!(--tap_card_data.retries)) {
-          mark_error_screen(ui_text_unknown_error_contact_support);
-          reset_flow_level();
-        } else if ((tap_card_data.status & NFC_ERROR_BASE) == NFC_ERROR_BASE) {
-          instruction_scr_change_text(ui_text_card_align_with_device_screen,
-                                      true);
-          nfc_deselect_card();
-        }
-      }
-      break;
-  }
-
-  if (flow_level.show_error_screen) {
-    buzzer_start(BUZZER_DURATION);
-    if (counter.level !=
-        LEVEL_ONE) {    // flow not reset, we want to retry after prompting user
-      flow_level.level_three = tap_card_data.lvl3_retry_point;
-      flow_level.level_four = tap_card_data.lvl4_retry_point;
-    } else {    // flow is reset, convey to desktop if needed
-      if (tap_card_data.desktop_control)
-        comm_reject_request(tap_card_data.active_cmd_type, 0);
-    }
-    instruction_scr_destructor();
-    return true;
-  }
-
-  // probably comm failure; guess is NFC teardown; reconnect with applet
-  // silently retry to connect; can't connect here, cards_state is important
-  return false;
-}
-
-void tap_card_take_to_pairing() {
-#if X1WALLET_MAIN
-  buzzer_start(BUZZER_DURATION);
-  mark_error_screen(ui_text_device_and_card_not_paired);
-  reset_flow_level();
-  counter.level = LEVEL_THREE;
-  flow_level.level_one = LEVEL_TWO_ADVANCED_SETTINGS;
-  if (tap_card_data.desktop_control)
-    comm_reject_request(tap_card_data.active_cmd_type, 0);
-  instruction_scr_destructor();
-#endif
-}
diff --git a/src/level_four/tap_cards/controller/controller_tap_cards.h b/src/level_four/tap_cards/controller/controller_tap_cards.h
deleted file mode 100644
index 782281136..000000000
--- a/src/level_four/tap_cards/controller/controller_tap_cards.h
+++ /dev/null
@@ -1,202 +0,0 @@
-/**
- * @file    controller_tap_cards.h
- * @author  Cypherock X1 Team
- * @brief   Header for tap card controllers.
- *          This file contains the declaration of the tap card controllers.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- * target=_blank>https://mitcc.org/</a>
- *
- */
-
-#ifndef CONTROLLER_TAP_CARDS_H
-#define CONTROLLER_TAP_CARDS_H
-
-#include "buzzer.h"
-#include "controller_main.h"
-#include "nfc.h"
-#include "sha2.h"
-#include "stdbool.h"
-
-/**
- * @brief
- * @details
- *
- * @see
- * @since v1.0.0
- *
- * @note
- */
-typedef struct NFC_connection_data {
-  uint8_t desktop_control;    // TODO: Remove deprecated
-  uint8_t active_cmd_type;    // TODO: Remove deprecated
-  int8_t keystore_index;
-  uint8_t acceptable_cards;
-  uint8_t tapped_card;
-  uint8_t lvl3_retry_point;    // TODO: Remove deprecated
-  uint8_t lvl4_retry_point;    // TODO: Remove deprecated
-  uint8_t resume_point;        // TODO: Remove deprecated
-  uint8_t retries;
-  uint8_t family_id[FAMILY_ID_SIZE +
-                    2];    // TODO: Review(need to find reason for extra byte)
-  uint8_t card_key_id[4];
-  bool pairing_error;
-  uint8_t recovery_mode;
-  uint8_t card_absent_retries;
-  uint8_t *card_version;
-  bool init_session_keys;
-  ISO7816 status;
-} NFC_connection_data;
-
-extern NFC_connection_data tap_card_data;
-
-/**
- * @brief Identifies a JavaCard in the field and triggers handshake and X1
- * Applet invocation.
- * @details The function handles the JavaCard identification and handshake with
- * the X1 Applet. It also identifies certain states of the card and triggers the
- * appropriate action if possible. Other critical errors are handled and
- * reported in the UI.<br/> This function is responsible for initializing the
- * NFC SecureChannel session with the appropriate IV and key.<br/> For scenarios
- * like using a X1 Card from a different set or not using the requested card,
- * the function informs the user about the situation and continues to retry.
- * This happens without any limit on the retry attempts.<br/> If the X1 Card is
- * absent right after the handshake, then the user is asked to tap and hold till
- * a feedback is received from the buzzer.
- *
- * @return bool true, false
- * @retval true if the card is identified and the handshake is successful.
- * @retval false if the card is not identified or the handshake fails.
- *
- * @see NFC_connection_data, nfc_select_card(), nfc_select_applet(),
- * tap_card_handle_applet_errors()
- * @since v1.0.0
- *
- * @note The tap_card_data structure needs to be initialized accordingly before
- * calling this function.
- */
-bool tap_card_applet_connection();
-
-/**
- * @brief A common handler for the X1 Applet and the NFC communication errors.
- * @details This is a one place error handler. The application can make a call
- * to this for handling the errors, if the application does not receive an
- * expected response from the X1 Applet.<br/> The function checks the status
- * member of tap_card_data for the error code. This function is supposed to be
- * called after making a call to any of the nfc functions. Based on the status,
- * the function performs the appropriate action which can be either displaying
- * a message to the user, or exiting the process, or retrying or a combination
- * of these.<br/> For certain types of errors, the function decrements its retry
- * counter. If the counter is zero, then the function exits the process and the
- * non-critical error is now considered as critical which is indicated by true.
- *
- * @return boolean true, false
- * @retval true if the error is handled. Application need not retry.
- * @retval false if the error is not critical. Application can retry right away.
- *
- * @see NFC_connection_data, nfc_select_card(), nfc_select_applet(),
- * tap_card_applet_connection()
- * @since v1.0.0
- *
- * @note The tap_card_data structure should be used to store the errors.
- * Otherwise the behavior is undefined.
- */
-bool tap_card_handle_applet_errors();
-
-/**
- * @brief
- * @details
- *
- * @param
- *
- * @return
- * @retval
- *
- * @see
- * @since v1.0.0
- *
- * @note
- */
-void tap_cards_for_write_and_verify_flow_controller();
-
-/**
- * @brief
- * @details
- *
- * @param
- *
- * @return
- * @retval
- *
- * @see
- * @since v1.0.0
- *
- * @note
- */
-void tap_threshold_cards_for_reconstruction_flow_controller(uint8_t threshold);
-
-/**
- * @brief
- * @details
- *
- * @param
- *
- * @return
- * @retval
- *
- * @see
- * @since v1.0.0
- *
- * @note
- */
-void delete_from_cards_controller();
-
-/**
- * @brief
- * @details
- *
- * @param
- *
- * @return
- * @retval
- *
- * @see
- * @since v1.0.0
- *
- * @note
- */
-void controller_update_card_id();
-
-/**
- * @brief
- * @details
- *
- * @param
- *
- * @return
- * @retval
- *
- * @see
- * @since v1.0.0
- *
- * @note
- */
-void retrieve_key_from_card_flow_controller();
-
-/**
- * @brief
- * @details
- *
- * @param
- *
- * @return
- * @retval
- *
- * @see
- * @since v1.0.0
- *
- * @note
- */
-void tap_card_take_to_pairing();
-
-#endif
diff --git a/src/level_four/tap_cards/controller/retrieve_key_from_card_controllers.c b/src/level_four/tap_cards/controller/retrieve_key_from_card_controllers.c
deleted file mode 100644
index eadf42874..000000000
--- a/src/level_four/tap_cards/controller/retrieve_key_from_card_controllers.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/**
- * @file    retrieve_key_from_card_controllers.c
- * @author  Cypherock X1 Team
- * @brief   Retrieve key from card.
- *          This file contains the functions to retrieve the key from the card.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "apdu.h"
-#include "communication.h"
-#include "constant_texts.h"
-#include "controller_main.h"
-#include "controller_tap_cards.h"
-#include "flash_api.h"
-#include "nfc.h"
-#include "tasks.h"
-#include "ui_instruction.h"
-#include "ui_message.h"
-
-extern int error_occurred_remaining_tries;
-extern Wallet_shamir_data wallet_shamir_data;
-
-static void _tap_card_backend(uint8_t xcor);
-static void _handle_retrieve_wallet_success(uint8_t xcor);
-
-void retrieve_key_from_card_flow_controller() {
-  switch (flow_level.level_four) {
-    case TAP_CARD_ONE_FRONTEND:
-      tap_card_data.tapped_card = 0;
-      flow_level.level_four = TAP_CARD_ONE_BACKEND;
-      break;
-
-    case TAP_CARD_ONE_BACKEND:
-      _tap_card_backend(0);
-      break;
-    default:
-      break;
-  }
-}
-
-static void _tap_card_backend(uint8_t xcor) {
-  tap_card_data.retries = 5;
-
-  while (!CY_Read_Reset_Flow()) {
-    tap_card_data.acceptable_cards = 15;
-    memcpy(tap_card_data.family_id, get_family_id(), FAMILY_ID_SIZE);
-    tap_card_data.lvl3_retry_point = flow_level.level_three;
-    tap_card_data.lvl4_retry_point = flow_level.level_four - 1;
-    if (xcor == 0)
-      tap_card_data.tapped_card = 0;
-    if (!tap_card_applet_connection())
-      return;
-    tap_card_data.status = nfc_retrieve_wallet(&wallet);
-
-    if (tap_card_data.status == SW_NO_ERROR) {
-      _handle_retrieve_wallet_success(xcor);
-      buzzer_start(BUZZER_DURATION);
-      instruction_scr_destructor();
-      break;
-    } else if (tap_card_handle_applet_errors()) {
-      break;
-    }
-  }
-}
-
-static void _handle_retrieve_wallet_success(uint8_t xcor) {
-  memcpy(wallet_shamir_data.mnemonic_shares[xcor],
-         wallet.wallet_share_with_mac_and_nonce,
-         BLOCK_SIZE);
-  memzero(wallet.wallet_share_with_mac_and_nonce,
-          sizeof(wallet.wallet_share_with_mac_and_nonce));
-
-  wallet_shamir_data.share_x_coords[xcor] = wallet.xcor;
-
-  flow_level.level_three++;
-  flow_level.level_four = 1;
-}
diff --git a/src/level_four/tap_cards/controller/tap_one_card_controllers.c b/src/level_four/tap_cards/controller/tap_one_card_controllers.c
deleted file mode 100644
index d9422f5a9..000000000
--- a/src/level_four/tap_cards/controller/tap_one_card_controllers.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/**
- * @file    tap_one_card_controllers.c
- * @author  Cypherock X1 Team
- * @brief   Tap one card controller.
- *          This file contains the implementation of the tap one card
- *controllers.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "apdu.h"
-#include "communication.h"
-#include "constant_texts.h"
-#include "controller_main.h"
-#include "controller_tap_cards.h"
-#include "flash_api.h"
-#include "nfc.h"
-#include "pow_utilities.h"
-#include "tasks.h"
-#include "ui_delay.h"
-#include "ui_instruction.h"
-#include "utils.h"
-
-void controller_update_card_id() {
-  switch (flow_level.level_three) {
-    case 1:
-      flow_level.level_three++;
-      break;
-
-    case 2:
-      flow_level.level_three++;
-      break;
-
-    case 3: {
-      uint8_t send_apdu[10] = {0x00, 0xC7, 0x00, 0x00, 0x05};
-      hex_string_to_byte_array(
-          flow_level.screen_input.input_text, 2 * CARD_ID_SIZE, send_apdu + 5);
-
-      uint8_t recv_apdu[255];
-      uint16_t recv_len = 236;
-      while (1) {
-        // todo log
-        nfc_select_card();    // Stuck here until card is detected
-        // todo log
-        uint8_t no_restrictions[6] = {DEFAULT_VALUE_IN_FLASH,
-                                      DEFAULT_VALUE_IN_FLASH,
-                                      DEFAULT_VALUE_IN_FLASH,
-                                      DEFAULT_VALUE_IN_FLASH};
-        uint8_t all_cards = 15;
-        nfc_select_applet(no_restrictions, &all_cards, NULL, NULL, NULL);
-
-        if (nfc_exchange_apdu(
-                send_apdu, sizeof(send_apdu), recv_apdu, &recv_len) ==
-            STM_SUCCESS) {
-          flow_level.level_three++;
-          break;
-        }
-      }
-      lv_obj_clean(lv_scr_act());
-    } break;
-    case 4:
-      reset_flow_level();
-      break;
-    default:
-      break;
-  }
-}
diff --git a/src/level_four/tap_cards/tasks/reconstruct_from_four_cards_to_verify_tasks.c b/src/level_four/tap_cards/tasks/reconstruct_from_four_cards_to_verify_tasks.c
deleted file mode 100644
index a03f3c14b..000000000
--- a/src/level_four/tap_cards/tasks/reconstruct_from_four_cards_to_verify_tasks.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/**
- * @file    reconstruct_from_four_cards_to_verify_tasks.c
- * @author  Cypherock X1 Team
- * @brief   Reconstruct from all cards.
- *          This file contains the implementation of the function to perform the
- *          reconstruction of the secret from the four shares of the cards.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "constant_texts.h"
-#include "controller_main.h"
-#include "stdint.h"
-#include "tasks.h"
-#include "tasks_tap_cards.h"
-#include "ui_instruction.h"
-#include "ui_message.h"
-
-extern char *ALPHABET;
-extern char *ALPHA_NUMERIC;
-extern char *NUMBERS;
-
-void tap_cards_for_verification_flow() {
-  char display[40];
-
-  switch (flow_level.level_four) {
-    case TAP_CARD_ONE_FRONTEND:
-    case TAP_CARD_TWO_FRONTEND:
-    case TAP_CARD_THREE_FRONTEND:
-    case TAP_CARD_FOUR_FRONTEND:
-      snprintf(display,
-               sizeof(display),
-               UI_TEXT_TAP_CARD,
-               ((flow_level.level_four - 1) >> 1) + 1);
-      instruction_scr_init(ui_text_place_card_below, display);
-      mark_event_over();
-      break;
-
-    case TAP_CARD_ONE_BACKEND:
-    case TAP_CARD_TWO_BACKEND:
-    case TAP_CARD_THREE_BACKEND:
-    case TAP_CARD_FOUR_BACKEND:
-      mark_event_over();
-      break;
-
-    default:
-      message_scr_init(ui_text_something_went_wrong);
-      break;
-  }
-}
diff --git a/src/level_four/tap_cards/tasks/reconstruct_from_threshold_cards_tasks.c b/src/level_four/tap_cards/tasks/reconstruct_from_threshold_cards_tasks.c
deleted file mode 100644
index 07837e5d6..000000000
--- a/src/level_four/tap_cards/tasks/reconstruct_from_threshold_cards_tasks.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/**
- * @file    reconstruct_from_threshold_cards_tasks.c
- * @author  Cypherock X1 Team
- * @brief   Reconstruct from threshold.
- *          Short description of the file
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "constant_texts.h"
-#include "controller_main.h"
-#include "tasks.h"
-#include "tasks_tap_cards.h"
-#include "ui_instruction.h"
-#include "ui_message.h"
-
-extern char *ALPHABET;
-extern char *ALPHA_NUMERIC;
-extern char *NUMBERS;
-
-void tap_threshold_cards_for_reconstruction() {
-}
diff --git a/src/level_four/tap_cards/tasks/retrieve_key_from_card_tasks.c b/src/level_four/tap_cards/tasks/retrieve_key_from_card_tasks.c
deleted file mode 100644
index f1f8c4551..000000000
--- a/src/level_four/tap_cards/tasks/retrieve_key_from_card_tasks.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/**
- * @file    retrieve_key_from_card_tasks.c
- * @author  Cypherock X1 Team
- * @brief   Retrieve key task.
- *          This file contains the retrieve key task.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "constant_texts.h"
-#include "controller_main.h"
-#include "tasks.h"
-#include "tasks_tap_cards.h"
-#include "ui_instruction.h"
-#include "ui_message.h"
-
-extern char *ALPHABET;
-extern char *ALPHA_NUMERIC;
-extern char *NUMBERS;
-
-void retrieve_key_from_card() {
-  switch (flow_level.level_four) {
-    case TAP_CARD_ONE_FRONTEND:
-      instruction_scr_init(ui_text_tap_1_2_cards, NULL);
-      mark_event_over();
-      break;
-
-    case TAP_CARD_ONE_BACKEND:
-      mark_event_over();
-      break;
-
-    default:
-      break;
-  }
-}
diff --git a/src/level_four/tap_cards/tasks/tap_one_card_tasks.c b/src/level_four/tap_cards/tasks/tap_one_card_tasks.c
deleted file mode 100644
index ebe34e503..000000000
--- a/src/level_four/tap_cards/tasks/tap_one_card_tasks.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/**
- * @file    tap_one_card_tasks.c
- * @author  Cypherock X1 Team
- * @brief   Tap one card task.
- *          This file contains the implementation of the tap one card tasks.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "apdu.h"
-#include "buzzer.h"
-#include "communication.h"
-#include "constant_texts.h"
-#include "controller_main.h"
-#include "flash_api.h"
-#include "flash_if.h"
-#include "nfc.h"
-#include "pow_utilities.h"
-#include "tasks.h"
-#include "tasks_tap_cards.h"
-#include "ui_delay.h"
-#include "ui_input_text.h"
-#include "ui_instruction.h"
-#include "ui_message.h"
-#include "utils.h"
-
-extern char *ALPHABET;
-extern char *ALPHA_NUMERIC;
-extern char *NUMBERS;
-extern char *HEX;
-
-void tasks_update_card_id() {
-  switch (flow_level.level_three) {
-    case 1: {
-      input_text_init(HEX, 0, ui_text_family_id_hex, 10, DATA_TYPE_TEXT, 8);
-    }
-
-    break;
-
-    case 2: {
-      instruction_scr_init(ui_text_tap_a_card, NULL);
-      mark_event_over();
-    } break;
-
-    case 3: {
-      mark_event_over();
-    } break;
-
-    case 4:
-      message_scr_init(ui_text_successfull);
-      break;
-
-    default:
-      break;
-  }
-}
diff --git a/src/level_four/tap_cards/tasks/tasks_tap_cards.h b/src/level_four/tap_cards/tasks/tasks_tap_cards.h
deleted file mode 100644
index e9b8fe66d..000000000
--- a/src/level_four/tap_cards/tasks/tasks_tap_cards.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/**
- * @file    tasks_tap_cards.h
- * @author  Cypherock X1 Team
- * @brief   Header for tap card tasks.
- *          This file contains all the functions prototypes for the tap card
- * tasks.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- * target=_blank>https://mitcc.org/</a>
- *
- */
-
-#ifndef TASKS_TAP_CARDS_H
-#define TASKS_TAP_CARDS_H
-
-/**
- * @brief Task for writing on the card flow , used to add wallet or restore
- * wallet on cards
- * @details
- *
- * @param
- *
- * @return
- * @retval
- *
- * @see
- * @since v1.0.0
- *
- * @note
- */
-void tap_cards_for_write_flow();
-
-/**
- * @brief Task for verification of the card
- * @details
- *
- * @param
- *
- * @return
- * @retval
- *
- * @see
- * @since v1.0.0
- *
- * @note
- */
-void tap_cards_for_verification_flow();
-
-/**
- * @brief Task to retrieve wallet from card
- * @details
- *
- * @param
- *
- * @return
- * @retval
- *
- * @see
- * @since v1.0.0
- *
- * @note
- */
-void tap_threshold_cards_for_reconstruction();
-
-/**
- * @brief Task to update card id
- * @details
- *
- * @param
- *
- * @return
- * @retval
- *
- * @see
- * @since v1.0.0
- *
- * @note
- */
-void tasks_update_card_id();
-
-/**
- * @brief Task to retrieve key from  id
- * @details
- *
- * @param
- *
- * @return
- * @retval
- *
- * @see
- * @since v1.0.0
- *
- * @note
- */
-void retrieve_key_from_card();
-
-#endif
\ No newline at end of file
diff --git a/src/level_four/tap_cards/tasks/write_to_cards_tasks.c b/src/level_four/tap_cards/tasks/write_to_cards_tasks.c
deleted file mode 100644
index 12f1a2901..000000000
--- a/src/level_four/tap_cards/tasks/write_to_cards_tasks.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/**
- * @file    write_to_cards_tasks.c
- * @author  Cypherock X1 Team
- * @brief   Write to cards.
- *          This file contains the task handler to write to cards.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "constant_texts.h"
-#include "controller_main.h"
-#include "flash_api.h"
-#include "nfc.h"
-#include "stdint.h"
-#include "tasks.h"
-#include "tasks_tap_cards.h"
-#include "ui_instruction.h"
-#include "ui_message.h"
-
-extern char *ALPHABET;
-extern char *ALPHA_NUMERIC;
-extern char *NUMBERS;
-
-void tap_cards_for_write_flow() {
-  switch (flow_level.level_four) {
-    case CARD_ONE_FRONTEND:
-    case CARD_TWO_FRONTEND:
-    case CARD_THREE_FRONTEND:
-    case CARD_FOUR_FRONTEND: {
-      char display[40];
-      snprintf(display,
-               sizeof(display),
-               UI_TEXT_TAP_CARD,
-               ((flow_level.level_four - 1) / 3) + 1);
-      instruction_scr_init(ui_text_place_card_below, display);
-      mark_event_over();
-    } break;
-
-    case CARD_ONE_READBACK:
-    case CARD_TWO_READBACK:
-    case CARD_THREE_READBACK:
-    case CARD_FOUR_READBACK: {
-      char display[40];
-      instruction_scr_destructor();
-      snprintf(display,
-               sizeof(display),
-               UI_TEXT_TAP_CARD,
-               flow_level.level_four / 3);
-      instruction_scr_init(ui_text_place_card_below, display);
-      if (nfc_wait_for_card(DEFAULT_NFC_TG_INIT_TIME) != STM_SUCCESS)
-        instruction_scr_change_text(ui_text_card_removed_fast, true);
-    }
-    case CARD_ONE_WRITE:
-    case CARD_TWO_WRITE:
-    case CARD_THREE_WRITE:
-    case CARD_FOUR_WRITE:
-      mark_event_over();
-      break;
-
-    default:
-      LOG_CRITICAL("xx30");
-      reset_flow_level();
-      message_scr_init(ui_text_something_went_wrong);
-      break;
-  }
-}
diff --git a/src/level_three/add_wallet/controller/controller_add_wallet.h b/src/level_three/add_wallet/controller/controller_add_wallet.h
deleted file mode 100644
index 3992d6e7c..000000000
--- a/src/level_three/add_wallet/controller/controller_add_wallet.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/**
- * @file    controller_add_wallet.h
- * @author  Cypherock X1 Team
- * @brief   Header for add wallet controllers.
- *          Houses the declarations of controllers for add wallet tasks.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- * target=_blank>https://mitcc.org/</a>
- *
- */
-
-#ifndef CONTROLLER_ADD_WALLET_H
-#define CONTROLLER_ADD_WALLET_H
-
-#include "controller_main.h"
-
-/**
- * @brief Controller to add arbitrary data wallet flow
- * @details
- *
- * @see
- * @since v1.0.0
- */
-void arbitrary_data_controller();
-
-/**
- * @brief Back button controller for arbitrary data wallet flow
- * @details
- *
- * @see
- * @since v1.0.0
- */
-void arbitrary_data_controller_b();
-
-#endif
\ No newline at end of file
diff --git a/src/level_three/add_wallet/controller/controller_arbitrary_data.c b/src/level_three/add_wallet/controller/controller_arbitrary_data.c
deleted file mode 100644
index 7d328f13c..000000000
--- a/src/level_three/add_wallet/controller/controller_arbitrary_data.c
+++ /dev/null
@@ -1,253 +0,0 @@
-/**
- * @file    controller_arbitrary_data.c
- * @author  Cypherock X1 Team
- * @brief   Arbitrary data next controller.
- *          Handles post event (only next events) operations for arbitrary data
- *flow.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "bip39.h"
-#include "card_action_controllers.h"
-#include "card_flow_create_wallet.h"
-#include "constant_texts.h"
-#include "controller_add_wallet.h"
-#include "controller_main.h"
-#include "controller_tap_cards.h"
-#include "sha2.h"
-#include "shamir_wrapper.h"
-#include "tasks.h"
-#include "ui_message.h"
-#include "wallet_utilities.h"
-
-extern Wallet_credential_data wallet_credential_data;
-extern char *ALPHABET;
-extern char *ALPHA_NUMERIC;
-extern char *NUMBERS;
-
-extern Flash_Wallet wallet_for_flash;
-extern char arbitrary_data[4096 / 8 + 1];
-
-#ifdef USE_ARBITRARY_DATA
-static void restore_wallet_enter_mnemonics_flow_controller() {
-  if (flow_level.level_four <= wallet.number_of_mnemonics) {
-    snprintf(
-        wallet_credential_data.mnemonics[flow_level.level_four - 1],
-        sizeof(wallet_credential_data.mnemonics[flow_level.level_four - 1]),
-        "%s",
-        mnemonic_get_word(flow_level.screen_input.list_choice));
-    flow_level.level_four++;
-  } else {
-    flow_level.level_three++;
-  }
-}
-#endif
-
-void arbitrary_data_controller() {
-  switch (flow_level.level_three) {
-    case ARBITRARY_DATA_NAME_INPUT: {
-      flow_level.level_three = ARBITRARY_DATA_NAME_CONFIRM;
-    } break;
-    case ARBITRARY_DATA_NAME_CONFIRM: {
-      uint8_t dummy;
-      if (get_index_by_name(flow_level.screen_input.input_text, &dummy) ==
-          SUCCESS_) {
-        // wallet already exists
-        mark_error_screen(ui_text_wallet_name_exists);
-      } else {
-        flow_level.level_three = RESTORE_WALLET_PIN_INSTRUCTIONS_1;
-        snprintf((char *)wallet_for_flash.wallet_name,
-                 sizeof(wallet_for_flash.wallet_name),
-                 "%s",
-                 flow_level.screen_input.input_text);
-        snprintf((char *)wallet.wallet_name,
-                 sizeof(wallet.wallet_name),
-                 "%s",
-                 flow_level.screen_input.input_text);
-      }
-    } break;
-    case RESTORE_WALLET_PIN_INSTRUCTIONS_1: {
-      flow_level.level_three = RESTORE_WALLET_PIN_INSTRUCTIONS_2;
-    } break;
-
-    case RESTORE_WALLET_PIN_INSTRUCTIONS_2: {
-      flow_level.level_three = ARBITRARY_DATA_SKIP_PIN;
-    } break;
-
-    case ARBITRARY_DATA_SKIP_PIN: {
-      flow_level.level_three = ARBITRARY_DATA_PIN_INPUT;
-      WALLET_SET_PIN(wallet_for_flash.wallet_info);
-      WALLET_SET_PIN(wallet.wallet_info);
-    } break;
-
-    case ARBITRARY_DATA_PIN_INPUT: {
-      sha256_Raw((uint8_t *)flow_level.screen_input.input_text,
-                 strnlen(flow_level.screen_input.input_text,
-                         sizeof(flow_level.screen_input.input_text)),
-                 wallet.password_double_hash);
-      sha256_Raw(wallet.password_double_hash,
-                 SHA256_DIGEST_LENGTH,
-                 wallet.password_double_hash);
-      memzero(flow_level.screen_input.input_text,
-              sizeof(flow_level.screen_input.input_text));
-      flow_level.level_three = ARBITRARY_DATA_PIN_CONFIRM;
-    } break;
-
-    case ARBITRARY_DATA_PIN_CONFIRM: {
-      uint8_t CONFIDENTIAL temp[SHA256_DIGEST_LENGTH] = {0};
-
-      ASSERT(temp != NULL);
-      sha256_Raw((uint8_t *)flow_level.screen_input.input_text,
-                 strnlen(flow_level.screen_input.input_text,
-                         sizeof(flow_level.screen_input.input_text)),
-                 temp);
-      sha256_Raw(temp, SHA256_DIGEST_LENGTH, temp);
-      if (memcmp(wallet.password_double_hash, temp, SHA256_DIGEST_LENGTH) ==
-          0) {
-        flow_level.level_three = ARBITRARY_DATA_ENTER_DATA_INSTRUCTION;
-      } else {
-        mark_error_screen(ui_text_pin_incorrect_re_enter);
-        flow_level.level_three = ARBITRARY_DATA_PIN_INPUT;
-      }
-      memzero(flow_level.screen_input.input_text,
-              sizeof(flow_level.screen_input.input_text));
-      memzero(temp, sizeof(temp));
-    } break;
-
-    case ARBITRARY_DATA_ENTER_DATA_INSTRUCTION: {
-      flow_level.level_three = ARBITRARY_DATA_ENTER_DATA;
-
-    } break;
-
-    case ARBITRARY_DATA_ENTER_DATA: {
-      flow_level.level_three = ARBITRARY_DATA_CONFIRM_DATA;
-    } break;
-
-    case ARBITRARY_DATA_CONFIRM_DATA: {
-      flow_level.level_three = ARBITRARY_DATA_CREATING_WAIT_SCREEN;
-    } break;
-
-    case ARBITRARY_DATA_CREATING_WAIT_SCREEN: {
-      flow_level.level_three = ARBITRARY_DATA_CREATE;
-    } break;
-
-    case ARBITRARY_DATA_CREATE: {
-      uint8_t wallet_index, temp_wallet_id[WALLET_ID_SIZE];
-
-      sha256_Raw((const uint8_t *)arbitrary_data,
-                 strnlen(arbitrary_data, sizeof(arbitrary_data)),
-                 temp_wallet_id);
-      sha256_Raw(temp_wallet_id, SHA256_DIGEST_LENGTH, temp_wallet_id);
-
-      if ((get_first_matching_index_by_id(temp_wallet_id, &wallet_index) ==
-           DOESNT_EXIST)) {
-        memcpy(wallet_for_flash.wallet_id, temp_wallet_id, WALLET_ID_SIZE);
-        memcpy(wallet.wallet_id, wallet_for_flash.wallet_id, WALLET_ID_SIZE);
-        wallet.arbitrary_data_size =
-            strnlen(arbitrary_data, sizeof(arbitrary_data));
-        WALLET_SET_ARBITRARY_DATA(wallet.wallet_info);
-        WALLET_SET_ARBITRARY_DATA(wallet_for_flash.wallet_info);
-
-        convert_to_shares(wallet.arbitrary_data_size,
-                          (uint8_t *)arbitrary_data,
-                          wallet.total_number_of_shares,
-                          wallet.minimum_number_of_shares,
-                          wallet_shamir_data.arbitrary_data_shares);
-        memzero(arbitrary_data, sizeof(arbitrary_data));
-        flow_level.level_three = ARBITRARY_DATA_TAP_CARDS;
-        flow_level.level_four = 1;
-        flow_level.level_five = 1;
-      } else {
-        mark_error_screen(ui_text_wallet_with_same_mnemo_exists);
-        flow_level.level_three = ARBITRARY_DATA_ENTER_DATA_INSTRUCTION;
-        flow_level.level_four = 1;
-        flow_level.level_five = 1;
-      }
-    } break;
-
-    case ARBITRARY_DATA_TAP_CARDS:
-      card_flow_create_wallet();
-      break;
-
-    case ARBITRARY_DATA_VERIFY_SHARES:
-      flow_level.level_three = verify_card_share_data() == 1
-                                   ? ARBITRARY_DATA_SUCCESS_MESSAGE
-                                   : ARBITRARY_DATA_FAILED_MESSAGE;
-      memzero(wallet.password_double_hash, sizeof(wallet.password_double_hash));
-      memzero(wallet.wallet_share_with_mac_and_nonce,
-              sizeof(wallet.wallet_share_with_mac_and_nonce));
-      memzero(wallet.arbitrary_data_share, sizeof(wallet.arbitrary_data_share));
-      memzero(wallet.checksum, sizeof(wallet.checksum));
-      memzero(wallet.key, sizeof(wallet.key));
-      memzero(wallet.beneficiary_key, sizeof(wallet.beneficiary_key));
-      memzero(wallet.iv_for_beneficiary_key,
-              sizeof(wallet.iv_for_beneficiary_key));
-      break;
-
-    case ARBITRARY_DATA_SUCCESS_MESSAGE:
-      reset_flow_level();
-      break;
-
-    case ARBITRARY_DATA_FAILED_MESSAGE:
-      flow_level.level_one = LEVEL_TWO_OLD_WALLET;
-      flow_level.level_three = 1;
-      flow_level.level_four = 1;
-      break;
-
-    default:
-      message_scr_init(ui_text_something_went_wrong);
-      reset_flow_level();
-      break;
-  }
-  return;
-}
diff --git a/src/level_three/add_wallet/controller/controller_arbitrary_data_b.c b/src/level_three/add_wallet/controller/controller_arbitrary_data_b.c
deleted file mode 100644
index c24f7c2c7..000000000
--- a/src/level_three/add_wallet/controller/controller_arbitrary_data_b.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/**
- * @file    controller_arbitrary_data_b.c
- * @author  Cypherock X1 Team
- * @brief   Arbitrary data back controller.
- *          Handles post event (only back/cancel events) operations for
- *arbitrary data flow.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "controller_add_wallet.h"
-#include "controller_main.h"
-// Atul #include "crys_hash.h"
-#include "flash_api.h"
-#include "tasks.h"
-
-extern Flash_Wallet wallet_for_flash;
-
-void arbitrary_data_controller_b() {
-  switch (flow_level.level_three) {
-    case ARBITRARY_DATA_NAME_CONFIRM: {
-      flow_level.level_three = ARBITRARY_DATA_NAME_INPUT;
-    } break;
-
-    case ARBITRARY_DATA_SKIP_PIN: {
-      flow_level.level_three = ARBITRARY_DATA_ENTER_DATA_INSTRUCTION;
-      WALLET_UNSET_PIN(wallet_for_flash.wallet_info);
-      WALLET_UNSET_PIN(wallet.wallet_info);
-    } break;
-    case ARBITRARY_DATA_PIN_INPUT: {
-      flow_level.level_three = ARBITRARY_DATA_SKIP_PIN;
-    } break;
-    case ARBITRARY_DATA_PIN_CONFIRM: {
-      flow_level.level_three = ARBITRARY_DATA_PIN_INPUT;
-    } break;
-
-    case ARBITRARY_DATA_ENTER_DATA: {
-      flow_level.level_three = ARBITRARY_DATA_PIN_INPUT;
-    } break;
-
-    case ARBITRARY_DATA_CONFIRM_DATA: {
-      flow_level.level_three = ARBITRARY_DATA_ENTER_DATA_INSTRUCTION;
-    } break;
-
-    default: {
-      reset_flow_level();
-    }
-  }
-}
\ No newline at end of file
diff --git a/src/level_three/add_wallet/tasks/tasks_add_wallet.h b/src/level_three/add_wallet/tasks/tasks_add_wallet.h
deleted file mode 100644
index 0a6d6248e..000000000
--- a/src/level_three/add_wallet/tasks/tasks_add_wallet.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/**
- * @file    tasks_add_wallet.h
- * @author  Cypherock X1 Team
- * @brief   Header for add wallet tasks.
- *          This file contains all the functions prototypes for the add wallet
- * tasks.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- * target=_blank>https://mitcc.org/</a>
- *
- */
-/**
- * @file task_new_wallet.h
- * @author your name (you@domain.com)
- * @brief
- * @version 0.1
- * @date 2020-05-27
- *
- * @copyright Copyright (c) 2020
- *
- */
-
-#ifndef TASKS_ADD_WALLET_H
-#define TASKS_ADD_WALLET_H
-
-#include "controller_main.h"
-#include "tasks.h"
-
-/**
- * @brief Task to create a wallet to add arbitrary data
- * @details
- *
- * @see
- * @since v1.0.0
- */
-void tasks_arbitrary_data();
-
-#endif
\ No newline at end of file
diff --git a/src/level_three/add_wallet/tasks/tasks_arbitrary_data.c b/src/level_three/add_wallet/tasks/tasks_arbitrary_data.c
deleted file mode 100644
index 226523349..000000000
--- a/src/level_three/add_wallet/tasks/tasks_arbitrary_data.c
+++ /dev/null
@@ -1,226 +0,0 @@
-/**
- * @file    tasks_arbitrary_data.c
- * @author  Cypherock X1 Team
- * @brief   Arbitrary data tasks.
- *          This file contains the implementation of the tasks that are used to
- *create arbitrary data.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "constant_texts.h"
-#include "controller_main.h"
-#include "shamir_wrapper.h"
-#include "stdint.h"
-#include "tasks.h"
-#include "tasks_add_wallet.h"
-#include "tasks_tap_cards.h"
-#include "ui_address.h"
-#include "ui_confirmation.h"
-#include "ui_delay.h"
-#include "ui_input_mnemonics.h"
-#include "ui_input_text.h"
-#include "ui_instruction.h"
-#include "ui_list.h"
-#include "ui_menu.h"
-#include "ui_message.h"
-#include "ui_multi_instruction.h"
-#include "ui_text_slideshow.h"
-#include "wallet.h"
-
-extern char arbitrary_data[4096 / 8 + 1];
-
-extern char *ALPHABET;
-extern char *ALPHA_NUMERIC;
-extern char *NUMBERS;
-extern char *PASSPHRASE;
-
-#ifdef USE_ARBITRARY_DATA
-static void restore_wallet_enter_mnemonics_flow() {
-  if (flow_level.level_four <= wallet.number_of_mnemonics) {
-    char heading[20];
-    snprintf(
-        heading, sizeof(heading), UI_TEXT_ENTER_WORD, flow_level.level_four);
-    ui_mnem_init(heading);
-  } else {
-    // todo check if mnemonics is correct
-    mark_event_over();
-  }
-}
-#endif
-
-void tasks_arbitrary_data() {
-  if (flow_level.show_error_screen) {
-    message_scr_init(flow_level.error_screen_text);
-    return;
-  }
-
-  switch (flow_level.level_three) {
-    case ARBITRARY_DATA_NAME_INPUT: {
-      input_text_init(WALLET_NAME_CHARSET,
-                      0,
-                      ui_text_enter_wallet_name,
-                      2,
-                      DATA_TYPE_TEXT,
-                      15);
-    } break;
-
-    case ARBITRARY_DATA_NAME_CONFIRM: {
-      char display[65];
-      snprintf(
-          display, sizeof(display), "%s", flow_level.screen_input.input_text);
-      address_scr_init(ui_text_confirm_wallet_name, display, false);
-    } break;
-
-    case RESTORE_WALLET_PIN_INSTRUCTIONS_1: {
-      char display[65];
-      if (strnlen(flow_level.screen_input.input_text,
-                  sizeof(flow_level.screen_input.input_text)) <= 15)
-        snprintf(
-            display, sizeof(display), UI_TEXT_PIN_INS1, wallet.wallet_name);
-      else
-        snprintf(display, sizeof(display), UI_TEXT_PIN_INS1, "this wallet");
-      delay_scr_init(display, DELAY_TIME);
-    } break;
-
-    case RESTORE_WALLET_PIN_INSTRUCTIONS_2: {
-      delay_scr_init(ui_wallet_pin_instruction_2, DELAY_TIME);
-    } break;
-
-    case ARBITRARY_DATA_SKIP_PIN: {
-      confirm_scr_init(ui_text_do_you_want_to_set_pin);
-      confirm_scr_focus_cancel();
-    } break;
-
-    case ARBITRARY_DATA_PIN_INPUT: {
-      input_text_init(
-          ALPHA_NUMERIC, 26, ui_text_enter_pin, 4, DATA_TYPE_PIN, 8);
-    } break;
-
-    case ARBITRARY_DATA_PIN_CONFIRM: {
-      input_text_init(
-          ALPHA_NUMERIC, 26, ui_text_confirm_pin, 4, DATA_TYPE_PIN, 8);
-    } break;
-
-    case ARBITRARY_DATA_ENTER_DATA_INSTRUCTION: {
-      message_scr_init(ui_text_now_enter_your_data);
-
-    } break;
-
-    case ARBITRARY_DATA_ENTER_DATA: {
-      input_text_init(
-          PASSPHRASE, 26, ui_text_enter_data, 0, DATA_TYPE_PASSPHRASE, 255);
-    } break;
-
-    case ARBITRARY_DATA_CONFIRM_DATA: {
-      snprintf(arbitrary_data,
-               sizeof(arbitrary_data),
-               "%s",
-               flow_level.screen_input.input_text);
-      memzero(flow_level.screen_input.input_text,
-              sizeof(flow_level.screen_input.input_text));
-      address_scr_init(ui_text_confirm_data, arbitrary_data, false);
-    } break;
-
-    case ARBITRARY_DATA_CREATING_WAIT_SCREEN: {
-      instruction_scr_init(ui_text_processing, NULL);
-      mark_event_over();
-    } break;
-
-    case ARBITRARY_DATA_CREATE: {
-      instruction_scr_destructor();
-      mark_event_over();
-    } break;
-
-    case ARBITRARY_DATA_TAP_CARDS: {
-      tap_cards_for_write_flow();
-    } break;
-
-    case ARBITRARY_DATA_VERIFY_SHARES:
-      instruction_scr_init(ui_text_processing, "");
-      instruction_scr_change_text(ui_text_processing, true);
-      BSP_DelayMs(DELAY_SHORT);
-      mark_event_over();
-      break;
-
-    case ARBITRARY_DATA_SUCCESS_MESSAGE: {
-      instruction_scr_destructor();
-      const char *messages[6] = {
-          ui_text_verification_is_now_complete_messages[0],
-          ui_text_verification_is_now_complete_messages[1],
-          ui_text_verification_is_now_complete_messages[2],
-          ui_text_verification_is_now_complete_messages[4],
-          ui_text_verification_is_now_complete_messages[5],
-          NULL};
-      uint8_t count = 5;
-
-      if (WALLET_IS_PIN_SET(wallet.wallet_info)) {
-        messages[3] = ui_text_verification_is_now_complete_messages[3];
-        messages[4] = ui_text_verification_is_now_complete_messages[4];
-        messages[5] = ui_text_verification_is_now_complete_messages[5];
-        count = 6;
-      }
-
-      multi_instruction_init(messages, count, DELAY_LONG_STRING, true);
-    } break;
-
-    case ARBITRARY_DATA_FAILED_MESSAGE: {
-      instruction_scr_destructor();
-      message_scr_init(ui_text_creation_failed_delete_wallet);
-    } break;
-
-    default: {
-      message_scr_init(ui_text_something_went_wrong);
-    } break;
-  }
-  return;
-}
diff --git a/src/level_three/advanced_settings/controller/advanced_settings_controller.c b/src/level_three/advanced_settings/controller/advanced_settings_controller.c
deleted file mode 100644
index ffcd0f6e6..000000000
--- a/src/level_three/advanced_settings/controller/advanced_settings_controller.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/**
- * @file    advanced_settings_controller.c
- * @author  Cypherock X1 Team
- * @brief   Advanced settings next controller.
- *          Handles post event (only next events) operations for advanced
- *settings flow.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include <stdio.h>
-
-#include "application_startup.h"
-#include "controller_advanced_settings.h"
-#include "controller_level_four.h"
-#include "controller_main.h"
-#include "controller_tap_cards.h"
-#include "tasks.h"
-
-extern lv_task_t *timeout_task;
-
-void level_three_advanced_settings_controller() {
-  switch (flow_level.level_two) {
-#if X1WALLET_MAIN
-#ifdef DEV_BUILD
-    case LEVEL_THREE_UPDATE_CARD_ID: {
-      controller_update_card_id();
-    } break;
-
-    case LEVEL_THREE_CARD_UPGRADE:
-      card_upgrade_controller();
-      break;
-#endif
-#endif
-#if X1WALLET_INITIAL
-    case LEVEL_THREE_START_DEVICE_PROVISION: {
-      device_provision_controller();
-    } break;
-#elif X1WALLET_MAIN
-#else
-#error Specify what to build (X1WALLET_INITIAL or X1WALLET_MAIN)
-#endif
-    default:
-      break;
-  }
-}
diff --git a/src/level_three/advanced_settings/controller/controller_advanced_settings.h b/src/level_three/advanced_settings/controller/controller_advanced_settings.h
deleted file mode 100644
index 77d0f032c..000000000
--- a/src/level_three/advanced_settings/controller/controller_advanced_settings.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/**
- * @file    controller_advanced_settings.h
- * @author  Cypherock X1 Team
- * @brief   Header for advanced settings controller.
- *          This file contains the prototypes of the functions used to control
- * the advanced settings.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- * target=_blank>https://mitcc.org/</a>
- *
- */
-
-#ifndef CONTROLLER_ADV_SETTINGS_H
-#define CONTROLLER_ADV_SETTINGS_H
-
-#pragma once
-
-#include "controller_main.h"
-#include "tasks.h"
-
-/**
- * @brief Controller for post-event processing of advanced settings tasks.
- * @details This function is used to control the flow of the advanced settings
- * controller and is responsible for transition from one state to an appropriate
- * state based on the user's input (as communication via lvgl's UI components).
- *
- * @see LEVEL_THREE_ADVANCED_SETTINGS_TASKS, initial_verify_card_controller(),
- * level_three_advanced_settings_tasks(),
- * get_usb_msg_by_cmd_type(), device_provision_controller(),
- * tap_card_pair_card_controller()
- * @since v1.0.0
- */
-void level_three_advanced_settings_controller();
-
-#endif
\ No newline at end of file
diff --git a/src/level_three/advanced_settings/tasks/advanced_settings_tasks.c b/src/level_three/advanced_settings/tasks/advanced_settings_tasks.c
deleted file mode 100644
index b80a28fa0..000000000
--- a/src/level_three/advanced_settings/tasks/advanced_settings_tasks.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/**
- * @file    advanced_settings_tasks.c
- * @author  Cypherock X1 Team
- * @brief   Advanced settings task.
- *          This file contains the pre-processing & rendering of the advanced
- *settings task.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "board.h"
-#include "constant_texts.h"
-#include "controller_level_four.h"
-#include "controller_main.h"
-#include "controller_tap_cards.h"
-#include "tasks.h"
-#include "tasks_level_four.h"
-#include "tasks_tap_cards.h"
-#include "ui_confirmation.h"
-#include "ui_delay.h"
-#include "ui_instruction.h"
-#include "ui_message.h"
-#include "ui_multi_instruction.h"
-#include "utils.h"
-
-extern lv_task_t *timeout_task;
-
-extern const char *GIT_REV;
-extern const char *GIT_TAG;
-extern const char *GIT_BRANCH;
-
-void level_three_advanced_settings_tasks() {
-  switch (flow_level.level_two) {
-#if X1WALLET_MAIN
-#ifdef DEV_BUILD
-    case LEVEL_THREE_UPDATE_CARD_ID: {
-      tasks_update_card_id();
-    } break;
-
-    case LEVEL_THREE_CARD_UPGRADE:
-      card_upgrade_task();
-      break;
-#endif
-#endif
-#if X1WALLET_INITIAL
-    case LEVEL_THREE_START_DEVICE_PROVISION: {
-      task_device_provision();
-    } break;
-#elif X1WALLET_MAIN
-#else
-#error Specify what to build (X1WALLET_INITIAL or X1WALLET_MAIN)
-#endif
-    default:
-      break;
-  }
-}
diff --git a/src/level_three/advanced_settings/tasks/tasks_advanced_settings.h b/src/level_three/advanced_settings/tasks/tasks_advanced_settings.h
deleted file mode 100644
index 73a60d04c..000000000
--- a/src/level_three/advanced_settings/tasks/tasks_advanced_settings.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/**
- * @file    tasks_advanced_settings.h
- * @author  Cypherock X1 Team
- * @brief   Header for advanced settings tasks.
- *          This file contains the prototypes of the functions used to manage
- * the advanced settings tasks.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- * target=_blank>https://mitcc.org/</a>
- *
- */
-
-#ifndef TASKS_ADVANCED_SETTINGS_H
-#define TASKS_ADVANCED_SETTINGS_H
-
-#pragma once
-
-#include "controller_main.h"
-#include "tasks.h"
-
-/**
- * @brief This function is used to manage the pre-processing & rendering in
- * advanced settings tasks.
- * @details All the settings features are managed here. Some of the desktop
- * triggered requests are also managed here such as export of logs, firmware
- * upgrade, card verification along with card pairing.
- *
- * @see LEVEL_THREE_ADVANCED_SETTINGS_TASKS, initial_verify_card_task(),
- * verify_card_task(), task_device_provision()
- * @since v1.0.0
- */
-void level_three_advanced_settings_tasks();
-
-#endif
\ No newline at end of file
diff --git a/src/level_three/old_wallet/controller/controller_old_wallet.c b/src/level_three/old_wallet/controller/controller_old_wallet.c
deleted file mode 100644
index 533909d60..000000000
--- a/src/level_three/old_wallet/controller/controller_old_wallet.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/**
- * @file    controller_old_wallet.c
- * @author  Cypherock X1 Team
- * @brief   Old wallet next controller.
- *          Handles post event (only next events) operations for old wallet
- *flow.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "controller_old_wallet.h"
-
-#include "controller_level_four.h"
-#include "controller_main.h"
-#include "tasks.h"
-
-void level_three_old_wallet_controller() {
-#if X1WALLET_MAIN == 1
-  switch (flow_level.level_two) {
-    case LEVEL_THREE_SEND_TRANSACTION_ETH: {
-      send_transaction_controller_eth();
-    } break;
-
-    case LEVEL_THREE_SIGN_MESSAGE_ETH: {
-      sign_message_controller_eth();
-    } break;
-
-    case LEVEL_THREE_SEND_TRANSACTION_SOLANA: {
-      send_transaction_controller_solana();
-    } break;
-
-    case LEVEL_THREE_RECEIVE_TRANSACTION_ETH: {
-      receive_transaction_controller_eth();
-    } break;
-
-    case LEVEL_THREE_RECEIVE_TRANSACTION_NEAR: {
-      receive_transaction_controller_near();
-    } break;
-
-    case LEVEL_THREE_RECEIVE_TRANSACTION_SOLANA: {
-      receive_transaction_controller_solana();
-    } break;
-
-    case LEVEL_THREE_WALLET_LOCKED: {
-      // wallet_locked_controller();
-    } break;
-
-    case LEVEL_THREE_VERIFY_WALLET: {
-      verify_wallet_controller();
-    } break;
-    case LEVEL_THREE_SYNC_WALLET: {
-    } break;
-    default:
-      break;
-  }
-  return;
-#endif
-}
diff --git a/src/level_three/old_wallet/controller/controller_old_wallet.h b/src/level_three/old_wallet/controller/controller_old_wallet.h
deleted file mode 100644
index f1aeb49fa..000000000
--- a/src/level_three/old_wallet/controller/controller_old_wallet.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/**
- * @file    controller_old_wallet.h
- * @author  Cypherock X1 Team
- * @brief   Header for old wallet controller.
- *          This file contains the old wallet controller.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- * target=_blank>https://mitcc.org/</a>
- *
- */
-
-#ifndef CONTROLLER_OLD_WALLET_H
-#define CONTROLLER_OLD_WALLET_H
-
-#pragma once
-
-#include "controller_main.h"
-
-/**
- * @brief Controller to handle post event processing of the delete wallet flow.
- * @details The function deletes the wallet from the device removing both the
- * basic information along with the device's share.
- *
- * @see DELETE_WALLET_TASKS, delete_from_cards_controller(),
- * delete_wallet_share_from_sec_flash(), delete_wallet_from_flash(),
- * delete_wallet_task()
- * @since v1.0.0
- *
- * @note The wallet entry is erased only after the wallet has been deleted from
- * all the cards.
- */
-void delete_wallet_controller();
-
-/**
- * @brief Controller to branch through the application state for processing the
- * exact active flow.
- * @details This controller is only responsible for branching through the
- * application state and processing the exact active flow. No actual processing
- * is done here.
- *
- * @see LEVEL_THREE_OLD_WALLET_TASKS, view_seed_controller(),
- * delete_wallet_controller(), export_wallet_controller(),
- * add_coin_controller(),  send_transaction_controller_eth(),
- * receive_transaction_controller_eth(), wallet_locked_controller(),
- * verify_wallet_controller(), level_three_old_wallet_tasks()
- * @since v1.0.0
- */
-void level_three_old_wallet_controller();
-
-/**
- * @brief Back button controller for level three old wallet flow.
- * @details This controller is only responsible for branching through the
- * application state and processing the exact active flow. No actual processing
- * is done here.
- *
- * @see LEVEL_THREE_OLD_WALLET_TASKS,
- * verify_wallet_controller_b(), wallet_locked_controller_b(),
- * receive_transaction_controller_b_eth(),
- * send_transaction_controller_b_eth(),
- * level_three_old_wallet_tasks()
- * @since v1.0.0
- */
-void level_three_old_wallet_controller_b();
-
-#endif
\ No newline at end of file
diff --git a/src/level_three/old_wallet/controller/controller_old_wallet_b.c b/src/level_three/old_wallet/controller/controller_old_wallet_b.c
deleted file mode 100644
index 87f2721dd..000000000
--- a/src/level_three/old_wallet/controller/controller_old_wallet_b.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/**
- * @file    controller_old_wallet_b.c
- * @author  Cypherock X1 Team
- * @brief   Old wallet back controller.
- *          Handles post event (only back/cancel events) operations for old
- *wallet flow.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "controller_level_four.h"
-#include "controller_main.h"
-#include "controller_old_wallet.h"
-#include "tasks.h"
-
-void level_three_old_wallet_controller_b() {
-  switch (flow_level.level_two) {
-    case LEVEL_THREE_SEND_TRANSACTION_ETH: {
-      send_transaction_controller_b_eth();
-    } break;
-
-    case LEVEL_THREE_SIGN_MESSAGE_ETH: {
-      sign_message_controller_b_eth();
-    } break;
-
-    case LEVEL_THREE_SEND_TRANSACTION_SOLANA: {
-      send_transaction_controller_b_solana();
-    } break;
-
-    case LEVEL_THREE_RECEIVE_TRANSACTION_ETH: {
-      receive_transaction_controller_b_eth();
-    } break;
-
-    case LEVEL_THREE_RECEIVE_TRANSACTION_NEAR: {
-      receive_transaction_controller_b_near();
-    } break;
-
-    case LEVEL_THREE_RECEIVE_TRANSACTION_SOLANA: {
-      receive_transaction_controller_b_solana();
-    } break;
-
-    case LEVEL_THREE_WALLET_LOCKED: {
-      wallet_locked_controller_b();
-      break;
-    }
-
-    case LEVEL_THREE_VERIFY_WALLET: {
-      verify_wallet_controller_b();
-    } break;
-
-    case LEVEL_THREE_SYNC_WALLET: {
-    } break;
-
-    default:
-      break;
-  }
-  return;
-}
diff --git a/src/level_three/old_wallet/tasks/tasks_old_wallet.c b/src/level_three/old_wallet/tasks/tasks_old_wallet.c
deleted file mode 100644
index 3f94096aa..000000000
--- a/src/level_three/old_wallet/tasks/tasks_old_wallet.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/**
- * @file    tasks_old_wallet.c
- * @author  Cypherock X1 Team
- * @brief   Old wallet task.
- *          Handles pre-processing & display updates for old wallet tasks.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- *target=_blank>https://mitcc.org/</a>
- *
- ******************************************************************************
- * @attention
- *
- * (c) Copyright 2022 by HODL TECH PTE LTD
- *
- * 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.
- *
- *
- * "Commons Clause" License Condition v1.0
- *
- * The Software is provided to you by the Licensor under the License,
- * as defined below, subject to the following condition.
- *
- * Without limiting other conditions in the License, the grant of
- * rights under the License will not include, and the License does not
- * grant to you, the right to Sell the Software.
- *
- * For purposes of the foregoing, "Sell" means practicing any or all
- * of the rights granted to you under the License to provide to third
- * parties, for a fee or other consideration (including without
- * limitation fees for hosting or consulting/ support services related
- * to the Software), a product or service whose value derives, entirely
- * or substantially, from the functionality of the Software. Any license
- * notice or attribution required by the License must also include
- * this Commons Clause License Condition notice.
- *
- * Software: All X1Wallet associated files.
- * License: MIT
- * Licensor: HODL TECH PTE LTD
- *
- ******************************************************************************
- */
-#include "tasks_old_wallet.h"
-
-#include "constant_texts.h"
-#include "controller_main.h"
-#include "tasks.h"
-#include "tasks_level_four.h"
-
-void level_three_old_wallet_tasks() {
-  // Check if desktop sent an abort command (view seed and delete wallet are not
-  // initiated by desktop, therefore excluded here)
-  if (flow_level.level_two != LEVEL_THREE_WALLET_LOCKED &&
-      flow_level.level_two != LEVEL_THREE_VERIFY_WALLET &&
-      CY_Read_Reset_Flow()) {
-    mark_error_screen(ui_text_aborted);
-    reset_flow_level();
-    return;
-  }
-
-  switch (flow_level.level_two) {
-    case LEVEL_THREE_SEND_TRANSACTION_ETH: {
-      send_transaction_tasks_eth();
-    } break;
-
-    case LEVEL_THREE_SIGN_MESSAGE_ETH: {
-      sign_message_tasks_eth();
-    } break;
-
-    case LEVEL_THREE_SEND_TRANSACTION_SOLANA: {
-      send_transaction_tasks_solana();
-    } break;
-
-    case LEVEL_THREE_RECEIVE_TRANSACTION_ETH: {
-      receive_transaction_tasks_eth();
-    } break;
-
-    case LEVEL_THREE_RECEIVE_TRANSACTION_NEAR: {
-      receive_transaction_tasks_near();
-    } break;
-
-    case LEVEL_THREE_RECEIVE_TRANSACTION_SOLANA: {
-      receive_transaction_tasks_solana();
-    } break;
-
-    case LEVEL_THREE_WALLET_LOCKED:
-      wallet_locked_task();
-      break;
-
-    case LEVEL_THREE_VERIFY_WALLET:
-      verify_wallet_tasks();
-      break;
-    case LEVEL_THREE_SYNC_WALLET: {
-    } break;
-    default:
-      break;
-  }
-  return;
-}
diff --git a/src/level_three/old_wallet/tasks/tasks_old_wallet.h b/src/level_three/old_wallet/tasks/tasks_old_wallet.h
deleted file mode 100644
index fb2887602..000000000
--- a/src/level_three/old_wallet/tasks/tasks_old_wallet.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/**
- * @file    tasks_old_wallet.h
- * @author  Cypherock X1 Team
- * @brief   Header for old wallet tasks.
- *          This file contains all the prototypes for the old wallet tasks.
- * @copyright Copyright (c) 2022 HODL TECH PTE LTD
- * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
- * target=_blank>https://mitcc.org/</a>
- *
- */
-
-#ifndef TASKS_OLD_WALLET_H
-#define TASKS_OLD_WALLET_H
-
-#pragma once
-
-#include "controller_main.h"
-
-/**
- * @brief Handles all the possible operations on the old wallets.
- * @details This function handles all the possible operations on the old wallets
- * such as view seed, delete/unlock/verify wallet and other desktop triggered
- * operations such export wallet, send/receive transactions.
- *
- * @see view_seed_task(), wallet_locked_task(),
- * verify_wallet_task(),
- * send_transaction_tasks_eth(), receive_transaction_tasks_eth(),
- * LEVEL_THREE_OLD_WALLET_TASKS, Flow_level.level_two,
- * level_three_old_wallet_controller_b() level_three_old_wallet_controller()
- * @since v1.0.0
- */
-void level_three_old_wallet_tasks();
-
-#endif
\ No newline at end of file

From c8e13d08bd0b924c1b33bc91649be8ae33a98afd Mon Sep 17 00:00:00 2001
From: ParnikaGupta <guptaparnika9@gmail.com>
Date: Mon, 4 Mar 2024 18:16:54 +0530
Subject: [PATCH 06/32] chore (build): Update includes

---
 apps/btc_family/btc_pub_key.c                 |   3 +
 apps/btc_family/btc_txn.c                     |   3 +
 apps/btc_family/btc_xpub.c                    |   1 +
 apps/evm_family/evm_helpers.c                 |   1 +
 apps/evm_family/evm_txn_helpers.c             |   1 +
 apps/evm_family/evm_typed_data_helper.c       |   1 +
 apps/evm_family/evm_user_verification.c       |   1 +
 apps/manager_app/device_authentication_api.c  |   3 +-
 apps/manager_app/device_authentication_api.h  |  29 +++
 apps/manager_app/get_device_info.c            |   4 +-
 .../user_interface/ui_input_mnemonics.c       |   2 +
 common/libraries/util/utils.c                 |   3 +-
 common/startup/application_startup.c          |  74 ++++++-
 common/startup/application_startup.h          |  23 +++
 src/card_operations/card_internal.c           |   2 -
 src/card_operations/card_internal.h           |  31 ++-
 src/card_operations/card_pair.c               |  52 ++++-
 src/card_operations/card_read_verify_shares.c |   2 +
 src/card_operations/card_unlock_wallet.c      | 186 ++++++++++++++++++
 src/card_operations/card_utils.c              |   1 -
 src/card_operations/card_utils.h              |   1 -
 src/controller_main.c                         |   3 -
 src/controller_main.h                         |   1 -
 src/wallet/create_new_wallet_flow.c           |   2 +
 src/wallet/reconstruct_wallet_flow.c          |   1 +
 src/wallet/restore_seed_phrase_flow.c         |   1 +
 src/wallet/view_seed_flow.c                   |   2 +
 src/wallet/wallet_unlock_flow.c               |   1 +
 28 files changed, 418 insertions(+), 17 deletions(-)
 create mode 100644 src/card_operations/card_unlock_wallet.c

diff --git a/apps/btc_family/btc_pub_key.c b/apps/btc_family/btc_pub_key.c
index f79ff2d6b..6c56aac18 100644
--- a/apps/btc_family/btc_pub_key.c
+++ b/apps/btc_family/btc_pub_key.c
@@ -60,9 +60,12 @@
  * INCLUDES
  *****************************************************************************/
 
+#include "bip32.h"
 #include "btc_api.h"
 #include "btc_helpers.h"
 #include "btc_priv.h"
+#include "coin_utils.h"
+#include "curves.h"
 #include "reconstruct_wallet_flow.h"
 #include "status_api.h"
 #include "ui_core_confirm.h"
diff --git a/apps/btc_family/btc_txn.c b/apps/btc_family/btc_txn.c
index a7fde492d..608fdfe10 100644
--- a/apps/btc_family/btc_txn.c
+++ b/apps/btc_family/btc_txn.c
@@ -60,12 +60,15 @@
  * INCLUDES
  *****************************************************************************/
 
+#include "bip32.h"
 #include "btc_api.h"
 #include "btc_helpers.h"
 #include "btc_priv.h"
 #include "btc_script.h"
 #include "btc_txn_helpers.h"
+#include "coin_utils.h"
 #include "constant_texts.h"
+#include "curves.h"
 #include "reconstruct_wallet_flow.h"
 #include "status_api.h"
 #include "ui_core_confirm.h"
diff --git a/apps/btc_family/btc_xpub.c b/apps/btc_family/btc_xpub.c
index b3e7e028f..cbee47400 100644
--- a/apps/btc_family/btc_xpub.c
+++ b/apps/btc_family/btc_xpub.c
@@ -63,6 +63,7 @@
 #include "btc_api.h"
 #include "btc_helpers.h"
 #include "btc_priv.h"
+#include "curves.h"
 #include "reconstruct_wallet_flow.h"
 #include "status_api.h"
 #include "ui_core_confirm.h"
diff --git a/apps/evm_family/evm_helpers.c b/apps/evm_family/evm_helpers.c
index 0485b043e..d42efcb75 100644
--- a/apps/evm_family/evm_helpers.c
+++ b/apps/evm_family/evm_helpers.c
@@ -62,6 +62,7 @@
 
 #include "evm_helpers.h"
 
+#include "eth.h"
 #include "evm_priv.h"
 #include "evm_txn_helpers.h"
 #include "evm_typed_data_helper.h"
diff --git a/apps/evm_family/evm_txn_helpers.c b/apps/evm_family/evm_txn_helpers.c
index 2a310f2e7..56825591b 100644
--- a/apps/evm_family/evm_txn_helpers.c
+++ b/apps/evm_family/evm_txn_helpers.c
@@ -63,6 +63,7 @@
 
 #include "evm_txn_helpers.h"
 
+#include "eth.h"
 #include "evm_priv.h"
 #include "int-util.h"
 
diff --git a/apps/evm_family/evm_typed_data_helper.c b/apps/evm_family/evm_typed_data_helper.c
index d70485e93..4807a9b79 100644
--- a/apps/evm_family/evm_typed_data_helper.c
+++ b/apps/evm_family/evm_typed_data_helper.c
@@ -64,6 +64,7 @@
 
 #include "coin_utils.h"
 #include "eip712_utils.h"
+#include "eth.h"
 #include "evm_priv.h"
 
 /*****************************************************************************
diff --git a/apps/evm_family/evm_user_verification.c b/apps/evm_family/evm_user_verification.c
index fedbc1cfc..e998fc3cb 100644
--- a/apps/evm_family/evm_user_verification.c
+++ b/apps/evm_family/evm_user_verification.c
@@ -64,6 +64,7 @@
 
 #include "address.h"
 #include "constant_texts.h"
+#include "eth.h"
 #include "evm_api.h"
 #include "evm_priv.h"
 #include "ui_core_confirm.h"
diff --git a/apps/manager_app/device_authentication_api.c b/apps/manager_app/device_authentication_api.c
index 0493db3e9..aebd73dc9 100644
--- a/apps/manager_app/device_authentication_api.c
+++ b/apps/manager_app/device_authentication_api.c
@@ -57,9 +57,9 @@
  */
 #include "atca_host.h"
 #include "board.h"
-#include "controller_level_four.h"
 #include "cryptoauthlib.h"
 #include "curves.h"
+#include "flash_api.h"
 #include "nist256p1.h"
 #include "sec_flash.h"
 #include "string.h"
@@ -67,6 +67,7 @@
 #include "stm32l4xx_it.h"
 #endif
 
+#include "atca_basic.h"
 #include "device_authentication_api.h"
 
 #define SIGNATURE_SIZE 64
diff --git a/apps/manager_app/device_authentication_api.h b/apps/manager_app/device_authentication_api.h
index 7588cdd03..9aa627930 100644
--- a/apps/manager_app/device_authentication_api.h
+++ b/apps/manager_app/device_authentication_api.h
@@ -17,16 +17,45 @@
  *****************************************************************************/
 #include <manager/core.pb.h>
 
+#include "atca_iface.h"
+#include "atca_status.h"
 #include "stddef.h"
 #include "stdint.h"
 
 /*****************************************************************************
  * MACROS AND DEFINES
  *****************************************************************************/
+#define DEFAULT_ATECC_RETRIES 5
+#define DEVICE_SERIAL_SIZE 32
 
 /*****************************************************************************
  * TYPEDEFS
  *****************************************************************************/
+typedef enum {
+  slot_0_unused = 0U,
+  slot_1_unused = 1U,
+  slot_2_auth_key = 2U,
+  slot_3_nfc_pair_key = 3U,
+  slot_4_unused = 4U,
+  slot_5_challenge = 5U,
+  slot_6_io_key = 6U,
+  slot_7_unused = 7U,
+  slot_8_serial = 8U,
+  slot_9_unused = 9U,
+  slot_10_unused = 10U,
+  slot_11_unused = 11U,
+  slot_12_unused = 12U,
+  slot_13_unused = 13U,
+  slot_14_unused = 14U,
+  slot_15_unused = 15U
+} atecc_slot_define_t;
+typedef struct {
+  uint8_t device_serial[DEVICE_SERIAL_SIZE], retries;
+  ATCA_STATUS status;
+  ATCAIfaceCfg *cfg_atecc608a_iface;
+} atecc_data_t;
+
+extern atecc_data_t atecc_data;
 
 /*****************************************************************************
  * EXPORTED VARIABLES
diff --git a/apps/manager_app/get_device_info.c b/apps/manager_app/get_device_info.c
index 793a33ef9..5194066f0 100644
--- a/apps/manager_app/get_device_info.c
+++ b/apps/manager_app/get_device_info.c
@@ -60,7 +60,9 @@
  * INCLUDES
  *****************************************************************************/
 
-#include "controller_level_four.h"
+#include "application_startup.h"
+#include "atca_status.h"
+#include "device_authentication_api.h"
 #include "flash_api.h"
 #include "manager_api.h"
 #include "manager_app.h"
diff --git a/common/interfaces/user_interface/ui_input_mnemonics.c b/common/interfaces/user_interface/ui_input_mnemonics.c
index d9b499b24..0f343a9e5 100644
--- a/common/interfaces/user_interface/ui_input_mnemonics.c
+++ b/common/interfaces/user_interface/ui_input_mnemonics.c
@@ -58,7 +58,9 @@
  */
 #include "ui_input_mnemonics.h"
 
+#include "bip39.h"
 #include "ui_events_priv.h"
+
 static void ui_mnem_create();
 static void refresh_screen_texts();
 static void shrink();
diff --git a/common/libraries/util/utils.c b/common/libraries/util/utils.c
index 2729cf60a..4b5ac82c8 100644
--- a/common/libraries/util/utils.c
+++ b/common/libraries/util/utils.c
@@ -65,12 +65,13 @@
 #include "assert_conf.h"
 #include "bip32.h"
 #include "bip39.h"
-#include "controller_level_four.h"
 #include "crypto_random.h"
 #include "cryptoauthlib.h"
 #include "curves.h"
+#include "device_authentication_api.h"
 #include "logger.h"
 #include "lv_font.h"
+#include "lv_txt.h"
 #include "sha2.h"
 #include "wallet.h"
 
diff --git a/common/startup/application_startup.c b/common/startup/application_startup.c
index f07a8ef48..3d1790755 100644
--- a/common/startup/application_startup.c
+++ b/common/startup/application_startup.c
@@ -69,11 +69,10 @@
  */
 #include "application_startup.h"
 
-#include "controller_level_four.h"
-#include "controller_tap_cards.h"
 #include "core_error.h"
 #include "core_flow_init.h"
 #include "cryptoauthlib.h"
+#include "device_authentication_api.h"
 #include "flash_api.h"
 #include "flash_if.h"
 #include "logger.h"
@@ -85,6 +84,7 @@
 #include "sys_state.h"
 #include "systick_timer.h"
 #include "ui_screens.h"
+
 #ifdef DEV_BUILD
 #include "dev_utils.h"
 #endif
@@ -456,6 +456,76 @@ void device_hardware_check() {
 #endif
 }
 
+uint32_t get_device_serial() {
+  atecc_data.retries = DEFAULT_ATECC_RETRIES;
+  bool usb_irq_enable_on_entry = NVIC_GetEnableIRQ(OTG_FS_IRQn);
+
+  NVIC_DisableIRQ(OTG_FS_IRQn);
+  do {
+    atecc_data.status = atcab_init(atecc_data.cfg_atecc608a_iface);
+    atecc_data.status = atcab_read_zone(ATCA_ZONE_DATA,
+                                        slot_8_serial,
+                                        0,
+                                        0,
+                                        atecc_data.device_serial,
+                                        DEVICE_SERIAL_SIZE);
+  } while (atecc_data.status != ATCA_SUCCESS && --atecc_data.retries);
+  if (usb_irq_enable_on_entry == true)
+    NVIC_EnableIRQ(OTG_FS_IRQn);
+
+  if (atecc_data.status == ATCA_SUCCESS) {
+    if (0 != memcmp(atecc_data.device_serial + 8, (void *)UID_BASE, 12)) {
+      return 1;
+    } else {
+      return SUCCESS;
+    }
+  }
+  return atecc_data.status;
+}
+
+provision_status_t check_provision_status() {
+  uint8_t cfg[128];
+  memset(cfg, 0, 128);
+  atecc_data.retries = DEFAULT_ATECC_RETRIES;
+
+  bool usb_irq_enable_on_entry = NVIC_GetEnableIRQ(OTG_FS_IRQn);
+  NVIC_DisableIRQ(OTG_FS_IRQn);
+  do {
+    atecc_data.status = atcab_init(atecc_data.cfg_atecc608a_iface);
+    atecc_data.status = atcab_read_config_zone(cfg);
+  } while (atecc_data.status != ATCA_SUCCESS && --atecc_data.retries);
+  if (usb_irq_enable_on_entry == true)
+    NVIC_EnableIRQ(OTG_FS_IRQn);
+
+  if (atecc_data.status != ATCA_SUCCESS) {
+    LOG_CRITICAL("xxx30: %d", atecc_data.status);
+    return -1;
+  }
+
+  if (cfg[86] == 0x00 &&
+      cfg[87] == 0x00) {    // config zone and data zones are locked
+
+    if (cfg[88] == 0xBF &&
+        cfg[89] ==
+            0xFE) {    // device serial and IO key are programmed and locked
+      return provision_incomplete;
+
+    } else if ((cfg[88] & ATECC_CFG_88_MASK) == 0x00 &&
+               (cfg[89] & ATECC_CFG_89_MASK) ==
+                   0x00) {    // private key slots are locked
+      return provision_complete;
+    } else if ((cfg[88] & ATECC_CFG_88_MASK_OLD_PROV) == 0x00 &&
+               (cfg[89] & ATECC_CFG_89_MASK) ==
+                   0x00) {    // NFC private key slot not locked
+      return provision_v1_complete;
+    } else {
+      return provision_empty;
+    }
+  } else {
+    return provision_empty;
+  }
+}
+
 void device_provision_check() {
 #if USE_SIMULATOR == 0
   const char *msg = NULL;
diff --git a/common/startup/application_startup.h b/common/startup/application_startup.h
index e6022756e..e23a68014 100644
--- a/common/startup/application_startup.h
+++ b/common/startup/application_startup.h
@@ -54,6 +54,18 @@
 /// Interval defined for user inactivity in a flow in milli seconds
 #define INACTIVITY_TIME (300 * 1000)
 
+#define ATECC_CFG_88_MASK 0x4C
+#define ATECC_CFG_89_MASK 0x01
+
+#define ATECC_CFG_88_MASK_OLD_PROV 44
+
+typedef enum {
+  provision_empty = 0,
+  provision_incomplete = 1,
+  provision_complete = 2,
+  provision_v1_complete = 3
+} provision_status_t;
+
 extern uint8_t device_auth_flag;
 extern bool main_app_ready;
 
@@ -183,6 +195,17 @@ bool fault_in_prev_boot();
  */
 void handle_fault_in_prev_boot();
 
+/**
+ * @brief   fetch device serial and check if UID in the serial matches MCU UID
+ * or not
+ * @details
+ *
+ * @return uint32_t device serial fetch status or failure status
+ * @retval 0    fetched successfully
+ * @retval 1    device UID doesn't match with serial UID
+ */
+uint32_t get_device_serial();
+
 /**
  * @brief Detect hardware related faults
  *
diff --git a/src/card_operations/card_internal.c b/src/card_operations/card_internal.c
index c866807d4..c81ebab20 100644
--- a/src/card_operations/card_internal.c
+++ b/src/card_operations/card_internal.c
@@ -62,9 +62,7 @@
  *****************************************************************************/
 #include "card_internal.h"
 
-#include "apdu.h"
 #include "app_error.h"
-#include "buzzer.h"
 #include "core_error.h"
 #include "events.h"
 #include "nfc.h"
diff --git a/src/card_operations/card_internal.h b/src/card_operations/card_internal.h
index e4ccbfd71..ac60bb15c 100644
--- a/src/card_operations/card_internal.h
+++ b/src/card_operations/card_internal.h
@@ -13,10 +13,10 @@
 /*****************************************************************************
  * INCLUDES
  *****************************************************************************/
+#include "apdu.h"
+#include "buzzer.h"
 #include "card_operation_typedefs.h"
 
-/* TODO: Remove the include and move required struct with cleanup*/
-#include "controller_tap_cards.h"
 /*****************************************************************************
  * MACROS AND DEFINES
  *****************************************************************************/
@@ -24,6 +24,33 @@
 /*****************************************************************************
  * TYPEDEFS
  *****************************************************************************/
+
+/**
+ * @brief
+ * @details
+ *
+ * @see
+ * @since v1.0.0
+ *
+ * @note
+ */
+typedef struct NFC_connection_data {
+  uint8_t desktop_control;
+  int8_t keystore_index;
+  uint8_t acceptable_cards;
+  uint8_t tapped_card;
+  uint8_t retries;
+  uint8_t family_id[FAMILY_ID_SIZE +
+                    2];    // TODO: Review(need to find reason for extra byte)
+  uint8_t card_key_id[4];
+  bool pairing_error;
+  uint8_t recovery_mode;
+  uint8_t card_absent_retries;
+  uint8_t *card_version;
+  bool init_session_keys;
+  ISO7816 status;
+} NFC_connection_data;
+
 typedef struct card_operation_data {
   NFC_connection_data nfc_data;
   const char *error_message; /** Error message to be displayed for user action
diff --git a/src/card_operations/card_pair.c b/src/card_operations/card_pair.c
index 7094fc737..79ff528b5 100644
--- a/src/card_operations/card_pair.c
+++ b/src/card_operations/card_pair.c
@@ -66,13 +66,17 @@
 #include "bip32.h"
 #include "card_internal.h"
 #include "card_utils.h"
-#include "controller_level_four.h"
 #include "core_error.h"
 #include "curves.h"
 #include "nist256p1.h"
 #include "ui_instruction.h"
 #include "utils.h"
-
+#if USE_SIMULATOR == 0
+#include "stm32l4xx_it.h"
+#endif
+#include "atca_basic.h"
+#include "device_authentication_api.h"
+#include "nfc.h"
 /*****************************************************************************
  * EXTERN VARIABLES
  *****************************************************************************/
@@ -163,6 +167,50 @@ static void init_and_pair_card(card_operation_data_t *card_data,
 /*****************************************************************************
  * STATIC FUNCTIONS
  *****************************************************************************/
+
+static uint8_t atecc_nfc_sign_hash(const uint8_t *hash, uint8_t *sign) {
+  atecc_data.retries = DEFAULT_ATECC_RETRIES;
+
+  bool usb_irq_enable_on_entry = NVIC_GetEnableIRQ(OTG_FS_IRQn);
+  NVIC_DisableIRQ(OTG_FS_IRQn);
+  do {
+    if (atecc_data.status != ATCA_SUCCESS)
+      LOG_CRITICAL("PAIR SG: %04x, count:%d",
+                   atecc_data.status,
+                   DEFAULT_ATECC_RETRIES - atecc_data.retries);
+    atcab_init(atecc_data.cfg_atecc608a_iface);
+    atecc_data.status = atcab_sign(slot_3_nfc_pair_key, hash, sign);
+  } while (atecc_data.status != ATCA_SUCCESS && --atecc_data.retries);
+  if (usb_irq_enable_on_entry == true)
+    NVIC_EnableIRQ(OTG_FS_IRQn);
+
+  return atecc_data.status;
+}
+
+static uint8_t atecc_nfc_ecdh(const uint8_t *pub_key, uint8_t *shared_secret) {
+  uint8_t io_key[IO_KEY_SIZE];
+  atecc_data.retries = DEFAULT_ATECC_RETRIES;
+
+  if (get_io_protection_key(io_key) != SUCCESS_)
+    return -1;
+
+  bool usb_irq_enable_on_entry = NVIC_GetEnableIRQ(OTG_FS_IRQn);
+  NVIC_DisableIRQ(OTG_FS_IRQn);
+  do {
+    if (atecc_data.status != ATCA_SUCCESS)
+      LOG_CRITICAL("ECDH: %04x, count:%d",
+                   atecc_data.status,
+                   DEFAULT_ATECC_RETRIES - atecc_data.retries);
+    atcab_init(atecc_data.cfg_atecc608a_iface);
+    atecc_data.status =
+        atcab_ecdh_ioenc(slot_3_nfc_pair_key, pub_key, shared_secret, io_key);
+  } while (atecc_data.status != ATCA_SUCCESS && --atecc_data.retries);
+  if (usb_irq_enable_on_entry == true)
+    NVIC_EnableIRQ(OTG_FS_IRQn);
+
+  return atecc_data.status;
+}
+
 static uint32_t pair_card_preprocess(card_pairing_data_t *pair_data) {
   uint8_t digest[64] = {0}, sig[65] = {0};
   uint8_t invalid_self_keypath[8] = {DEFAULT_VALUE_IN_FLASH,
diff --git a/src/card_operations/card_read_verify_shares.c b/src/card_operations/card_read_verify_shares.c
index efeec3b7d..cbdb16a4a 100644
--- a/src/card_operations/card_read_verify_shares.c
+++ b/src/card_operations/card_read_verify_shares.c
@@ -60,12 +60,14 @@
 /*****************************************************************************
  * INCLUDES
  *****************************************************************************/
+#include "bip39.h"
 #include "card_internal.h"
 #include "card_operation_typedefs.h"
 #include "card_read_verify_share.h"
 #include "card_utils.h"
 #include "flash_api.h"
 #include "nfc.h"
+#include "options.h"
 #include "shamir_wrapper.h"
 #include "ui_instruction.h"
 #include "wallet.h"
diff --git a/src/card_operations/card_unlock_wallet.c b/src/card_operations/card_unlock_wallet.c
new file mode 100644
index 000000000..044d532ad
--- /dev/null
+++ b/src/card_operations/card_unlock_wallet.c
@@ -0,0 +1,186 @@
+/**
+ * @file    card_unlock_wallet.c
+ * @author  Cypherock X1 Team
+ * @brief   Wallet unlock flow controller
+ * @copyright Copyright (c) 2023 HODL TECH PTE LTD
+ * <br/> You may obtain a copy of license at <a href="https://mitcc.org/"
+ *target=_blank>https://mitcc.org/</a>
+ *
+ ******************************************************************************
+ * @attention
+ *
+ * (c) Copyright 2023 by HODL TECH PTE LTD
+ *
+ * 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.
+ *
+ *
+ * "Commons Clause" License Condition v1.0
+ *
+ * The Software is provided to you by the Licensor under the License,
+ * as defined below, subject to the following condition.
+ *
+ * Without limiting other conditions in the License, the grant of
+ * rights under the License will not include, and the License does not
+ * grant to you, the right to Sell the Software.
+ *
+ * For purposes of the foregoing, "Sell" means practicing any or all
+ * of the rights granted to you under the License to provide to third
+ * parties, for a fee or other consideration (including without
+ * limitation fees for hosting or consulting/ support services related
+ * to the Software), a product or service whose value derives, entirely
+ * or substantially, from the functionality of the Software. Any license
+ * notice or attribution required by the License must also include
+ * this Commons Clause License Condition notice.
+ *
+ * Software: All X1Wallet associated files.
+ * License: MIT
+ * Licensor: HODL TECH PTE LTD
+ *
+ ******************************************************************************
+ */
+
+/*****************************************************************************
+ * INCLUDES
+ *****************************************************************************/
+
+#include "card_unlock_wallet.h"
+
+#include "buzzer.h"
+#include "card_internal.h"
+#include "card_utils.h"
+#include "nfc.h"
+#include "pow_utilities.h"
+#include "ui_instruction.h"
+
+/*****************************************************************************
+ * EXTERN VARIABLES
+ *****************************************************************************/
+
+/*****************************************************************************
+ * PRIVATE MACROS AND DEFINES
+ *****************************************************************************/
+
+/*****************************************************************************
+ * PRIVATE TYPEDEFS
+ *****************************************************************************/
+
+/*****************************************************************************
+ * STATIC FUNCTION PROTOTYPES
+ *****************************************************************************/
+
+/*****************************************************************************
+ * STATIC VARIABLES
+ *****************************************************************************/
+
+/*****************************************************************************
+ * GLOBAL VARIABLES
+ *****************************************************************************/
+
+/*****************************************************************************
+ * STATIC FUNCTIONS
+ *****************************************************************************/
+
+/*****************************************************************************
+ * GLOBAL FUNCTIONS
+ *****************************************************************************/
+
+card_error_type_e card_unlock_wallet(const Wallet *wallet) {
+  card_error_type_e result = CARD_OPERATION_DEFAULT_INVALID;
+  card_operation_data_t card_data = {0};
+
+  char heading[50] = "";
+  uint8_t wallet_index = 0xFF;
+  ASSERT(SUCCESS ==
+         get_index_by_name((const char *)wallet->wallet_name, &wallet_index));
+
+  snprintf(heading,
+           sizeof(heading),
+           UI_TEXT_TAP_CARD,
+           decode_card_number(get_wallet_card_locked(wallet_index)));
+  instruction_scr_init(ui_text_place_card_below, heading);
+
+  card_data.nfc_data.retries = 5;
+  card_data.nfc_data.init_session_keys = true;
+  while (1) {
+    card_data.nfc_data.acceptable_cards = get_wallet_card_locked(wallet_index);
+    memcpy(card_data.nfc_data.family_id, get_family_id(), FAMILY_ID_SIZE);
+    card_data.nfc_data.tapped_card = 0;
+
+    result = card_initialize_applet(&card_data);
+
+    if (CARD_OPERATION_SUCCESS == card_data.error_type) {
+      card_data.nfc_data.status =
+          nfc_verify_challenge(wallet->wallet_name,
+                               get_proof_of_work_nonce(),
+                               wallet->password_double_hash);
+
+      if (card_data.nfc_data.status == SW_NO_ERROR ||
+          card_data.nfc_data.status == SW_WARNING_STATE_UNCHANGED) {
+        update_wallet_locked_flash((const char *)wallet->wallet_name, false);
+        buzzer_start(BUZZER_DURATION);
+        break;
+      } else {
+        card_handle_errors(&card_data);
+        if (POW_SW_CHALLENGE_FAILED == card_data.nfc_data.status) {
+          uint16_t bits = pow_count_set_bits(
+              get_wallet_by_index(wallet_index)->challenge.target);
+          LOG_CRITICAL("ex-pow-tg n: %d", bits);
+          log_hex_array(
+              "ex-pow-rn: ",
+              get_wallet_by_index(wallet_index)->challenge.random_number,
+              POW_RAND_NUMBER_SIZE);
+        }
+      }
+    }
+
+    if (CARD_OPERATION_CARD_REMOVED == card_data.error_type ||
+        CARD_OPERATION_RETAP_BY_USER_REQUIRED == card_data.error_type) {
+      const char *error_msg = card_data.error_message;
+      if (CARD_OPERATION_SUCCESS == indicate_card_error(error_msg)) {
+        // Re-render the instruction screen
+        instruction_scr_init(ui_text_place_card_below, heading);
+        continue;
+      }
+    }
+
+    /**
+     * @brief For errors which lead to challenge failure or incorrect pin, we
+     * have to refetch the challenge which is performed subsequently in the same
+     * card tap session by the caller from user's perspective, so only for the
+     * condiion of `CARD_OPERATION_LOCKED_WALLET` we don't sound the buzzer as
+     * the card tap session has not completed.
+     */
+    if (CARD_OPERATION_LOCKED_WALLET != card_data.error_type) {
+      buzzer_start(BUZZER_DURATION);
+    }
+
+    result = handle_wallet_errors(&card_data, wallet);
+    if (CARD_OPERATION_SUCCESS != result) {
+      break;
+    }
+
+    // If control reached here, it is an unrecoverable error, so break
+    result = card_data.error_type;
+    break;
+  }
+
+  nfc_deselect_card();
+  return result;
+}
\ No newline at end of file
diff --git a/src/card_operations/card_utils.c b/src/card_operations/card_utils.c
index 111c4c91e..049e62641 100644
--- a/src/card_operations/card_utils.c
+++ b/src/card_operations/card_utils.c
@@ -64,7 +64,6 @@
 
 #include "card_internal.h"
 #include "constant_texts.h"
-#include "controller_tap_cards.h"
 #include "events.h"
 #include "ui_instruction.h"
 #include "ui_message.h"
diff --git a/src/card_operations/card_utils.h b/src/card_operations/card_utils.h
index 271832b50..051073de8 100644
--- a/src/card_operations/card_utils.h
+++ b/src/card_operations/card_utils.h
@@ -14,7 +14,6 @@
  * INCLUDES
  *****************************************************************************/
 #include "card_internal.h"
-#include "controller_tap_cards.h"
 #include "stdbool.h"
 
 /*****************************************************************************
diff --git a/src/controller_main.c b/src/controller_main.c
index ae4392b8a..18aa7b876 100644
--- a/src/controller_main.c
+++ b/src/controller_main.c
@@ -92,7 +92,6 @@
 #include "chacha20poly1305.h"
 #include "communication.h"
 #include "constant_texts.h"
-#include "controller_level_four.h"
 #include "cryptoauthlib.h"
 #include "etc.h"
 #include "eth.h"
@@ -141,8 +140,6 @@ char arbitrary_data[4096 / 8 + 1];
 
 // TODO: Variable required for code compilation: Delete after all coins are
 // ported
-Send_Transaction_Data var_send_transaction_data = {0};
-Receive_Transaction_Data receive_transaction_data = {0};
 
 /**
  * @brief Global Flow_level instance.
diff --git a/src/controller_main.h b/src/controller_main.h
index f438cb4a9..4e50a4f7f 100644
--- a/src/controller_main.h
+++ b/src/controller_main.h
@@ -43,7 +43,6 @@
 #include "sha2.h"
 #include "sys_state.h"
 #include "tasks.h"
-#include "tasks_level_four.h"
 #include "utils.h"
 #include "wallet.h"
 
diff --git a/src/wallet/create_new_wallet_flow.c b/src/wallet/create_new_wallet_flow.c
index b455012e2..d1bac1297 100644
--- a/src/wallet/create_new_wallet_flow.c
+++ b/src/wallet/create_new_wallet_flow.c
@@ -61,12 +61,14 @@
  *****************************************************************************/
 #include "create_new_wallet_flow.h"
 
+#include "bip39.h"
 #include "card_flow_create_wallet.h"
 #include "constant_texts.h"
 #include "core_error.h"
 #include "crypto_random.h"
 #include "flash_api.h"
 #include "flash_if.h"
+#include "options.h"
 #include "sha2.h"
 #include "shamir_wrapper.h"
 #include "ui_core_confirm.h"
diff --git a/src/wallet/reconstruct_wallet_flow.c b/src/wallet/reconstruct_wallet_flow.c
index a9a844872..72231c01c 100644
--- a/src/wallet/reconstruct_wallet_flow.c
+++ b/src/wallet/reconstruct_wallet_flow.c
@@ -61,6 +61,7 @@
  *****************************************************************************/
 #include "reconstruct_wallet_flow.h"
 
+#include "bip39.h"
 #include "card_flow_reconstruct_wallet.h"
 #include "common_error.h"
 #include "constant_texts.h"
diff --git a/src/wallet/restore_seed_phrase_flow.c b/src/wallet/restore_seed_phrase_flow.c
index c7d1b4b6d..39ab4ca18 100644
--- a/src/wallet/restore_seed_phrase_flow.c
+++ b/src/wallet/restore_seed_phrase_flow.c
@@ -62,6 +62,7 @@
 #include "constant_texts.h"
 #include "core_error.h"
 #include "flash_if.h"
+#include "options.h"
 #include "sha2.h"
 #include "shamir_wrapper.h"
 #include "ui_core_confirm.h"
diff --git a/src/wallet/view_seed_flow.c b/src/wallet/view_seed_flow.c
index 6b9316de1..ce97c63c2 100644
--- a/src/wallet/view_seed_flow.c
+++ b/src/wallet/view_seed_flow.c
@@ -59,8 +59,10 @@
 /*****************************************************************************
  * INCLUDES
  *****************************************************************************/
+#include "bip32.h"
 #include "constant_texts.h"
 #include "core_error.h"
+#include "options.h"
 #include "reconstruct_wallet_flow.h"
 #include "ui_core_confirm.h"
 #include "ui_multi_instruction.h"
diff --git a/src/wallet/wallet_unlock_flow.c b/src/wallet/wallet_unlock_flow.c
index 0d9c39df8..323c84ab4 100644
--- a/src/wallet/wallet_unlock_flow.c
+++ b/src/wallet/wallet_unlock_flow.c
@@ -62,6 +62,7 @@
 #include "wallet_unlock_flow.h"
 
 #include "card_operations.h"
+#include "card_unlock_wallet.h"
 #include "constant_texts.h"
 #include "core_error.h"
 #include "flash_api.h"

From d4bca9928a1dce496c64c735b5a1722c8e86a309 Mon Sep 17 00:00:00 2001
From: ParnikaGupta <guptaparnika9@gmail.com>
Date: Mon, 4 Mar 2024 18:26:54 +0530
Subject: [PATCH 07/32] chore (build): Added missing struct

---
 src/controller_main.h | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/src/controller_main.h b/src/controller_main.h
index 4e50a4f7f..aff317080 100644
--- a/src/controller_main.h
+++ b/src/controller_main.h
@@ -249,6 +249,19 @@ extern Wallet wallet;
 extern lv_task_t *address_timeout_task;
 extern uint32_t inactivity_counter;
 
+#pragma pack(push, 1)
+typedef struct Provision_Data_Struct {
+  uint8_t device_private_key[32];
+  uint8_t device_public_key[ECDSA_PUB_KEY_SIZE];
+  uint8_t self_key_path[FS_KEYSTORE_KEYPATH_LEN];
+  uint8_t priv_key[FS_KEYSTORE_PRIVKEY_LEN];
+  uint8_t card_root_xpub[FS_KEYSTORE_XPUB_LEN];
+} Provision_Data_struct;
+#pragma pack(pop)
+
+extern Provision_Data_struct provision_keys_data;
+extern uint8_t provision_date[4];
+
 /**
  * @brief Get the Global Flash_Wallet instance.
  *

From c8b6e33a5951d08a4288adf90cc5543bc9d85b1a Mon Sep 17 00:00:00 2001
From: ParnikaGupta <guptaparnika9@gmail.com>
Date: Tue, 5 Mar 2024 15:17:08 +0530
Subject: [PATCH 08/32] chore (build): Provision extern removed

---
 src/controller_main.c | 3 +++
 src/controller_main.h | 3 ---
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/controller_main.c b/src/controller_main.c
index 18aa7b876..2334a6bbb 100644
--- a/src/controller_main.c
+++ b/src/controller_main.c
@@ -166,6 +166,9 @@ Flash_Wallet wallet_for_flash;
 MessageData msg_data;
 ui_display_node *current_display_node = NULL;
 
+uint8_t provision_date[4];
+Provision_Data_struct provision_keys_data;
+
 Flash_Wallet *get_flash_wallet() {
   ASSERT((&wallet_for_flash) != NULL);
 
diff --git a/src/controller_main.h b/src/controller_main.h
index aff317080..3d5d057c4 100644
--- a/src/controller_main.h
+++ b/src/controller_main.h
@@ -259,9 +259,6 @@ typedef struct Provision_Data_Struct {
 } Provision_Data_struct;
 #pragma pack(pop)
 
-extern Provision_Data_struct provision_keys_data;
-extern uint8_t provision_date[4];
-
 /**
  * @brief Get the Global Flash_Wallet instance.
  *

From 7d4616c533c406b05f284d11e6980d106f64419b Mon Sep 17 00:00:00 2001
From: ParnikaGupta <guptaparnika9@gmail.com>
Date: Tue, 5 Mar 2024 16:22:04 +0530
Subject: [PATCH 09/32] chore (build): Removed redundant includes

---
 apps/evm_family/evm_helpers.c           | 1 -
 apps/evm_family/evm_priv.h              | 1 +
 apps/evm_family/evm_txn_helpers.c       | 1 -
 apps/evm_family/evm_typed_data_helper.c | 1 -
 apps/evm_family/evm_user_verification.c | 1 -
 common/coin_support/coin_utils.h        | 1 +
 6 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/apps/evm_family/evm_helpers.c b/apps/evm_family/evm_helpers.c
index d42efcb75..0485b043e 100644
--- a/apps/evm_family/evm_helpers.c
+++ b/apps/evm_family/evm_helpers.c
@@ -62,7 +62,6 @@
 
 #include "evm_helpers.h"
 
-#include "eth.h"
 #include "evm_priv.h"
 #include "evm_txn_helpers.h"
 #include "evm_typed_data_helper.h"
diff --git a/apps/evm_family/evm_priv.h b/apps/evm_family/evm_priv.h
index 01bdc4e6e..95f37f279 100644
--- a/apps/evm_family/evm_priv.h
+++ b/apps/evm_family/evm_priv.h
@@ -15,6 +15,7 @@
  * INCLUDES
  *****************************************************************************/
 
+#include "eth.h"
 #include "events.h"
 #include "evm_api.h"
 #include "evm_context.h"
diff --git a/apps/evm_family/evm_txn_helpers.c b/apps/evm_family/evm_txn_helpers.c
index 56825591b..2a310f2e7 100644
--- a/apps/evm_family/evm_txn_helpers.c
+++ b/apps/evm_family/evm_txn_helpers.c
@@ -63,7 +63,6 @@
 
 #include "evm_txn_helpers.h"
 
-#include "eth.h"
 #include "evm_priv.h"
 #include "int-util.h"
 
diff --git a/apps/evm_family/evm_typed_data_helper.c b/apps/evm_family/evm_typed_data_helper.c
index 4807a9b79..d70485e93 100644
--- a/apps/evm_family/evm_typed_data_helper.c
+++ b/apps/evm_family/evm_typed_data_helper.c
@@ -64,7 +64,6 @@
 
 #include "coin_utils.h"
 #include "eip712_utils.h"
-#include "eth.h"
 #include "evm_priv.h"
 
 /*****************************************************************************
diff --git a/apps/evm_family/evm_user_verification.c b/apps/evm_family/evm_user_verification.c
index e998fc3cb..fedbc1cfc 100644
--- a/apps/evm_family/evm_user_verification.c
+++ b/apps/evm_family/evm_user_verification.c
@@ -64,7 +64,6 @@
 
 #include "address.h"
 #include "constant_texts.h"
-#include "eth.h"
 #include "evm_api.h"
 #include "evm_priv.h"
 #include "ui_core_confirm.h"
diff --git a/common/coin_support/coin_utils.h b/common/coin_support/coin_utils.h
index 397e65e23..5a5832f07 100644
--- a/common/coin_support/coin_utils.h
+++ b/common/coin_support/coin_utils.h
@@ -53,6 +53,7 @@
 #define DASH_COIN_VERSION 0x00000000
 
 /// ETHEREUM coin index
+#define ETHEREUM_COIN_INDEX 0x8000003C
 #define ETHEREUM ETHEREUM_COIN_INDEX
 
 /// NEAR coin index

From f80e7468c34bb9138caad32e4f1b1222bfd209ac Mon Sep 17 00:00:00 2001
From: ParnikaGupta <guptaparnika9@gmail.com>
Date: Wed, 6 Mar 2024 17:11:10 +0530
Subject: [PATCH 10/32] chore (build): Added prototypes

---
 common/startup/application_startup.h | 12 +++++++++++
 src/card_operations/card_internal.h  |  1 -
 src/card_operations/card_pair.c      | 31 ++++++++++++++++++++++++++++
 src/card_operations/check_pairing.c  |  1 -
 4 files changed, 43 insertions(+), 2 deletions(-)

diff --git a/common/startup/application_startup.h b/common/startup/application_startup.h
index e23a68014..3aae7a165 100644
--- a/common/startup/application_startup.h
+++ b/common/startup/application_startup.h
@@ -195,6 +195,18 @@ bool fault_in_prev_boot();
  */
 void handle_fault_in_prev_boot();
 
+/**
+ * @brief
+ * @details
+ *
+ * @return uint8_t Provision status of the device
+ * @retval 0    Not provisioned
+ * @retval 1    Semi-provisioned (serial and IO-Protection Key present)
+ * @retval 2    Fully provisioned
+ * @retval 3    External auth configuration
+ */
+provision_status_t check_provision_status();
+
 /**
  * @brief   fetch device serial and check if UID in the serial matches MCU UID
  * or not
diff --git a/src/card_operations/card_internal.h b/src/card_operations/card_internal.h
index ac60bb15c..254bb1f88 100644
--- a/src/card_operations/card_internal.h
+++ b/src/card_operations/card_internal.h
@@ -35,7 +35,6 @@
  * @note
  */
 typedef struct NFC_connection_data {
-  uint8_t desktop_control;
   int8_t keystore_index;
   uint8_t acceptable_cards;
   uint8_t tapped_card;
diff --git a/src/card_operations/card_pair.c b/src/card_operations/card_pair.c
index 79ff528b5..142511951 100644
--- a/src/card_operations/card_pair.c
+++ b/src/card_operations/card_pair.c
@@ -99,6 +99,37 @@ typedef struct card_pairing_data {
  * STATIC FUNCTION PROTOTYPES
  *****************************************************************************/
 
+/**
+ * @brief Request ATECC to generate signature on the hash with private available
+ * on SLOT-3
+ * @details
+ *
+ * @param [in] hash     - hash to be signed
+ * @param [out] sign    - signature generated
+ *
+ * @return    ATCA_SUCCESS on success, otherwise an error code.
+ *
+ * @see atcab_init(), atcab_sign(), ATCAIfaceCfg, cfg_atecc608a_iface
+ * @since v1.0.0
+ */
+static uint8_t atecc_nfc_sign_hash(const uint8_t *hash, uint8_t *sign);
+
+/**
+ * @brief Request ATECC to perform ECDH operation on pub_key with private key
+ * from SLOT-3
+ * @details
+ *
+ * @param [in] pub_key          - public key to be used for ECDH
+ * @param [out] shared_secret   - shared secret generated
+ *
+ * @return    ATCA_SUCCESS on success, otherwise an error code.
+ *
+ * @see atcab_init(), atcab_ecdh(), atcab_ecdh_ioenc(), ATCAIfaceCfg,
+ * cfg_atecc608a_iface
+ * @since v1.0.0
+ */
+static uint8_t atecc_nfc_ecdh(const uint8_t *pub_key, uint8_t *shared_secret);
+
 /*****************************************************************************
  * STATIC VARIABLES
  *****************************************************************************/
diff --git a/src/card_operations/check_pairing.c b/src/card_operations/check_pairing.c
index b16cd6458..d887457f1 100644
--- a/src/card_operations/check_pairing.c
+++ b/src/card_operations/check_pairing.c
@@ -104,7 +104,6 @@ static void init_tap_card_data(NFC_connection_data *connection_data);
 static void init_tap_card_data(NFC_connection_data *connection_data) {
   memset(connection_data, 0, sizeof(NFC_connection_data));
   connection_data->retries = 5;
-  connection_data->desktop_control = false;
   connection_data->acceptable_cards = ACCEPTABLE_CARDS_ALL;
   memset(connection_data->family_id, 0xff, sizeof(connection_data->family_id));
   memset(connection_data->card_key_id, 0, sizeof(connection_data->card_key_id));

From 551bcc1f782595dd005ce5014796bdc4a3292b4d Mon Sep 17 00:00:00 2001
From: Ujjwal Kumar <31813384+Ujjwal0501@users.noreply.github.com>
Date: Thu, 7 Mar 2024 19:18:51 +0530
Subject: [PATCH 11/32] fix (app): Handle device auth state change in-between
 onboarding

Fixes https://app.clickup.com/t/9002019994/PRF-7078
---
 common/core/core_flow_init.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/common/core/core_flow_init.c b/common/core/core_flow_init.c
index 07fed66dd..afecb734a 100644
--- a/common/core/core_flow_init.c
+++ b/common/core/core_flow_init.c
@@ -125,8 +125,17 @@ engine_ctx_t core_step_engine_ctx = {
 engine_ctx_t *get_core_flow_ctx(void) {
   engine_reset_flow(&core_step_engine_ctx);
 
+  const manager_onboarding_step_t step = onboarding_get_last_step();
   /// Check if onboarding is complete or not
-  if (MANAGER_ONBOARDING_STEP_COMPLETE != onboarding_get_last_step()) {
+  if (MANAGER_ONBOARDING_STEP_COMPLETE != step) {
+    // reset partial-onboarding if auth flag is reset (which can happen via
+    // secure-bootloader). Refer PRF-7078
+    if (MANAGER_ONBOARDING_STEP_VIRGIN_DEVICE < step &&
+        DEVICE_NOT_AUTHENTICATED == get_auth_state()) {
+      // bypass onboarding_set_step_done as we want to force reset
+      save_onboarding_step(MANAGER_ONBOARDING_STEP_VIRGIN_DEVICE);
+    }
+
     // Skip onbaording for infield devices with pairing and/or wallets count is
     // greater than zero
     if ((get_wallet_count() > 0) || (get_keystore_used_count() > 0)) {

From 632bd344009702a5a4057ffb69b7b5e7f06c88ea Mon Sep 17 00:00:00 2001
From: ParnikaGupta <guptaparnika9@gmail.com>
Date: Tue, 12 Mar 2024 13:44:27 +0530
Subject: [PATCH 12/32] feat (debug): Add unit tests debug

---
 .vscode/launch.json | 20 ++++++++++++++++++++
 .vscode/tasks.json  | 12 +++++++++++-
 2 files changed, 31 insertions(+), 1 deletion(-)

diff --git a/.vscode/launch.json b/.vscode/launch.json
index 7ce14a4c4..d5c93d4c9 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -25,6 +25,26 @@
             ],
             "preLaunchTask": "build-simulator"
         },
+        {
+            "name": "Simulator Debug Unit Tests",
+            "type": "cppdbg",
+            "request": "launch",
+            "program": "${workspaceRoot}/bin/Cypherock_Simulator",
+            "args": [],
+            "stopAtEntry": true,
+            "cwd": "${workspaceRoot}/bin",
+            "environment": [],
+            "externalConsole": false,
+            "MIMode": "gdb",
+            "setupCommands": [
+                {
+                    "description": "Enable pretty-printing for gdb",
+                    "text": "-enable-pretty-printing",
+                    "ignoreFailures": true
+                }
+            ],
+            "preLaunchTask": "build-simulator-units-tests"
+        },
         {
             "name": "Main Debug [Launch]",
             "cwd": "${workspaceRoot}",
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
index 1f6aced1a..1a27525db 100644
--- a/.vscode/tasks.json
+++ b/.vscode/tasks.json
@@ -14,7 +14,17 @@
             ],
             "group": "build"
         },
-
+        {
+            "label": "build-simulator-units-tests",
+            "type": "shell",
+            "command": "utilities/build.sh",
+            "args": [
+                "-tunit_tests",
+                "-fmain",
+                "-psimulator",
+            ],
+            "group": "build"
+        },
         {
             "label": "build-device",
         "type": "shell",

From 2f4bb15da85de27af8c337e382bd4cb7a82f3fab Mon Sep 17 00:00:00 2001
From: ParnikaGupta <guptaparnika9@gmail.com>
Date: Tue, 12 Mar 2024 16:12:31 +0530
Subject: [PATCH 13/32] chore (evm): Domain-only and empty unit tests added

---
 tests/apps/evm_app/evm_sign_msg_tests.c | 108 ++++++++++++++++++++++++
 tests/unit_test_lists.c                 |   3 +
 2 files changed, 111 insertions(+)

diff --git a/tests/apps/evm_app/evm_sign_msg_tests.c b/tests/apps/evm_app/evm_sign_msg_tests.c
index 4fe0678c5..afb1f0ac0 100644
--- a/tests/apps/evm_app/evm_sign_msg_tests.c
+++ b/tests/apps/evm_app/evm_sign_msg_tests.c
@@ -98,6 +98,114 @@ TEST_TEAR_DOWN(evm_sign_msg_test) {
   ctx.msg_data = NULL;
 }
 
+TEST(evm_sign_msg_test, evm_sign_msg_test_empty_typed_data_hash) {
+  evm_query_t query = {
+      .which_request = 3,
+      .sign_msg = {
+          .which_request = 1,
+          .initiate = {.derivation_path_count = 5,
+                       .derivation_path = {NON_SEGWIT, ETHEREUM, BITCOIN, 0, 0},
+                       .wallet_id = {},
+                       .message_type = EVM_SIGN_MSG_TYPE_SIGN_TYPED_DATA,
+                       .total_msg_size = 121}}};
+  uint8_t buffer[1024];
+  uint8_t digest[SHA256_DIGEST_LENGTH] = {0};
+  uint8_t expected_digest[SHA256_DIGEST_LENGTH] = {
+      48, 26,  80,  178, 145, 211, 60,  225, 232, 233, 6,
+      78, 63,  106, 108, 81,  217, 2,   236, 34,  137, 43,
+      80, 213, 138, 191, 99,  87,  198, 164, 85,  65};
+
+  // Set init query to ctx buffer
+  memcpy(&ctx.init,
+         &query.sign_msg.initiate,
+         sizeof(evm_sign_msg_initiate_request_t));
+
+  // Prepare typed data from msg_data
+  char *string =
+      "0a3a0a06646f6d61696e1007220c454950373132446f6d61696e322020bcc3f8105eea47"
+      "d067386e42e60246e89393cd61c512edd1e87688890fb914123b0a076d65737361676510"
+      "07220c454950373132446f6d61696e322020bcc3f8105eea47d067386e42e60246e89393"
+      "cd61c512edd1e87688890fb914";
+  ctx.msg_data = buffer;
+  hex_string_to_byte_array(string, ctx.init.total_msg_size * 2, buffer);
+  pb_istream_t istream =
+      pb_istream_from_buffer(ctx.msg_data, ctx.init.total_msg_size);
+  bool result =
+      pb_decode(&istream, EVM_SIGN_TYPED_DATA_STRUCT_FIELDS, &(ctx.typed_data));
+
+#ifdef EVM_SIGN_TYPED_DATA_DISPLAY_TEST
+  // Display the typed data
+  ui_display_node *display_node = NULL;
+  evm_init_typed_data_display_node(&display_node, &(ctx.typed_data));
+  while (NULL != display_node) {
+    core_scroll_page(display_node->title, display_node->value, evm_send_error);
+    display_node = display_node->next;
+  }
+#endif
+  TEST_ASSERT_TRUE(result);
+  TEST_ASSERT_TRUE(evm_get_msg_data_digest(&ctx, digest));
+  TEST_ASSERT_EQUAL_HEX8_ARRAY(expected_digest, digest, SHA256_DIGEST_LENGTH);
+
+  pb_release(EVM_SIGN_TYPED_DATA_STRUCT_FIELDS, &(ctx.typed_data));
+}
+
+TEST(evm_sign_msg_test, evm_sign_msg_test_domain_only_typed_data_hash) {
+  evm_query_t query = {
+      .which_request = 3,
+      .sign_msg = {
+          .which_request = 1,
+          .initiate = {.derivation_path_count = 5,
+                       .derivation_path = {NON_SEGWIT, ETHEREUM, BITCOIN, 0, 0},
+                       .wallet_id = {},
+                       .message_type = EVM_SIGN_MSG_TYPE_SIGN_TYPED_DATA,
+                       .total_msg_size = 355}}};
+  uint8_t buffer[1024];
+  uint8_t digest[SHA256_DIGEST_LENGTH] = {0};
+  uint8_t expected_digest[SHA256_DIGEST_LENGTH] = {
+      116, 118, 39,  55,  210, 218, 151, 77,  201, 234, 163,
+      106, 199, 100, 63,  130, 38,  147, 175, 116, 232, 98,
+      80,  99,  235, 157, 156, 36,  198, 0,   10,  52};
+
+  // Set init query to ctx buffer
+  memcpy(&ctx.init,
+         &query.sign_msg.initiate,
+         sizeof(evm_sign_msg_initiate_request_t));
+
+  // Prepare typed data from msg_data
+  char *string =
+      "0aa3020a06646f6d61696e10071805220c454950373132446f6d61696e3220d87cd6ef79"
+      "d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac564723a1a0a046e616d6510"
+      "0318062206737472696e672a065472657a6f723a220a0776657273696f6e1003180b2206"
+      "737472696e672a0b546573742076302e302e303a360a07636861696e4964182022077569"
+      "6e743235362a200000000000000000000000000000000000000000000000000000000000"
+      "0000013a360a11766572696679696e67436f6e7472616374100518142207616464726573"
+      "732a14cccccccccccccccccccccccccccccccccccccccc3a350a0473616c741002182022"
+      "07627974657333322a200123456789abcdef0123456789abcdef0123456789abcdef0123"
+      "456789abcdef123b0a076d6573736167651007220c454950373132446f6d61696e3220d8"
+      "7cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac56472";
+  ctx.msg_data = buffer;
+  hex_string_to_byte_array(string, ctx.init.total_msg_size * 2, buffer);
+  pb_istream_t istream =
+      pb_istream_from_buffer(ctx.msg_data, ctx.init.total_msg_size);
+  bool result =
+      pb_decode(&istream, EVM_SIGN_TYPED_DATA_STRUCT_FIELDS, &(ctx.typed_data));
+
+#ifdef EVM_SIGN_TYPED_DATA_DISPLAY_TEST
+  // Display the typed data
+  ui_display_node *display_node = NULL;
+  evm_init_typed_data_display_node(&display_node, &(ctx.typed_data));
+  while (NULL != display_node) {
+    core_scroll_page(display_node->title, display_node->value, evm_send_error);
+    display_node = display_node->next;
+  }
+#endif
+  TEST_ASSERT_TRUE(result);
+  TEST_ASSERT_TRUE(evm_get_msg_data_digest(&ctx, digest));
+  TEST_ASSERT_EQUAL_HEX8_ARRAY(expected_digest, digest, SHA256_DIGEST_LENGTH);
+
+  pb_release(EVM_SIGN_TYPED_DATA_STRUCT_FIELDS, &(ctx.typed_data));
+}
+
 TEST(evm_sign_msg_test, evm_sign_msg_test_typed_data_hash) {
   evm_query_t query = {
       .which_request = 3,
diff --git a/tests/unit_test_lists.c b/tests/unit_test_lists.c
index 48e47355a..182410b22 100644
--- a/tests/unit_test_lists.c
+++ b/tests/unit_test_lists.c
@@ -185,6 +185,9 @@ TEST_GROUP_RUNNER(evm_txn_test) {
 }
 
 TEST_GROUP_RUNNER(evm_sign_msg_test) {
+  RUN_TEST_CASE(evm_sign_msg_test, evm_sign_msg_test_empty_typed_data_hash);
+  RUN_TEST_CASE(evm_sign_msg_test,
+                evm_sign_msg_test_domain_only_typed_data_hash);
   RUN_TEST_CASE(evm_sign_msg_test, evm_sign_msg_test_typed_data_hash);
   RUN_TEST_CASE(evm_sign_msg_test, evm_sign_msg_test_personal_sign_hash);
   RUN_TEST_CASE(evm_sign_msg_test, evm_sign_msg_test_eth_sign_hash);

From 7e9613b2e20632655f0e577bbe2fa7770d959f25 Mon Sep 17 00:00:00 2001
From: ParnikaGupta <guptaparnika9@gmail.com>
Date: Tue, 12 Mar 2024 16:13:54 +0530
Subject: [PATCH 14/32] fix (evm): Added domain and message only checks

---
 apps/evm_family/evm_typed_data_helper.c | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/apps/evm_family/evm_typed_data_helper.c b/apps/evm_family/evm_typed_data_helper.c
index d70485e93..5e78a6a5b 100644
--- a/apps/evm_family/evm_typed_data_helper.c
+++ b/apps/evm_family/evm_typed_data_helper.c
@@ -178,7 +178,14 @@ bool evm_get_typed_struct_data_digest(
   uint8_t *data = NULL;
   uint16_t data_size = 0, offset = 0;
 
-  data_size = sizeof(ETH_SIGN_TYPED_DATA_IDENTIFIER) - 1 + HASH_SIZE * 2;
+  data_size = sizeof(ETH_SIGN_TYPED_DATA_IDENTIFIER) - 1;
+  if (0 < (unsigned int)(typed_data->domain).size) {
+    data_size += HASH_SIZE;
+  }
+  if (0 < (unsigned int)(typed_data->message).size) {
+    data_size += HASH_SIZE;
+  }
+
   data = malloc(data_size);
   ASSERT(NULL != data);
   memzero(data, data_size);
@@ -187,9 +194,17 @@ bool evm_get_typed_struct_data_digest(
          sizeof(ETH_SIGN_TYPED_DATA_IDENTIFIER) - 1);
 
   offset += sizeof(ETH_SIGN_TYPED_DATA_IDENTIFIER) - 1;
-  eip712_status = hash_struct(&(typed_data->domain), data + offset);
+  if (0 < (unsigned int)(typed_data->domain).size) {
+    eip712_status = hash_struct(&(typed_data->domain), data + offset);
+  } else {
+    eip712_status = 0;
+  }
   offset += HASH_SIZE;
-  eip712_status |= hash_struct(&(typed_data->message), data + offset);
+  if (0 < (unsigned int)(typed_data->message).size) {
+    eip712_status |= hash_struct(&(typed_data->message), data + offset);
+  } else {
+    eip712_status |= 0;
+  }
 
   if (EIP712_OK == eip712_status) {
     keccak_256(data, data_size, digest_out);

From 6420e013e142b620d3bcec66530e6751ee99cc1c Mon Sep 17 00:00:00 2001
From: ParnikaGupta <guptaparnika9@gmail.com>
Date: Tue, 12 Mar 2024 18:09:19 +0530
Subject: [PATCH 15/32] chore: Added special char for passphrase

---
 common/interfaces/user_interface/ui_common.c     | 4 ++--
 common/interfaces/user_interface/ui_input_text.h | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/common/interfaces/user_interface/ui_common.c b/common/interfaces/user_interface/ui_common.c
index 321247bf6..d1032ac92 100644
--- a/common/interfaces/user_interface/ui_common.c
+++ b/common/interfaces/user_interface/ui_common.c
@@ -64,8 +64,8 @@ const char *ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
 const char *ALPHA_NUMERIC = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
 const char *NUMBERS = "0123456789";
 const char *HEX = "0123456789ABCDEF";
-const char *PASSPHRASE =
-    "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 ";
+const char *PASSPHRASE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0"
+                         "123456789 !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~";
 
 /// Global callback method called when an event is marked over
 void (*ui_mark_event_over)();
diff --git a/common/interfaces/user_interface/ui_input_text.h b/common/interfaces/user_interface/ui_input_text.h
index 3daa998df..262c030b3 100644
--- a/common/interfaces/user_interface/ui_input_text.h
+++ b/common/interfaces/user_interface/ui_input_text.h
@@ -16,7 +16,7 @@
 
 #define MAX_INPUT_SIZE                                                         \
   10    // This is the max number of characters that can be shown in a screen
-#define MAX_CHARACTER_INPUT_LIST 80
+#define MAX_CHARACTER_INPUT_LIST 100
 #define MAX_PIN_SIZE 8
 #define MAX_PASSPHRASE_SIZE 63
 #define MAX_ARRAY_SIZE 512

From 68f47bfa03a9b174db4fffacd006452583c9b214 Mon Sep 17 00:00:00 2001
From: ParnikaGupta <guptaparnika9@gmail.com>
Date: Tue, 12 Mar 2024 18:30:31 +0530
Subject: [PATCH 16/32] chore: Update confirm texts

---
 src/constant_texts.c         | 6 +++++-
 src/settings/factory_reset.c | 2 +-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/constant_texts.c b/src/constant_texts.c
index ef97a6c98..8bd625eee 100644
--- a/src/constant_texts.c
+++ b/src/constant_texts.c
@@ -136,7 +136,8 @@ const char *ui_text_factory_reset_instruction =
     "You will need 2 cards to perform factory reset\nMake sure at least 2 "
     "cards are accessible\nDo you want to proceed?";
 const char *ui_text_confirm_factory_reset =
-    "This will erase all wallets from device. Confirm?";
+    "This will erase all wallets from device\nYour device will reset to "
+    "factory default settings.\nConfirm?";
 const char *ui_text_erasing = "Factory reset done Device will restart";
 const char *ui_text_reset_exit[NUMBER_OF_SLIDES_FACTORY_RESET_EXIT] = {
     "Exiting without factory reset",
@@ -160,6 +161,9 @@ const char *ui_text_syncing_complete = "wallet(s) synced";
 const char *ui_text_clear_device_data_instruction =
     "You will need 2 cards to perform clear device data\nMake sure at least 2 "
     "cards are accessible\nDo you want to proceed?";
+const char *ui_text_confirm_clear_device_data =
+    "This will erase all wallets from device\nYour device will reset and go to "
+    "main menu.\nConfirm?";
 const char *ui_text_erasing_device_data =
     "Device data cleared Device will restart";
 const char
diff --git a/src/settings/factory_reset.c b/src/settings/factory_reset.c
index 51c831564..5c0e4bb0a 100644
--- a/src/settings/factory_reset.c
+++ b/src/settings/factory_reset.c
@@ -339,7 +339,7 @@ void clear_device_data(void) {
     return;
   }
 
-  if (!core_scroll_page(NULL, ui_text_confirm_factory_reset, NULL)) {
+  if (!core_scroll_page(NULL, ui_text_confirm_clear_device_data, NULL)) {
     return;
   }
 

From 7fcb6eafab4fdd5fcb9cc71d743b327881f80134 Mon Sep 17 00:00:00 2001
From: ParnikaGupta <guptaparnika9@gmail.com>
Date: Tue, 12 Mar 2024 18:35:17 +0530
Subject: [PATCH 17/32] chore (fix): Update confirm texts

---
 src/constant_texts.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/constant_texts.h b/src/constant_texts.h
index f659f1fbe..539ba3593 100644
--- a/src/constant_texts.h
+++ b/src/constant_texts.h
@@ -132,6 +132,7 @@ extern const char *ui_text_syncing_complete;
 
 // Clear user data text
 extern const char *ui_text_clear_device_data_instruction;
+extern const char *ui_text_confirm_clear_device_data;
 extern const char *ui_text_erasing_device_data;
 extern const char
     *ui_text_clear_wallet_data_exit[NUMBER_OF_SLIDES_FACTORY_RESET_EXIT];

From 73983a09488dee14a27d7c7ce0f6d6b9de209f70 Mon Sep 17 00:00:00 2001
From: ParnikaGupta <guptaparnika9@gmail.com>
Date: Wed, 13 Mar 2024 18:14:11 +0530
Subject: [PATCH 18/32] chore: Removed typecast

---
 apps/evm_family/evm_typed_data_helper.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/apps/evm_family/evm_typed_data_helper.c b/apps/evm_family/evm_typed_data_helper.c
index 5e78a6a5b..b4d5462cc 100644
--- a/apps/evm_family/evm_typed_data_helper.c
+++ b/apps/evm_family/evm_typed_data_helper.c
@@ -179,10 +179,10 @@ bool evm_get_typed_struct_data_digest(
   uint16_t data_size = 0, offset = 0;
 
   data_size = sizeof(ETH_SIGN_TYPED_DATA_IDENTIFIER) - 1;
-  if (0 < (unsigned int)(typed_data->domain).size) {
+  if (0 < typed_data->domain.size) {
     data_size += HASH_SIZE;
   }
-  if (0 < (unsigned int)(typed_data->message).size) {
+  if (0 < typed_data->message.size) {
     data_size += HASH_SIZE;
   }
 
@@ -194,13 +194,13 @@ bool evm_get_typed_struct_data_digest(
          sizeof(ETH_SIGN_TYPED_DATA_IDENTIFIER) - 1);
 
   offset += sizeof(ETH_SIGN_TYPED_DATA_IDENTIFIER) - 1;
-  if (0 < (unsigned int)(typed_data->domain).size) {
+  if (0 < typed_data->domain.size) {
     eip712_status = hash_struct(&(typed_data->domain), data + offset);
   } else {
     eip712_status = 0;
   }
   offset += HASH_SIZE;
-  if (0 < (unsigned int)(typed_data->message).size) {
+  if (0 < typed_data->message.size) {
     eip712_status |= hash_struct(&(typed_data->message), data + offset);
   } else {
     eip712_status |= 0;

From 140692e97257aa97514b334a0a267dff42515514 Mon Sep 17 00:00:00 2001
From: ParnikaGupta <guptaparnika9@gmail.com>
Date: Sat, 16 Mar 2024 18:42:35 +0530
Subject: [PATCH 19/32] feat(font): Added verdana font for symbols

---
 common/interfaces/user_interface/ui_common.c |    2 +-
 common/lv_conf.h                             |    5 +-
 common/lvgl/src/lv_font/lv_font.h            |    4 +
 common/lvgl/src/lv_font/lv_font.mk           |    1 +
 common/lvgl/src/lv_font/lv_font_verdana_11.c | 1436 ++++++++++++++++++
 5 files changed, 1445 insertions(+), 3 deletions(-)
 create mode 100644 common/lvgl/src/lv_font/lv_font_verdana_11.c

diff --git a/common/interfaces/user_interface/ui_common.c b/common/interfaces/user_interface/ui_common.c
index d1032ac92..e52a1b757 100644
--- a/common/interfaces/user_interface/ui_common.c
+++ b/common/interfaces/user_interface/ui_common.c
@@ -65,7 +65,7 @@ const char *ALPHA_NUMERIC = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
 const char *NUMBERS = "0123456789";
 const char *HEX = "0123456789ABCDEF";
 const char *PASSPHRASE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0"
-                         "123456789 !\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~";
+                         "123456789 !\"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~";
 
 /// Global callback method called when an event is marked over
 void (*ui_mark_event_over)();
diff --git a/common/lv_conf.h b/common/lv_conf.h
index eb4d7f837..c1e0926ce 100644
--- a/common/lv_conf.h
+++ b/common/lv_conf.h
@@ -266,10 +266,11 @@ typedef void * lv_indev_drv_user_data_t;            /*Type of user data in the i
 
 /* Robot fonts with bpp = 4
  * https://fonts.google.com/specimen/Roboto  */
-#define LV_FONT_ROBOTO_12    1
+#define LV_FONT_ROBOTO_12    0
 #define LV_FONT_ROBOTO_16    0
 #define LV_FONT_ROBOTO_22    0
 #define LV_FONT_ROBOTO_28    0
+#define LV_FONT_VERDANA_11   1
 
 /*Pixel perfect monospace font
  * http://pelulamu.net/unscii/ */
@@ -284,7 +285,7 @@ typedef void * lv_indev_drv_user_data_t;            /*Type of user data in the i
 #define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(my_font) LV_FONT_DECLARE(my_logo) LV_FONT_DECLARE(nfc_logo)
 
 /*Always set a default font from the built-in fonts*/
-#define LV_FONT_DEFAULT        &lv_font_roboto_12
+#define LV_FONT_DEFAULT        &lv_font_verdana_11
 
 /* Enable it if you have fonts with a lot of characters.
  * The limit depends on the font size, font face and bpp
diff --git a/common/lvgl/src/lv_font/lv_font.h b/common/lvgl/src/lv_font/lv_font.h
index e639a54a3..07a26353f 100644
--- a/common/lvgl/src/lv_font/lv_font.h
+++ b/common/lvgl/src/lv_font/lv_font.h
@@ -138,6 +138,10 @@ LV_FONT_DECLARE(lv_font_roboto_28)
 LV_FONT_DECLARE(lv_font_unscii_8)
 #endif
 
+#if LV_FONT_VERDANA_11
+LV_FONT_DECLARE(lv_font_verdana_11)
+#endif
+
 /*Declare the custom (user defined) fonts*/
 #ifdef LV_FONT_CUSTOM_DECLARE
 LV_FONT_CUSTOM_DECLARE
diff --git a/common/lvgl/src/lv_font/lv_font.mk b/common/lvgl/src/lv_font/lv_font.mk
index 9f7918cf3..c8b95eba6 100644
--- a/common/lvgl/src/lv_font/lv_font.mk
+++ b/common/lvgl/src/lv_font/lv_font.mk
@@ -4,6 +4,7 @@ SRC_FILES += $(OLED_DIR)/lvgl/src/lv_font/lv_font_roboto_12.c
 SRC_FILES += $(OLED_DIR)/lvgl/src/lv_font/lv_font_roboto_16.c
 SRC_FILES += $(OLED_DIR)/lvgl/src/lv_font/lv_font_roboto_22.c
 SRC_FILES += $(OLED_DIR)/lvgl/src/lv_font/lv_font_roboto_28.c
+SRC_FILES += $(OLED_DIR)/lvgl/src/lv_font/lv_font_verdana_11.c
 SRC_FILES += $(OLED_DIR)/lvgl/src/lv_font/lv_font_unscii_8.c
 SRC_FILES += $(OLED_DIR)/lvgl/src/lv_font/my_logo.c
 SRC_FILES += $(OLED_DIR)/lvgl/src/lv_font/nfc_logo.c
diff --git a/common/lvgl/src/lv_font/lv_font_verdana_11.c b/common/lvgl/src/lv_font/lv_font_verdana_11.c
new file mode 100644
index 000000000..e89860b74
--- /dev/null
+++ b/common/lvgl/src/lv_font/lv_font_verdana_11.c
@@ -0,0 +1,1436 @@
+/*******************************************************************************
+ * Size: 11 px
+ * Bpp: 4
+ * Opts: --no-compress --no-prefilter --bpp 4 --size 11 --font verdana.ttf -r 0x20-0x7F --font FontAwesome.ttf -r 61441,61448,61451,61452,61453,61457,61459,61460,61461,61465,61468,61473,61478,61479,61480,61502,61504,61512,61515,61516,61517,61521,61522,61523,61524,61543,61544,61553,61556,61559,61560,61561,61563,61587,61589,61636,61637,61639,61671,61683,61724,61732,61787,61931,62016,62017,62018,62019,62020,62099 --format lvgl -o lv_font_verdana_11.c --force-fast-kern-format
+ ******************************************************************************/
+
+#ifdef LV_LVGL_H_INCLUDE_SIMPLE
+#include "lvgl.h"
+#else
+#include "lvgl/lvgl.h"
+#endif
+
+#ifndef LV_FONT_VERDANA_11
+#define LV_FONT_VERDANA_11 1
+#endif
+
+#if LV_FONT_VERDANA_11
+
+/*-----------------
+ *    BITMAPS
+ *----------------*/
+
+/*Store the image of the glyphs*/
+static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
+    /* U+0020 " " */
+
+    /* U+0021 "!" */
+    0x6c, 0x6b, 0x5b, 0x5a, 0x5a, 0x26, 0x1, 0x6b,
+
+    /* U+0022 "\"" */
+    0xf, 0xf, 0x10, 0xf0, 0xe0, 0xc, 0xc, 0x0,
+    0x0, 0x0,
+
+    /* U+0023 "#" */
+    0x0, 0x1a, 0xb, 0x0, 0x5, 0x62, 0x80, 0x3b,
+    0xec, 0xdc, 0xa0, 0xa, 0xa, 0x0, 0x0, 0xa0,
+    0xb0, 0xa, 0xcd, 0xbd, 0xb3, 0x8, 0x26, 0x40,
+    0x0, 0xb0, 0x91, 0x0,
+
+    /* U+0024 "$" */
+    0x0, 0xa, 0x0, 0x0, 0x3b, 0xec, 0x90, 0xe,
+    0x2a, 0x4, 0x0, 0xf3, 0xa0, 0x0, 0x4, 0xcf,
+    0xb5, 0x0, 0x0, 0xa3, 0xe2, 0x13, 0xa, 0xd,
+    0x11, 0xcc, 0xeb, 0x50, 0x0, 0xa, 0x0, 0x0,
+    0x0, 0xa0, 0x0,
+
+    /* U+0025 "%" */
+    0x7, 0xbc, 0x20, 0xa, 0x30, 0x0, 0x1d, 0x5,
+    0x90, 0x3a, 0x0, 0x0, 0x2c, 0x3, 0xb0, 0xb2,
+    0x0, 0x0, 0xd, 0x6, 0x94, 0x92, 0xbb, 0x40,
+    0x5, 0xba, 0x1c, 0x1b, 0x31, 0xd0, 0x0, 0x0,
+    0x49, 0xe, 0x10, 0xe0, 0x0, 0x0, 0xc1, 0xc,
+    0x20, 0xd0, 0x0, 0x5, 0x80, 0x4, 0xaa, 0x50,
+
+    /* U+0026 "&" */
+    0x4, 0xbb, 0xa0, 0x0, 0x0, 0xe2, 0xd, 0x40,
+    0x0, 0xd, 0x61, 0xd1, 0x0, 0x0, 0x3f, 0xd3,
+    0x1b, 0x0, 0x1d, 0x29, 0xa2, 0xc0, 0x5, 0xc0,
+    0x9, 0xd8, 0x0, 0x3e, 0x10, 0x1e, 0xb0, 0x0,
+    0x6c, 0xaa, 0x27, 0xc0,
+
+    /* U+0027 "'" */
+    0x1f, 0x0, 0xf0, 0xd, 0x0, 0x0,
+
+    /* U+0028 "(" */
+    0x0, 0x6b, 0x0, 0x1e, 0x10, 0x9, 0x70, 0x0,
+    0xd2, 0x0, 0xf, 0x0, 0x0, 0xf0, 0x0, 0xd,
+    0x10, 0x0, 0x97, 0x0, 0x1, 0xd0, 0x0, 0x6,
+    0xb0,
+
+    /* U+0029 ")" */
+    0xb, 0x60, 0x0, 0x1d, 0x10, 0x0, 0x78, 0x0,
+    0x2, 0xd0, 0x0, 0xf, 0x0, 0x0, 0xf0, 0x0,
+    0x2d, 0x0, 0x7, 0x80, 0x1, 0xe1, 0x0, 0xb6,
+    0x0,
+
+    /* U+002A "*" */
+    0x1, 0xa, 0x1, 0x0, 0x98, 0xb8, 0x90, 0x0,
+    0x8f, 0x80, 0x0, 0xa5, 0xa5, 0xa0, 0x0, 0x8,
+    0x0, 0x0,
+
+    /* U+002B "+" */
+    0x0, 0x7, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0,
+    0xe, 0x0, 0xb, 0xdd, 0xfd, 0xdb, 0x0, 0xe,
+    0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe, 0x0,
+    0x0,
+
+    /* U+002C "," */
+    0x2, 0x70, 0x8, 0xa0, 0xc, 0x30, 0x1c, 0x0,
+
+    /* U+002D "-" */
+    0x2f, 0xff, 0x20,
+
+    /* U+002E "." */
+    0x44, 0xaa,
+
+    /* U+002F "/" */
+    0x0, 0x0, 0x86, 0x0, 0x0, 0xd0, 0x0, 0x5,
+    0x90, 0x0, 0xb, 0x30, 0x0, 0x2c, 0x0, 0x0,
+    0x86, 0x0, 0x0, 0xd0, 0x0, 0x5, 0x90, 0x0,
+    0xc, 0x20, 0x0, 0x6, 0x0, 0x0,
+
+    /* U+0030 "0" */
+    0x2, 0xce, 0xc2, 0x0, 0xd5, 0x5, 0xc0, 0x2f,
+    0x0, 0xe, 0x13, 0xd0, 0x0, 0xd3, 0x3d, 0x0,
+    0xd, 0x32, 0xe0, 0x0, 0xe2, 0xd, 0x50, 0x5d,
+    0x0, 0x2c, 0xdc, 0x20,
+
+    /* U+0031 "1" */
+    0x0, 0xd3, 0x5, 0xdf, 0x30, 0x0, 0xd3, 0x0,
+    0xd, 0x30, 0x0, 0xd3, 0x0, 0xd, 0x30, 0x0,
+    0xd3, 0x6, 0xcf, 0xda,
+
+    /* U+0032 "2" */
+    0xa, 0xee, 0xc2, 0x0, 0x60, 0x7, 0xc0, 0x0,
+    0x0, 0x3e, 0x0, 0x0, 0x9, 0x90, 0x0, 0x7,
+    0xc0, 0x0, 0x7, 0xc1, 0x0, 0xa, 0xa0, 0x0,
+    0x2, 0xfe, 0xee, 0xe4,
+
+    /* U+0033 "3" */
+    0x8, 0xde, 0xd5, 0x0, 0x50, 0x4, 0xe0, 0x0,
+    0x0, 0x6b, 0x0, 0x3, 0xed, 0x20, 0x0, 0x0,
+    0x4e, 0x0, 0x0, 0x0, 0xf1, 0x15, 0x0, 0x6e,
+    0x0, 0xbe, 0xec, 0x30,
+
+    /* U+0034 "4" */
+    0x0, 0x2, 0xf4, 0x0, 0x1, 0xdd, 0x40, 0x0,
+    0xb4, 0xc4, 0x0, 0x97, 0xc, 0x40, 0x6a, 0x0,
+    0xc4, 0x8, 0xdd, 0xdf, 0xd6, 0x0, 0x0, 0xc4,
+    0x0, 0x0, 0xc, 0x40,
+
+    /* U+0035 "5" */
+    0xaf, 0xee, 0xe2, 0xa6, 0x0, 0x0, 0xa6, 0x0,
+    0x0, 0xae, 0xec, 0x40, 0x0, 0x5, 0xf0, 0x0,
+    0x0, 0xe2, 0x50, 0x5, 0xe0, 0xbe, 0xec, 0x30,
+
+    /* U+0036 "6" */
+    0x0, 0x5d, 0xe9, 0x0, 0x7c, 0x20, 0x0, 0xf,
+    0x20, 0x0, 0x2, 0xfa, 0xdd, 0x50, 0x3e, 0x10,
+    0x2e, 0x22, 0xe0, 0x0, 0xb5, 0xd, 0x50, 0x1e,
+    0x20, 0x2b, 0xdc, 0x40,
+
+    /* U+0037 "7" */
+    0x2e, 0xee, 0xef, 0x40, 0x0, 0x0, 0xe2, 0x0,
+    0x0, 0x79, 0x0, 0x0, 0x1e, 0x10, 0x0, 0x9,
+    0x80, 0x0, 0x2, 0xe1, 0x0, 0x0, 0xa7, 0x0,
+    0x0, 0x3e, 0x0, 0x0,
+
+    /* U+0038 "8" */
+    0x4, 0xcc, 0xc4, 0x0, 0xf1, 0x2, 0xf0, 0xf,
+    0x40, 0x1f, 0x0, 0x5f, 0xbb, 0x40, 0xc, 0x43,
+    0xac, 0x4, 0xc0, 0x0, 0xd4, 0x2e, 0x20, 0x1e,
+    0x20, 0x5c, 0xcc, 0x40,
+
+    /* U+0039 "9" */
+    0x4, 0xdd, 0xb2, 0x2, 0xe2, 0x5, 0xc0, 0x5b,
+    0x0, 0xe, 0x22, 0xe2, 0x1, 0xe3, 0x5, 0xdd,
+    0xaf, 0x20, 0x0, 0x2, 0xe0, 0x0, 0x1, 0xc6,
+    0x0, 0x9e, 0xd5, 0x0,
+
+    /* U+003A ":" */
+    0x2f, 0x21, 0x71, 0x0, 0x0, 0x0, 0x17, 0x12,
+    0xf2,
+
+    /* U+003B ";" */
+    0x2f, 0x21, 0x71, 0x0, 0x0, 0x0, 0x7, 0x31,
+    0xf1, 0x5a, 0xa, 0x30,
+
+    /* U+003C "<" */
+    0x0, 0x0, 0x0, 0x20, 0x0, 0x18, 0xd5, 0x3,
+    0xac, 0x60, 0x8, 0xf5, 0x0, 0x0, 0x6, 0xda,
+    0x30, 0x0, 0x0, 0x4b, 0xc4, 0x0, 0x0, 0x2,
+    0x40,
+
+    /* U+003D "=" */
+    0x9d, 0xdd, 0xdd, 0x90, 0x0, 0x0, 0x0, 0x9d,
+    0xdd, 0xdd, 0x90,
+
+    /* U+003E ">" */
+    0x20, 0x0, 0x0, 0x5, 0xd8, 0x10, 0x0, 0x0,
+    0x6c, 0xa3, 0x0, 0x0, 0x5, 0xf8, 0x0, 0x3a,
+    0xc6, 0x4, 0xcb, 0x40, 0x0, 0x42, 0x0, 0x0,
+    0x0,
+
+    /* U+003F "?" */
+    0x1c, 0xee, 0x80, 0x3, 0x1, 0xd4, 0x0, 0x0,
+    0xc4, 0x0, 0x8, 0xc0, 0x0, 0xb8, 0x0, 0x0,
+    0xa2, 0x0, 0x0, 0x10, 0x0, 0x0, 0xd4, 0x0,
+
+    /* U+0040 "@" */
+    0x0, 0x7, 0xbb, 0xb9, 0x10, 0x0, 0xb, 0x50,
+    0x0, 0x2c, 0x20, 0x8, 0x42, 0xcc, 0xc8, 0x2a,
+    0x0, 0xc0, 0xb4, 0x5, 0x80, 0xc0, 0xb, 0xd,
+    0x0, 0x58, 0xb, 0x0, 0xc0, 0xa5, 0x8, 0x80,
+    0xb0, 0x8, 0x51, 0xab, 0x7b, 0x95, 0x0, 0xb,
+    0x60, 0x0, 0x0, 0x0, 0x0, 0x5, 0xbb, 0xb5,
+    0x0, 0x0,
+
+    /* U+0041 "A" */
+    0x0, 0x2f, 0xa0, 0x0, 0x0, 0x7a, 0xf0, 0x0,
+    0x0, 0xd3, 0xb6, 0x0, 0x3, 0xd0, 0x6b, 0x0,
+    0x9, 0x80, 0x1f, 0x10, 0xe, 0xee, 0xef, 0x70,
+    0x5c, 0x0, 0x5, 0xd0, 0xa6, 0x0, 0x0, 0xe3,
+
+    /* U+0042 "B" */
+    0xee, 0xee, 0xa0, 0xe, 0x20, 0xd, 0x50, 0xe2,
+    0x1, 0xd2, 0xe, 0xdd, 0xfc, 0x20, 0xe2, 0x0,
+    0x6d, 0xe, 0x20, 0x0, 0xf0, 0xe2, 0x0, 0x6d,
+    0xe, 0xee, 0xeb, 0x20,
+
+    /* U+0043 "C" */
+    0x0, 0x7d, 0xee, 0x91, 0x9, 0xb1, 0x1, 0x73,
+    0x2f, 0x10, 0x0, 0x0, 0x5c, 0x0, 0x0, 0x0,
+    0x5c, 0x0, 0x0, 0x0, 0x2f, 0x10, 0x0, 0x0,
+    0xa, 0xb1, 0x1, 0x73, 0x0, 0x8d, 0xee, 0x91,
+
+    /* U+0044 "D" */
+    0xee, 0xee, 0x91, 0xe, 0x20, 0x17, 0xe1, 0xe2,
+    0x0, 0x9, 0x8e, 0x20, 0x0, 0x5c, 0xe2, 0x0,
+    0x5, 0xce, 0x20, 0x0, 0x98, 0xe2, 0x0, 0x7e,
+    0x1e, 0xee, 0xe9, 0x10,
+
+    /* U+0045 "E" */
+    0xee, 0xee, 0xe5, 0xe2, 0x0, 0x0, 0xe2, 0x0,
+    0x0, 0xee, 0xee, 0xe4, 0xe2, 0x0, 0x0, 0xe2,
+    0x0, 0x0, 0xe2, 0x0, 0x0, 0xee, 0xee, 0xe5,
+
+    /* U+0046 "F" */
+    0xee, 0xee, 0xe2, 0xe2, 0x0, 0x0, 0xe2, 0x0,
+    0x0, 0xee, 0xee, 0x80, 0xe2, 0x0, 0x0, 0xe2,
+    0x0, 0x0, 0xe2, 0x0, 0x0, 0xe2, 0x0, 0x0,
+
+    /* U+0047 "G" */
+    0x0, 0x7d, 0xee, 0xb4, 0x9, 0xc2, 0x0, 0x48,
+    0x2f, 0x10, 0x0, 0x0, 0x5c, 0x0, 0x0, 0x0,
+    0x5c, 0x0, 0x6e, 0xeb, 0x2f, 0x10, 0x0, 0x5c,
+    0x9, 0xc2, 0x0, 0x6c, 0x0, 0x6c, 0xed, 0xb4,
+
+    /* U+0048 "H" */
+    0xe2, 0x0, 0xe, 0x3e, 0x20, 0x0, 0xe3, 0xe2,
+    0x0, 0xe, 0x3e, 0xee, 0xee, 0xf3, 0xe2, 0x0,
+    0xe, 0x3e, 0x20, 0x0, 0xe3, 0xe2, 0x0, 0xe,
+    0x3e, 0x20, 0x0, 0xe3,
+
+    /* U+0049 "I" */
+    0x3d, 0xfb, 0x3, 0xd0, 0x3, 0xd0, 0x3, 0xd0,
+    0x3, 0xd0, 0x3, 0xd0, 0x3, 0xd0, 0x3d, 0xfb,
+
+    /* U+004A "J" */
+    0x9, 0xdf, 0x0, 0x1f, 0x0, 0x1f, 0x0, 0x1f,
+    0x0, 0x1f, 0x0, 0x1f, 0x0, 0x4d, 0xae, 0xd4,
+
+    /* U+004B "K" */
+    0xe2, 0x0, 0x6c, 0xe, 0x20, 0x5d, 0x10, 0xe2,
+    0x4d, 0x10, 0xe, 0x6e, 0x20, 0x0, 0xed, 0xe6,
+    0x0, 0xe, 0x32, 0xe4, 0x0, 0xe2, 0x3, 0xe3,
+    0xe, 0x20, 0x5, 0xe2,
+
+    /* U+004C "L" */
+    0xe2, 0x0, 0x0, 0xe2, 0x0, 0x0, 0xe2, 0x0,
+    0x0, 0xe2, 0x0, 0x0, 0xe2, 0x0, 0x0, 0xe2,
+    0x0, 0x0, 0xe2, 0x0, 0x0, 0xee, 0xee, 0xe2,
+
+    /* U+004D "M" */
+    0xec, 0x0, 0x8, 0xf3, 0xed, 0x30, 0xd, 0xe3,
+    0xe5, 0xb0, 0x77, 0xd3, 0xe1, 0xc3, 0xd0, 0xd3,
+    0xe1, 0x5e, 0x80, 0xd3, 0xe1, 0xb, 0x10, 0xd3,
+    0xe1, 0x0, 0x0, 0xd3, 0xe1, 0x0, 0x0, 0xd3,
+
+    /* U+004E "N" */
+    0xee, 0x0, 0xd, 0x2e, 0xa8, 0x0, 0xd2, 0xe2,
+    0xe1, 0xd, 0x2e, 0x18, 0x90, 0xd2, 0xe1, 0x1e,
+    0x2d, 0x2e, 0x10, 0x7a, 0xd2, 0xe1, 0x0, 0xee,
+    0x2e, 0x10, 0x6, 0xf2,
+
+    /* U+004F "O" */
+    0x0, 0x8e, 0xed, 0x40, 0x0, 0xaa, 0x10, 0x3e,
+    0x40, 0x2f, 0x0, 0x0, 0x5c, 0x4, 0xc0, 0x0,
+    0x2, 0xf0, 0x4c, 0x0, 0x0, 0x2f, 0x2, 0xf0,
+    0x0, 0x5, 0xd0, 0xa, 0xa1, 0x3, 0xe4, 0x0,
+    0x8, 0xee, 0xd5, 0x0,
+
+    /* U+0050 "P" */
+    0xee, 0xed, 0x50, 0xe2, 0x3, 0xf1, 0xe2, 0x0,
+    0xd4, 0xe2, 0x5, 0xe1, 0xee, 0xeb, 0x30, 0xe2,
+    0x0, 0x0, 0xe2, 0x0, 0x0, 0xe2, 0x0, 0x0,
+
+    /* U+0051 "Q" */
+    0x0, 0x8e, 0xed, 0x40, 0x0, 0xaa, 0x10, 0x3e,
+    0x40, 0x2f, 0x0, 0x0, 0x5c, 0x4, 0xc0, 0x0,
+    0x2, 0xf0, 0x4c, 0x0, 0x0, 0x2f, 0x2, 0xf0,
+    0x0, 0x5, 0xc0, 0xa, 0xa1, 0x3, 0xe5, 0x0,
+    0x8, 0xee, 0xf5, 0x0, 0x0, 0x0, 0x1f, 0x10,
+    0x0, 0x0, 0x0, 0x7e, 0xe2,
+
+    /* U+0052 "R" */
+    0xee, 0xed, 0x60, 0xe, 0x20, 0x2f, 0x20, 0xe2,
+    0x0, 0xd4, 0xe, 0x20, 0x4e, 0x0, 0xed, 0xee,
+    0x20, 0xe, 0x20, 0xc7, 0x0, 0xe2, 0x1, 0xe5,
+    0xe, 0x20, 0x2, 0xe4,
+
+    /* U+0053 "S" */
+    0x3, 0xce, 0xec, 0x41, 0xf3, 0x0, 0x45, 0x2f,
+    0x0, 0x0, 0x0, 0xbe, 0x97, 0x20, 0x0, 0x37,
+    0x9e, 0x70, 0x0, 0x0, 0x4d, 0x38, 0x10, 0x9,
+    0xa1, 0xae, 0xed, 0x90,
+
+    /* U+0054 "T" */
+    0xee, 0xef, 0xee, 0xb0, 0x2, 0xe0, 0x0, 0x0,
+    0x2e, 0x0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x2e,
+    0x0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x2e, 0x0,
+    0x0, 0x2, 0xe0, 0x0,
+
+    /* U+0055 "U" */
+    0xf, 0x0, 0x0, 0xf1, 0xf, 0x0, 0x0, 0xf1,
+    0xf, 0x0, 0x0, 0xf1, 0xf, 0x0, 0x0, 0xf1,
+    0xf, 0x0, 0x0, 0xf1, 0xf, 0x10, 0x0, 0xf0,
+    0xa, 0x80, 0x8, 0xb0, 0x1, 0xae, 0xeb, 0x10,
+
+    /* U+0056 "V" */
+    0xa7, 0x0, 0x0, 0xe3, 0x5d, 0x0, 0x3, 0xd0,
+    0xe, 0x20, 0x9, 0x70, 0x9, 0x80, 0xe, 0x10,
+    0x3, 0xe0, 0x5b, 0x0, 0x0, 0xd3, 0xa6, 0x0,
+    0x0, 0x7a, 0xe0, 0x0, 0x0, 0x2f, 0xa0, 0x0,
+
+    /* U+0057 "W" */
+    0x5b, 0x0, 0x3f, 0x10, 0xc, 0x31, 0xf0, 0x7,
+    0xe5, 0x0, 0xf0, 0xd, 0x30, 0xb6, 0x90, 0x4b,
+    0x0, 0x97, 0xd, 0xd, 0x8, 0x70, 0x5, 0xb3,
+    0xa0, 0xc1, 0xc3, 0x0, 0x1f, 0x76, 0x8, 0x6e,
+    0x0, 0x0, 0xce, 0x20, 0x4d, 0xa0, 0x0, 0x8,
+    0xe0, 0x0, 0xf6, 0x0,
+
+    /* U+0058 "X" */
+    0x3e, 0x10, 0x5, 0xc0, 0x8, 0xa0, 0x1e, 0x20,
+    0x0, 0xd4, 0xa6, 0x0, 0x0, 0x3f, 0xb0, 0x0,
+    0x0, 0x3e, 0xc0, 0x0, 0x0, 0xd3, 0xb7, 0x0,
+    0x9, 0x80, 0x1e, 0x20, 0x4d, 0x0, 0x6, 0xc0,
+
+    /* U+0059 "Y" */
+    0xa8, 0x0, 0xb, 0x61, 0xe2, 0x5, 0xc0, 0x6,
+    0xb0, 0xd2, 0x0, 0xc, 0xc8, 0x0, 0x0, 0x4f,
+    0x0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x2e, 0x0,
+    0x0, 0x2, 0xe0, 0x0,
+
+    /* U+005A "Z" */
+    0x2e, 0xee, 0xef, 0xc0, 0x0, 0x0, 0xd5, 0x0,
+    0x0, 0xa8, 0x0, 0x0, 0x7b, 0x0, 0x0, 0x4d,
+    0x10, 0x0, 0x2e, 0x20, 0x0, 0xd, 0x50, 0x0,
+    0x5, 0xfe, 0xee, 0xed,
+
+    /* U+005B "[" */
+    0xbc, 0xc0, 0xb3, 0x0, 0xb3, 0x0, 0xb3, 0x0,
+    0xb3, 0x0, 0xb3, 0x0, 0xb3, 0x0, 0xb3, 0x0,
+    0xb3, 0x0, 0xbc, 0xc0,
+
+    /* U+005C "\\" */
+    0x68, 0x0, 0x0, 0xd, 0x0, 0x0, 0x9, 0x50,
+    0x0, 0x3, 0xb0, 0x0, 0x0, 0xc2, 0x0, 0x0,
+    0x68, 0x0, 0x0, 0xd, 0x0, 0x0, 0x9, 0x50,
+    0x0, 0x2, 0xc0, 0x0, 0x0, 0x60,
+
+    /* U+005D "]" */
+    0xc, 0xcb, 0x0, 0x3b, 0x0, 0x3b, 0x0, 0x3b,
+    0x0, 0x3b, 0x0, 0x3b, 0x0, 0x3b, 0x0, 0x3b,
+    0x0, 0x3b, 0xc, 0xcb,
+
+    /* U+005E "^" */
+    0x0, 0x4f, 0x40, 0x0, 0x1d, 0x3d, 0x10, 0xc,
+    0x40, 0x4c, 0x9, 0x70, 0x0, 0x79,
+
+    /* U+005F "_" */
+    0xa, 0xaa, 0xaa, 0xaa, 0x0,
+
+    /* U+0060 "`" */
+    0xc, 0x50, 0x2, 0xc0,
+
+    /* U+0061 "a" */
+    0xb, 0xed, 0xb1, 0x2, 0x0, 0x88, 0x5, 0xac,
+    0xda, 0x4d, 0x20, 0x5a, 0x5a, 0x0, 0x8a, 0xb,
+    0xcc, 0xba,
+
+    /* U+0062 "b" */
+    0xf0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0xf8, 0xee,
+    0x50, 0xf5, 0x3, 0xe0, 0xf0, 0x0, 0xd3, 0xf0,
+    0x0, 0xd3, 0xf0, 0x4, 0xd0, 0xfb, 0xdc, 0x30,
+
+    /* U+0063 "c" */
+    0x4, 0xcd, 0xd4, 0x1e, 0x20, 0x13, 0x5a, 0x0,
+    0x0, 0x5a, 0x0, 0x0, 0x1e, 0x20, 0x13, 0x4,
+    0xdd, 0xd4,
+
+    /* U+0064 "d" */
+    0x0, 0x0, 0x2d, 0x0, 0x0, 0x2d, 0x4, 0xde,
+    0xcd, 0x1e, 0x30, 0x3d, 0x5b, 0x0, 0x2d, 0x5a,
+    0x0, 0x2d, 0x2e, 0x0, 0x4d, 0x6, 0xdb, 0xad,
+
+    /* U+0065 "e" */
+    0x4, 0xcc, 0xc3, 0x1, 0xc1, 0x3, 0xd0, 0x5e,
+    0xcc, 0xcd, 0x5, 0xb0, 0x0, 0x0, 0x1e, 0x40,
+    0x5, 0x0, 0x4c, 0xdd, 0x90,
+
+    /* U+0066 "f" */
+    0x5, 0xdd, 0x20, 0xe1, 0x0, 0x8f, 0xdb, 0x0,
+    0xf1, 0x0, 0xf, 0x10, 0x0, 0xf1, 0x0, 0xf,
+    0x10, 0x0, 0xf1, 0x0,
+
+    /* U+0067 "g" */
+    0x4, 0xde, 0xcd, 0x1e, 0x30, 0x3d, 0x5b, 0x0,
+    0x2d, 0x5a, 0x0, 0x2d, 0x2e, 0x10, 0x6d, 0x7,
+    0xed, 0xac, 0x1, 0x0, 0x69, 0xa, 0xed, 0xa1,
+
+    /* U+0068 "h" */
+    0xf0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0xf7, 0xde,
+    0x50, 0xf5, 0x3, 0xe0, 0xf0, 0x0, 0xf0, 0xf0,
+    0x0, 0xf0, 0xf0, 0x0, 0xf0, 0xf0, 0x0, 0xf0,
+
+    /* U+0069 "i" */
+    0x1f, 0x10, 0x0, 0xf, 0x0, 0xf0, 0xf, 0x0,
+    0xf0, 0xf, 0x0, 0xf0,
+
+    /* U+006A "j" */
+    0x0, 0x4d, 0x0, 0x0, 0x6, 0xdc, 0x0, 0x3c,
+    0x0, 0x3c, 0x0, 0x3c, 0x0, 0x3c, 0x0, 0x3c,
+    0x0, 0x6b, 0x4e, 0xd3,
+
+    /* U+006B "k" */
+    0xf0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0xf0, 0x8,
+    0xb0, 0xf0, 0x7b, 0x0, 0xf8, 0xb0, 0x0, 0xfa,
+    0xe3, 0x0, 0xf0, 0x4e, 0x20, 0xf0, 0x5, 0xd1,
+
+    /* U+006C "l" */
+    0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0,
+
+    /* U+006D "m" */
+    0xf9, 0xcd, 0x6a, 0xcd, 0x2f, 0x30, 0x4e, 0x20,
+    0x6a, 0xf0, 0x2, 0xd0, 0x4, 0xbf, 0x0, 0x2e,
+    0x0, 0x4c, 0xf0, 0x2, 0xe0, 0x4, 0xcf, 0x0,
+    0x2e, 0x0, 0x4c,
+
+    /* U+006E "n" */
+    0xf9, 0xcd, 0x50, 0xf3, 0x2, 0xe0, 0xf0, 0x0,
+    0xf0, 0xf0, 0x0, 0xf0, 0xf0, 0x0, 0xf0, 0xf0,
+    0x0, 0xf0,
+
+    /* U+006F "o" */
+    0x4, 0xdd, 0xb1, 0x1, 0xe2, 0x6, 0xc0, 0x5a,
+    0x0, 0xf, 0x5, 0xa0, 0x0, 0xf0, 0x1e, 0x10,
+    0x6c, 0x0, 0x5d, 0xdb, 0x20,
+
+    /* U+0070 "p" */
+    0xf9, 0xbd, 0x50, 0xf2, 0x1, 0xe0, 0xf0, 0x0,
+    0xc3, 0xf0, 0x0, 0xd3, 0xf0, 0x4, 0xd0, 0xfc,
+    0xec, 0x30, 0xf0, 0x0, 0x0, 0xf0, 0x0, 0x0,
+
+    /* U+0071 "q" */
+    0x4, 0xde, 0xcd, 0x1e, 0x20, 0x3d, 0x5b, 0x0,
+    0x2d, 0x5a, 0x0, 0x2d, 0x2e, 0x10, 0x6d, 0x6,
+    0xed, 0x9d, 0x0, 0x0, 0x2d, 0x0, 0x0, 0x2d,
+
+    /* U+0072 "r" */
+    0xf7, 0xeb, 0xf6, 0x0, 0xf0, 0x0, 0xf0, 0x0,
+    0xf0, 0x0, 0xf0, 0x0,
+
+    /* U+0073 "s" */
+    0x9, 0xdd, 0xb0, 0x4c, 0x0, 0x30, 0x2e, 0x96,
+    0x10, 0x1, 0x59, 0xe1, 0x32, 0x0, 0xd3, 0x3c,
+    0xdd, 0x70,
+
+    /* U+0074 "t" */
+    0x7, 0x0, 0x0, 0xf0, 0x0, 0x8f, 0xdd, 0x10,
+    0xf0, 0x0, 0xf, 0x0, 0x0, 0xf0, 0x0, 0xe,
+    0x20, 0x0, 0x6e, 0xd1,
+
+    /* U+0075 "u" */
+    0xf, 0x0, 0xf, 0xf, 0x0, 0xf, 0xf, 0x0,
+    0xf, 0xf, 0x0, 0xf, 0xf, 0x10, 0x4f, 0x6,
+    0xdc, 0x9f,
+
+    /* U+0076 "v" */
+    0x79, 0x0, 0x1e, 0x1, 0xe0, 0x7, 0x90, 0xa,
+    0x60, 0xd2, 0x0, 0x4c, 0x3c, 0x0, 0x0, 0xdc,
+    0x50, 0x0, 0x7, 0xe0, 0x0,
+
+    /* U+0077 "w" */
+    0x6a, 0x1, 0xf1, 0x9, 0x62, 0xd0, 0x6d, 0x70,
+    0xc2, 0xd, 0x1b, 0x4c, 0xe, 0x0, 0x96, 0xc0,
+    0xc5, 0xa0, 0x5, 0xe7, 0x7, 0xe5, 0x0, 0x1f,
+    0x20, 0x1f, 0x10,
+
+    /* U+0078 "x" */
+    0x4e, 0x10, 0x5c, 0x0, 0x8b, 0x2d, 0x10, 0x0,
+    0xbe, 0x30, 0x0, 0xb, 0xe4, 0x0, 0x7, 0x93,
+    0xe1, 0x4, 0xd0, 0x7, 0xc0,
+
+    /* U+0079 "y" */
+    0x7a, 0x0, 0x1e, 0x1, 0xe1, 0x8, 0x80, 0x9,
+    0x70, 0xe1, 0x0, 0x2e, 0x6a, 0x0, 0x0, 0xbf,
+    0x30, 0x0, 0x6, 0xc0, 0x0, 0x0, 0xb5, 0x0,
+    0x0, 0x2e, 0x0, 0x0,
+
+    /* U+007A "z" */
+    0x5d, 0xdd, 0xf3, 0x0, 0x8, 0x90, 0x0, 0x5c,
+    0x0, 0x2, 0xd1, 0x0, 0xd, 0x40, 0x0, 0x7f,
+    0xdd, 0xd4,
+
+    /* U+007B "{" */
+    0x0, 0x5, 0xcb, 0x0, 0xe, 0x10, 0x0, 0xf,
+    0x0, 0x0, 0x6a, 0x0, 0x1e, 0xb0, 0x0, 0x0,
+    0x78, 0x0, 0x0, 0xe, 0x0, 0x0, 0xf, 0x0,
+    0x0, 0xd, 0x10, 0x0, 0x4, 0xcb,
+
+    /* U+007C "|" */
+    0xff, 0xff, 0xff, 0xff, 0xff,
+
+    /* U+007D "}" */
+    0xbc, 0x50, 0x0, 0x1, 0xe0, 0x0, 0x0, 0xf0,
+    0x0, 0x0, 0xb5, 0x0, 0x0, 0xc, 0xe0, 0x0,
+    0x97, 0x0, 0x0, 0xf0, 0x0, 0x0, 0xf0, 0x0,
+    0x2, 0xd0, 0x0, 0xbc, 0x40, 0x0,
+
+    /* U+007E "~" */
+    0x2c, 0xc3, 0x0, 0xcb, 0x32, 0xd2, 0x3b, 0xd0,
+    0x3, 0xcc, 0x20,
+
+    /* U+F001 "" */
+    0x0, 0x0, 0x0, 0x4, 0x95, 0x0, 0x1, 0x6b,
+    0xff, 0xfa, 0x0, 0xd, 0xff, 0xff, 0xfa, 0x0,
+    0xd, 0xff, 0xfe, 0xaa, 0x0, 0xd, 0xc8, 0x30,
+    0x2a, 0x0, 0xc, 0x0, 0x0, 0x2a, 0x0, 0xc,
+    0x0, 0x26, 0x6a, 0x0, 0xc, 0x2, 0xff, 0xfa,
+    0x6c, 0xcd, 0x0, 0xae, 0xc3, 0xef, 0xfd, 0x0,
+    0x0, 0x0, 0x16, 0x61, 0x0, 0x0, 0x0,
+
+    /* U+F008 "" */
+    0x8c, 0xcc, 0xcc, 0xcc, 0xcc, 0xc6, 0xd0, 0xd0,
+    0x0, 0x0, 0x3b, 0xc, 0xd1, 0xd0, 0x0, 0x0,
+    0x2b, 0x1c, 0xfb, 0xf0, 0x0, 0x0, 0x2e, 0xcc,
+    0xc0, 0xc0, 0x0, 0x0, 0x2a, 0xc, 0xfc, 0xfd,
+    0xcc, 0xcc, 0xdf, 0xdc, 0xc0, 0xc0, 0x0, 0x0,
+    0x2a, 0xc, 0xfc, 0xf0, 0x0, 0x0, 0x2f, 0xdc,
+    0xd0, 0xd0, 0x0, 0x0, 0x2b, 0xc, 0xd0, 0xd1,
+    0x0, 0x0, 0x3b, 0x1c, 0x8c, 0xcc, 0xcc, 0xcc,
+    0xcc, 0xc6,
+
+    /* U+F00B "" */
+    0x56, 0x60, 0x56, 0x66, 0x66, 0x5f, 0xff, 0x3f,
+    0xff, 0xff, 0xff, 0xdf, 0xe1, 0xdf, 0xff, 0xff,
+    0xd3, 0x54, 0x4, 0x55, 0x55, 0x53, 0xff, 0xf3,
+    0xff, 0xff, 0xff, 0xfc, 0xed, 0x1d, 0xee, 0xee,
+    0xec, 0x45, 0x50, 0x45, 0x55, 0x55, 0x4f, 0xff,
+    0x3f, 0xff, 0xff, 0xff, 0xef, 0xf1, 0xef, 0xff,
+    0xff, 0xe0,
+
+    /* U+F00C "" */
+    0x0, 0x0, 0x0, 0x0, 0x31, 0x0, 0x0, 0x0,
+    0x0, 0x4f, 0xd0, 0x0, 0x0, 0x0, 0x4f, 0xfe,
+    0x10, 0xbe, 0x20, 0x4f, 0xfe, 0x20, 0x1f, 0xfe,
+    0x6f, 0xfe, 0x20, 0x0, 0x4f, 0xff, 0xfe, 0x20,
+    0x0, 0x0, 0x4f, 0xfe, 0x20, 0x0, 0x0, 0x0,
+    0x4c, 0x20, 0x0, 0x0,
+
+    /* U+F00D "" */
+    0x0, 0x0, 0x0, 0x10, 0xc, 0xe2, 0x6, 0xf7,
+    0x2f, 0xfe, 0x7f, 0xfc, 0x5, 0xff, 0xff, 0xd1,
+    0x0, 0x9f, 0xff, 0x30, 0x6, 0xff, 0xff, 0xe2,
+    0x3f, 0xfd, 0x6f, 0xfd, 0xb, 0xd1, 0x5, 0xf6,
+    0x0, 0x0, 0x0, 0x0,
+
+    /* U+F011 "" */
+    0x0, 0x0, 0x41, 0x0, 0x0, 0x0, 0x0, 0xf7,
+    0x0, 0x0, 0x4, 0xa1, 0xf8, 0x68, 0x0, 0x2f,
+    0xd1, 0xf8, 0x7f, 0x80, 0xaf, 0x11, 0xf8, 0xa,
+    0xf1, 0xea, 0x0, 0xe5, 0x4, 0xf5, 0xfa, 0x0,
+    0x0, 0x3, 0xf5, 0xce, 0x0, 0x0, 0x8, 0xf2,
+    0x4f, 0xa0, 0x0, 0x5f, 0xa0, 0x8, 0xff, 0xcd,
+    0xfd, 0x10, 0x0, 0x3a, 0xdc, 0x70, 0x0,
+
+    /* U+F013 "" */
+    0x0, 0x3, 0xd6, 0x0, 0x0, 0x9, 0xba, 0xfc,
+    0x9b, 0x0, 0xe, 0xff, 0xff, 0xff, 0x20, 0xa,
+    0xfd, 0x5b, 0xfc, 0x0, 0xff, 0xf4, 0x0, 0xff,
+    0xf3, 0xff, 0xf3, 0x0, 0xff, 0xf3, 0x1a, 0xfc,
+    0x39, 0xfd, 0x20, 0xd, 0xff, 0xff, 0xff, 0x20,
+    0xa, 0xdb, 0xfd, 0xbd, 0x10, 0x0, 0x4, 0xf7,
+    0x0, 0x0,
+
+    /* U+F014 "" */
+    0x0, 0x28, 0x97, 0x0, 0x0, 0xb, 0x53, 0x95,
+    0x0, 0xde, 0xcc, 0xcc, 0xcf, 0x73, 0x90, 0x1,
+    0x0, 0xc0, 0x39, 0xa3, 0xb7, 0x4c, 0x3, 0x9a,
+    0x3b, 0x84, 0xc0, 0x39, 0xa3, 0xb8, 0x4c, 0x3,
+    0x98, 0x29, 0x63, 0xc0, 0x39, 0x0, 0x0, 0xc,
+    0x0, 0xac, 0xcc, 0xcc, 0x60,
+
+    /* U+F015 "" */
+    0x0, 0x0, 0xaa, 0x1c, 0x80, 0x0, 0x1, 0xca,
+    0xad, 0xfa, 0x0, 0x3, 0xe9, 0xdd, 0x8f, 0xa0,
+    0x5, 0xe9, 0xff, 0xfe, 0x8e, 0x70, 0x88, 0xff,
+    0xff, 0xff, 0x89, 0x0, 0xaf, 0xfa, 0xaf, 0xfa,
+    0x0, 0xa, 0xff, 0x11, 0xff, 0xa0, 0x0, 0x9f,
+    0xf1, 0x1f, 0xf9, 0x0,
+
+    /* U+F019 "" */
+    0x0, 0x0, 0x99, 0x20, 0x0, 0x0, 0x0, 0x1f,
+    0xf4, 0x0, 0x0, 0x0, 0x1, 0xff, 0x40, 0x0,
+    0x0, 0x3, 0x5f, 0xf7, 0x40, 0x0, 0x0, 0xbf,
+    0xff, 0xfd, 0x10, 0x0, 0x0, 0xaf, 0xfd, 0x10,
+    0x0, 0x35, 0x53, 0x9c, 0x35, 0x54, 0xf, 0xff,
+    0xf3, 0x2d, 0xff, 0xf3, 0xff, 0xff, 0xff, 0xfa,
+    0xdd, 0x3e, 0xff, 0xff, 0xff, 0xef, 0xe2,
+
+    /* U+F01C "" */
+    0x6, 0xff, 0xff, 0xfc, 0x0, 0xd, 0x83, 0x33,
+    0x4f, 0x40, 0x4f, 0x0, 0x0, 0x9, 0xb0, 0xb9,
+    0x0, 0x0, 0x2, 0xf2, 0xfa, 0x82, 0x0, 0x78,
+    0xf6, 0xff, 0xfb, 0x57, 0xff, 0xf6, 0xff, 0xff,
+    0xff, 0xff, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xf6,
+
+    /* U+F021 "" */
+    0x0, 0x4, 0x65, 0x10, 0x0, 0x2, 0xdf, 0xff,
+    0xf8, 0xa6, 0x1e, 0xe6, 0x24, 0xbf, 0xf7, 0x9f,
+    0x30, 0x0, 0xaf, 0xf7, 0x65, 0x0, 0x0, 0x77,
+    0x72, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xf5,
+    0x0, 0x6, 0xf2, 0xff, 0xd0, 0x0, 0x4f, 0xb0,
+    0xfc, 0xff, 0xcd, 0xfd, 0x10, 0x50, 0x4a, 0xdb,
+    0x70, 0x0,
+
+    /* U+F026 "" */
+    0x0, 0x1, 0x50, 0x1, 0xdb, 0x67, 0xdf, 0xbf,
+    0xff, 0xfb, 0xff, 0xff, 0xba, 0xbf, 0xfb, 0x0,
+    0x3f, 0xb0, 0x0, 0x38,
+
+    /* U+F027 "" */
+    0x0, 0x1, 0x50, 0x0, 0x0, 0x1d, 0xb0, 0x0,
+    0x67, 0xdf, 0xb1, 0x10, 0xff, 0xff, 0xb2, 0xc0,
+    0xff, 0xff, 0xb0, 0xd0, 0xab, 0xff, 0xb3, 0x40,
+    0x0, 0x3f, 0xb0, 0x0, 0x0, 0x3, 0x80, 0x0,
+
+    /* U+F028 "" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x14,
+    0x0, 0xc5, 0x0, 0x0, 0xc, 0xb0, 0x73, 0xb4,
+    0x4, 0x5c, 0xfb, 0x12, 0xc3, 0xc0, 0xff, 0xff,
+    0xb3, 0xc4, 0x8a, 0x1f, 0xff, 0xfb, 0xc, 0x39,
+    0x92, 0xcc, 0xff, 0xb3, 0x59, 0x5c, 0x0, 0x5,
+    0xfb, 0x8, 0x95, 0x90, 0x0, 0x5, 0xa0, 0x16,
+    0xc0, 0x0, 0x0, 0x0, 0x1, 0x70, 0x0,
+
+    /* U+F03E "" */
+    0x6a, 0xaa, 0xaa, 0xaa, 0xaa, 0xa4, 0xd2, 0x22,
+    0x22, 0x22, 0x22, 0x2c, 0xc3, 0xfa, 0x0, 0x0,
+    0x0, 0xc, 0xc4, 0xfc, 0x0, 0x1c, 0x40, 0xc,
+    0xc0, 0x31, 0x1, 0xdf, 0xf4, 0xc, 0xc0, 0x1a,
+    0x3d, 0xff, 0xff, 0x2c, 0xc1, 0xdf, 0xff, 0xff,
+    0xff, 0x3c, 0xc6, 0xff, 0xff, 0xff, 0xff, 0x3c,
+    0xc1, 0x33, 0x33, 0x33, 0x33, 0xc, 0x9c, 0xcc,
+    0xcc, 0xcc, 0xcc, 0xc6,
+
+    /* U+F040 "" */
+    0x0, 0x0, 0x0, 0x34, 0x0, 0x0, 0x0, 0x3,
+    0xff, 0x60, 0x0, 0x0, 0x47, 0xbf, 0xf2, 0x0,
+    0x4, 0xdd, 0x7b, 0xc0, 0x0, 0x4d, 0xcf, 0xf6,
+    0x0, 0x4, 0xdc, 0xff, 0xc0, 0x0, 0x4e, 0xcf,
+    0xfc, 0x0, 0x0, 0xd4, 0xff, 0xc0, 0x0, 0x0,
+    0xf7, 0x7c, 0x0, 0x0, 0x0, 0xcc, 0xa0, 0x0,
+    0x0, 0x0,
+
+    /* U+F048 "" */
+    0x63, 0x0, 0x1, 0x1f, 0x90, 0x1, 0xc4, 0xf9,
+    0x1, 0xcf, 0x4f, 0x91, 0xcf, 0xf4, 0xfa, 0xcf,
+    0xff, 0x4f, 0xdf, 0xff, 0xf4, 0xf9, 0x5f, 0xff,
+    0x4f, 0x90, 0x5f, 0xf4, 0xf9, 0x0, 0x5f, 0x4e,
+    0x80, 0x0, 0x54,
+
+    /* U+F04B "" */
+    0x81, 0x0, 0x0, 0x0, 0xf, 0xe7, 0x0, 0x0,
+    0x0, 0xff, 0xfd, 0x50, 0x0, 0xf, 0xff, 0xff,
+    0xc3, 0x0, 0xff, 0xff, 0xff, 0xfa, 0x2f, 0xff,
+    0xff, 0xff, 0xc3, 0xff, 0xff, 0xfe, 0x60, 0xf,
+    0xff, 0xf7, 0x0, 0x0, 0xff, 0x91, 0x0, 0x0,
+    0xa, 0x20, 0x0, 0x0, 0x0,
+
+    /* U+F04C "" */
+    0x67, 0x76, 0x4, 0x77, 0x70, 0xff, 0xfe, 0xb,
+    0xff, 0xf3, 0xff, 0xfe, 0xb, 0xff, 0xf3, 0xff,
+    0xfe, 0xb, 0xff, 0xf3, 0xff, 0xfe, 0xb, 0xff,
+    0xf3, 0xff, 0xfe, 0xb, 0xff, 0xf3, 0xff, 0xfe,
+    0xb, 0xff, 0xf3, 0xff, 0xfe, 0xb, 0xff, 0xf3,
+    0xff, 0xfe, 0xb, 0xff, 0xf3, 0xef, 0xfd, 0xa,
+    0xff, 0xf2,
+
+    /* U+F04D "" */
+    0x67, 0x77, 0x77, 0x77, 0x72, 0xff, 0xff, 0xff,
+    0xff, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xff,
+    0xff, 0xff, 0xff, 0xf6, 0xff, 0xff, 0xff, 0xff,
+    0xf6, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xff,
+    0xff, 0xff, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xf6,
+    0xff, 0xff, 0xff, 0xff, 0xf6, 0xef, 0xff, 0xff,
+    0xff, 0xf5,
+
+    /* U+F051 "" */
+    0x11, 0x0, 0x2, 0x70, 0x3d, 0x10, 0x7, 0xf1,
+    0x3f, 0xd1, 0x7, 0xf1, 0x3f, 0xfd, 0x17, 0xf1,
+    0x3f, 0xff, 0xd9, 0xf1, 0x3f, 0xff, 0xfd, 0xf1,
+    0x3f, 0xff, 0x77, 0xf1, 0x3f, 0xf7, 0x7, 0xf1,
+    0x3f, 0x70, 0x7, 0xf1, 0x27, 0x0, 0x6, 0xe0,
+
+    /* U+F052 "" */
+    0x0, 0x0, 0xb, 0x40, 0x0, 0x0, 0x0, 0xc,
+    0xff, 0x40, 0x0, 0x0, 0xc, 0xff, 0xff, 0x40,
+    0x0, 0xc, 0xff, 0xff, 0xff, 0x40, 0xa, 0xdd,
+    0xdd, 0xdd, 0xdd, 0x20, 0x55, 0x55, 0x55, 0x55,
+    0x51, 0xf, 0xff, 0xff, 0xff, 0xff, 0x60, 0xff,
+    0xff, 0xff, 0xff, 0xf6,
+
+    /* U+F053 "" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1d, 0xa0,
+    0x0, 0x1, 0xdf, 0xf2, 0x0, 0x1d, 0xff, 0x40,
+    0x1, 0xdf, 0xf4, 0x0, 0xd, 0xff, 0x40, 0x0,
+    0x8, 0xff, 0x90, 0x0, 0x0, 0x8f, 0xf9, 0x0,
+    0x0, 0x8, 0xff, 0x90, 0x0, 0x0, 0x8f, 0xf2,
+    0x0, 0x0, 0x7, 0x50,
+
+    /* U+F054 "" */
+    0x0, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x4f,
+    0xfb, 0x0, 0x0, 0x6f, 0xfb, 0x0, 0x0, 0x6f,
+    0xfb, 0x0, 0x0, 0x6f, 0xfa, 0x0, 0xb, 0xff,
+    0x60, 0xb, 0xff, 0x60, 0xb, 0xff, 0x60, 0x4,
+    0xff, 0x60, 0x0, 0x6, 0x50, 0x0, 0x0,
+
+    /* U+F067 "" */
+    0x0, 0x7, 0xa3, 0x0, 0x0, 0x0, 0xdf, 0x80,
+    0x0, 0x0, 0xd, 0xf8, 0x0, 0x6, 0x88, 0xef,
+    0xc8, 0x83, 0xff, 0xff, 0xff, 0xff, 0xac, 0xdd,
+    0xff, 0xed, 0xd7, 0x0, 0xd, 0xf8, 0x0, 0x0,
+    0x0, 0xdf, 0x80, 0x0, 0x0, 0xc, 0xf6, 0x0,
+    0x0,
+
+    /* U+F068 "" */
+    0x46, 0x66, 0x66, 0x66, 0x2f, 0xff, 0xff, 0xff,
+    0xfa, 0xdf, 0xff, 0xff, 0xff, 0x80,
+
+    /* U+F071 "" */
+    0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x5f, 0x50, 0x0, 0x0, 0x0, 0x0, 0xd,
+    0xfd, 0x0, 0x0, 0x0, 0x0, 0x7, 0xff, 0xf7,
+    0x0, 0x0, 0x0, 0x1, 0xea, 0xa, 0xe1, 0x0,
+    0x0, 0x0, 0x8f, 0xa0, 0xaf, 0x80, 0x0, 0x0,
+    0x2f, 0xfb, 0xb, 0xff, 0x10, 0x0, 0xa, 0xff,
+    0xfc, 0xff, 0xfa, 0x0, 0x3, 0xff, 0xfb, 0xb,
+    0xff, 0xf3, 0x0, 0xbf, 0xff, 0xe9, 0xef, 0xff,
+    0xb0, 0xc, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0,
+
+    /* U+F074 "" */
+    0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
+    0x0, 0x5, 0xb0, 0xff, 0xc3, 0x7, 0xdf, 0xff,
+    0xb9, 0xae, 0xe7, 0xfc, 0xac, 0xf6, 0x0, 0x29,
+    0xfb, 0x0, 0x56, 0x0, 0x0, 0x8f, 0x30, 0x0,
+    0x0, 0x0, 0x1e, 0xb8, 0x0, 0x45, 0x8, 0x8d,
+    0xf7, 0xfb, 0x8b, 0xf5, 0xff, 0xd4, 0x9, 0xff,
+    0xff, 0xc0, 0x0, 0x0, 0x0, 0x6, 0xc0, 0x0,
+    0x0, 0x0, 0x0, 0x20, 0x0,
+
+    /* U+F077 "" */
+    0x0, 0x0, 0x4, 0x10, 0x0, 0x0, 0x0, 0x6,
+    0xfc, 0x10, 0x0, 0x0, 0x6, 0xff, 0xfc, 0x10,
+    0x0, 0x6, 0xff, 0xcf, 0xfc, 0x10, 0x6, 0xff,
+    0xb0, 0x4f, 0xfc, 0x11, 0xff, 0xa0, 0x0, 0x4f,
+    0xf8, 0x5, 0xa0, 0x0, 0x0, 0x4a, 0x0,
+
+    /* U+F078 "" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xae, 0x20,
+    0x0, 0x8, 0xe2, 0x1e, 0xfe, 0x20, 0x8, 0xff,
+    0x70, 0x3e, 0xfe, 0x28, 0xff, 0x90, 0x0, 0x3e,
+    0xff, 0xff, 0x90, 0x0, 0x0, 0x3e, 0xff, 0x90,
+    0x0, 0x0, 0x0, 0x3e, 0x90, 0x0, 0x0, 0x0,
+    0x0, 0x10, 0x0, 0x0,
+
+    /* U+F079 "" */
+    0x0, 0x0, 0x0, 0x11, 0x11, 0x0, 0x0, 0x5,
+    0xd1, 0xdf, 0xff, 0xff, 0x10, 0x3, 0xff, 0xc2,
+    0x88, 0x8c, 0xf1, 0x0, 0xef, 0xff, 0x80, 0x0,
+    0x8f, 0x10, 0x1, 0x8f, 0x20, 0x0, 0x19, 0xf3,
+    0x0, 0x7, 0xf1, 0x0, 0xe, 0xff, 0xf7, 0x0,
+    0x7f, 0x99, 0x98, 0x3f, 0xfb, 0x0, 0x7, 0xff,
+    0xff, 0xf7, 0x5c, 0x0,
+
+    /* U+F07B "" */
+    0x4a, 0xa9, 0x10, 0x0, 0x0, 0xe, 0xff, 0xfa,
+    0x11, 0x11, 0x0, 0xff, 0xff, 0xff, 0xff, 0xfd,
+    0xf, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff,
+    0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff,
+    0xff, 0xff, 0xff, 0xf3, 0x9f, 0xff, 0xff, 0xff,
+    0xfc, 0x0,
+
+    /* U+F093 "" */
+    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9,
+    0xc0, 0x0, 0x0, 0x0, 0x9, 0xff, 0xc0, 0x0,
+    0x0, 0x9, 0xff, 0xff, 0xc0, 0x0, 0x0, 0x78,
+    0xff, 0xa7, 0x10, 0x0, 0x0, 0x1f, 0xf4, 0x0,
+    0x0, 0x0, 0x1, 0xff, 0x40, 0x0, 0x4, 0x55,
+    0x29, 0xa2, 0x55, 0x50, 0xff, 0xfe, 0x99, 0xcf,
+    0xff, 0x3f, 0xff, 0xff, 0xff, 0x8c, 0xc3, 0xac,
+    0xcc, 0xcc, 0xcc, 0xcc, 0x10,
+
+    /* U+F095 "" */
+    0x29, 0x10, 0x0, 0x0, 0xc, 0xfa, 0x0, 0x0,
+    0x0, 0xff, 0xf0, 0x0, 0x0, 0xc, 0xf3, 0x0,
+    0x0, 0x0, 0x5f, 0x70, 0x0, 0x0, 0x0, 0xcf,
+    0x40, 0x0, 0x0, 0x1, 0xdf, 0x73, 0xfa, 0x10,
+    0x1, 0xcf, 0xff, 0xf9, 0x0, 0x0, 0x5c, 0xfc,
+    0x20,
+
+    /* U+F0C4 "" */
+    0x6, 0xcb, 0x40, 0x0, 0x0, 0x0, 0xf, 0x44,
+    0xc4, 0x0, 0x6, 0x67, 0xd, 0x70, 0x59, 0x4,
+    0x61, 0x63, 0x2, 0xcf, 0xfa, 0x72, 0x17, 0x10,
+    0x0, 0x1, 0x1b, 0x53, 0xa0, 0x0, 0x2, 0xde,
+    0xf8, 0x97, 0x7, 0x10, 0xe, 0x60, 0x58, 0x4,
+    0x71, 0x53, 0xf, 0x44, 0xd3, 0x0, 0x6, 0x77,
+    0x6, 0xcb, 0x30, 0x0, 0x0, 0x0,
+
+    /* U+F0C5 "" */
+    0x0, 0x8, 0xaa, 0x80, 0x0, 0x0, 0xc, 0xe2,
+    0x2d, 0x0, 0x0, 0xc, 0x8c, 0x0, 0xc0, 0x0,
+    0xb, 0xb1, 0xc0, 0xc, 0xef, 0xfe, 0xeb, 0xb8,
+    0x4, 0xcd, 0x0, 0xcc, 0x0, 0x4, 0xb1, 0xd0,
+    0xc, 0xc0, 0x0, 0xec, 0xc9, 0x0, 0xcc, 0x0,
+    0x1b, 0x0, 0x0, 0xc, 0xdc, 0xcd, 0xb0, 0x0,
+    0x0, 0xc0, 0x0, 0x1b, 0x0, 0x0, 0xc, 0x0,
+    0x1, 0xb0, 0x0, 0x0, 0xc0, 0x0, 0xb, 0xcc,
+    0xcc, 0xca,
+
+    /* U+F0C7 "" */
+    0xac, 0xcc, 0xcc, 0xb4, 0x0, 0xc7, 0xfc, 0xb,
+    0x3d, 0x50, 0xc7, 0xfc, 0xb, 0x10, 0xb4, 0xc6,
+    0xff, 0xbe, 0x0, 0x29, 0xc0, 0x1, 0x10, 0x0,
+    0x2a, 0xc0, 0x0, 0x0, 0x0, 0x2a, 0xc5, 0xdc,
+    0xcc, 0xcd, 0x2a, 0xc7, 0x40, 0x0, 0xe, 0x2a,
+    0xc7, 0x40, 0x0, 0xe, 0x2a, 0xac, 0xcc, 0xcc,
+    0xcc, 0xc6,
+
+    /* U+F0E7 "" */
+    0x0, 0xbd, 0x90, 0x0, 0xf, 0xf6, 0x0, 0x4,
+    0xff, 0x11, 0x10, 0x8f, 0xed, 0xf4, 0xc, 0xff,
+    0xfd, 0x0, 0x96, 0x6f, 0x50, 0x0, 0x8, 0xd0,
+    0x0, 0x0, 0xc6, 0x0, 0x0, 0xe, 0x0, 0x0,
+    0x3, 0x70, 0x0, 0x0, 0x10, 0x0, 0x0,
+
+    /* U+F0F3 "" */
+    0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x19,
+    0xf6, 0x0, 0x0, 0x0, 0x2e, 0xff, 0xfc, 0x0,
+    0x0, 0xa, 0xff, 0xff, 0xf5, 0x0, 0x0, 0xdf,
+    0xff, 0xff, 0x80, 0x0, 0xe, 0xff, 0xff, 0xf9,
+    0x0, 0x1, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x7f,
+    0xff, 0xff, 0xff, 0x20, 0x2f, 0xff, 0xff, 0xff,
+    0xfc, 0x8, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x0,
+    0x1, 0xcf, 0xc0, 0x0, 0x0, 0x0, 0x4, 0x82,
+    0x0, 0x0,
+
+    /* U+F11C "" */
+    0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xc9, 0xc3, 0x25,
+    0x22, 0x51, 0x33, 0x1c, 0xc2, 0x13, 0x12, 0x30,
+    0x29, 0x3c, 0xc5, 0xc2, 0x86, 0x29, 0x4d, 0x2c,
+    0xc2, 0x15, 0x55, 0x55, 0x33, 0x1c, 0xc3, 0x26,
+    0x77, 0x77, 0x33, 0x1c, 0xcc, 0xcc, 0xcc, 0xcc,
+    0xcc, 0xc9,
+
+    /* U+F124 "" */
+    0x0, 0x0, 0x0, 0x1, 0x87, 0x0, 0x0, 0x1,
+    0x8f, 0xf3, 0x0, 0x1, 0x8f, 0xff, 0xb0, 0x1,
+    0x8f, 0xff, 0xff, 0x30, 0xc, 0xdd, 0xdf, 0xfb,
+    0x0, 0x0, 0x0, 0x1f, 0xf3, 0x0, 0x0, 0x0,
+    0x1f, 0xb0, 0x0, 0x0, 0x0, 0x1f, 0x30, 0x0,
+    0x0, 0x0, 0x8, 0x0, 0x0,
+
+    /* U+F15B "" */
+    0x23, 0x33, 0x31, 0x0, 0x0, 0xff, 0xff, 0xf8,
+    0x70, 0x0, 0xff, 0xff, 0xf8, 0xbb, 0x0, 0xff,
+    0xff, 0xf8, 0xaf, 0xa0, 0xff, 0xff, 0xfb, 0x44,
+    0x41, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xff,
+    0xff, 0xff, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xf6,
+    0xff, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xff, 0xff,
+    0xff, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xbc,
+    0xcc, 0xcc, 0xcc, 0xc3,
+
+    /* U+F1EB "" */
+    0x0, 0x4, 0x9b, 0xca, 0x72, 0x0, 0x0, 0x5d,
+    0xff, 0xdc, 0xef, 0xfa, 0x10, 0x7f, 0xe6, 0x35,
+    0x64, 0x39, 0xfe, 0x12, 0x93, 0xbf, 0xff, 0xff,
+    0x74, 0x80, 0x0, 0xef, 0x94, 0x35, 0xcf, 0x60,
+    0x0, 0x3, 0x28, 0xff, 0xc4, 0x50, 0x0, 0x0,
+    0x3, 0xfc, 0xae, 0xb0, 0x0, 0x0, 0x0, 0x1,
+    0x48, 0x20, 0x0, 0x0, 0x0, 0x0, 0x4, 0xb0,
+    0x0, 0x0, 0x0,
+
+    /* U+F240 "" */
+    0xac, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xb0, 0xc2,
+    0x44, 0x44, 0x44, 0x44, 0x42, 0xa2, 0xc7, 0xff,
+    0xff, 0xff, 0xff, 0xf9, 0x9a, 0xc7, 0xff, 0xff,
+    0xff, 0xff, 0xf9, 0xc, 0xc7, 0xff, 0xff, 0xff,
+    0xff, 0xf9, 0xc, 0xc7, 0xff, 0xff, 0xff, 0xff,
+    0xf9, 0x7b, 0xc3, 0x66, 0x66, 0x66, 0x66, 0x64,
+    0xa2, 0xbc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xc0,
+
+    /* U+F241 "" */
+    0xac, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xb0, 0xc2,
+    0x44, 0x44, 0x44, 0x41, 0x0, 0xa2, 0xc7, 0xff,
+    0xff, 0xff, 0xf4, 0x0, 0x9a, 0xc7, 0xff, 0xff,
+    0xff, 0xf4, 0x0, 0xc, 0xc7, 0xff, 0xff, 0xff,
+    0xf4, 0x0, 0xc, 0xc7, 0xff, 0xff, 0xff, 0xf4,
+    0x0, 0x7b, 0xc3, 0x66, 0x66, 0x66, 0x61, 0x0,
+    0xa2, 0xbc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xc0,
+
+    /* U+F242 "" */
+    0xac, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xb0, 0xc2,
+    0x44, 0x44, 0x40, 0x0, 0x0, 0xa2, 0xc7, 0xff,
+    0xff, 0xf0, 0x0, 0x0, 0x9a, 0xc7, 0xff, 0xff,
+    0xf0, 0x0, 0x0, 0xc, 0xc7, 0xff, 0xff, 0xf0,
+    0x0, 0x0, 0xc, 0xc7, 0xff, 0xff, 0xf0, 0x0,
+    0x0, 0x7b, 0xc3, 0x66, 0x66, 0x60, 0x0, 0x0,
+    0xa2, 0xbc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xc0,
+
+    /* U+F243 "" */
+    0xac, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xb0, 0xc2,
+    0x44, 0x20, 0x0, 0x0, 0x0, 0xa2, 0xc7, 0xff,
+    0xa0, 0x0, 0x0, 0x0, 0x9a, 0xc7, 0xff, 0xa0,
+    0x0, 0x0, 0x0, 0xc, 0xc7, 0xff, 0xa0, 0x0,
+    0x0, 0x0, 0xc, 0xc7, 0xff, 0xa0, 0x0, 0x0,
+    0x0, 0x7b, 0xc3, 0x66, 0x40, 0x0, 0x0, 0x0,
+    0xa2, 0xbc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xc0,
+
+    /* U+F244 "" */
+    0xac, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xb0, 0xc0,
+    0x0, 0x0, 0x0, 0x0, 0x0, 0xa2, 0xc0, 0x0,
+    0x0, 0x0, 0x0, 0x0, 0x9a, 0xc0, 0x0, 0x0,
+    0x0, 0x0, 0x0, 0xc, 0xc0, 0x0, 0x0, 0x0,
+    0x0, 0x0, 0xc, 0xc0, 0x0, 0x0, 0x0, 0x0,
+    0x0, 0x7b, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
+    0xa2, 0xbc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xc0,
+
+    /* U+F293 "" */
+    0x0, 0x0, 0x22, 0x0, 0x0, 0x7, 0xfe, 0xfe,
+    0x50, 0x5, 0xff, 0x98, 0xff, 0x30, 0xcf, 0xf9,
+    0x18, 0xfa, 0xf, 0xb4, 0x89, 0x1d, 0xd1, 0xff,
+    0x90, 0x1a, 0xff, 0x1f, 0xff, 0x23, 0xff, 0xf1,
+    0xff, 0x44, 0x44, 0xfe, 0xe, 0xba, 0x97, 0x2d,
+    0xc0, 0xaf, 0xf9, 0x1d, 0xf8, 0x2, 0xef, 0xad,
+    0xfd, 0x10, 0x2, 0x9b, 0xb8, 0x10
+};
+
+
+/*---------------------
+ *  GLYPH DESCRIPTION
+ *--------------------*/
+
+static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
+    {.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */,
+    {.bitmap_index = 0, .adv_w = 62, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 0, .adv_w = 69, .box_w = 2, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 8, .adv_w = 81, .box_w = 5, .box_h = 4, .ofs_x = 0, .ofs_y = 4},
+    {.bitmap_index = 18, .adv_w = 144, .box_w = 7, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 46, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 81, .adv_w = 189, .box_w = 12, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 129, .adv_w = 128, .box_w = 9, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 165, .adv_w = 47, .box_w = 3, .box_h = 4, .ofs_x = 0, .ofs_y = 4},
+    {.bitmap_index = 171, .adv_w = 80, .box_w = 5, .box_h = 10, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 196, .adv_w = 80, .box_w = 5, .box_h = 10, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 221, .adv_w = 112, .box_w = 7, .box_h = 5, .ofs_x = 0, .ofs_y = 3},
+    {.bitmap_index = 239, .adv_w = 144, .box_w = 7, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 264, .adv_w = 64, .box_w = 4, .box_h = 4, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 272, .adv_w = 80, .box_w = 5, .box_h = 1, .ofs_x = 0, .ofs_y = 3},
+    {.bitmap_index = 275, .adv_w = 64, .box_w = 2, .box_h = 2, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 277, .adv_w = 80, .box_w = 6, .box_h = 10, .ofs_x = -1, .ofs_y = -2},
+    {.bitmap_index = 307, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 335, .adv_w = 112, .box_w = 5, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 355, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 383, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 411, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 439, .adv_w = 112, .box_w = 6, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 463, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 491, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 519, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 547, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 575, .adv_w = 80, .box_w = 3, .box_h = 6, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 584, .adv_w = 80, .box_w = 3, .box_h = 8, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 596, .adv_w = 144, .box_w = 7, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 621, .adv_w = 144, .box_w = 7, .box_h = 3, .ofs_x = 1, .ofs_y = 2},
+    {.bitmap_index = 632, .adv_w = 144, .box_w = 7, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 657, .adv_w = 96, .box_w = 6, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 681, .adv_w = 176, .box_w = 11, .box_h = 9, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 731, .adv_w = 120, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 763, .adv_w = 121, .box_w = 7, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 791, .adv_w = 123, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 823, .adv_w = 136, .box_w = 7, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 851, .adv_w = 111, .box_w = 6, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 875, .adv_w = 101, .box_w = 6, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 899, .adv_w = 136, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 931, .adv_w = 132, .box_w = 7, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 959, .adv_w = 74, .box_w = 4, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 975, .adv_w = 80, .box_w = 4, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 991, .adv_w = 122, .box_w = 7, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 1019, .adv_w = 98, .box_w = 6, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 1043, .adv_w = 148, .box_w = 8, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 1075, .adv_w = 132, .box_w = 7, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 1103, .adv_w = 139, .box_w = 9, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1139, .adv_w = 106, .box_w = 6, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 1163, .adv_w = 139, .box_w = 9, .box_h = 10, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1208, .adv_w = 122, .box_w = 7, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 1236, .adv_w = 120, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1264, .adv_w = 108, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1292, .adv_w = 129, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1324, .adv_w = 120, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1356, .adv_w = 174, .box_w = 11, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1400, .adv_w = 121, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1432, .adv_w = 108, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1460, .adv_w = 121, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1488, .adv_w = 80, .box_w = 4, .box_h = 10, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1508, .adv_w = 80, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1538, .adv_w = 80, .box_w = 4, .box_h = 10, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1558, .adv_w = 144, .box_w = 7, .box_h = 4, .ofs_x = 1, .ofs_y = 4},
+    {.bitmap_index = 1572, .adv_w = 112, .box_w = 9, .box_h = 1, .ofs_x = -1, .ofs_y = -2},
+    {.bitmap_index = 1577, .adv_w = 112, .box_w = 4, .box_h = 2, .ofs_x = 1, .ofs_y = 7},
+    {.bitmap_index = 1581, .adv_w = 106, .box_w = 6, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1599, .adv_w = 110, .box_w = 6, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 1623, .adv_w = 92, .box_w = 6, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1641, .adv_w = 110, .box_w = 6, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1665, .adv_w = 105, .box_w = 7, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1686, .adv_w = 62, .box_w = 5, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1706, .adv_w = 110, .box_w = 6, .box_h = 8, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1730, .adv_w = 111, .box_w = 6, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 1754, .adv_w = 48, .box_w = 3, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1766, .adv_w = 61, .box_w = 4, .box_h = 10, .ofs_x = -1, .ofs_y = -2},
+    {.bitmap_index = 1786, .adv_w = 104, .box_w = 6, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 1810, .adv_w = 48, .box_w = 2, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 1818, .adv_w = 171, .box_w = 9, .box_h = 6, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 1845, .adv_w = 111, .box_w = 6, .box_h = 6, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 1863, .adv_w = 107, .box_w = 7, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1884, .adv_w = 110, .box_w = 6, .box_h = 8, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1908, .adv_w = 110, .box_w = 6, .box_h = 8, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1932, .adv_w = 75, .box_w = 4, .box_h = 6, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 1944, .adv_w = 92, .box_w = 6, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1962, .adv_w = 69, .box_w = 5, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1982, .adv_w = 111, .box_w = 6, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 2000, .adv_w = 104, .box_w = 7, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 2021, .adv_w = 144, .box_w = 9, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 2048, .adv_w = 104, .box_w = 7, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 2069, .adv_w = 104, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 2097, .adv_w = 92, .box_w = 6, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 2115, .adv_w = 112, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 2145, .adv_w = 80, .box_w = 1, .box_h = 10, .ofs_x = 2, .ofs_y = -2},
+    {.bitmap_index = 2150, .adv_w = 112, .box_w = 6, .box_h = 10, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 2180, .adv_w = 144, .box_w = 7, .box_h = 3, .ofs_x = 1, .ofs_y = 2},
+    {.bitmap_index = 2191, .adv_w = 151, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 2246, .adv_w = 189, .box_w = 12, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 2312, .adv_w = 176, .box_w = 11, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 2362, .adv_w = 176, .box_w = 11, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 2406, .adv_w = 138, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 2442, .adv_w = 151, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 2497, .adv_w = 151, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 2547, .adv_w = 138, .box_w = 9, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 2592, .adv_w = 163, .box_w = 11, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 2636, .adv_w = 163, .box_w = 11, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 2691, .adv_w = 151, .box_w = 10, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 2731, .adv_w = 151, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 2781, .adv_w = 75, .box_w = 5, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 2801, .adv_w = 113, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 2833, .adv_w = 163, .box_w = 11, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 2888, .adv_w = 189, .box_w = 12, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 2948, .adv_w = 151, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 2998, .adv_w = 101, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 3033, .adv_w = 138, .box_w = 9, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 3078, .adv_w = 151, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 3128, .adv_w = 151, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 3178, .adv_w = 101, .box_w = 8, .box_h = 10, .ofs_x = -1, .ofs_y = -1},
+    {.bitmap_index = 3218, .adv_w = 151, .box_w = 11, .box_h = 8, .ofs_x = -1, .ofs_y = 0},
+    {.bitmap_index = 3262, .adv_w = 126, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 3306, .adv_w = 126, .box_w = 7, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 3345, .adv_w = 138, .box_w = 9, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 3386, .adv_w = 138, .box_w = 9, .box_h = 3, .ofs_x = 0, .ofs_y = 3},
+    {.bitmap_index = 3400, .adv_w = 176, .box_w = 13, .box_h = 11, .ofs_x = -1, .ofs_y = -1},
+    {.bitmap_index = 3472, .adv_w = 176, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 3533, .adv_w = 176, .box_w = 11, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 3572, .adv_w = 176, .box_w = 11, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 3616, .adv_w = 189, .box_w = 13, .box_h = 8, .ofs_x = -1, .ofs_y = 0},
+    {.bitmap_index = 3668, .adv_w = 163, .box_w = 11, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 3718, .adv_w = 163, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 3779, .adv_w = 138, .box_w = 9, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 3820, .adv_w = 176, .box_w = 12, .box_h = 9, .ofs_x = -1, .ofs_y = -1},
+    {.bitmap_index = 3874, .adv_w = 176, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 3940, .adv_w = 151, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 3990, .adv_w = 88, .box_w = 7, .box_h = 11, .ofs_x = -1, .ofs_y = -2},
+    {.bitmap_index = 4029, .adv_w = 176, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 4095, .adv_w = 189, .box_w = 12, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 4137, .adv_w = 138, .box_w = 10, .box_h = 9, .ofs_x = -1, .ofs_y = -1},
+    {.bitmap_index = 4182, .adv_w = 151, .box_w = 10, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 4242, .adv_w = 201, .box_w = 13, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 4301, .adv_w = 226, .box_w = 14, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 4357, .adv_w = 226, .box_w = 14, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 4413, .adv_w = 226, .box_w = 14, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 4469, .adv_w = 226, .box_w = 14, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 4525, .adv_w = 226, .box_w = 14, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 4581, .adv_w = 151, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = -2}
+};
+
+/*---------------------
+ *  CHARACTER MAPPING
+ *--------------------*/
+
+static const uint16_t unicode_list_1[] = {
+    0x0, 0x7, 0xa, 0xb, 0xc, 0x10, 0x12, 0x13,
+    0x14, 0x18, 0x1b, 0x20, 0x25, 0x26, 0x27, 0x3d,
+    0x3f, 0x47, 0x4a, 0x4b, 0x4c, 0x50, 0x51, 0x52,
+    0x53, 0x66, 0x67, 0x70, 0x73, 0x76, 0x77, 0x78,
+    0x7a, 0x92, 0x94, 0xc3, 0xc4, 0xc6, 0xe6, 0xf2,
+    0x11b, 0x123, 0x15a, 0x1ea, 0x23f, 0x240, 0x241, 0x242,
+    0x243, 0x292
+};
+
+/*Collect the unicode lists and glyph_id offsets*/
+static const lv_font_fmt_txt_cmap_t cmaps[] =
+{
+    {
+        .range_start = 32, .range_length = 95, .glyph_id_start = 1,
+        .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
+    },
+    {
+        .range_start = 61441, .range_length = 659, .glyph_id_start = 96,
+        .unicode_list = unicode_list_1, .glyph_id_ofs_list = NULL, .list_length = 50, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
+    }
+};
+
+/*-----------------
+ *    KERNING
+ *----------------*/
+
+
+/*Map glyph_ids to kern left classes*/
+static const uint8_t kern_left_class_mapping[] =
+{
+    0, 0, 0, 0, 0, 0, 0, 0,
+    1, 0, 0, 0, 0, 0, 2, 3,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 4, 5, 6, 7, 0, 8,
+    0, 0, 9, 10, 11, 12, 0, 0,
+    13, 14, 15, 16, 17, 18, 10, 19,
+    20, 21, 22, 23, 0, 0, 0, 0,
+    0, 0, 24, 25, 26, 0, 27, 28,
+    0, 29, 0, 0, 30, 0, 29, 29,
+    31, 25, 0, 32, 0, 33, 0, 34,
+    35, 36, 37, 38, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0
+};
+
+/*Map glyph_ids to kern right classes*/
+static const uint8_t kern_right_class_mapping[] =
+{
+    0, 0, 0, 1, 0, 0, 0, 0,
+    2, 0, 3, 4, 0, 5, 6, 7,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 8, 8, 0, 0, 0,
+    9, 0, 10, 0, 11, 0, 0, 0,
+    11, 0, 12, 13, 0, 0, 0, 0,
+    14, 0, 0, 0, 15, 16, 17, 18,
+    19, 20, 21, 22, 0, 3, 3, 0,
+    0, 0, 23, 0, 24, 25, 26, 0,
+    27, 0, 0, 0, 0, 0, 28, 28,
+    26, 28, 29, 30, 31, 32, 33, 34,
+    35, 36, 37, 38, 0, 0, 3, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0
+};
+
+/*Kern values between classes*/
+static const int8_t kern_class_values[] =
+{
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, -9, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, -4,
+    0, -3, -9, 0, -2, -13, 0, -4,
+    -4, -7, -12, -3, -2, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, -3,
+    -2, -4, -3, -3, 0, 0, 0, 0,
+    -11, -14, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, -4,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    -1, -10, -1, -5, -4, 0, -7, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, -2, -1, -4, -3, 0, -4, 0,
+    0, 0, 0, 0, -2, 1, -2, 0,
+    0, 0, 0, 0, 0, 0, 0, -5,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, -4, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    -4, 0, -4, 0, 0, 0, 0, 0,
+    0, 0, 0, -4, 0, 0, -2, -1,
+    -2, -2, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, -26, 0,
+    -26, -5, 5, -9, 0, 0, 0, 0,
+    0, 3, 0, 0, 0, 0, 0, 0,
+    -9, 0, 0, -4, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, -3, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, -2, 0, -2, 0, 0, -1,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, -9, 0, 0, 0, 0, 0, 0,
+    0, -2, 0, 0, 0, 0, 0, 0,
+    0, 0, -5, 0, 0, -6, 0, 0,
+    0, 0, 0, 0, -4, -7, -6, 0,
+    -7, 0, 0, -10, 0, 0, 0, -14,
+    0, 0, 0, 0, -2, 0, 9, -2,
+    0, -15, 0, -9, -9, 0, -14, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, -9, 0, 0, -9, 0,
+    0, 0, 0, 0, -3, 0, -3, 0,
+    0, 0, 0, 0, 0, 0, 0, -4,
+    0, 0, 0, -1, -2, -2, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, -26, 0, -26, 0, 0, -4,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 2, 0, -4, 0, 0, -4,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    -3, 0, -3, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, -9,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, -5, 0, 0, 0, 0, -2, 0,
+    -3, 0, 0, -4, 0, 0, 0, 0,
+    0, 0, -2, 0, 0, 0, -5, 0,
+    0, 0, 0, 0, -2, 0, -2, 0,
+    0, -2, 0, 0, 0, 0, -2, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, -3, -2, 0, -3, 0, 0, 0,
+    0, 0, -25, -13, -25, -17, 5, -10,
+    -3, 0, 0, -4, -1, -6, 0, 0,
+    0, 0, 0, 0, -21, -19, 0, -19,
+    -18, 0, 0, -17, -15, 0, -17, -17,
+    -17, 0, -17, -15, 0, 0, 0, 0,
+    -25, -4, -25, -7, 0, -5, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, -9, 0, 0, -9, 0, 0,
+    0, 0, 0, 0, -5, 0, 0, 0,
+    -6, 0, 0, 0, 0, 0, -25, -4,
+    -19, -7, 0, -4, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    -9, 0, 0, -9, 0, 0, 0, -5,
+    0, 0, -5, 0, 0, 0, -6, 0,
+    0, 0, 0, 0, 0, -7, 0, 0,
+    0, 0, -1, 0, 0, -1, 0, 0,
+    0, 0, 0, 0, 0, 0, -4, 0,
+    0, -5, 0, 0, 0, 0, 0, 0,
+    -3, 0, 0, 0, -7, 0, 0, 0,
+    0, 0, -25, -12, -25, -17, 0, -7,
+    0, 0, 0, -2, 0, 0, 0, 0,
+    0, 0, 0, 0, -12, 0, -10, -11,
+    -11, -9, -11, -9, -9, 0, -9, -9,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, -5, 0, 0, 0, 0, -2, 0,
+    0, -2, 0, 0, 0, 0, 0, 0,
+    0, -1, -4, 0, 0, -5, 0, 0,
+    0, 0, 0, 0, 0, 0, -3, 0,
+    -6, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, -1, -1, 0, -1, 0,
+    0, 0, 0, 0, -3, 0, -2, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, -2, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, -5, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, -12, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 5, 5, 9, 4, -11, -4,
+    -10, 0, 9, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, -1, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, -2, -1, 0, -2, 0, 0, 0,
+    0, 0, 0, -9, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, -2,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    -3, 0, -2, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, -1, 0, -2,
+    -1, 0, 0, 0, 0, 0, -25, -2,
+    -25, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    -3, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, -3, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, -1, 0, 0, 0,
+    0, 0, -15, -3, -15, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, -3, 0, 0, -2,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    -6, -2, -6, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, -2, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, -4,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, -2, -1, -2, -1, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, -16, -3, -16, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, -3, -2,
+    -1, -2, -1, 0, -1, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, -2, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, -1, -1, -1,
+    -1, 0, -1, 0, 0, 0, 0, 0,
+    0, 0, 0, 0
+};
+
+
+/*Collect the kern class' data in one place*/
+static const lv_font_fmt_txt_kern_classes_t kern_classes =
+{
+    .class_pair_values   = kern_class_values,
+    .left_class_mapping  = kern_left_class_mapping,
+    .right_class_mapping = kern_right_class_mapping,
+    .left_class_cnt      = 38,
+    .right_class_cnt     = 38,
+};
+
+/*--------------------
+ *  ALL CUSTOM DATA
+ *--------------------*/
+
+#if LV_VERSION_CHECK(8, 0, 0)
+/*Store all the custom data of the font*/
+static  lv_font_fmt_txt_glyph_cache_t cache;
+static const lv_font_fmt_txt_dsc_t font_dsc = {
+#else
+static lv_font_fmt_txt_dsc_t font_dsc = {
+#endif
+    .glyph_bitmap = glyph_bitmap,
+    .glyph_dsc = glyph_dsc,
+    .cmaps = cmaps,
+    .kern_dsc = &kern_classes,
+    .kern_scale = 16,
+    .cmap_num = 2,
+    .bpp = 4,
+    .kern_classes = 1,
+    .bitmap_format = 0,
+#if LV_VERSION_CHECK(8, 0, 0)
+    .cache = &cache
+#endif
+};
+
+
+/*-----------------
+ *  PUBLIC FONT
+ *----------------*/
+
+/*Initialize a public general font descriptor*/
+#if LV_VERSION_CHECK(8, 0, 0)
+const lv_font_t lv_font_verdana_11 = {
+#else
+lv_font_t lv_font_verdana_11 = {
+#endif
+    .get_glyph_dsc = lv_font_get_glyph_dsc_fmt_txt,    /*Function pointer to get glyph's data*/
+    .get_glyph_bitmap = lv_font_get_bitmap_fmt_txt,    /*Function pointer to get glyph's bitmap*/
+    .line_height = 12,          /*The maximum line height required by the font*/
+    .base_line = 2,             /*Baseline measured from the bottom of the line*/
+#if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0)
+    .subpx = LV_FONT_SUBPX_NONE,
+#endif
+#if LV_VERSION_CHECK(7, 4, 0) || LVGL_VERSION_MAJOR >= 8
+    .underline_position = -1,
+    .underline_thickness = 1,
+#endif
+    .dsc = &font_dsc           /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
+};
+
+
+
+#endif /*#if LV_FONT_VERDANA_11*/

From 136e8aa3940cf6b8cc686d231deac987a65b0944 Mon Sep 17 00:00:00 2001
From: ParnikaGupta <guptaparnika9@gmail.com>
Date: Tue, 19 Mar 2024 14:12:33 +0530
Subject: [PATCH 20/32] chore: Removed verdana

---
 common/lv_conf.h                             |    7 +-
 common/lvgl/src/lv_font/lv_font.h            |    4 -
 common/lvgl/src/lv_font/lv_font.mk           |    1 -
 common/lvgl/src/lv_font/lv_font_verdana_11.c | 1436 ------------------
 4 files changed, 4 insertions(+), 1444 deletions(-)
 delete mode 100644 common/lvgl/src/lv_font/lv_font_verdana_11.c

diff --git a/common/lv_conf.h b/common/lv_conf.h
index c1e0926ce..3936af94b 100644
--- a/common/lv_conf.h
+++ b/common/lv_conf.h
@@ -37,6 +37,8 @@
 #define LV_COLOR_DEPTH     1
 #endif
 
+#define LV_SUBPX_BGR 1
+
 /* Swap the 2 bytes of RGB565 color.
  * Useful if the display has a 8 bit interface (e.g. SPI)*/
 #define LV_COLOR_16_SWAP   0
@@ -266,11 +268,10 @@ typedef void * lv_indev_drv_user_data_t;            /*Type of user data in the i
 
 /* Robot fonts with bpp = 4
  * https://fonts.google.com/specimen/Roboto  */
-#define LV_FONT_ROBOTO_12    0
+#define LV_FONT_ROBOTO_12    1
 #define LV_FONT_ROBOTO_16    0
 #define LV_FONT_ROBOTO_22    0
 #define LV_FONT_ROBOTO_28    0
-#define LV_FONT_VERDANA_11   1
 
 /*Pixel perfect monospace font
  * http://pelulamu.net/unscii/ */
@@ -285,7 +286,7 @@ typedef void * lv_indev_drv_user_data_t;            /*Type of user data in the i
 #define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(my_font) LV_FONT_DECLARE(my_logo) LV_FONT_DECLARE(nfc_logo)
 
 /*Always set a default font from the built-in fonts*/
-#define LV_FONT_DEFAULT        &lv_font_verdana_11
+#define LV_FONT_DEFAULT        &lv_font_roboto_12
 
 /* Enable it if you have fonts with a lot of characters.
  * The limit depends on the font size, font face and bpp
diff --git a/common/lvgl/src/lv_font/lv_font.h b/common/lvgl/src/lv_font/lv_font.h
index 07a26353f..e639a54a3 100644
--- a/common/lvgl/src/lv_font/lv_font.h
+++ b/common/lvgl/src/lv_font/lv_font.h
@@ -138,10 +138,6 @@ LV_FONT_DECLARE(lv_font_roboto_28)
 LV_FONT_DECLARE(lv_font_unscii_8)
 #endif
 
-#if LV_FONT_VERDANA_11
-LV_FONT_DECLARE(lv_font_verdana_11)
-#endif
-
 /*Declare the custom (user defined) fonts*/
 #ifdef LV_FONT_CUSTOM_DECLARE
 LV_FONT_CUSTOM_DECLARE
diff --git a/common/lvgl/src/lv_font/lv_font.mk b/common/lvgl/src/lv_font/lv_font.mk
index c8b95eba6..9f7918cf3 100644
--- a/common/lvgl/src/lv_font/lv_font.mk
+++ b/common/lvgl/src/lv_font/lv_font.mk
@@ -4,7 +4,6 @@ SRC_FILES += $(OLED_DIR)/lvgl/src/lv_font/lv_font_roboto_12.c
 SRC_FILES += $(OLED_DIR)/lvgl/src/lv_font/lv_font_roboto_16.c
 SRC_FILES += $(OLED_DIR)/lvgl/src/lv_font/lv_font_roboto_22.c
 SRC_FILES += $(OLED_DIR)/lvgl/src/lv_font/lv_font_roboto_28.c
-SRC_FILES += $(OLED_DIR)/lvgl/src/lv_font/lv_font_verdana_11.c
 SRC_FILES += $(OLED_DIR)/lvgl/src/lv_font/lv_font_unscii_8.c
 SRC_FILES += $(OLED_DIR)/lvgl/src/lv_font/my_logo.c
 SRC_FILES += $(OLED_DIR)/lvgl/src/lv_font/nfc_logo.c
diff --git a/common/lvgl/src/lv_font/lv_font_verdana_11.c b/common/lvgl/src/lv_font/lv_font_verdana_11.c
deleted file mode 100644
index e89860b74..000000000
--- a/common/lvgl/src/lv_font/lv_font_verdana_11.c
+++ /dev/null
@@ -1,1436 +0,0 @@
-/*******************************************************************************
- * Size: 11 px
- * Bpp: 4
- * Opts: --no-compress --no-prefilter --bpp 4 --size 11 --font verdana.ttf -r 0x20-0x7F --font FontAwesome.ttf -r 61441,61448,61451,61452,61453,61457,61459,61460,61461,61465,61468,61473,61478,61479,61480,61502,61504,61512,61515,61516,61517,61521,61522,61523,61524,61543,61544,61553,61556,61559,61560,61561,61563,61587,61589,61636,61637,61639,61671,61683,61724,61732,61787,61931,62016,62017,62018,62019,62020,62099 --format lvgl -o lv_font_verdana_11.c --force-fast-kern-format
- ******************************************************************************/
-
-#ifdef LV_LVGL_H_INCLUDE_SIMPLE
-#include "lvgl.h"
-#else
-#include "lvgl/lvgl.h"
-#endif
-
-#ifndef LV_FONT_VERDANA_11
-#define LV_FONT_VERDANA_11 1
-#endif
-
-#if LV_FONT_VERDANA_11
-
-/*-----------------
- *    BITMAPS
- *----------------*/
-
-/*Store the image of the glyphs*/
-static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
-    /* U+0020 " " */
-
-    /* U+0021 "!" */
-    0x6c, 0x6b, 0x5b, 0x5a, 0x5a, 0x26, 0x1, 0x6b,
-
-    /* U+0022 "\"" */
-    0xf, 0xf, 0x10, 0xf0, 0xe0, 0xc, 0xc, 0x0,
-    0x0, 0x0,
-
-    /* U+0023 "#" */
-    0x0, 0x1a, 0xb, 0x0, 0x5, 0x62, 0x80, 0x3b,
-    0xec, 0xdc, 0xa0, 0xa, 0xa, 0x0, 0x0, 0xa0,
-    0xb0, 0xa, 0xcd, 0xbd, 0xb3, 0x8, 0x26, 0x40,
-    0x0, 0xb0, 0x91, 0x0,
-
-    /* U+0024 "$" */
-    0x0, 0xa, 0x0, 0x0, 0x3b, 0xec, 0x90, 0xe,
-    0x2a, 0x4, 0x0, 0xf3, 0xa0, 0x0, 0x4, 0xcf,
-    0xb5, 0x0, 0x0, 0xa3, 0xe2, 0x13, 0xa, 0xd,
-    0x11, 0xcc, 0xeb, 0x50, 0x0, 0xa, 0x0, 0x0,
-    0x0, 0xa0, 0x0,
-
-    /* U+0025 "%" */
-    0x7, 0xbc, 0x20, 0xa, 0x30, 0x0, 0x1d, 0x5,
-    0x90, 0x3a, 0x0, 0x0, 0x2c, 0x3, 0xb0, 0xb2,
-    0x0, 0x0, 0xd, 0x6, 0x94, 0x92, 0xbb, 0x40,
-    0x5, 0xba, 0x1c, 0x1b, 0x31, 0xd0, 0x0, 0x0,
-    0x49, 0xe, 0x10, 0xe0, 0x0, 0x0, 0xc1, 0xc,
-    0x20, 0xd0, 0x0, 0x5, 0x80, 0x4, 0xaa, 0x50,
-
-    /* U+0026 "&" */
-    0x4, 0xbb, 0xa0, 0x0, 0x0, 0xe2, 0xd, 0x40,
-    0x0, 0xd, 0x61, 0xd1, 0x0, 0x0, 0x3f, 0xd3,
-    0x1b, 0x0, 0x1d, 0x29, 0xa2, 0xc0, 0x5, 0xc0,
-    0x9, 0xd8, 0x0, 0x3e, 0x10, 0x1e, 0xb0, 0x0,
-    0x6c, 0xaa, 0x27, 0xc0,
-
-    /* U+0027 "'" */
-    0x1f, 0x0, 0xf0, 0xd, 0x0, 0x0,
-
-    /* U+0028 "(" */
-    0x0, 0x6b, 0x0, 0x1e, 0x10, 0x9, 0x70, 0x0,
-    0xd2, 0x0, 0xf, 0x0, 0x0, 0xf0, 0x0, 0xd,
-    0x10, 0x0, 0x97, 0x0, 0x1, 0xd0, 0x0, 0x6,
-    0xb0,
-
-    /* U+0029 ")" */
-    0xb, 0x60, 0x0, 0x1d, 0x10, 0x0, 0x78, 0x0,
-    0x2, 0xd0, 0x0, 0xf, 0x0, 0x0, 0xf0, 0x0,
-    0x2d, 0x0, 0x7, 0x80, 0x1, 0xe1, 0x0, 0xb6,
-    0x0,
-
-    /* U+002A "*" */
-    0x1, 0xa, 0x1, 0x0, 0x98, 0xb8, 0x90, 0x0,
-    0x8f, 0x80, 0x0, 0xa5, 0xa5, 0xa0, 0x0, 0x8,
-    0x0, 0x0,
-
-    /* U+002B "+" */
-    0x0, 0x7, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0,
-    0xe, 0x0, 0xb, 0xdd, 0xfd, 0xdb, 0x0, 0xe,
-    0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe, 0x0,
-    0x0,
-
-    /* U+002C "," */
-    0x2, 0x70, 0x8, 0xa0, 0xc, 0x30, 0x1c, 0x0,
-
-    /* U+002D "-" */
-    0x2f, 0xff, 0x20,
-
-    /* U+002E "." */
-    0x44, 0xaa,
-
-    /* U+002F "/" */
-    0x0, 0x0, 0x86, 0x0, 0x0, 0xd0, 0x0, 0x5,
-    0x90, 0x0, 0xb, 0x30, 0x0, 0x2c, 0x0, 0x0,
-    0x86, 0x0, 0x0, 0xd0, 0x0, 0x5, 0x90, 0x0,
-    0xc, 0x20, 0x0, 0x6, 0x0, 0x0,
-
-    /* U+0030 "0" */
-    0x2, 0xce, 0xc2, 0x0, 0xd5, 0x5, 0xc0, 0x2f,
-    0x0, 0xe, 0x13, 0xd0, 0x0, 0xd3, 0x3d, 0x0,
-    0xd, 0x32, 0xe0, 0x0, 0xe2, 0xd, 0x50, 0x5d,
-    0x0, 0x2c, 0xdc, 0x20,
-
-    /* U+0031 "1" */
-    0x0, 0xd3, 0x5, 0xdf, 0x30, 0x0, 0xd3, 0x0,
-    0xd, 0x30, 0x0, 0xd3, 0x0, 0xd, 0x30, 0x0,
-    0xd3, 0x6, 0xcf, 0xda,
-
-    /* U+0032 "2" */
-    0xa, 0xee, 0xc2, 0x0, 0x60, 0x7, 0xc0, 0x0,
-    0x0, 0x3e, 0x0, 0x0, 0x9, 0x90, 0x0, 0x7,
-    0xc0, 0x0, 0x7, 0xc1, 0x0, 0xa, 0xa0, 0x0,
-    0x2, 0xfe, 0xee, 0xe4,
-
-    /* U+0033 "3" */
-    0x8, 0xde, 0xd5, 0x0, 0x50, 0x4, 0xe0, 0x0,
-    0x0, 0x6b, 0x0, 0x3, 0xed, 0x20, 0x0, 0x0,
-    0x4e, 0x0, 0x0, 0x0, 0xf1, 0x15, 0x0, 0x6e,
-    0x0, 0xbe, 0xec, 0x30,
-
-    /* U+0034 "4" */
-    0x0, 0x2, 0xf4, 0x0, 0x1, 0xdd, 0x40, 0x0,
-    0xb4, 0xc4, 0x0, 0x97, 0xc, 0x40, 0x6a, 0x0,
-    0xc4, 0x8, 0xdd, 0xdf, 0xd6, 0x0, 0x0, 0xc4,
-    0x0, 0x0, 0xc, 0x40,
-
-    /* U+0035 "5" */
-    0xaf, 0xee, 0xe2, 0xa6, 0x0, 0x0, 0xa6, 0x0,
-    0x0, 0xae, 0xec, 0x40, 0x0, 0x5, 0xf0, 0x0,
-    0x0, 0xe2, 0x50, 0x5, 0xe0, 0xbe, 0xec, 0x30,
-
-    /* U+0036 "6" */
-    0x0, 0x5d, 0xe9, 0x0, 0x7c, 0x20, 0x0, 0xf,
-    0x20, 0x0, 0x2, 0xfa, 0xdd, 0x50, 0x3e, 0x10,
-    0x2e, 0x22, 0xe0, 0x0, 0xb5, 0xd, 0x50, 0x1e,
-    0x20, 0x2b, 0xdc, 0x40,
-
-    /* U+0037 "7" */
-    0x2e, 0xee, 0xef, 0x40, 0x0, 0x0, 0xe2, 0x0,
-    0x0, 0x79, 0x0, 0x0, 0x1e, 0x10, 0x0, 0x9,
-    0x80, 0x0, 0x2, 0xe1, 0x0, 0x0, 0xa7, 0x0,
-    0x0, 0x3e, 0x0, 0x0,
-
-    /* U+0038 "8" */
-    0x4, 0xcc, 0xc4, 0x0, 0xf1, 0x2, 0xf0, 0xf,
-    0x40, 0x1f, 0x0, 0x5f, 0xbb, 0x40, 0xc, 0x43,
-    0xac, 0x4, 0xc0, 0x0, 0xd4, 0x2e, 0x20, 0x1e,
-    0x20, 0x5c, 0xcc, 0x40,
-
-    /* U+0039 "9" */
-    0x4, 0xdd, 0xb2, 0x2, 0xe2, 0x5, 0xc0, 0x5b,
-    0x0, 0xe, 0x22, 0xe2, 0x1, 0xe3, 0x5, 0xdd,
-    0xaf, 0x20, 0x0, 0x2, 0xe0, 0x0, 0x1, 0xc6,
-    0x0, 0x9e, 0xd5, 0x0,
-
-    /* U+003A ":" */
-    0x2f, 0x21, 0x71, 0x0, 0x0, 0x0, 0x17, 0x12,
-    0xf2,
-
-    /* U+003B ";" */
-    0x2f, 0x21, 0x71, 0x0, 0x0, 0x0, 0x7, 0x31,
-    0xf1, 0x5a, 0xa, 0x30,
-
-    /* U+003C "<" */
-    0x0, 0x0, 0x0, 0x20, 0x0, 0x18, 0xd5, 0x3,
-    0xac, 0x60, 0x8, 0xf5, 0x0, 0x0, 0x6, 0xda,
-    0x30, 0x0, 0x0, 0x4b, 0xc4, 0x0, 0x0, 0x2,
-    0x40,
-
-    /* U+003D "=" */
-    0x9d, 0xdd, 0xdd, 0x90, 0x0, 0x0, 0x0, 0x9d,
-    0xdd, 0xdd, 0x90,
-
-    /* U+003E ">" */
-    0x20, 0x0, 0x0, 0x5, 0xd8, 0x10, 0x0, 0x0,
-    0x6c, 0xa3, 0x0, 0x0, 0x5, 0xf8, 0x0, 0x3a,
-    0xc6, 0x4, 0xcb, 0x40, 0x0, 0x42, 0x0, 0x0,
-    0x0,
-
-    /* U+003F "?" */
-    0x1c, 0xee, 0x80, 0x3, 0x1, 0xd4, 0x0, 0x0,
-    0xc4, 0x0, 0x8, 0xc0, 0x0, 0xb8, 0x0, 0x0,
-    0xa2, 0x0, 0x0, 0x10, 0x0, 0x0, 0xd4, 0x0,
-
-    /* U+0040 "@" */
-    0x0, 0x7, 0xbb, 0xb9, 0x10, 0x0, 0xb, 0x50,
-    0x0, 0x2c, 0x20, 0x8, 0x42, 0xcc, 0xc8, 0x2a,
-    0x0, 0xc0, 0xb4, 0x5, 0x80, 0xc0, 0xb, 0xd,
-    0x0, 0x58, 0xb, 0x0, 0xc0, 0xa5, 0x8, 0x80,
-    0xb0, 0x8, 0x51, 0xab, 0x7b, 0x95, 0x0, 0xb,
-    0x60, 0x0, 0x0, 0x0, 0x0, 0x5, 0xbb, 0xb5,
-    0x0, 0x0,
-
-    /* U+0041 "A" */
-    0x0, 0x2f, 0xa0, 0x0, 0x0, 0x7a, 0xf0, 0x0,
-    0x0, 0xd3, 0xb6, 0x0, 0x3, 0xd0, 0x6b, 0x0,
-    0x9, 0x80, 0x1f, 0x10, 0xe, 0xee, 0xef, 0x70,
-    0x5c, 0x0, 0x5, 0xd0, 0xa6, 0x0, 0x0, 0xe3,
-
-    /* U+0042 "B" */
-    0xee, 0xee, 0xa0, 0xe, 0x20, 0xd, 0x50, 0xe2,
-    0x1, 0xd2, 0xe, 0xdd, 0xfc, 0x20, 0xe2, 0x0,
-    0x6d, 0xe, 0x20, 0x0, 0xf0, 0xe2, 0x0, 0x6d,
-    0xe, 0xee, 0xeb, 0x20,
-
-    /* U+0043 "C" */
-    0x0, 0x7d, 0xee, 0x91, 0x9, 0xb1, 0x1, 0x73,
-    0x2f, 0x10, 0x0, 0x0, 0x5c, 0x0, 0x0, 0x0,
-    0x5c, 0x0, 0x0, 0x0, 0x2f, 0x10, 0x0, 0x0,
-    0xa, 0xb1, 0x1, 0x73, 0x0, 0x8d, 0xee, 0x91,
-
-    /* U+0044 "D" */
-    0xee, 0xee, 0x91, 0xe, 0x20, 0x17, 0xe1, 0xe2,
-    0x0, 0x9, 0x8e, 0x20, 0x0, 0x5c, 0xe2, 0x0,
-    0x5, 0xce, 0x20, 0x0, 0x98, 0xe2, 0x0, 0x7e,
-    0x1e, 0xee, 0xe9, 0x10,
-
-    /* U+0045 "E" */
-    0xee, 0xee, 0xe5, 0xe2, 0x0, 0x0, 0xe2, 0x0,
-    0x0, 0xee, 0xee, 0xe4, 0xe2, 0x0, 0x0, 0xe2,
-    0x0, 0x0, 0xe2, 0x0, 0x0, 0xee, 0xee, 0xe5,
-
-    /* U+0046 "F" */
-    0xee, 0xee, 0xe2, 0xe2, 0x0, 0x0, 0xe2, 0x0,
-    0x0, 0xee, 0xee, 0x80, 0xe2, 0x0, 0x0, 0xe2,
-    0x0, 0x0, 0xe2, 0x0, 0x0, 0xe2, 0x0, 0x0,
-
-    /* U+0047 "G" */
-    0x0, 0x7d, 0xee, 0xb4, 0x9, 0xc2, 0x0, 0x48,
-    0x2f, 0x10, 0x0, 0x0, 0x5c, 0x0, 0x0, 0x0,
-    0x5c, 0x0, 0x6e, 0xeb, 0x2f, 0x10, 0x0, 0x5c,
-    0x9, 0xc2, 0x0, 0x6c, 0x0, 0x6c, 0xed, 0xb4,
-
-    /* U+0048 "H" */
-    0xe2, 0x0, 0xe, 0x3e, 0x20, 0x0, 0xe3, 0xe2,
-    0x0, 0xe, 0x3e, 0xee, 0xee, 0xf3, 0xe2, 0x0,
-    0xe, 0x3e, 0x20, 0x0, 0xe3, 0xe2, 0x0, 0xe,
-    0x3e, 0x20, 0x0, 0xe3,
-
-    /* U+0049 "I" */
-    0x3d, 0xfb, 0x3, 0xd0, 0x3, 0xd0, 0x3, 0xd0,
-    0x3, 0xd0, 0x3, 0xd0, 0x3, 0xd0, 0x3d, 0xfb,
-
-    /* U+004A "J" */
-    0x9, 0xdf, 0x0, 0x1f, 0x0, 0x1f, 0x0, 0x1f,
-    0x0, 0x1f, 0x0, 0x1f, 0x0, 0x4d, 0xae, 0xd4,
-
-    /* U+004B "K" */
-    0xe2, 0x0, 0x6c, 0xe, 0x20, 0x5d, 0x10, 0xe2,
-    0x4d, 0x10, 0xe, 0x6e, 0x20, 0x0, 0xed, 0xe6,
-    0x0, 0xe, 0x32, 0xe4, 0x0, 0xe2, 0x3, 0xe3,
-    0xe, 0x20, 0x5, 0xe2,
-
-    /* U+004C "L" */
-    0xe2, 0x0, 0x0, 0xe2, 0x0, 0x0, 0xe2, 0x0,
-    0x0, 0xe2, 0x0, 0x0, 0xe2, 0x0, 0x0, 0xe2,
-    0x0, 0x0, 0xe2, 0x0, 0x0, 0xee, 0xee, 0xe2,
-
-    /* U+004D "M" */
-    0xec, 0x0, 0x8, 0xf3, 0xed, 0x30, 0xd, 0xe3,
-    0xe5, 0xb0, 0x77, 0xd3, 0xe1, 0xc3, 0xd0, 0xd3,
-    0xe1, 0x5e, 0x80, 0xd3, 0xe1, 0xb, 0x10, 0xd3,
-    0xe1, 0x0, 0x0, 0xd3, 0xe1, 0x0, 0x0, 0xd3,
-
-    /* U+004E "N" */
-    0xee, 0x0, 0xd, 0x2e, 0xa8, 0x0, 0xd2, 0xe2,
-    0xe1, 0xd, 0x2e, 0x18, 0x90, 0xd2, 0xe1, 0x1e,
-    0x2d, 0x2e, 0x10, 0x7a, 0xd2, 0xe1, 0x0, 0xee,
-    0x2e, 0x10, 0x6, 0xf2,
-
-    /* U+004F "O" */
-    0x0, 0x8e, 0xed, 0x40, 0x0, 0xaa, 0x10, 0x3e,
-    0x40, 0x2f, 0x0, 0x0, 0x5c, 0x4, 0xc0, 0x0,
-    0x2, 0xf0, 0x4c, 0x0, 0x0, 0x2f, 0x2, 0xf0,
-    0x0, 0x5, 0xd0, 0xa, 0xa1, 0x3, 0xe4, 0x0,
-    0x8, 0xee, 0xd5, 0x0,
-
-    /* U+0050 "P" */
-    0xee, 0xed, 0x50, 0xe2, 0x3, 0xf1, 0xe2, 0x0,
-    0xd4, 0xe2, 0x5, 0xe1, 0xee, 0xeb, 0x30, 0xe2,
-    0x0, 0x0, 0xe2, 0x0, 0x0, 0xe2, 0x0, 0x0,
-
-    /* U+0051 "Q" */
-    0x0, 0x8e, 0xed, 0x40, 0x0, 0xaa, 0x10, 0x3e,
-    0x40, 0x2f, 0x0, 0x0, 0x5c, 0x4, 0xc0, 0x0,
-    0x2, 0xf0, 0x4c, 0x0, 0x0, 0x2f, 0x2, 0xf0,
-    0x0, 0x5, 0xc0, 0xa, 0xa1, 0x3, 0xe5, 0x0,
-    0x8, 0xee, 0xf5, 0x0, 0x0, 0x0, 0x1f, 0x10,
-    0x0, 0x0, 0x0, 0x7e, 0xe2,
-
-    /* U+0052 "R" */
-    0xee, 0xed, 0x60, 0xe, 0x20, 0x2f, 0x20, 0xe2,
-    0x0, 0xd4, 0xe, 0x20, 0x4e, 0x0, 0xed, 0xee,
-    0x20, 0xe, 0x20, 0xc7, 0x0, 0xe2, 0x1, 0xe5,
-    0xe, 0x20, 0x2, 0xe4,
-
-    /* U+0053 "S" */
-    0x3, 0xce, 0xec, 0x41, 0xf3, 0x0, 0x45, 0x2f,
-    0x0, 0x0, 0x0, 0xbe, 0x97, 0x20, 0x0, 0x37,
-    0x9e, 0x70, 0x0, 0x0, 0x4d, 0x38, 0x10, 0x9,
-    0xa1, 0xae, 0xed, 0x90,
-
-    /* U+0054 "T" */
-    0xee, 0xef, 0xee, 0xb0, 0x2, 0xe0, 0x0, 0x0,
-    0x2e, 0x0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x2e,
-    0x0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x2e, 0x0,
-    0x0, 0x2, 0xe0, 0x0,
-
-    /* U+0055 "U" */
-    0xf, 0x0, 0x0, 0xf1, 0xf, 0x0, 0x0, 0xf1,
-    0xf, 0x0, 0x0, 0xf1, 0xf, 0x0, 0x0, 0xf1,
-    0xf, 0x0, 0x0, 0xf1, 0xf, 0x10, 0x0, 0xf0,
-    0xa, 0x80, 0x8, 0xb0, 0x1, 0xae, 0xeb, 0x10,
-
-    /* U+0056 "V" */
-    0xa7, 0x0, 0x0, 0xe3, 0x5d, 0x0, 0x3, 0xd0,
-    0xe, 0x20, 0x9, 0x70, 0x9, 0x80, 0xe, 0x10,
-    0x3, 0xe0, 0x5b, 0x0, 0x0, 0xd3, 0xa6, 0x0,
-    0x0, 0x7a, 0xe0, 0x0, 0x0, 0x2f, 0xa0, 0x0,
-
-    /* U+0057 "W" */
-    0x5b, 0x0, 0x3f, 0x10, 0xc, 0x31, 0xf0, 0x7,
-    0xe5, 0x0, 0xf0, 0xd, 0x30, 0xb6, 0x90, 0x4b,
-    0x0, 0x97, 0xd, 0xd, 0x8, 0x70, 0x5, 0xb3,
-    0xa0, 0xc1, 0xc3, 0x0, 0x1f, 0x76, 0x8, 0x6e,
-    0x0, 0x0, 0xce, 0x20, 0x4d, 0xa0, 0x0, 0x8,
-    0xe0, 0x0, 0xf6, 0x0,
-
-    /* U+0058 "X" */
-    0x3e, 0x10, 0x5, 0xc0, 0x8, 0xa0, 0x1e, 0x20,
-    0x0, 0xd4, 0xa6, 0x0, 0x0, 0x3f, 0xb0, 0x0,
-    0x0, 0x3e, 0xc0, 0x0, 0x0, 0xd3, 0xb7, 0x0,
-    0x9, 0x80, 0x1e, 0x20, 0x4d, 0x0, 0x6, 0xc0,
-
-    /* U+0059 "Y" */
-    0xa8, 0x0, 0xb, 0x61, 0xe2, 0x5, 0xc0, 0x6,
-    0xb0, 0xd2, 0x0, 0xc, 0xc8, 0x0, 0x0, 0x4f,
-    0x0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x2e, 0x0,
-    0x0, 0x2, 0xe0, 0x0,
-
-    /* U+005A "Z" */
-    0x2e, 0xee, 0xef, 0xc0, 0x0, 0x0, 0xd5, 0x0,
-    0x0, 0xa8, 0x0, 0x0, 0x7b, 0x0, 0x0, 0x4d,
-    0x10, 0x0, 0x2e, 0x20, 0x0, 0xd, 0x50, 0x0,
-    0x5, 0xfe, 0xee, 0xed,
-
-    /* U+005B "[" */
-    0xbc, 0xc0, 0xb3, 0x0, 0xb3, 0x0, 0xb3, 0x0,
-    0xb3, 0x0, 0xb3, 0x0, 0xb3, 0x0, 0xb3, 0x0,
-    0xb3, 0x0, 0xbc, 0xc0,
-
-    /* U+005C "\\" */
-    0x68, 0x0, 0x0, 0xd, 0x0, 0x0, 0x9, 0x50,
-    0x0, 0x3, 0xb0, 0x0, 0x0, 0xc2, 0x0, 0x0,
-    0x68, 0x0, 0x0, 0xd, 0x0, 0x0, 0x9, 0x50,
-    0x0, 0x2, 0xc0, 0x0, 0x0, 0x60,
-
-    /* U+005D "]" */
-    0xc, 0xcb, 0x0, 0x3b, 0x0, 0x3b, 0x0, 0x3b,
-    0x0, 0x3b, 0x0, 0x3b, 0x0, 0x3b, 0x0, 0x3b,
-    0x0, 0x3b, 0xc, 0xcb,
-
-    /* U+005E "^" */
-    0x0, 0x4f, 0x40, 0x0, 0x1d, 0x3d, 0x10, 0xc,
-    0x40, 0x4c, 0x9, 0x70, 0x0, 0x79,
-
-    /* U+005F "_" */
-    0xa, 0xaa, 0xaa, 0xaa, 0x0,
-
-    /* U+0060 "`" */
-    0xc, 0x50, 0x2, 0xc0,
-
-    /* U+0061 "a" */
-    0xb, 0xed, 0xb1, 0x2, 0x0, 0x88, 0x5, 0xac,
-    0xda, 0x4d, 0x20, 0x5a, 0x5a, 0x0, 0x8a, 0xb,
-    0xcc, 0xba,
-
-    /* U+0062 "b" */
-    0xf0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0xf8, 0xee,
-    0x50, 0xf5, 0x3, 0xe0, 0xf0, 0x0, 0xd3, 0xf0,
-    0x0, 0xd3, 0xf0, 0x4, 0xd0, 0xfb, 0xdc, 0x30,
-
-    /* U+0063 "c" */
-    0x4, 0xcd, 0xd4, 0x1e, 0x20, 0x13, 0x5a, 0x0,
-    0x0, 0x5a, 0x0, 0x0, 0x1e, 0x20, 0x13, 0x4,
-    0xdd, 0xd4,
-
-    /* U+0064 "d" */
-    0x0, 0x0, 0x2d, 0x0, 0x0, 0x2d, 0x4, 0xde,
-    0xcd, 0x1e, 0x30, 0x3d, 0x5b, 0x0, 0x2d, 0x5a,
-    0x0, 0x2d, 0x2e, 0x0, 0x4d, 0x6, 0xdb, 0xad,
-
-    /* U+0065 "e" */
-    0x4, 0xcc, 0xc3, 0x1, 0xc1, 0x3, 0xd0, 0x5e,
-    0xcc, 0xcd, 0x5, 0xb0, 0x0, 0x0, 0x1e, 0x40,
-    0x5, 0x0, 0x4c, 0xdd, 0x90,
-
-    /* U+0066 "f" */
-    0x5, 0xdd, 0x20, 0xe1, 0x0, 0x8f, 0xdb, 0x0,
-    0xf1, 0x0, 0xf, 0x10, 0x0, 0xf1, 0x0, 0xf,
-    0x10, 0x0, 0xf1, 0x0,
-
-    /* U+0067 "g" */
-    0x4, 0xde, 0xcd, 0x1e, 0x30, 0x3d, 0x5b, 0x0,
-    0x2d, 0x5a, 0x0, 0x2d, 0x2e, 0x10, 0x6d, 0x7,
-    0xed, 0xac, 0x1, 0x0, 0x69, 0xa, 0xed, 0xa1,
-
-    /* U+0068 "h" */
-    0xf0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0xf7, 0xde,
-    0x50, 0xf5, 0x3, 0xe0, 0xf0, 0x0, 0xf0, 0xf0,
-    0x0, 0xf0, 0xf0, 0x0, 0xf0, 0xf0, 0x0, 0xf0,
-
-    /* U+0069 "i" */
-    0x1f, 0x10, 0x0, 0xf, 0x0, 0xf0, 0xf, 0x0,
-    0xf0, 0xf, 0x0, 0xf0,
-
-    /* U+006A "j" */
-    0x0, 0x4d, 0x0, 0x0, 0x6, 0xdc, 0x0, 0x3c,
-    0x0, 0x3c, 0x0, 0x3c, 0x0, 0x3c, 0x0, 0x3c,
-    0x0, 0x6b, 0x4e, 0xd3,
-
-    /* U+006B "k" */
-    0xf0, 0x0, 0x0, 0xf0, 0x0, 0x0, 0xf0, 0x8,
-    0xb0, 0xf0, 0x7b, 0x0, 0xf8, 0xb0, 0x0, 0xfa,
-    0xe3, 0x0, 0xf0, 0x4e, 0x20, 0xf0, 0x5, 0xd1,
-
-    /* U+006C "l" */
-    0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0,
-
-    /* U+006D "m" */
-    0xf9, 0xcd, 0x6a, 0xcd, 0x2f, 0x30, 0x4e, 0x20,
-    0x6a, 0xf0, 0x2, 0xd0, 0x4, 0xbf, 0x0, 0x2e,
-    0x0, 0x4c, 0xf0, 0x2, 0xe0, 0x4, 0xcf, 0x0,
-    0x2e, 0x0, 0x4c,
-
-    /* U+006E "n" */
-    0xf9, 0xcd, 0x50, 0xf3, 0x2, 0xe0, 0xf0, 0x0,
-    0xf0, 0xf0, 0x0, 0xf0, 0xf0, 0x0, 0xf0, 0xf0,
-    0x0, 0xf0,
-
-    /* U+006F "o" */
-    0x4, 0xdd, 0xb1, 0x1, 0xe2, 0x6, 0xc0, 0x5a,
-    0x0, 0xf, 0x5, 0xa0, 0x0, 0xf0, 0x1e, 0x10,
-    0x6c, 0x0, 0x5d, 0xdb, 0x20,
-
-    /* U+0070 "p" */
-    0xf9, 0xbd, 0x50, 0xf2, 0x1, 0xe0, 0xf0, 0x0,
-    0xc3, 0xf0, 0x0, 0xd3, 0xf0, 0x4, 0xd0, 0xfc,
-    0xec, 0x30, 0xf0, 0x0, 0x0, 0xf0, 0x0, 0x0,
-
-    /* U+0071 "q" */
-    0x4, 0xde, 0xcd, 0x1e, 0x20, 0x3d, 0x5b, 0x0,
-    0x2d, 0x5a, 0x0, 0x2d, 0x2e, 0x10, 0x6d, 0x6,
-    0xed, 0x9d, 0x0, 0x0, 0x2d, 0x0, 0x0, 0x2d,
-
-    /* U+0072 "r" */
-    0xf7, 0xeb, 0xf6, 0x0, 0xf0, 0x0, 0xf0, 0x0,
-    0xf0, 0x0, 0xf0, 0x0,
-
-    /* U+0073 "s" */
-    0x9, 0xdd, 0xb0, 0x4c, 0x0, 0x30, 0x2e, 0x96,
-    0x10, 0x1, 0x59, 0xe1, 0x32, 0x0, 0xd3, 0x3c,
-    0xdd, 0x70,
-
-    /* U+0074 "t" */
-    0x7, 0x0, 0x0, 0xf0, 0x0, 0x8f, 0xdd, 0x10,
-    0xf0, 0x0, 0xf, 0x0, 0x0, 0xf0, 0x0, 0xe,
-    0x20, 0x0, 0x6e, 0xd1,
-
-    /* U+0075 "u" */
-    0xf, 0x0, 0xf, 0xf, 0x0, 0xf, 0xf, 0x0,
-    0xf, 0xf, 0x0, 0xf, 0xf, 0x10, 0x4f, 0x6,
-    0xdc, 0x9f,
-
-    /* U+0076 "v" */
-    0x79, 0x0, 0x1e, 0x1, 0xe0, 0x7, 0x90, 0xa,
-    0x60, 0xd2, 0x0, 0x4c, 0x3c, 0x0, 0x0, 0xdc,
-    0x50, 0x0, 0x7, 0xe0, 0x0,
-
-    /* U+0077 "w" */
-    0x6a, 0x1, 0xf1, 0x9, 0x62, 0xd0, 0x6d, 0x70,
-    0xc2, 0xd, 0x1b, 0x4c, 0xe, 0x0, 0x96, 0xc0,
-    0xc5, 0xa0, 0x5, 0xe7, 0x7, 0xe5, 0x0, 0x1f,
-    0x20, 0x1f, 0x10,
-
-    /* U+0078 "x" */
-    0x4e, 0x10, 0x5c, 0x0, 0x8b, 0x2d, 0x10, 0x0,
-    0xbe, 0x30, 0x0, 0xb, 0xe4, 0x0, 0x7, 0x93,
-    0xe1, 0x4, 0xd0, 0x7, 0xc0,
-
-    /* U+0079 "y" */
-    0x7a, 0x0, 0x1e, 0x1, 0xe1, 0x8, 0x80, 0x9,
-    0x70, 0xe1, 0x0, 0x2e, 0x6a, 0x0, 0x0, 0xbf,
-    0x30, 0x0, 0x6, 0xc0, 0x0, 0x0, 0xb5, 0x0,
-    0x0, 0x2e, 0x0, 0x0,
-
-    /* U+007A "z" */
-    0x5d, 0xdd, 0xf3, 0x0, 0x8, 0x90, 0x0, 0x5c,
-    0x0, 0x2, 0xd1, 0x0, 0xd, 0x40, 0x0, 0x7f,
-    0xdd, 0xd4,
-
-    /* U+007B "{" */
-    0x0, 0x5, 0xcb, 0x0, 0xe, 0x10, 0x0, 0xf,
-    0x0, 0x0, 0x6a, 0x0, 0x1e, 0xb0, 0x0, 0x0,
-    0x78, 0x0, 0x0, 0xe, 0x0, 0x0, 0xf, 0x0,
-    0x0, 0xd, 0x10, 0x0, 0x4, 0xcb,
-
-    /* U+007C "|" */
-    0xff, 0xff, 0xff, 0xff, 0xff,
-
-    /* U+007D "}" */
-    0xbc, 0x50, 0x0, 0x1, 0xe0, 0x0, 0x0, 0xf0,
-    0x0, 0x0, 0xb5, 0x0, 0x0, 0xc, 0xe0, 0x0,
-    0x97, 0x0, 0x0, 0xf0, 0x0, 0x0, 0xf0, 0x0,
-    0x2, 0xd0, 0x0, 0xbc, 0x40, 0x0,
-
-    /* U+007E "~" */
-    0x2c, 0xc3, 0x0, 0xcb, 0x32, 0xd2, 0x3b, 0xd0,
-    0x3, 0xcc, 0x20,
-
-    /* U+F001 "" */
-    0x0, 0x0, 0x0, 0x4, 0x95, 0x0, 0x1, 0x6b,
-    0xff, 0xfa, 0x0, 0xd, 0xff, 0xff, 0xfa, 0x0,
-    0xd, 0xff, 0xfe, 0xaa, 0x0, 0xd, 0xc8, 0x30,
-    0x2a, 0x0, 0xc, 0x0, 0x0, 0x2a, 0x0, 0xc,
-    0x0, 0x26, 0x6a, 0x0, 0xc, 0x2, 0xff, 0xfa,
-    0x6c, 0xcd, 0x0, 0xae, 0xc3, 0xef, 0xfd, 0x0,
-    0x0, 0x0, 0x16, 0x61, 0x0, 0x0, 0x0,
-
-    /* U+F008 "" */
-    0x8c, 0xcc, 0xcc, 0xcc, 0xcc, 0xc6, 0xd0, 0xd0,
-    0x0, 0x0, 0x3b, 0xc, 0xd1, 0xd0, 0x0, 0x0,
-    0x2b, 0x1c, 0xfb, 0xf0, 0x0, 0x0, 0x2e, 0xcc,
-    0xc0, 0xc0, 0x0, 0x0, 0x2a, 0xc, 0xfc, 0xfd,
-    0xcc, 0xcc, 0xdf, 0xdc, 0xc0, 0xc0, 0x0, 0x0,
-    0x2a, 0xc, 0xfc, 0xf0, 0x0, 0x0, 0x2f, 0xdc,
-    0xd0, 0xd0, 0x0, 0x0, 0x2b, 0xc, 0xd0, 0xd1,
-    0x0, 0x0, 0x3b, 0x1c, 0x8c, 0xcc, 0xcc, 0xcc,
-    0xcc, 0xc6,
-
-    /* U+F00B "" */
-    0x56, 0x60, 0x56, 0x66, 0x66, 0x5f, 0xff, 0x3f,
-    0xff, 0xff, 0xff, 0xdf, 0xe1, 0xdf, 0xff, 0xff,
-    0xd3, 0x54, 0x4, 0x55, 0x55, 0x53, 0xff, 0xf3,
-    0xff, 0xff, 0xff, 0xfc, 0xed, 0x1d, 0xee, 0xee,
-    0xec, 0x45, 0x50, 0x45, 0x55, 0x55, 0x4f, 0xff,
-    0x3f, 0xff, 0xff, 0xff, 0xef, 0xf1, 0xef, 0xff,
-    0xff, 0xe0,
-
-    /* U+F00C "" */
-    0x0, 0x0, 0x0, 0x0, 0x31, 0x0, 0x0, 0x0,
-    0x0, 0x4f, 0xd0, 0x0, 0x0, 0x0, 0x4f, 0xfe,
-    0x10, 0xbe, 0x20, 0x4f, 0xfe, 0x20, 0x1f, 0xfe,
-    0x6f, 0xfe, 0x20, 0x0, 0x4f, 0xff, 0xfe, 0x20,
-    0x0, 0x0, 0x4f, 0xfe, 0x20, 0x0, 0x0, 0x0,
-    0x4c, 0x20, 0x0, 0x0,
-
-    /* U+F00D "" */
-    0x0, 0x0, 0x0, 0x10, 0xc, 0xe2, 0x6, 0xf7,
-    0x2f, 0xfe, 0x7f, 0xfc, 0x5, 0xff, 0xff, 0xd1,
-    0x0, 0x9f, 0xff, 0x30, 0x6, 0xff, 0xff, 0xe2,
-    0x3f, 0xfd, 0x6f, 0xfd, 0xb, 0xd1, 0x5, 0xf6,
-    0x0, 0x0, 0x0, 0x0,
-
-    /* U+F011 "" */
-    0x0, 0x0, 0x41, 0x0, 0x0, 0x0, 0x0, 0xf7,
-    0x0, 0x0, 0x4, 0xa1, 0xf8, 0x68, 0x0, 0x2f,
-    0xd1, 0xf8, 0x7f, 0x80, 0xaf, 0x11, 0xf8, 0xa,
-    0xf1, 0xea, 0x0, 0xe5, 0x4, 0xf5, 0xfa, 0x0,
-    0x0, 0x3, 0xf5, 0xce, 0x0, 0x0, 0x8, 0xf2,
-    0x4f, 0xa0, 0x0, 0x5f, 0xa0, 0x8, 0xff, 0xcd,
-    0xfd, 0x10, 0x0, 0x3a, 0xdc, 0x70, 0x0,
-
-    /* U+F013 "" */
-    0x0, 0x3, 0xd6, 0x0, 0x0, 0x9, 0xba, 0xfc,
-    0x9b, 0x0, 0xe, 0xff, 0xff, 0xff, 0x20, 0xa,
-    0xfd, 0x5b, 0xfc, 0x0, 0xff, 0xf4, 0x0, 0xff,
-    0xf3, 0xff, 0xf3, 0x0, 0xff, 0xf3, 0x1a, 0xfc,
-    0x39, 0xfd, 0x20, 0xd, 0xff, 0xff, 0xff, 0x20,
-    0xa, 0xdb, 0xfd, 0xbd, 0x10, 0x0, 0x4, 0xf7,
-    0x0, 0x0,
-
-    /* U+F014 "" */
-    0x0, 0x28, 0x97, 0x0, 0x0, 0xb, 0x53, 0x95,
-    0x0, 0xde, 0xcc, 0xcc, 0xcf, 0x73, 0x90, 0x1,
-    0x0, 0xc0, 0x39, 0xa3, 0xb7, 0x4c, 0x3, 0x9a,
-    0x3b, 0x84, 0xc0, 0x39, 0xa3, 0xb8, 0x4c, 0x3,
-    0x98, 0x29, 0x63, 0xc0, 0x39, 0x0, 0x0, 0xc,
-    0x0, 0xac, 0xcc, 0xcc, 0x60,
-
-    /* U+F015 "" */
-    0x0, 0x0, 0xaa, 0x1c, 0x80, 0x0, 0x1, 0xca,
-    0xad, 0xfa, 0x0, 0x3, 0xe9, 0xdd, 0x8f, 0xa0,
-    0x5, 0xe9, 0xff, 0xfe, 0x8e, 0x70, 0x88, 0xff,
-    0xff, 0xff, 0x89, 0x0, 0xaf, 0xfa, 0xaf, 0xfa,
-    0x0, 0xa, 0xff, 0x11, 0xff, 0xa0, 0x0, 0x9f,
-    0xf1, 0x1f, 0xf9, 0x0,
-
-    /* U+F019 "" */
-    0x0, 0x0, 0x99, 0x20, 0x0, 0x0, 0x0, 0x1f,
-    0xf4, 0x0, 0x0, 0x0, 0x1, 0xff, 0x40, 0x0,
-    0x0, 0x3, 0x5f, 0xf7, 0x40, 0x0, 0x0, 0xbf,
-    0xff, 0xfd, 0x10, 0x0, 0x0, 0xaf, 0xfd, 0x10,
-    0x0, 0x35, 0x53, 0x9c, 0x35, 0x54, 0xf, 0xff,
-    0xf3, 0x2d, 0xff, 0xf3, 0xff, 0xff, 0xff, 0xfa,
-    0xdd, 0x3e, 0xff, 0xff, 0xff, 0xef, 0xe2,
-
-    /* U+F01C "" */
-    0x6, 0xff, 0xff, 0xfc, 0x0, 0xd, 0x83, 0x33,
-    0x4f, 0x40, 0x4f, 0x0, 0x0, 0x9, 0xb0, 0xb9,
-    0x0, 0x0, 0x2, 0xf2, 0xfa, 0x82, 0x0, 0x78,
-    0xf6, 0xff, 0xfb, 0x57, 0xff, 0xf6, 0xff, 0xff,
-    0xff, 0xff, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xf6,
-
-    /* U+F021 "" */
-    0x0, 0x4, 0x65, 0x10, 0x0, 0x2, 0xdf, 0xff,
-    0xf8, 0xa6, 0x1e, 0xe6, 0x24, 0xbf, 0xf7, 0x9f,
-    0x30, 0x0, 0xaf, 0xf7, 0x65, 0x0, 0x0, 0x77,
-    0x72, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xf5,
-    0x0, 0x6, 0xf2, 0xff, 0xd0, 0x0, 0x4f, 0xb0,
-    0xfc, 0xff, 0xcd, 0xfd, 0x10, 0x50, 0x4a, 0xdb,
-    0x70, 0x0,
-
-    /* U+F026 "" */
-    0x0, 0x1, 0x50, 0x1, 0xdb, 0x67, 0xdf, 0xbf,
-    0xff, 0xfb, 0xff, 0xff, 0xba, 0xbf, 0xfb, 0x0,
-    0x3f, 0xb0, 0x0, 0x38,
-
-    /* U+F027 "" */
-    0x0, 0x1, 0x50, 0x0, 0x0, 0x1d, 0xb0, 0x0,
-    0x67, 0xdf, 0xb1, 0x10, 0xff, 0xff, 0xb2, 0xc0,
-    0xff, 0xff, 0xb0, 0xd0, 0xab, 0xff, 0xb3, 0x40,
-    0x0, 0x3f, 0xb0, 0x0, 0x0, 0x3, 0x80, 0x0,
-
-    /* U+F028 "" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x14,
-    0x0, 0xc5, 0x0, 0x0, 0xc, 0xb0, 0x73, 0xb4,
-    0x4, 0x5c, 0xfb, 0x12, 0xc3, 0xc0, 0xff, 0xff,
-    0xb3, 0xc4, 0x8a, 0x1f, 0xff, 0xfb, 0xc, 0x39,
-    0x92, 0xcc, 0xff, 0xb3, 0x59, 0x5c, 0x0, 0x5,
-    0xfb, 0x8, 0x95, 0x90, 0x0, 0x5, 0xa0, 0x16,
-    0xc0, 0x0, 0x0, 0x0, 0x1, 0x70, 0x0,
-
-    /* U+F03E "" */
-    0x6a, 0xaa, 0xaa, 0xaa, 0xaa, 0xa4, 0xd2, 0x22,
-    0x22, 0x22, 0x22, 0x2c, 0xc3, 0xfa, 0x0, 0x0,
-    0x0, 0xc, 0xc4, 0xfc, 0x0, 0x1c, 0x40, 0xc,
-    0xc0, 0x31, 0x1, 0xdf, 0xf4, 0xc, 0xc0, 0x1a,
-    0x3d, 0xff, 0xff, 0x2c, 0xc1, 0xdf, 0xff, 0xff,
-    0xff, 0x3c, 0xc6, 0xff, 0xff, 0xff, 0xff, 0x3c,
-    0xc1, 0x33, 0x33, 0x33, 0x33, 0xc, 0x9c, 0xcc,
-    0xcc, 0xcc, 0xcc, 0xc6,
-
-    /* U+F040 "" */
-    0x0, 0x0, 0x0, 0x34, 0x0, 0x0, 0x0, 0x3,
-    0xff, 0x60, 0x0, 0x0, 0x47, 0xbf, 0xf2, 0x0,
-    0x4, 0xdd, 0x7b, 0xc0, 0x0, 0x4d, 0xcf, 0xf6,
-    0x0, 0x4, 0xdc, 0xff, 0xc0, 0x0, 0x4e, 0xcf,
-    0xfc, 0x0, 0x0, 0xd4, 0xff, 0xc0, 0x0, 0x0,
-    0xf7, 0x7c, 0x0, 0x0, 0x0, 0xcc, 0xa0, 0x0,
-    0x0, 0x0,
-
-    /* U+F048 "" */
-    0x63, 0x0, 0x1, 0x1f, 0x90, 0x1, 0xc4, 0xf9,
-    0x1, 0xcf, 0x4f, 0x91, 0xcf, 0xf4, 0xfa, 0xcf,
-    0xff, 0x4f, 0xdf, 0xff, 0xf4, 0xf9, 0x5f, 0xff,
-    0x4f, 0x90, 0x5f, 0xf4, 0xf9, 0x0, 0x5f, 0x4e,
-    0x80, 0x0, 0x54,
-
-    /* U+F04B "" */
-    0x81, 0x0, 0x0, 0x0, 0xf, 0xe7, 0x0, 0x0,
-    0x0, 0xff, 0xfd, 0x50, 0x0, 0xf, 0xff, 0xff,
-    0xc3, 0x0, 0xff, 0xff, 0xff, 0xfa, 0x2f, 0xff,
-    0xff, 0xff, 0xc3, 0xff, 0xff, 0xfe, 0x60, 0xf,
-    0xff, 0xf7, 0x0, 0x0, 0xff, 0x91, 0x0, 0x0,
-    0xa, 0x20, 0x0, 0x0, 0x0,
-
-    /* U+F04C "" */
-    0x67, 0x76, 0x4, 0x77, 0x70, 0xff, 0xfe, 0xb,
-    0xff, 0xf3, 0xff, 0xfe, 0xb, 0xff, 0xf3, 0xff,
-    0xfe, 0xb, 0xff, 0xf3, 0xff, 0xfe, 0xb, 0xff,
-    0xf3, 0xff, 0xfe, 0xb, 0xff, 0xf3, 0xff, 0xfe,
-    0xb, 0xff, 0xf3, 0xff, 0xfe, 0xb, 0xff, 0xf3,
-    0xff, 0xfe, 0xb, 0xff, 0xf3, 0xef, 0xfd, 0xa,
-    0xff, 0xf2,
-
-    /* U+F04D "" */
-    0x67, 0x77, 0x77, 0x77, 0x72, 0xff, 0xff, 0xff,
-    0xff, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xff,
-    0xff, 0xff, 0xff, 0xf6, 0xff, 0xff, 0xff, 0xff,
-    0xf6, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xff,
-    0xff, 0xff, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xf6,
-    0xff, 0xff, 0xff, 0xff, 0xf6, 0xef, 0xff, 0xff,
-    0xff, 0xf5,
-
-    /* U+F051 "" */
-    0x11, 0x0, 0x2, 0x70, 0x3d, 0x10, 0x7, 0xf1,
-    0x3f, 0xd1, 0x7, 0xf1, 0x3f, 0xfd, 0x17, 0xf1,
-    0x3f, 0xff, 0xd9, 0xf1, 0x3f, 0xff, 0xfd, 0xf1,
-    0x3f, 0xff, 0x77, 0xf1, 0x3f, 0xf7, 0x7, 0xf1,
-    0x3f, 0x70, 0x7, 0xf1, 0x27, 0x0, 0x6, 0xe0,
-
-    /* U+F052 "" */
-    0x0, 0x0, 0xb, 0x40, 0x0, 0x0, 0x0, 0xc,
-    0xff, 0x40, 0x0, 0x0, 0xc, 0xff, 0xff, 0x40,
-    0x0, 0xc, 0xff, 0xff, 0xff, 0x40, 0xa, 0xdd,
-    0xdd, 0xdd, 0xdd, 0x20, 0x55, 0x55, 0x55, 0x55,
-    0x51, 0xf, 0xff, 0xff, 0xff, 0xff, 0x60, 0xff,
-    0xff, 0xff, 0xff, 0xf6,
-
-    /* U+F053 "" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1d, 0xa0,
-    0x0, 0x1, 0xdf, 0xf2, 0x0, 0x1d, 0xff, 0x40,
-    0x1, 0xdf, 0xf4, 0x0, 0xd, 0xff, 0x40, 0x0,
-    0x8, 0xff, 0x90, 0x0, 0x0, 0x8f, 0xf9, 0x0,
-    0x0, 0x8, 0xff, 0x90, 0x0, 0x0, 0x8f, 0xf2,
-    0x0, 0x0, 0x7, 0x50,
-
-    /* U+F054 "" */
-    0x0, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x4f,
-    0xfb, 0x0, 0x0, 0x6f, 0xfb, 0x0, 0x0, 0x6f,
-    0xfb, 0x0, 0x0, 0x6f, 0xfa, 0x0, 0xb, 0xff,
-    0x60, 0xb, 0xff, 0x60, 0xb, 0xff, 0x60, 0x4,
-    0xff, 0x60, 0x0, 0x6, 0x50, 0x0, 0x0,
-
-    /* U+F067 "" */
-    0x0, 0x7, 0xa3, 0x0, 0x0, 0x0, 0xdf, 0x80,
-    0x0, 0x0, 0xd, 0xf8, 0x0, 0x6, 0x88, 0xef,
-    0xc8, 0x83, 0xff, 0xff, 0xff, 0xff, 0xac, 0xdd,
-    0xff, 0xed, 0xd7, 0x0, 0xd, 0xf8, 0x0, 0x0,
-    0x0, 0xdf, 0x80, 0x0, 0x0, 0xc, 0xf6, 0x0,
-    0x0,
-
-    /* U+F068 "" */
-    0x46, 0x66, 0x66, 0x66, 0x2f, 0xff, 0xff, 0xff,
-    0xfa, 0xdf, 0xff, 0xff, 0xff, 0x80,
-
-    /* U+F071 "" */
-    0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x5f, 0x50, 0x0, 0x0, 0x0, 0x0, 0xd,
-    0xfd, 0x0, 0x0, 0x0, 0x0, 0x7, 0xff, 0xf7,
-    0x0, 0x0, 0x0, 0x1, 0xea, 0xa, 0xe1, 0x0,
-    0x0, 0x0, 0x8f, 0xa0, 0xaf, 0x80, 0x0, 0x0,
-    0x2f, 0xfb, 0xb, 0xff, 0x10, 0x0, 0xa, 0xff,
-    0xfc, 0xff, 0xfa, 0x0, 0x3, 0xff, 0xfb, 0xb,
-    0xff, 0xf3, 0x0, 0xbf, 0xff, 0xe9, 0xef, 0xff,
-    0xb0, 0xc, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0,
-
-    /* U+F074 "" */
-    0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
-    0x0, 0x5, 0xb0, 0xff, 0xc3, 0x7, 0xdf, 0xff,
-    0xb9, 0xae, 0xe7, 0xfc, 0xac, 0xf6, 0x0, 0x29,
-    0xfb, 0x0, 0x56, 0x0, 0x0, 0x8f, 0x30, 0x0,
-    0x0, 0x0, 0x1e, 0xb8, 0x0, 0x45, 0x8, 0x8d,
-    0xf7, 0xfb, 0x8b, 0xf5, 0xff, 0xd4, 0x9, 0xff,
-    0xff, 0xc0, 0x0, 0x0, 0x0, 0x6, 0xc0, 0x0,
-    0x0, 0x0, 0x0, 0x20, 0x0,
-
-    /* U+F077 "" */
-    0x0, 0x0, 0x4, 0x10, 0x0, 0x0, 0x0, 0x6,
-    0xfc, 0x10, 0x0, 0x0, 0x6, 0xff, 0xfc, 0x10,
-    0x0, 0x6, 0xff, 0xcf, 0xfc, 0x10, 0x6, 0xff,
-    0xb0, 0x4f, 0xfc, 0x11, 0xff, 0xa0, 0x0, 0x4f,
-    0xf8, 0x5, 0xa0, 0x0, 0x0, 0x4a, 0x0,
-
-    /* U+F078 "" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xae, 0x20,
-    0x0, 0x8, 0xe2, 0x1e, 0xfe, 0x20, 0x8, 0xff,
-    0x70, 0x3e, 0xfe, 0x28, 0xff, 0x90, 0x0, 0x3e,
-    0xff, 0xff, 0x90, 0x0, 0x0, 0x3e, 0xff, 0x90,
-    0x0, 0x0, 0x0, 0x3e, 0x90, 0x0, 0x0, 0x0,
-    0x0, 0x10, 0x0, 0x0,
-
-    /* U+F079 "" */
-    0x0, 0x0, 0x0, 0x11, 0x11, 0x0, 0x0, 0x5,
-    0xd1, 0xdf, 0xff, 0xff, 0x10, 0x3, 0xff, 0xc2,
-    0x88, 0x8c, 0xf1, 0x0, 0xef, 0xff, 0x80, 0x0,
-    0x8f, 0x10, 0x1, 0x8f, 0x20, 0x0, 0x19, 0xf3,
-    0x0, 0x7, 0xf1, 0x0, 0xe, 0xff, 0xf7, 0x0,
-    0x7f, 0x99, 0x98, 0x3f, 0xfb, 0x0, 0x7, 0xff,
-    0xff, 0xf7, 0x5c, 0x0,
-
-    /* U+F07B "" */
-    0x4a, 0xa9, 0x10, 0x0, 0x0, 0xe, 0xff, 0xfa,
-    0x11, 0x11, 0x0, 0xff, 0xff, 0xff, 0xff, 0xfd,
-    0xf, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff,
-    0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xff,
-    0xff, 0xff, 0xff, 0xf3, 0x9f, 0xff, 0xff, 0xff,
-    0xfc, 0x0,
-
-    /* U+F093 "" */
-    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9,
-    0xc0, 0x0, 0x0, 0x0, 0x9, 0xff, 0xc0, 0x0,
-    0x0, 0x9, 0xff, 0xff, 0xc0, 0x0, 0x0, 0x78,
-    0xff, 0xa7, 0x10, 0x0, 0x0, 0x1f, 0xf4, 0x0,
-    0x0, 0x0, 0x1, 0xff, 0x40, 0x0, 0x4, 0x55,
-    0x29, 0xa2, 0x55, 0x50, 0xff, 0xfe, 0x99, 0xcf,
-    0xff, 0x3f, 0xff, 0xff, 0xff, 0x8c, 0xc3, 0xac,
-    0xcc, 0xcc, 0xcc, 0xcc, 0x10,
-
-    /* U+F095 "" */
-    0x29, 0x10, 0x0, 0x0, 0xc, 0xfa, 0x0, 0x0,
-    0x0, 0xff, 0xf0, 0x0, 0x0, 0xc, 0xf3, 0x0,
-    0x0, 0x0, 0x5f, 0x70, 0x0, 0x0, 0x0, 0xcf,
-    0x40, 0x0, 0x0, 0x1, 0xdf, 0x73, 0xfa, 0x10,
-    0x1, 0xcf, 0xff, 0xf9, 0x0, 0x0, 0x5c, 0xfc,
-    0x20,
-
-    /* U+F0C4 "" */
-    0x6, 0xcb, 0x40, 0x0, 0x0, 0x0, 0xf, 0x44,
-    0xc4, 0x0, 0x6, 0x67, 0xd, 0x70, 0x59, 0x4,
-    0x61, 0x63, 0x2, 0xcf, 0xfa, 0x72, 0x17, 0x10,
-    0x0, 0x1, 0x1b, 0x53, 0xa0, 0x0, 0x2, 0xde,
-    0xf8, 0x97, 0x7, 0x10, 0xe, 0x60, 0x58, 0x4,
-    0x71, 0x53, 0xf, 0x44, 0xd3, 0x0, 0x6, 0x77,
-    0x6, 0xcb, 0x30, 0x0, 0x0, 0x0,
-
-    /* U+F0C5 "" */
-    0x0, 0x8, 0xaa, 0x80, 0x0, 0x0, 0xc, 0xe2,
-    0x2d, 0x0, 0x0, 0xc, 0x8c, 0x0, 0xc0, 0x0,
-    0xb, 0xb1, 0xc0, 0xc, 0xef, 0xfe, 0xeb, 0xb8,
-    0x4, 0xcd, 0x0, 0xcc, 0x0, 0x4, 0xb1, 0xd0,
-    0xc, 0xc0, 0x0, 0xec, 0xc9, 0x0, 0xcc, 0x0,
-    0x1b, 0x0, 0x0, 0xc, 0xdc, 0xcd, 0xb0, 0x0,
-    0x0, 0xc0, 0x0, 0x1b, 0x0, 0x0, 0xc, 0x0,
-    0x1, 0xb0, 0x0, 0x0, 0xc0, 0x0, 0xb, 0xcc,
-    0xcc, 0xca,
-
-    /* U+F0C7 "" */
-    0xac, 0xcc, 0xcc, 0xb4, 0x0, 0xc7, 0xfc, 0xb,
-    0x3d, 0x50, 0xc7, 0xfc, 0xb, 0x10, 0xb4, 0xc6,
-    0xff, 0xbe, 0x0, 0x29, 0xc0, 0x1, 0x10, 0x0,
-    0x2a, 0xc0, 0x0, 0x0, 0x0, 0x2a, 0xc5, 0xdc,
-    0xcc, 0xcd, 0x2a, 0xc7, 0x40, 0x0, 0xe, 0x2a,
-    0xc7, 0x40, 0x0, 0xe, 0x2a, 0xac, 0xcc, 0xcc,
-    0xcc, 0xc6,
-
-    /* U+F0E7 "" */
-    0x0, 0xbd, 0x90, 0x0, 0xf, 0xf6, 0x0, 0x4,
-    0xff, 0x11, 0x10, 0x8f, 0xed, 0xf4, 0xc, 0xff,
-    0xfd, 0x0, 0x96, 0x6f, 0x50, 0x0, 0x8, 0xd0,
-    0x0, 0x0, 0xc6, 0x0, 0x0, 0xe, 0x0, 0x0,
-    0x3, 0x70, 0x0, 0x0, 0x10, 0x0, 0x0,
-
-    /* U+F0F3 "" */
-    0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x19,
-    0xf6, 0x0, 0x0, 0x0, 0x2e, 0xff, 0xfc, 0x0,
-    0x0, 0xa, 0xff, 0xff, 0xf5, 0x0, 0x0, 0xdf,
-    0xff, 0xff, 0x80, 0x0, 0xe, 0xff, 0xff, 0xf9,
-    0x0, 0x1, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x7f,
-    0xff, 0xff, 0xff, 0x20, 0x2f, 0xff, 0xff, 0xff,
-    0xfc, 0x8, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x0,
-    0x1, 0xcf, 0xc0, 0x0, 0x0, 0x0, 0x4, 0x82,
-    0x0, 0x0,
-
-    /* U+F11C "" */
-    0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xc9, 0xc3, 0x25,
-    0x22, 0x51, 0x33, 0x1c, 0xc2, 0x13, 0x12, 0x30,
-    0x29, 0x3c, 0xc5, 0xc2, 0x86, 0x29, 0x4d, 0x2c,
-    0xc2, 0x15, 0x55, 0x55, 0x33, 0x1c, 0xc3, 0x26,
-    0x77, 0x77, 0x33, 0x1c, 0xcc, 0xcc, 0xcc, 0xcc,
-    0xcc, 0xc9,
-
-    /* U+F124 "" */
-    0x0, 0x0, 0x0, 0x1, 0x87, 0x0, 0x0, 0x1,
-    0x8f, 0xf3, 0x0, 0x1, 0x8f, 0xff, 0xb0, 0x1,
-    0x8f, 0xff, 0xff, 0x30, 0xc, 0xdd, 0xdf, 0xfb,
-    0x0, 0x0, 0x0, 0x1f, 0xf3, 0x0, 0x0, 0x0,
-    0x1f, 0xb0, 0x0, 0x0, 0x0, 0x1f, 0x30, 0x0,
-    0x0, 0x0, 0x8, 0x0, 0x0,
-
-    /* U+F15B "" */
-    0x23, 0x33, 0x31, 0x0, 0x0, 0xff, 0xff, 0xf8,
-    0x70, 0x0, 0xff, 0xff, 0xf8, 0xbb, 0x0, 0xff,
-    0xff, 0xf8, 0xaf, 0xa0, 0xff, 0xff, 0xfb, 0x44,
-    0x41, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xff,
-    0xff, 0xff, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xf6,
-    0xff, 0xff, 0xff, 0xff, 0xf6, 0xff, 0xff, 0xff,
-    0xff, 0xf6, 0xff, 0xff, 0xff, 0xff, 0xf6, 0xbc,
-    0xcc, 0xcc, 0xcc, 0xc3,
-
-    /* U+F1EB "" */
-    0x0, 0x4, 0x9b, 0xca, 0x72, 0x0, 0x0, 0x5d,
-    0xff, 0xdc, 0xef, 0xfa, 0x10, 0x7f, 0xe6, 0x35,
-    0x64, 0x39, 0xfe, 0x12, 0x93, 0xbf, 0xff, 0xff,
-    0x74, 0x80, 0x0, 0xef, 0x94, 0x35, 0xcf, 0x60,
-    0x0, 0x3, 0x28, 0xff, 0xc4, 0x50, 0x0, 0x0,
-    0x3, 0xfc, 0xae, 0xb0, 0x0, 0x0, 0x0, 0x1,
-    0x48, 0x20, 0x0, 0x0, 0x0, 0x0, 0x4, 0xb0,
-    0x0, 0x0, 0x0,
-
-    /* U+F240 "" */
-    0xac, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xb0, 0xc2,
-    0x44, 0x44, 0x44, 0x44, 0x42, 0xa2, 0xc7, 0xff,
-    0xff, 0xff, 0xff, 0xf9, 0x9a, 0xc7, 0xff, 0xff,
-    0xff, 0xff, 0xf9, 0xc, 0xc7, 0xff, 0xff, 0xff,
-    0xff, 0xf9, 0xc, 0xc7, 0xff, 0xff, 0xff, 0xff,
-    0xf9, 0x7b, 0xc3, 0x66, 0x66, 0x66, 0x66, 0x64,
-    0xa2, 0xbc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xc0,
-
-    /* U+F241 "" */
-    0xac, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xb0, 0xc2,
-    0x44, 0x44, 0x44, 0x41, 0x0, 0xa2, 0xc7, 0xff,
-    0xff, 0xff, 0xf4, 0x0, 0x9a, 0xc7, 0xff, 0xff,
-    0xff, 0xf4, 0x0, 0xc, 0xc7, 0xff, 0xff, 0xff,
-    0xf4, 0x0, 0xc, 0xc7, 0xff, 0xff, 0xff, 0xf4,
-    0x0, 0x7b, 0xc3, 0x66, 0x66, 0x66, 0x61, 0x0,
-    0xa2, 0xbc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xc0,
-
-    /* U+F242 "" */
-    0xac, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xb0, 0xc2,
-    0x44, 0x44, 0x40, 0x0, 0x0, 0xa2, 0xc7, 0xff,
-    0xff, 0xf0, 0x0, 0x0, 0x9a, 0xc7, 0xff, 0xff,
-    0xf0, 0x0, 0x0, 0xc, 0xc7, 0xff, 0xff, 0xf0,
-    0x0, 0x0, 0xc, 0xc7, 0xff, 0xff, 0xf0, 0x0,
-    0x0, 0x7b, 0xc3, 0x66, 0x66, 0x60, 0x0, 0x0,
-    0xa2, 0xbc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xc0,
-
-    /* U+F243 "" */
-    0xac, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xb0, 0xc2,
-    0x44, 0x20, 0x0, 0x0, 0x0, 0xa2, 0xc7, 0xff,
-    0xa0, 0x0, 0x0, 0x0, 0x9a, 0xc7, 0xff, 0xa0,
-    0x0, 0x0, 0x0, 0xc, 0xc7, 0xff, 0xa0, 0x0,
-    0x0, 0x0, 0xc, 0xc7, 0xff, 0xa0, 0x0, 0x0,
-    0x0, 0x7b, 0xc3, 0x66, 0x40, 0x0, 0x0, 0x0,
-    0xa2, 0xbc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xc0,
-
-    /* U+F244 "" */
-    0xac, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xb0, 0xc0,
-    0x0, 0x0, 0x0, 0x0, 0x0, 0xa2, 0xc0, 0x0,
-    0x0, 0x0, 0x0, 0x0, 0x9a, 0xc0, 0x0, 0x0,
-    0x0, 0x0, 0x0, 0xc, 0xc0, 0x0, 0x0, 0x0,
-    0x0, 0x0, 0xc, 0xc0, 0x0, 0x0, 0x0, 0x0,
-    0x0, 0x7b, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
-    0xa2, 0xbc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xc0,
-
-    /* U+F293 "" */
-    0x0, 0x0, 0x22, 0x0, 0x0, 0x7, 0xfe, 0xfe,
-    0x50, 0x5, 0xff, 0x98, 0xff, 0x30, 0xcf, 0xf9,
-    0x18, 0xfa, 0xf, 0xb4, 0x89, 0x1d, 0xd1, 0xff,
-    0x90, 0x1a, 0xff, 0x1f, 0xff, 0x23, 0xff, 0xf1,
-    0xff, 0x44, 0x44, 0xfe, 0xe, 0xba, 0x97, 0x2d,
-    0xc0, 0xaf, 0xf9, 0x1d, 0xf8, 0x2, 0xef, 0xad,
-    0xfd, 0x10, 0x2, 0x9b, 0xb8, 0x10
-};
-
-
-/*---------------------
- *  GLYPH DESCRIPTION
- *--------------------*/
-
-static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
-    {.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */,
-    {.bitmap_index = 0, .adv_w = 62, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 0, .adv_w = 69, .box_w = 2, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 8, .adv_w = 81, .box_w = 5, .box_h = 4, .ofs_x = 0, .ofs_y = 4},
-    {.bitmap_index = 18, .adv_w = 144, .box_w = 7, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 46, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 81, .adv_w = 189, .box_w = 12, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 129, .adv_w = 128, .box_w = 9, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 165, .adv_w = 47, .box_w = 3, .box_h = 4, .ofs_x = 0, .ofs_y = 4},
-    {.bitmap_index = 171, .adv_w = 80, .box_w = 5, .box_h = 10, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 196, .adv_w = 80, .box_w = 5, .box_h = 10, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 221, .adv_w = 112, .box_w = 7, .box_h = 5, .ofs_x = 0, .ofs_y = 3},
-    {.bitmap_index = 239, .adv_w = 144, .box_w = 7, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 264, .adv_w = 64, .box_w = 4, .box_h = 4, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 272, .adv_w = 80, .box_w = 5, .box_h = 1, .ofs_x = 0, .ofs_y = 3},
-    {.bitmap_index = 275, .adv_w = 64, .box_w = 2, .box_h = 2, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 277, .adv_w = 80, .box_w = 6, .box_h = 10, .ofs_x = -1, .ofs_y = -2},
-    {.bitmap_index = 307, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 335, .adv_w = 112, .box_w = 5, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 355, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 383, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 411, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 439, .adv_w = 112, .box_w = 6, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 463, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 491, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 519, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 547, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 575, .adv_w = 80, .box_w = 3, .box_h = 6, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 584, .adv_w = 80, .box_w = 3, .box_h = 8, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 596, .adv_w = 144, .box_w = 7, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 621, .adv_w = 144, .box_w = 7, .box_h = 3, .ofs_x = 1, .ofs_y = 2},
-    {.bitmap_index = 632, .adv_w = 144, .box_w = 7, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 657, .adv_w = 96, .box_w = 6, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 681, .adv_w = 176, .box_w = 11, .box_h = 9, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 731, .adv_w = 120, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 763, .adv_w = 121, .box_w = 7, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 791, .adv_w = 123, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 823, .adv_w = 136, .box_w = 7, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 851, .adv_w = 111, .box_w = 6, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 875, .adv_w = 101, .box_w = 6, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 899, .adv_w = 136, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 931, .adv_w = 132, .box_w = 7, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 959, .adv_w = 74, .box_w = 4, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 975, .adv_w = 80, .box_w = 4, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 991, .adv_w = 122, .box_w = 7, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 1019, .adv_w = 98, .box_w = 6, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 1043, .adv_w = 148, .box_w = 8, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 1075, .adv_w = 132, .box_w = 7, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 1103, .adv_w = 139, .box_w = 9, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1139, .adv_w = 106, .box_w = 6, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 1163, .adv_w = 139, .box_w = 9, .box_h = 10, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1208, .adv_w = 122, .box_w = 7, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 1236, .adv_w = 120, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1264, .adv_w = 108, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1292, .adv_w = 129, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1324, .adv_w = 120, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1356, .adv_w = 174, .box_w = 11, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1400, .adv_w = 121, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1432, .adv_w = 108, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1460, .adv_w = 121, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1488, .adv_w = 80, .box_w = 4, .box_h = 10, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 1508, .adv_w = 80, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1538, .adv_w = 80, .box_w = 4, .box_h = 10, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1558, .adv_w = 144, .box_w = 7, .box_h = 4, .ofs_x = 1, .ofs_y = 4},
-    {.bitmap_index = 1572, .adv_w = 112, .box_w = 9, .box_h = 1, .ofs_x = -1, .ofs_y = -2},
-    {.bitmap_index = 1577, .adv_w = 112, .box_w = 4, .box_h = 2, .ofs_x = 1, .ofs_y = 7},
-    {.bitmap_index = 1581, .adv_w = 106, .box_w = 6, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1599, .adv_w = 110, .box_w = 6, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 1623, .adv_w = 92, .box_w = 6, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1641, .adv_w = 110, .box_w = 6, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1665, .adv_w = 105, .box_w = 7, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1686, .adv_w = 62, .box_w = 5, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1706, .adv_w = 110, .box_w = 6, .box_h = 8, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1730, .adv_w = 111, .box_w = 6, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 1754, .adv_w = 48, .box_w = 3, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1766, .adv_w = 61, .box_w = 4, .box_h = 10, .ofs_x = -1, .ofs_y = -2},
-    {.bitmap_index = 1786, .adv_w = 104, .box_w = 6, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 1810, .adv_w = 48, .box_w = 2, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 1818, .adv_w = 171, .box_w = 9, .box_h = 6, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 1845, .adv_w = 111, .box_w = 6, .box_h = 6, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 1863, .adv_w = 107, .box_w = 7, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1884, .adv_w = 110, .box_w = 6, .box_h = 8, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 1908, .adv_w = 110, .box_w = 6, .box_h = 8, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1932, .adv_w = 75, .box_w = 4, .box_h = 6, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 1944, .adv_w = 92, .box_w = 6, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1962, .adv_w = 69, .box_w = 5, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1982, .adv_w = 111, .box_w = 6, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 2000, .adv_w = 104, .box_w = 7, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 2021, .adv_w = 144, .box_w = 9, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 2048, .adv_w = 104, .box_w = 7, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 2069, .adv_w = 104, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 2097, .adv_w = 92, .box_w = 6, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 2115, .adv_w = 112, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 2145, .adv_w = 80, .box_w = 1, .box_h = 10, .ofs_x = 2, .ofs_y = -2},
-    {.bitmap_index = 2150, .adv_w = 112, .box_w = 6, .box_h = 10, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 2180, .adv_w = 144, .box_w = 7, .box_h = 3, .ofs_x = 1, .ofs_y = 2},
-    {.bitmap_index = 2191, .adv_w = 151, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 2246, .adv_w = 189, .box_w = 12, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 2312, .adv_w = 176, .box_w = 11, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 2362, .adv_w = 176, .box_w = 11, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 2406, .adv_w = 138, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 2442, .adv_w = 151, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 2497, .adv_w = 151, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 2547, .adv_w = 138, .box_w = 9, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 2592, .adv_w = 163, .box_w = 11, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 2636, .adv_w = 163, .box_w = 11, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 2691, .adv_w = 151, .box_w = 10, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 2731, .adv_w = 151, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 2781, .adv_w = 75, .box_w = 5, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 2801, .adv_w = 113, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 2833, .adv_w = 163, .box_w = 11, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 2888, .adv_w = 189, .box_w = 12, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 2948, .adv_w = 151, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 2998, .adv_w = 101, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 3033, .adv_w = 138, .box_w = 9, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 3078, .adv_w = 151, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 3128, .adv_w = 151, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 3178, .adv_w = 101, .box_w = 8, .box_h = 10, .ofs_x = -1, .ofs_y = -1},
-    {.bitmap_index = 3218, .adv_w = 151, .box_w = 11, .box_h = 8, .ofs_x = -1, .ofs_y = 0},
-    {.bitmap_index = 3262, .adv_w = 126, .box_w = 8, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 3306, .adv_w = 126, .box_w = 7, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 3345, .adv_w = 138, .box_w = 9, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 3386, .adv_w = 138, .box_w = 9, .box_h = 3, .ofs_x = 0, .ofs_y = 3},
-    {.bitmap_index = 3400, .adv_w = 176, .box_w = 13, .box_h = 11, .ofs_x = -1, .ofs_y = -1},
-    {.bitmap_index = 3472, .adv_w = 176, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 3533, .adv_w = 176, .box_w = 11, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 3572, .adv_w = 176, .box_w = 11, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 3616, .adv_w = 189, .box_w = 13, .box_h = 8, .ofs_x = -1, .ofs_y = 0},
-    {.bitmap_index = 3668, .adv_w = 163, .box_w = 11, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 3718, .adv_w = 163, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 3779, .adv_w = 138, .box_w = 9, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 3820, .adv_w = 176, .box_w = 12, .box_h = 9, .ofs_x = -1, .ofs_y = -1},
-    {.bitmap_index = 3874, .adv_w = 176, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 3940, .adv_w = 151, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 3990, .adv_w = 88, .box_w = 7, .box_h = 11, .ofs_x = -1, .ofs_y = -2},
-    {.bitmap_index = 4029, .adv_w = 176, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 4095, .adv_w = 189, .box_w = 12, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 4137, .adv_w = 138, .box_w = 10, .box_h = 9, .ofs_x = -1, .ofs_y = -1},
-    {.bitmap_index = 4182, .adv_w = 151, .box_w = 10, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 4242, .adv_w = 201, .box_w = 13, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 4301, .adv_w = 226, .box_w = 14, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 4357, .adv_w = 226, .box_w = 14, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 4413, .adv_w = 226, .box_w = 14, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 4469, .adv_w = 226, .box_w = 14, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 4525, .adv_w = 226, .box_w = 14, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 4581, .adv_w = 151, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = -2}
-};
-
-/*---------------------
- *  CHARACTER MAPPING
- *--------------------*/
-
-static const uint16_t unicode_list_1[] = {
-    0x0, 0x7, 0xa, 0xb, 0xc, 0x10, 0x12, 0x13,
-    0x14, 0x18, 0x1b, 0x20, 0x25, 0x26, 0x27, 0x3d,
-    0x3f, 0x47, 0x4a, 0x4b, 0x4c, 0x50, 0x51, 0x52,
-    0x53, 0x66, 0x67, 0x70, 0x73, 0x76, 0x77, 0x78,
-    0x7a, 0x92, 0x94, 0xc3, 0xc4, 0xc6, 0xe6, 0xf2,
-    0x11b, 0x123, 0x15a, 0x1ea, 0x23f, 0x240, 0x241, 0x242,
-    0x243, 0x292
-};
-
-/*Collect the unicode lists and glyph_id offsets*/
-static const lv_font_fmt_txt_cmap_t cmaps[] =
-{
-    {
-        .range_start = 32, .range_length = 95, .glyph_id_start = 1,
-        .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
-    },
-    {
-        .range_start = 61441, .range_length = 659, .glyph_id_start = 96,
-        .unicode_list = unicode_list_1, .glyph_id_ofs_list = NULL, .list_length = 50, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
-    }
-};
-
-/*-----------------
- *    KERNING
- *----------------*/
-
-
-/*Map glyph_ids to kern left classes*/
-static const uint8_t kern_left_class_mapping[] =
-{
-    0, 0, 0, 0, 0, 0, 0, 0,
-    1, 0, 0, 0, 0, 0, 2, 3,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 4, 5, 6, 7, 0, 8,
-    0, 0, 9, 10, 11, 12, 0, 0,
-    13, 14, 15, 16, 17, 18, 10, 19,
-    20, 21, 22, 23, 0, 0, 0, 0,
-    0, 0, 24, 25, 26, 0, 27, 28,
-    0, 29, 0, 0, 30, 0, 29, 29,
-    31, 25, 0, 32, 0, 33, 0, 34,
-    35, 36, 37, 38, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0
-};
-
-/*Map glyph_ids to kern right classes*/
-static const uint8_t kern_right_class_mapping[] =
-{
-    0, 0, 0, 1, 0, 0, 0, 0,
-    2, 0, 3, 4, 0, 5, 6, 7,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 8, 8, 0, 0, 0,
-    9, 0, 10, 0, 11, 0, 0, 0,
-    11, 0, 12, 13, 0, 0, 0, 0,
-    14, 0, 0, 0, 15, 16, 17, 18,
-    19, 20, 21, 22, 0, 3, 3, 0,
-    0, 0, 23, 0, 24, 25, 26, 0,
-    27, 0, 0, 0, 0, 0, 28, 28,
-    26, 28, 29, 30, 31, 32, 33, 34,
-    35, 36, 37, 38, 0, 0, 3, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0
-};
-
-/*Kern values between classes*/
-static const int8_t kern_class_values[] =
-{
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, -9, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, -4,
-    0, -3, -9, 0, -2, -13, 0, -4,
-    -4, -7, -12, -3, -2, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, -3,
-    -2, -4, -3, -3, 0, 0, 0, 0,
-    -11, -14, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, -4,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    -1, -10, -1, -5, -4, 0, -7, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, -2, -1, -4, -3, 0, -4, 0,
-    0, 0, 0, 0, -2, 1, -2, 0,
-    0, 0, 0, 0, 0, 0, 0, -5,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, -4, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    -4, 0, -4, 0, 0, 0, 0, 0,
-    0, 0, 0, -4, 0, 0, -2, -1,
-    -2, -2, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, -26, 0,
-    -26, -5, 5, -9, 0, 0, 0, 0,
-    0, 3, 0, 0, 0, 0, 0, 0,
-    -9, 0, 0, -4, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, -3, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, -2, 0, -2, 0, 0, -1,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, -9, 0, 0, 0, 0, 0, 0,
-    0, -2, 0, 0, 0, 0, 0, 0,
-    0, 0, -5, 0, 0, -6, 0, 0,
-    0, 0, 0, 0, -4, -7, -6, 0,
-    -7, 0, 0, -10, 0, 0, 0, -14,
-    0, 0, 0, 0, -2, 0, 9, -2,
-    0, -15, 0, -9, -9, 0, -14, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, -9, 0, 0, -9, 0,
-    0, 0, 0, 0, -3, 0, -3, 0,
-    0, 0, 0, 0, 0, 0, 0, -4,
-    0, 0, 0, -1, -2, -2, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, -26, 0, -26, 0, 0, -4,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 2, 0, -4, 0, 0, -4,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    -3, 0, -3, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, -9,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, -5, 0, 0, 0, 0, -2, 0,
-    -3, 0, 0, -4, 0, 0, 0, 0,
-    0, 0, -2, 0, 0, 0, -5, 0,
-    0, 0, 0, 0, -2, 0, -2, 0,
-    0, -2, 0, 0, 0, 0, -2, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, -3, -2, 0, -3, 0, 0, 0,
-    0, 0, -25, -13, -25, -17, 5, -10,
-    -3, 0, 0, -4, -1, -6, 0, 0,
-    0, 0, 0, 0, -21, -19, 0, -19,
-    -18, 0, 0, -17, -15, 0, -17, -17,
-    -17, 0, -17, -15, 0, 0, 0, 0,
-    -25, -4, -25, -7, 0, -5, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, -9, 0, 0, -9, 0, 0,
-    0, 0, 0, 0, -5, 0, 0, 0,
-    -6, 0, 0, 0, 0, 0, -25, -4,
-    -19, -7, 0, -4, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    -9, 0, 0, -9, 0, 0, 0, -5,
-    0, 0, -5, 0, 0, 0, -6, 0,
-    0, 0, 0, 0, 0, -7, 0, 0,
-    0, 0, -1, 0, 0, -1, 0, 0,
-    0, 0, 0, 0, 0, 0, -4, 0,
-    0, -5, 0, 0, 0, 0, 0, 0,
-    -3, 0, 0, 0, -7, 0, 0, 0,
-    0, 0, -25, -12, -25, -17, 0, -7,
-    0, 0, 0, -2, 0, 0, 0, 0,
-    0, 0, 0, 0, -12, 0, -10, -11,
-    -11, -9, -11, -9, -9, 0, -9, -9,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, -5, 0, 0, 0, 0, -2, 0,
-    0, -2, 0, 0, 0, 0, 0, 0,
-    0, -1, -4, 0, 0, -5, 0, 0,
-    0, 0, 0, 0, 0, 0, -3, 0,
-    -6, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, -1, -1, 0, -1, 0,
-    0, 0, 0, 0, -3, 0, -2, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, -2, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, -5, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, -12, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 5, 5, 9, 4, -11, -4,
-    -10, 0, 9, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, -1, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, -2, -1, 0, -2, 0, 0, 0,
-    0, 0, 0, -9, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, -2,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    -3, 0, -2, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, -1, 0, -2,
-    -1, 0, 0, 0, 0, 0, -25, -2,
-    -25, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    -3, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, -3, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, -1, 0, 0, 0,
-    0, 0, -15, -3, -15, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, -3, 0, 0, -2,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    -6, -2, -6, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, -2, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, -4,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, -2, -1, -2, -1, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, -16, -3, -16, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, -3, -2,
-    -1, -2, -1, 0, -1, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, -2, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, -1, -1, -1,
-    -1, 0, -1, 0, 0, 0, 0, 0,
-    0, 0, 0, 0
-};
-
-
-/*Collect the kern class' data in one place*/
-static const lv_font_fmt_txt_kern_classes_t kern_classes =
-{
-    .class_pair_values   = kern_class_values,
-    .left_class_mapping  = kern_left_class_mapping,
-    .right_class_mapping = kern_right_class_mapping,
-    .left_class_cnt      = 38,
-    .right_class_cnt     = 38,
-};
-
-/*--------------------
- *  ALL CUSTOM DATA
- *--------------------*/
-
-#if LV_VERSION_CHECK(8, 0, 0)
-/*Store all the custom data of the font*/
-static  lv_font_fmt_txt_glyph_cache_t cache;
-static const lv_font_fmt_txt_dsc_t font_dsc = {
-#else
-static lv_font_fmt_txt_dsc_t font_dsc = {
-#endif
-    .glyph_bitmap = glyph_bitmap,
-    .glyph_dsc = glyph_dsc,
-    .cmaps = cmaps,
-    .kern_dsc = &kern_classes,
-    .kern_scale = 16,
-    .cmap_num = 2,
-    .bpp = 4,
-    .kern_classes = 1,
-    .bitmap_format = 0,
-#if LV_VERSION_CHECK(8, 0, 0)
-    .cache = &cache
-#endif
-};
-
-
-/*-----------------
- *  PUBLIC FONT
- *----------------*/
-
-/*Initialize a public general font descriptor*/
-#if LV_VERSION_CHECK(8, 0, 0)
-const lv_font_t lv_font_verdana_11 = {
-#else
-lv_font_t lv_font_verdana_11 = {
-#endif
-    .get_glyph_dsc = lv_font_get_glyph_dsc_fmt_txt,    /*Function pointer to get glyph's data*/
-    .get_glyph_bitmap = lv_font_get_bitmap_fmt_txt,    /*Function pointer to get glyph's bitmap*/
-    .line_height = 12,          /*The maximum line height required by the font*/
-    .base_line = 2,             /*Baseline measured from the bottom of the line*/
-#if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0)
-    .subpx = LV_FONT_SUBPX_NONE,
-#endif
-#if LV_VERSION_CHECK(7, 4, 0) || LVGL_VERSION_MAJOR >= 8
-    .underline_position = -1,
-    .underline_thickness = 1,
-#endif
-    .dsc = &font_dsc           /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
-};
-
-
-
-#endif /*#if LV_FONT_VERDANA_11*/

From a9271aad69e64108337387e1248ddf5f927e5819 Mon Sep 17 00:00:00 2001
From: ParnikaGupta <guptaparnika9@gmail.com>
Date: Tue, 19 Mar 2024 17:16:08 +0530
Subject: [PATCH 21/32] feat: Added special characters

---
 common/lv_conf.h                            |    2 +-
 common/lvgl/src/lv_font/lv_font_roboto_12.c | 1529 ++++++++-----------
 2 files changed, 608 insertions(+), 923 deletions(-)

diff --git a/common/lv_conf.h b/common/lv_conf.h
index 3936af94b..7f44e3630 100644
--- a/common/lv_conf.h
+++ b/common/lv_conf.h
@@ -283,7 +283,7 @@ typedef void * lv_indev_drv_user_data_t;            /*Type of user data in the i
  * #define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(my_font_1) \
  *                                LV_FONT_DECLARE(my_font_2)
  */
-#define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(my_font) LV_FONT_DECLARE(my_logo) LV_FONT_DECLARE(nfc_logo)
+#define LV_FONT_CUSTOM_DECLARE LV_FONT_DECLARE(nfc_logo) LV_FONT_DECLARE(special_char)
 
 /*Always set a default font from the built-in fonts*/
 #define LV_FONT_DEFAULT        &lv_font_roboto_12
diff --git a/common/lvgl/src/lv_font/lv_font_roboto_12.c b/common/lvgl/src/lv_font/lv_font_roboto_12.c
index 98e23dc7f..4865d002f 100644
--- a/common/lvgl/src/lv_font/lv_font_roboto_12.c
+++ b/common/lvgl/src/lv_font/lv_font_roboto_12.c
@@ -1,11 +1,15 @@
-#include "lvgl/lvgl.h"
-
 /*******************************************************************************
  * Size: 12 px
  * Bpp: 1
- * Opts: 
+ * Opts: --no-compress --no-prefilter --bpp 1 --size 12 --font Roboto-Regular.woff -r 0x41-0x5A,0x61-0x7A --font Roboto-Regular.woff -r 0x30-0x39 --font verdana.ttf -r 0x20-0x2F,0x3A-0x40,0x5B-0x60,0x7B-0x7F --font FontAwesome.ttf -r 61441,61448,61451,61452,61453,61457,61459,61460,61461,61465,61468,61473,61478,61479,61480,61502,61504,61512,61515,61516,61517,61521,61522,61523,61524,61536,61543,61544,61550,61552,61553,61556,61559,61560,61561,61563,61587,61589,61636,61637,61639,61671,61674,61683,61724,61732,61787,61931,62016,62017,62018,62019,62020,62099,62087,62189 --font fa.woff -r 62212,62218,62810,63426,63650 -o lv_font_roboto_12 --format lvgl --force-fast-kern-format
  ******************************************************************************/
 
+#ifdef LV_LVGL_H_INCLUDE_SIMPLE
+#include "lvgl.h"
+#else
+#include "lvgl/lvgl.h"
+#endif
+
 #ifndef LV_FONT_ROBOTO_12
 #define LV_FONT_ROBOTO_12 1
 #endif
@@ -17,515 +21,520 @@
  *----------------*/
 
 /*Store the image of the glyphs*/
-static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
-    /* U+20 " " */
+static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
+    /* U+0020 " " */
     0x0,
 
-    /* U+21 "!" */
+    /* U+0021 "!" */
     0xfc, 0x80,
 
-    /* U+22 "\"" */
-    0xfc,
+    /* U+0022 "\"" */
+    0xaa, 0xa0,
 
-    /* U+23 "#" */
-    0x28, 0xaf, 0xd2, 0x4b, 0xf5, 0x14, 0x50,
+    /* U+0023 "#" */
+    0x14, 0x14, 0x7f, 0x24, 0x28, 0x28, 0xfe, 0x48,
+    0x48,
 
-    /* U+24 "$" */
-    0x23, 0xa7, 0x18, 0x30, 0xc1, 0x8c, 0x5c, 0x40,
+    /* U+0024 "$" */
+    0x21, 0xfa, 0x68, 0xe0, 0xf2, 0x49, 0xf8, 0x82,
+    0x0,
 
-    /* U+25 "%" */
-    0x60, 0x94, 0x94, 0x68, 0x10, 0x16, 0x29, 0x29,
-    0x6,
+    /* U+0025 "%" */
+    0x61, 0x12, 0x22, 0x48, 0x49, 0x6, 0x4c, 0x12,
+    0x42, 0x48, 0x89, 0x10, 0xc0,
 
-    /* U+26 "&" */
-    0x30, 0x91, 0x23, 0x86, 0x1a, 0xa3, 0x44, 0x7c,
+    /* U+0026 "&" */
+    0x30, 0x24, 0x12, 0xe, 0x5, 0x24, 0x52, 0x19,
+    0x8c, 0x79, 0x0,
 
-    /* U+27 "'" */
+    /* U+0027 "'" */
     0xe0,
 
-    /* U+28 "(" */
-    0x29, 0x49, 0x24, 0x91, 0x22,
+    /* U+0028 "(" */
+    0x24, 0x48, 0x88, 0x88, 0x84, 0x42,
 
-    /* U+29 ")" */
-    0x89, 0x12, 0x49, 0x25, 0x28,
+    /* U+0029 ")" */
+    0x42, 0x21, 0x11, 0x11, 0x12, 0x24,
 
-    /* U+2A "*" */
-    0x21, 0x3e, 0xc5, 0x0,
+    /* U+002A "*" */
+    0x25, 0x5d, 0xf2, 0x0,
 
-    /* U+2B "+" */
-    0x20, 0x82, 0x3f, 0x20, 0x82, 0x0,
+    /* U+002B "+" */
+    0x10, 0x20, 0x47, 0xf1, 0x2, 0x4, 0x0,
 
-    /* U+2C "," */
-    0x54,
+    /* U+002C "," */
+    0x7a,
 
-    /* U+2D "-" */
-    0xe0,
+    /* U+002D "-" */
+    0xf0,
 
-    /* U+2E "." */
+    /* U+002E "." */
     0x80,
 
-    /* U+2F "/" */
-    0x10, 0x84, 0x42, 0x11, 0x8, 0x44, 0x0,
+    /* U+002F "/" */
+    0x8, 0xc4, 0x22, 0x10, 0x88, 0x42, 0x21, 0x0,
 
-    /* U+30 "0" */
+    /* U+0030 "0" */
     0x74, 0xe3, 0x18, 0xc6, 0x3b, 0x70,
 
-    /* U+31 "1" */
+    /* U+0031 "1" */
     0x3c, 0x92, 0x49, 0x20,
 
-    /* U+32 "2" */
+    /* U+0032 "2" */
     0x74, 0x62, 0x11, 0x11, 0x88, 0xf8,
 
-    /* U+33 "3" */
+    /* U+0033 "3" */
     0x74, 0x42, 0x13, 0x4, 0x31, 0x70,
 
-    /* U+34 "4" */
+    /* U+0034 "4" */
     0x8, 0x62, 0x8a, 0x4b, 0x2f, 0xc2, 0x8,
 
-    /* U+35 "5" */
-    0xfc, 0x21, 0xe1, 0x86, 0x31, 0x70,
+    /* U+0035 "5" */
+    0xfc, 0x21, 0xe1, 0x86, 0x33, 0x70,
 
-    /* U+36 "6" */
+    /* U+0036 "6" */
     0x32, 0x21, 0xe8, 0xc6, 0x39, 0x70,
 
-    /* U+37 "7" */
+    /* U+0037 "7" */
     0xfc, 0x10, 0x82, 0x10, 0x43, 0x8, 0x20,
 
-    /* U+38 "8" */
+    /* U+0038 "8" */
     0x74, 0x63, 0x17, 0x46, 0x31, 0x70,
 
-    /* U+39 "9" */
+    /* U+0039 "9" */
     0x74, 0xe3, 0x18, 0xbc, 0x22, 0x60,
 
-    /* U+3A ":" */
+    /* U+003A ":" */
     0x82,
 
-    /* U+3B ";" */
-    0x87,
+    /* U+003B ";" */
+    0x40, 0x15, 0x60,
 
-    /* U+3C "<" */
-    0x9, 0xb1, 0xc3, 0x84,
+    /* U+003C "<" */
+    0x6, 0x33, 0x87, 0x3, 0x80, 0xc0, 0x0,
 
-    /* U+3D "=" */
-    0xf8, 0x1, 0xf0,
+    /* U+003D "=" */
+    0xfe, 0x0, 0x7, 0xf0,
 
-    /* U+3E ">" */
-    0x83, 0x6, 0x7e, 0x40,
+    /* U+003E ">" */
+    0xc0, 0x60, 0x38, 0x73, 0x98, 0x0, 0x0,
 
-    /* U+3F "?" */
-    0x72, 0x42, 0x11, 0x10, 0x80, 0x20,
+    /* U+003F "?" */
+    0xf4, 0x42, 0x11, 0x10, 0x80, 0x20,
 
-    /* U+40 "@" */
-    0x1e, 0x8, 0x64, 0xa, 0x39, 0x92, 0x64, 0x99,
-    0x26, 0x5b, 0x9b, 0x90, 0x6, 0x0, 0xf8,
+    /* U+0040 "@" */
+    0x1e, 0x18, 0x65, 0xea, 0x89, 0xa2, 0x68, 0x9a,
+    0x25, 0x7e, 0x60, 0x7, 0x80,
 
-    /* U+41 "A" */
+    /* U+0041 "A" */
     0x18, 0x18, 0x18, 0x24, 0x24, 0x64, 0x7e, 0x42,
     0xc2,
 
-    /* U+42 "B" */
+    /* U+0042 "B" */
     0xfa, 0x18, 0x61, 0xfa, 0x18, 0x61, 0xf8,
 
-    /* U+43 "C" */
+    /* U+0043 "C" */
     0x39, 0x18, 0x60, 0x82, 0x8, 0x51, 0x38,
 
-    /* U+44 "D" */
+    /* U+0044 "D" */
     0xf2, 0x28, 0x61, 0x86, 0x18, 0x62, 0xf0,
 
-    /* U+45 "E" */
+    /* U+0045 "E" */
     0xfc, 0x21, 0xf, 0xc2, 0x10, 0xf8,
 
-    /* U+46 "F" */
+    /* U+0046 "F" */
     0xfc, 0x21, 0xf, 0xc2, 0x10, 0x80,
 
-    /* U+47 "G" */
+    /* U+0047 "G" */
     0x3c, 0x8e, 0x4, 0x8, 0xf0, 0x60, 0xa1, 0x3c,
 
-    /* U+48 "H" */
+    /* U+0048 "H" */
     0x83, 0x6, 0xc, 0x1f, 0xf0, 0x60, 0xc1, 0x82,
 
-    /* U+49 "I" */
+    /* U+0049 "I" */
     0xff, 0x80,
 
-    /* U+4A "J" */
+    /* U+004A "J" */
     0x8, 0x42, 0x10, 0x86, 0x31, 0x70,
 
-    /* U+4B "K" */
+    /* U+004B "K" */
     0x8e, 0x29, 0x28, 0xe2, 0x49, 0xa2, 0x84,
 
-    /* U+4C "L" */
+    /* U+004C "L" */
     0x84, 0x21, 0x8, 0x42, 0x10, 0xf8,
 
-    /* U+4D "M" */
+    /* U+004D "M" */
     0xc3, 0xc3, 0xc3, 0xa5, 0xa5, 0xa5, 0x99, 0x99,
     0x99,
 
-    /* U+4E "N" */
+    /* U+004E "N" */
     0x83, 0x87, 0x8d, 0x99, 0x33, 0x63, 0xc3, 0x82,
 
-    /* U+4F "O" */
+    /* U+004F "O" */
     0x38, 0x8a, 0xc, 0x18, 0x30, 0x60, 0xa2, 0x38,
 
-    /* U+50 "P" */
+    /* U+0050 "P" */
     0xfa, 0x18, 0x61, 0xfa, 0x8, 0x20, 0x80,
 
-    /* U+51 "Q" */
+    /* U+0051 "Q" */
     0x38, 0x8a, 0xc, 0x18, 0x30, 0x60, 0xa2, 0x3c,
     0xc,
 
-    /* U+52 "R" */
-    0xfa, 0x18, 0x61, 0xfa, 0x28, 0xa1, 0x84,
+    /* U+0052 "R" */
+    0xfa, 0x18, 0x61, 0xfa, 0x68, 0xa1, 0x84,
 
-    /* U+53 "S" */
-    0x7a, 0x38, 0x70, 0x30, 0x38, 0x71, 0x78,
+    /* U+0053 "S" */
+    0x7a, 0x38, 0x70, 0x30, 0x38, 0x61, 0x78,
 
-    /* U+54 "T" */
+    /* U+0054 "T" */
     0xfe, 0x20, 0x40, 0x81, 0x2, 0x4, 0x8, 0x10,
 
-    /* U+55 "U" */
+    /* U+0055 "U" */
     0x86, 0x18, 0x61, 0x86, 0x18, 0x73, 0x78,
 
-    /* U+56 "V" */
+    /* U+0056 "V" */
     0xc2, 0x85, 0x1a, 0x22, 0x45, 0x8a, 0xc, 0x18,
 
-    /* U+57 "W" */
+    /* U+0057 "W" */
     0xc4, 0x53, 0x14, 0xa5, 0x2b, 0x4a, 0x8c, 0xa3,
     0x18, 0xc6, 0x31, 0x0,
 
-    /* U+58 "X" */
+    /* U+0058 "X" */
     0x42, 0xc8, 0xb0, 0xc1, 0x7, 0xb, 0x32, 0x42,
 
-    /* U+59 "Y" */
+    /* U+0059 "Y" */
     0xc6, 0x89, 0xb1, 0x42, 0x82, 0x4, 0x8, 0x10,
 
-    /* U+5A "Z" */
+    /* U+005A "Z" */
     0xfc, 0x30, 0x84, 0x30, 0x84, 0x30, 0xfc,
 
-    /* U+5B "[" */
-    0xea, 0xaa, 0xaa, 0xc0,
+    /* U+005B "[" */
+    0xf2, 0x49, 0x24, 0x92, 0x70,
 
-    /* U+5C "\\" */
-    0x82, 0x10, 0xc2, 0x10, 0x42, 0x10, 0x40,
+    /* U+005C "\\" */
+    0x41, 0x4, 0x8, 0x20, 0x81, 0x4, 0x8, 0x20,
+    0x81,
 
-    /* U+5D "]" */
-    0xd5, 0x55, 0x55, 0xc0,
+    /* U+005D "]" */
+    0xe4, 0x92, 0x49, 0x24, 0xf0,
 
-    /* U+5E "^" */
-    0x21, 0x14, 0xa5, 0x0,
+    /* U+005E "^" */
+    0x18, 0x38, 0x24, 0x42, 0xc2,
 
-    /* U+5F "_" */
-    0xf8,
+    /* U+005F "_" */
+    0xff,
 
-    /* U+60 "`" */
-    0x4c,
+    /* U+0060 "`" */
+    0x94,
 
-    /* U+61 "a" */
+    /* U+0061 "a" */
     0x74, 0x42, 0xf8, 0xc5, 0xe0,
 
-    /* U+62 "b" */
+    /* U+0062 "b" */
     0x84, 0x21, 0xe9, 0xc6, 0x31, 0x9f, 0x80,
 
-    /* U+63 "c" */
-    0x7b, 0x28, 0x20, 0x83, 0x27, 0x0,
+    /* U+0063 "c" */
+    0x76, 0x61, 0x8, 0x65, 0xc0,
 
-    /* U+64 "d" */
+    /* U+0064 "d" */
     0x8, 0x42, 0xfc, 0xc6, 0x31, 0xcb, 0xc0,
 
-    /* U+65 "e" */
-    0x76, 0x63, 0xf8, 0x65, 0xc0,
+    /* U+0065 "e" */
+    0x73, 0x28, 0xbf, 0x83, 0x27, 0x80,
 
-    /* U+66 "f" */
+    /* U+0066 "f" */
     0x34, 0x4f, 0x44, 0x44, 0x44,
 
-    /* U+67 "g" */
-    0x7e, 0x63, 0x18, 0xe5, 0xe1, 0x9b, 0x80,
+    /* U+0067 "g" */
+    0x7e, 0x63, 0x18, 0xe5, 0xe1, 0x8b, 0x80,
 
-    /* U+68 "h" */
+    /* U+0068 "h" */
     0x84, 0x21, 0xe8, 0xc6, 0x31, 0x8c, 0x40,
 
-    /* U+69 "i" */
+    /* U+0069 "i" */
     0xbf, 0x80,
 
-    /* U+6A "j" */
+    /* U+006A "j" */
     0x45, 0x55, 0x57,
 
-    /* U+6B "k" */
+    /* U+006B "k" */
     0x84, 0x21, 0x2b, 0x73, 0x94, 0x94, 0x40,
 
-    /* U+6C "l" */
+    /* U+006C "l" */
     0xff, 0xc0,
 
-    /* U+6D "m" */
+    /* U+006D "m" */
     0xf7, 0x44, 0x62, 0x31, 0x18, 0x8c, 0x46, 0x22,
 
-    /* U+6E "n" */
+    /* U+006E "n" */
     0xf4, 0x63, 0x18, 0xc6, 0x20,
 
-    /* U+6F "o" */
+    /* U+006F "o" */
     0x7b, 0x38, 0x61, 0x87, 0x37, 0x80,
 
-    /* U+70 "p" */
+    /* U+0070 "p" */
     0xf4, 0xe3, 0x18, 0xcf, 0xd0, 0x84, 0x0,
 
-    /* U+71 "q" */
+    /* U+0071 "q" */
     0x7e, 0x63, 0x18, 0xe5, 0xe1, 0x8, 0x40,
 
-    /* U+72 "r" */
+    /* U+0072 "r" */
     0xf2, 0x49, 0x20,
 
-    /* U+73 "s" */
+    /* U+0073 "s" */
     0x74, 0x60, 0xe0, 0xc5, 0xc0,
 
-    /* U+74 "t" */
+    /* U+0074 "t" */
     0x4b, 0xa4, 0x92, 0x60,
 
-    /* U+75 "u" */
+    /* U+0075 "u" */
     0x8c, 0x63, 0x18, 0xc5, 0xe0,
 
-    /* U+76 "v" */
+    /* U+0076 "v" */
     0x89, 0x24, 0x94, 0x30, 0xc2, 0x0,
 
-    /* U+77 "w" */
+    /* U+0077 "w" */
     0x88, 0xa4, 0x95, 0x4a, 0xa5, 0x51, 0x10, 0x88,
 
-    /* U+78 "x" */
+    /* U+0078 "x" */
     0x49, 0x23, 0xc, 0x31, 0x24, 0x80,
 
-    /* U+79 "y" */
+    /* U+0079 "y" */
     0x89, 0x24, 0x94, 0x30, 0xc3, 0x8, 0x23, 0x0,
 
-    /* U+7A "z" */
+    /* U+007A "z" */
     0xf8, 0xc4, 0x44, 0x63, 0xe0,
 
-    /* U+7B "{" */
-    0x29, 0x24, 0xa2, 0x49, 0x22,
+    /* U+007B "{" */
+    0x19, 0x8, 0x42, 0x32, 0xc, 0x21, 0x8, 0x30,
 
-    /* U+7C "|" */
-    0xff, 0xe0,
+    /* U+007C "|" */
+    0xff, 0xf0,
 
-    /* U+7D "}" */
-    0x89, 0x24, 0x8a, 0x49, 0x28,
+    /* U+007D "}" */
+    0xc1, 0x8, 0x42, 0x18, 0x26, 0x21, 0x9, 0x80,
 
-    /* U+7E "~" */
-    0x65, 0x2a, 0x70,
+    /* U+007E "~" */
+    0x71, 0x99, 0x8e,
 
     /* U+F001 "" */
-    0x0, 0x70, 0x3f, 0x1f, 0xf1, 0xfb, 0x1c, 0x31,
-    0x83, 0x18, 0x31, 0x83, 0x19, 0xf7, 0x9f, 0xf8,
-    0x47, 0x0,
+    0x0, 0x0, 0xf1, 0xfc, 0x7f, 0x1e, 0x44, 0x11,
+    0x4, 0x47, 0x13, 0xfc, 0x6f, 0x0,
 
     /* U+F008 "" */
-    0xbf, 0xde, 0x7, 0xa0, 0x5e, 0x7, 0xbf, 0xde,
-    0x7, 0xa0, 0x5e, 0x7, 0xbf, 0xd0,
+    0xff, 0xfc, 0x82, 0x64, 0x13, 0xe0, 0xf9, 0x4,
+    0xc8, 0x27, 0xff, 0xf2, 0x9, 0xf0, 0x7c, 0x82,
+    0x64, 0x13, 0xff, 0xf0,
 
     /* U+F00B "" */
-    0xf7, 0xf7, 0xbf, 0xfd, 0xfe, 0x0, 0xf, 0x7f,
-    0x7b, 0xff, 0xdf, 0xc0, 0x0, 0xf7, 0xf7, 0xbf,
-    0xfd, 0xfc,
+    0xef, 0xfe, 0xff, 0x0, 0xe, 0xff, 0xef, 0xf0,
+    0x0, 0x0, 0xe, 0xff, 0xef, 0xf0,
 
     /* U+F00C "" */
-    0x0, 0x20, 0x7, 0x0, 0xe4, 0x1c, 0xe3, 0x87,
-    0x70, 0x3e, 0x1, 0xc0, 0x8, 0x0,
+    0x0, 0x80, 0x74, 0x3b, 0x9c, 0xfe, 0x1f, 0x3,
+    0x80, 0x40,
 
     /* U+F00D "" */
-    0xc3, 0xe7, 0x7e, 0x3c, 0x3c, 0x7e, 0xe7, 0xc3,
+    0x42, 0xe7, 0x7e, 0x3c, 0x3c, 0x7e, 0xe7, 0x42,
 
     /* U+F011 "" */
-    0x6, 0x2, 0x64, 0x76, 0xe6, 0x66, 0xc6, 0x3c,
-    0x63, 0xc6, 0x3c, 0x3, 0x60, 0x67, 0xe, 0x3f,
-    0xc0, 0xf0,
+    0xc, 0xb, 0x47, 0xfb, 0xb6, 0xcc, 0xf3, 0x3c,
+    0xf, 0x87, 0x61, 0x8f, 0xc0,
 
     /* U+F013 "" */
-    0xe, 0x4, 0xf0, 0x7f, 0xef, 0xfe, 0x71, 0xe7,
-    0xc, 0x71, 0xef, 0xfe, 0x7f, 0xe4, 0xf0, 0xe,
-    0x0,
+    0xc, 0x1f, 0xe7, 0xf9, 0xce, 0xe1, 0xf8, 0x77,
+    0x39, 0xfe, 0x7f, 0x83, 0x0,
+
+    /* U+F014 "" */
+    0x1c, 0x11, 0x3f, 0xe8, 0x14, 0xb, 0x55, 0xaa,
+    0xd5, 0x6a, 0xa0, 0x5f, 0xc0,
 
     /* U+F015 "" */
-    0x3, 0x30, 0x1e, 0xc1, 0xcf, 0xc, 0xcc, 0x6f,
-    0xdb, 0x7f, 0xb3, 0xff, 0xf, 0x3c, 0x3c, 0xf0,
-    0xf3, 0xc0,
+    0xd, 0x82, 0x70, 0xb6, 0x7f, 0xef, 0xfa, 0xff,
+    0x1c, 0xe3, 0x9c,
 
     /* U+F019 "" */
-    0xe, 0x0, 0xe0, 0xe, 0x0, 0xe0, 0x3f, 0xc3,
-    0xf8, 0x1f, 0x0, 0xe0, 0xf5, 0xff, 0xff, 0xff,
-    0x5f, 0xff,
+    0xe, 0x1, 0xc0, 0x38, 0x1f, 0xc1, 0xf0, 0x1c,
+    0x1, 0x7, 0xdf, 0xff, 0xbf, 0xfc,
 
     /* U+F01C "" */
-    0x1f, 0xe0, 0xc0, 0xc6, 0x1, 0x90, 0x2, 0xf8,
-    0xf, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
+    0x3f, 0x18, 0x64, 0xb, 0x3, 0x80, 0x7c, 0xff,
+    0xff, 0xff,
 
     /* U+F021 "" */
-    0x0, 0x31, 0xf3, 0x71, 0xfc, 0x7, 0xc3, 0xf0,
-    0x0, 0x0, 0x0, 0x0, 0xfc, 0x3e, 0x3, 0xf8,
-    0xec, 0xf8, 0xc0, 0x0,
+    0x3f, 0x5c, 0xf6, 0x1f, 0xf, 0x0, 0x0, 0xf,
+    0xf, 0x86, 0xbe, 0x0,
 
     /* U+F026 "" */
-    0xc, 0x7f, 0xff, 0xff, 0xf1, 0xc3,
+    0x8, 0xff, 0xff, 0xfc, 0x61,
 
     /* U+F027 "" */
-    0xc, 0xe, 0x3f, 0x7f, 0x9f, 0xdf, 0xe0, 0x70,
-    0x18,
+    0x8, 0x18, 0xfa, 0xf9, 0xf9, 0xfa, 0x18, 0x8,
 
     /* U+F028 "" */
-    0x0, 0x60, 0x1, 0x83, 0x34, 0x38, 0xdf, 0xda,
-    0xfe, 0x57, 0xf6, 0xbf, 0x8d, 0x1c, 0xd0, 0x61,
-    0x80, 0x18,
+    0x0, 0x81, 0x28, 0x62, 0xfd, 0xdf, 0x9b, 0xf7,
+    0x46, 0x68, 0x42, 0x0, 0x80,
 
     /* U+F03E "" */
-    0xff, 0xf9, 0xff, 0x9f, 0xf9, 0xef, 0xfc, 0x7d,
-    0x83, 0xc0, 0x38, 0x3, 0xff, 0xf0,
+    0xff, 0xfc, 0x0, 0x60, 0x3, 0x60, 0x1b, 0x8,
+    0xc0, 0xe6, 0x7f, 0xb7, 0xfd, 0xbf, 0xec, 0x0,
+    0x7f, 0xfe,
+
+    /* U+F040 "" */
+    0x1, 0x80, 0x70, 0x6c, 0x3c, 0x1f, 0xf, 0x87,
+    0xc2, 0xe0, 0xd0, 0x38, 0x0,
 
     /* U+F048 "" */
-    0xc3, 0xc7, 0xcf, 0xdf, 0xff, 0xff, 0xdf, 0xcf,
-    0xc7, 0xc3,
+    0xc3, 0x8f, 0x3e, 0xff, 0xff, 0xf7, 0xe7, 0xc7,
+    0x84,
 
     /* U+F04B "" */
-    0x0, 0x1c, 0x3, 0xe0, 0x7f, 0xf, 0xf9, 0xff,
-    0xbf, 0xff, 0xfe, 0xff, 0x9f, 0xc3, 0xe0, 0x70,
-    0x0, 0x0,
+    0x0, 0x60, 0x3c, 0x1f, 0xf, 0xe7, 0xff, 0xfd,
+    0xf8, 0xf0, 0x70, 0x20, 0x0,
 
     /* U+F04C "" */
-    0xfb, 0xff, 0x7f, 0xef, 0xfd, 0xff, 0xbf, 0xf7,
-    0xfe, 0xff, 0xdf, 0xfb, 0xff, 0x7c,
+    0xf3, 0xfc, 0xff, 0x3f, 0xcf, 0xf3, 0xfc, 0xff,
+    0x3f, 0xcf, 0xf3, 0xfc, 0xf0,
 
     /* U+F04D "" */
     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
+    0xff, 0xff, 0xff, 0xff, 0xf0,
 
     /* U+F051 "" */
-    0xc3, 0xe3, 0xf3, 0xfb, 0xff, 0xff, 0xfb, 0xf3,
-    0xe3, 0xc3,
+    0x87, 0x8f, 0x9f, 0xbf, 0xff, 0xfd, 0xf3, 0xc7,
+    0xc,
 
     /* U+F052 "" */
-    0xc, 0x3, 0xc0, 0x7c, 0x1f, 0xc7, 0xfd, 0xff,
-    0xbf, 0xf0, 0x0, 0xff, 0xff, 0xff, 0xff, 0x80,
+    0xc, 0x7, 0x83, 0xf1, 0xfe, 0xff, 0xc0, 0x0,
+    0x3, 0xff, 0xff, 0xc0,
 
     /* U+F053 "" */
-    0xc, 0x73, 0x9c, 0xe3, 0x87, 0xe, 0x1c, 0x30,
+    0x4, 0x1c, 0x71, 0xc7, 0x1c, 0x1c, 0x1c, 0x1c,
+    0x1c, 0x10,
 
     /* U+F054 "" */
-    0x83, 0x87, 0xe, 0x1c, 0x73, 0x9c, 0xe2, 0x0,
+    0xc1, 0xc3, 0xc3, 0xc3, 0xc3, 0xcf, 0x3c, 0xf1,
+    0xc3, 0x0,
 
     /* U+F060 "" */
-    0xc, 0x3, 0x80, 0xe0, 0x38, 0xf, 0xff, 0xff,
-    0xdc, 0x1, 0xc0, 0x1c, 0x1, 0x80,
+    0xc, 0x7, 0x83, 0xc1, 0xe0, 0xff, 0xff, 0xf7,
+    0x80, 0xf0, 0x1e, 0x3, 0x0,
 
     /* U+F067 "" */
-    0xe, 0x1, 0xc0, 0x38, 0x7, 0xf, 0xff, 0xff,
-    0xc3, 0x80, 0x70, 0xe, 0x1, 0xc0,
+    0x1c, 0xe, 0x7, 0x1f, 0xff, 0xff, 0xfc, 0x70,
+    0x38, 0x1c, 0x0,
 
     /* U+F068 "" */
-    0xff, 0xff, 0xfc,
+    0xff, 0xff, 0xc0,
 
     /* U+F06E "" */
-    0xf, 0x81, 0xc7, 0x1c, 0x1d, 0xc6, 0x7e, 0xfb,
-    0xf7, 0xdd, 0xdd, 0xc7, 0x1c, 0xf, 0x80,
+    0xf, 0x3, 0xbc, 0x57, 0xa9, 0xf9, 0x9f, 0x94,
+    0xf2, 0x30, 0xc0, 0xf0,
 
     /* U+F070 "" */
-    0x0, 0x1, 0xc0, 0x1, 0xdf, 0x0, 0xe3, 0x80,
-    0xd3, 0x84, 0xfb, 0x9c, 0x77, 0x3c, 0x6e, 0x38,
-    0x78, 0x38, 0x70, 0x1e, 0x30, 0x0, 0x30, 0x0,
-    0x0,
+    0x7, 0x83, 0xb0, 0x57, 0x29, 0x69, 0x9c, 0x94,
+    0xd2, 0x28, 0x41, 0xb0, 0x0, 0x0,
 
     /* U+F071 "" */
-    0x3, 0x0, 0x1c, 0x0, 0xf8, 0x3, 0xf0, 0x1c,
-    0xc0, 0x73, 0x83, 0xcf, 0x1f, 0xfc, 0x7c, 0xfb,
-    0xf3, 0xef, 0xff, 0x80,
+    0x6, 0x0, 0x60, 0xf, 0x1, 0x98, 0x19, 0x83,
+    0x9c, 0x3f, 0xc7, 0x9e, 0xf9, 0xff, 0xff,
 
     /* U+F074 "" */
-    0x0, 0x0, 0x6, 0xe1, 0xff, 0x3f, 0x17, 0x60,
-    0xe4, 0x1f, 0x6f, 0xbf, 0xf1, 0xf0, 0x6, 0x0,
-    0x40,
+    0x0, 0x0, 0x6, 0xf3, 0xf1, 0x66, 0x1c, 0x0,
+    0xc0, 0x18, 0x1, 0x66, 0xe3, 0xf0, 0x6,
 
     /* U+F077 "" */
-    0x0, 0x3, 0x1, 0xe0, 0xcc, 0x61, 0xb0, 0x30,
-    0x0,
+    0x4, 0x1, 0xc0, 0x7c, 0x1d, 0xc7, 0x1d, 0xc1,
+    0xd0, 0x10,
 
     /* U+F078 "" */
-    0x0, 0x30, 0x36, 0x18, 0xcc, 0x1e, 0x3, 0x0,
-    0x0,
+    0x40, 0x5c, 0x1f, 0xc7, 0x1d, 0xc1, 0xf0, 0x1c,
+    0x1, 0x0,
 
     /* U+F079 "" */
-    0x30, 0x0, 0xf7, 0xf3, 0xf0, 0x65, 0xa0, 0xc3,
-    0x1, 0x86, 0xb, 0x4c, 0x1f, 0x9f, 0xde, 0x0,
-    0x18,
+    0x37, 0xf1, 0xe0, 0xcf, 0xc3, 0xc, 0xc, 0x30,
+    0xfc, 0xc1, 0xe3, 0xfb, 0x0,
 
     /* U+F07B "" */
-    0x78, 0xf, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
+    0x70, 0x1f, 0x3, 0xff, 0xff, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xe0,
 
     /* U+F093 "" */
-    0x6, 0x0, 0xf0, 0x1f, 0x83, 0xfc, 0x7, 0x0,
-    0x70, 0x7, 0x0, 0x70, 0xf7, 0xff, 0xff, 0xff,
-    0x5f, 0xff,
+    0x4, 0x1, 0xc0, 0x7c, 0x1f, 0xc0, 0xe0, 0x1c,
+    0x3, 0x87, 0x7, 0xff, 0xff, 0xf7, 0xff, 0x80,
 
     /* U+F095 "" */
-    0x0, 0x0, 0xf, 0x0, 0xf0, 0x1f, 0x0, 0xf0,
-    0x6, 0x0, 0xe0, 0x1c, 0x73, 0xcf, 0xf8, 0xfe,
-    0xf, 0xc0, 0x0, 0x0,
+    0x40, 0x70, 0x38, 0x18, 0x4, 0x3, 0x0, 0xcc,
+    0x3f, 0x7, 0x0,
 
     /* U+F0C4 "" */
-    0x70, 0x5b, 0x3f, 0x6f, 0x3f, 0xc1, 0xf0, 0x3e,
-    0x1f, 0xe6, 0xde, 0xd9, 0xee, 0x8,
+    0x60, 0x9, 0x3, 0x88, 0xdc, 0x92, 0x76, 0xc0,
+    0xe8, 0x7f, 0x6c, 0x99, 0x98, 0x7f, 0x0,
 
     /* U+F0C5 "" */
-    0x1f, 0x43, 0xef, 0x7f, 0xef, 0xfd, 0xff, 0xbf,
-    0xf7, 0xfe, 0xff, 0xdf, 0xf8, 0x3, 0xfc, 0x0,
+    0x1f, 0x3, 0x10, 0x51, 0xff, 0x19, 0x86, 0x98,
+    0xc9, 0x8f, 0x98, 0x81, 0xf8, 0x10, 0x81, 0x8,
+    0x10, 0xff,
 
     /* U+F0C7 "" */
-    0xff, 0x98, 0x1b, 0x3, 0xe0, 0x7c, 0xf, 0xff,
-    0xfe, 0x7f, 0x8f, 0xf9, 0xff, 0xfc,
+    0xff, 0x2c, 0xeb, 0x2e, 0xc9, 0xbe, 0x60, 0x1b,
+    0xf6, 0x85, 0xa1, 0x68, 0x5f, 0xfc,
 
     /* U+F0E7 "" */
-    0x78, 0x78, 0xf8, 0xf0, 0xff, 0xfe, 0xfc, 0x1c,
-    0x18, 0x18, 0x10, 0x30,
+    0x71, 0xc6, 0x1f, 0xfb, 0x61, 0x4, 0x20, 0x82,
+    0x0,
 
     /* U+F0EA "" */
-    0x18, 0x3b, 0x8e, 0xe3, 0xf8, 0xe0, 0x3b, 0xae,
-    0xe7, 0xbf, 0xef, 0xfb, 0xf0, 0xfc, 0x3f,
+    0xff, 0x8c, 0x18, 0xff, 0x8f, 0x8c, 0xf8, 0xaf,
+    0x8b, 0xf8, 0xff, 0x81, 0xf8, 0x1f, 0x81, 0x8,
+    0x10, 0xff,
 
     /* U+F0F3 "" */
-    0x4, 0x0, 0x80, 0x7c, 0x1f, 0xc3, 0xf8, 0x7f,
-    0x1f, 0xf3, 0xfe, 0x7f, 0xdf, 0xfc, 0x0, 0x7,
+    0x4, 0x3, 0xe0, 0xfe, 0x1f, 0xc3, 0xf8, 0x7f,
+    0xf, 0xe3, 0xfe, 0x7f, 0xdf, 0xfc, 0x78, 0x7,
     0x0,
 
     /* U+F11C "" */
-    0xff, 0xff, 0x52, 0xbd, 0x4a, 0xff, 0xff, 0xeb,
-    0x5f, 0xff, 0xfd, 0x2, 0xf4, 0xb, 0xff, 0xfc,
+    0xff, 0xfc, 0x0, 0x75, 0xab, 0x0, 0x5a, 0xd6,
+    0xc0, 0x6, 0x7e, 0xbf, 0xff,
 
     /* U+F124 "" */
-    0x0, 0x0, 0xf, 0x3, 0xf0, 0xfe, 0x3f, 0xef,
-    0xfc, 0xff, 0xc0, 0x78, 0x7, 0x80, 0x78, 0x7,
-    0x0, 0x70, 0x2, 0x0,
+    0x0, 0x0, 0xc1, 0xe3, 0xe7, 0xf7, 0xf0, 0x38,
+    0x18, 0xc, 0x4, 0x0,
 
     /* U+F15B "" */
-    0xfa, 0x7d, 0xbe, 0xff, 0xf, 0xff, 0xff, 0xff,
-    0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
+    0xfe, 0x3f, 0x4f, 0xdb, 0xf1, 0xff, 0xff, 0xff,
+    0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
 
     /* U+F1EB "" */
-    0x7, 0xc0, 0x7f, 0xf1, 0xe0, 0xf7, 0x0, 0x70,
-    0x7c, 0x3, 0xfe, 0x6, 0xc, 0x0, 0x0, 0x3,
-    0x80, 0x7, 0x0, 0xe, 0x0,
+    0x6, 0x1, 0xff, 0x1c, 0x1f, 0x9f, 0x23, 0x8e,
+    0x18, 0x30, 0x3c, 0x1, 0xb0, 0x0, 0x0, 0x10,
+    0x0,
 
     /* U+F240 "" */
-    0xff, 0xff, 0x80, 0x1f, 0x7f, 0xfe, 0xff, 0xbd,
-    0xff, 0x78, 0x1, 0xff, 0xff, 0x80,
+    0xff, 0xfe, 0x80, 0x2, 0xbf, 0xfa, 0xbf, 0xf9,
+    0xbf, 0xf9, 0xbf, 0xf9, 0xbf, 0xfb, 0x80, 0x2,
+    0xff, 0xfe,
 
     /* U+F241 "" */
-    0xff, 0xff, 0x80, 0x1f, 0x7f, 0x3e, 0xfe, 0x3d,
-    0xfc, 0x78, 0x1, 0xff, 0xff, 0x80,
+    0xff, 0xfe, 0x80, 0x2, 0xbf, 0xe2, 0xbf, 0xe1,
+    0xbf, 0xe1, 0xbf, 0xe1, 0xbf, 0xe3, 0x80, 0x2,
+    0xff, 0xfe,
 
     /* U+F242 "" */
-    0xff, 0xff, 0x80, 0x1f, 0x78, 0x3e, 0xf0, 0x3d,
-    0xe0, 0x78, 0x1, 0xff, 0xff, 0x80,
+    0xff, 0xfe, 0x80, 0x2, 0xbf, 0x2, 0xbf, 0x1,
+    0xbf, 0x1, 0xbf, 0x1, 0xbf, 0x3, 0x80, 0x2,
+    0xff, 0xfe,
 
     /* U+F243 "" */
-    0xff, 0xff, 0x80, 0x1f, 0x60, 0x3e, 0xc0, 0x3d,
-    0x80, 0x78, 0x1, 0xff, 0xff, 0x80,
+    0xff, 0xfe, 0x80, 0x2, 0xb8, 0x2, 0xb8, 0x1,
+    0xb8, 0x1, 0xb8, 0x1, 0xb8, 0x3, 0x80, 0x2,
+    0xff, 0xfe,
 
     /* U+F244 "" */
-    0xff, 0xff, 0x80, 0x1f, 0x0, 0x3e, 0x0, 0x3c,
-    0x0, 0x78, 0x1, 0xff, 0xff, 0x80,
+    0xff, 0xfe, 0x80, 0x2, 0x80, 0x2, 0x80, 0x1,
+    0x80, 0x1, 0x80, 0x1, 0x80, 0x3, 0x80, 0x2,
+    0xff, 0xfe,
 
     /* U+F287 "" */
     0x0, 0xc0, 0x7, 0x80, 0x10, 0x7, 0x20, 0x6f,
@@ -533,16 +542,14 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
     0xf0,
 
     /* U+F293 "" */
-    0x3e, 0x3b, 0x9c, 0xdb, 0x7c, 0xbf, 0x1f, 0x9f,
-    0x87, 0xd5, 0xf9, 0x9d, 0xc7, 0xc0,
+    0x3e, 0x3b, 0xbc, 0xdb, 0x3c, 0x1f, 0x1f, 0x8f,
+    0x83, 0xd9, 0xf9, 0x9d, 0xc7, 0xc0,
 
     /* U+F2ED "" */
-    0xe, 0x1f, 0xfc, 0x0, 0x0, 0x7, 0xfc, 0xd5,
-    0x9a, 0xb3, 0x56, 0x6a, 0xcd, 0x59, 0xab, 0x3f,
-    0xe0,
+    0x0,
 
     /* U+F304 "" */
-    0x0, 0x0, 0xe, 0x0, 0xf0, 0x37, 0x7, 0xa0,
+    0x0, 0x40, 0xe, 0x0, 0xf0, 0x37, 0x7, 0xa0,
     0xfc, 0x1f, 0x83, 0xf0, 0x7e, 0xf, 0xc0, 0xf8,
     0xf, 0x0, 0x80, 0x0,
 
@@ -571,160 +578,162 @@ static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
 
 static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
     {.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */,
-    {.bitmap_index = 0, .adv_w = 48, .box_w = 1, .box_h = 1, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1, .adv_w = 49, .box_w = 1, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 3, .adv_w = 61, .box_w = 2, .box_h = 3, .ofs_x = 1, .ofs_y = 7},
-    {.bitmap_index = 4, .adv_w = 118, .box_w = 6, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 11, .adv_w = 108, .box_w = 5, .box_h = 12, .ofs_x = 1, .ofs_y = -1},
-    {.bitmap_index = 19, .adv_w = 141, .box_w = 8, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 28, .adv_w = 119, .box_w = 7, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 36, .adv_w = 33, .box_w = 1, .box_h = 3, .ofs_x = 1, .ofs_y = 7},
-    {.bitmap_index = 37, .adv_w = 66, .box_w = 3, .box_h = 13, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 42, .adv_w = 67, .box_w = 3, .box_h = 13, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 47, .adv_w = 83, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 4},
-    {.bitmap_index = 51, .adv_w = 109, .box_w = 6, .box_h = 7, .ofs_x = 1, .ofs_y = 1},
-    {.bitmap_index = 57, .adv_w = 38, .box_w = 2, .box_h = 3, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 58, .adv_w = 53, .box_w = 3, .box_h = 1, .ofs_x = 0, .ofs_y = 3},
-    {.bitmap_index = 59, .adv_w = 51, .box_w = 1, .box_h = 1, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 60, .adv_w = 79, .box_w = 5, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 67, .adv_w = 108, .box_w = 5, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 73, .adv_w = 108, .box_w = 3, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 77, .adv_w = 108, .box_w = 5, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 83, .adv_w = 108, .box_w = 5, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 89, .adv_w = 108, .box_w = 6, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 96, .adv_w = 108, .box_w = 5, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 102, .adv_w = 108, .box_w = 5, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 108, .adv_w = 108, .box_w = 6, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 115, .adv_w = 108, .box_w = 5, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 121, .adv_w = 108, .box_w = 5, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 127, .adv_w = 47, .box_w = 1, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 128, .adv_w = 41, .box_w = 1, .box_h = 8, .ofs_x = 1, .ofs_y = -1},
-    {.bitmap_index = 129, .adv_w = 98, .box_w = 5, .box_h = 6, .ofs_x = 1, .ofs_y = 1},
-    {.bitmap_index = 133, .adv_w = 105, .box_w = 5, .box_h = 4, .ofs_x = 1, .ofs_y = 3},
-    {.bitmap_index = 136, .adv_w = 100, .box_w = 5, .box_h = 6, .ofs_x = 1, .ofs_y = 1},
-    {.bitmap_index = 140, .adv_w = 91, .box_w = 5, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 146, .adv_w = 172, .box_w = 10, .box_h = 12, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 161, .adv_w = 125, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 170, .adv_w = 120, .box_w = 6, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 177, .adv_w = 125, .box_w = 6, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 184, .adv_w = 126, .box_w = 6, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 191, .adv_w = 109, .box_w = 5, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 197, .adv_w = 106, .box_w = 5, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 203, .adv_w = 131, .box_w = 7, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 211, .adv_w = 137, .box_w = 7, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 219, .adv_w = 52, .box_w = 1, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 221, .adv_w = 106, .box_w = 5, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 227, .adv_w = 120, .box_w = 6, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 234, .adv_w = 103, .box_w = 5, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 240, .adv_w = 168, .box_w = 8, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 249, .adv_w = 137, .box_w = 7, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 257, .adv_w = 132, .box_w = 7, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 265, .adv_w = 121, .box_w = 6, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 272, .adv_w = 132, .box_w = 7, .box_h = 10, .ofs_x = 1, .ofs_y = -1},
-    {.bitmap_index = 281, .adv_w = 118, .box_w = 6, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 288, .adv_w = 114, .box_w = 6, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 295, .adv_w = 115, .box_w = 7, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 303, .adv_w = 125, .box_w = 6, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 310, .adv_w = 122, .box_w = 7, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 318, .adv_w = 170, .box_w = 10, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 330, .adv_w = 120, .box_w = 7, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 338, .adv_w = 115, .box_w = 7, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 346, .adv_w = 115, .box_w = 6, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 353, .adv_w = 51, .box_w = 2, .box_h = 13, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 357, .adv_w = 79, .box_w = 5, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 364, .adv_w = 51, .box_w = 2, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 368, .adv_w = 80, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 5},
-    {.bitmap_index = 372, .adv_w = 87, .box_w = 5, .box_h = 1, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 373, .adv_w = 59, .box_w = 3, .box_h = 2, .ofs_x = 0, .ofs_y = 8},
-    {.bitmap_index = 374, .adv_w = 104, .box_w = 5, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 379, .adv_w = 108, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 386, .adv_w = 101, .box_w = 6, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 392, .adv_w = 108, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 399, .adv_w = 102, .box_w = 5, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 404, .adv_w = 67, .box_w = 4, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 409, .adv_w = 108, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 416, .adv_w = 106, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 423, .adv_w = 47, .box_w = 1, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 425, .adv_w = 46, .box_w = 2, .box_h = 12, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 428, .adv_w = 97, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 435, .adv_w = 47, .box_w = 1, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 437, .adv_w = 168, .box_w = 9, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 445, .adv_w = 106, .box_w = 5, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 450, .adv_w = 110, .box_w = 6, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 456, .adv_w = 108, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 463, .adv_w = 109, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 470, .adv_w = 65, .box_w = 3, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 473, .adv_w = 99, .box_w = 5, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 478, .adv_w = 63, .box_w = 3, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 482, .adv_w = 106, .box_w = 5, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 487, .adv_w = 93, .box_w = 6, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 493, .adv_w = 144, .box_w = 9, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 501, .adv_w = 95, .box_w = 6, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 507, .adv_w = 91, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 515, .adv_w = 95, .box_w = 5, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
-    {.bitmap_index = 520, .adv_w = 65, .box_w = 3, .box_h = 13, .ofs_x = 1, .ofs_y = -3},
-    {.bitmap_index = 525, .adv_w = 47, .box_w = 1, .box_h = 11, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 527, .adv_w = 65, .box_w = 3, .box_h = 13, .ofs_x = 0, .ofs_y = -3},
-    {.bitmap_index = 532, .adv_w = 131, .box_w = 7, .box_h = 3, .ofs_x = 1, .ofs_y = 3},
-    {.bitmap_index = 535, .adv_w = 192, .box_w = 12, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 553, .adv_w = 192, .box_w = 12, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 567, .adv_w = 192, .box_w = 13, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 585, .adv_w = 192, .box_w = 12, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 599, .adv_w = 132, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 607, .adv_w = 192, .box_w = 12, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 625, .adv_w = 192, .box_w = 12, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 642, .adv_w = 216, .box_w = 14, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 660, .adv_w = 192, .box_w = 12, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 678, .adv_w = 216, .box_w = 14, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 694, .adv_w = 192, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 714, .adv_w = 96, .box_w = 6, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 720, .adv_w = 144, .box_w = 9, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 729, .adv_w = 216, .box_w = 13, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 747, .adv_w = 192, .box_w = 12, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 761, .adv_w = 168, .box_w = 8, .box_h = 10, .ofs_x = 1, .ofs_y = -1},
-    {.bitmap_index = 771, .adv_w = 168, .box_w = 11, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 789, .adv_w = 168, .box_w = 11, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 803, .adv_w = 168, .box_w = 11, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 817, .adv_w = 168, .box_w = 8, .box_h = 10, .ofs_x = 1, .ofs_y = -1},
-    {.bitmap_index = 827, .adv_w = 168, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 843, .adv_w = 120, .box_w = 6, .box_h = 10, .ofs_x = 1, .ofs_y = -1},
-    {.bitmap_index = 851, .adv_w = 120, .box_w = 6, .box_h = 10, .ofs_x = 1, .ofs_y = -1},
-    {.bitmap_index = 859, .adv_w = 168, .box_w = 11, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 873, .adv_w = 168, .box_w = 11, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 887, .adv_w = 168, .box_w = 11, .box_h = 2, .ofs_x = 0, .ofs_y = 3},
-    {.bitmap_index = 890, .adv_w = 216, .box_w = 13, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 905, .adv_w = 240, .box_w = 15, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 930, .adv_w = 216, .box_w = 14, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 950, .adv_w = 192, .box_w = 12, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 967, .adv_w = 168, .box_w = 10, .box_h = 7, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 976, .adv_w = 168, .box_w = 10, .box_h = 7, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 985, .adv_w = 240, .box_w = 15, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1002, .adv_w = 192, .box_w = 12, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1016, .adv_w = 192, .box_w = 12, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1034, .adv_w = 192, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1054, .adv_w = 168, .box_w = 11, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1068, .adv_w = 168, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 1084, .adv_w = 168, .box_w = 11, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1098, .adv_w = 120, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 1110, .adv_w = 168, .box_w = 10, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 1125, .adv_w = 168, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 1142, .adv_w = 216, .box_w = 14, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1158, .adv_w = 192, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1178, .adv_w = 144, .box_w = 9, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 1192, .adv_w = 240, .box_w = 15, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 1213, .adv_w = 240, .box_w = 15, .box_h = 7, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 1227, .adv_w = 240, .box_w = 15, .box_h = 7, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 1241, .adv_w = 240, .box_w = 15, .box_h = 7, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 1255, .adv_w = 240, .box_w = 15, .box_h = 7, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 1269, .adv_w = 240, .box_w = 15, .box_h = 7, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 1283, .adv_w = 240, .box_w = 15, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1300, .adv_w = 168, .box_w = 9, .box_h = 12, .ofs_x = 1, .ofs_y = -2},
-    {.bitmap_index = 1314, .adv_w = 168, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 1331, .adv_w = 192, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
-    {.bitmap_index = 1351, .adv_w = 168, .box_w = 11, .box_h = 6, .ofs_x = 0, .ofs_y = 1},
-    {.bitmap_index = 1360, .adv_w = 240, .box_w = 15, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
-    {.bitmap_index = 1377, .adv_w = 144, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
-    {.bitmap_index = 1391, .adv_w = 193, .box_w = 12, .box_h = 8, .ofs_x = 0, .ofs_y = 1}
+    {.bitmap_index = 0, .adv_w = 68, .box_w = 1, .box_h = 1, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1, .adv_w = 76, .box_w = 1, .box_h = 9, .ofs_x = 2, .ofs_y = 0},
+    {.bitmap_index = 3, .adv_w = 88, .box_w = 4, .box_h = 3, .ofs_x = 1, .ofs_y = 6},
+    {.bitmap_index = 5, .adv_w = 157, .box_w = 8, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 14, .adv_w = 122, .box_w = 6, .box_h = 11, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 23, .adv_w = 207, .box_w = 11, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 36, .adv_w = 140, .box_w = 9, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 47, .adv_w = 52, .box_w = 1, .box_h = 3, .ofs_x = 1, .ofs_y = 6},
+    {.bitmap_index = 48, .adv_w = 87, .box_w = 4, .box_h = 12, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 54, .adv_w = 87, .box_w = 4, .box_h = 12, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 60, .adv_w = 122, .box_w = 5, .box_h = 5, .ofs_x = 1, .ofs_y = 4},
+    {.bitmap_index = 64, .adv_w = 157, .box_w = 7, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 71, .adv_w = 70, .box_w = 2, .box_h = 4, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 72, .adv_w = 87, .box_w = 4, .box_h = 1, .ofs_x = 1, .ofs_y = 3},
+    {.bitmap_index = 73, .adv_w = 70, .box_w = 1, .box_h = 1, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 74, .adv_w = 87, .box_w = 5, .box_h = 12, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 82, .adv_w = 108, .box_w = 5, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 88, .adv_w = 108, .box_w = 3, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 92, .adv_w = 108, .box_w = 5, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 98, .adv_w = 108, .box_w = 5, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 104, .adv_w = 108, .box_w = 6, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 111, .adv_w = 108, .box_w = 5, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 117, .adv_w = 108, .box_w = 5, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 123, .adv_w = 108, .box_w = 6, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 130, .adv_w = 108, .box_w = 5, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 136, .adv_w = 108, .box_w = 5, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 142, .adv_w = 87, .box_w = 1, .box_h = 7, .ofs_x = 2, .ofs_y = 0},
+    {.bitmap_index = 143, .adv_w = 87, .box_w = 2, .box_h = 10, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 146, .adv_w = 157, .box_w = 7, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 153, .adv_w = 157, .box_w = 7, .box_h = 4, .ofs_x = 1, .ofs_y = 2},
+    {.bitmap_index = 157, .adv_w = 157, .box_w = 7, .box_h = 7, .ofs_x = 2, .ofs_y = 0},
+    {.bitmap_index = 164, .adv_w = 105, .box_w = 5, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 170, .adv_w = 192, .box_w = 10, .box_h = 10, .ofs_x = 1, .ofs_y = -1},
+    {.bitmap_index = 183, .adv_w = 125, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 192, .adv_w = 120, .box_w = 6, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 199, .adv_w = 125, .box_w = 6, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 206, .adv_w = 126, .box_w = 6, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 213, .adv_w = 109, .box_w = 5, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 219, .adv_w = 106, .box_w = 5, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 225, .adv_w = 131, .box_w = 7, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 233, .adv_w = 137, .box_w = 7, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 241, .adv_w = 52, .box_w = 1, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 243, .adv_w = 106, .box_w = 5, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 249, .adv_w = 120, .box_w = 6, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 256, .adv_w = 103, .box_w = 5, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 262, .adv_w = 168, .box_w = 8, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 271, .adv_w = 137, .box_w = 7, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 279, .adv_w = 132, .box_w = 7, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 287, .adv_w = 121, .box_w = 6, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 294, .adv_w = 132, .box_w = 7, .box_h = 10, .ofs_x = 1, .ofs_y = -1},
+    {.bitmap_index = 303, .adv_w = 118, .box_w = 6, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 310, .adv_w = 114, .box_w = 6, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 317, .adv_w = 115, .box_w = 7, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 325, .adv_w = 125, .box_w = 6, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 332, .adv_w = 122, .box_w = 7, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 340, .adv_w = 170, .box_w = 10, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 352, .adv_w = 120, .box_w = 7, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 360, .adv_w = 115, .box_w = 7, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 368, .adv_w = 115, .box_w = 6, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 375, .adv_w = 87, .box_w = 3, .box_h = 12, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 380, .adv_w = 87, .box_w = 6, .box_h = 12, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 389, .adv_w = 87, .box_w = 3, .box_h = 12, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 394, .adv_w = 157, .box_w = 8, .box_h = 5, .ofs_x = 1, .ofs_y = 4},
+    {.bitmap_index = 399, .adv_w = 122, .box_w = 8, .box_h = 1, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 400, .adv_w = 122, .box_w = 2, .box_h = 3, .ofs_x = 2, .ofs_y = 8},
+    {.bitmap_index = 401, .adv_w = 104, .box_w = 5, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 406, .adv_w = 108, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 413, .adv_w = 101, .box_w = 5, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 418, .adv_w = 108, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 425, .adv_w = 102, .box_w = 6, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 431, .adv_w = 67, .box_w = 4, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 436, .adv_w = 108, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 443, .adv_w = 106, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 450, .adv_w = 47, .box_w = 1, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 452, .adv_w = 46, .box_w = 2, .box_h = 12, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 455, .adv_w = 97, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 462, .adv_w = 47, .box_w = 1, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 464, .adv_w = 168, .box_w = 9, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 472, .adv_w = 106, .box_w = 5, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 477, .adv_w = 110, .box_w = 6, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 483, .adv_w = 108, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 490, .adv_w = 109, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 497, .adv_w = 65, .box_w = 3, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 500, .adv_w = 99, .box_w = 5, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 505, .adv_w = 63, .box_w = 3, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 509, .adv_w = 106, .box_w = 5, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 514, .adv_w = 93, .box_w = 6, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 520, .adv_w = 144, .box_w = 9, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 528, .adv_w = 95, .box_w = 6, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 534, .adv_w = 91, .box_w = 6, .box_h = 10, .ofs_x = 0, .ofs_y = -3},
+    {.bitmap_index = 542, .adv_w = 95, .box_w = 5, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 547, .adv_w = 122, .box_w = 5, .box_h = 12, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 555, .adv_w = 87, .box_w = 1, .box_h = 12, .ofs_x = 2, .ofs_y = -3},
+    {.bitmap_index = 557, .adv_w = 122, .box_w = 5, .box_h = 12, .ofs_x = 1, .ofs_y = -3},
+    {.bitmap_index = 565, .adv_w = 157, .box_w = 8, .box_h = 3, .ofs_x = 1, .ofs_y = 2},
+    {.bitmap_index = 568, .adv_w = 165, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 582, .adv_w = 206, .box_w = 13, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 602, .adv_w = 192, .box_w = 12, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 616, .adv_w = 192, .box_w = 10, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 626, .adv_w = 151, .box_w = 8, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 634, .adv_w = 165, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 647, .adv_w = 165, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 660, .adv_w = 151, .box_w = 9, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 673, .adv_w = 178, .box_w = 11, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
+    {.bitmap_index = 684, .adv_w = 178, .box_w = 11, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 698, .adv_w = 165, .box_w = 10, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 708, .adv_w = 165, .box_w = 10, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 720, .adv_w = 82, .box_w = 5, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 725, .adv_w = 123, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 733, .adv_w = 178, .box_w = 11, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 746, .adv_w = 206, .box_w = 13, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 764, .adv_w = 165, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 777, .adv_w = 110, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 786, .adv_w = 151, .box_w = 9, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 799, .adv_w = 165, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 812, .adv_w = 165, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 825, .adv_w = 110, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 834, .adv_w = 165, .box_w = 10, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 846, .adv_w = 137, .box_w = 7, .box_h = 11, .ofs_x = 1, .ofs_y = -1},
+    {.bitmap_index = 856, .adv_w = 137, .box_w = 7, .box_h = 11, .ofs_x = 1, .ofs_y = -1},
+    {.bitmap_index = 866, .adv_w = 165, .box_w = 10, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 879, .adv_w = 151, .box_w = 9, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 890, .adv_w = 151, .box_w = 9, .box_h = 2, .ofs_x = 0, .ofs_y = 4},
+    {.bitmap_index = 893, .adv_w = 192, .box_w = 12, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 905, .adv_w = 192, .box_w = 12, .box_h = 9, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 919, .adv_w = 192, .box_w = 12, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 934, .adv_w = 192, .box_w = 12, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 949, .adv_w = 192, .box_w = 11, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 959, .adv_w = 192, .box_w = 11, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 969, .adv_w = 206, .box_w = 14, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 982, .adv_w = 178, .box_w = 11, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 995, .adv_w = 178, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 1011, .adv_w = 151, .box_w = 9, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1022, .adv_w = 192, .box_w = 12, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 1037, .adv_w = 192, .box_w = 12, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1055, .adv_w = 165, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 1069, .adv_w = 96, .box_w = 6, .box_h = 11, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1078, .adv_w = 192, .box_w = 12, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1096, .adv_w = 192, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1113, .adv_w = 206, .box_w = 13, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1126, .adv_w = 151, .box_w = 9, .box_h = 10, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 1138, .adv_w = 165, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 1152, .adv_w = 219, .box_w = 13, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1169, .adv_w = 247, .box_w = 16, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1187, .adv_w = 247, .box_w = 16, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1205, .adv_w = 247, .box_w = 16, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1223, .adv_w = 247, .box_w = 16, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1241, .adv_w = 247, .box_w = 16, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1259, .adv_w = 247, .box_w = 15, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1276, .adv_w = 165, .box_w = 9, .box_h = 12, .ofs_x = 1, .ofs_y = -2},
+    {.bitmap_index = 1290, .adv_w = 192, .box_w = 1, .box_h = 1, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1291, .adv_w = 192, .box_w = 12, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
+    {.bitmap_index = 1311, .adv_w = 168, .box_w = 11, .box_h = 6, .ofs_x = 0, .ofs_y = 1},
+    {.bitmap_index = 1320, .adv_w = 240, .box_w = 15, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
+    {.bitmap_index = 1337, .adv_w = 144, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
+    {.bitmap_index = 1351, .adv_w = 193, .box_w = 12, .box_h = 8, .ofs_x = 0, .ofs_y = 1}
 };
 
 /*---------------------
@@ -732,14 +741,14 @@ static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
  *--------------------*/
 
 static const uint16_t unicode_list_1[] = {
-    0x0, 0x7, 0xa, 0xb, 0xc, 0x10, 0x12, 0x14,
-    0x18, 0x1b, 0x20, 0x25, 0x26, 0x27, 0x3d, 0x47,
-    0x4a, 0x4b, 0x4c, 0x50, 0x51, 0x52, 0x53, 0x5f,
-    0x66, 0x67, 0x6d, 0x6f, 0x70, 0x73, 0x76, 0x77,
-    0x78, 0x7a, 0x92, 0x94, 0xc3, 0xc4, 0xc6, 0xe6,
-    0xe9, 0xf2, 0x11b, 0x123, 0x15a, 0x1ea, 0x23f, 0x240,
-    0x241, 0x242, 0x243, 0x286, 0x292, 0x2ec, 0x303, 0x309,
-    0x559, 0x7c1, 0x8a1
+    0x0, 0x7, 0xa, 0xb, 0xc, 0x10, 0x12, 0x13,
+    0x14, 0x18, 0x1b, 0x20, 0x25, 0x26, 0x27, 0x3d,
+    0x3f, 0x47, 0x4a, 0x4b, 0x4c, 0x50, 0x51, 0x52,
+    0x53, 0x5f, 0x66, 0x67, 0x6d, 0x6f, 0x70, 0x73,
+    0x76, 0x77, 0x78, 0x7a, 0x92, 0x94, 0xc3, 0xc4,
+    0xc6, 0xe6, 0xe9, 0xf2, 0x11b, 0x123, 0x15a, 0x1ea,
+    0x23f, 0x240, 0x241, 0x242, 0x243, 0x286, 0x292, 0x2ec,
+    0x303, 0x309, 0x559, 0x7c1, 0x8a1
 };
 
 /*Collect the unicode lists and glyph_id offsets*/
@@ -751,7 +760,7 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
     },
     {
         .range_start = 61441, .range_length = 2210, .glyph_id_start = 96,
-        .unicode_list = unicode_list_1, .glyph_id_ofs_list = NULL, .list_length = 59, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
+        .unicode_list = unicode_list_1, .glyph_id_ofs_list = NULL, .list_length = 61, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
     }
 };
 
@@ -760,530 +769,196 @@ static const lv_font_fmt_txt_cmap_t cmaps[] =
  *----------------*/
 
 
-/*Pair left and right glyphs for kerning*/
-static const uint8_t kern_pair_glyph_ids[] =
+/*Map glyph_ids to kern left classes*/
+static const uint8_t kern_left_class_mapping[] =
 {
-    1, 53,
-    3, 3,
-    3, 8,
-    3, 34,
-    3, 66,
-    3, 68,
-    3, 69,
-    3, 70,
-    3, 72,
-    3, 78,
-    3, 79,
-    3, 80,
-    3, 81,
-    3, 82,
-    3, 84,
-    3, 88,
-    8, 3,
-    8, 8,
-    8, 34,
-    8, 66,
-    8, 68,
-    8, 69,
-    8, 70,
-    8, 72,
-    8, 78,
-    8, 79,
-    8, 80,
-    8, 81,
-    8, 82,
-    8, 84,
-    8, 88,
-    9, 55,
-    9, 56,
-    9, 58,
-    13, 3,
-    13, 8,
-    15, 3,
-    15, 8,
-    16, 16,
-    34, 3,
-    34, 8,
-    34, 32,
-    34, 36,
-    34, 40,
-    34, 48,
-    34, 50,
-    34, 53,
-    34, 54,
-    34, 55,
-    34, 56,
-    34, 58,
-    34, 80,
-    34, 85,
-    34, 86,
-    34, 87,
-    34, 88,
-    34, 90,
-    34, 91,
-    35, 53,
-    35, 55,
-    35, 58,
-    36, 10,
-    36, 53,
-    36, 62,
-    36, 94,
-    37, 13,
-    37, 15,
-    37, 34,
-    37, 53,
-    37, 55,
-    37, 57,
-    37, 58,
-    37, 59,
-    38, 53,
-    38, 68,
-    38, 69,
-    38, 70,
-    38, 71,
-    38, 72,
-    38, 80,
-    38, 82,
-    38, 86,
-    38, 87,
-    38, 88,
-    38, 90,
-    39, 13,
-    39, 15,
-    39, 34,
-    39, 43,
-    39, 53,
-    39, 66,
-    39, 68,
-    39, 69,
-    39, 70,
-    39, 72,
-    39, 80,
-    39, 82,
-    39, 83,
-    39, 86,
-    39, 87,
-    39, 90,
-    41, 34,
-    41, 53,
-    41, 57,
-    41, 58,
-    42, 34,
-    42, 53,
-    42, 57,
-    42, 58,
-    43, 34,
-    44, 14,
-    44, 36,
-    44, 40,
-    44, 48,
-    44, 50,
-    44, 68,
-    44, 69,
-    44, 70,
-    44, 72,
-    44, 78,
-    44, 79,
-    44, 80,
-    44, 81,
-    44, 82,
-    44, 86,
-    44, 87,
-    44, 88,
-    44, 90,
-    45, 3,
-    45, 8,
-    45, 34,
-    45, 36,
-    45, 40,
-    45, 48,
-    45, 50,
-    45, 53,
-    45, 54,
-    45, 55,
-    45, 56,
-    45, 58,
-    45, 86,
-    45, 87,
-    45, 88,
-    45, 90,
-    46, 34,
-    46, 53,
-    46, 57,
-    46, 58,
-    47, 34,
-    47, 53,
-    47, 57,
-    47, 58,
-    48, 13,
-    48, 15,
-    48, 34,
-    48, 53,
-    48, 55,
-    48, 57,
-    48, 58,
-    48, 59,
-    49, 13,
-    49, 15,
-    49, 34,
-    49, 43,
-    49, 57,
-    49, 59,
-    49, 66,
-    49, 68,
-    49, 69,
-    49, 70,
-    49, 72,
-    49, 80,
-    49, 82,
-    49, 85,
-    49, 87,
-    49, 90,
-    50, 53,
-    50, 55,
-    50, 56,
-    50, 58,
-    51, 53,
-    51, 55,
-    51, 58,
-    53, 1,
-    53, 13,
-    53, 14,
-    53, 15,
-    53, 34,
-    53, 36,
-    53, 40,
-    53, 43,
-    53, 48,
-    53, 50,
-    53, 52,
-    53, 53,
-    53, 55,
-    53, 56,
-    53, 58,
-    53, 66,
-    53, 68,
-    53, 69,
-    53, 70,
-    53, 72,
-    53, 78,
-    53, 79,
-    53, 80,
-    53, 81,
-    53, 82,
-    53, 83,
-    53, 84,
-    53, 86,
-    53, 87,
-    53, 88,
-    53, 89,
-    53, 90,
-    53, 91,
-    54, 34,
-    55, 10,
-    55, 13,
-    55, 14,
-    55, 15,
-    55, 34,
-    55, 36,
-    55, 40,
-    55, 48,
-    55, 50,
-    55, 62,
-    55, 66,
-    55, 68,
-    55, 69,
-    55, 70,
-    55, 72,
-    55, 80,
-    55, 82,
-    55, 83,
-    55, 86,
-    55, 87,
-    55, 90,
-    55, 94,
-    56, 10,
-    56, 13,
-    56, 14,
-    56, 15,
-    56, 34,
-    56, 53,
-    56, 62,
-    56, 66,
-    56, 68,
-    56, 69,
-    56, 70,
-    56, 72,
-    56, 80,
-    56, 82,
-    56, 83,
-    56, 86,
-    56, 94,
-    57, 14,
-    57, 36,
-    57, 40,
-    57, 48,
-    57, 50,
-    57, 55,
-    57, 68,
-    57, 69,
-    57, 70,
-    57, 72,
-    57, 80,
-    57, 82,
-    57, 86,
-    57, 87,
-    57, 90,
-    58, 7,
-    58, 10,
-    58, 11,
-    58, 13,
-    58, 14,
-    58, 15,
-    58, 34,
-    58, 36,
-    58, 40,
-    58, 43,
-    58, 48,
-    58, 50,
-    58, 52,
-    58, 53,
-    58, 54,
-    58, 55,
-    58, 56,
-    58, 57,
-    58, 58,
-    58, 62,
-    58, 66,
-    58, 68,
-    58, 69,
-    58, 70,
-    58, 71,
-    58, 72,
-    58, 78,
-    58, 79,
-    58, 80,
-    58, 81,
-    58, 82,
-    58, 83,
-    58, 84,
-    58, 85,
-    58, 86,
-    58, 87,
-    58, 89,
-    58, 90,
-    58, 91,
-    58, 94,
-    59, 34,
-    59, 36,
-    59, 40,
-    59, 48,
-    59, 50,
-    59, 68,
-    59, 69,
-    59, 70,
-    59, 72,
-    59, 80,
-    59, 82,
-    59, 86,
-    59, 87,
-    59, 88,
-    59, 90,
-    60, 43,
-    60, 54,
-    66, 3,
-    66, 8,
-    66, 87,
-    66, 90,
-    67, 3,
-    67, 8,
-    67, 87,
-    67, 89,
-    67, 90,
-    67, 91,
-    68, 3,
-    68, 8,
-    70, 3,
-    70, 8,
-    70, 87,
-    70, 90,
-    71, 3,
-    71, 8,
-    71, 10,
-    71, 62,
-    71, 68,
-    71, 69,
-    71, 70,
-    71, 72,
-    71, 82,
-    71, 94,
-    73, 3,
-    73, 8,
-    76, 68,
-    76, 69,
-    76, 70,
-    76, 72,
-    76, 82,
-    78, 3,
-    78, 8,
-    79, 3,
-    79, 8,
-    80, 3,
-    80, 8,
-    80, 87,
-    80, 89,
-    80, 90,
-    80, 91,
-    81, 3,
-    81, 8,
-    81, 87,
-    81, 89,
-    81, 90,
-    81, 91,
-    83, 3,
-    83, 8,
-    83, 13,
-    83, 15,
-    83, 66,
-    83, 68,
-    83, 69,
-    83, 70,
-    83, 71,
-    83, 72,
-    83, 80,
-    83, 82,
-    83, 85,
-    83, 87,
-    83, 88,
-    83, 90,
-    85, 80,
-    87, 3,
-    87, 8,
-    87, 13,
-    87, 15,
-    87, 66,
-    87, 68,
-    87, 69,
-    87, 70,
-    87, 71,
-    87, 72,
-    87, 80,
-    87, 82,
-    88, 13,
-    88, 15,
-    89, 68,
-    89, 69,
-    89, 70,
-    89, 72,
-    89, 80,
-    89, 82,
-    90, 3,
-    90, 8,
-    90, 13,
-    90, 15,
-    90, 66,
-    90, 68,
-    90, 69,
-    90, 70,
-    90, 71,
-    90, 72,
-    90, 80,
-    90, 82,
-    91, 68,
-    91, 69,
-    91, 70,
-    91, 72,
-    91, 80,
-    91, 82,
-    92, 43,
-    92, 54
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 1,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 2, 3, 4, 5, 6, 7,
+    0, 8, 8, 9, 10, 11, 8, 8,
+    5, 12, 13, 14, 0, 15, 9, 16,
+    17, 18, 19, 20, 0, 0, 0, 0,
+    0, 0, 21, 22, 0, 0, 23, 24,
+    0, 0, 0, 0, 25, 0, 0, 0,
+    26, 22, 0, 27, 0, 28, 0, 29,
+    0, 30, 29, 31, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0
 };
 
-/* Kerning between the respective left and right glyphs
- * 4.4 format which needs to scaled with `kern_scale`*/
-static const int8_t kern_pair_values[] =
+/*Map glyph_ids to kern right classes*/
+static const uint8_t kern_right_class_mapping[] =
 {
-    -4, -10, -10, -11, -5, -6, -6, -6,
-    -6, -2, -2, -6, -2, -6, -7, 1,
-    -10, -10, -11, -5, -6, -6, -6, -6,
-    -2, -2, -6, -2, -6, -7, 1, 2,
-    2, 2, -16, -16, -16, -16, -21, -11,
-    -11, -6, -1, -1, -1, -1, -12, -2,
-    -8, -6, -9, -1, -2, -1, -5, -3,
-    -5, 1, -3, -2, -5, -2, -3, -1,
-    -2, -10, -10, -2, -3, -2, -2, -4,
-    -2, 2, -2, -2, -2, -2, -2, -2,
-    -2, -2, -2, -2, -2, -22, -22, -16,
-    -25, 2, -3, -2, -2, -2, -2, -2,
-    -2, -2, -2, -2, -2, 2, -3, 2,
-    -3, 2, -3, 2, -3, -2, -6, -3,
-    -3, -3, -3, -2, -2, -2, -2, -2,
-    -2, -3, -2, -2, -2, -4, -6, -4,
-    -31, -31, 2, -6, -6, -6, -6, -26,
-    -5, -16, -13, -22, -4, -12, -9, -12,
-    2, -3, 2, -3, 2, -3, 2, -3,
-    -10, -10, -2, -3, -2, -2, -4, -2,
-    -30, -30, -13, -19, -3, -2, -1, -1,
-    -1, -1, -1, -1, -1, 1, 1, 1,
-    -4, -3, -2, -3, -7, -2, -4, -4,
-    -20, -22, -20, -7, -3, -3, -22, -3,
-    -3, -1, 2, 2, 1, 2, -11, -9,
-    -9, -9, -9, -10, -10, -9, -10, -9,
-    -7, -11, -9, -7, -5, -7, -7, -6,
-    -2, 2, -21, -3, -21, -7, -1, -1,
-    -1, -1, 2, -4, -4, -4, -4, -4,
-    -4, -4, -3, -3, -1, -1, 2, 1,
-    -12, -6, -12, -4, 1, 1, -3, -3,
-    -3, -3, -3, -3, -3, -2, -2, 1,
-    -4, -2, -2, -2, -2, 1, -2, -2,
-    -2, -2, -2, -2, -2, -3, -3, -3,
-    2, -5, -20, -5, -20, -9, -3, -3,
-    -9, -3, -3, -1, 2, -9, 2, 2,
-    1, 2, 2, -7, -6, -6, -6, -2,
-    -6, -4, -4, -6, -4, -6, -4, -5,
-    -2, -4, -2, -2, -2, -3, 2, 1,
-    -2, -2, -2, -2, -2, -2, -2, -2,
-    -2, -2, -2, -3, -3, -3, -2, -2,
-    -6, -6, -1, -1, -3, -3, -1, -1,
-    -1, -1, -1, -1, -1, -1, -1, -1,
-    2, 2, 2, 2, -2, -2, -2, -2,
-    -2, 2, -10, -10, -2, -2, -2, -2,
-    -2, -10, -10, -10, -10, -13, -13, -1,
-    -2, -1, -1, -3, -3, -1, -1, -1,
-    -1, 2, 2, -12, -12, -4, -2, -2,
-    -2, 1, -2, -2, -2, 5, 2, 2,
-    2, -2, 1, 1, -10, -10, -1, -1,
-    -1, -1, 1, -1, -1, -1, -12, -12,
-    -2, -2, -2, -2, -2, -2, 1, 1,
-    -10, -10, -1, -1, -1, -1, 1, -1,
-    -1, -1, -1, -1, -1, -1, -1, -1,
-    -2, -2
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 1, 2, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 3, 0, 4, 0, 0, 0,
+    4, 0, 0, 5, 0, 0, 0, 0,
+    4, 0, 4, 0, 6, 7, 8, 9,
+    10, 11, 12, 13, 0, 0, 0, 0,
+    0, 0, 14, 0, 15, 15, 15, 16,
+    15, 0, 0, 0, 0, 0, 17, 17,
+    18, 17, 15, 19, 20, 21, 22, 23,
+    24, 25, 23, 26, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0
 };
 
-/*Collect the kern pair's data in one place*/
-static const lv_font_fmt_txt_kern_pair_t kern_pairs =
+/*Kern values between classes*/
+static const int8_t kern_class_values[] =
 {
-    .glyph_ids = kern_pair_glyph_ids,
-    .values = kern_pair_values,
-    .pair_cnt = 434,
-    .glyph_ids_size = 0
+    -12, -15, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, -1, 0, 0,
+    -12, -2, -8, -6, 0, -9, 0, 0,
+    0, 0, 0, -1, 0, 0, -2, -1,
+    -5, -3, 0, 1, 0, 0, 0, 0,
+    0, 0, -3, 0, -2, 0, 0, -5,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, -3, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, -2, 0, 0, 0, -3, 0,
+    -2, 0, -2, -4, -2, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    2, 0, 0, 0, 0, 0, 0, 0,
+    -2, -2, 0, -2, 0, 0, 0, -2,
+    -2, -2, 0, 0, 0, 0, -16, 0,
+    -25, 0, 2, 0, 0, 0, 0, 0,
+    0, -3, -2, 0, 0, -2, -2, 0,
+    0, -2, -2, 0, 0, 0, 0, 0,
+    2, 0, 0, 0, -3, 0, 0, 0,
+    2, -3, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, -2, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, -3, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    -2, 0, -2, -3, 0, 0, 0, -2,
+    -4, -6, 0, 0, 0, 0, 2, -6,
+    0, 0, -26, -5, -16, -13, 0, -22,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, -4, -12, -9, 0, 0, 0, 0,
+    -13, 0, -19, 0, 0, 0, 0, 0,
+    -3, 0, -2, -1, -1, 0, 0, -1,
+    0, 0, 1, 0, 1, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, -4, 0,
+    -3, -2, 0, -3, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    -7, 0, -2, 0, 0, -4, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, -7, -3,
+    -22, -1, 2, 0, 2, 1, 0, 2,
+    0, -11, -9, 0, -10, -9, -7, -11,
+    0, -9, -7, -5, -7, -6, 0, 0,
+    -7, -1, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, -4, -4, 0, 0, -4,
+    -3, 0, 0, -3, -1, 0, 0, 0,
+    0, 0, -4, 0, 0, 0, 1, 0,
+    0, 0, 0, 0, 0, -3, -3, 0,
+    0, -3, -2, 0, 0, -2, 0, 0,
+    0, 0, 0, 0, 0, -2, 0, 0,
+    0, 0, 1, 0, 0, 0, 0, 0,
+    -2, 0, 0, -2, 0, 0, 0, -2,
+    -3, 0, 0, 0, 0, 0, -9, -3,
+    -9, -1, 2, -9, 2, 2, 1, 2,
+    0, -7, -6, -2, -4, -6, -4, -5,
+    -2, -4, -2, 0, -2, -3, 0, 0,
+    1, -2, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, -2, 0, 0, -2,
+    0, 0, 0, -2, -3, -3, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, -1, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    -1, 0, -1, -1, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, -1, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, -2, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, -2, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    -1, 0, -2, -1, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, -4, -2, 1, 0, -2, 0, 0,
+    5, 0, 2, 2, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, -2,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, -1, -1, 1,
+    0, -1, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    -2, 0, 0, -2, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, -1, 0, 0, -1, 0, 0,
+    0, 0, 0, 0, 0, 0
+};
+
+
+/*Collect the kern class' data in one place*/
+static const lv_font_fmt_txt_kern_classes_t kern_classes =
+{
+    .class_pair_values   = kern_class_values,
+    .left_class_mapping  = kern_left_class_mapping,
+    .right_class_mapping = kern_right_class_mapping,
+    .left_class_cnt      = 31,
+    .right_class_cnt     = 26,
 };
 
 /*--------------------
  *  ALL CUSTOM DATA
  *--------------------*/
 
+#if LV_VERSION_CHECK(8, 0, 0)
 /*Store all the custom data of the font*/
+static  lv_font_fmt_txt_glyph_cache_t cache;
+static const lv_font_fmt_txt_dsc_t font_dsc = {
+#else
 static lv_font_fmt_txt_dsc_t font_dsc = {
-    .glyph_bitmap = gylph_bitmap,
+#endif
+    .glyph_bitmap = glyph_bitmap,
     .glyph_dsc = glyph_dsc,
     .cmaps = cmaps,
-    .kern_dsc = &kern_pairs,
+    .kern_dsc = &kern_classes,
     .kern_scale = 16,
     .cmap_num = 2,
     .bpp = 1,
-    .kern_classes = 0,
-    .bitmap_format = 0
+    .kern_classes = 1,
+    .bitmap_format = 0,
+#if LV_VERSION_CHECK(8, 0, 0)
+    .cache = &cache
+#endif
 };
 
 
@@ -1292,16 +967,26 @@ static lv_font_fmt_txt_dsc_t font_dsc = {
  *----------------*/
 
 /*Initialize a public general font descriptor*/
+#if LV_VERSION_CHECK(8, 0, 0)
+const lv_font_t lv_font_roboto_12 = {
+#else
 lv_font_t lv_font_roboto_12 = {
+#endif
     .get_glyph_dsc = lv_font_get_glyph_dsc_fmt_txt,    /*Function pointer to get glyph's data*/
     .get_glyph_bitmap = lv_font_get_bitmap_fmt_txt,    /*Function pointer to get glyph's bitmap*/
     .line_height = 14,          /*The maximum line height required by the font*/
     .base_line = 3,             /*Baseline measured from the bottom of the line*/
 #if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0)
     .subpx = LV_FONT_SUBPX_NONE,
+#endif
+#if LV_VERSION_CHECK(7, 4, 0) || LVGL_VERSION_MAJOR >= 8
+    .underline_position = -1,
+    .underline_thickness = 1,
 #endif
     .dsc = &font_dsc           /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
 };
 
+
+
 #endif /*#if LV_FONT_ROBOTO_12*/
 

From 9c8535d6030064201c46b704df1d632f7356ef87 Mon Sep 17 00:00:00 2001
From: ParnikaGupta <guptaparnika9@gmail.com>
Date: Tue, 19 Mar 2024 17:22:52 +0530
Subject: [PATCH 22/32] feat: Update font generation script

---
 .../scripts/built_in_font/FontAwesomeNew.woff | Bin 0 -> 353228 bytes
 common/lvgl/scripts/built_in_font/Verdana.ttf | Bin 0 -> 149752 bytes
 .../built_in_font/built_in_font_gen.py        |  33 ++++++++++++++++--
 3 files changed, 30 insertions(+), 3 deletions(-)
 create mode 100644 common/lvgl/scripts/built_in_font/FontAwesomeNew.woff
 create mode 100644 common/lvgl/scripts/built_in_font/Verdana.ttf

diff --git a/common/lvgl/scripts/built_in_font/FontAwesomeNew.woff b/common/lvgl/scripts/built_in_font/FontAwesomeNew.woff
new file mode 100644
index 0000000000000000000000000000000000000000..791b4101398bdd5b8ff606d2628c38a0876727eb
GIT binary patch
literal 353228
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

literal 0
HcmV?d00001

diff --git a/common/lvgl/scripts/built_in_font/Verdana.ttf b/common/lvgl/scripts/built_in_font/Verdana.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..aa4422f4c17ad2d6be02dce03b790d60711a793d
GIT binary patch
literal 149752
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
E2iP`tUH||9

literal 0
HcmV?d00001

diff --git a/common/lvgl/scripts/built_in_font/built_in_font_gen.py b/common/lvgl/scripts/built_in_font/built_in_font_gen.py
index 1f5d64b1b..3b0a86ab8 100644
--- a/common/lvgl/scripts/built_in_font/built_in_font_gen.py
+++ b/common/lvgl/scripts/built_in_font/built_in_font_gen.py
@@ -39,9 +39,36 @@
 else:
 	compr = ""
 
-#Built in symbols
-syms = "61441,61448,61451,61452,61453,61457,61459,61460,61461,61465,61468,61473,61478,61479,61480,61502,61504,61512,61515,61516,61517,61521,61522,61523,61524,61543,61544,61553,61556,61559,61560,61561,61563,61587,61589,61636,61637,61639,61671,61683,61724,61732,61787,61931,62016,62017,62018,62019,62020,62099"
+#Alpha and numeric ascii chars (backspace and delete) - custom font
+alpha_syms = "0x41-0x5A,0x61-0x7A"
+numeric_syms = "0x30-0x39"
+
+#Special Charactors - verdana
+special_syms = "0x20-0x2F,0x3A-0x40,0x5B-0x60,0x7B-0x7F"
+
+#Built in symbols - font awesome
+syms = "61441,61448,61451,61452,61453,61457,61459,61460,61461,61465,61468,61473,61478,61479,61480,61502,61504,61512,61515,61516,61517,61521,61522,61523,61524,61536,61543,61544,61550,61552,61553,61556,61559,61560,61561,61563,61587,61589,61636,61637,61639,61671,61674,61683,61724,61732,61787,61931,62016,62017,62018,62019,62020,62099,62087,62189"
+
+extra_syms = "62212,62218,62810,63426,63650"
+
 
 #Run the command
-cmd = "lv_font_conv {} --bpp {} --size {} --font ./Roboto-Regular.woff -r {} --font FontAwesome.ttf -r {} --format lvgl -o {} --force-fast-kern-format".format(compr, args.bpp, args.size, args.range[0], syms, args.output)
+cmd = "lv_font_conv {} "\
+	"--bpp {} "\
+	"--size {} "\
+	"--font {} -r {} "\
+	"--font {} -r {} "\
+	"--font Verdana.ttf -r {} "\
+	"--font FontAwesome.ttf -r {} "\
+	"--font FontAwesomeNew.woff -r {} "\
+	"-o {} "\
+	"--format lvgl "\
+	"--force-fast-kern-format".\
+		format(compr, args.bpp, args.size, args.font, alpha_syms, args.font, numeric_syms, special_syms, syms, extra_syms, args.output)
 os.system(cmd)
+
+
+#usage: lv_font_conv [-h] [-v] --size PIXELS [-o <path>] --bpp {1,2,3,4,8} [--lcd | --lcd-v] [--use-color-info] --format {dump,bin,lvgl} --font <path> [-r RANGE] [--symbols SYMBOLS]
+                    # [--autohint-off] [--autohint-strong] [--force-fast-kern-format] [--no-compress] [--no-prefilter] [--no-kerning] [--lv-include <path>] [--full-info]
+
+#command to generate font .c script: python built_in_font_gen.py --bpp 1 --size 12 --font Roboto-Regular.woff -o lv_font_roboto_12
\ No newline at end of file

From b42dfad7c9ffaf9a28a295f612de73135f97847f Mon Sep 17 00:00:00 2001
From: ParnikaGupta9 <154982112+ParnikaGupta9@users.noreply.github.com>
Date: Wed, 20 Mar 2024 17:22:39 +0530
Subject: [PATCH 23/32] chore: Update lv_conf.h

---
 common/lv_conf.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/common/lv_conf.h b/common/lv_conf.h
index 7f44e3630..64be0efcc 100644
--- a/common/lv_conf.h
+++ b/common/lv_conf.h
@@ -37,7 +37,7 @@
 #define LV_COLOR_DEPTH     1
 #endif
 
-#define LV_SUBPX_BGR 1
+#define LV_SUBPX_BGR 0
 
 /* Swap the 2 bytes of RGB565 color.
  * Useful if the display has a 8 bit interface (e.g. SPI)*/

From c44c2c88956720077a47d301acf1cabef01fb1db Mon Sep 17 00:00:00 2001
From: ParnikaGupta <guptaparnika9@gmail.com>
Date: Thu, 21 Mar 2024 13:10:22 +0530
Subject: [PATCH 24/32] fix (evm): Updated typedata validation

---
 apps/evm_family/evm_typed_data_helper.c | 25 ++++++++++++-------------
 1 file changed, 12 insertions(+), 13 deletions(-)

diff --git a/apps/evm_family/evm_typed_data_helper.c b/apps/evm_family/evm_typed_data_helper.c
index b4d5462cc..611ae3f63 100644
--- a/apps/evm_family/evm_typed_data_helper.c
+++ b/apps/evm_family/evm_typed_data_helper.c
@@ -179,11 +179,10 @@ bool evm_get_typed_struct_data_digest(
   uint16_t data_size = 0, offset = 0;
 
   data_size = sizeof(ETH_SIGN_TYPED_DATA_IDENTIFIER) - 1;
-  if (0 < typed_data->domain.size) {
-    data_size += HASH_SIZE;
-  }
-  if (0 < typed_data->message.size) {
+  if (0 < typed_data->domain.children_count) {
     data_size += HASH_SIZE;
+    if (0 < typed_data->message.children_count)
+      data_size += HASH_SIZE;
   }
 
   data = malloc(data_size);
@@ -194,16 +193,16 @@ bool evm_get_typed_struct_data_digest(
          sizeof(ETH_SIGN_TYPED_DATA_IDENTIFIER) - 1);
 
   offset += sizeof(ETH_SIGN_TYPED_DATA_IDENTIFIER) - 1;
-  if (0 < typed_data->domain.size) {
+  if (0 < typed_data->domain.children_count) {
     eip712_status = hash_struct(&(typed_data->domain), data + offset);
-  } else {
-    eip712_status = 0;
-  }
-  offset += HASH_SIZE;
-  if (0 < typed_data->message.size) {
-    eip712_status |= hash_struct(&(typed_data->message), data + offset);
-  } else {
-    eip712_status |= 0;
+    offset += HASH_SIZE;
+    if (0 < typed_data->message.children_count) {
+      eip712_status |= hash_struct(&(typed_data->message), data + offset);
+    }
+  } else if (!strncmp(UI_TEXT_EIP712_DOMAIN_TYPE,
+                      typed_data->message.struct_name,
+                      sizeof(UI_TEXT_EIP712_DOMAIN_TYPE))) {
+    eip712_status = EIP712_OK;
   }
 
   if (EIP712_OK == eip712_status) {

From 1a37dfa015e8e08214929da476efc11d6a8195b7 Mon Sep 17 00:00:00 2001
From: ParnikaGupta <guptaparnika9@gmail.com>
Date: Tue, 26 Mar 2024 13:43:37 +0530
Subject: [PATCH 25/32] chore: Commented fix source

---
 apps/evm_family/evm_typed_data_helper.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/apps/evm_family/evm_typed_data_helper.c b/apps/evm_family/evm_typed_data_helper.c
index 611ae3f63..cf264a6df 100644
--- a/apps/evm_family/evm_typed_data_helper.c
+++ b/apps/evm_family/evm_typed_data_helper.c
@@ -199,9 +199,13 @@ bool evm_get_typed_struct_data_digest(
     if (0 < typed_data->message.children_count) {
       eip712_status |= hash_struct(&(typed_data->message), data + offset);
     }
-  } else if (!strncmp(UI_TEXT_EIP712_DOMAIN_TYPE,
-                      typed_data->message.struct_name,
-                      sizeof(UI_TEXT_EIP712_DOMAIN_TYPE))) {
+  }
+  // Setting the primary_type to "EIP712Domain" is technically in spec
+  // In this case, we ignore the "message" part and only use the "domain" part
+  // https://ethereum-magicians.org/t/eip-712-standards-clarification-primarytype-as-domaintype/3286
+  else if (!strncmp(UI_TEXT_EIP712_DOMAIN_TYPE,
+                    typed_data->message.struct_name,
+                    sizeof(UI_TEXT_EIP712_DOMAIN_TYPE))) {
     eip712_status = EIP712_OK;
   }
 

From 5ec894ef5e8a78c10ae5a4986c986f1aaf42a19d Mon Sep 17 00:00:00 2001
From: Ujjwal Kumar <31813384+Ujjwal0501@users.noreply.github.com>
Date: Thu, 28 Mar 2024 12:08:05 +0530
Subject: [PATCH 26/32] chore: Version bump v0.6.256 (feature++)

---
 version.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/version.txt b/version.txt
index 80b1014f2..342052ae4 100755
--- a/version.txt
+++ b/version.txt
@@ -1,3 +1,3 @@
-firmware version=000:006:000:000
+firmware version=000:006:001:000
 hardware version=000:001:000:000
 magic number=45227A01

From dcd356134f5229845aaf9931548115dbfe3cf533 Mon Sep 17 00:00:00 2001
From: Ujjwal Kumar <31813384+Ujjwal0501@users.noreply.github.com>
Date: Thu, 28 Mar 2024 20:15:52 +0530
Subject: [PATCH 27/32] fix(evm): Sign message escape non-printable characters

This reverts commit 6a3fccc2bbd344335caa5ff6e96b47ef71e53b64.
---
 apps/evm_family/evm_sign_msg.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/apps/evm_family/evm_sign_msg.c b/apps/evm_family/evm_sign_msg.c
index c1786d7a4..b553c2152 100644
--- a/apps/evm_family/evm_sign_msg.c
+++ b/apps/evm_family/evm_sign_msg.c
@@ -366,9 +366,18 @@ static bool get_user_verification() {
     case EVM_SIGN_MSG_TYPE_PERSONAL_SIGN: {
       // TODO: Add a limit on size of data per confirmation based on LVGL buffer
       // and split message into multiple confirmations accordingly
-      result = core_scroll_page(UI_TEXT_VERIFY_MESSAGE,
-                                (const char *)sign_msg_ctx.msg_data,
-                                evm_send_error);
+      size_t len = 4 * sign_msg_ctx.init.total_msg_size;
+      char *escaped_str = malloc(len);
+      uint8_t status = string_to_escaped_string(
+          (const char *)sign_msg_ctx.msg_data, escaped_str, len);
+      if (1 == status || 5 == status) {
+        free(escaped_str);
+        result = false;
+        break;
+      }
+      result =
+          core_scroll_page(UI_TEXT_VERIFY_MESSAGE, escaped_str, evm_send_error);
+      free(escaped_str);
     } break;
 
     case EVM_SIGN_MSG_TYPE_SIGN_TYPED_DATA: {

From 810fed538319b8204da77786fce0c25a7b7ac4df Mon Sep 17 00:00:00 2001
From: Ujjwal Kumar <31813384+Ujjwal0501@users.noreply.github.com>
Date: Fri, 5 Apr 2024 14:04:46 +0530
Subject: [PATCH 28/32] chore (tests): Update escaping of non-printable
 characters

---
 tests/common/util/utils_tests.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/tests/common/util/utils_tests.c b/tests/common/util/utils_tests.c
index 97812bd27..be3145920 100644
--- a/tests/common/util/utils_tests.c
+++ b/tests/common/util/utils_tests.c
@@ -142,9 +142,14 @@ TEST(utils_tests, escape_string_symbol) {
 }
 
 TEST(utils_tests, escape_string_ascii) {
-  // message: "ASCII sample text"
-  char utf_8_string[] = "ASCII sample text";
-  const char expected_string[] = "ASCII sample text";
+  // message:
+  // "ABCDEFGHIJKLMNOPQRSTUVWXYZ\nabcdefghijklmnopqrstuvwxyz\n0123456789
+  // !\"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~"
+  char utf_8_string[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ\nabcdefghijklmnopqrstuvwxyz"
+                        "\n0123456789 !\"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~";
+  const char expected_string[] =
+      "ABCDEFGHIJKLMNOPQRSTUVWXYZ\nabcdefghijklmnopqrstuvwxyz\n0123456789 "
+      "!\"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~";
   char actual_string[300] = "";
 
   uint8_t result = string_to_escaped_string(

From a834c4f582cbe2d62315b1ed72abfd8a8c1fcc6c Mon Sep 17 00:00:00 2001
From: Ujjwal Kumar <31813384+Ujjwal0501@users.noreply.github.com>
Date: Fri, 5 Apr 2024 16:01:05 +0530
Subject: [PATCH 29/32] fix (util): Handle `CRLF` when esacping string

---
 common/libraries/util/utils.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/common/libraries/util/utils.c b/common/libraries/util/utils.c
index 4b5ac82c8..d68680995 100644
--- a/common/libraries/util/utils.c
+++ b/common/libraries/util/utils.c
@@ -623,8 +623,10 @@ uint8_t string_to_escaped_string(const char *input,
     bool g_ret = lv_font_get_glyph_dsc(font_p, &g, letter, '\0');
     uint8_t bytes_read = in_idx - old_idx;
 
-    if (0 != letter && true == g_ret) {
-      // the glyph exists; keep the encoded character as it is
+    if (0 != letter && ('\n' == letter || '\r' == letter || true == g_ret)) {
+      // the glyph exists; keep the encoded character as it is.
+      // Additionally, CR/LF characters are handled as special case by LVGL
+      // hence glyphs for CR/LF are meaningless so we should keep it as it is
       if ((out_idx + bytes_read + 1) >= out_len)
         return 5;
       memcpy(&escaped_string[out_idx], &input[old_idx], bytes_read);

From 8fac90030a75c9d8ef4629f1ec9549e7b3367638 Mon Sep 17 00:00:00 2001
From: Ujjwal Kumar <31813384+Ujjwal0501@users.noreply.github.com>
Date: Fri, 5 Apr 2024 19:23:21 +0530
Subject: [PATCH 30/32] test: Add `CR` character in test

---
 common/libraries/util/utils.c   | 1 +
 tests/common/util/utils_tests.c | 6 +++---
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/common/libraries/util/utils.c b/common/libraries/util/utils.c
index d68680995..1f215600e 100644
--- a/common/libraries/util/utils.c
+++ b/common/libraries/util/utils.c
@@ -627,6 +627,7 @@ uint8_t string_to_escaped_string(const char *input,
       // the glyph exists; keep the encoded character as it is.
       // Additionally, CR/LF characters are handled as special case by LVGL
       // hence glyphs for CR/LF are meaningless so we should keep it as it is
+      // refer common/lvgl/src/lv_misc/lv_txt.c#174
       if ((out_idx + bytes_read + 1) >= out_len)
         return 5;
       memcpy(&escaped_string[out_idx], &input[old_idx], bytes_read);
diff --git a/tests/common/util/utils_tests.c b/tests/common/util/utils_tests.c
index be3145920..a5943e008 100644
--- a/tests/common/util/utils_tests.c
+++ b/tests/common/util/utils_tests.c
@@ -145,10 +145,10 @@ TEST(utils_tests, escape_string_ascii) {
   // message:
   // "ABCDEFGHIJKLMNOPQRSTUVWXYZ\nabcdefghijklmnopqrstuvwxyz\n0123456789
   // !\"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~"
-  char utf_8_string[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ\nabcdefghijklmnopqrstuvwxyz"
-                        "\n0123456789 !\"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~";
+  char utf_8_string[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r\nabcdefghijklmnopqrstuvwx"
+                        "yz\n0123456789\r !\"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~";
   const char expected_string[] =
-      "ABCDEFGHIJKLMNOPQRSTUVWXYZ\nabcdefghijklmnopqrstuvwxyz\n0123456789 "
+      "ABCDEFGHIJKLMNOPQRSTUVWXYZ\r\nabcdefghijklmnopqrstuvwxyz\n0123456789\r "
       "!\"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~";
   char actual_string[300] = "";
 

From 703b1f6893d89e3bd2386f7a147ab69a0e956122 Mon Sep 17 00:00:00 2001
From: Ujjwal Kumar <31813384+Ujjwal0501@users.noreply.github.com>
Date: Sat, 6 Apr 2024 13:09:49 +0530
Subject: [PATCH 31/32] chore: Version bump v0.6.257 (patch++)

---
 version.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/version.txt b/version.txt
index 342052ae4..c80da4e8c 100755
--- a/version.txt
+++ b/version.txt
@@ -1,3 +1,3 @@
-firmware version=000:006:001:000
+firmware version=000:006:001:001
 hardware version=000:001:000:000
 magic number=45227A01

From fa54b4f1fbc4f8429d041fb081249ce9cd05e958 Mon Sep 17 00:00:00 2001
From: Ujjwal Kumar <31813384+Ujjwal0501@users.noreply.github.com>
Date: Wed, 10 Apr 2024 13:55:51 +0530
Subject: [PATCH 32/32] fix (ci): Correct containerized build on branch

---
 .github/workflows/containerized-build.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/containerized-build.yml b/.github/workflows/containerized-build.yml
index 86152c563..14d19dcce 100644
--- a/.github/workflows/containerized-build.yml
+++ b/.github/workflows/containerized-build.yml
@@ -19,9 +19,9 @@ jobs:
     - name: Build Firmware (${{ inputs.firmware }} - ${{ inputs.target }})
       run: |
         if [[ "${{ github.ref_type }}" == "tag" ]]; then
-          export VERSION_TAG=$(echo "${{ github.ref }}" | awk -F/ '{print $3}')
+          export VERSION_TAG=$(echo "${{ github.ref }}" | cut -f 3- -d '/'')
         elif [[ "${{ github.ref_type }}" == "branch" ]]; then
-          export VERSION_TAG=$(echo "${{ github.ref }}" | awk -F/ '{print $3}')
+          export VERSION_TAG=$(echo "${{ github.ref }}" | cut -f 3- -d '/'')
         else
           # reftype is repository; use default branch
           export VERSION_TAG=main