summaryrefslogtreecommitdiff
path: root/src/libs/lvgl/tests
diff options
context:
space:
mode:
authorJean-François Milants <jf@codingfield.com>2021-02-23 21:25:43 +0100
committerJean-François Milants <jf@codingfield.com>2021-02-23 21:25:43 +0100
commit67c545b1fbd368b99b111a1822fe8da815468e76 (patch)
tree0bcb047f3e9d5c41c6d79b4dac6cbcdd3929136b /src/libs/lvgl/tests
parent324c7dab326ea23a6c8502bbb8c6e9b9d87a839f (diff)
parentb11b20b0ac5c0adfbd1397cf42c322c873a736a8 (diff)
Merge branch 'joaquimorg-LVGL7' into develop
Diffstat (limited to 'src/libs/lvgl/tests')
-rw-r--r--src/libs/lvgl/tests/Makefile59
-rwxr-xr-xsrc/libs/lvgl/tests/build.py375
-rw-r--r--src/libs/lvgl/tests/font_1.fntbin0 -> 6876 bytes
-rw-r--r--src/libs/lvgl/tests/font_2.fntbin0 -> 7252 bytes
-rw-r--r--src/libs/lvgl/tests/font_3.fntbin0 -> 4892 bytes
-rw-r--r--src/libs/lvgl/tests/icon.pngbin0 -> 2739 bytes
-rw-r--r--src/libs/lvgl/tests/icon2.pngbin0 -> 1853 bytes
-rw-r--r--src/libs/lvgl/tests/lv_test_assert.c376
-rw-r--r--src/libs/lvgl/tests/lv_test_assert.h53
-rw-r--r--src/libs/lvgl/tests/lv_test_conf.h50
-rw-r--r--src/libs/lvgl/tests/lv_test_core/lv_test_core.c56
-rw-r--r--src/libs/lvgl/tests/lv_test_core/lv_test_core.h38
-rw-r--r--src/libs/lvgl/tests/lv_test_core/lv_test_font_loader.c223
-rw-r--r--src/libs/lvgl/tests/lv_test_core/lv_test_font_loader.h38
-rw-r--r--src/libs/lvgl/tests/lv_test_core/lv_test_obj.c88
-rw-r--r--src/libs/lvgl/tests/lv_test_core/lv_test_obj.h38
-rw-r--r--src/libs/lvgl/tests/lv_test_core/lv_test_style.c624
-rw-r--r--src/libs/lvgl/tests/lv_test_core/lv_test_style.h38
-rw-r--r--src/libs/lvgl/tests/lv_test_fonts/font_1.c1378
-rw-r--r--src/libs/lvgl/tests/lv_test_fonts/font_2.c1408
-rw-r--r--src/libs/lvgl/tests/lv_test_fonts/font_3.c946
-rw-r--r--src/libs/lvgl/tests/lv_test_main.c145
-rw-r--r--src/libs/lvgl/tests/lv_test_ref_imgs/lv_test_img32_label_1.pngbin0 -> 2533 bytes
-rw-r--r--src/libs/lvgl/tests/lv_test_widgets/lv_test_label.c69
-rw-r--r--src/libs/lvgl/tests/lv_test_widgets/lv_test_label.h38
25 files changed, 6040 insertions, 0 deletions
diff --git a/src/libs/lvgl/tests/Makefile b/src/libs/lvgl/tests/Makefile
new file mode 100644
index 00000000..04ad1afa
--- /dev/null
+++ b/src/libs/lvgl/tests/Makefile
@@ -0,0 +1,59 @@
+#
+# Makefile
+#
+CC ?= gcc
+LVGL_DIR ?= ${shell pwd}/../..
+LVGL_DIR_NAME ?= lvgl
+
+WARNINGS = -Werror -Wall -Wextra \
+ -Wshadow -Wundef -Wmaybe-uninitialized -Wmissing-prototypes -Wpointer-arith -Wuninitialized \
+ -Wunreachable-code -Wreturn-type -Wmultichar -Wformat-security -Wdouble-promotion -Wclobbered -Wdeprecated \
+ -Wempty-body -Wshift-negative-value -Wstack-usage=2048 -pedantic-errors \
+ -Wtype-limits -Wsizeof-pointer-memaccess -Wpedantic -Wmissing-prototypes -Wno-discarded-qualifiers
+
+#-Wno-unused-value -Wno-unused-parameter
+OPTIMIZATION ?= -O3 -g0
+
+CFLAGS ?= -I$(LVGL_DIR)/ $(DEFINES) $(WARNINGS) $(OPTIMIZATION) -I$(LVGL_DIR) -I.
+
+LDFLAGS ?= -lpng
+BIN ?= demo
+
+#Collect the files to compile
+MAINSRC = ./lv_test_main.c
+
+include ../lvgl.mk
+
+CSRCS += lv_test_assert.c
+CSRCS += lv_test_core/lv_test_core.c
+CSRCS += lv_test_core/lv_test_obj.c
+CSRCS += lv_test_core/lv_test_style.c
+CSRCS += lv_test_core/lv_test_font_loader.c
+CSRCS += lv_test_widgets/lv_test_label.c
+CSRCS += lv_test_fonts/font_1.c
+CSRCS += lv_test_fonts/font_2.c
+CSRCS += lv_test_fonts/font_3.c
+
+OBJEXT ?= .o
+
+AOBJS = $(ASRCS:.S=$(OBJEXT))
+COBJS = $(CSRCS:.c=$(OBJEXT))
+
+MAINOBJ = $(MAINSRC:.c=$(OBJEXT))
+
+SRCS = $(ASRCS) $(CSRCS) $(MAINSRC)
+OBJS = $(AOBJS) $(COBJS)
+
+## MAINOBJ -> OBJFILES
+
+all: default
+
+%.o: %.c
+ @$(CC) $(CFLAGS) -c $< -o $@
+ @echo "CC $<"
+
+default: $(AOBJS) $(COBJS) $(MAINOBJ)
+ $(CC) -o $(BIN) $(MAINOBJ) $(AOBJS) $(COBJS) $(LDFLAGS)
+
+clean:
+ rm -f $(BIN) $(AOBJS) $(COBJS) $(MAINOBJ)
diff --git a/src/libs/lvgl/tests/build.py b/src/libs/lvgl/tests/build.py
new file mode 100755
index 00000000..43b61344
--- /dev/null
+++ b/src/libs/lvgl/tests/build.py
@@ -0,0 +1,375 @@
+#!/usr/bin/env python3
+
+import os
+
+lvgldirname = os.path.abspath('..')
+lvgldirname = os.path.basename(lvgldirname)
+lvgldirname = '"' + lvgldirname + '"'
+
+base_defines = '"-DLV_CONF_PATH=' + lvgldirname +'/tests/lv_test_conf.h -DLV_BUILD_TEST"'
+optimization = '"-O3 -g0"'
+
+def build(name, defines):
+ global base_defines, optimization
+
+ print("=============================")
+ print(name)
+ print("=============================")
+
+ d_all = base_defines[:-1] + " ";
+
+ for d in defines:
+ d_all += " -D" + d + "=" + str(defines[d])
+
+ d_all += '"'
+ cmd = "make -j8 BIN=test.bin LVGL_DIR_NAME=" + lvgldirname + " DEFINES=" + d_all + " OPTIMIZATION=" + optimization
+
+ print("---------------------------")
+ print("Clean")
+ print("---------------------------")
+ os.system("make clean LVGL_DIR_NAME=" + lvgldirname)
+ os.system("rm -f ./test.bin")
+ print("---------------------------")
+ print("Build")
+ print("---------------------------")
+ ret = os.system(cmd)
+ if(ret != 0):
+ print("BUILD ERROR! (error code " + str(ret) + ")")
+ exit(1)
+
+ print("---------------------------")
+ print("Run")
+ print("---------------------------")
+ ret = os.system("./test.bin")
+ if(ret != 0):
+ print("RUN ERROR! (error code " + str(ret) + ")")
+ exit(1)
+
+ print("---------------------------")
+ print("Finished")
+ print("---------------------------")
+
+minimal_monochrome = {
+ "LV_DPI":40,
+ "LV_MEM_SIZE":4*1024,
+ "LV_HOR_RES_MAX":128,
+ "LV_VER_RES_MAX":64,
+ "LV_COLOR_DEPTH":1,
+ "LV_USE_GROUP":0,
+ "LV_USE_ANIMATION":0,
+ "LV_ANTIALIAS":0,
+ "LV_GPU":0,
+ "LV_USE_FILESYSTEM":0,
+ "LV_USE_IMG_TRANSFORM":0,
+ "LV_USE_API_EXTENSION_V6":0,
+ "LV_USE_USER_DATA":0,
+ "LV_USE_USER_DATA_FREE":0,
+ "LV_USE_LOG":0,
+ "LV_USE_THEME_EMPTY":0,
+ "LV_USE_THEME_MATERIAL":0,
+ "LV_USE_THEME_MONO":1,
+ "LV_USE_THEME_TEMPLATE":0,
+ "LV_THEME_DEFAULT_INIT": "\\\"lv_theme_mono_init\\\"",
+ "LV_THEME_DEFAULT_COLOR_PRIMARY": "\\\"LV_COLOR_RED\\\"",
+ "LV_THEME_DEFAULT_COLOR_SECONDARY": "\\\"LV_COLOR_BLUE\\\"",
+ "LV_THEME_DEFAULT_FLAG" : "0",
+ "LV_THEME_DEFAULT_FONT_SMALL" : "\\\"&lv_font_unscii_8\\\"",
+ "LV_THEME_DEFAULT_FONT_NORMAL" : "\\\"&lv_font_unscii_8\\\"",
+ "LV_THEME_DEFAULT_FONT_SUBTITLE" : "\\\"&lv_font_unscii_8\\\"",
+ "LV_THEME_DEFAULT_FONT_TITLE" : "\\\"&lv_font_unscii_8\\\"",
+ "LV_LOG_PRINTF":0,
+ "LV_USE_DEBUG":0,
+ "LV_USE_ASSERT_NULL":0,
+ "LV_USE_ASSERT_MEM":0,
+ "LV_USE_ASSERT_STR":0,
+ "LV_USE_ASSERT_OBJ":0,
+ "LV_USE_ASSERT_STYLE":0,
+ "LV_FONT_MONTSERRAT_12":0,
+ "LV_FONT_MONTSERRAT_16":0,
+ "LV_FONT_MONTSERRAT_22":0,
+ "LV_FONT_MONTSERRAT_28":0,
+ "LV_FONT_MONTSERRAT_12_SUBPX":0,
+ "LV_FONT_MONTSERRAT_28_COMPRESSED":0,
+ "LV_FONT_UNSCII_8":1,
+ "LV_USE_BIDI": 0,
+ "LV_USE_OBJ_REALIGN": 0,
+ "LV_USE_ARC":0,
+ "LV_USE_BAR":1,
+ "LV_USE_BTN":1,
+ "LV_USE_BTNM":0,
+ "LV_USE_CALENDAR":0,
+ "LV_USE_CANVAS":0,
+ "LV_USE_CHECKBOX":0,
+ "LV_USE_CHART":0,
+ "LV_USE_CONT":1,
+ "LV_USE_CPICKER":0,
+ "LV_USE_DROPDOWN":0,
+ "LV_USE_GAUGE":0,
+ "LV_USE_IMG":1,
+ "LV_USE_IMGBTN":0,
+ "LV_USE_KEYBOARD":0,
+ "LV_USE_LABEL":1,
+ "LV_USE_LED":0,
+ "LV_USE_LINE":0,
+ "LV_USE_LIST":0,
+ "LV_USE_LINEMETER":0,
+ "LV_USE_OBJMASK":0,
+ "LV_USE_MBOX":0,
+ "LV_USE_PAGE":0,
+ "LV_USE_SPINNER":0,
+ "LV_USE_ROLLER":0,
+ "LV_USE_SLIDER":0,
+ "LV_USE_SPINBOX":0,
+ "LV_USE_SWITCH":0,
+ "LV_USE_TEXTAREA":0,
+ "LV_USE_TABLE":0,
+ "LV_USE_TABVIEW":0,
+ "LV_USE_TILEVIEW":0,
+ "LV_USE_WIN":0
+}
+
+all_obj_minimal_features = {
+ "LV_DPI":60,
+ "LV_MEM_SIZE":12*1024,
+ "LV_HOR_RES_MAX":320,
+ "LV_VER_RES_MAX":240,
+ "LV_COLOR_DEPTH":8,
+ "LV_USE_GROUP":0,
+ "LV_USE_ANIMATION":0,
+ "LV_ANTIALIAS":0,
+ "LV_GPU":0,
+ "LV_USE_FILESYSTEM":0,
+ "LV_USE_IMG_TRANSFORM":0,
+ "LV_USE_API_EXTENSION_V6":0,
+ "LV_USE_USER_DATA":0,
+ "LV_USE_USER_DATA_FREE":0,
+ "LV_USE_LOG":0,
+ "LV_USE_THEME_MATERIAL":1,
+ "LV_THEME_DEFAULT_INIT": "\\\"lv_theme_material_init\\\"",
+ "LV_THEME_DEFAULT_COLOR_PRIMARY": "\\\"LV_COLOR_RED\\\"",
+ "LV_THEME_DEFAULT_COLOR_SECONDARY": "\\\"LV_COLOR_BLUE\\\"",
+ "LV_THEME_DEFAULT_FLAG" : "\\\"LV_THEME_MATERIAL_FLAG_LIGHT\\\"",
+ "LV_THEME_DEFAULT_FONT_SMALL" : "\\\"&lv_font_montserrat_16\\\"",
+ "LV_THEME_DEFAULT_FONT_NORMAL" : "\\\"&lv_font_montserrat_16\\\"",
+ "LV_THEME_DEFAULT_FONT_SUBTITLE" : "\\\"&lv_font_montserrat_16\\\"",
+ "LV_THEME_DEFAULT_FONT_TITLE" : "\\\"&lv_font_montserrat_16\\\"",
+ "LV_USE_DEBUG":0,
+ "LV_USE_ASSERT_NULL":0,
+ "LV_USE_ASSERT_MEM":0,
+ "LV_USE_ASSERT_STR":0,
+ "LV_USE_ASSERT_OBJ":0,
+ "LV_USE_ASSERT_STYLE":0,
+ "LV_FONT_MONTSERRAT_12":0,
+ "LV_FONT_MONTSERRAT_16":1,
+ "LV_FONT_MONTSERRAT_22":0,
+ "LV_FONT_MONTSERRAT_28":0,
+ "LV_FONT_MONTSERRAT_12_SUBPX":0,
+ "LV_FONT_MONTSERRAT_28_COMPRESSED":0,
+ "LV_FONT_UNSCII_8":0,
+ "LV_USE_BIDI": 0,
+ "LV_USE_OBJ_REALIGN": 0,
+ "LV_USE_EXT_CLICK_AREA":"LV_EXT_CLICK_AREA_TINY",
+ "LV_USE_ARC":1,
+ "LV_USE_BAR":1,
+ "LV_USE_BTN":1,
+ "LV_USE_BTNM":1,
+ "LV_USE_CALENDAR":1,
+ "LV_USE_CANVAS":1,
+ "LV_USE_CHECKBOX":1,
+ "LV_USE_CHART":1,
+ "LV_USE_CONT":1,
+ "LV_USE_CPICKER":1,
+ "LV_USE_DROPDOWN":1,
+ "LV_USE_GAUGE":1,
+ "LV_USE_IMG":1,
+ "LV_USE_IMGBTN":1,
+ "LV_USE_KEYBOARD":1,
+ "LV_USE_LABEL":1,
+ "LV_USE_LED":1,
+ "LV_USE_LINE":1,
+ "LV_USE_LIST":1,
+ "LV_USE_LINEMETER":1,
+ "LV_USE_OBJMASK":1,
+ "LV_USE_MBOX":1,
+ "LV_USE_PAGE":1,
+ "LV_USE_SPINNER":0, #Disabled beacsue needs anim
+ "LV_USE_ROLLER":1,
+ "LV_USE_SLIDER":1,
+ "LV_USE_SPINBOX":1,
+ "LV_USE_SWITCH":1,
+ "LV_USE_TEXTAREA":1,
+ "LV_USE_TABLE":1,
+ "LV_USE_TABVIEW":1,
+ "LV_USE_TILEVIEW":1,
+ "LV_USE_WIN":1
+}
+
+all_obj_all_features = {
+ "LV_DPI":100,
+ "LV_MEM_SIZE":32*1024,
+ "LV_HOR_RES_MAX":480,
+ "LV_VER_RES_MAX":320,
+ "LV_COLOR_DEPTH":32,
+ "LV_COLOR_SCREEN_TRANSP":1,
+ "LV_USE_GROUP":1,
+ "LV_USE_ANIMATION":1,
+ "LV_ANTIALIAS":1,
+ "LV_GPU":1,
+ "LV_USE_FILESYSTEM":1,
+ "LV_USE_IMG_TRANSFORM":1,
+ "LV_USE_API_EXTENSION_V6":1,
+ "LV_USE_USER_DATA":1,
+ "LV_USE_USER_DATA_FREE":0,
+ "LV_USE_LOG":1,
+ "LV_USE_THEME_MATERIAL":1,
+ "LV_USE_THEME_EMPTY":1,
+ "LV_USE_THEME_MONO":1,
+ "LV_USE_THEME_TEMPLATE":1,
+ "LV_THEME_DEFAULT_INIT": "\\\"lv_theme_material_init\\\"",
+ "LV_THEME_DEFAULT_COLOR_PRIMARY": "\\\"LV_COLOR_RED\\\"",
+ "LV_THEME_DEFAULT_COLOR_SECONDARY": "\\\"LV_COLOR_BLUE\\\"",
+ "LV_THEME_DEFAULT_FLAG" : "\\\"LV_THEME_MATERIAL_FLAG_LIGHT\\\"",
+ "LV_THEME_DEFAULT_FONT_SMALL" : "\\\"&lv_font_montserrat_12\\\"",
+ "LV_THEME_DEFAULT_FONT_NORMAL" : "\\\"&lv_font_montserrat_16\\\"",
+ "LV_THEME_DEFAULT_FONT_SUBTITLE" : "\\\"&lv_font_montserrat_22\\\"",
+ "LV_THEME_DEFAULT_FONT_TITLE" : "\\\"&lv_font_montserrat_28\\\"",
+ "LV_LOG_PRINTF":0,
+ "LV_USE_DEBUG":0,
+ "LV_USE_ASSERT_NULL":0,
+ "LV_USE_ASSERT_MEM":0,
+ "LV_USE_ASSERT_STR":0,
+ "LV_USE_ASSERT_OBJ":0,
+ "LV_USE_ASSERT_STYLE":0,
+ "LV_FONT_MONTSERRAT_12":1,
+ "LV_FONT_MONTSERRAT_16":1,
+ "LV_FONT_MONTSERRAT_22":1,
+ "LV_FONT_MONTSERRAT_28":1,
+ "LV_FONT_MONTSERRAT_12_SUBPX":1,
+ "LV_FONT_MONTSERRAT_28_COMPRESSED":1,
+ "LV_FONT_UNSCII_8":1,
+ "LV_USE_ARC":1,
+ "LV_USE_BAR":1,
+ "LV_USE_BTN":1,
+ "LV_USE_BTNM":1,
+ "LV_USE_CALENDAR":1,
+ "LV_USE_CANVAS":1,
+ "LV_USE_CHECKBOX":1,
+ "LV_USE_CHART":1,
+ "LV_USE_CONT":1,
+ "LV_USE_CPICKER":1,
+ "LV_USE_DROPDOWN":1,
+ "LV_USE_GAUGE":1,
+ "LV_USE_IMG":1,
+ "LV_USE_IMGBTN":1,
+ "LV_USE_KEYBOARD":1,
+ "LV_USE_LABEL":1,
+ "LV_USE_LED":1,
+ "LV_USE_LINE":1,
+ "LV_USE_LIST":1,
+ "LV_USE_LINEMETER":1,
+ "LV_USE_OBJMASK":1,
+ "LV_USE_MBOX":1,
+ "LV_USE_PAGE":1,
+ "LV_USE_SPINNER":1,
+ "LV_USE_ROLLER":1,
+ "LV_USE_SLIDER":1,
+ "LV_USE_SPINBOX":1,
+ "LV_USE_SWITCH":1,
+ "LV_USE_TEXTAREA":1,
+ "LV_USE_TABLE":1,
+ "LV_USE_TABVIEW":1,
+ "LV_USE_TILEVIEW":1,
+ "LV_USE_WIN":1
+}
+
+advanced_features = {
+ "LV_DPI":100,
+ "LV_MEM_SIZE":4*1024*1024,
+ "LV_MEM_CUSTOM":1,
+ "LV_HOR_RES_MAX":800,
+ "LV_VER_RES_MAX":480,
+ "LV_COLOR_DEPTH":32,
+ "LV_COLOR_16_SWAP":0,
+ "LV_COLOR_SCREEN_TRANSP":1,
+ "LV_USE_GROUP":1,
+ "LV_USE_ANIMATION":1,
+ "LV_ANTIALIAS":1,
+ "LV_GPU":1,
+ "LV_USE_FILESYSTEM":1,
+ "LV_USE_IMG_TRANSFORM":1,
+ "LV_USE_API_EXTENSION_V6":1,
+ "LV_USE_USER_DATA":1,
+ "LV_IMG_CACHE_DEF_SIZE":32,
+ "LV_USE_LOG":1,
+ "LV_USE_THEME_MATERIAL":1,
+ "LV_USE_THEME_EMPTY":1,
+ "LV_USE_THEME_TEMPLATE":1,
+ "LV_THEME_DEFAULT_INIT": "\\\"lv_theme_material_init\\\"",
+ "LV_THEME_DEFAULT_COLOR_PRIMARY": "\\\"LV_COLOR_RED\\\"",
+ "LV_THEME_DEFAULT_COLOR_SECONDARY": "\\\"LV_COLOR_BLUE\\\"",
+ "LV_THEME_DEFAULT_FLAG" : "\\\"LV_THEME_MATERIAL_FLAG_LIGHT\\\"",
+ "LV_THEME_DEFAULT_FONT_SMALL" : "\\\"&lv_font_montserrat_12\\\"",
+ "LV_THEME_DEFAULT_FONT_NORMAL" : "\\\"&lv_font_montserrat_16\\\"",
+ "LV_THEME_DEFAULT_FONT_SUBTITLE" : "\\\"&lv_font_montserrat_22\\\"",
+ "LV_THEME_DEFAULT_FONT_TITLE" : "\\\"&lv_font_montserrat_28\\\"",
+ "LV_LOG_PRINTF":1,
+ "LV_USE_DEBUG":1,
+ "LV_USE_ASSERT_NULL":1,
+ "LV_USE_ASSERT_MEM":1,
+ "LV_USE_ASSERT_STR":1,
+ "LV_USE_ASSERT_OBJ":1,
+ "LV_USE_ASSERT_STYLE":1,
+ "LV_FONT_MONTSERRAT_12":1,
+ "LV_FONT_MONTSERRAT_16":1,
+ "LV_FONT_MONTSERRAT_22":1,
+ "LV_FONT_MONTSERRAT_28":1,
+ "LV_FONT_MONTSERRAT_12_SUBPX":1,
+ "LV_FONT_MONTSERRAT_28_COMPRESSED":1,
+ "LV_FONT_UNSCII_8":1,
+ "LV_USE_BIDI": 1,
+ "LV_USE_REVERSE_ARABIC_PERSIAN_CHARS":1,
+ "LV_USE_OBJ_REALIGN": 1,
+ "LV_FONT_FMT_TXT_LARGE":1,
+ "LV_FONT_SUBPX_BGR":1,
+ "LV_USE_BIDI": 1,
+ "LV_USE_OBJ_REALIGN": 1,
+ "LV_USE_EXT_CLICK_AREA":"LV_EXT_CLICK_AREA_FULL",
+ "LV_USE_ARC":1,
+ "LV_USE_BAR":1,
+ "LV_USE_BTN":1,
+ "LV_USE_BTNM":1,
+ "LV_USE_CALENDAR":1,
+ "LV_USE_CANVAS":1,
+ "LV_USE_CHECKBOX":1,
+ "LV_USE_CHART":1,
+ "LV_USE_CONT":1,
+ "LV_USE_CPICKER":1,
+ "LV_USE_DROPDOWN":1,
+ "LV_USE_GAUGE":1,
+ "LV_USE_IMG":1,
+ "LV_USE_IMGBTN":1,
+ "LV_USE_KEYBOARD":1,
+ "LV_USE_LABEL":1,
+ "LV_USE_LED":1,
+ "LV_USE_LINE":1,
+ "LV_USE_LIST":1,
+ "LV_USE_LINEMETER":1,
+ "LV_USE_OBJMASK":1,
+ "LV_USE_MBOX":1,
+ "LV_USE_PAGE":1,
+ "LV_USE_SPINNER":1,
+ "LV_USE_ROLLER":1,
+ "LV_USE_SLIDER":1,
+ "LV_USE_SPINBOX":1,
+ "LV_USE_SWITCH":1,
+ "LV_USE_TEXTAREA":1,
+ "LV_USE_TABLE":1,
+ "LV_USE_TABVIEW":1,
+ "LV_USE_TILEVIEW":1,
+ "LV_USE_WIN":1
+}
+
+build("Minimal monochrome", minimal_monochrome)
+build("All objects, minimal features", all_obj_minimal_features)
+build("All objects, all common features", all_obj_all_features)
+build("All objects, with advanced features", advanced_features)
diff --git a/src/libs/lvgl/tests/font_1.fnt b/src/libs/lvgl/tests/font_1.fnt
new file mode 100644
index 00000000..bc701d5f
--- /dev/null
+++ b/src/libs/lvgl/tests/font_1.fnt
Binary files differ
diff --git a/src/libs/lvgl/tests/font_2.fnt b/src/libs/lvgl/tests/font_2.fnt
new file mode 100644
index 00000000..3b648e9d
--- /dev/null
+++ b/src/libs/lvgl/tests/font_2.fnt
Binary files differ
diff --git a/src/libs/lvgl/tests/font_3.fnt b/src/libs/lvgl/tests/font_3.fnt
new file mode 100644
index 00000000..43c074d7
--- /dev/null
+++ b/src/libs/lvgl/tests/font_3.fnt
Binary files differ
diff --git a/src/libs/lvgl/tests/icon.png b/src/libs/lvgl/tests/icon.png
new file mode 100644
index 00000000..74f54b05
--- /dev/null
+++ b/src/libs/lvgl/tests/icon.png
Binary files differ
diff --git a/src/libs/lvgl/tests/icon2.png b/src/libs/lvgl/tests/icon2.png
new file mode 100644
index 00000000..7d216010
--- /dev/null
+++ b/src/libs/lvgl/tests/icon2.png
Binary files differ
diff --git a/src/libs/lvgl/tests/lv_test_assert.c b/src/libs/lvgl/tests/lv_test_assert.c
new file mode 100644
index 00000000..3b8dfefb
--- /dev/null
+++ b/src/libs/lvgl/tests/lv_test_assert.c
@@ -0,0 +1,376 @@
+/**
+ * @file lv_test_assert.c
+ *
+ * Copyright 2002-2010 Guillaume Cottenceau.
+ *
+ * This software may be freely redistributed under the terms
+ * of the X11 license.
+ *
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+#include "lv_test_assert.h"
+#include "../lvgl.h"
+#if LV_BUILD_TEST
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdarg.h>
+
+#define PNG_DEBUG 3
+#include <png.h>
+
+/*********************
+ * DEFINES
+ *********************/
+//#define REF_IMGS_PATH "lvgl/tests/lv_test_ref_imgs/"
+#define REF_IMGS_PATH "lv_test_ref_imgs/"
+
+/**********************
+ * TYPEDEFS
+ **********************/
+typedef struct {
+ int width, height;
+ png_byte color_type;
+ png_byte bit_depth;
+
+ png_structp png_ptr;
+ png_infop info_ptr;
+ int number_of_passes;
+ png_bytep * row_pointers;
+}png_img_t;
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+static void read_png_file(png_img_t * p, const char* file_name);
+//static void write_png_file(png_img_t * p, const char* file_name);
+static void png_release(png_img_t * p);
+//static void process_file(png_img_t * p);
+
+/**********************
+ * STATIC VARIABLES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+void lv_test_print(const char * s, ...)
+{
+ va_list args;
+ va_start(args, s);
+ vfprintf(stdout, s, args);
+ fprintf(stdout, "\n");
+ va_end(args);
+}
+
+void lv_test_exit(const char * s, ...)
+{
+ va_list args;
+ va_start(args, s);
+ vfprintf(stderr, s, args);
+ fprintf(stderr, "\n");
+ va_end(args);
+
+ exit(1);
+}
+
+void lv_test_error(const char * s, ...)
+{
+ va_list args;
+ va_start(args, s);
+ vfprintf(stderr, s, args);
+ fprintf(stderr, "\n");
+ va_end(args);
+ exit(1);
+}
+
+void lv_test_assert_true(int32_t expression, const char * s)
+{
+ if(!expression) {
+ lv_test_error(" FAIL: %s. (Expected: not zero)", s, expression);
+ } else {
+ lv_test_print(" PASS: %s. (Expected: not zero)", s, expression);
+ }
+}
+
+void lv_test_assert_int_eq(int32_t n_ref, int32_t n_act, const char * s)
+{
+ if(n_ref != n_act) {
+ lv_test_error(" FAIL: %s. (Expected: %d, Actual: %d)", s, n_ref, n_act);
+ } else {
+ lv_test_print(" PASS: %s. (Expected: %d)", s, n_ref);
+ }
+}
+
+void lv_test_assert_int_gt(int32_t n_ref, int32_t n_act, const char * s)
+{
+ if(n_act <= n_ref) {
+ lv_test_error(" FAIL: %s. (Expected: > %d, Actual: %d)", s, n_ref, n_act);
+ } else {
+ lv_test_print(" PASS: %s. (Expected: > %d, , Actual: %d)", s, n_ref, n_act);
+ }
+}
+
+void lv_test_assert_int_lt(int32_t n_ref, int32_t n_act, const char * s)
+{
+ if(n_act >= n_ref) {
+ lv_test_error(" FAIL: %s. (Expected: < %d, Actual: %d)", s, n_ref, n_act);
+ } else {
+ lv_test_print(" PASS: %s. (Expected: < %d, , Actual: %d)", s, n_ref, n_act);
+ }
+}
+
+void lv_test_assert_str_eq(const char * s_ref, const char * s_act, const char * s)
+{
+ if(strcmp(s_ref, s_act) != 0) {
+ lv_test_error(" FAIL: %s. (Expected: %s, Actual: %s)", s, s_ref, s_act);
+ } else {
+ lv_test_print(" PASS: %s. (Expected: %s)", s, s_ref);
+ }
+}
+
+void lv_test_assert_array_eq(const uint8_t *p_ref, const uint8_t *p_act, int32_t size, const char * s)
+{
+ if(memcmp(p_ref, p_act, size) != 0) {
+ lv_test_error(" FAIL: %s. (Expected: all %d bytes should be equal)", s, size);
+ } else {
+ lv_test_print(" PASS: %s. (Expected: all %d bytes should be equal)", s, size);
+ }
+}
+
+void lv_test_assert_ptr_eq(const void * p_ref, const void * p_act, const char * s)
+{
+ if(p_ref != p_act) {
+ lv_test_error(" FAIL: %s. (Expected: 0x%lx, Actual: 0x%lx)", s, p_ref, p_act);
+ } else {
+ lv_test_print(" PASS: %s. (Expected: 0x%lx)", s, p_ref);
+ }
+}
+
+void lv_test_assert_color_eq(lv_color_t c_ref, lv_color_t c_act, const char * s)
+{
+ if(c_ref.full != c_act.full) {
+ lv_test_error(" FAIL: %s. (Expected: R:%02x, G:%02x, B:%02x, Actual: R:%02x, G:%02x, B:%02x)", s,
+ c_ref.ch.red, c_ref.ch.green, c_ref.ch.blue,
+ c_act.ch.red, c_act.ch.green, c_act.ch.blue);
+ } else {
+ lv_test_print(" PASS: %s. (Expected: R:%02x, G:%02x, B:%02x)", s,
+ c_ref.ch.red, c_ref.ch.green, c_ref.ch.blue);
+ }
+}
+
+void lv_test_assert_img_eq(const char * fn_ref, const char * s)
+{
+#if LV_COLOR_DEPTH != 32
+ lv_test_print(" SKIP: Can't compare '%s' because LV_COLOR_DEPTH != 32", fn_ref);
+ return;
+#endif
+
+#if LV_HOR_RES_MAX != 800 || LV_VER_RES_MAX != 480
+ lv_test_print(" SKIP: Can't compare '%s' because the resolution needs to be 800x480 (LV_HOR_RES_MAX, LV_VER_RES_MAX)", fn_ref);
+ return;
+#endif
+
+ char fn_ref_full[512];
+ sprintf(fn_ref_full, "%s%s", REF_IMGS_PATH, fn_ref);
+
+ png_img_t p;
+ read_png_file(&p, fn_ref_full);
+ uint8_t * screen_buf;
+
+ lv_disp_t * disp = lv_disp_get_default();
+ lv_obj_invalidate(lv_disp_get_scr_act(disp));
+ lv_refr_now(disp);
+
+ extern lv_color_t test_fb[];
+
+ screen_buf = (uint8_t *)test_fb;
+
+ uint8_t * ptr_act = NULL;
+ const png_byte* ptr_ref = NULL;
+
+ bool err = false;
+ int x, y, i_buf = 0;
+ for (y=0; y<p.height; y++) {
+ png_byte* row = p.row_pointers[y];
+ for (x=0; x<p.width; x++) {
+ ptr_ref = &(row[x*3]);
+ ptr_act = &(screen_buf[i_buf*4]);
+ uint8_t tmp = ptr_act[0];
+ ptr_act[0] = ptr_act[2];
+ ptr_act[2] = tmp;
+
+ if(memcmp(ptr_act, ptr_ref, 3) != 0) {
+ err = true;
+ break;
+ }
+ i_buf++;
+ }
+ if(err) break;
+ }
+
+ png_release(&p);
+
+ if(err) {
+ uint32_t ref_px = 0;
+ uint32_t act_px = 0;
+ memcpy(&ref_px, ptr_ref, 3);
+ memcpy(&act_px, ptr_act, 3);
+ lv_test_error(" FAIL: %s. (Expected: %s, diff. at (%d;%d), %08x instead of %08x)", s, fn_ref, x, y, act_px, ref_px);
+ } else {
+ lv_test_print(" PASS: %s. (Expected: %s)", s, fn_ref);
+ }
+}
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+static void read_png_file(png_img_t * p, const char* file_name)
+{
+ char header[8]; // 8 is the maximum size that can be checked
+
+ /* open file and test for it being a png */
+ FILE *fp = fopen(file_name, "rb");
+ if (!fp)
+ lv_test_exit("[read_png_file] File %s could not be opened for reading", file_name);
+ size_t rcnt = fread(header, 1, 8, fp);
+ if (rcnt != 8 || png_sig_cmp((png_const_bytep)header, 0, 8))
+ lv_test_exit("[read_png_file] File %s is not recognized as a PNG file", file_name);
+
+ /* initialize stuff */
+ p->png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
+
+ if (!p->png_ptr)
+ lv_test_exit("[read_png_file] png_create_read_struct failed");
+
+ p->info_ptr = png_create_info_struct(p->png_ptr);
+ if (!p->info_ptr)
+ lv_test_exit("[read_png_file] png_create_info_struct failed");
+
+ if (setjmp(png_jmpbuf(p->png_ptr)))
+ lv_test_exit("[read_png_file] Error during init_io");
+
+ png_init_io(p->png_ptr, fp);
+ png_set_sig_bytes(p->png_ptr, 8);
+
+ png_read_info(p->png_ptr, p->info_ptr);
+
+ p->width = png_get_image_width(p->png_ptr, p->info_ptr);
+ p->height = png_get_image_height(p->png_ptr, p->info_ptr);
+ p->color_type = png_get_color_type(p->png_ptr, p->info_ptr);
+ p->bit_depth = png_get_bit_depth(p->png_ptr, p->info_ptr);
+
+ p->number_of_passes = png_set_interlace_handling(p->png_ptr);
+ png_read_update_info(p->png_ptr, p->info_ptr);
+
+ /* read file */
+ if (setjmp(png_jmpbuf(p->png_ptr)))
+ lv_test_exit("[read_png_file] Error during read_image");
+
+ p->row_pointers = (png_bytep*) malloc(sizeof(png_bytep) * p->height);
+
+ int y;
+ for (y=0; y<p->height; y++)
+ p->row_pointers[y] = (png_byte*) malloc(png_get_rowbytes(p->png_ptr,p->info_ptr));
+
+ png_read_image(p->png_ptr, p->row_pointers);
+
+ fclose(fp);
+}
+//
+//
+//static void write_png_file(png_img_t * p, const char* file_name)
+//{
+// /* create file */
+// FILE *fp = fopen(file_name, "wb");
+// if (!fp)
+// lv_test_exit("[write_png_file] File %s could not be opened for writing", file_name);
+//
+//
+// /* initialize stuff */
+// p->png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);
+//
+// if (!p->png_ptr)
+// lv_test_exit("[write_png_file] png_create_write_struct failed");
+//
+// p->info_ptr = png_create_info_struct(p->png_ptr);
+// if (!p->info_ptr)
+// lv_test_exit("[write_png_file] png_create_info_struct failed");
+//
+// if (setjmp(png_jmpbuf(p->png_ptr)))
+// lv_test_exit("[write_png_file] Error during init_io");
+//
+// png_init_io(p->png_ptr, fp);
+//
+//
+// /* write header */
+// if (setjmp(png_jmpbuf(p->png_ptr)))
+// lv_test_exit("[write_png_file] Error during writing header");
+//
+// png_set_IHDR(p->png_ptr, p->info_ptr, p->width, p->height,
+// p->bit_depth, p->color_type, PNG_INTERLACE_NONE,
+// PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE);
+//
+// png_write_info(p->png_ptr, p->info_ptr);
+//
+//
+// /* write bytes */
+// if (setjmp(png_jmpbuf(p->png_ptr)))
+// lv_test_exit("[write_png_file] Error during writing bytes");
+//
+// png_write_image(p->png_ptr, p->row_pointers);
+//
+//
+// /* end write */
+// if (setjmp(png_jmpbuf(p->png_ptr)))
+// lv_test_exit("[write_png_file] Error during end of write");
+//
+// png_write_end(p->png_ptr, NULL);
+//
+// fclose(fp);
+//}
+//
+static void png_release(png_img_t * p)
+{
+ int y;
+ for (y=0; y<p->height; y++)
+ free(p->row_pointers[y]);
+ free(p->row_pointers);
+}
+
+//static void process_file(png_img_t * p)
+//{
+// if (png_get_color_type(p->png_ptr, p->info_ptr) == PNG_COLOR_TYPE_RGB)
+// lv_test_exit("[process_file] input file is PNG_COLOR_TYPE_RGB but must be PNG_COLOR_TYPE_RGBA "
+// "(lacks the alpha channel)");
+//
+// if (png_get_color_type(p->png_ptr, p->info_ptr) != PNG_COLOR_TYPE_RGBA)
+// lv_test_exit("[process_file] color_type of input file must be PNG_COLOR_TYPE_RGBA (%d) (is %d)",
+// PNG_COLOR_TYPE_RGBA, png_get_color_type(p->png_ptr, p->info_ptr));
+//
+// int x, y;
+// for (y=0; y<p->height; y++) {
+// png_byte* row = p->row_pointers[y];
+// for (x=0; x<p->width; x++) {
+// png_byte* ptr = &(row[x*4]);
+// printf("Pixel at position [ %d - %d ] has RGBA values: %d - %d - %d - %d\n",
+// x, y, ptr[0], ptr[1], ptr[2], ptr[3]);
+//
+// /* set red value to 0 and green value to the blue one */
+// ptr[0] = 0;
+// ptr[1] = ptr[2];
+// }
+// }
+//}
+#endif
diff --git a/src/libs/lvgl/tests/lv_test_assert.h b/src/libs/lvgl/tests/lv_test_assert.h
new file mode 100644
index 00000000..8d006ecf
--- /dev/null
+++ b/src/libs/lvgl/tests/lv_test_assert.h
@@ -0,0 +1,53 @@
+/**
+ * @file lv_test_assert.h
+ *
+ */
+
+#ifndef LV_TEST_ASSERT_H
+#define LV_TEST_ASSERT_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*********************
+ * INCLUDES
+ *********************/
+#include <stdbool.h>
+#include <stdint.h>
+#include "../lvgl.h"
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+
+void lv_test_print(const char * s, ...);
+void lv_test_exit(const char * s, ...);
+void lv_test_error(const char * s, ...);
+void lv_test_assert_true(int32_t expression, const char * s);
+void lv_test_assert_int_eq(int32_t n1, int32_t n2, const char * s);
+void lv_test_assert_int_gt(int32_t n_ref, int32_t n_act, const char * s);
+void lv_test_assert_int_lt(int32_t n_ref, int32_t n_act, const char * s);
+void lv_test_assert_str_eq(const char * str1, const char * str2, const char * s);
+void lv_test_assert_ptr_eq(const void * p_ref, const void * p_act, const char * s);
+void lv_test_assert_color_eq(lv_color_t c_ref, lv_color_t c_act, const char * s);
+void lv_test_assert_img_eq(const char * ref_img_fn, const char * s);
+void lv_test_assert_array_eq(const uint8_t *p_ref, const uint8_t *p_act, int32_t size, const char * s);
+
+/**********************
+ * MACROS
+ **********************/
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*LV_TEST_ASSERT_H*/
diff --git a/src/libs/lvgl/tests/lv_test_conf.h b/src/libs/lvgl/tests/lv_test_conf.h
new file mode 100644
index 00000000..3fe81486
--- /dev/null
+++ b/src/libs/lvgl/tests/lv_test_conf.h
@@ -0,0 +1,50 @@
+/**
+ * @file lv_test_conf.h
+ *
+ */
+
+#ifndef LV_TEST_CONF_H
+#define LV_TEST_CONF_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*********************
+ * INCLUDES
+ *********************/
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+uint32_t custom_tick_get(void);
+#define LV_TICK_CUSTOM_SYS_TIME_EXPR custom_tick_get()
+
+typedef int16_t lv_coord_t;
+typedef void * lv_disp_drv_user_data_t; /*Type of user data in the display driver*/
+typedef void * lv_indev_drv_user_data_t; /*Type of user data in the input device driver*/
+typedef void * lv_font_user_data_t;
+typedef void * lv_obj_user_data_t;
+typedef void * lv_anim_user_data_t;
+typedef void * lv_group_user_data_t;
+typedef void * lv_fs_drv_user_data_t;
+typedef void * lv_img_decoder_user_data_t;
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*LV_TEST_CONF_H*/
diff --git a/src/libs/lvgl/tests/lv_test_core/lv_test_core.c b/src/libs/lvgl/tests/lv_test_core/lv_test_core.c
new file mode 100644
index 00000000..d500211e
--- /dev/null
+++ b/src/libs/lvgl/tests/lv_test_core/lv_test_core.c
@@ -0,0 +1,56 @@
+/**
+ * @file lv_test_core.c
+ *
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+#include "../lv_test_assert.h"
+
+#if LV_BUILD_TEST
+#include "lv_test_core.h"
+#include "lv_test_obj.h"
+#include "lv_test_style.h"
+#include "lv_test_font_loader.h"
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+
+/**********************
+ * STATIC VARIABLES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+void lv_test_core(void)
+{
+ lv_test_print("");
+ lv_test_print("*******************");
+ lv_test_print("Start lv_core tests");
+ lv_test_print("*******************");
+
+ lv_test_obj();
+ lv_test_style();
+ lv_test_font_loader();
+}
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+#endif
diff --git a/src/libs/lvgl/tests/lv_test_core/lv_test_core.h b/src/libs/lvgl/tests/lv_test_core/lv_test_core.h
new file mode 100644
index 00000000..239b018e
--- /dev/null
+++ b/src/libs/lvgl/tests/lv_test_core/lv_test_core.h
@@ -0,0 +1,38 @@
+/**
+ * @file lv_test_core.h
+ *
+ */
+
+#ifndef LV_TEST_CORE_H
+#define LV_TEST_CORE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*********************
+ * INCLUDES
+ *********************/
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+void lv_test_core(void);
+
+/**********************
+ * MACROS
+ **********************/
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*LV_TEST_CORE_H*/
diff --git a/src/libs/lvgl/tests/lv_test_core/lv_test_font_loader.c b/src/libs/lvgl/tests/lv_test_core/lv_test_font_loader.c
new file mode 100644
index 00000000..16d75444
--- /dev/null
+++ b/src/libs/lvgl/tests/lv_test_core/lv_test_font_loader.c
@@ -0,0 +1,223 @@
+/**
+ * @file lv_test_font_loader.c
+ *
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "../../lvgl.h"
+#if LV_BUILD_TEST
+#include "../lv_test_assert.h"
+#include "../src/lv_font/lv_font_fmt_txt.h"
+#include "../src/lv_font/lv_font.h"
+#include "../src/lv_font/lv_font_loader.h"
+
+#include "lv_test_font_loader.h"
+
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wpedantic"
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+
+#if LV_USE_FILESYSTEM
+static int compare_fonts(lv_font_t * f1, lv_font_t * f2);
+#endif
+
+/**********************
+ * STATIC VARIABLES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+extern lv_font_t font_1;
+extern lv_font_t font_2;
+extern lv_font_t font_3;
+
+void lv_test_font_loader(void)
+{
+#if LV_USE_FILESYSTEM
+ lv_test_print("");
+ lv_test_print("===================");
+ lv_test_print("Start lv_font tests");
+ lv_test_print("===================");
+
+ lv_font_t * font_1_bin = lv_font_load("f:font_1.fnt");
+ lv_font_t * font_2_bin = lv_font_load("f:font_2.fnt");
+ lv_font_t * font_3_bin = lv_font_load("f:font_3.fnt");
+
+ compare_fonts(&font_1, font_1_bin);
+ compare_fonts(&font_2, font_2_bin);
+ compare_fonts(&font_3, font_3_bin);
+
+ lv_font_free(font_1_bin);
+ lv_font_free(font_2_bin);
+ lv_font_free(font_3_bin);
+#else
+ lv_test_print("SKIP: font load test because it requires LV_USE_FILESYSTEM 1 and LV_FONT_FMT_TXT_LARGE 0");
+#endif
+}
+
+#if LV_USE_FILESYSTEM
+static int compare_fonts(lv_font_t * f1, lv_font_t * f2)
+{
+ lv_test_assert_true(f1 != NULL && f2 != NULL, "font not null");
+
+ lv_test_assert_ptr_eq(f1->get_glyph_dsc, f2->get_glyph_dsc, "glyph_dsc");
+ lv_test_assert_ptr_eq(f1->get_glyph_bitmap, f2->get_glyph_bitmap, "glyph_bitmap");
+ lv_test_assert_int_eq(f1->line_height, f2->line_height, "line_height");
+ lv_test_assert_int_eq(f1->base_line, f2->base_line, "base_line");
+#if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0)
+ lv_test_assert_int_eq(f1->subpx, f2->subpx, "subpx");
+#endif
+ lv_font_fmt_txt_dsc_t * dsc1 = (lv_font_fmt_txt_dsc_t *) f1->dsc;
+ lv_font_fmt_txt_dsc_t * dsc2 = (lv_font_fmt_txt_dsc_t *) f2->dsc;
+
+ lv_test_assert_int_eq(dsc1->kern_scale, dsc2->kern_scale, "kern_scale");
+ lv_test_assert_int_eq(dsc1->cmap_num, dsc2->cmap_num, "cmap_num");
+ lv_test_assert_int_eq(dsc1->bpp, dsc2->bpp, "bpp");
+ lv_test_assert_int_eq(dsc1->kern_classes, dsc2->kern_classes, "kern_classes");
+ lv_test_assert_int_eq(dsc1->bitmap_format, dsc2->bitmap_format, "bitmap_format");
+
+ // cmaps
+ int total_glyphs = 0;
+ for(int i = 0; i < dsc1->cmap_num; ++i) {
+ lv_font_fmt_txt_cmap_t * cmaps1 = (lv_font_fmt_txt_cmap_t *) &dsc1->cmaps[i];
+ lv_font_fmt_txt_cmap_t * cmaps2 = (lv_font_fmt_txt_cmap_t *) &dsc2->cmaps[i];
+
+ lv_test_assert_int_eq(cmaps1->range_start, cmaps2->range_start, "range_start");
+ lv_test_assert_int_eq(cmaps1->range_length, cmaps2->range_length, "range_length");
+ lv_test_assert_int_eq(cmaps1->glyph_id_start, cmaps2->glyph_id_start, "glyph_id_start");
+ lv_test_assert_int_eq(cmaps1->type, cmaps2->type, "type");
+ lv_test_assert_int_eq(cmaps1->list_length, cmaps2->list_length, "list_length");
+
+ if(cmaps1->unicode_list != NULL && cmaps2->unicode_list != NULL) {
+ lv_test_assert_true(cmaps1->unicode_list && cmaps2->unicode_list, "unicode_list");
+
+ lv_test_assert_array_eq(
+ (uint8_t *) cmaps1->unicode_list,
+ (uint8_t *) cmaps2->unicode_list,
+ sizeof(uint16_t) * cmaps1->list_length,
+ "unicode_list");
+ total_glyphs += cmaps1->list_length;
+ }
+ else {
+ total_glyphs += cmaps1->range_length;
+ lv_test_assert_ptr_eq(cmaps1->unicode_list, cmaps2->unicode_list, "unicode_list");
+ }
+
+ if(cmaps1->glyph_id_ofs_list != NULL && cmaps2->glyph_id_ofs_list != NULL) {
+ uint8_t * ids1 = (uint8_t *) cmaps1->glyph_id_ofs_list;
+ uint8_t * ids2 = (uint8_t *) cmaps2->glyph_id_ofs_list;
+
+ lv_test_assert_array_eq(ids1, ids2, cmaps1->list_length, "glyph_id_ofs_list");
+ }
+ else {
+ lv_test_assert_ptr_eq(cmaps1->glyph_id_ofs_list, cmaps2->glyph_id_ofs_list, "glyph_id_ofs_list");
+ }
+ }
+
+ // kern_dsc
+ if (dsc1->kern_classes == 1 && dsc2->kern_classes == 1) {
+ lv_font_fmt_txt_kern_classes_t * kern1 = (lv_font_fmt_txt_kern_classes_t *) dsc1->kern_dsc;
+ lv_font_fmt_txt_kern_classes_t * kern2 = (lv_font_fmt_txt_kern_classes_t *) dsc2->kern_dsc;
+ if (kern1 != NULL && kern2 != NULL) {
+ lv_test_assert_int_eq(kern1->right_class_cnt, kern2->right_class_cnt, "right_class_cnt");
+ lv_test_assert_int_eq(kern1->left_class_cnt, kern2->left_class_cnt, "left_class_cnt");
+
+ lv_test_assert_array_eq(
+ (uint8_t *) kern1->left_class_mapping,
+ (uint8_t *) kern2->left_class_mapping,
+ kern1->left_class_cnt,
+ "left_class_mapping");
+
+ lv_test_assert_array_eq(
+ (uint8_t *) kern1->right_class_mapping,
+ (uint8_t *) kern2->right_class_mapping,
+ kern1->right_class_cnt,
+ "right_class_mapping");
+
+ lv_test_assert_array_eq(
+ (uint8_t *) kern1->class_pair_values,
+ (uint8_t *) kern2->class_pair_values,
+ kern1->right_class_cnt * kern1->left_class_cnt,
+ "class_pair_values");
+ }
+ else {
+ lv_test_assert_ptr_eq(kern1, kern2, "kern");
+ }
+ }
+ else if (dsc1->kern_classes == 0 && dsc2->kern_classes == 0) {
+ lv_font_fmt_txt_kern_pair_t * kern1 = (lv_font_fmt_txt_kern_pair_t *) dsc1->kern_dsc;
+ lv_font_fmt_txt_kern_pair_t * kern2 = (lv_font_fmt_txt_kern_pair_t *) dsc2->kern_dsc;
+ if (kern1 != NULL && kern2 != NULL) {
+ lv_test_assert_int_eq(kern1->glyph_ids_size, kern2->glyph_ids_size, "glyph_ids_size");
+ lv_test_assert_int_eq(kern1->pair_cnt, kern2->pair_cnt, "pair_cnt");
+
+ int ids_size;
+
+ if (kern1->glyph_ids_size == 0) {
+ ids_size = sizeof(int8_t) * 2 * kern1->pair_cnt;
+ }
+ else {
+ ids_size = sizeof(int16_t) * 2 * kern1->pair_cnt;
+ }
+
+ lv_test_assert_array_eq(kern1->glyph_ids, kern2->glyph_ids, ids_size, "glyph_ids");
+ lv_test_assert_array_eq(
+ (uint8_t * ) kern1->values,
+ (uint8_t * ) kern2->values,
+ kern1->pair_cnt,
+ "glyph_values");
+ }
+ }
+
+ lv_font_fmt_txt_glyph_dsc_t * glyph_dsc1 = (lv_font_fmt_txt_glyph_dsc_t *) dsc1->glyph_dsc;
+ lv_font_fmt_txt_glyph_dsc_t * glyph_dsc2 = (lv_font_fmt_txt_glyph_dsc_t *) dsc2->glyph_dsc;
+
+ for(int i = 0; i < total_glyphs; ++i) {
+ if (i < total_glyphs - 1) {
+ int size1 = glyph_dsc1[i+1].bitmap_index - glyph_dsc1[i].bitmap_index;
+
+ if (size1 > 0) {
+ lv_test_assert_array_eq(
+ dsc1->glyph_bitmap + glyph_dsc1[i].bitmap_index,
+ dsc2->glyph_bitmap + glyph_dsc2[i].bitmap_index,
+ size1 - 1, "glyph_bitmap");
+ }
+ }
+ lv_test_assert_int_eq(glyph_dsc1[i].adv_w, glyph_dsc2[i].adv_w, "adv_w");
+ lv_test_assert_int_eq(glyph_dsc1[i].box_w, glyph_dsc2[i].box_w, "box_w");
+ lv_test_assert_int_eq(glyph_dsc1[i].box_h, glyph_dsc2[i].box_h, "box_h");
+ lv_test_assert_int_eq(glyph_dsc1[i].ofs_x, glyph_dsc2[i].ofs_x, "ofs_x");
+ lv_test_assert_int_eq(glyph_dsc1[i].ofs_y, glyph_dsc2[i].ofs_y, "ofs_y");
+ }
+
+ LV_LOG_INFO("No differences found!");
+ return 0;
+}
+#endif
+
+#pragma GCC diagnostic pop
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+#endif // LV_BUILD_TEST
diff --git a/src/libs/lvgl/tests/lv_test_core/lv_test_font_loader.h b/src/libs/lvgl/tests/lv_test_core/lv_test_font_loader.h
new file mode 100644
index 00000000..25aebc06
--- /dev/null
+++ b/src/libs/lvgl/tests/lv_test_core/lv_test_font_loader.h
@@ -0,0 +1,38 @@
+/**
+ * @file lv_test_font_loader.h
+ *
+ */
+
+#ifndef LV_TEST_FONT_LOADER_H
+#define LV_TEST_FONT_LOADER_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*********************
+ * INCLUDES
+ *********************/
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+void lv_test_font_loader(void);
+
+/**********************
+ * MACROS
+ **********************/
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*LV_TEST_FONT_LOADER_H*/
diff --git a/src/libs/lvgl/tests/lv_test_core/lv_test_obj.c b/src/libs/lvgl/tests/lv_test_core/lv_test_obj.c
new file mode 100644
index 00000000..e4708a18
--- /dev/null
+++ b/src/libs/lvgl/tests/lv_test_core/lv_test_obj.c
@@ -0,0 +1,88 @@
+/**
+ * @file lv_test_obj.c
+ *
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+#include "../../lvgl.h"
+#include "../lv_test_assert.h"
+#include "lv_test_obj.h"
+
+#if LV_BUILD_TEST
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+static void create_delete_change_parent(void);
+
+/**********************
+ * STATIC VARIABLES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+void lv_test_obj(void)
+{
+ lv_test_print("");
+ lv_test_print("==================");
+ lv_test_print("Start lv_obj tests");
+ lv_test_print("==================");
+
+ create_delete_change_parent();
+}
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+static void create_delete_change_parent(void)
+{
+
+ lv_test_print("");
+ lv_test_print("Create, delete, change parent of a simple object:");
+ lv_test_print("-------------------------------------------------");
+
+ lv_test_print("Create an object on the default screen");
+ lv_test_assert_int_eq(0, lv_obj_count_children(lv_scr_act()), "Screen's children count before creation");
+
+ lv_obj_t * obj = lv_obj_create(lv_scr_act(), NULL);
+ lv_test_assert_int_eq(1, lv_obj_count_children(lv_scr_act()), "Screen's children count after creation");
+ lv_test_assert_int_eq(0, lv_obj_count_children(obj), "New object's children count after creation");
+
+ lv_test_print("Delete the created object");
+ lv_obj_del(obj);
+ obj = NULL;
+ lv_test_assert_int_eq(0, lv_obj_count_children(lv_scr_act()), "Screen's children count after delete");
+
+ lv_test_print("Create two objects");
+ lv_obj_t * obj_parent = lv_obj_create(lv_scr_act(), NULL);
+ lv_obj_t * obj_child = lv_obj_create(lv_scr_act(), NULL);
+ lv_test_assert_int_eq(2, lv_obj_count_children(lv_scr_act()), "Screen's children count after creation");
+
+ lv_test_print("Change the parent of the second object to the first");
+ lv_obj_set_parent(obj_child, obj_parent);
+ lv_test_assert_int_eq(1, lv_obj_count_children(lv_scr_act()), "Screen's children count after parent change");
+ lv_test_assert_int_eq(1, lv_obj_count_children(obj_parent), "Parent object's children count after parent change");
+ lv_test_assert_int_eq(0, lv_obj_count_children(obj_child), "Child object's children count after parent change");
+
+ lv_test_print("Remove the parent object");
+ lv_obj_del(obj_parent);
+ lv_test_assert_int_eq(0, lv_obj_count_children(lv_scr_act()), "Screen's children count after delete");
+}
+#endif
diff --git a/src/libs/lvgl/tests/lv_test_core/lv_test_obj.h b/src/libs/lvgl/tests/lv_test_core/lv_test_obj.h
new file mode 100644
index 00000000..60c22976
--- /dev/null
+++ b/src/libs/lvgl/tests/lv_test_core/lv_test_obj.h
@@ -0,0 +1,38 @@
+/**
+ * @file lv_test_obj.h
+ *
+ */
+
+#ifndef LV_TEST_OBJ_H
+#define LV_TEST_OBJ_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*********************
+ * INCLUDES
+ *********************/
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+void lv_test_obj(void);
+
+/**********************
+ * MACROS
+ **********************/
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*LV_TEST_OBJ_H*/
diff --git a/src/libs/lvgl/tests/lv_test_core/lv_test_style.c b/src/libs/lvgl/tests/lv_test_core/lv_test_style.c
new file mode 100644
index 00000000..f0ddf7b6
--- /dev/null
+++ b/src/libs/lvgl/tests/lv_test_core/lv_test_style.c
@@ -0,0 +1,624 @@
+/**
+ * @file lv_test_style.c
+ *
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+#include "../../lvgl.h"
+#include "../lv_test_assert.h"
+#include "lv_test_style.h"
+
+#if LV_BUILD_TEST
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+static void empty_style(void);
+static void add_remove_read_prop(void);
+static void cascade(void);
+static void copy(void);
+static void states(void);
+static void mem_leak(void);
+
+/**********************
+ * STATIC VARIABLES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+void lv_test_style(void)
+{
+ lv_test_print("");
+ lv_test_print("====================");
+ lv_test_print("Start lv_style tests");
+ lv_test_print("====================");
+
+ empty_style();
+ add_remove_read_prop();
+ cascade();
+ copy();
+ states();
+ mem_leak();
+}
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+static void empty_style(void)
+{
+ lv_test_print("");
+ lv_test_print("Test empty styles:");
+ lv_test_print("-----------------");
+
+ lv_style_list_t style_list;
+ lv_style_list_init(&style_list);
+
+ lv_res_t found;
+ lv_style_int_t value;
+ lv_opa_t opa;
+ const void * ptr;
+ lv_color_t color;
+
+ lv_test_print("Get a properties from an empty style");
+
+ found = _lv_style_list_get_int(&style_list, LV_STYLE_TEXT_LINE_SPACE, &value);
+ lv_test_assert_int_eq(LV_RES_INV, found, "Get an 'int' property");
+
+ found = _lv_style_list_get_opa(&style_list, LV_STYLE_BG_OPA, &opa);
+ lv_test_assert_int_eq(LV_RES_INV, found, "Get an 'opa' property");
+
+ found = _lv_style_list_get_ptr(&style_list, LV_STYLE_TEXT_FONT, &ptr);
+ lv_test_assert_int_eq(LV_RES_INV, found, "Get a 'ptr' property");
+
+ found = _lv_style_list_get_color(&style_list, LV_STYLE_BG_COLOR, &color);
+ lv_test_assert_int_eq(LV_RES_INV, found, "Get a 'color' property");
+}
+
+static void add_remove_read_prop(void)
+{
+ lv_test_print("");
+ lv_test_print("Add, remove and read properties:");
+ lv_test_print("--------------------------------");
+
+ lv_style_list_t style_list;
+ lv_style_list_init(&style_list);
+
+ lv_style_t style;
+ lv_style_init(&style);
+
+ _lv_style_list_add_style(&style_list, &style);
+
+ lv_res_t found;
+ lv_style_int_t value;
+ lv_opa_t opa;
+ const void * ptr;
+ lv_color_t color;
+
+ lv_test_print("Add an empty style and read properties");
+
+ found = _lv_style_list_get_int(&style_list, LV_STYLE_TEXT_LINE_SPACE, &value);
+ lv_test_assert_int_eq(LV_RES_INV, found, "Get a non existing 'int' property");
+
+ found = _lv_style_list_get_opa(&style_list, LV_STYLE_BG_OPA, &opa);
+ lv_test_assert_int_eq(LV_RES_INV, found, "Get a non existing 'opa' property");
+
+ found = _lv_style_list_get_ptr(&style_list, LV_STYLE_TEXT_FONT, &ptr);
+ lv_test_assert_int_eq(LV_RES_INV, found, "Get a non existing 'ptr' property");
+
+ found = _lv_style_list_get_color(&style_list, LV_STYLE_BG_COLOR, &color);
+ lv_test_assert_int_eq(LV_RES_INV, found, "Get a non existing 'color' property");
+
+ lv_test_print("Set properties and read back the values");
+ _lv_style_set_int(&style, LV_STYLE_TEXT_LINE_SPACE, 5);
+ _lv_style_set_opa(&style, LV_STYLE_BG_OPA, LV_OPA_50);
+ _lv_style_set_ptr(&style, LV_STYLE_TEXT_FONT, LV_THEME_DEFAULT_FONT_NORMAL);
+ _lv_style_set_color(&style, LV_STYLE_BG_COLOR, LV_COLOR_RED);
+
+ found = _lv_style_list_get_int(&style_list, LV_STYLE_TEXT_LINE_SPACE, &value);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get an existing 'int' property");
+ lv_test_assert_int_eq(5, value, "Get the value of an 'int' property");
+
+ found = _lv_style_list_get_opa(&style_list, LV_STYLE_BG_OPA, &opa);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get an existing 'opa' property");
+ lv_test_assert_int_eq(LV_OPA_50, opa, "Get the value of an 'opa' property");
+
+ found = _lv_style_list_get_ptr(&style_list, LV_STYLE_TEXT_FONT, &ptr);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get an existing 'ptr' property");
+ lv_test_assert_ptr_eq(LV_THEME_DEFAULT_FONT_NORMAL, ptr, "Get the value of a 'ptr' property");
+
+ found = _lv_style_list_get_color(&style_list, LV_STYLE_BG_COLOR, &color);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get an existing 'color' property");
+ lv_test_assert_color_eq(LV_COLOR_RED, color, "Get the value of a 'color' property");
+
+ lv_test_print("Reset the style");
+ lv_style_reset(&style);
+ found = _lv_style_list_get_int(&style_list, LV_STYLE_TEXT_LINE_SPACE, &value);
+ lv_test_assert_int_eq(LV_RES_INV, found, "Get an 'int' property from a reseted style");
+
+ found = _lv_style_list_get_opa(&style_list, LV_STYLE_BG_OPA, &opa);
+ lv_test_assert_int_eq(LV_RES_INV, found, "Get an 'opa' property from a reseted style");
+
+ found = _lv_style_list_get_ptr(&style_list, LV_STYLE_TEXT_FONT, &ptr);
+ lv_test_assert_int_eq(LV_RES_INV, found, "Get an 'ptr' property from a reseted style");
+
+ found = _lv_style_list_get_color(&style_list, LV_STYLE_BG_COLOR, &color);
+ lv_test_assert_int_eq(LV_RES_INV, found, "Get an 'color' property from a reseted style");
+
+ /*Clean-up*/
+ _lv_style_list_reset(&style_list);
+}
+
+static void cascade(void)
+{
+ lv_test_print("");
+ lv_test_print("Cascade style styles:");
+ lv_test_print("----------------------");
+
+ lv_style_list_t style_list;
+ lv_style_list_init(&style_list);
+
+ lv_style_t style_first;
+ lv_style_init(&style_first);
+ _lv_style_list_add_style(&style_list, &style_first);
+
+ lv_style_t style_second;
+ lv_style_init(&style_second);
+ _lv_style_list_add_style(&style_list, &style_second);
+
+ lv_res_t found;
+ lv_style_int_t value;
+ lv_opa_t opa;
+ const void * ptr;
+ lv_color_t color;
+
+ lv_test_print("Read properties set only in the firstly added style");
+
+ _lv_style_set_int(&style_first, LV_STYLE_TEXT_LINE_SPACE, 5);
+ _lv_style_set_opa(&style_first, LV_STYLE_BG_OPA, LV_OPA_50);
+ _lv_style_set_ptr(&style_first, LV_STYLE_TEXT_FONT, LV_THEME_DEFAULT_FONT_NORMAL);
+ _lv_style_set_color(&style_first, LV_STYLE_BG_COLOR, LV_COLOR_RED);
+
+ found = _lv_style_list_get_int(&style_list, LV_STYLE_TEXT_LINE_SPACE, &value);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get an 'int' property");
+ lv_test_assert_int_eq(5, value, "Get the value of an 'int' property");
+
+ found = _lv_style_list_get_opa(&style_list, LV_STYLE_BG_OPA, &opa);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get an 'opa' property");
+ lv_test_assert_int_eq(LV_OPA_50, opa, "Get the value of an 'opa' property");
+
+ found = _lv_style_list_get_ptr(&style_list, LV_STYLE_TEXT_FONT, &ptr);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get an 'ptr' property");
+ lv_test_assert_ptr_eq(LV_THEME_DEFAULT_FONT_NORMAL, ptr, "Get the value of a 'ptr' property");
+
+ found = _lv_style_list_get_color(&style_list, LV_STYLE_BG_COLOR, &color);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get an 'color' property");
+ lv_test_assert_color_eq(LV_COLOR_RED, color, "Get the value of a 'color' property");
+
+ lv_test_print("Overwrite the properties from the second style");
+
+ _lv_style_set_int(&style_second, LV_STYLE_TEXT_LINE_SPACE, 10);
+ _lv_style_set_opa(&style_second, LV_STYLE_BG_OPA, LV_OPA_60);
+ _lv_style_set_ptr(&style_second, LV_STYLE_TEXT_FONT, LV_THEME_DEFAULT_FONT_NORMAL + 1);
+ _lv_style_set_color(&style_second, LV_STYLE_BG_COLOR, LV_COLOR_BLUE);
+
+ found = _lv_style_list_get_int(&style_list, LV_STYLE_TEXT_LINE_SPACE, &value);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get an overwritten 'int' property");
+ lv_test_assert_int_eq(10, value, "Get the value of an overwritten 'int' property");
+
+ found = _lv_style_list_get_opa(&style_list, LV_STYLE_BG_OPA, &opa);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get an overwritten 'opa' property");
+ lv_test_assert_int_eq(LV_OPA_60, opa, "Get the value of an overwritten 'opa' property");
+
+ found = _lv_style_list_get_ptr(&style_list, LV_STYLE_TEXT_FONT, &ptr);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get an overwritten 'ptr' property");
+ lv_test_assert_ptr_eq(LV_THEME_DEFAULT_FONT_NORMAL + 1, ptr, "Get the value of an overwritten 'ptr' property");
+
+ found = _lv_style_list_get_color(&style_list, LV_STYLE_BG_COLOR, &color);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get an overwritten 'color' property");
+ lv_test_assert_color_eq(LV_COLOR_BLUE, color, "Get the value of an overwritten 'color' property");
+
+ lv_test_print("Overwrite the properties with the local style");
+ _lv_style_list_set_local_int(&style_list, LV_STYLE_TEXT_LINE_SPACE, 20);
+ _lv_style_list_set_local_opa(&style_list, LV_STYLE_BG_OPA, LV_OPA_70);
+ _lv_style_list_set_local_ptr(&style_list, LV_STYLE_TEXT_FONT, LV_THEME_DEFAULT_FONT_NORMAL + 2);
+ _lv_style_list_set_local_color(&style_list, LV_STYLE_BG_COLOR, LV_COLOR_LIME);
+
+ found = _lv_style_list_get_int(&style_list, LV_STYLE_TEXT_LINE_SPACE, &value);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get a local 'int' property");
+ lv_test_assert_int_eq(20, value, "Get the value of a local 'int' property");
+
+ found = _lv_style_list_get_opa(&style_list, LV_STYLE_BG_OPA, &opa);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get a local 'opa' property");
+ lv_test_assert_int_eq(LV_OPA_70, opa, "Get the value of a local 'opa' property");
+
+ found = _lv_style_list_get_ptr(&style_list, LV_STYLE_TEXT_FONT, &ptr);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get a local 'ptr' property");
+ lv_test_assert_ptr_eq(LV_THEME_DEFAULT_FONT_NORMAL + 2, ptr, "Get the value of a local'ptr' property");
+
+ found = _lv_style_list_get_color(&style_list, LV_STYLE_BG_COLOR, &color);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get a local 'color' property");
+ lv_test_assert_color_eq(LV_COLOR_LIME, color, "Get the value of a local'color' property");
+
+ /*Clean-up*/
+ _lv_style_list_reset(&style_list);
+}
+
+static void copy(void)
+{
+ lv_test_print("");
+ lv_test_print("Copy styles and style lists");
+ lv_test_print("---------------------------");
+
+ lv_test_print("Copy a style");
+ lv_style_t style_src;
+ lv_style_init(&style_src);
+ _lv_style_set_int(&style_src, LV_STYLE_TEXT_LINE_SPACE, 5);
+
+ lv_style_t style_dest;
+ lv_style_init(&style_dest);
+ lv_style_copy(&style_dest, &style_src);
+
+ int16_t weight;
+ lv_style_int_t value;
+
+ weight = _lv_style_get_int(&style_dest, LV_STYLE_TEXT_LINE_SPACE, &value);
+ lv_test_assert_int_eq(0, weight, "Get a copied property from a style");
+ lv_test_assert_int_eq(5, value, "Get the value of a copied from a property");
+
+ lv_test_print("Copy a style list");
+ lv_style_list_t list_src;
+ lv_style_list_init(&list_src);
+ _lv_style_list_add_style(&list_src, &style_src);
+ _lv_style_list_set_local_int(&list_src, LV_STYLE_LINE_DASH_WIDTH, 20);
+
+ lv_style_list_t list_dest;
+ lv_style_list_init(&list_dest);
+ lv_style_list_copy(&list_dest, &list_src);
+
+ lv_res_t found;
+ found = _lv_style_list_get_int(&list_dest, LV_STYLE_TEXT_LINE_SPACE, &value);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get a copied property from a list");
+ lv_test_assert_int_eq(5, value, "Get the value of a copied property from a list");
+ found = _lv_style_list_get_int(&list_dest, LV_STYLE_LINE_DASH_WIDTH, &value);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get a copied local property from a list");
+ lv_test_assert_int_eq(20, value, "Get the value of a copied local property from a list");
+
+ /*Clean up*/
+ _lv_style_list_reset(&list_dest);
+ _lv_style_list_reset(&list_src);
+
+ lv_style_reset(&style_dest);
+ lv_style_reset(&style_src);
+}
+
+static void states(void)
+{
+ lv_test_print("");
+ lv_test_print("Test style states:");
+ lv_test_print("------------------");
+
+ lv_style_list_t style_list;
+ lv_style_list_init(&style_list);
+
+ lv_style_t style_first;
+ lv_style_init(&style_first);
+ _lv_style_list_add_style(&style_list, &style_first);
+
+ lv_style_t style_second;
+ lv_style_init(&style_second);
+ _lv_style_list_add_style(&style_list, &style_second);
+
+ lv_test_print("Test state precedence in 1 style");
+ _lv_style_set_int(&style_first, LV_STYLE_TEXT_LINE_SPACE, 5);
+ _lv_style_set_int(&style_first, LV_STYLE_TEXT_LINE_SPACE | (LV_STATE_CHECKED) << LV_STYLE_STATE_POS, 6);
+ _lv_style_set_int(&style_first, LV_STYLE_TEXT_LINE_SPACE | (LV_STATE_PRESSED) << LV_STYLE_STATE_POS, 7);
+
+ lv_res_t found;
+ lv_style_int_t value;
+
+ found = _lv_style_list_get_int(&style_list, LV_STYLE_TEXT_LINE_SPACE, &value);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get an 'int' property in normal state");
+ lv_test_assert_int_eq(5, value, "Get the value of an 'int' property in normal state");
+
+ found = _lv_style_list_get_int(&style_list, LV_STYLE_TEXT_LINE_SPACE | (LV_STATE_CHECKED) << LV_STYLE_STATE_POS, &value);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get an 'int' property in checked state");
+ lv_test_assert_int_eq(6, value, "Get the value of an 'int' in checked state");
+
+ found = _lv_style_list_get_int(&style_list, LV_STYLE_TEXT_LINE_SPACE | (LV_STATE_PRESSED) << LV_STYLE_STATE_POS, &value);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get an 'int' property in pressed state");
+ lv_test_assert_int_eq(7, value, "Get the value of an 'int' in pressed state");
+
+ found = _lv_style_list_get_int(&style_list, LV_STYLE_TEXT_LINE_SPACE | (LV_STATE_HOVERED) << LV_STYLE_STATE_POS, &value);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get an 'int' property in hover (unspecified) state");
+ lv_test_assert_int_eq(5, value, "Get the value of an 'int' in hover (unspecified) state");
+
+ found = _lv_style_list_get_int(&style_list, LV_STYLE_TEXT_LINE_SPACE | (LV_STATE_CHECKED | LV_STATE_PRESSED | LV_STATE_HOVERED) << LV_STYLE_STATE_POS, &value);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get an 'int' property in checked pressed hovered state");
+ lv_test_assert_int_eq(7, value, "Get the value of an 'int' in checked pressed hovered state");
+
+ lv_test_print("Test state precedence in 1 style with combined states");
+ _lv_style_set_opa(&style_first, LV_STYLE_BG_OPA, LV_OPA_50);
+ _lv_style_set_opa(&style_first, LV_STYLE_BG_OPA | (LV_STATE_CHECKED | LV_STATE_PRESSED) << LV_STYLE_STATE_POS, LV_OPA_60);
+
+ lv_opa_t opa;
+ found = _lv_style_list_get_opa(&style_list, LV_STYLE_BG_OPA , &opa);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get an 'opa' property in normal state");
+ lv_test_assert_int_eq(LV_OPA_50, opa, "Get the value of an 'int' in normal state");
+
+ found = _lv_style_list_get_opa(&style_list, LV_STYLE_BG_OPA | (LV_STATE_CHECKED) << LV_STYLE_STATE_POS, &opa);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get an 'opa' property in checked (unspecified) state");
+ lv_test_assert_int_eq(LV_OPA_50, opa, "Get the value of an 'int' in checked (unspecified) state");
+
+ found = _lv_style_list_get_opa(&style_list, LV_STYLE_BG_OPA | (LV_STATE_CHECKED | LV_STATE_PRESSED) << LV_STYLE_STATE_POS, &opa);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get an 'opa' property in checked pressed state");
+ lv_test_assert_int_eq(LV_OPA_60, opa, "Get the value of an 'int' in checked pressed state");
+
+ found = _lv_style_list_get_opa(&style_list, LV_STYLE_BG_OPA | (LV_STATE_CHECKED | LV_STATE_PRESSED | LV_STATE_HOVERED) << LV_STYLE_STATE_POS, &opa);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get an 'opa' property in checked pressed hovered state");
+ lv_test_assert_int_eq(LV_OPA_60, opa, "Get the value of an 'int' in checked pressed hovered state");
+
+ lv_test_print("Test state precedence in 2 styles");
+ _lv_style_set_color(&style_first, LV_STYLE_BG_COLOR, LV_COLOR_YELLOW);
+ _lv_style_set_color(&style_first, LV_STYLE_BG_COLOR | (LV_STATE_HOVERED) << LV_STYLE_STATE_POS, LV_COLOR_RED);
+ _lv_style_set_color(&style_second, LV_STYLE_BG_COLOR | (LV_STATE_CHECKED) << LV_STYLE_STATE_POS, LV_COLOR_LIME);
+ _lv_style_set_color(&style_second, LV_STYLE_BG_COLOR | (LV_STATE_HOVERED | LV_STATE_PRESSED) << LV_STYLE_STATE_POS, LV_COLOR_BLUE);
+
+ lv_color_t color;
+
+ found = _lv_style_list_get_color(&style_list, LV_STYLE_BG_COLOR, &color);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get a 'color' property in normal state");
+ lv_test_assert_color_eq(LV_COLOR_YELLOW, color, "Get the value of a 'color' property in normal state");
+
+ found = _lv_style_list_get_color(&style_list, LV_STYLE_BG_COLOR | (LV_STATE_HOVERED) << LV_STYLE_STATE_POS, &color);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get a 'color' property in hovered state");
+ lv_test_assert_color_eq(LV_COLOR_RED, color, "Get the value of a 'color' in hovered state");
+
+ found = _lv_style_list_get_color(&style_list, LV_STYLE_BG_COLOR | (LV_STATE_CHECKED) << LV_STYLE_STATE_POS, &color);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get a 'color' property in checked state");
+ lv_test_assert_color_eq(LV_COLOR_LIME, color, "Get the value of a 'color' in checked state");
+
+ found = _lv_style_list_get_color(&style_list, LV_STYLE_BG_COLOR | (LV_STATE_HOVERED | LV_STATE_PRESSED) << LV_STYLE_STATE_POS, &color);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get a 'color' property in hover pressed state");
+ lv_test_assert_color_eq(LV_COLOR_BLUE, color, "Get the value of a 'color' in hover pressed state");
+
+ found = _lv_style_list_get_color(&style_list, LV_STYLE_BG_COLOR | (LV_STATE_EDITED) << LV_STYLE_STATE_POS, &color);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get a 'color' property in edit (unspecified) state");
+ lv_test_assert_color_eq(LV_COLOR_YELLOW, color, "Get the value of a 'color' in edit (unspecified) state");
+
+ found = _lv_style_list_get_color(&style_list, LV_STYLE_BG_COLOR | (LV_STATE_CHECKED | LV_STATE_EDITED) << LV_STYLE_STATE_POS, &color);
+ lv_test_assert_int_eq(LV_RES_OK, found, "Get a 'color' property in checked edit state");
+ lv_test_assert_color_eq(LV_COLOR_LIME, color, "Get the value of a 'color' in checked edit state");
+
+ /*Clean-up*/
+ _lv_style_list_reset(&style_list);
+}
+
+static void mem_leak(void)
+{
+
+ lv_test_print("");
+ lv_test_print("Test style set, add, remove memory leak");
+ lv_test_print("----------------------------------------");
+
+ lv_mem_monitor_t mon_start;
+ lv_mem_monitor_t mon_end;
+
+ lv_style_list_t style_list;
+ lv_style_list_init(&style_list);
+
+ lv_style_t style1;
+ lv_style_init(&style1);
+
+ lv_style_t style2;
+ lv_style_init(&style2);
+
+ lv_style_t style3;
+ lv_style_init(&style3);
+
+ uint32_t i;
+
+ lv_test_print("Set style properties");
+ lv_mem_monitor(&mon_start);
+ for(i = 0; i < 100; i++) {
+ _lv_style_set_color(&style2, LV_STYLE_LINE_COLOR, LV_COLOR_RED);
+
+ _lv_style_set_color(&style3, LV_STYLE_LINE_COLOR, LV_COLOR_RED);
+ _lv_style_set_color(&style3, LV_STYLE_LINE_COLOR | (LV_STATE_EDITED) << LV_STYLE_STATE_POS, LV_COLOR_BLUE);
+ _lv_style_set_color(&style3, LV_STYLE_LINE_COLOR, LV_COLOR_BLUE);
+ _lv_style_set_color(&style3, LV_STYLE_LINE_COLOR | (LV_STATE_EDITED | LV_STATE_FOCUSED) << LV_STYLE_STATE_POS, LV_COLOR_GREEN);
+
+ _lv_style_set_color(&style3, LV_STYLE_BG_COLOR, LV_COLOR_RED);
+
+ _lv_style_set_color(&style3, LV_STYLE_IMAGE_RECOLOR, LV_COLOR_RED);
+
+ lv_style_reset(&style1);
+ lv_style_reset(&style2);
+ lv_style_reset(&style3);
+
+ }
+
+ lv_test_assert_int_eq(LV_RES_OK, lv_mem_test(), "Memory integrity check");
+ lv_mem_defrag();
+ lv_mem_monitor(&mon_end);
+ lv_test_assert_int_lt(sizeof(void*) * 8, mon_start.free_size - mon_end.free_size, "Style memory leak");
+
+ lv_test_print("Use local style");
+ lv_mem_monitor(&mon_start);
+ for(i = 0; i < 100; i++) {
+ _lv_style_list_set_local_ptr(&style_list, LV_STYLE_TEXT_FONT | (LV_STATE_PRESSED) << LV_STYLE_STATE_POS, LV_THEME_DEFAULT_FONT_NORMAL);
+
+ _lv_style_list_reset(&style_list);
+
+ _lv_style_list_set_local_ptr(&style_list, LV_STYLE_TEXT_FONT | (LV_STATE_PRESSED) << LV_STYLE_STATE_POS, NULL);
+ _lv_style_list_set_local_ptr(&style_list, LV_STYLE_PATTERN_IMAGE, LV_SYMBOL_OK);
+ _lv_style_list_set_local_ptr(&style_list, LV_STYLE_PATTERN_IMAGE, LV_SYMBOL_OK);
+ _lv_style_list_set_local_ptr(&style_list, LV_STYLE_PATTERN_IMAGE, LV_SYMBOL_OK);
+ _lv_style_list_set_local_ptr(&style_list, LV_STYLE_PATTERN_IMAGE, LV_SYMBOL_OK);
+ _lv_style_list_set_local_ptr(&style_list, LV_STYLE_PATTERN_IMAGE, LV_SYMBOL_OK);
+ _lv_style_list_set_local_ptr(&style_list, LV_STYLE_PATTERN_IMAGE, LV_SYMBOL_OK);
+
+ _lv_style_list_reset(&style_list);
+ }
+
+ _lv_style_list_reset(&style_list);
+ lv_test_assert_int_eq(LV_RES_OK, lv_mem_test(), "Memory integrity check");
+ lv_mem_defrag();
+ lv_mem_monitor(&mon_end);
+ lv_test_assert_int_lt(sizeof(void*) * 8, mon_start.free_size - mon_end.free_size, "Style memory leak");
+
+ lv_test_print("Add styles");
+ lv_mem_monitor(&mon_start);
+ for(i = 0; i < 100; i++) {
+ _lv_style_set_color(&style1, LV_STYLE_LINE_COLOR, LV_COLOR_RED);
+ _lv_style_set_color(&style2, LV_STYLE_LINE_COLOR, LV_COLOR_RED);
+ _lv_style_set_color(&style3, LV_STYLE_LINE_COLOR, LV_COLOR_RED);
+
+ _lv_style_list_add_style(&style_list, &style1);
+ _lv_style_list_remove_style(&style_list, &style1);
+
+ _lv_style_list_add_style(&style_list, &style2);
+ _lv_style_list_add_style(&style_list, &style3);
+
+ _lv_style_list_remove_style(&style_list, &style2);
+ _lv_style_list_add_style(&style_list, &style1);
+
+ _lv_style_list_reset(&style_list);
+ lv_style_reset(&style1);
+ lv_style_reset(&style2);
+ lv_style_reset(&style3);
+ }
+
+ lv_test_assert_int_eq(LV_RES_OK, lv_mem_test(), "Memory integrity check");
+ lv_mem_defrag();
+ lv_mem_monitor(&mon_end);
+ lv_test_assert_int_lt(sizeof(void*) * 8, mon_start.free_size - mon_end.free_size, "Style memory leak");
+
+ lv_test_print("Add styles and use local style");
+ lv_mem_monitor(&mon_start);
+ for(i = 0; i < 100; i++) {
+ _lv_style_set_color(&style1, LV_STYLE_LINE_COLOR, LV_COLOR_RED);
+ _lv_style_set_color(&style2, LV_STYLE_LINE_COLOR, LV_COLOR_RED);
+ _lv_style_set_color(&style3, LV_STYLE_LINE_COLOR, LV_COLOR_RED);
+
+ if(i % 2 == 0) _lv_style_list_set_local_color(&style_list, LV_STYLE_LINE_COLOR, LV_COLOR_RED);
+
+ _lv_style_list_add_style(&style_list, &style1);
+ _lv_style_list_remove_style(&style_list, &style1);
+
+ _lv_style_list_add_style(&style_list, &style2);
+ _lv_style_list_add_style(&style_list, &style3);
+
+ _lv_style_list_remove_style(&style_list, &style2);
+ _lv_style_list_add_style(&style_list, &style1);
+
+ if(i % 2 != 0) _lv_style_list_set_local_color(&style_list, LV_STYLE_LINE_COLOR, LV_COLOR_RED);
+
+ _lv_style_list_reset(&style_list);
+ lv_style_reset(&style1);
+ lv_style_reset(&style2);
+ lv_style_reset(&style3);
+ }
+
+ lv_test_assert_int_eq(LV_RES_OK, lv_mem_test(), "Memory integrity check");
+ lv_mem_defrag();
+ lv_mem_monitor(&mon_end);
+ lv_test_assert_int_lt(sizeof(void*) * 8, mon_start.free_size - mon_end.free_size, "Style memory leak");
+
+ lv_test_print("Complex test");
+
+ lv_mem_monitor(&mon_start);
+
+ for(i = 0; i < 100; i++) {
+ if(i % 2 == 0) {
+ _lv_style_list_set_local_ptr(&style_list, LV_STYLE_PATTERN_IMAGE, LV_SYMBOL_CLOSE);
+ }
+
+ _lv_style_set_color(&style1, LV_STYLE_LINE_COLOR, LV_COLOR_RED);
+ _lv_style_set_color(&style1, LV_STYLE_LINE_COLOR | (LV_STATE_EDITED) << LV_STYLE_STATE_POS, LV_COLOR_BLUE);
+ _lv_style_set_color(&style1, LV_STYLE_LINE_COLOR, LV_COLOR_BLUE);
+ _lv_style_set_color(&style1, LV_STYLE_LINE_COLOR | (LV_STATE_EDITED | LV_STATE_FOCUSED) << LV_STYLE_STATE_POS, LV_COLOR_GREEN);
+
+ _lv_style_list_add_style(&style_list, &style1);
+
+ if(i % 4 == 0) {
+ _lv_style_list_set_local_ptr(&style_list, LV_STYLE_PATTERN_IMAGE, LV_SYMBOL_CLOSE);
+ }
+
+ _lv_style_list_remove_style(&style_list, &style1);
+
+ _lv_style_set_opa(&style2, LV_STYLE_TEXT_OPA, LV_OPA_10);
+ _lv_style_set_opa(&style2, LV_STYLE_TEXT_OPA, LV_OPA_20);
+ _lv_style_set_opa(&style2, LV_STYLE_TEXT_OPA, LV_OPA_30);
+ _lv_style_set_opa(&style2, LV_STYLE_TEXT_OPA, LV_OPA_40);
+ _lv_style_set_opa(&style2, LV_STYLE_TEXT_OPA, LV_OPA_50);
+ _lv_style_set_opa(&style2, LV_STYLE_TEXT_OPA, LV_OPA_60);
+
+ _lv_style_list_add_style(&style_list, &style2);
+
+ if(i % 8 == 0) {
+ _lv_style_list_set_local_ptr(&style_list, LV_STYLE_PATTERN_IMAGE, LV_SYMBOL_CLOSE);
+ }
+
+ _lv_style_list_add_style(&style_list, &style2);
+ _lv_style_list_add_style(&style_list, &style2);
+ _lv_style_list_add_style(&style_list, &style2);
+ _lv_style_list_add_style(&style_list, &style2);
+ _lv_style_list_remove_style(&style_list, &style2);
+
+ _lv_style_set_int(&style3, LV_STYLE_PAD_LEFT, 10);
+ _lv_style_set_int(&style3, LV_STYLE_PAD_RIGHT, 20);
+ _lv_style_set_int(&style3, LV_STYLE_PAD_LEFT, 11);
+ _lv_style_set_int(&style3, LV_STYLE_PAD_RIGHT, 21);
+ _lv_style_set_int(&style3, LV_STYLE_PAD_LEFT, 12);
+ _lv_style_set_int(&style3, LV_STYLE_PAD_RIGHT, 22);
+ _lv_style_set_int(&style3, LV_STYLE_PAD_LEFT, 12);
+ _lv_style_set_int(&style3, LV_STYLE_PAD_RIGHT, 23);
+
+ _lv_style_list_set_local_ptr(&style_list, LV_STYLE_TEXT_FONT | (LV_STATE_PRESSED) << LV_STYLE_STATE_POS, LV_THEME_DEFAULT_FONT_NORMAL);
+ _lv_style_list_set_local_ptr(&style_list, LV_STYLE_TEXT_FONT | (LV_STATE_PRESSED) << LV_STYLE_STATE_POS, NULL);
+ _lv_style_list_set_local_ptr(&style_list, LV_STYLE_PATTERN_IMAGE, LV_SYMBOL_OK);
+ _lv_style_list_set_local_ptr(&style_list, LV_STYLE_PATTERN_IMAGE, LV_SYMBOL_OK);
+ _lv_style_list_set_local_ptr(&style_list, LV_STYLE_PATTERN_IMAGE, LV_SYMBOL_OK);
+ _lv_style_list_set_local_ptr(&style_list, LV_STYLE_PATTERN_IMAGE, LV_SYMBOL_OK);
+ _lv_style_list_set_local_ptr(&style_list, LV_STYLE_PATTERN_IMAGE, LV_SYMBOL_OK);
+ _lv_style_list_set_local_ptr(&style_list, LV_STYLE_PATTERN_IMAGE, LV_SYMBOL_OK);
+
+ _lv_style_list_add_style(&style_list, &style3);
+ _lv_style_list_add_style(&style_list, &style2);
+ _lv_style_list_add_style(&style_list, &style1);
+
+ _lv_style_list_reset(&style_list);
+ lv_style_reset(&style1);
+ lv_style_reset(&style2);
+ lv_style_reset(&style3);
+
+ }
+
+ _lv_style_list_reset(&style_list);
+ lv_style_reset(&style1);
+ lv_style_reset(&style2);
+ lv_style_reset(&style3);
+
+ lv_test_assert_int_eq(LV_RES_OK, lv_mem_test(), "Memory integrity check");
+ lv_mem_defrag();
+ lv_mem_monitor(&mon_end);
+ lv_test_assert_int_lt(sizeof(void*) * 8, mon_start.free_size - mon_end.free_size, "Style memory leak");
+}
+#endif
diff --git a/src/libs/lvgl/tests/lv_test_core/lv_test_style.h b/src/libs/lvgl/tests/lv_test_core/lv_test_style.h
new file mode 100644
index 00000000..40112466
--- /dev/null
+++ b/src/libs/lvgl/tests/lv_test_core/lv_test_style.h
@@ -0,0 +1,38 @@
+/**
+ * @file lv_test_style.h
+ *
+ */
+
+#ifndef LV_TEST_STYLE_H
+#define LV_TEST_STYLE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*********************
+ * INCLUDES
+ *********************/
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+void lv_test_style(void);
+
+/**********************
+ * MACROS
+ **********************/
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*LV_TEST_STYLE_H*/
diff --git a/src/libs/lvgl/tests/lv_test_fonts/font_1.c b/src/libs/lvgl/tests/lv_test_fonts/font_1.c
new file mode 100644
index 00000000..6ac794b3
--- /dev/null
+++ b/src/libs/lvgl/tests/lv_test_fonts/font_1.c
@@ -0,0 +1,1378 @@
+#include "../../lvgl.h"
+
+/*******************************************************************************
+ * Size: 8 px
+ * Bpp: 4
+ * Opts: --bpp 4 --size 8 --font ../Montserrat-Medium.ttf -r 0x20-0x7F,0xB0,0x2022 --font ../FontAwesome5-Solid+Brands+Regular.woff -r 61441,61448,61451,61452,61452,61453,61457,61459,61461,61465,61468,61473,61478,61479,61480,61502,61512,61515,61516,61517,61521,61522,61523,61524,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,62087,62099,62212,62189,62810,63426,63650 --format lvgl -o ..\generated_fonts/font_1.c
+ ******************************************************************************/
+
+#ifndef FONT_1
+#define FONT_1 1
+#endif
+
+#if FONT_1
+
+/*-----------------
+ * BITMAPS
+ *----------------*/
+
+/*Store the image of the glyphs*/
+static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
+ /* U+20 " " */
+
+ /* U+21 "!" */
+ 0x58, 0xf, 0x11, 0x32, 0xb2, 0x80,
+
+ /* U+22 "\"" */
+ 0x73, 0x90, 0x10, 0x72, 0x90,
+
+ /* U+23 "#" */
+ 0x4, 0x52, 0x60, 0x4f, 0xc9, 0xc3, 0x43, 0x9c,
+ 0x83, 0x64, 0x8b, 0xa1, 0x65, 0x85, 0x81,
+
+ /* U+24 "$" */
+ 0x0, 0x40, 0x0, 0xad, 0x68, 0x97, 0x56, 0x89,
+ 0xf9, 0x60, 0x42, 0x17, 0x21, 0x69, 0x7e, 0x96,
+ 0x96, 0xcc,
+
+ /* U+25 "%" */
+ 0x58, 0x70, 0x63, 0xd, 0x8f, 0x30, 0x30, 0xa7,
+ 0xdb, 0x7, 0x12, 0x7d, 0xa1, 0x57, 0x6, 0xa2,
+ 0xfa, 0x40,
+
+ /* U+26 "&" */
+ 0x9, 0x98, 0x2, 0x2a, 0x30, 0x0, 0x97, 0xc1,
+ 0x4, 0xd6, 0xc4, 0x2, 0xe6, 0xc, 0xc4, 0x75,
+ 0x33, 0x10,
+
+ /* U+27 "'" */
+ 0x72, 0x0, 0x39, 0x0,
+
+ /* U+28 "(" */
+ 0x8, 0x20, 0x32, 0x11, 0x1, 0x10, 0x8, 0x80,
+ 0x22, 0x0, 0x19, 0x0,
+
+ /* U+29 ")" */
+ 0x73, 0x6a, 0x12, 0x7, 0x7, 0x12, 0x6a,
+
+ /* U+2A "*" */
+ 0x48, 0x40, 0x26, 0xc0, 0x7b, 0x90,
+
+ /* U+2B "+" */
+ 0x0, 0x10, 0x6, 0x80, 0x2, 0x4b, 0xc8, 0xa4,
+ 0xbc, 0x88,
+
+ /* U+2C "," */
+ 0x0, 0x3a, 0x82, 0x0,
+
+ /* U+2D "-" */
+ 0x5a, 0x60,
+
+ /* U+2E "." */
+ 0x0, 0x3a, 0x0,
+
+ /* U+2F "/" */
+ 0x0, 0xa8, 0x2, 0x22, 0x0, 0x55, 0x40, 0x8,
+ 0x88, 0x0, 0x4c, 0x0, 0xb5, 0xc0, 0x2, 0x2,
+ 0x0,
+
+ /* U+30 "0" */
+ 0xa, 0xbb, 0x13, 0x65, 0xd4, 0xfa, 0x80, 0xbf,
+ 0xa8, 0xb, 0xb6, 0x5d, 0x48,
+
+ /* U+31 "1" */
+ 0x9e, 0x29, 0x40, 0xf, 0xf0,
+
+ /* U+32 "2" */
+ 0x6a, 0xb9, 0x6, 0xab, 0x50, 0x9, 0x50, 0x1,
+ 0x5, 0x1, 0x2d, 0xb4, 0x60,
+
+ /* U+33 "3" */
+ 0x7a, 0xbe, 0x7, 0xa1, 0xc0, 0x2, 0x5, 0x80,
+ 0x12, 0x8c, 0xa2, 0xa8, 0x64,
+
+ /* U+34 "4" */
+ 0x0, 0x24, 0x80, 0x47, 0xd2, 0x0, 0x18, 0xa8,
+ 0x20, 0x90, 0xa5, 0x92, 0x8b, 0xa4, 0x82,
+
+ /* U+35 "5" */
+ 0x3d, 0xaa, 0x3, 0x5d, 0x50, 0x1, 0xb5, 0x0,
+ 0xb7, 0x42, 0x6f, 0x54, 0x33, 0x0,
+
+ /* U+36 "6" */
+ 0x9, 0xaa, 0x1b, 0x75, 0x50, 0xff, 0xd3, 0x45,
+ 0xe1, 0x31, 0x6, 0x19, 0x8e,
+
+ /* U+37 "7" */
+ 0xca, 0xa6, 0xb5, 0xd5, 0x5, 0x9c, 0x1a, 0xc0,
+ 0x2a, 0x70, 0x3, 0x58, 0x0,
+
+ /* U+38 "8" */
+ 0x1a, 0xa5, 0x92, 0x65, 0x7d, 0x25, 0xd4, 0xdc,
+ 0xca, 0xb2, 0x2f, 0xa6, 0xfc,
+
+ /* U+39 "9" */
+ 0x4a, 0x99, 0x7, 0xdc, 0x82, 0xc5, 0xc8, 0x69,
+ 0xd4, 0x86, 0x9d, 0x58, 0xa8,
+
+ /* U+3A ":" */
+ 0x74, 0x74, 0x0, 0x3a, 0x0,
+
+ /* U+3B ";" */
+ 0x74, 0x74, 0x0, 0x3a, 0x8b, 0xb1, 0x0,
+
+ /* U+3C "<" */
+ 0x0, 0x84, 0x0, 0x93, 0x20, 0x58, 0xa8, 0x5,
+ 0xd5, 0x91, 0x1, 0x69, 0x10,
+
+ /* U+3D "=" */
+ 0x49, 0x98, 0x52, 0x66, 0x14, 0x99, 0x84,
+
+ /* U+3E ">" */
+ 0x10, 0xc, 0x53, 0x4, 0x7, 0x3d, 0xe2, 0x92,
+ 0x5a, 0x29, 0x28, 0x0,
+
+ /* U+3F "?" */
+ 0x6a, 0xb9, 0x6, 0xab, 0x50, 0xa, 0xa0, 0x2,
+ 0x94, 0x0, 0x15, 0x80, 0x0,
+
+ /* U+40 "@" */
+ 0x3, 0x87, 0x74, 0x28, 0x15, 0xe6, 0xf2, 0x12,
+ 0xd4, 0x7d, 0x4b, 0x2e, 0x80, 0x7e, 0xa8, 0xf9,
+ 0x91, 0xc7, 0x15, 0xe0, 0xf6, 0x53, 0x0,
+
+ /* U+41 "A" */
+ 0x0, 0xae, 0x40, 0x31, 0x9c, 0x20, 0x14, 0x4c,
+ 0xa0, 0x0, 0x8d, 0x14, 0x82, 0x1f, 0x93, 0x2e,
+ 0x80,
+
+ /* U+42 "B" */
+ 0x2d, 0x99, 0x58, 0x83, 0xcc, 0x8d, 0x41, 0xe6,
+ 0x95, 0x40, 0xf3, 0x5d, 0x0, 0xf3, 0x28, 0xd0,
+
+ /* U+43 "C" */
+ 0x7, 0xba, 0xa1, 0x2f, 0x5d, 0x50, 0xb2, 0x80,
+ 0x36, 0x50, 0x6, 0x5e, 0xba, 0xa1, 0x0,
+
+ /* U+44 "D" */
+ 0x2e, 0xab, 0xb1, 0x80, 0x12, 0xae, 0xbc, 0x3,
+ 0x85, 0x48, 0x3, 0xa, 0x90, 0x25, 0x5d, 0x78,
+ 0x0,
+
+ /* U+45 "E" */
+ 0x2e, 0xaa, 0x40, 0x25, 0x52, 0x1, 0xea, 0x88,
+ 0xf, 0x54, 0x40, 0x4a, 0xa4, 0x80,
+
+ /* U+46 "F" */
+ 0x2e, 0xaa, 0x40, 0x25, 0x52, 0x1, 0x2a, 0x88,
+ 0x9, 0x54, 0x40, 0xe,
+
+ /* U+47 "G" */
+ 0x7, 0xba, 0xa1, 0x2f, 0x5d, 0x50, 0xb2, 0x80,
+ 0x4, 0x79, 0x40, 0x6, 0x45, 0xeb, 0xae, 0x40,
+
+ /* U+48 "H" */
+ 0x2a, 0x0, 0x15, 0x0, 0x7c, 0x95, 0x49, 0x0,
+ 0x25, 0x52, 0x40, 0x3e,
+
+ /* U+49 "I" */
+ 0x2a, 0x0, 0xfc,
+
+ /* U+4A "J" */
+ 0x5, 0xad, 0x50, 0x5a, 0xa0, 0x7, 0xf7, 0x88,
+ 0x4d, 0x1a, 0x0,
+
+ /* U+4B "K" */
+ 0x2a, 0x1, 0xa2, 0x0, 0xd, 0x41, 0x3, 0x6e,
+ 0x10, 0x0, 0x77, 0x94, 0x0, 0xe3, 0x3e, 0x80,
+
+ /* U+4C "L" */
+ 0x2a, 0x0, 0xff, 0xe3, 0xa5, 0x51, 0xc0,
+
+ /* U+4D "M" */
+ 0x2c, 0x0, 0x8f, 0x0, 0x5c, 0x1, 0x0, 0x4,
+ 0xe2, 0x8f, 0x0, 0xa2, 0x45, 0x0, 0x21, 0x89,
+ 0x0, 0x0,
+
+ /* U+4E "N" */
+ 0x2d, 0x10, 0x2a, 0x1, 0xa0, 0xc, 0xdf, 0x60,
+ 0x19, 0x3b, 0x80, 0x19, 0x6c, 0x0,
+
+ /* U+4F "O" */
+ 0x7, 0xbb, 0x8c, 0x17, 0xae, 0xd5, 0xe3, 0x94,
+ 0x0, 0x14, 0x5c, 0xa0, 0x0, 0xa2, 0xab, 0xae,
+ 0xd5, 0xe2,
+
+ /* U+50 "P" */
+ 0x2e, 0xaa, 0x48, 0x1, 0x2a, 0x82, 0x80, 0x18,
+ 0x9c, 0x12, 0xa9, 0x86, 0x9, 0x54, 0x60,
+
+ /* U+51 "Q" */
+ 0x7, 0xbb, 0x8c, 0x17, 0xae, 0xd5, 0xe3, 0x94,
+ 0x0, 0x14, 0x5c, 0xa0, 0x9, 0x15, 0x5d, 0x77,
+ 0x78, 0x83, 0xdc, 0x15, 0x18,
+
+ /* U+52 "R" */
+ 0x2e, 0xaa, 0x48, 0x1, 0x2a, 0x82, 0x80, 0x18,
+ 0x9c, 0x1e, 0xb0, 0x8c, 0x1e, 0xb4, 0x84,
+
+ /* U+53 "S" */
+ 0x2a, 0xa8, 0x97, 0x2a, 0x84, 0xfd, 0x30, 0x21,
+ 0x13, 0x90, 0xb5, 0x4e, 0xa0,
+
+ /* U+54 "T" */
+ 0xaa, 0x75, 0x35, 0x50, 0xa9, 0x80, 0x3f, 0xf8,
+ 0x60,
+
+ /* U+55 "U" */
+ 0x39, 0x0, 0x24, 0x0, 0x7f, 0xf0, 0x9, 0x40,
+ 0x5, 0xc3, 0x57, 0x58, 0xc0,
+
+ /* U+56 "V" */
+ 0xb, 0x10, 0x2, 0xb8, 0x7c, 0x0, 0x39, 0xc1,
+ 0x14, 0x57, 0x0, 0x28, 0x84, 0xb8, 0x4, 0x8b,
+ 0x60, 0x0,
+
+ /* U+57 "W" */
+ 0x94, 0x0, 0x78, 0x81, 0xcd, 0x70, 0x33, 0x41,
+ 0x54, 0x36, 0xd, 0x9c, 0x2, 0x30, 0xb9, 0x30,
+ 0x39, 0xc0, 0x3, 0x32, 0x82, 0x99, 0x80,
+
+ /* U+58 "X" */
+ 0x58, 0x2, 0xa0, 0x50, 0x79, 0xb0, 0x4, 0x43,
+ 0x84, 0x1, 0x57, 0xc2, 0xf, 0x89, 0x34, 0x0,
+
+ /* U+59 "Y" */
+ 0xa, 0x20, 0x5, 0x80, 0x2e, 0x42, 0x60, 0x0,
+ 0x3d, 0x62, 0x60, 0x12, 0xb4, 0x0, 0x70, 0x80,
+ 0x40,
+
+ /* U+5A "Z" */
+ 0x6a, 0xa6, 0x68, 0x35, 0x5b, 0xe0, 0x5, 0x52,
+ 0x20, 0xb, 0x82, 0x0, 0x43, 0x4d, 0x50, 0x0,
+
+ /* U+5B "[" */
+ 0x2d, 0x40, 0x44, 0x0, 0x7f, 0xf0, 0x51, 0x0,
+
+ /* U+5C "\\" */
+ 0x19, 0x0, 0x84, 0xc0, 0x37, 0xa8, 0x4, 0xbe,
+ 0x1, 0x8c, 0x40, 0x2a, 0x60, 0x8, 0xf4, 0x0,
+
+ /* U+5D "]" */
+ 0x8c, 0x80, 0xf, 0xe8, 0x0,
+
+ /* U+5E "^" */
+ 0x3, 0xc0, 0xa, 0xa1, 0x40, 0xb9, 0x30, 0x0,
+
+ /* U+5F "_" */
+ 0x77, 0xc0,
+
+ /* U+60 "`" */
+ 0x6, 0x60,
+
+ /* U+61 "a" */
+ 0x29, 0x94, 0x0, 0x42, 0xa1, 0x5b, 0x2, 0x2b,
+ 0xf9, 0x10,
+
+ /* U+62 "b" */
+ 0x48, 0x0, 0xff, 0x92, 0xad, 0x40, 0xd, 0x57,
+ 0x20, 0x1f, 0x9a, 0xa9, 0x20,
+
+ /* U+63 "c" */
+ 0x1a, 0xa8, 0x67, 0xaa, 0x82, 0x1, 0xd3, 0xd5,
+ 0x41,
+
+ /* U+64 "d" */
+ 0x0, 0xd6, 0x1, 0xc3, 0x55, 0x4, 0x75, 0x48,
+ 0x6, 0x10, 0x8e, 0x9b, 0x0,
+
+ /* U+65 "e" */
+ 0x19, 0x98, 0x60, 0x4, 0x4e, 0x39, 0x12, 0xd3,
+ 0xf5, 0x41,
+
+ /* U+66 "f" */
+ 0xa, 0xa0, 0x10, 0x50, 0x5b, 0xb8, 0x2d, 0x1c,
+ 0x3, 0xf8,
+
+ /* U+67 "g" */
+ 0x1a, 0x99, 0x5c, 0x74, 0xc3, 0x80, 0x46, 0x11,
+ 0xd5, 0xe, 0x4, 0x61, 0x0,
+
+ /* U+68 "h" */
+ 0x48, 0x0, 0xfe, 0x49, 0xb4, 0x5, 0x9a, 0xf0,
+ 0x10, 0x17, 0x0, 0xe0,
+
+ /* U+69 "i" */
+ 0x37, 0x37, 0x48, 0x0, 0xf0,
+
+ /* U+6A "j" */
+ 0x3, 0x70, 0x37, 0x3, 0x80, 0xf, 0xe6, 0x8c,
+
+ /* U+6B "k" */
+ 0x48, 0x0, 0xff, 0xa9, 0x0, 0x72, 0x50, 0x12,
+ 0xa4, 0x0, 0xad, 0xae,
+
+ /* U+6C "l" */
+ 0x48, 0x0, 0xff, 0x0,
+
+ /* U+6D "m" */
+ 0x4c, 0x9b, 0x89, 0xb4, 0x5, 0x98, 0x39, 0xbf,
+ 0x1, 0x1, 0x10, 0x1, 0xc0, 0x3f, 0x0,
+
+ /* U+6E "n" */
+ 0x4c, 0x9b, 0x40, 0x59, 0xaf, 0x1, 0x1, 0x70,
+ 0xe,
+
+ /* U+6F "o" */
+ 0x1a, 0xa8, 0x67, 0xaa, 0x6c, 0x3, 0xa7, 0xaa,
+ 0x6c,
+
+ /* U+70 "p" */
+ 0x4c, 0xab, 0x50, 0x3, 0x55, 0xc8, 0x7, 0xe6,
+ 0xaa, 0x48, 0x1, 0x2a, 0x8a, 0x0,
+
+ /* U+71 "q" */
+ 0x1a, 0xa4, 0xdc, 0x75, 0x50, 0x3, 0xd1, 0xd5,
+ 0x40, 0x1a, 0xa4, 0x80,
+
+ /* U+72 "r" */
+ 0x4b, 0xa0, 0x0, 0xd0, 0x0, 0x80, 0x3c,
+
+ /* U+73 "s" */
+ 0x5b, 0x95, 0xdc, 0xa5, 0x84, 0x44, 0xbc, 0xef,
+ 0x80,
+
+ /* U+74 "t" */
+ 0x29, 0x0, 0x5a, 0x38, 0x5a, 0x38, 0x7, 0x11,
+ 0x24, 0x0,
+
+ /* U+75 "u" */
+ 0x57, 0x1, 0xb0, 0xe, 0x1f, 0x2, 0x4, 0x29,
+ 0xa0,
+
+ /* U+76 "v" */
+ 0xb, 0x0, 0x42, 0x7, 0x38, 0x1a, 0x2, 0xe3,
+ 0xf0, 0x5, 0xb4, 0xa0,
+
+ /* U+77 "w" */
+ 0xb0, 0x7, 0x10, 0x50, 0x72, 0xa9, 0xe8, 0x88,
+ 0xb, 0xfe, 0x92, 0xaa, 0x0, 0xc, 0x83, 0xc,
+ 0x80,
+
+ /* U+78 "x" */
+ 0x67, 0x1b, 0x6, 0xea, 0xa0, 0x0, 0xc0, 0xc1,
+ 0xfe, 0xa4, 0x0,
+
+ /* U+79 "y" */
+ 0xb, 0x10, 0x83, 0x8, 0x91, 0x23, 0x3, 0x2b,
+ 0x90, 0xb, 0x80, 0xc0, 0x15, 0xf0, 0x0,
+
+ /* U+7A "z" */
+ 0x59, 0xbb, 0x2c, 0x5, 0x5, 0x48, 0xcb, 0xdc,
+ 0x0,
+
+ /* U+7B "{" */
+ 0xa, 0x60, 0x66, 0x0, 0x4a, 0xe0, 0xae, 0x1,
+ 0xcc, 0xc0,
+
+ /* U+7C "|" */
+ 0x28, 0x0, 0xff, 0xe0, 0x0,
+
+ /* U+7D "}" */
+ 0x97, 0x9, 0xc0, 0xe, 0x63, 0x6, 0x30, 0xa,
+ 0x70, 0x0,
+
+ /* U+7E "~" */
+ 0x29, 0x35, 0x17, 0x95, 0xd1,
+
+ /* U+B0 "°" */
+ 0x26, 0x45, 0x63, 0x57, 0x20,
+
+ /* U+2022 "•" */
+ 0x0, 0x2e, 0xaf, 0x80,
+
+ /* U+F001 "" */
+ 0x0, 0xff, 0xe0, 0x13, 0x5f, 0x0, 0x23, 0x75,
+ 0x28, 0x20, 0x7, 0x21, 0x6a, 0x0, 0xd9, 0xd2,
+ 0xa0, 0x18, 0xc0, 0x3f, 0xab, 0xc2, 0xbc, 0x3,
+ 0x94, 0x0, 0xa0, 0xa, 0xfa,
+
+ /* U+F008 "" */
+ 0xbd, 0xcc, 0xba, 0xac, 0xdb, 0x32, 0x9f, 0x34,
+ 0x66, 0xdb, 0xe8, 0x1, 0xf9, 0x19, 0xb6, 0xfa,
+ 0x1b, 0x66, 0x53, 0xe6,
+
+ /* U+F00B "" */
+ 0x34, 0x14, 0x4c, 0x79, 0x6d, 0x77, 0xb1, 0x50,
+ 0xd1, 0x32, 0x8b, 0x8b, 0xbe, 0x14, 0x32, 0x33,
+ 0xc9, 0x30, 0xd0, 0xef, 0x4c, 0xa1, 0xa1, 0xde,
+ 0x95, 0x43, 0x44, 0xca,
+
+ /* U+F00C "" */
+ 0x0, 0xf4, 0xd0, 0x7, 0x4b, 0x5, 0x48, 0x2,
+ 0x59, 0x68, 0x1a, 0x64, 0xcb, 0x41, 0x4a, 0xcc,
+ 0x5a, 0x0, 0xa9, 0x99, 0x40, 0x10,
+
+ /* U+F00D "" */
+ 0x63, 0x0, 0x41, 0x56, 0x25, 0x3b, 0x69, 0x5a,
+ 0xca, 0xb, 0x80, 0x14, 0x29, 0x60, 0xb0, 0xc2,
+ 0x5f, 0x10, 0x0,
+
+ /* U+F011 "" */
+ 0x0, 0xb1, 0x44, 0x0, 0x3a, 0xe2, 0x7e, 0xe1,
+ 0x20, 0xe0, 0xb, 0x81, 0x4a, 0x0, 0x94, 0x5c,
+ 0x40, 0x16, 0x80, 0x12, 0x50, 0x31, 0x20, 0xa4,
+ 0x1e, 0x3c, 0x5b, 0x90, 0xfa, 0xd2, 0x4c, 0x0,
+
+ /* U+F013 "" */
+ 0x0, 0xb3, 0x0, 0x10, 0xc4, 0xc, 0xd1, 0x1,
+ 0x97, 0x70, 0x89, 0xdd, 0x34, 0x3, 0xdc, 0x10,
+ 0xa0, 0xf, 0xd4, 0x3, 0xdc, 0x10, 0xa9, 0x77,
+ 0x8, 0x9d, 0xd2, 0x31, 0x3, 0x34, 0x40, 0x40,
+
+ /* U+F015 "" */
+ 0x0, 0xc6, 0x4, 0x40, 0xd, 0x59, 0x51, 0x0,
+ 0x0, 0xe8, 0x48, 0x28, 0x0, 0xfd, 0x46, 0x45,
+ 0xd0, 0xe2, 0xa, 0x80, 0x8b, 0x10, 0xbe, 0x20,
+ 0x40, 0x2e, 0xb0, 0x8, 0xec, 0xc0, 0x36, 0xa2,
+ 0x1, 0x11, 0xa0,
+
+ /* U+F019 "" */
+ 0x0, 0xbf, 0xc0, 0x1f, 0xfc, 0x87, 0xf0, 0x7,
+ 0xb8, 0x1, 0xd8, 0x0, 0xce, 0xf, 0x1c, 0xaa,
+ 0xe8, 0x78, 0x78, 0x11, 0x43, 0xc0, 0x4, 0x89,
+ 0x80,
+
+ /* U+F01C "" */
+ 0x5, 0xff, 0xe5, 0x1, 0xbc, 0xff, 0xb2, 0xc6,
+ 0xd8, 0xc0, 0x23, 0x6b, 0x57, 0xf6, 0x6, 0xf7,
+ 0x50, 0xa, 0x7e, 0x40, 0x22, 0x0, 0xf8, 0x80,
+
+ /* U+F021 "" */
+ 0x0, 0xf8, 0xc0, 0xaf, 0xfd, 0x67, 0x85, 0x85,
+ 0xdc, 0x3c, 0xb, 0x49, 0x17, 0x40, 0x5, 0x58,
+ 0x1, 0x22, 0xec, 0xea, 0x84, 0x44, 0x57, 0xbb,
+ 0x42, 0x0, 0x2a, 0x80, 0x2c, 0x6b, 0x6d, 0x1,
+ 0x85, 0x32, 0x3c, 0x1c, 0x28, 0xcc, 0x40, 0x80,
+
+ /* U+F026 "" */
+ 0x0, 0xa4, 0xd3, 0x1b, 0x2c, 0xc0, 0x39, 0x50,
+ 0x1, 0x57, 0x60, 0x9, 0x38,
+
+ /* U+F027 "" */
+ 0x0, 0xa4, 0x0, 0x69, 0x8c, 0x3, 0x96, 0x60,
+ 0x34, 0x1, 0xe4, 0x40, 0x0, 0x6a, 0xee, 0x0,
+ 0x8, 0x1, 0x38, 0x0,
+
+ /* U+F028 "" */
+ 0x0, 0xf2, 0xa0, 0x6, 0x90, 0x26, 0xf3, 0x32,
+ 0x63, 0x0, 0x3e, 0x21, 0x96, 0x60, 0x33, 0x25,
+ 0x70, 0xf, 0xe5, 0x40, 0x0, 0xcc, 0x95, 0xaa,
+ 0xec, 0x1, 0x7c, 0x48, 0x1, 0x38, 0x9, 0xbc,
+ 0xc0,
+
+ /* U+F03E "" */
+ 0xdf, 0xff, 0x69, 0x7c, 0x0, 0x62, 0x8, 0xb0,
+ 0x4e, 0x40, 0x1, 0xca, 0x58, 0xd8, 0x2, 0xd6,
+ 0xc0, 0x31, 0x7f, 0xf8, 0x80,
+
+ /* U+F048 "" */
+ 0x40, 0x8, 0xac, 0x82, 0x34, 0x1, 0x2e, 0x0,
+ 0xe6, 0x0, 0x8c, 0x3, 0x50, 0x80, 0x4f, 0x82,
+ 0x8, 0x65, 0xec,
+
+ /* U+F04B "" */
+ 0x0, 0xfb, 0x68, 0x40, 0x31, 0x2f, 0x38, 0x7,
+ 0xa3, 0x50, 0x3, 0x8a, 0xe8, 0x3, 0xfe, 0x2b,
+ 0xa0, 0xa, 0x35, 0x0, 0x97, 0x9c, 0x2, 0xda,
+ 0x10, 0xc,
+
+ /* U+F04C "" */
+ 0x9b, 0x90, 0x9b, 0x96, 0x46, 0x6, 0x46, 0x0,
+ 0xff, 0xeb, 0xed, 0xe8, 0x6d, 0xe8,
+
+ /* U+F04D "" */
+ 0x24, 0x4e, 0x2d, 0xbb, 0xed, 0x0, 0xff, 0xeb,
+ 0xba, 0x27, 0x38,
+
+ /* U+F051 "" */
+ 0x20, 0x9, 0x36, 0x0, 0xac, 0x1e, 0x40, 0x33,
+ 0x70, 0x6, 0x30, 0x8, 0x68, 0x0, 0x58, 0xe0,
+ 0xd8, 0x46, 0x80,
+
+ /* U+F052 "" */
+ 0x0, 0xc4, 0x1, 0xf4, 0x6c, 0x0, 0x73, 0xb8,
+ 0x1d, 0xc0, 0x12, 0xc0, 0x5, 0xa, 0x0, 0xb0,
+ 0xe, 0xb0, 0x5, 0xbb, 0xf5, 0x80, 0x29, 0xdf,
+ 0xa8, 0x0, 0xa8, 0x9c, 0xa0,
+
+ /* U+F053 "" */
+ 0x0, 0x98, 0x80, 0xf, 0x2c, 0xf, 0x14, 0x8b,
+ 0x12, 0xa0, 0x83, 0xa0, 0x1, 0xc5, 0xb0, 0x1,
+ 0x62, 0xb0, 0x0, 0xbd, 0x80,
+
+ /* U+F054 "" */
+ 0x26, 0x0, 0x9a, 0x5c, 0x0, 0x95, 0xe, 0x0,
+ 0x59, 0x85, 0x0, 0x68, 0xa0, 0x5a, 0xe0, 0xb2,
+ 0xe1, 0x3, 0x79, 0x0, 0x0,
+
+ /* U+F067 "" */
+ 0x0, 0x90, 0x3, 0x8e, 0xcc, 0x3, 0x38, 0x38,
+ 0x1, 0xe3, 0x83, 0xa1, 0xe5, 0xd4, 0x15, 0xe7,
+ 0xbe, 0xc2, 0xff, 0x80, 0x3f, 0x95, 0x14, 0x0,
+
+ /* U+F068 "" */
+ 0x78, 0x8e, 0x79, 0x77, 0xe9,
+
+ /* U+F06E "" */
+ 0x0, 0x46, 0x65, 0x0, 0x1, 0xd5, 0xda, 0xf5,
+ 0xd1, 0xd2, 0x84, 0x8e, 0x82, 0xd7, 0x0, 0x40,
+ 0x80, 0x6a, 0x28, 0xe8, 0xe8, 0x2d, 0x1d, 0x5e,
+ 0xbf, 0x5c, 0x10,
+
+ /* U+F070 "" */
+ 0x1d, 0x30, 0xf, 0xc3, 0x1b, 0x19, 0x95, 0x10,
+ 0x4, 0xb8, 0xaf, 0x10, 0x3d, 0x40, 0x3, 0xc6,
+ 0xd, 0xda, 0x82, 0x84, 0x0, 0xb7, 0x52, 0x8,
+ 0x2, 0x0, 0x75, 0x51, 0xb6, 0x48, 0x58, 0x80,
+ 0x2a, 0x7f, 0x13, 0xd3, 0xc4, 0x2, 0x6c, 0xc3,
+ 0x8d, 0x9c, 0x0,
+
+ /* U+F071 "" */
+ 0x0, 0xc7, 0xc6, 0x1, 0xfb, 0xc7, 0xc0, 0x3e,
+ 0x63, 0x39, 0x80, 0x3d, 0x5, 0x85, 0x0, 0x1d,
+ 0x2, 0x60, 0x63, 0x0, 0x11, 0x38, 0xb, 0x8,
+ 0x39, 0x0, 0x24, 0x0, 0x28, 0x20, 0x8, 0x0,
+ 0x30, 0x0, 0x74, 0x40, 0xe, 0x0,
+
+ /* U+F074 "" */
+ 0x0, 0xf1, 0x2, 0x20, 0x2, 0x4d, 0x5a, 0xbb,
+ 0xe, 0x58, 0x47, 0x70, 0xf4, 0x78, 0xf0, 0x0,
+ 0xa0, 0xa0, 0x17, 0x70, 0x74, 0xf8, 0xf2, 0xaf,
+ 0x6, 0xec, 0x10, 0x88, 0x0, 0x93, 0x54,
+
+ /* U+F077 "" */
+ 0x0, 0xfe, 0x4e, 0x40, 0x9, 0x2c, 0xad, 0x1,
+ 0x2d, 0xf1, 0xed, 0x3d, 0xe0, 0x21, 0xfe, 0xe0,
+ 0x2, 0x8b,
+
+ /* U+F078 "" */
+ 0x0, 0xfa, 0xe0, 0x2, 0x8b, 0xf7, 0x80, 0x87,
+ 0xf4, 0xb7, 0xc7, 0xb4, 0x4, 0xb2, 0xb4, 0x0,
+ 0x93, 0x90, 0x0,
+
+ /* U+F079 "" */
+ 0x0, 0x4a, 0xa, 0x26, 0x0, 0xad, 0xae, 0x7f,
+ 0xeb, 0x10, 0x1, 0xa4, 0x75, 0xdc, 0x20, 0x14,
+ 0x1, 0xb0, 0x0, 0x40, 0xc0, 0x31, 0xa2, 0x17,
+ 0xc7, 0xd4, 0x1, 0x98, 0xff, 0x6d, 0x82, 0xa8,
+ 0x0, 0xf7, 0x74, 0x2e, 0xc0, 0x0,
+
+ /* U+F07B "" */
+ 0xdf, 0xf5, 0x80, 0x62, 0x0, 0x27, 0xfd, 0xa0,
+ 0x1f, 0x10, 0x7, 0xff, 0x10, 0x80, 0x3c, 0x40,
+
+ /* U+F093 "" */
+ 0x0, 0xa6, 0x40, 0x1d, 0x2c, 0xc9, 0x0, 0x9d,
+ 0x80, 0xc, 0xe0, 0x7, 0xf0, 0x7, 0xb8, 0x7,
+ 0xf3, 0xc2, 0x0, 0x12, 0x1e, 0x1e, 0x9d, 0xd4,
+ 0xf0, 0x0, 0x17, 0x72, 0xa0, 0x0,
+
+ /* U+F095 "" */
+ 0x0, 0xff, 0xe1, 0xbf, 0x50, 0x7, 0xa4, 0x50,
+ 0x3, 0xc4, 0x4, 0x1, 0xe8, 0xb, 0x0, 0xe1,
+ 0x91, 0x70, 0x7d, 0xc4, 0xc2, 0xd0, 0x4, 0x91,
+ 0xd9, 0xe1, 0x80, 0x10, 0x4e, 0x38, 0xc0, 0x0,
+
+ /* U+F0C4 "" */
+ 0x3, 0x0, 0xf6, 0x76, 0x1, 0x6e, 0x1, 0x51,
+ 0x96, 0x1f, 0x5, 0x60, 0x68, 0x61, 0x2, 0x78,
+ 0x1, 0x8, 0x1, 0x92, 0xc, 0xb2, 0x0, 0x2a,
+ 0x19, 0x86, 0x90, 0xad, 0xa0, 0x7b, 0xc0,
+
+ /* U+F0C5 "" */
+ 0x0, 0x7f, 0xce, 0x8e, 0x80, 0x11, 0x9a, 0x30,
+ 0x2, 0xb8, 0x0, 0xff, 0xe5, 0x1c, 0x3b, 0xd0,
+ 0x9, 0xe, 0xe8, 0x70,
+
+ /* U+F0C7 "" */
+ 0x24, 0x4c, 0x21, 0xbf, 0xfc, 0x41, 0x77, 0x87,
+ 0xc1, 0x13, 0x1, 0x5, 0xda, 0x2c, 0x3, 0x36,
+ 0x30, 0x6, 0x45, 0x40, 0x3, 0xa3, 0x73, 0x23,
+ 0x80,
+
+ /* U+F0E7 "" */
+ 0x7, 0xff, 0x30, 0x5, 0xa0, 0x4, 0x0, 0x98,
+ 0x1, 0x4e, 0x0, 0x20, 0x3, 0xe0, 0x2, 0x5c,
+ 0x42, 0x40, 0xf, 0x2, 0xe4, 0x1, 0x18, 0xc0,
+ 0x6, 0x5b, 0x0, 0x80,
+
+ /* U+F0EA "" */
+ 0x79, 0xb9, 0x70, 0x4, 0x33, 0xb4, 0x0, 0x6a,
+ 0x77, 0x18, 0x5, 0xce, 0xeb, 0xb0, 0x7, 0x8c,
+ 0x3, 0x9d, 0xd0, 0xe0, 0x1c, 0xf1, 0xe0, 0x18,
+
+ /* U+F0F3 "" */
+ 0x0, 0xb4, 0x3, 0x27, 0x17, 0x18, 0x2, 0x44,
+ 0x7, 0x80, 0x4, 0x1, 0x10, 0x18, 0x7, 0x1c,
+ 0x0, 0x74, 0x63, 0xbf, 0x6b, 0xc6, 0x3e, 0x43,
+ 0x0,
+
+ /* U+F11C "" */
+ 0xdf, 0xff, 0xb4, 0xb9, 0xdd, 0xce, 0xee, 0x20,
+ 0xf2, 0x26, 0x91, 0x3c, 0x3, 0xfe, 0xf2, 0xac,
+ 0xa2, 0xf0, 0x2e, 0x7f, 0xf9, 0xf8, 0x80,
+
+ /* U+F124 "" */
+ 0x0, 0xff, 0xe2, 0x25, 0xe0, 0x7, 0x2e, 0x5a,
+ 0x38, 0x4, 0xdd, 0x46, 0x0, 0xf0, 0x6, 0xc8,
+ 0x80, 0x46, 0x80, 0xb, 0x77, 0x18, 0x2, 0x40,
+ 0x26, 0x88, 0x20, 0xa, 0x80, 0x7e, 0x80, 0xf,
+ 0xb4, 0x98, 0x3, 0xe5, 0xd0, 0xc,
+
+ /* U+F15B "" */
+ 0xff, 0xa2, 0xc0, 0x39, 0x2c, 0x2, 0x47, 0x30,
+ 0x8, 0xdd, 0xc0, 0x1f, 0xfc, 0xc0,
+
+ /* U+F1EB "" */
+ 0x0, 0x91, 0xdc, 0x80, 0x1a, 0x7e, 0xef, 0x7c,
+ 0x86, 0x25, 0xfe, 0x63, 0xed, 0x33, 0xb4, 0x2f,
+ 0xfd, 0x61, 0xbc, 0x43, 0x63, 0x54, 0x1b, 0x12,
+ 0x1, 0xfa, 0x74, 0xaf, 0x10, 0xe, 0xcf, 0x0,
+ 0xfc, 0xd2, 0x1, 0x80,
+
+ /* U+F240 "" */
+ 0x24, 0x4f, 0xc1, 0xbf, 0xff, 0x4d, 0x6, 0x2a,
+ 0xfa, 0x14, 0x3c, 0x47, 0xce, 0x0, 0xd9, 0x9f,
+ 0x42, 0x3f, 0x6e, 0xf8, 0x60,
+
+ /* U+F241 "" */
+ 0x24, 0x4f, 0xc1, 0xbf, 0xff, 0x4d, 0x6, 0x2a,
+ 0xec, 0xb8, 0x50, 0xf1, 0x1d, 0xe0, 0xe0, 0xd,
+ 0x99, 0xda, 0x90, 0x8f, 0xdb, 0xbb, 0xbc, 0x60,
+
+ /* U+F242 "" */
+ 0x24, 0x4f, 0xc1, 0xbf, 0xff, 0x4d, 0x6, 0x2a,
+ 0xd7, 0x74, 0x28, 0x78, 0x8c, 0x1, 0x38, 0x3,
+ 0x66, 0x64, 0x4a, 0x11, 0xfb, 0x76, 0xff, 0x86,
+ 0x0,
+
+ /* U+F243 "" */
+ 0x24, 0x4f, 0xc1, 0xbf, 0xff, 0x4d, 0x6, 0x2e,
+ 0x5d, 0xe8, 0x50, 0xf1, 0xf0, 0xc, 0xe0, 0xd,
+ 0x9d, 0x44, 0xd0, 0x8f, 0xdb, 0xdf, 0xf8, 0x60,
+
+ /* U+F244 "" */
+ 0x24, 0x4f, 0xc1, 0xbf, 0xff, 0x4c, 0x5, 0xdf,
+ 0xd0, 0xe0, 0x1f, 0x9c, 0x0, 0x89, 0xf4, 0x13,
+ 0xff, 0xfc, 0x3c,
+
+ /* U+F287 "" */
+ 0x0, 0xff, 0xe1, 0xbe, 0xc0, 0x7, 0xce, 0x97,
+ 0x80, 0x1a, 0x6c, 0x78, 0x9d, 0x45, 0xc8, 0x1d,
+ 0x24, 0x72, 0x66, 0xab, 0xc, 0xd8, 0x85, 0xe0,
+ 0x7e, 0xc8, 0x11, 0x0, 0xc, 0x4d, 0x60, 0x1f,
+ 0x9b, 0xb0, 0x2,
+
+ /* U+F293 "" */
+ 0x6, 0xdd, 0x61, 0x82, 0x49, 0x71, 0x70, 0x69,
+ 0xa3, 0x59, 0x14, 0x78, 0x9e, 0xc, 0x0, 0xf0,
+ 0x10, 0x72, 0x31, 0x7f, 0x1, 0xd3, 0x65, 0x91,
+ 0x24, 0x92, 0xd0, 0xd0,
+
+ /* U+F2ED "" */
+ 0x78, 0xdf, 0xd8, 0x70, 0x2, 0xba, 0x80, 0x3d,
+ 0xdf, 0xbc, 0xc, 0xce, 0x66, 0x0, 0xff, 0xe5,
+ 0x69, 0x99, 0xcc, 0xda,
+
+ /* U+F304 "" */
+ 0x0, 0xf3, 0xf1, 0x80, 0x72, 0x60, 0xe8, 0x6,
+ 0x8b, 0x24, 0x90, 0xa, 0x1c, 0x1b, 0xdc, 0x1,
+ 0xe, 0x0, 0x74, 0x0, 0x3b, 0x80, 0xf, 0x0,
+ 0x14, 0x80, 0x1e, 0x0, 0x38, 0x62, 0x0, 0x1d,
+ 0xdc, 0x70, 0xe,
+
+ /* U+F55A "" */
+ 0x0, 0x57, 0xff, 0xb0, 0x2d, 0x41, 0x8c, 0xcc,
+ 0x7, 0x48, 0x0, 0x5d, 0xd2, 0x80, 0x7f, 0xf0,
+ 0x29, 0x0, 0xb, 0xba, 0x50, 0xa, 0xd4, 0x18,
+ 0xcc, 0xc0, 0x60,
+
+ /* U+F7C2 "" */
+ 0x7, 0xff, 0xb8, 0x5f, 0x27, 0x60, 0x89, 0xb,
+ 0xb7, 0x84, 0x0, 0x14, 0x64, 0x10, 0xf, 0xfe,
+ 0x51, 0x80, 0x61, 0x20,
+
+ /* U+F8A2 "" */
+ 0x0, 0xf8, 0xc0, 0x4, 0x60, 0x11, 0x60, 0x16,
+ 0x51, 0x14, 0xe0, 0xf, 0x16, 0xdd, 0xa8, 0x1,
+ 0xe2, 0xdb, 0xbb, 0x80, 0xb2, 0x88, 0xb0, 0x80
+};
+
+/*---------------------
+ * 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 = 34, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 0, .adv_w = 34, .box_w = 2, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 6, .adv_w = 50, .box_w = 3, .box_h = 3, .ofs_x = 0, .ofs_y = 2},
+ {.bitmap_index = 11, .adv_w = 90, .box_w = 6, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 26, .adv_w = 79, .box_w = 5, .box_h = 7, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 44, .adv_w = 108, .box_w = 7, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 62, .adv_w = 88, .box_w = 6, .box_h = 6, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 80, .adv_w = 27, .box_w = 2, .box_h = 3, .ofs_x = 0, .ofs_y = 2},
+ {.bitmap_index = 84, .adv_w = 43, .box_w = 3, .box_h = 7, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 96, .adv_w = 43, .box_w = 2, .box_h = 7, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 103, .adv_w = 51, .box_w = 4, .box_h = 3, .ofs_x = 0, .ofs_y = 3},
+ {.bitmap_index = 109, .adv_w = 74, .box_w = 5, .box_h = 4, .ofs_x = 0, .ofs_y = 1},
+ {.bitmap_index = 119, .adv_w = 29, .box_w = 2, .box_h = 3, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 123, .adv_w = 49, .box_w = 3, .box_h = 1, .ofs_x = 0, .ofs_y = 2},
+ {.bitmap_index = 125, .adv_w = 29, .box_w = 2, .box_h = 2, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 128, .adv_w = 45, .box_w = 5, .box_h = 7, .ofs_x = -1, .ofs_y = -1},
+ {.bitmap_index = 145, .adv_w = 85, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 158, .adv_w = 47, .box_w = 3, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 163, .adv_w = 73, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 176, .adv_w = 73, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 189, .adv_w = 86, .box_w = 6, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 204, .adv_w = 73, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 218, .adv_w = 79, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 231, .adv_w = 77, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 244, .adv_w = 82, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 257, .adv_w = 79, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 270, .adv_w = 29, .box_w = 2, .box_h = 4, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 275, .adv_w = 29, .box_w = 2, .box_h = 6, .ofs_x = 0, .ofs_y = -2},
+ {.bitmap_index = 282, .adv_w = 74, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 295, .adv_w = 74, .box_w = 5, .box_h = 3, .ofs_x = 0, .ofs_y = 1},
+ {.bitmap_index = 302, .adv_w = 74, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 314, .adv_w = 73, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 327, .adv_w = 132, .box_w = 8, .box_h = 6, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 350, .adv_w = 94, .box_w = 7, .box_h = 5, .ofs_x = -1, .ofs_y = 0},
+ {.bitmap_index = 367, .adv_w = 97, .box_w = 6, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 383, .adv_w = 93, .box_w = 6, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 398, .adv_w = 106, .box_w = 7, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 415, .adv_w = 86, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 429, .adv_w = 81, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 441, .adv_w = 99, .box_w = 6, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 457, .adv_w = 104, .box_w = 6, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 469, .adv_w = 40, .box_w = 2, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 472, .adv_w = 66, .box_w = 5, .box_h = 5, .ofs_x = -1, .ofs_y = 0},
+ {.bitmap_index = 483, .adv_w = 92, .box_w = 6, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 499, .adv_w = 76, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 506, .adv_w = 122, .box_w = 7, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 524, .adv_w = 104, .box_w = 6, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 538, .adv_w = 108, .box_w = 7, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 556, .adv_w = 92, .box_w = 6, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 571, .adv_w = 108, .box_w = 7, .box_h = 6, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 592, .adv_w = 93, .box_w = 6, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 607, .adv_w = 79, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 620, .adv_w = 75, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 629, .adv_w = 101, .box_w = 6, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 642, .adv_w = 91, .box_w = 7, .box_h = 5, .ofs_x = -1, .ofs_y = 0},
+ {.bitmap_index = 660, .adv_w = 144, .box_w = 9, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 683, .adv_w = 86, .box_w = 6, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 699, .adv_w = 83, .box_w = 7, .box_h = 5, .ofs_x = -1, .ofs_y = 0},
+ {.bitmap_index = 716, .adv_w = 84, .box_w = 6, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 732, .adv_w = 43, .box_w = 3, .box_h = 7, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 740, .adv_w = 45, .box_w = 5, .box_h = 7, .ofs_x = -1, .ofs_y = -1},
+ {.bitmap_index = 756, .adv_w = 43, .box_w = 2, .box_h = 7, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 761, .adv_w = 75, .box_w = 5, .box_h = 3, .ofs_x = 0, .ofs_y = 1},
+ {.bitmap_index = 769, .adv_w = 64, .box_w = 4, .box_h = 1, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 771, .adv_w = 77, .box_w = 3, .box_h = 1, .ofs_x = 0, .ofs_y = 5},
+ {.bitmap_index = 773, .adv_w = 77, .box_w = 5, .box_h = 4, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 783, .adv_w = 87, .box_w = 6, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 796, .adv_w = 73, .box_w = 5, .box_h = 4, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 805, .adv_w = 87, .box_w = 5, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 818, .adv_w = 78, .box_w = 5, .box_h = 4, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 828, .adv_w = 45, .box_w = 4, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 838, .adv_w = 88, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 851, .adv_w = 87, .box_w = 5, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 863, .adv_w = 36, .box_w = 2, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 868, .adv_w = 36, .box_w = 3, .box_h = 7, .ofs_x = -1, .ofs_y = -1},
+ {.bitmap_index = 876, .adv_w = 79, .box_w = 5, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 888, .adv_w = 36, .box_w = 2, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 892, .adv_w = 135, .box_w = 8, .box_h = 4, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 907, .adv_w = 87, .box_w = 5, .box_h = 4, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 916, .adv_w = 81, .box_w = 5, .box_h = 4, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 925, .adv_w = 87, .box_w = 6, .box_h = 5, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 939, .adv_w = 87, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 951, .adv_w = 52, .box_w = 4, .box_h = 4, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 958, .adv_w = 64, .box_w = 4, .box_h = 4, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 967, .adv_w = 53, .box_w = 4, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 977, .adv_w = 87, .box_w = 5, .box_h = 4, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 986, .adv_w = 72, .box_w = 6, .box_h = 4, .ofs_x = -1, .ofs_y = 0},
+ {.bitmap_index = 998, .adv_w = 115, .box_w = 8, .box_h = 4, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1015, .adv_w = 71, .box_w = 5, .box_h = 4, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1026, .adv_w = 72, .box_w = 6, .box_h = 5, .ofs_x = -1, .ofs_y = -1},
+ {.bitmap_index = 1041, .adv_w = 67, .box_w = 4, .box_h = 4, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1050, .adv_w = 45, .box_w = 3, .box_h = 7, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1060, .adv_w = 38, .box_w = 2, .box_h = 7, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1065, .adv_w = 45, .box_w = 3, .box_h = 7, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1075, .adv_w = 74, .box_w = 5, .box_h = 2, .ofs_x = 0, .ofs_y = 2},
+ {.bitmap_index = 1080, .adv_w = 54, .box_w = 3, .box_h = 3, .ofs_x = 0, .ofs_y = 3},
+ {.bitmap_index = 1085, .adv_w = 40, .box_w = 2, .box_h = 3, .ofs_x = 0, .ofs_y = 1},
+ {.bitmap_index = 1089, .adv_w = 128, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1118, .adv_w = 128, .box_w = 8, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1138, .adv_w = 128, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1166, .adv_w = 128, .box_w = 8, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1188, .adv_w = 88, .box_w = 6, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1207, .adv_w = 128, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1239, .adv_w = 128, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1271, .adv_w = 144, .box_w = 9, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1306, .adv_w = 128, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1331, .adv_w = 144, .box_w = 9, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1355, .adv_w = 128, .box_w = 8, .box_h = 10, .ofs_x = 0, .ofs_y = -2},
+ {.bitmap_index = 1395, .adv_w = 64, .box_w = 4, .box_h = 7, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1408, .adv_w = 96, .box_w = 6, .box_h = 7, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1428, .adv_w = 144, .box_w = 9, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1461, .adv_w = 128, .box_w = 8, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1482, .adv_w = 112, .box_w = 5, .box_h = 8, .ofs_x = 1, .ofs_y = -1},
+ {.bitmap_index = 1501, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = -2},
+ {.bitmap_index = 1527, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1541, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1552, .adv_w = 112, .box_w = 5, .box_h = 8, .ofs_x = 1, .ofs_y = -1},
+ {.bitmap_index = 1571, .adv_w = 112, .box_w = 9, .box_h = 8, .ofs_x = -1, .ofs_y = -1},
+ {.bitmap_index = 1600, .adv_w = 80, .box_w = 5, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1621, .adv_w = 80, .box_w = 5, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1642, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1666, .adv_w = 112, .box_w = 7, .box_h = 2, .ofs_x = 0, .ofs_y = 2},
+ {.bitmap_index = 1671, .adv_w = 144, .box_w = 9, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1698, .adv_w = 160, .box_w = 11, .box_h = 8, .ofs_x = -1, .ofs_y = -1},
+ {.bitmap_index = 1741, .adv_w = 144, .box_w = 11, .box_h = 8, .ofs_x = -1, .ofs_y = -1},
+ {.bitmap_index = 1779, .adv_w = 128, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1810, .adv_w = 112, .box_w = 7, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1828, .adv_w = 112, .box_w = 7, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1847, .adv_w = 160, .box_w = 11, .box_h = 7, .ofs_x = -1, .ofs_y = -1},
+ {.bitmap_index = 1885, .adv_w = 128, .box_w = 8, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1901, .adv_w = 128, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1931, .adv_w = 128, .box_w = 9, .box_h = 9, .ofs_x = -1, .ofs_y = -1},
+ {.bitmap_index = 1963, .adv_w = 112, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1994, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 2014, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 2039, .adv_w = 80, .box_w = 7, .box_h = 8, .ofs_x = -1, .ofs_y = -1},
+ {.bitmap_index = 2067, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 2091, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 2116, .adv_w = 144, .box_w = 9, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 2139, .adv_w = 128, .box_w = 10, .box_h = 10, .ofs_x = -1, .ofs_y = -2},
+ {.bitmap_index = 2177, .adv_w = 96, .box_w = 6, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 2191, .adv_w = 160, .box_w = 10, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 2227, .adv_w = 160, .box_w = 10, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 2248, .adv_w = 160, .box_w = 10, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 2272, .adv_w = 160, .box_w = 10, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 2297, .adv_w = 160, .box_w = 10, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 2321, .adv_w = 160, .box_w = 10, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 2340, .adv_w = 160, .box_w = 11, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 2375, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 2403, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 2423, .adv_w = 128, .box_w = 9, .box_h = 9, .ofs_x = -1, .ofs_y = -2},
+ {.bitmap_index = 2458, .adv_w = 160, .box_w = 10, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 2485, .adv_w = 96, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 2505, .adv_w = 129, .box_w = 9, .box_h = 6, .ofs_x = 0, .ofs_y = 0}
+};
+
+/*---------------------
+ * CHARACTER MAPPING
+ *--------------------*/
+
+static const uint16_t unicode_list_1[] = {
+ 0x0, 0x1f72, 0xef51, 0xef58, 0xef5b, 0xef5c, 0xef5d, 0xef61,
+ 0xef63, 0xef65, 0xef69, 0xef6c, 0xef71, 0xef76, 0xef77, 0xef78,
+ 0xef8e, 0xef98, 0xef9b, 0xef9c, 0xef9d, 0xefa1, 0xefa2, 0xefa3,
+ 0xefa4, 0xefb7, 0xefb8, 0xefbe, 0xefc0, 0xefc1, 0xefc4, 0xefc7,
+ 0xefc8, 0xefc9, 0xefcb, 0xefe3, 0xefe5, 0xf014, 0xf015, 0xf017,
+ 0xf037, 0xf03a, 0xf043, 0xf06c, 0xf074, 0xf0ab, 0xf13b, 0xf190,
+ 0xf191, 0xf192, 0xf193, 0xf194, 0xf1d7, 0xf1e3, 0xf23d, 0xf254,
+ 0xf4aa, 0xf712, 0xf7f2
+};
+
+/*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 = 176, .range_length = 63475, .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
+ }
+};
+
+/*-----------------
+ * KERNING
+ *----------------*/
+
+/*Map glyph_ids to kern left classes*/
+static const uint8_t kern_left_class_mapping[] =
+{
+ 0, 0, 1, 2, 0, 3, 4, 5,
+ 2, 6, 7, 8, 9, 10, 9, 10,
+ 11, 12, 0, 13, 14, 15, 16, 17,
+ 18, 19, 12, 20, 20, 0, 0, 0,
+ 21, 22, 23, 24, 25, 22, 26, 27,
+ 28, 29, 29, 30, 31, 32, 29, 29,
+ 22, 33, 34, 35, 3, 36, 30, 37,
+ 37, 38, 39, 40, 41, 42, 43, 0,
+ 44, 0, 45, 46, 47, 48, 49, 50,
+ 51, 45, 52, 52, 53, 48, 45, 45,
+ 46, 46, 54, 55, 56, 57, 51, 58,
+ 58, 59, 58, 60, 41, 0, 0, 9,
+ 61, 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, 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, 1, 2, 0, 3, 4, 5,
+ 2, 6, 7, 8, 9, 10, 9, 10,
+ 11, 12, 13, 14, 15, 16, 17, 12,
+ 18, 19, 20, 21, 21, 0, 0, 0,
+ 22, 23, 24, 25, 23, 25, 25, 25,
+ 23, 25, 25, 26, 25, 25, 25, 25,
+ 23, 25, 23, 25, 3, 27, 28, 29,
+ 29, 30, 31, 32, 33, 34, 35, 0,
+ 36, 0, 37, 38, 39, 39, 39, 0,
+ 39, 38, 40, 41, 38, 38, 42, 42,
+ 39, 42, 39, 42, 43, 44, 45, 46,
+ 46, 47, 46, 48, 0, 0, 35, 9,
+ 49, 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, 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, 0, 0, 0, 1, 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, 6, 0, 3, -3, 0, 0,
+ 0, 0, -7, -8, 1, 6, 3, 2,
+ -5, 1, 6, 0, 5, 1, 4, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 8, 1, -1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 3, 0, -4, 0, 0, 0, 0,
+ 0, -3, 2, 3, 0, 0, -1, 0,
+ -1, 1, 0, -1, 0, -1, -1, -3,
+ 0, 0, 0, 0, -1, 0, 0, -2,
+ -2, 0, 0, -1, 0, -3, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, -1,
+ -1, 0, -2, 0, -3, 0, -15, 0,
+ 0, -3, 0, 3, 4, 0, 0, -3,
+ 1, 1, 4, 3, -2, 3, 0, 0,
+ -7, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -5, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -3, -2, -6, 0, -5,
+ -1, 0, 0, 0, 0, 0, 5, 0,
+ -4, -1, 0, 0, 0, -2, 0, 0,
+ -1, -9, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, -10, -1, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -5, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 4,
+ 0, 1, 0, 0, -3, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 5, 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, 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, 1,
+ 3, 1, 4, -1, 0, 0, 3, -1,
+ -4, -18, 1, 3, 3, 0, -2, 0,
+ 5, 0, 4, 0, 4, 0, -12, 0,
+ -2, 4, 0, 4, -1, 3, 1, 0,
+ 0, 0, -1, 0, 0, -2, 10, 0,
+ 10, 0, 4, 0, 5, 2, 2, 4,
+ 0, 0, 0, -5, 0, 0, 0, 0,
+ 0, -1, 0, 1, -2, -2, -3, 1,
+ 0, -1, 0, 0, 0, -5, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -8, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, -7, 0, -8, 0, 0, 0,
+ 0, -1, 0, 13, -2, -2, 1, 1,
+ -1, 0, -2, 1, 0, 0, -7, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, -12, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -8, 0, 8, 0, 0, -5, 0,
+ 4, 0, -9, -12, -9, -3, 4, 0,
+ 0, -9, 0, 2, -3, 0, -2, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 3, 4, -16, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 6, 0, 1, 0, 0, 0,
+ 0, 0, 1, 1, -2, -3, 0, 0,
+ 0, -1, 0, 0, -1, 0, 0, 0,
+ -3, 0, -1, 0, -3, -3, 0, -3,
+ -4, -4, -2, 0, -3, 0, -3, 0,
+ 0, 0, 0, -1, 0, 0, 1, 0,
+ 1, -1, 0, 0, 0, 0, 0, 1,
+ -1, 0, 0, 0, -1, 1, 1, 0,
+ 0, 0, 0, -2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, -1, 0,
+ -2, 0, -2, 0, 0, -1, 0, 4,
+ 0, 0, -1, 0, 0, 0, 0, 0,
+ 0, 0, -1, -1, 0, 0, -1, 0,
+ -1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, -1, -1, 0, -1, -2, 0,
+ 0, 0, 0, 0, 0, 0, 0, -1,
+ 0, -1, -1, -1, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, -1, 0, 0,
+ 0, 0, -1, -2, 0, -2, 0, -4,
+ -1, -4, 3, 0, 0, -3, 1, 3,
+ 3, 0, -3, 0, -2, 0, 0, -6,
+ 1, -1, 1, -7, 1, 0, 0, 0,
+ -7, 0, -7, -1, -11, -1, 0, -6,
+ 0, 3, 4, 0, 2, 0, 0, 0,
+ 0, 0, 0, -2, -2, 0, -4, 0,
+ 0, 0, -1, 0, 0, 0, -1, 0,
+ 0, 0, 0, 0, -1, -1, 0, -1,
+ -2, 0, 0, 0, 0, 0, 0, 0,
+ -1, -1, 0, -1, -2, -1, 0, 0,
+ -1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -1, -1, 0, -2,
+ 0, -1, 0, -3, 1, 0, 0, -2,
+ 1, 1, 1, 0, 0, 0, 0, 0,
+ 0, -1, 0, 0, 0, 0, 0, 1,
+ 0, 0, -1, 0, -1, -1, -2, 0,
+ 0, 0, 0, 0, 0, 0, 1, 0,
+ -1, 0, 0, 0, 0, -1, -2, 0,
+ -2, 0, 4, -1, 0, -4, 0, 0,
+ 3, -6, -7, -5, -3, 1, 0, -1,
+ -8, -2, 0, -2, 0, -3, 2, -2,
+ -8, 0, -3, 0, 0, 1, 0, 1,
+ -1, 0, 1, 0, -4, -5, 0, -6,
+ -3, -3, -3, -4, -2, -3, 0, -2,
+ -3, 1, 0, 0, 0, -1, 0, 0,
+ 0, 1, 0, 1, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, -1,
+ 0, -1, 0, 0, -1, 0, -2, -3,
+ -3, 0, 0, -4, 0, 0, 0, 0,
+ 0, 0, -1, 0, 0, 0, 0, 1,
+ -1, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 6, 0, 0,
+ 0, 0, 0, 0, 1, 0, 0, 0,
+ -1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -2, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -1, 0, 0, 0,
+ -2, 0, 0, 0, 0, -6, -4, 0,
+ 0, 0, -2, -6, 0, 0, -1, 1,
+ 0, -3, 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, 1, 0, -2, 0,
+ 0, 0, 0, 2, 0, 1, -3, -3,
+ 0, -1, -1, -2, 0, 0, 0, 0,
+ 0, 0, -4, 0, -1, 0, -2, -1,
+ 0, -3, -3, -4, -1, 0, -3, 0,
+ -4, 0, 0, 0, 0, 10, 0, 0,
+ 1, 0, 0, -2, 0, 1, 0, -6,
+ 0, 0, 0, 0, 0, -12, -2, 4,
+ 4, -1, -5, 0, 1, -2, 0, -6,
+ -1, -2, 1, -9, -1, 2, 0, 2,
+ -4, -2, -5, -4, -5, 0, 0, -8,
+ 0, 7, 0, 0, -1, 0, 0, 0,
+ -1, -1, -1, -3, -4, 0, -12, 0,
+ 0, 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, -2, 0, 0,
+ -3, 0, -1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -3, 0, 0, 3,
+ 0, 2, 0, -3, 1, -1, 0, -3,
+ -1, 0, -2, -1, -1, 0, -2, -2,
+ 0, 0, -1, 0, -1, -2, -2, 0,
+ 0, -1, 0, 1, -1, 0, -3, 0,
+ 0, 0, -3, 0, -2, 0, -2, -2,
+ 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, -3, 1, 0, -2, 0, -1, -2,
+ -4, -1, -1, -1, 0, -1, -2, 0,
+ 0, 0, 0, 0, 0, -1, -1, -1,
+ 0, 0, 0, 0, 2, -1, 0, -1,
+ 0, 0, 0, -1, -2, -1, -1, -2,
+ -1, 0, 1, 5, 0, 0, -3, 0,
+ -1, 3, 0, -1, -5, -2, 2, 0,
+ 0, -6, -2, 1, -2, 1, 0, -1,
+ -1, -4, 0, -2, 1, 0, 0, -2,
+ 0, 0, 0, 1, 1, -3, -2, 0,
+ -2, -1, -2, -1, -1, 0, -2, 1,
+ -2, -2, 4, 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, -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, 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, -1, -1,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -2, 0, 0, -2,
+ 0, 0, -1, -1, 0, 0, 0, 0,
+ -1, 0, 0, 0, 0, -1, 0, 0,
+ 0, 0, 0, -1, 0, 0, 0, 0,
+ -2, 0, -3, 0, 0, 0, -4, 0,
+ 1, -3, 3, 0, -1, -6, 0, 0,
+ -3, -1, 0, -5, -3, -4, 0, 0,
+ -6, -1, -5, -5, -6, 0, -3, 0,
+ 1, 9, -2, 0, -3, -1, 0, -1,
+ -2, -3, -2, -5, -5, -3, -1, 0,
+ 0, -1, 0, 0, 0, 0, -9, -1,
+ 4, 3, -3, -5, 0, 0, -4, 0,
+ -6, -1, -1, 3, -12, -2, 0, 0,
+ 0, -8, -2, -7, -1, -9, 0, 0,
+ -9, 0, 8, 0, 0, -1, 0, 0,
+ 0, 0, -1, -1, -5, -1, 0, -8,
+ 0, 0, 0, 0, -4, 0, -1, 0,
+ 0, -4, -6, 0, 0, -1, -2, -4,
+ -1, 0, -1, 0, 0, 0, 0, -6,
+ -1, -4, -4, -1, -2, -3, -1, -2,
+ 0, -3, -1, -4, -2, 0, -2, -2,
+ -1, -2, 0, 1, 0, -1, -4, 0,
+ 3, 0, -2, 0, 0, 0, 0, 2,
+ 0, 1, -3, 5, 0, -1, -1, -2,
+ 0, 0, 0, 0, 0, 0, -4, 0,
+ -1, 0, -2, -1, 0, -3, -3, -4,
+ -1, 0, -3, 1, 5, 0, 0, 0,
+ 0, 10, 0, 0, 1, 0, 0, -2,
+ 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -1, -3, 0, 0, 0, 0, 0, -1,
+ 0, 0, 0, -1, -1, 0, 0, -3,
+ -1, 0, 0, -3, 0, 2, -1, 0,
+ 0, 0, 0, 0, 0, 1, 0, 0,
+ 0, 0, 2, 3, 1, -1, 0, -4,
+ -2, 0, 4, -4, -4, -3, -3, 5,
+ 2, 1, -11, -1, 3, -1, 0, -1,
+ 1, -1, -4, 0, -1, 1, -2, -1,
+ -4, -1, 0, 0, 4, 3, 0, -4,
+ 0, -7, -2, 4, -2, -5, 0, -2,
+ -4, -4, -1, 5, 1, 0, -2, 0,
+ -3, 0, 1, 4, -3, -5, -5, -3,
+ 4, 0, 0, -9, -1, 1, -2, -1,
+ -3, 0, -3, -5, -2, -2, -1, 0,
+ 0, -3, -3, -1, 0, 4, 3, -1,
+ -7, 0, -7, -2, 0, -4, -7, 0,
+ -4, -2, -4, -4, 3, 0, 0, -2,
+ 0, -3, -1, 0, -1, -2, 0, 2,
+ -4, 1, 0, 0, -7, 0, -1, -3,
+ -2, -1, -4, -3, -4, -3, 0, -4,
+ -1, -3, -2, -4, -1, 0, 0, 0,
+ 6, -2, 0, -4, -1, 0, -1, -3,
+ -3, -3, -4, -5, -2, -3, 3, 0,
+ -2, 0, -6, -2, 1, 3, -4, -5,
+ -3, -4, 4, -1, 1, -12, -2, 3,
+ -3, -2, -5, 0, -4, -5, -2, -1,
+ -1, -1, -3, -4, 0, 0, 0, 4,
+ 4, -1, -8, 0, -8, -3, 3, -5,
+ -9, -3, -4, -5, -6, -4, 3, 0,
+ 0, 0, 0, -2, 0, 0, 1, -2,
+ 3, 1, -2, 3, 0, 0, -4, 0,
+ 0, 0, 0, 0, 0, -1, 0, 0,
+ 0, 0, 0, 0, -1, 0, 0, 0,
+ 0, 1, 4, 0, 0, -2, 0, 0,
+ 0, 0, -1, -1, -2, 0, 0, 0,
+ 0, 1, 0, 0, 0, 0, 1, 0,
+ -1, 0, 5, 0, 2, 0, 0, -2,
+ 0, 3, 0, 0, 0, 1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 4, 0, 4, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, -8, 0, -1, 2, 0, 4,
+ 0, 0, 13, 2, -3, -3, 1, 1,
+ -1, 0, -6, 0, 0, 6, -8, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, -9, 5, 18, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -8, 0, 0, 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, -2,
+ -1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -1, 0, -3, 0,
+ 0, 0, 0, 0, 1, 17, -3, -1,
+ 4, 3, -3, 1, 0, 0, 1, 1,
+ -2, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -17, 4, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, -4,
+ 0, 0, 0, -3, 0, 0, 0, 0,
+ -3, -1, 0, 0, 0, -3, 0, -2,
+ 0, -6, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, -9, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -1, 0, 0, -2, 0, -2, 0,
+ -3, 0, 0, 0, -2, 1, -2, 0,
+ 0, -3, -1, -3, 0, 0, -3, 0,
+ -1, 0, -6, 0, -1, 0, 0, -10,
+ -2, -5, -1, -5, 0, 0, -9, 0,
+ -3, -1, 0, 0, 0, 0, 0, 0,
+ 0, 0, -2, -2, -1, -2, 0, 0,
+ 0, 0, -3, 0, -3, 2, -1, 3,
+ 0, -1, -3, -1, -2, -2, 0, -2,
+ -1, -1, 1, -3, 0, 0, 0, 0,
+ -11, -1, -2, 0, -3, 0, -1, -6,
+ -1, 0, 0, -1, -1, 0, 0, 0,
+ 0, 1, 0, -1, -2, -1, 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, 0, 0, 0, 0, 0,
+ 0, 0, 2, 0, 0, 0, 0, 0,
+ 0, -3, 0, -1, 0, 0, 0, -3,
+ 1, 0, 0, 0, -3, -1, -3, 0,
+ 0, -4, 0, -1, 0, -6, 0, 0,
+ 0, 0, -12, 0, -3, -5, -6, 0,
+ 0, -9, 0, -1, -2, 0, 0, 0,
+ 0, 0, 0, 0, 0, -1, -2, -1,
+ -2, 0, 0, 0, 2, -2, 0, 4,
+ 6, -1, -1, -4, 2, 6, 2, 3,
+ -3, 2, 5, 2, 4, 3, 3, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 8, 6, -2, -1, 0, -1,
+ 10, 6, 10, 0, 0, 0, 1, 0,
+ 0, 5, 0, 0, -2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, -1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 2,
+ 0, 0, 0, 0, -11, -2, -1, -5,
+ -6, 0, 0, -9, 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, -1,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 2, 0, 0, 0, 0, -11, -2, -1,
+ -5, -6, 0, 0, -5, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -1, 0, 0, 0, -3, 1, 0, -1,
+ 1, 2, 1, -4, 0, 0, -1, 1,
+ 0, 1, 0, 0, 0, 0, -3, 0,
+ -1, -1, -3, 0, -1, -5, 0, 8,
+ -1, 0, -3, -1, 0, -1, -2, 0,
+ -1, -4, -3, -2, 0, 0, 0, -2,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2, 0, 0, 0, 0, -11,
+ -2, -1, -5, -6, 0, 0, -9, 0,
+ 0, 0, 0, 0, 0, 6, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -2, 0, -4, -2, -1, 4, -1, -1,
+ -5, 0, -1, 0, -1, -3, 0, 3,
+ 0, 1, 0, 1, -3, -5, -2, 0,
+ -5, -2, -3, -5, -5, 0, -2, -3,
+ -2, -2, -1, -1, -2, -1, 0, -1,
+ 0, 2, 0, 2, -1, 0, 4, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -1, -1, -1, 0, 0,
+ -3, 0, -1, 0, -2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -8, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -1, -1, 0, -2,
+ 0, 0, 0, 0, -1, 0, 0, -2,
+ -1, 1, 0, -2, -2, -1, 0, -4,
+ -1, -3, -1, -2, 0, -2, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -9, 0, 4, 0, 0, -2, 0,
+ 0, 0, 0, -2, 0, -1, 0, 0,
+ -1, 0, 0, -1, 0, -3, 0, 0,
+ 5, -2, -4, -4, 1, 1, 1, 0,
+ -4, 1, 2, 1, 4, 1, 4, -1,
+ -3, 0, 0, -5, 0, 0, -4, -3,
+ 0, 0, -3, 0, -2, -2, 0, -2,
+ 0, -2, 0, -1, 2, 0, -1, -4,
+ -1, 5, 0, 0, -1, 0, -3, 0,
+ 0, 2, -3, 0, 1, -1, 1, 0,
+ 0, -4, 0, -1, 0, 0, -1, 1,
+ -1, 0, 0, 0, -5, -2, -3, 0,
+ -4, 0, 0, -6, 0, 5, -1, 0,
+ -2, 0, 1, 0, -1, 0, -1, -4,
+ 0, -1, 1, 0, 0, 0, 0, -1,
+ 0, 0, 1, -2, 0, 0, 0, -2,
+ -1, 0, -2, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -8, 0, 3, 0,
+ 0, -1, 0, 0, 0, 0, 0, 0,
+ -1, -1, 0, 0, 0, 3, 0, 3,
+ 0, 0, 0, 0, 0, -8, -7, 0,
+ 6, 4, 2, -5, 1, 5, 0, 5,
+ 0, 3, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 7, 0, 0,
+ 0, 0, 0, 0, 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 = 61,
+ .right_class_cnt = 49,
+};
+
+/*--------------------
+ * ALL CUSTOM DATA
+ *--------------------*/
+
+/*Store all the custom data of the font*/
+static lv_font_fmt_txt_dsc_t font_dsc = {
+ .glyph_bitmap = gylph_bitmap,
+ .glyph_dsc = glyph_dsc,
+ .cmaps = cmaps,
+ .kern_dsc = &kern_classes,
+ .kern_scale = 16,
+ .cmap_num = 2,
+ .bpp = 4,
+ .kern_classes = 1,
+ .bitmap_format = 1
+};
+
+/*-----------------
+ * PUBLIC FONT
+ *----------------*/
+
+/*Initialize a public general font descriptor*/
+lv_font_t font_1 = {
+ .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 = 10, /*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
+ .dsc = &font_dsc /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
+};
+
+#endif /*#if FONT_1*/
diff --git a/src/libs/lvgl/tests/lv_test_fonts/font_2.c b/src/libs/lvgl/tests/lv_test_fonts/font_2.c
new file mode 100644
index 00000000..9d9c3021
--- /dev/null
+++ b/src/libs/lvgl/tests/lv_test_fonts/font_2.c
@@ -0,0 +1,1408 @@
+#include "../../lvgl.h"
+
+/*******************************************************************************
+ * Size: 8 px
+ * Bpp: 4
+ * Opts: --bpp 4 --size 8 --font ../Montserrat-Medium.ttf -r 0x20-0x7F,0xB0,0x2022 --font ../FontAwesome5-Solid+Brands+Regular.woff -r 61441,61448,61451,61452,61452,61453,61457,61459,61461,61465,61468,61473,61478,61479,61480,61502,61512,61515,61516,61517,61521,61522,61523,61524,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,62087,62099,62212,62189,62810,63426,63650 --no-compress --no-prefilter --force-fast-kern-format --format lvgl -o ..\generated_fonts/font_2.c
+ ******************************************************************************/
+
+#ifndef FONT_2
+#define FONT_2 1
+#endif
+
+#if FONT_2
+
+/*-----------------
+ * BITMAPS
+ *----------------*/
+
+/*Store the image of the glyphs*/
+static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
+ /* U+20 " " */
+
+ /* U+21 "!" */
+ 0x58, 0x57, 0x46, 0x23, 0x46,
+
+ /* U+22 "\"" */
+ 0x73, 0x97, 0x29, 0x0, 0x0,
+
+ /* U+23 "#" */
+ 0x4, 0x52, 0x60, 0x4b, 0x9b, 0xa3, 0x8, 0x7,
+ 0x20, 0x6c, 0x8c, 0x81, 0x9, 0x9, 0x0,
+
+ /* U+24 "$" */
+ 0x0, 0x80, 0x2, 0xbd, 0xa2, 0x76, 0x80, 0x0,
+ 0x8d, 0x81, 0x0, 0x84, 0x95, 0xad, 0xb3, 0x0,
+ 0x80, 0x0,
+
+ /* U+25 "%" */
+ 0x58, 0x70, 0x63, 0x8, 0x8, 0x36, 0x0, 0x27,
+ 0x58, 0x67, 0x10, 0x8, 0x27, 0x26, 0x6, 0x20,
+ 0x88, 0x20,
+
+ /* U+26 "&" */
+ 0x9, 0x99, 0x0, 0xb, 0x3a, 0x0, 0x19, 0xc2,
+ 0x20, 0x83, 0x1a, 0xa0, 0x3a, 0x99, 0x92, 0x0,
+ 0x0, 0x0,
+
+ /* U+27 "'" */
+ 0x72, 0x72, 0x0,
+
+ /* U+28 "(" */
+ 0x8, 0x20, 0xb0, 0x1a, 0x3, 0x80, 0x1a, 0x0,
+ 0xb0, 0x8, 0x20,
+
+ /* U+29 ")" */
+ 0x73, 0x19, 0xb, 0xc, 0xb, 0x19, 0x73,
+
+ /* U+2A "*" */
+ 0x48, 0x40, 0x6e, 0x80, 0x15, 0x10,
+
+ /* U+2B "+" */
+ 0x0, 0x20, 0x0, 0xa, 0x0, 0x49, 0xd9, 0x10,
+ 0xa, 0x0,
+
+ /* U+2C "," */
+ 0x0, 0x75, 0x71,
+
+ /* U+2D "-" */
+ 0x5a, 0x60,
+
+ /* U+2E "." */
+ 0x0, 0x74,
+
+ /* U+2F "/" */
+ 0x0, 0xa, 0x0, 0x2, 0x80, 0x0, 0x82, 0x0,
+ 0xa, 0x0, 0x4, 0x60, 0x0, 0x91, 0x0, 0x19,
+ 0x0, 0x0,
+
+ /* U+30 "0" */
+ 0xa, 0xbb, 0x26, 0x60, 0x1b, 0x93, 0x0, 0xc6,
+ 0x60, 0x1b, 0xa, 0xbb, 0x20,
+
+ /* U+31 "1" */
+ 0x9e, 0x20, 0xa2, 0xa, 0x20, 0xa2, 0xa, 0x20,
+
+ /* U+32 "2" */
+ 0x6a, 0xb9, 0x0, 0x0, 0xc0, 0x0, 0x58, 0x0,
+ 0x87, 0x0, 0x9e, 0xaa, 0x30,
+
+ /* U+33 "3" */
+ 0x7a, 0xbe, 0x0, 0xa, 0x20, 0x4, 0xa9, 0x0,
+ 0x0, 0xa2, 0x8a, 0xa9, 0x0,
+
+ /* U+34 "4" */
+ 0x0, 0x49, 0x0, 0x3, 0xa0, 0x0, 0x1b, 0x8,
+ 0x20, 0x8b, 0xad, 0xb2, 0x0, 0x9, 0x30,
+
+ /* U+35 "5" */
+ 0x3d, 0xaa, 0x5, 0x60, 0x0, 0x5b, 0xa8, 0x0,
+ 0x0, 0x93, 0x7a, 0xaa, 0x0,
+
+ /* U+36 "6" */
+ 0x9, 0xaa, 0x36, 0x70, 0x0, 0x98, 0x9a, 0x26,
+ 0x80, 0x2a, 0x9, 0x9a, 0x40,
+
+ /* U+37 "7" */
+ 0xca, 0xad, 0x67, 0x0, 0xc0, 0x0, 0x67, 0x0,
+ 0xc, 0x0, 0x6, 0x70, 0x0,
+
+ /* U+38 "8" */
+ 0x1a, 0xab, 0x25, 0x60, 0x48, 0x1d, 0xad, 0x38,
+ 0x40, 0x1b, 0x3a, 0x9a, 0x40,
+
+ /* U+39 "9" */
+ 0x4a, 0x99, 0xb, 0x10, 0x95, 0x3a, 0x99, 0x80,
+ 0x0, 0x95, 0x3a, 0xb8, 0x0,
+
+ /* U+3A ":" */
+ 0x74, 0x0, 0x0, 0x74,
+
+ /* U+3B ";" */
+ 0x74, 0x0, 0x0, 0x75, 0x62, 0x0,
+
+ /* U+3C "<" */
+ 0x0, 0x1, 0x0, 0x49, 0x80, 0x5c, 0x30, 0x0,
+ 0x16, 0x91, 0x0, 0x0, 0x0,
+
+ /* U+3D "=" */
+ 0x49, 0x99, 0x10, 0x0, 0x0, 0x49, 0x99, 0x10,
+
+ /* U+3E ">" */
+ 0x10, 0x0, 0x3, 0x98, 0x20, 0x0, 0x6d, 0x14,
+ 0x94, 0x0, 0x0, 0x0, 0x0,
+
+ /* U+3F "?" */
+ 0x6a, 0xb9, 0x0, 0x0, 0xc0, 0x0, 0xa4, 0x0,
+ 0x3, 0x0, 0x2, 0x80, 0x0,
+
+ /* U+40 "@" */
+ 0x3, 0x87, 0x78, 0x50, 0x28, 0x4a, 0x9c, 0x75,
+ 0x80, 0xb0, 0xa, 0x28, 0x80, 0xb0, 0xa, 0x28,
+ 0x28, 0x49, 0x99, 0xa6, 0x3, 0x88, 0x75, 0x0,
+
+ /* U+41 "A" */
+ 0x0, 0xb, 0x90, 0x0, 0x3, 0x8a, 0x10, 0x0,
+ 0xb1, 0x39, 0x0, 0x4d, 0x99, 0xd1, 0xb, 0x10,
+ 0x3, 0x90,
+
+ /* U+42 "B" */
+ 0x2d, 0x99, 0xb1, 0x2a, 0x0, 0x84, 0x2d, 0x9a,
+ 0xd1, 0x2a, 0x0, 0x39, 0x2d, 0x99, 0xb4,
+
+ /* U+43 "C" */
+ 0x7, 0xba, 0xa2, 0x59, 0x0, 0x0, 0x93, 0x0,
+ 0x0, 0x59, 0x0, 0x0, 0x7, 0xba, 0xa2,
+
+ /* U+44 "D" */
+ 0x2e, 0xab, 0xb3, 0x2, 0xa0, 0x1, 0xc0, 0x2a,
+ 0x0, 0x9, 0x22, 0xa0, 0x1, 0xc0, 0x2e, 0xab,
+ 0xb3, 0x0,
+
+ /* U+45 "E" */
+ 0x2e, 0xaa, 0x82, 0xa0, 0x0, 0x2d, 0xaa, 0x42,
+ 0xa0, 0x0, 0x2e, 0xaa, 0x90,
+
+ /* U+46 "F" */
+ 0x2e, 0xaa, 0x82, 0xa0, 0x0, 0x2e, 0xaa, 0x42,
+ 0xa0, 0x0, 0x2a, 0x0, 0x0,
+
+ /* U+47 "G" */
+ 0x7, 0xba, 0xa2, 0x59, 0x0, 0x0, 0x93, 0x0,
+ 0x23, 0x59, 0x0, 0x47, 0x7, 0xba, 0xa3,
+
+ /* U+48 "H" */
+ 0x2a, 0x0, 0x2a, 0x2a, 0x0, 0x2a, 0x2e, 0xaa,
+ 0xba, 0x2a, 0x0, 0x2a, 0x2a, 0x0, 0x2a,
+
+ /* U+49 "I" */
+ 0x2a, 0x2a, 0x2a, 0x2a, 0x2a,
+
+ /* U+4A "J" */
+ 0x5, 0xad, 0x50, 0x0, 0x75, 0x0, 0x7, 0x50,
+ 0x0, 0x84, 0x9, 0xab, 0x0,
+
+ /* U+4B "K" */
+ 0x2a, 0x1, 0xa2, 0x2a, 0x1b, 0x20, 0x2c, 0xc7,
+ 0x0, 0x2d, 0x19, 0x50, 0x2a, 0x0, 0xa4,
+
+ /* U+4C "L" */
+ 0x2a, 0x0, 0x2, 0xa0, 0x0, 0x2a, 0x0, 0x2,
+ 0xa0, 0x0, 0x2e, 0xaa, 0x70,
+
+ /* U+4D "M" */
+ 0x2c, 0x0, 0x3, 0xc2, 0xd7, 0x0, 0xbc, 0x29,
+ 0x92, 0x84, 0xc2, 0x91, 0xb9, 0xc, 0x29, 0x3,
+ 0x0, 0xc0,
+
+ /* U+4E "N" */
+ 0x2d, 0x10, 0x2a, 0x2c, 0xb0, 0x2a, 0x2a, 0x4b,
+ 0x2a, 0x2a, 0x5, 0xca, 0x2a, 0x0, 0x7a,
+
+ /* U+4F "O" */
+ 0x7, 0xbb, 0xb3, 0x5, 0x90, 0x1, 0xc1, 0x93,
+ 0x0, 0x8, 0x45, 0x90, 0x1, 0xc1, 0x7, 0xbb,
+ 0xb3, 0x0,
+
+ /* U+50 "P" */
+ 0x2e, 0xaa, 0x90, 0x2a, 0x0, 0x84, 0x2a, 0x0,
+ 0xa3, 0x2e, 0xaa, 0x60, 0x2a, 0x0, 0x0,
+
+ /* U+51 "Q" */
+ 0x7, 0xbb, 0xb3, 0x5, 0x90, 0x1, 0xc1, 0x93,
+ 0x0, 0x8, 0x45, 0x90, 0x0, 0xc1, 0x7, 0xbb,
+ 0xb3, 0x0, 0x0, 0x39, 0x93,
+
+ /* U+52 "R" */
+ 0x2e, 0xaa, 0x90, 0x2a, 0x0, 0x84, 0x2a, 0x0,
+ 0xa3, 0x2d, 0xac, 0x80, 0x2a, 0x1, 0xa1,
+
+ /* U+53 "S" */
+ 0x2a, 0xaa, 0x27, 0x60, 0x0, 0x8, 0x98, 0x10,
+ 0x0, 0x49, 0x5a, 0xaa, 0x30,
+
+ /* U+54 "T" */
+ 0xaa, 0xea, 0x60, 0xc, 0x0, 0x0, 0xc0, 0x0,
+ 0xc, 0x0, 0x0, 0xc0, 0x0,
+
+ /* U+55 "U" */
+ 0x39, 0x0, 0x48, 0x39, 0x0, 0x48, 0x39, 0x0,
+ 0x48, 0x1c, 0x0, 0x66, 0x6, 0xba, 0xa0,
+
+ /* U+56 "V" */
+ 0xb, 0x10, 0x5, 0x70, 0x49, 0x0, 0xb0, 0x0,
+ 0xc1, 0x57, 0x0, 0x4, 0x9c, 0x0, 0x0, 0xc,
+ 0x70, 0x0,
+
+ /* U+57 "W" */
+ 0x94, 0x0, 0xf1, 0x3, 0x93, 0xa0, 0x69, 0x70,
+ 0x93, 0xc, 0xb, 0xb, 0xb, 0x0, 0x79, 0x80,
+ 0x89, 0x70, 0x1, 0xf2, 0x2, 0xf1, 0x0,
+
+ /* U+58 "X" */
+ 0x58, 0x2, 0xa0, 0x8, 0x7b, 0x10, 0x0, 0xf5,
+ 0x0, 0xa, 0x4b, 0x10, 0x76, 0x2, 0xb0,
+
+ /* U+59 "Y" */
+ 0xa, 0x20, 0xb, 0x0, 0x1b, 0x9, 0x30, 0x0,
+ 0x5b, 0x80, 0x0, 0x0, 0xd0, 0x0, 0x0, 0xc,
+ 0x0, 0x0,
+
+ /* U+5A "Z" */
+ 0x6a, 0xac, 0xd0, 0x0, 0x1b, 0x10, 0x0, 0xb2,
+ 0x0, 0xb, 0x30, 0x0, 0x8d, 0xaa, 0xa0,
+
+ /* U+5B "[" */
+ 0x2d, 0x42, 0x90, 0x29, 0x2, 0x90, 0x29, 0x2,
+ 0x90, 0x2d, 0x40,
+
+ /* U+5C "\\" */
+ 0x19, 0x0, 0x0, 0xa0, 0x0, 0x5, 0x50, 0x0,
+ 0xa, 0x0, 0x0, 0x91, 0x0, 0x3, 0x70, 0x0,
+ 0xa, 0x0,
+
+ /* U+5D "]" */
+ 0x8c, 0xc, 0xc, 0xc, 0xc, 0xc, 0x8c,
+
+ /* U+5E "^" */
+ 0x3, 0xc0, 0x0, 0x94, 0x50, 0x27, 0x9, 0x0,
+
+ /* U+5F "_" */
+ 0x77, 0x77,
+
+ /* U+60 "`" */
+ 0x6, 0x60,
+
+ /* U+61 "a" */
+ 0x29, 0x98, 0x2, 0x98, 0xd0, 0x84, 0xc, 0x13,
+ 0xb9, 0xd1,
+
+ /* U+62 "b" */
+ 0x48, 0x0, 0x0, 0x48, 0x0, 0x0, 0x4c, 0xab,
+ 0x50, 0x4a, 0x0, 0xc0, 0x4a, 0x0, 0xc0, 0x4c,
+ 0xaa, 0x50,
+
+ /* U+63 "c" */
+ 0x1a, 0xaa, 0x18, 0x40, 0x0, 0x84, 0x0, 0x1,
+ 0xaa, 0xa1,
+
+ /* U+64 "d" */
+ 0x0, 0x0, 0xb0, 0x0, 0xb, 0x1a, 0xaa, 0xb9,
+ 0x40, 0x3b, 0x94, 0x2, 0xb1, 0xa9, 0x9b,
+
+ /* U+65 "e" */
+ 0x19, 0x99, 0x19, 0x98, 0x86, 0x85, 0x1, 0x1,
+ 0xaa, 0xb1,
+
+ /* U+66 "f" */
+ 0xa, 0xa0, 0x2a, 0x0, 0x9d, 0x70, 0x29, 0x0,
+ 0x29, 0x0, 0x29, 0x0,
+
+ /* U+67 "g" */
+ 0x1a, 0x99, 0xb9, 0x40, 0x1c, 0x94, 0x2, 0xc1,
+ 0xaa, 0xab, 0x18, 0x9a, 0x30,
+
+ /* U+68 "h" */
+ 0x48, 0x0, 0x4, 0x80, 0x0, 0x4c, 0x9b, 0x44,
+ 0x90, 0x1b, 0x48, 0x0, 0xc4, 0x80, 0xc,
+
+ /* U+69 "i" */
+ 0x37, 0x0, 0x48, 0x48, 0x48, 0x48,
+
+ /* U+6A "j" */
+ 0x3, 0x70, 0x0, 0x3, 0x80, 0x38, 0x3, 0x80,
+ 0x38, 0x6b, 0x40,
+
+ /* U+6B "k" */
+ 0x48, 0x0, 0x4, 0x80, 0x0, 0x48, 0xa, 0x44,
+ 0x9c, 0x30, 0x4d, 0x6a, 0x4, 0x80, 0x77,
+
+ /* U+6C "l" */
+ 0x48, 0x48, 0x48, 0x48, 0x48, 0x48,
+
+ /* U+6D "m" */
+ 0x4c, 0x9b, 0x89, 0xb4, 0x49, 0x3, 0xb0, 0xb,
+ 0x48, 0x2, 0xa0, 0xc, 0x48, 0x2, 0xa0, 0xc,
+
+ /* U+6E "n" */
+ 0x4c, 0x9b, 0x44, 0x90, 0x1b, 0x48, 0x0, 0xc4,
+ 0x80, 0xc,
+
+ /* U+6F "o" */
+ 0x1a, 0xaa, 0x18, 0x40, 0x3a, 0x84, 0x3, 0xa1,
+ 0xaa, 0xa1,
+
+ /* U+70 "p" */
+ 0x4c, 0xab, 0x50, 0x4a, 0x0, 0xc0, 0x4a, 0x0,
+ 0xc0, 0x4c, 0xaa, 0x50, 0x48, 0x0, 0x0,
+
+ /* U+71 "q" */
+ 0x1a, 0xa9, 0xb9, 0x40, 0x3b, 0x94, 0x3, 0xb1,
+ 0xaa, 0x9b, 0x0, 0x0, 0xb0,
+
+ /* U+72 "r" */
+ 0x4b, 0xa0, 0x4a, 0x0, 0x48, 0x0, 0x48, 0x0,
+
+ /* U+73 "s" */
+ 0x5b, 0x95, 0x87, 0x30, 0x3, 0x79, 0x7a, 0xa6,
+
+ /* U+74 "t" */
+ 0x29, 0x0, 0x9d, 0x70, 0x29, 0x0, 0x29, 0x0,
+ 0xb, 0x90,
+
+ /* U+75 "u" */
+ 0x57, 0x1, 0xb5, 0x70, 0x1b, 0x48, 0x3, 0xb0,
+ 0xa9, 0x9b,
+
+ /* U+76 "v" */
+ 0xb, 0x0, 0x84, 0x5, 0x70, 0xb0, 0x0, 0xb7,
+ 0x50, 0x0, 0x6d, 0x0,
+
+ /* U+77 "w" */
+ 0xb0, 0xe, 0x20, 0xa0, 0x55, 0x59, 0x82, 0x80,
+ 0xa, 0xa0, 0xa8, 0x20, 0x9, 0x80, 0x6b, 0x0,
+
+ /* U+78 "x" */
+ 0x67, 0x1b, 0x0, 0x9b, 0x10, 0xa, 0xb2, 0x7,
+ 0x51, 0xb0,
+
+ /* U+79 "y" */
+ 0xb, 0x10, 0x83, 0x3, 0x81, 0xa0, 0x0, 0xaa,
+ 0x30, 0x0, 0x4a, 0x0, 0xa, 0xb2, 0x0,
+
+ /* U+7A "z" */
+ 0x59, 0xbb, 0x1, 0xb1, 0xb, 0x20, 0x9c, 0x98,
+
+ /* U+7B "{" */
+ 0xa, 0x60, 0xc0, 0xc, 0x5, 0xb0, 0xc, 0x0,
+ 0xc0, 0xa, 0x60,
+
+ /* U+7C "|" */
+ 0x28, 0x28, 0x28, 0x28, 0x28, 0x28, 0x28,
+
+ /* U+7D "}" */
+ 0x97, 0x0, 0xb0, 0xb, 0x0, 0xd3, 0xb, 0x0,
+ 0xb0, 0x97, 0x0,
+
+ /* U+7E "~" */
+ 0x29, 0x35, 0x15, 0x6, 0x80,
+
+ /* U+B0 "°" */
+ 0x26, 0x47, 0x7, 0x27, 0x50,
+
+ /* U+2022 "•" */
+ 0x0, 0x5d, 0x2,
+
+ /* U+F001 "" */
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x26, 0xbe,
+ 0x0, 0x8d, 0xff, 0xff, 0x0, 0xff, 0xe9, 0x5f,
+ 0x0, 0xf3, 0x0, 0xf, 0x0, 0xf0, 0x0, 0xf,
+ 0x0, 0xf0, 0xa, 0xff, 0xaf, 0xf0, 0xa, 0xfa,
+ 0xaf, 0xa0, 0x0, 0x0,
+
+ /* U+F008 "" */
+ 0xbd, 0xcc, 0xce, 0xab, 0x8b, 0x0, 0x7, 0x58,
+ 0xcd, 0x66, 0x6a, 0xac, 0xcd, 0x66, 0x6a, 0xac,
+ 0x8b, 0x0, 0x7, 0x58, 0xbd, 0xcc, 0xce, 0xab,
+
+ /* U+F00B "" */
+ 0x34, 0x14, 0x44, 0x43, 0xff, 0x7f, 0xff, 0xff,
+ 0xab, 0x4b, 0xbb, 0xba, 0xbc, 0x5c, 0xcc, 0xcb,
+ 0xff, 0x7f, 0xff, 0xff, 0x67, 0x17, 0x88, 0x86,
+ 0xff, 0x7f, 0xff, 0xff, 0xab, 0x4b, 0xbb, 0xba,
+
+ /* U+F00C "" */
+ 0x0, 0x0, 0x0, 0x9a, 0x0, 0x0, 0x9, 0xfa,
+ 0xa9, 0x0, 0x9f, 0xa0, 0xaf, 0x99, 0xfa, 0x0,
+ 0xa, 0xff, 0xa0, 0x0, 0x0, 0x99, 0x0, 0x0,
+
+ /* U+F00D "" */
+ 0x63, 0x0, 0x82, 0xcf, 0x4a, 0xf4, 0x1d, 0xff,
+ 0x60, 0xa, 0xff, 0x30, 0xaf, 0x7d, 0xf3, 0xa6,
+ 0x1, 0xb3,
+
+ /* U+F011 "" */
+ 0x0, 0xc, 0x51, 0x0, 0x1d, 0x7d, 0x6e, 0x70,
+ 0x8d, 0xd, 0x65, 0xf1, 0xc7, 0xd, 0x60, 0xe6,
+ 0xd7, 0x6, 0x20, 0xe6, 0x9d, 0x0, 0x4, 0xf2,
+ 0x1e, 0xc7, 0x8f, 0x80, 0x1, 0x9d, 0xc6, 0x0,
+
+ /* U+F013 "" */
+ 0x0, 0xc, 0xc0, 0x0, 0x18, 0x8f, 0xf8, 0x81,
+ 0x8f, 0xfe, 0xef, 0xf8, 0x2f, 0xe0, 0xe, 0xf2,
+ 0x2f, 0xe0, 0xe, 0xf2, 0x8f, 0xfe, 0xef, 0xf8,
+ 0x18, 0x8f, 0xf8, 0x81, 0x0, 0xc, 0xc0, 0x0,
+
+ /* U+F015 "" */
+ 0x0, 0x0, 0x30, 0x22, 0x0, 0x0, 0xaf, 0xaa,
+ 0xa0, 0x1, 0xda, 0x6a, 0xfa, 0x3, 0xe8, 0xbf,
+ 0xb8, 0xe3, 0xb6, 0xdf, 0xff, 0xd6, 0xb0, 0x8f,
+ 0xfb, 0xff, 0x80, 0x8, 0xfc, 0xc, 0xf8, 0x0,
+ 0x5b, 0x80, 0x8b, 0x50,
+
+ /* U+F019 "" */
+ 0x0, 0xf, 0xf0, 0x0, 0x0, 0xf, 0xf0, 0x0,
+ 0x0, 0xf, 0xf0, 0x0, 0x7, 0xff, 0xff, 0x70,
+ 0x0, 0x9f, 0xf9, 0x0, 0x78, 0x7a, 0xa7, 0x87,
+ 0xff, 0xfb, 0xbf, 0xff, 0xff, 0xff, 0xfb, 0xbf,
+
+ /* U+F01C "" */
+ 0x5, 0xff, 0xff, 0xf5, 0x1, 0xe3, 0x0, 0x3,
+ 0xe1, 0xa8, 0x0, 0x0, 0x8, 0xaf, 0xff, 0x60,
+ 0x6f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xff,
+ 0xff, 0xff, 0xfd,
+
+ /* U+F021 "" */
+ 0x0, 0x0, 0x0, 0x3, 0x2, 0xbf, 0xfb, 0x3f,
+ 0x2e, 0x91, 0x18, 0xff, 0x9a, 0x0, 0x6c, 0xff,
+ 0x31, 0x0, 0x24, 0x44, 0x44, 0x42, 0x0, 0x13,
+ 0xff, 0xc6, 0x0, 0xb9, 0xfe, 0xa5, 0x5b, 0xd1,
+ 0xf2, 0x8c, 0xc8, 0x10, 0x30, 0x0, 0x0, 0x0,
+
+ /* U+F026 "" */
+ 0x0, 0x9, 0x34, 0xcf, 0xff, 0xff, 0xff, 0xff,
+ 0xab, 0xff, 0x0, 0x4f, 0x0, 0x1,
+
+ /* U+F027 "" */
+ 0x0, 0x9, 0x0, 0x34, 0xcf, 0x1, 0xff, 0xff,
+ 0x1b, 0xff, 0xff, 0x1b, 0xbb, 0xff, 0x1, 0x0,
+ 0x4f, 0x0, 0x0, 0x1, 0x0,
+
+ /* U+F028 "" */
+ 0x0, 0x0, 0x0, 0x54, 0x0, 0x0, 0x90, 0x23,
+ 0xb3, 0x34, 0xcf, 0x2, 0xc3, 0xbf, 0xff, 0xf1,
+ 0xb5, 0x6c, 0xff, 0xff, 0x1b, 0x56, 0xca, 0xbf,
+ 0xf0, 0x2c, 0x3a, 0x0, 0x4f, 0x2, 0x3b, 0x30,
+ 0x0, 0x10, 0x5, 0x40,
+
+ /* U+F03E "" */
+ 0xdf, 0xff, 0xff, 0xfd, 0xf0, 0x7f, 0xff, 0xff,
+ 0xf8, 0xcf, 0xb1, 0xbf, 0xfb, 0x5b, 0x0, 0xf,
+ 0xf0, 0x0, 0x0, 0xf, 0xdf, 0xff, 0xff, 0xfd,
+
+ /* U+F048 "" */
+ 0x40, 0x0, 0x2f, 0x20, 0x8f, 0xf2, 0x9f, 0xff,
+ 0xcf, 0xff, 0xff, 0xff, 0xff, 0x5e, 0xff, 0xf2,
+ 0x2e, 0xfb, 0x10, 0x19,
+
+ /* U+F04B "" */
+ 0x0, 0x0, 0x0, 0xd, 0xa1, 0x0, 0x0, 0xff,
+ 0xf7, 0x0, 0xf, 0xff, 0xfd, 0x40, 0xff, 0xff,
+ 0xff, 0xaf, 0xff, 0xff, 0xfa, 0xff, 0xff, 0xd4,
+ 0xf, 0xff, 0x70, 0x0, 0xda, 0x10, 0x0, 0x0,
+ 0x0, 0x0, 0x0,
+
+ /* U+F04C "" */
+ 0x9b, 0x90, 0x9b, 0x9f, 0xff, 0xf, 0xff, 0xff,
+ 0xf0, 0xff, 0xff, 0xff, 0xf, 0xff, 0xff, 0xf0,
+ 0xff, 0xff, 0xff, 0xf, 0xff, 0xff, 0xf0, 0xff,
+ 0xf2, 0x42, 0x2, 0x42,
+
+ /* U+F04D "" */
+ 0x24, 0x44, 0x44, 0x2f, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xf8, 0xbb, 0xbb, 0xb8,
+
+ /* U+F051 "" */
+ 0x20, 0x0, 0x4f, 0x80, 0x2f, 0xff, 0x92, 0xff,
+ 0xff, 0xcf, 0xff, 0xff, 0xff, 0xfe, 0x5f, 0xfd,
+ 0x22, 0xf9, 0x10, 0x1b,
+
+ /* U+F052 "" */
+ 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x8f, 0x80,
+ 0x0, 0x0, 0x7f, 0xff, 0x70, 0x0, 0x5f, 0xff,
+ 0xff, 0x50, 0xe, 0xff, 0xff, 0xfe, 0x0, 0x58,
+ 0x88, 0x88, 0x50, 0xf, 0xff, 0xff, 0xff, 0x0,
+ 0xab, 0xbb, 0xbb, 0xa0,
+
+ /* U+F053 "" */
+ 0x0, 0x6, 0x20, 0x7, 0xf4, 0x7, 0xf5, 0x5,
+ 0xf6, 0x0, 0x1e, 0xb0, 0x0, 0x2e, 0xb0, 0x0,
+ 0x2e, 0x60, 0x0, 0x10,
+
+ /* U+F054 "" */
+ 0x26, 0x0, 0x4, 0xf7, 0x0, 0x5, 0xf7, 0x0,
+ 0x6, 0xf5, 0x0, 0xbe, 0x10, 0xbe, 0x20, 0x6e,
+ 0x20, 0x0, 0x10, 0x0,
+
+ /* U+F067 "" */
+ 0x0, 0x4, 0x0, 0x0, 0x3, 0xf3, 0x0, 0x0,
+ 0x4f, 0x40, 0x7, 0x8a, 0xfa, 0x87, 0xef, 0xff,
+ 0xff, 0xe0, 0x4, 0xf4, 0x0, 0x0, 0x4f, 0x40,
+ 0x0, 0x1, 0xb1, 0x0,
+
+ /* U+F068 "" */
+ 0x78, 0x88, 0x88, 0x7e, 0xff, 0xff, 0xfe,
+
+ /* U+F06E "" */
+ 0x0, 0x8c, 0xcc, 0x80, 0x1, 0xdd, 0x16, 0x3d,
+ 0xd1, 0xcf, 0x55, 0xed, 0x5f, 0xcb, 0xf5, 0xdf,
+ 0xd5, 0xfc, 0x1d, 0xd3, 0x73, 0xdd, 0x10, 0x8,
+ 0xdc, 0xc8, 0x10,
+
+ /* U+F070 "" */
+ 0x1d, 0x30, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x8c,
+ 0xcc, 0xa2, 0x0, 0x0, 0x2d, 0xb4, 0x49, 0xf4,
+ 0x0, 0x7a, 0x1a, 0xff, 0x3f, 0xe1, 0x7, 0xfa,
+ 0x6, 0xf7, 0xff, 0x10, 0xa, 0xf3, 0x3, 0xef,
+ 0x40, 0x0, 0x6, 0xcc, 0x71, 0xbb, 0x10, 0x0,
+ 0x0, 0x0, 0x0, 0x89,
+
+ /* U+F071 "" */
+ 0x0, 0x0, 0x3e, 0x30, 0x0, 0x0, 0x0, 0xc,
+ 0xfc, 0x0, 0x0, 0x0, 0x6, 0xfc, 0xf6, 0x0,
+ 0x0, 0x0, 0xed, 0xd, 0xe0, 0x0, 0x0, 0x8f,
+ 0xe0, 0xef, 0x80, 0x0, 0x2f, 0xff, 0x6f, 0xff,
+ 0x20, 0xb, 0xff, 0xe2, 0xef, 0xfa, 0x0, 0xdf,
+ 0xff, 0xff, 0xff, 0xd0,
+
+ /* U+F074 "" */
+ 0x0, 0x0, 0x0, 0x20, 0x44, 0x0, 0x4, 0xf5,
+ 0xef, 0xb1, 0xcf, 0xfd, 0x1, 0x8c, 0xd1, 0xc1,
+ 0x1, 0xdc, 0x81, 0xc1, 0xef, 0xc1, 0xbf, 0xfd,
+ 0x44, 0x0, 0x4, 0xf5, 0x0, 0x0, 0x0, 0x20,
+
+ /* U+F077 "" */
+ 0x0, 0x0, 0x0, 0x0, 0x4, 0xe4, 0x0, 0x4,
+ 0xfc, 0xf4, 0x4, 0xf8, 0x8, 0xf4, 0xb8, 0x0,
+ 0x8, 0xb0, 0x0, 0x0, 0x0,
+
+ /* U+F078 "" */
+ 0x0, 0x0, 0x0, 0xb, 0x80, 0x0, 0x8b, 0x4f,
+ 0x80, 0x8f, 0x40, 0x4f, 0xcf, 0x40, 0x0, 0x4e,
+ 0x40, 0x0, 0x0, 0x0, 0x0,
+
+ /* U+F079 "" */
+ 0x0, 0x94, 0x14, 0x44, 0x40, 0x0, 0xbf, 0xf8,
+ 0xbb, 0xbf, 0x10, 0x8, 0xb7, 0x60, 0x0, 0xe1,
+ 0x0, 0xb, 0x40, 0x0, 0x1e, 0x20, 0x0, 0xb7,
+ 0x44, 0x5e, 0xfd, 0x50, 0x7, 0xbb, 0xb8, 0x5f,
+ 0x80, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0,
+
+ /* U+F07B "" */
+ 0xdf, 0xfb, 0x0, 0x0, 0xff, 0xff, 0xff, 0xfd,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xfd,
+
+ /* U+F093 "" */
+ 0x0, 0x9, 0x90, 0x0, 0x0, 0x9f, 0xf9, 0x0,
+ 0x7, 0xff, 0xff, 0x70, 0x0, 0xf, 0xf0, 0x0,
+ 0x0, 0xf, 0xf0, 0x0, 0x78, 0x4f, 0xf4, 0x87,
+ 0xff, 0xe8, 0x8e, 0xff, 0xff, 0xff, 0xfb, 0xbf,
+
+ /* U+F095 "" */
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
+ 0xea, 0x0, 0x0, 0x0, 0xef, 0xe0, 0x0, 0x0,
+ 0xc, 0xfc, 0x0, 0x0, 0x0, 0x4f, 0x70, 0x0,
+ 0x0, 0x1d, 0xe0, 0x7, 0xdc, 0x4d, 0xf3, 0x0,
+ 0xef, 0xff, 0xe3, 0x0, 0xa, 0xec, 0x70, 0x0,
+ 0x0,
+
+ /* U+F0C4 "" */
+ 0x3, 0x0, 0x0, 0x0, 0xcd, 0xc0, 0x2d, 0xc0,
+ 0xe7, 0xf2, 0xee, 0x20, 0x4b, 0xff, 0xe2, 0x0,
+ 0x4, 0xff, 0xa0, 0x0, 0xcd, 0xf9, 0xf9, 0x0,
+ 0xe7, 0xe0, 0x7f, 0x90, 0x4a, 0x40, 0x4, 0x50,
+
+ /* U+F0C5 "" */
+ 0x0, 0xff, 0xf7, 0x47, 0x4f, 0xff, 0x47, 0xf8,
+ 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xf8, 0xff,
+ 0xff, 0xff, 0x8f, 0xff, 0xff, 0xfb, 0x78, 0x88,
+ 0x7f, 0xff, 0xff, 0x0,
+
+ /* U+F0C7 "" */
+ 0x24, 0x44, 0x41, 0xf, 0xbb, 0xbb, 0xe2, 0xf0,
+ 0x0, 0xf, 0xdf, 0x44, 0x44, 0xff, 0xff, 0xfc,
+ 0xff, 0xff, 0xf9, 0x9, 0xff, 0xff, 0xd5, 0xdf,
+ 0xf8, 0xbb, 0xbb, 0xb8,
+
+ /* U+F0E7 "" */
+ 0x7, 0xff, 0x60, 0x0, 0xaf, 0xf2, 0x0, 0xc,
+ 0xff, 0x87, 0x0, 0xef, 0xff, 0xb0, 0x7, 0x8e,
+ 0xf2, 0x0, 0x0, 0xf8, 0x0, 0x0, 0x3e, 0x0,
+ 0x0, 0x6, 0x50, 0x0,
+
+ /* U+F0EA "" */
+ 0x79, 0xb9, 0x70, 0xf, 0xfc, 0xff, 0x0, 0xff,
+ 0x68, 0x83, 0xf, 0xf8, 0xff, 0x8b, 0xff, 0x8f,
+ 0xf8, 0x8f, 0xf8, 0xff, 0xff, 0x78, 0x8f, 0xff,
+ 0xf0, 0x7, 0xff, 0xff,
+
+ /* U+F0F3 "" */
+ 0x0, 0xd, 0x0, 0x0, 0x4e, 0xfe, 0x30, 0xd,
+ 0xff, 0xfd, 0x0, 0xff, 0xff, 0xf0, 0x3f, 0xff,
+ 0xff, 0x3b, 0xff, 0xff, 0xfb, 0x78, 0x88, 0x88,
+ 0x60, 0x4, 0xf4, 0x0,
+
+ /* U+F11C "" */
+ 0xdf, 0xff, 0xff, 0xff, 0xdf, 0x18, 0x81, 0x88,
+ 0x1f, 0xfe, 0xaa, 0xca, 0xae, 0xff, 0xea, 0xac,
+ 0xaa, 0xef, 0xf1, 0x80, 0x0, 0x81, 0xfd, 0xff,
+ 0xff, 0xff, 0xfd,
+
+ /* U+F124 "" */
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+ 0x4b, 0xc0, 0x0, 0x0, 0x5c, 0xff, 0xb0, 0x0,
+ 0x6e, 0xff, 0xff, 0x40, 0xd, 0xff, 0xff, 0xfc,
+ 0x0, 0x6, 0x88, 0xcf, 0xf5, 0x0, 0x0, 0x0,
+ 0x8f, 0xe0, 0x0, 0x0, 0x0, 0x8f, 0x60, 0x0,
+ 0x0, 0x0, 0x5d, 0x0, 0x0, 0x0, 0x0, 0x0,
+ 0x0, 0x0,
+
+ /* U+F15B "" */
+ 0xff, 0xf8, 0xb0, 0xff, 0xf8, 0xfb, 0xff, 0xfc,
+ 0x88, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+
+ /* U+F1EB "" */
+ 0x0, 0x4, 0x77, 0x40, 0x0, 0x9, 0xff, 0xcc,
+ 0xff, 0x90, 0xcd, 0x40, 0x0, 0x4, 0xdc, 0x20,
+ 0x4b, 0xff, 0xb4, 0x2, 0x1, 0xfa, 0x55, 0xaf,
+ 0x10, 0x0, 0x0, 0x21, 0x0, 0x0, 0x0, 0x0,
+ 0xee, 0x0, 0x0, 0x0, 0x0, 0x87, 0x0, 0x0,
+
+ /* U+F240 "" */
+ 0x24, 0x44, 0x44, 0x44, 0x40, 0xfb, 0xbb, 0xbb,
+ 0xbb, 0xda, 0xf7, 0xee, 0xee, 0xee, 0x5f, 0xf8,
+ 0xff, 0xff, 0xff, 0x2f, 0xf5, 0x66, 0x66, 0x66,
+ 0xab, 0x8b, 0xbb, 0xbb, 0xbb, 0xb3,
+
+ /* U+F241 "" */
+ 0x24, 0x44, 0x44, 0x44, 0x40, 0xfb, 0xbb, 0xbb,
+ 0xbb, 0xda, 0xf7, 0xee, 0xee, 0x70, 0x5f, 0xf8,
+ 0xff, 0xff, 0x80, 0x2f, 0xf5, 0x66, 0x66, 0x54,
+ 0xab, 0x8b, 0xbb, 0xbb, 0xbb, 0xb3,
+
+ /* U+F242 "" */
+ 0x24, 0x44, 0x44, 0x44, 0x40, 0xfb, 0xbb, 0xbb,
+ 0xbb, 0xda, 0xf7, 0xee, 0xe0, 0x0, 0x5f, 0xf8,
+ 0xff, 0xf0, 0x0, 0x2f, 0xf5, 0x66, 0x64, 0x44,
+ 0xab, 0x8b, 0xbb, 0xbb, 0xbb, 0xb3,
+
+ /* U+F243 "" */
+ 0x24, 0x44, 0x44, 0x44, 0x40, 0xfb, 0xbb, 0xbb,
+ 0xbb, 0xda, 0xf7, 0xe7, 0x0, 0x0, 0x5f, 0xf8,
+ 0xf8, 0x0, 0x0, 0x2f, 0xf5, 0x65, 0x44, 0x44,
+ 0xab, 0x8b, 0xbb, 0xbb, 0xbb, 0xb3,
+
+ /* U+F244 "" */
+ 0x24, 0x44, 0x44, 0x44, 0x40, 0xfb, 0xbb, 0xbb,
+ 0xbb, 0xd8, 0xf0, 0x0, 0x0, 0x0, 0x5f, 0xf0,
+ 0x0, 0x0, 0x0, 0x2f, 0xf4, 0x44, 0x44, 0x44,
+ 0xad, 0x8b, 0xbb, 0xbb, 0xbb, 0xb3,
+
+ /* U+F287 "" */
+ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
+ 0xd8, 0x0, 0x0, 0x0, 0x7, 0x36, 0x40, 0x0,
+ 0x9, 0xb1, 0x91, 0x11, 0x17, 0x20, 0xef, 0x88,
+ 0xd8, 0x88, 0xd9, 0x2, 0x20, 0x6, 0x48, 0x70,
+ 0x0, 0x0, 0x0, 0x6, 0xec, 0x0, 0x0, 0x0,
+ 0x0, 0x0, 0x0, 0x0,
+
+ /* U+F293 "" */
+ 0x6, 0xdd, 0xc3, 0x4, 0xff, 0x3e, 0xd0, 0x9c,
+ 0xb5, 0x5f, 0x2b, 0xf7, 0x1a, 0xf4, 0xbf, 0x81,
+ 0xbf, 0x39, 0xc9, 0x64, 0xf2, 0x4f, 0xf3, 0xde,
+ 0x0, 0x6d, 0xed, 0x30,
+
+ /* U+F2ED "" */
+ 0x78, 0xdf, 0xd8, 0x77, 0x88, 0x88, 0x87, 0x8f,
+ 0xff, 0xff, 0x88, 0xcc, 0x8c, 0xc8, 0x8c, 0xc8,
+ 0xcc, 0x88, 0xcc, 0x8c, 0xc8, 0x8c, 0xc8, 0xcc,
+ 0x85, 0xff, 0xff, 0xf5,
+
+ /* U+F304 "" */
+ 0x0, 0x0, 0x0, 0x7e, 0x30, 0x0, 0x0, 0x4b,
+ 0xfe, 0x0, 0x0, 0x8f, 0x9b, 0x70, 0x0, 0x8f,
+ 0xff, 0x40, 0x0, 0x8f, 0xff, 0x80, 0x0, 0x7f,
+ 0xff, 0x80, 0x0, 0xe, 0xff, 0x80, 0x0, 0x0,
+ 0xee, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
+ 0x0,
+
+ /* U+F55A "" */
+ 0x0, 0xaf, 0xff, 0xff, 0xfc, 0xb, 0xff, 0x9c,
+ 0xc9, 0xff, 0xaf, 0xff, 0xc1, 0x1c, 0xff, 0xaf,
+ 0xff, 0xc1, 0x1c, 0xff, 0xb, 0xff, 0x9c, 0xc9,
+ 0xff, 0x0, 0xaf, 0xff, 0xff, 0xfc,
+
+ /* U+F7C2 "" */
+ 0x7, 0xff, 0xfe, 0x17, 0xb6, 0x27, 0xc3, 0xfe,
+ 0xb9, 0xbe, 0x3f, 0xff, 0xff, 0xf3, 0xff, 0xff,
+ 0xff, 0x3f, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xff,
+ 0x3c, 0xff, 0xff, 0xe1,
+
+ /* U+F8A2 "" */
+ 0x0, 0x0, 0x0, 0x3, 0x0, 0x23, 0x0, 0x2,
+ 0xf0, 0x2e, 0x92, 0x22, 0x5f, 0xd, 0xff, 0xff,
+ 0xff, 0xf0, 0x2e, 0x92, 0x22, 0x21, 0x0, 0x23,
+ 0x0, 0x0, 0x0
+};
+
+/*---------------------
+ * 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 = 34, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 0, .adv_w = 34, .box_w = 2, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 5, .adv_w = 50, .box_w = 3, .box_h = 3, .ofs_x = 0, .ofs_y = 2},
+ {.bitmap_index = 10, .adv_w = 90, .box_w = 6, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 25, .adv_w = 79, .box_w = 5, .box_h = 7, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 43, .adv_w = 108, .box_w = 7, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 61, .adv_w = 88, .box_w = 6, .box_h = 6, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 79, .adv_w = 27, .box_w = 2, .box_h = 3, .ofs_x = 0, .ofs_y = 2},
+ {.bitmap_index = 82, .adv_w = 43, .box_w = 3, .box_h = 7, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 93, .adv_w = 43, .box_w = 2, .box_h = 7, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 100, .adv_w = 51, .box_w = 4, .box_h = 3, .ofs_x = 0, .ofs_y = 3},
+ {.bitmap_index = 106, .adv_w = 74, .box_w = 5, .box_h = 4, .ofs_x = 0, .ofs_y = 1},
+ {.bitmap_index = 116, .adv_w = 29, .box_w = 2, .box_h = 3, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 119, .adv_w = 49, .box_w = 3, .box_h = 1, .ofs_x = 0, .ofs_y = 2},
+ {.bitmap_index = 121, .adv_w = 29, .box_w = 2, .box_h = 2, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 123, .adv_w = 45, .box_w = 5, .box_h = 7, .ofs_x = -1, .ofs_y = -1},
+ {.bitmap_index = 141, .adv_w = 85, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 154, .adv_w = 47, .box_w = 3, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 162, .adv_w = 73, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 175, .adv_w = 73, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 188, .adv_w = 86, .box_w = 6, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 203, .adv_w = 73, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 216, .adv_w = 79, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 229, .adv_w = 77, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 242, .adv_w = 82, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 255, .adv_w = 79, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 268, .adv_w = 29, .box_w = 2, .box_h = 4, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 272, .adv_w = 29, .box_w = 2, .box_h = 6, .ofs_x = 0, .ofs_y = -2},
+ {.bitmap_index = 278, .adv_w = 74, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 291, .adv_w = 74, .box_w = 5, .box_h = 3, .ofs_x = 0, .ofs_y = 1},
+ {.bitmap_index = 299, .adv_w = 74, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 312, .adv_w = 73, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 325, .adv_w = 132, .box_w = 8, .box_h = 6, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 349, .adv_w = 94, .box_w = 7, .box_h = 5, .ofs_x = -1, .ofs_y = 0},
+ {.bitmap_index = 367, .adv_w = 97, .box_w = 6, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 382, .adv_w = 93, .box_w = 6, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 397, .adv_w = 106, .box_w = 7, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 415, .adv_w = 86, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 428, .adv_w = 81, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 441, .adv_w = 99, .box_w = 6, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 456, .adv_w = 104, .box_w = 6, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 471, .adv_w = 40, .box_w = 2, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 476, .adv_w = 66, .box_w = 5, .box_h = 5, .ofs_x = -1, .ofs_y = 0},
+ {.bitmap_index = 489, .adv_w = 92, .box_w = 6, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 504, .adv_w = 76, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 517, .adv_w = 122, .box_w = 7, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 535, .adv_w = 104, .box_w = 6, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 550, .adv_w = 108, .box_w = 7, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 568, .adv_w = 92, .box_w = 6, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 583, .adv_w = 108, .box_w = 7, .box_h = 6, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 604, .adv_w = 93, .box_w = 6, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 619, .adv_w = 79, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 632, .adv_w = 75, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 645, .adv_w = 101, .box_w = 6, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 660, .adv_w = 91, .box_w = 7, .box_h = 5, .ofs_x = -1, .ofs_y = 0},
+ {.bitmap_index = 678, .adv_w = 144, .box_w = 9, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 701, .adv_w = 86, .box_w = 6, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 716, .adv_w = 83, .box_w = 7, .box_h = 5, .ofs_x = -1, .ofs_y = 0},
+ {.bitmap_index = 734, .adv_w = 84, .box_w = 6, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 749, .adv_w = 43, .box_w = 3, .box_h = 7, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 760, .adv_w = 45, .box_w = 5, .box_h = 7, .ofs_x = -1, .ofs_y = -1},
+ {.bitmap_index = 778, .adv_w = 43, .box_w = 2, .box_h = 7, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 785, .adv_w = 75, .box_w = 5, .box_h = 3, .ofs_x = 0, .ofs_y = 1},
+ {.bitmap_index = 793, .adv_w = 64, .box_w = 4, .box_h = 1, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 795, .adv_w = 77, .box_w = 3, .box_h = 1, .ofs_x = 0, .ofs_y = 5},
+ {.bitmap_index = 797, .adv_w = 77, .box_w = 5, .box_h = 4, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 807, .adv_w = 87, .box_w = 6, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 825, .adv_w = 73, .box_w = 5, .box_h = 4, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 835, .adv_w = 87, .box_w = 5, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 850, .adv_w = 78, .box_w = 5, .box_h = 4, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 860, .adv_w = 45, .box_w = 4, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 872, .adv_w = 88, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 885, .adv_w = 87, .box_w = 5, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 900, .adv_w = 36, .box_w = 2, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 906, .adv_w = 36, .box_w = 3, .box_h = 7, .ofs_x = -1, .ofs_y = -1},
+ {.bitmap_index = 917, .adv_w = 79, .box_w = 5, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 932, .adv_w = 36, .box_w = 2, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 938, .adv_w = 135, .box_w = 8, .box_h = 4, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 954, .adv_w = 87, .box_w = 5, .box_h = 4, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 964, .adv_w = 81, .box_w = 5, .box_h = 4, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 974, .adv_w = 87, .box_w = 6, .box_h = 5, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 989, .adv_w = 87, .box_w = 5, .box_h = 5, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1002, .adv_w = 52, .box_w = 4, .box_h = 4, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1010, .adv_w = 64, .box_w = 4, .box_h = 4, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1018, .adv_w = 53, .box_w = 4, .box_h = 5, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1028, .adv_w = 87, .box_w = 5, .box_h = 4, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1038, .adv_w = 72, .box_w = 6, .box_h = 4, .ofs_x = -1, .ofs_y = 0},
+ {.bitmap_index = 1050, .adv_w = 115, .box_w = 8, .box_h = 4, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1066, .adv_w = 71, .box_w = 5, .box_h = 4, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1076, .adv_w = 72, .box_w = 6, .box_h = 5, .ofs_x = -1, .ofs_y = -1},
+ {.bitmap_index = 1091, .adv_w = 67, .box_w = 4, .box_h = 4, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1099, .adv_w = 45, .box_w = 3, .box_h = 7, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1110, .adv_w = 38, .box_w = 2, .box_h = 7, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1117, .adv_w = 45, .box_w = 3, .box_h = 7, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1128, .adv_w = 74, .box_w = 5, .box_h = 2, .ofs_x = 0, .ofs_y = 2},
+ {.bitmap_index = 1133, .adv_w = 54, .box_w = 3, .box_h = 3, .ofs_x = 0, .ofs_y = 3},
+ {.bitmap_index = 1138, .adv_w = 40, .box_w = 2, .box_h = 3, .ofs_x = 0, .ofs_y = 1},
+ {.bitmap_index = 1141, .adv_w = 128, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1177, .adv_w = 128, .box_w = 8, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1201, .adv_w = 128, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1233, .adv_w = 128, .box_w = 8, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1257, .adv_w = 88, .box_w = 6, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1275, .adv_w = 128, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1307, .adv_w = 128, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1339, .adv_w = 144, .box_w = 9, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1375, .adv_w = 128, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1407, .adv_w = 144, .box_w = 9, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1434, .adv_w = 128, .box_w = 8, .box_h = 10, .ofs_x = 0, .ofs_y = -2},
+ {.bitmap_index = 1474, .adv_w = 64, .box_w = 4, .box_h = 7, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1488, .adv_w = 96, .box_w = 6, .box_h = 7, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1509, .adv_w = 144, .box_w = 9, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1545, .adv_w = 128, .box_w = 8, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1569, .adv_w = 112, .box_w = 5, .box_h = 8, .ofs_x = 1, .ofs_y = -1},
+ {.bitmap_index = 1589, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = -2},
+ {.bitmap_index = 1624, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1652, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1680, .adv_w = 112, .box_w = 5, .box_h = 8, .ofs_x = 1, .ofs_y = -1},
+ {.bitmap_index = 1700, .adv_w = 112, .box_w = 9, .box_h = 8, .ofs_x = -1, .ofs_y = -1},
+ {.bitmap_index = 1736, .adv_w = 80, .box_w = 5, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1756, .adv_w = 80, .box_w = 5, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1776, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1804, .adv_w = 112, .box_w = 7, .box_h = 2, .ofs_x = 0, .ofs_y = 2},
+ {.bitmap_index = 1811, .adv_w = 144, .box_w = 9, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1838, .adv_w = 160, .box_w = 11, .box_h = 8, .ofs_x = -1, .ofs_y = -1},
+ {.bitmap_index = 1882, .adv_w = 144, .box_w = 11, .box_h = 8, .ofs_x = -1, .ofs_y = -1},
+ {.bitmap_index = 1926, .adv_w = 128, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 1958, .adv_w = 112, .box_w = 7, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1979, .adv_w = 112, .box_w = 7, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 2000, .adv_w = 160, .box_w = 11, .box_h = 7, .ofs_x = -1, .ofs_y = -1},
+ {.bitmap_index = 2039, .adv_w = 128, .box_w = 8, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 2063, .adv_w = 128, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 2095, .adv_w = 128, .box_w = 9, .box_h = 9, .ofs_x = -1, .ofs_y = -1},
+ {.bitmap_index = 2136, .adv_w = 112, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 2168, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 2196, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 2224, .adv_w = 80, .box_w = 7, .box_h = 8, .ofs_x = -1, .ofs_y = -1},
+ {.bitmap_index = 2252, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 2280, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 2308, .adv_w = 144, .box_w = 9, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 2335, .adv_w = 128, .box_w = 10, .box_h = 10, .ofs_x = -1, .ofs_y = -2},
+ {.bitmap_index = 2385, .adv_w = 96, .box_w = 6, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 2409, .adv_w = 160, .box_w = 10, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 2449, .adv_w = 160, .box_w = 10, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 2479, .adv_w = 160, .box_w = 10, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 2509, .adv_w = 160, .box_w = 10, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 2539, .adv_w = 160, .box_w = 10, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 2569, .adv_w = 160, .box_w = 10, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 2599, .adv_w = 160, .box_w = 11, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 2643, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 2671, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 2699, .adv_w = 128, .box_w = 9, .box_h = 9, .ofs_x = -1, .ofs_y = -2},
+ {.bitmap_index = 2740, .adv_w = 160, .box_w = 10, .box_h = 6, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 2770, .adv_w = 96, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = -1},
+ {.bitmap_index = 2798, .adv_w = 129, .box_w = 9, .box_h = 6, .ofs_x = 0, .ofs_y = 0}
+};
+
+/*---------------------
+ * CHARACTER MAPPING
+ *--------------------*/
+
+static const uint16_t unicode_list_1[] = {
+ 0x0, 0x1f72, 0xef51, 0xef58, 0xef5b, 0xef5c, 0xef5d, 0xef61,
+ 0xef63, 0xef65, 0xef69, 0xef6c, 0xef71, 0xef76, 0xef77, 0xef78,
+ 0xef8e, 0xef98, 0xef9b, 0xef9c, 0xef9d, 0xefa1, 0xefa2, 0xefa3,
+ 0xefa4, 0xefb7, 0xefb8, 0xefbe, 0xefc0, 0xefc1, 0xefc4, 0xefc7,
+ 0xefc8, 0xefc9, 0xefcb, 0xefe3, 0xefe5, 0xf014, 0xf015, 0xf017,
+ 0xf037, 0xf03a, 0xf043, 0xf06c, 0xf074, 0xf0ab, 0xf13b, 0xf190,
+ 0xf191, 0xf192, 0xf193, 0xf194, 0xf1d7, 0xf1e3, 0xf23d, 0xf254,
+ 0xf4aa, 0xf712, 0xf7f2
+};
+
+/*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 = 176, .range_length = 63475, .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
+ }
+};
+
+/*-----------------
+ * KERNING
+ *----------------*/
+
+/*Map glyph_ids to kern left classes*/
+static const uint8_t kern_left_class_mapping[] =
+{
+ 0, 0, 1, 2, 0, 3, 4, 5,
+ 2, 6, 7, 8, 9, 10, 9, 10,
+ 11, 12, 0, 13, 14, 15, 16, 17,
+ 18, 19, 12, 20, 20, 0, 0, 0,
+ 21, 22, 23, 24, 25, 22, 26, 27,
+ 28, 29, 29, 30, 31, 32, 29, 29,
+ 22, 33, 34, 35, 3, 36, 30, 37,
+ 37, 38, 39, 40, 41, 42, 43, 0,
+ 44, 0, 45, 46, 47, 48, 49, 50,
+ 51, 45, 52, 52, 53, 48, 45, 45,
+ 46, 46, 54, 55, 56, 57, 51, 58,
+ 58, 59, 58, 60, 41, 0, 0, 9,
+ 61, 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, 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, 1, 2, 0, 3, 4, 5,
+ 2, 6, 7, 8, 9, 10, 9, 10,
+ 11, 12, 13, 14, 15, 16, 17, 12,
+ 18, 19, 20, 21, 21, 0, 0, 0,
+ 22, 23, 24, 25, 23, 25, 25, 25,
+ 23, 25, 25, 26, 25, 25, 25, 25,
+ 23, 25, 23, 25, 3, 27, 28, 29,
+ 29, 30, 31, 32, 33, 34, 35, 0,
+ 36, 0, 37, 38, 39, 39, 39, 0,
+ 39, 38, 40, 41, 38, 38, 42, 42,
+ 39, 42, 39, 42, 43, 44, 45, 46,
+ 46, 47, 46, 48, 0, 0, 35, 9,
+ 49, 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, 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, 0, 0, 0, 1, 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, 6, 0, 3, -3, 0, 0,
+ 0, 0, -7, -8, 1, 6, 3, 2,
+ -5, 1, 6, 0, 5, 1, 4, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 8, 1, -1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 3, 0, -4, 0, 0, 0, 0,
+ 0, -3, 2, 3, 0, 0, -1, 0,
+ -1, 1, 0, -1, 0, -1, -1, -3,
+ 0, 0, 0, 0, -1, 0, 0, -2,
+ -2, 0, 0, -1, 0, -3, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, -1,
+ -1, 0, -2, 0, -3, 0, -15, 0,
+ 0, -3, 0, 3, 4, 0, 0, -3,
+ 1, 1, 4, 3, -2, 3, 0, 0,
+ -7, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -5, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -3, -2, -6, 0, -5,
+ -1, 0, 0, 0, 0, 0, 5, 0,
+ -4, -1, 0, 0, 0, -2, 0, 0,
+ -1, -9, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, -10, -1, 5,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -5, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 4,
+ 0, 1, 0, 0, -3, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 5, 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, 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, 1,
+ 3, 1, 4, -1, 0, 0, 3, -1,
+ -4, -18, 1, 3, 3, 0, -2, 0,
+ 5, 0, 4, 0, 4, 0, -12, 0,
+ -2, 4, 0, 4, -1, 3, 1, 0,
+ 0, 0, -1, 0, 0, -2, 10, 0,
+ 10, 0, 4, 0, 5, 2, 2, 4,
+ 0, 0, 0, -5, 0, 0, 0, 0,
+ 0, -1, 0, 1, -2, -2, -3, 1,
+ 0, -1, 0, 0, 0, -5, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -8, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, -7, 0, -8, 0, 0, 0,
+ 0, -1, 0, 13, -2, -2, 1, 1,
+ -1, 0, -2, 1, 0, 0, -7, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, -12, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -8, 0, 8, 0, 0, -5, 0,
+ 4, 0, -9, -12, -9, -3, 4, 0,
+ 0, -9, 0, 2, -3, 0, -2, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 3, 4, -16, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 6, 0, 1, 0, 0, 0,
+ 0, 0, 1, 1, -2, -3, 0, 0,
+ 0, -1, 0, 0, -1, 0, 0, 0,
+ -3, 0, -1, 0, -3, -3, 0, -3,
+ -4, -4, -2, 0, -3, 0, -3, 0,
+ 0, 0, 0, -1, 0, 0, 1, 0,
+ 1, -1, 0, 0, 0, 0, 0, 1,
+ -1, 0, 0, 0, -1, 1, 1, 0,
+ 0, 0, 0, -2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 2, -1, 0,
+ -2, 0, -2, 0, 0, -1, 0, 4,
+ 0, 0, -1, 0, 0, 0, 0, 0,
+ 0, 0, -1, -1, 0, 0, -1, 0,
+ -1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, -1, -1, 0, -1, -2, 0,
+ 0, 0, 0, 0, 0, 0, 0, -1,
+ 0, -1, -1, -1, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, -1, 0, 0,
+ 0, 0, -1, -2, 0, -2, 0, -4,
+ -1, -4, 3, 0, 0, -3, 1, 3,
+ 3, 0, -3, 0, -2, 0, 0, -6,
+ 1, -1, 1, -7, 1, 0, 0, 0,
+ -7, 0, -7, -1, -11, -1, 0, -6,
+ 0, 3, 4, 0, 2, 0, 0, 0,
+ 0, 0, 0, -2, -2, 0, -4, 0,
+ 0, 0, -1, 0, 0, 0, -1, 0,
+ 0, 0, 0, 0, -1, -1, 0, -1,
+ -2, 0, 0, 0, 0, 0, 0, 0,
+ -1, -1, 0, -1, -2, -1, 0, 0,
+ -1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -1, -1, 0, -2,
+ 0, -1, 0, -3, 1, 0, 0, -2,
+ 1, 1, 1, 0, 0, 0, 0, 0,
+ 0, -1, 0, 0, 0, 0, 0, 1,
+ 0, 0, -1, 0, -1, -1, -2, 0,
+ 0, 0, 0, 0, 0, 0, 1, 0,
+ -1, 0, 0, 0, 0, -1, -2, 0,
+ -2, 0, 4, -1, 0, -4, 0, 0,
+ 3, -6, -7, -5, -3, 1, 0, -1,
+ -8, -2, 0, -2, 0, -3, 2, -2,
+ -8, 0, -3, 0, 0, 1, 0, 1,
+ -1, 0, 1, 0, -4, -5, 0, -6,
+ -3, -3, -3, -4, -2, -3, 0, -2,
+ -3, 1, 0, 0, 0, -1, 0, 0,
+ 0, 1, 0, 1, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, -1,
+ 0, -1, 0, 0, -1, 0, -2, -3,
+ -3, 0, 0, -4, 0, 0, 0, 0,
+ 0, 0, -1, 0, 0, 0, 0, 1,
+ -1, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 6, 0, 0,
+ 0, 0, 0, 0, 1, 0, 0, 0,
+ -1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -2, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -1, 0, 0, 0,
+ -2, 0, 0, 0, 0, -6, -4, 0,
+ 0, 0, -2, -6, 0, 0, -1, 1,
+ 0, -3, 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, 1, 0, -2, 0,
+ 0, 0, 0, 2, 0, 1, -3, -3,
+ 0, -1, -1, -2, 0, 0, 0, 0,
+ 0, 0, -4, 0, -1, 0, -2, -1,
+ 0, -3, -3, -4, -1, 0, -3, 0,
+ -4, 0, 0, 0, 0, 10, 0, 0,
+ 1, 0, 0, -2, 0, 1, 0, -6,
+ 0, 0, 0, 0, 0, -12, -2, 4,
+ 4, -1, -5, 0, 1, -2, 0, -6,
+ -1, -2, 1, -9, -1, 2, 0, 2,
+ -4, -2, -5, -4, -5, 0, 0, -8,
+ 0, 7, 0, 0, -1, 0, 0, 0,
+ -1, -1, -1, -3, -4, 0, -12, 0,
+ 0, 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, -2, 0, 0,
+ -3, 0, -1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -3, 0, 0, 3,
+ 0, 2, 0, -3, 1, -1, 0, -3,
+ -1, 0, -2, -1, -1, 0, -2, -2,
+ 0, 0, -1, 0, -1, -2, -2, 0,
+ 0, -1, 0, 1, -1, 0, -3, 0,
+ 0, 0, -3, 0, -2, 0, -2, -2,
+ 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, -3, 1, 0, -2, 0, -1, -2,
+ -4, -1, -1, -1, 0, -1, -2, 0,
+ 0, 0, 0, 0, 0, -1, -1, -1,
+ 0, 0, 0, 0, 2, -1, 0, -1,
+ 0, 0, 0, -1, -2, -1, -1, -2,
+ -1, 0, 1, 5, 0, 0, -3, 0,
+ -1, 3, 0, -1, -5, -2, 2, 0,
+ 0, -6, -2, 1, -2, 1, 0, -1,
+ -1, -4, 0, -2, 1, 0, 0, -2,
+ 0, 0, 0, 1, 1, -3, -2, 0,
+ -2, -1, -2, -1, -1, 0, -2, 1,
+ -2, -2, 4, 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, -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, 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, -1, -1,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -2, 0, 0, -2,
+ 0, 0, -1, -1, 0, 0, 0, 0,
+ -1, 0, 0, 0, 0, -1, 0, 0,
+ 0, 0, 0, -1, 0, 0, 0, 0,
+ -2, 0, -3, 0, 0, 0, -4, 0,
+ 1, -3, 3, 0, -1, -6, 0, 0,
+ -3, -1, 0, -5, -3, -4, 0, 0,
+ -6, -1, -5, -5, -6, 0, -3, 0,
+ 1, 9, -2, 0, -3, -1, 0, -1,
+ -2, -3, -2, -5, -5, -3, -1, 0,
+ 0, -1, 0, 0, 0, 0, -9, -1,
+ 4, 3, -3, -5, 0, 0, -4, 0,
+ -6, -1, -1, 3, -12, -2, 0, 0,
+ 0, -8, -2, -7, -1, -9, 0, 0,
+ -9, 0, 8, 0, 0, -1, 0, 0,
+ 0, 0, -1, -1, -5, -1, 0, -8,
+ 0, 0, 0, 0, -4, 0, -1, 0,
+ 0, -4, -6, 0, 0, -1, -2, -4,
+ -1, 0, -1, 0, 0, 0, 0, -6,
+ -1, -4, -4, -1, -2, -3, -1, -2,
+ 0, -3, -1, -4, -2, 0, -2, -2,
+ -1, -2, 0, 1, 0, -1, -4, 0,
+ 3, 0, -2, 0, 0, 0, 0, 2,
+ 0, 1, -3, 5, 0, -1, -1, -2,
+ 0, 0, 0, 0, 0, 0, -4, 0,
+ -1, 0, -2, -1, 0, -3, -3, -4,
+ -1, 0, -3, 1, 5, 0, 0, 0,
+ 0, 10, 0, 0, 1, 0, 0, -2,
+ 0, 1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -1, -3, 0, 0, 0, 0, 0, -1,
+ 0, 0, 0, -1, -1, 0, 0, -3,
+ -1, 0, 0, -3, 0, 2, -1, 0,
+ 0, 0, 0, 0, 0, 1, 0, 0,
+ 0, 0, 2, 3, 1, -1, 0, -4,
+ -2, 0, 4, -4, -4, -3, -3, 5,
+ 2, 1, -11, -1, 3, -1, 0, -1,
+ 1, -1, -4, 0, -1, 1, -2, -1,
+ -4, -1, 0, 0, 4, 3, 0, -4,
+ 0, -7, -2, 4, -2, -5, 0, -2,
+ -4, -4, -1, 5, 1, 0, -2, 0,
+ -3, 0, 1, 4, -3, -5, -5, -3,
+ 4, 0, 0, -9, -1, 1, -2, -1,
+ -3, 0, -3, -5, -2, -2, -1, 0,
+ 0, -3, -3, -1, 0, 4, 3, -1,
+ -7, 0, -7, -2, 0, -4, -7, 0,
+ -4, -2, -4, -4, 3, 0, 0, -2,
+ 0, -3, -1, 0, -1, -2, 0, 2,
+ -4, 1, 0, 0, -7, 0, -1, -3,
+ -2, -1, -4, -3, -4, -3, 0, -4,
+ -1, -3, -2, -4, -1, 0, 0, 0,
+ 6, -2, 0, -4, -1, 0, -1, -3,
+ -3, -3, -4, -5, -2, -3, 3, 0,
+ -2, 0, -6, -2, 1, 3, -4, -5,
+ -3, -4, 4, -1, 1, -12, -2, 3,
+ -3, -2, -5, 0, -4, -5, -2, -1,
+ -1, -1, -3, -4, 0, 0, 0, 4,
+ 4, -1, -8, 0, -8, -3, 3, -5,
+ -9, -3, -4, -5, -6, -4, 3, 0,
+ 0, 0, 0, -2, 0, 0, 1, -2,
+ 3, 1, -2, 3, 0, 0, -4, 0,
+ 0, 0, 0, 0, 0, -1, 0, 0,
+ 0, 0, 0, 0, -1, 0, 0, 0,
+ 0, 1, 4, 0, 0, -2, 0, 0,
+ 0, 0, -1, -1, -2, 0, 0, 0,
+ 0, 1, 0, 0, 0, 0, 1, 0,
+ -1, 0, 5, 0, 2, 0, 0, -2,
+ 0, 3, 0, 0, 0, 1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 4, 0, 4, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, -8, 0, -1, 2, 0, 4,
+ 0, 0, 13, 2, -3, -3, 1, 1,
+ -1, 0, -6, 0, 0, 6, -8, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, -9, 5, 18, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -8, 0, 0, 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, -2,
+ -1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -1, 0, -3, 0,
+ 0, 0, 0, 0, 1, 17, -3, -1,
+ 4, 3, -3, 1, 0, 0, 1, 1,
+ -2, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -17, 4, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, -4,
+ 0, 0, 0, -3, 0, 0, 0, 0,
+ -3, -1, 0, 0, 0, -3, 0, -2,
+ 0, -6, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, -9, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -1, 0, 0, -2, 0, -2, 0,
+ -3, 0, 0, 0, -2, 1, -2, 0,
+ 0, -3, -1, -3, 0, 0, -3, 0,
+ -1, 0, -6, 0, -1, 0, 0, -10,
+ -2, -5, -1, -5, 0, 0, -9, 0,
+ -3, -1, 0, 0, 0, 0, 0, 0,
+ 0, 0, -2, -2, -1, -2, 0, 0,
+ 0, 0, -3, 0, -3, 2, -1, 3,
+ 0, -1, -3, -1, -2, -2, 0, -2,
+ -1, -1, 1, -3, 0, 0, 0, 0,
+ -11, -1, -2, 0, -3, 0, -1, -6,
+ -1, 0, 0, -1, -1, 0, 0, 0,
+ 0, 1, 0, -1, -2, -1, 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, 0, 0, 0, 0, 0,
+ 0, 0, 2, 0, 0, 0, 0, 0,
+ 0, -3, 0, -1, 0, 0, 0, -3,
+ 1, 0, 0, 0, -3, -1, -3, 0,
+ 0, -4, 0, -1, 0, -6, 0, 0,
+ 0, 0, -12, 0, -3, -5, -6, 0,
+ 0, -9, 0, -1, -2, 0, 0, 0,
+ 0, 0, 0, 0, 0, -1, -2, -1,
+ -2, 0, 0, 0, 2, -2, 0, 4,
+ 6, -1, -1, -4, 2, 6, 2, 3,
+ -3, 2, 5, 2, 4, 3, 3, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 8, 6, -2, -1, 0, -1,
+ 10, 6, 10, 0, 0, 0, 1, 0,
+ 0, 5, 0, 0, -2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, -1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 2,
+ 0, 0, 0, 0, -11, -2, -1, -5,
+ -6, 0, 0, -9, 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, -1,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 2, 0, 0, 0, 0, -11, -2, -1,
+ -5, -6, 0, 0, -5, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -1, 0, 0, 0, -3, 1, 0, -1,
+ 1, 2, 1, -4, 0, 0, -1, 1,
+ 0, 1, 0, 0, 0, 0, -3, 0,
+ -1, -1, -3, 0, -1, -5, 0, 8,
+ -1, 0, -3, -1, 0, -1, -2, 0,
+ -1, -4, -3, -2, 0, 0, 0, -2,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -1, 0, 0, 0, 0, 0, 0,
+ 0, 0, 2, 0, 0, 0, 0, -11,
+ -2, -1, -5, -6, 0, 0, -9, 0,
+ 0, 0, 0, 0, 0, 6, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -2, 0, -4, -2, -1, 4, -1, -1,
+ -5, 0, -1, 0, -1, -3, 0, 3,
+ 0, 1, 0, 1, -3, -5, -2, 0,
+ -5, -2, -3, -5, -5, 0, -2, -3,
+ -2, -2, -1, -1, -2, -1, 0, -1,
+ 0, 2, 0, 2, -1, 0, 4, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -1, -1, -1, 0, 0,
+ -3, 0, -1, 0, -2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ -8, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -1, -1, 0, -2,
+ 0, 0, 0, 0, -1, 0, 0, -2,
+ -1, 1, 0, -2, -2, -1, 0, -4,
+ -1, -3, -1, -2, 0, -2, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -9, 0, 4, 0, 0, -2, 0,
+ 0, 0, 0, -2, 0, -1, 0, 0,
+ -1, 0, 0, -1, 0, -3, 0, 0,
+ 5, -2, -4, -4, 1, 1, 1, 0,
+ -4, 1, 2, 1, 4, 1, 4, -1,
+ -3, 0, 0, -5, 0, 0, -4, -3,
+ 0, 0, -3, 0, -2, -2, 0, -2,
+ 0, -2, 0, -1, 2, 0, -1, -4,
+ -1, 5, 0, 0, -1, 0, -3, 0,
+ 0, 2, -3, 0, 1, -1, 1, 0,
+ 0, -4, 0, -1, 0, 0, -1, 1,
+ -1, 0, 0, 0, -5, -2, -3, 0,
+ -4, 0, 0, -6, 0, 5, -1, 0,
+ -2, 0, 1, 0, -1, 0, -1, -4,
+ 0, -1, 1, 0, 0, 0, 0, -1,
+ 0, 0, 1, -2, 0, 0, 0, -2,
+ -1, 0, -2, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, -8, 0, 3, 0,
+ 0, -1, 0, 0, 0, 0, 0, 0,
+ -1, -1, 0, 0, 0, 3, 0, 3,
+ 0, 0, 0, 0, 0, -8, -7, 0,
+ 6, 4, 2, -5, 1, 5, 0, 5,
+ 0, 3, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 7, 0, 0,
+ 0, 0, 0, 0, 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 = 61,
+ .right_class_cnt = 49,
+};
+
+/*--------------------
+ * ALL CUSTOM DATA
+ *--------------------*/
+
+/*Store all the custom data of the font*/
+static lv_font_fmt_txt_dsc_t font_dsc = {
+ .glyph_bitmap = gylph_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
+};
+
+/*-----------------
+ * PUBLIC FONT
+ *----------------*/
+
+/*Initialize a public general font descriptor*/
+lv_font_t font_2 = {
+ .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 = 10, /*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
+ .dsc = &font_dsc /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
+};
+
+#endif /*#if FONT_2*/
diff --git a/src/libs/lvgl/tests/lv_test_fonts/font_3.c b/src/libs/lvgl/tests/lv_test_fonts/font_3.c
new file mode 100644
index 00000000..d028e8ec
--- /dev/null
+++ b/src/libs/lvgl/tests/lv_test_fonts/font_3.c
@@ -0,0 +1,946 @@
+#include "../../lvgl.h"
+
+/*******************************************************************************
+ * Size: 20 px
+ * Bpp: 4
+ * Opts: --bpp 4 --size 20 --font ../RobotoMono-Regular.ttf -r 0x20-0x7f --format lvgl -o ..\generated_fonts/font_3.c
+ ******************************************************************************/
+
+#ifndef FONT_3
+#define FONT_3 1
+#endif
+
+#if FONT_3
+
+/*-----------------
+ * BITMAPS
+ *----------------*/
+
+/*Store the image of the glyphs*/
+static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
+ /* U+20 " " */
+
+ /* U+21 "!" */
+ 0x1f, 0xb0, 0xf, 0xfe, 0x69, 0x10, 0x76, 0x40,
+ 0x30, 0x81, 0x76, 0x98, 0xb0,
+
+ /* U+22 "\"" */
+ 0x8e, 0x0, 0x7b, 0x0, 0x7c, 0x60, 0x11, 0x80,
+ 0x80, 0x43, 0xca, 0x0, 0x37,
+
+ /* U+23 "#" */
+ 0x0, 0xc5, 0xe6, 0x7, 0xe6, 0x1, 0xc8, 0x6,
+ 0xa, 0x6, 0x1, 0xde, 0x40, 0xf, 0x30, 0xf,
+ 0x2a, 0x0, 0x15, 0x40, 0x15, 0x7f, 0x8d, 0xbf,
+ 0xc6, 0xde, 0xe1, 0xd2, 0xe0, 0xf2, 0xe0, 0xf2,
+ 0x80, 0x8d, 0x81, 0x2d, 0xa1, 0x2c, 0x60, 0x11,
+ 0x88, 0x80, 0x84, 0x40, 0x1d, 0xc4, 0x0, 0xd2,
+ 0x0, 0xc2, 0x25, 0x61, 0x13, 0x30, 0x40, 0xd,
+ 0xdc, 0x35, 0xee, 0x1a, 0xf6, 0x3, 0xdd, 0x4,
+ 0x5c, 0x84, 0xdf, 0x80, 0xa0, 0x1, 0x90, 0xc1,
+ 0x90, 0xc0, 0x2d, 0x21, 0xd, 0x20, 0xf, 0x1b,
+ 0x80, 0x11, 0x0, 0x18,
+
+ /* U+24 "$" */
+ 0x0, 0xcb, 0xe2, 0x1, 0xff, 0xc4, 0x78, 0xb,
+ 0x40, 0xd, 0xb0, 0x64, 0xb6, 0xe0, 0x8, 0x27,
+ 0xed, 0xd0, 0xc0, 0x82, 0x4, 0x0, 0xa, 0x41,
+ 0xc0, 0x40, 0x38, 0xc8, 0x0, 0xe0, 0xe0, 0x12,
+ 0x6b, 0x5, 0x84, 0x5a, 0x0, 0x70, 0xe9, 0xa5,
+ 0xea, 0x80, 0x62, 0xcc, 0x29, 0x54, 0x80, 0x71,
+ 0xd6, 0x93, 0x21, 0x29, 0x0, 0x45, 0x21, 0xaf,
+ 0x4a, 0x1, 0x9c, 0xd, 0x2, 0x44, 0x2, 0xa0,
+ 0xd1, 0x71, 0xf8, 0x86, 0x31, 0x38, 0x44, 0x9b,
+ 0xb8, 0x97, 0x0, 0x26, 0xd6, 0x1e, 0xa1, 0x0,
+ 0xe1, 0x0, 0xe0,
+
+ /* U+25 "%" */
+ 0x7, 0xee, 0x40, 0x7, 0xc9, 0x10, 0xb7, 0x50,
+ 0xf, 0x61, 0x32, 0xa7, 0x80, 0xf1, 0x80, 0x42,
+ 0x1, 0xd2, 0x66, 0x0, 0x69, 0x98, 0x97, 0x45,
+ 0xe0, 0x2, 0x55, 0x66, 0xab, 0xc1, 0x28, 0x6,
+ 0xae, 0xe5, 0x8b, 0x48, 0x7, 0x84, 0x41, 0x6,
+ 0x80, 0x1f, 0x89, 0xa0, 0x3, 0xfa, 0x11, 0x13,
+ 0xdc, 0x70, 0xc, 0x6b, 0xc, 0xca, 0x88, 0x20,
+ 0x5, 0x8, 0x78, 0xa8, 0xc5, 0x80, 0x13, 0x40,
+ 0x7, 0xfb, 0x4c, 0x31, 0x51, 0x8b, 0x0, 0x3c,
+ 0xcc, 0xa8, 0x82, 0x0,
+
+ /* U+26 "&" */
+ 0x0, 0x26, 0x7e, 0xb0, 0x7, 0x15, 0x9b, 0xc,
+ 0xa8, 0x6, 0xa0, 0xa9, 0xc1, 0xe0, 0xc, 0x40,
+ 0xe0, 0x13, 0x80, 0x63, 0x7, 0x6, 0x1b, 0x0,
+ 0xd4, 0x12, 0xf2, 0xae, 0x1, 0x8d, 0x8e, 0x1a,
+ 0x80, 0x38, 0x90, 0x1, 0x40, 0x1c, 0x38, 0x50,
+ 0x1a, 0x20, 0xbc, 0x70, 0x32, 0xf2, 0x34, 0x1a,
+ 0x22, 0x40, 0x60, 0x65, 0x47, 0x51, 0x23, 0x10,
+ 0xa, 0x8a, 0xa, 0x41, 0x5, 0x0, 0x2a, 0x0,
+ 0x30, 0x40, 0x5d, 0x45, 0xc0, 0x84, 0x1, 0x6a,
+ 0xa3, 0xb4, 0x71, 0xb2, 0x0,
+
+ /* U+27 "'" */
+ 0x2f, 0x50, 0xe, 0x10, 0x3, 0x81, 0x88,
+
+ /* U+28 "(" */
+ 0x0, 0xe1, 0x0, 0xd9, 0x20, 0x15, 0x8c, 0x80,
+ 0x1d, 0x38, 0x40, 0x10, 0xa6, 0x0, 0x70, 0x90,
+ 0xa, 0xc4, 0xc0, 0x2, 0x68, 0x1, 0x28, 0x68,
+ 0x4, 0x40, 0x20, 0x10, 0x81, 0x80, 0x70, 0x80,
+ 0x42, 0x2, 0x1, 0x18, 0x18, 0x4, 0xe1, 0xe0,
+ 0x11, 0xa, 0x80, 0x67, 0x31, 0x0, 0xac, 0x24,
+ 0x2, 0x25, 0x60, 0xd, 0x61, 0x40, 0x10, 0xea,
+ 0xb8, 0x4, 0x7a, 0x80,
+
+ /* U+29 ")" */
+ 0x20, 0xe, 0xe9, 0x0, 0xde, 0xd0, 0x1, 0x1c,
+ 0x39, 0x80, 0x4e, 0x5e, 0x1, 0xa8, 0xcc, 0x1,
+ 0x28, 0x50, 0x4, 0x42, 0x80, 0x19, 0x48, 0x40,
+ 0x21, 0x2, 0x0, 0x8c, 0x1c, 0x2, 0x10, 0xe,
+ 0x10, 0x70, 0x8, 0xc0, 0x80, 0x27, 0x11, 0x0,
+ 0x44, 0x80, 0x12, 0x87, 0x80, 0x5c, 0x2a, 0x0,
+ 0x34, 0x80, 0xb, 0x8d, 0x80, 0x14, 0x1a, 0x1,
+ 0x7e, 0x8, 0x4,
+
+ /* U+2A "*" */
+ 0x0, 0xd3, 0xe2, 0x1, 0xf0, 0x80, 0x80, 0x61,
+ 0x0, 0x78, 0x6, 0x12, 0xeb, 0x41, 0x10, 0x36,
+ 0xc0, 0xaa, 0xae, 0x47, 0xe4, 0xc0, 0xeb, 0xb0,
+ 0x0, 0xdb, 0xd2, 0x1, 0x50, 0xab, 0x98, 0x6,
+ 0x66, 0x45, 0x8d, 0x0, 0x43, 0x24, 0xc3, 0x8,
+ 0xe0, 0x1, 0xbe, 0x0, 0x3b, 0xc0,
+
+ /* U+2B "+" */
+ 0x0, 0xd1, 0x0, 0xf, 0xca, 0xc0, 0x1f, 0xfd,
+ 0x6d, 0xff, 0x88, 0x7f, 0xee, 0x62, 0x28, 0x0,
+ 0x45, 0xaf, 0x76, 0x21, 0xdd, 0xb0, 0x3, 0xff,
+ 0xa4,
+
+ /* U+2C "," */
+ 0xa, 0xf4, 0x1, 0x0, 0x9c, 0x18, 0x8, 0x49,
+ 0x46, 0x1, 0x69, 0x80,
+
+ /* U+2D "-" */
+ 0x78, 0x8f, 0x25, 0x3b, 0xfb, 0x40,
+
+ /* U+2E "." */
+ 0x8, 0xc3, 0x17, 0x39, 0x14, 0xf,
+
+ /* U+2F "/" */
+ 0x0, 0xf6, 0x68, 0x7, 0x88, 0xe8, 0x3, 0xd4,
+ 0xc, 0x1, 0xe6, 0x41, 0x0, 0xe4, 0x1e, 0x0,
+ 0xf7, 0x2, 0x80, 0x79, 0x58, 0x3, 0xcc, 0x14,
+ 0x1, 0xed, 0x23, 0x0, 0xe1, 0x4a, 0x0, 0xf3,
+ 0x2, 0x80, 0x7a, 0x90, 0x80, 0x38, 0xcb, 0x40,
+ 0x3d, 0x40, 0xc0, 0x1e, 0x65, 0x0, 0xf2, 0x87,
+ 0x0, 0x78,
+
+ /* U+30 "0" */
+ 0x0, 0x25, 0xff, 0xb1, 0x0, 0x25, 0xb5, 0x66,
+ 0x15, 0xa8, 0x2, 0xc7, 0xe6, 0x5e, 0x34, 0x8,
+ 0x32, 0x20, 0x1, 0x90, 0x53, 0x2, 0x0, 0xc2,
+ 0x1b, 0xe0, 0xc0, 0x14, 0x48, 0x8, 0x80, 0x21,
+ 0xb7, 0x50, 0xe, 0x3c, 0x4b, 0x80, 0xd, 0x58,
+ 0x1a, 0x80, 0x10, 0x83, 0x2e, 0x90, 0x8, 0x3,
+ 0xc1, 0xe8, 0x3, 0x84, 0xc3, 0xc0, 0x32, 0x86,
+ 0xa0, 0xc8, 0x80, 0x56, 0xa, 0x16, 0x3f, 0x32,
+ 0xe2, 0x90, 0x2, 0xda, 0xb3, 0xa, 0xd8, 0x0,
+
+ /* U+31 "1" */
+ 0x0, 0xc4, 0x80, 0x6, 0xcd, 0xc9, 0xf9, 0x30,
+ 0x3, 0x25, 0xd8, 0x1, 0xd6, 0x8e, 0x0, 0x10,
+ 0xf, 0xff, 0x78,
+
+ /* U+32 "2" */
+ 0x0, 0xc, 0xf7, 0xf4, 0x0, 0x62, 0xf6, 0x56,
+ 0x27, 0xd0, 0xa, 0x46, 0xed, 0x38, 0xa4, 0xe0,
+ 0x4, 0x34, 0x0, 0xa0, 0x30, 0x5, 0xe4, 0x3,
+ 0x18, 0x4, 0x30, 0xa0, 0x19, 0x3, 0x0, 0x3f,
+ 0x40, 0x30, 0x7, 0xd2, 0x52, 0x20, 0x1e, 0x76,
+ 0x56, 0x0, 0xf2, 0x41, 0xd0, 0x7, 0x8e, 0xcb,
+ 0x40, 0x3c, 0x3a, 0x3e, 0x20, 0x1e, 0xc1, 0xd2,
+ 0x0, 0xf5, 0x91, 0xa3, 0xbf, 0x18, 0x28, 0x1c,
+ 0x47, 0x94,
+
+ /* U+33 "3" */
+ 0x0, 0xc, 0xf7, 0xf4, 0x0, 0x43, 0xec, 0xae,
+ 0xaf, 0xa0, 0xb, 0x1a, 0xb8, 0xb7, 0x26, 0x4,
+ 0x15, 0x0, 0xa8, 0x30, 0x3b, 0x80, 0x1f, 0xfc,
+ 0x2b, 0xf, 0x0, 0x85, 0xe7, 0x59, 0xd4, 0x2,
+ 0x38, 0x62, 0x1c, 0x0, 0xc5, 0xfe, 0xb3, 0xb4,
+ 0x0, 0xf2, 0x78, 0x78, 0x8, 0x80, 0x31, 0xa,
+ 0x87, 0x60, 0x7, 0x9, 0x81, 0x92, 0x0, 0x4c,
+ 0x8, 0x1c, 0x17, 0x68, 0xb9, 0x28, 0x2, 0xe6,
+ 0x57, 0x57, 0xd1,
+
+ /* U+34 "4" */
+ 0x0, 0xf1, 0xff, 0x80, 0x3f, 0x78, 0x7, 0xf3,
+ 0x18, 0x7, 0xe1, 0x94, 0x30, 0xf, 0xac, 0x28,
+ 0x3, 0xe4, 0x58, 0x10, 0xf, 0xa4, 0x9c, 0x3,
+ 0xe7, 0x29, 0x0, 0xf8, 0xa1, 0x50, 0x3, 0xe9,
+ 0xb, 0x0, 0xf8, 0xd0, 0x3b, 0xfe, 0x30, 0xff,
+ 0xc, 0x47, 0x84, 0x1e, 0x9, 0xdf, 0xc4, 0x10,
+ 0xe0, 0x1f, 0xfc, 0xa0,
+
+ /* U+35 "5" */
+ 0x0, 0x7f, 0xfc, 0xa0, 0x20, 0x26, 0x7c, 0x20,
+ 0x60, 0xd9, 0x9c, 0x80, 0xc1, 0xc0, 0x1f, 0x8,
+ 0x18, 0x7, 0xc4, 0x7, 0x15, 0x6, 0x1, 0x78,
+ 0x4b, 0xab, 0xe3, 0x80, 0x38, 0xa7, 0xb9, 0x21,
+ 0x4, 0xd, 0xac, 0x22, 0x68, 0xa, 0x0, 0xf9,
+ 0x40, 0xc0, 0x3e, 0x30, 0x0, 0xfd, 0x80, 0x62,
+ 0x2, 0x13, 0x43, 0x0, 0xa0, 0x30, 0x38, 0x32,
+ 0xa7, 0x51, 0xa, 0x5, 0xaa, 0x8c, 0xf, 0x60,
+
+ /* U+36 "6" */
+ 0x0, 0x86, 0x37, 0xd4, 0x3, 0x27, 0x39, 0xa3,
+ 0x0, 0x45, 0x61, 0x5d, 0x66, 0x1, 0x48, 0x52,
+ 0x80, 0x70, 0xa1, 0xa8, 0x7, 0x90, 0x2c, 0x59,
+ 0xd4, 0x2, 0x20, 0xde, 0x98, 0xad, 0x10, 0xe0,
+ 0x58, 0xee, 0x31, 0x50, 0x5, 0xe, 0x22, 0x92,
+ 0x41, 0x0, 0x20, 0x6, 0x50, 0x51, 0x6, 0x0,
+ 0xde, 0x3, 0x81, 0xa0, 0x1b, 0x41, 0x90, 0x9c,
+ 0x80, 0x4, 0xa2, 0x61, 0xc1, 0xb5, 0x4d, 0xa,
+ 0x0, 0x1e, 0x22, 0xa9, 0x31, 0x0,
+
+ /* U+37 "7" */
+ 0xef, 0xff, 0xd6, 0xec, 0xde, 0x40, 0x39, 0x9f,
+ 0x88, 0x24, 0x3, 0xc2, 0xca, 0x20, 0x1e, 0x60,
+ 0x90, 0xf, 0xa4, 0x8c, 0x3, 0xca, 0x36, 0x1,
+ 0xf4, 0x8b, 0x0, 0x78, 0xcc, 0xc0, 0x1f, 0x48,
+ 0x50, 0x7, 0x85, 0x50, 0x80, 0x3d, 0x21, 0xe0,
+ 0x1f, 0x31, 0x20, 0x7, 0x98, 0x68, 0x3, 0xeb,
+ 0x6, 0x0, 0xe0,
+
+ /* U+38 "8" */
+ 0x0, 0x15, 0x77, 0xea, 0x80, 0x43, 0xaa, 0x8c,
+ 0x15, 0x20, 0xb, 0xa, 0xa4, 0xe9, 0x31, 0x2,
+ 0x2, 0x80, 0x54, 0x8, 0x6, 0x1, 0xf1, 0x82,
+ 0x2, 0x80, 0x54, 0x8, 0x12, 0x75, 0x49, 0xd2,
+ 0xa1, 0x0, 0x50, 0x2b, 0x11, 0xa0, 0x1, 0xe5,
+ 0x77, 0xe8, 0xb0, 0x42, 0xa, 0x88, 0x16, 0xc9,
+ 0x8c, 0x10, 0x3, 0x20, 0x60, 0x0, 0xc0, 0x31,
+ 0x80, 0xc, 0x54, 0x80, 0x2b, 0xd, 0xa, 0xd,
+ 0xa8, 0xc6, 0x36, 0x4, 0xc4, 0x57, 0x17, 0xc0,
+
+ /* U+39 "9" */
+ 0x0, 0x26, 0x7f, 0x51, 0x0, 0x4d, 0x64, 0xca,
+ 0xac, 0x10, 0x4, 0x8f, 0xcd, 0xc8, 0xd8, 0x28,
+ 0x48, 0x80, 0x18, 0x94, 0x34, 0xc, 0x3, 0x28,
+ 0x27, 0x80, 0x7b, 0x80, 0x48, 0xc, 0x3, 0x70,
+ 0x1a, 0x4, 0x88, 0x0, 0xdc, 0xc, 0x5c, 0x7e,
+ 0x6b, 0x4, 0x4, 0x22, 0x4d, 0x9e, 0x1c, 0x18,
+ 0x0, 0xdb, 0xfa, 0xea, 0x24, 0x1, 0xe3, 0x33,
+ 0x80, 0x79, 0x34, 0x60, 0x2, 0x5b, 0xeb, 0xd,
+ 0x10, 0xb, 0x54, 0x9f, 0xcc, 0x0,
+
+ /* U+3A ":" */
+ 0x5f, 0xb0, 0xf0, 0x42, 0x93, 0x62, 0x3c, 0x90,
+ 0xf, 0xfe, 0x29, 0xe4, 0x4, 0x9b, 0x97, 0x81,
+ 0x90,
+
+ /* U+3B ";" */
+ 0x6, 0xfa, 0x0, 0x68, 0x28, 0x3, 0xcd, 0xc0,
+ 0x9, 0x90, 0x1, 0xff, 0xcf, 0x4a, 0x60, 0x1,
+ 0x2f, 0x0, 0x4, 0x3, 0x70, 0x60, 0x1, 0x9,
+ 0x0, 0xf, 0xc0, 0x0,
+
+ /* U+3C "<" */
+ 0x0, 0xf9, 0x2c, 0x3, 0x9b, 0x6d, 0x40, 0x2,
+ 0xfd, 0x26, 0xd8, 0x33, 0xd0, 0x55, 0xd2, 0x48,
+ 0xc3, 0x78, 0xa0, 0x12, 0x28, 0xdd, 0x20, 0x4,
+ 0x35, 0xac, 0xb7, 0xae, 0x20, 0x2, 0x9e, 0x83,
+ 0x8f, 0x0, 0xc2, 0xfd, 0x24, 0x1, 0xf3, 0x60,
+
+ /* U+3D "=" */
+ 0x39, 0x9f, 0xc6, 0xec, 0xdf, 0x95, 0x3f, 0xff,
+ 0x30, 0x7, 0xf8, 0xa6, 0x7f, 0x1b, 0x37, 0xf2,
+ 0x80,
+
+ /* U+3E ">" */
+ 0x3a, 0x30, 0xf, 0x9d, 0x73, 0xa, 0x1, 0xc9,
+ 0x8c, 0x75, 0xae, 0x1, 0x8e, 0x7e, 0x9a, 0x3e,
+ 0x44, 0x3, 0x2d, 0xe1, 0x32, 0x0, 0x65, 0xbc,
+ 0x25, 0x40, 0x28, 0xea, 0x57, 0xea, 0x13, 0xd7,
+ 0x39, 0xe8, 0x10, 0x3, 0xa5, 0xeb, 0x0, 0x72,
+ 0x5a, 0x0, 0x7c,
+
+ /* U+3F "?" */
+ 0x0, 0x1d, 0xf7, 0xea, 0x80, 0x4b, 0x88, 0xaa,
+ 0x3a, 0x80, 0x5, 0x86, 0xdd, 0x78, 0xb8, 0x89,
+ 0xe0, 0x80, 0x2, 0xe0, 0x43, 0x2e, 0x1, 0x8c,
+ 0x4, 0x3, 0xc4, 0xa4, 0x40, 0xf, 0x70, 0x48,
+ 0x7, 0xb0, 0xe1, 0x0, 0x3a, 0x4d, 0xdc, 0x1,
+ 0xe7, 0x18, 0x0, 0xf8, 0x9c, 0x3, 0xf6, 0x48,
+ 0x7, 0xe1, 0x10, 0x7, 0xc3, 0xde, 0x1, 0xf8,
+ 0x48, 0x3, 0x0,
+
+ /* U+40 "@" */
+ 0x0, 0xd1, 0xbf, 0xae, 0x1, 0xc3, 0xab, 0x76,
+ 0xa9, 0xb0, 0xd, 0x4d, 0xac, 0x8f, 0xea, 0xc0,
+ 0x4, 0x5b, 0x9, 0xfd, 0x3b, 0xb0, 0x3, 0xe4,
+ 0x25, 0x2d, 0x95, 0x44, 0x20, 0x8a, 0x2d, 0xc8,
+ 0x2, 0x4, 0x43, 0x2, 0x41, 0x30, 0x72, 0x1,
+ 0x77, 0x8, 0x12, 0x80, 0x5, 0xc0, 0x21, 0x30,
+ 0xe2, 0x0, 0x10, 0x80, 0xb0, 0x98, 0x0, 0xc0,
+ 0x40, 0xc4, 0xc9, 0x44, 0x5e, 0x88, 0xa0, 0x29,
+ 0x40, 0x12, 0x67, 0xb, 0x26, 0xc5, 0xb0, 0x5,
+ 0xc9, 0xf7, 0x26, 0x5d, 0xa2, 0x0, 0x64, 0xd8,
+ 0x44, 0x3a, 0x80, 0x75, 0x4a, 0x55, 0xd9, 0xc0,
+ 0x20,
+
+ /* U+41 "A" */
+ 0x0, 0xec, 0xf0, 0xf, 0xe1, 0x30, 0x50, 0xf,
+ 0xce, 0x0, 0xf0, 0xf, 0xda, 0x8, 0x80, 0xf,
+ 0xc8, 0xba, 0x26, 0x1, 0xe4, 0xc, 0x70, 0xb0,
+ 0xf, 0x68, 0x38, 0x92, 0x80, 0x79, 0xcc, 0x41,
+ 0x48, 0x80, 0x18, 0xc6, 0xc0, 0x16, 0xa, 0x1,
+ 0xac, 0x32, 0x66, 0xc, 0x0, 0xca, 0x8, 0xcc,
+ 0x50, 0x41, 0x0, 0x11, 0x1b, 0xff, 0x50, 0x20,
+ 0x1, 0x43, 0x40, 0x32, 0x7, 0x80, 0x30, 0x10,
+ 0x3, 0x9, 0xa0, 0xa, 0x20, 0x3, 0xc8, 0x28,
+
+ /* U+42 "B" */
+ 0x4f, 0xfd, 0xd8, 0xa0, 0x18, 0xd9, 0x88, 0x55,
+ 0x40, 0xa, 0xe6, 0x55, 0xc6, 0xa8, 0x1, 0xf4,
+ 0x86, 0x0, 0x7c, 0x61, 0xe0, 0x1e, 0x1b, 0x5,
+ 0x0, 0x5c, 0x42, 0x7c, 0xa8, 0x80, 0x6, 0xee,
+ 0x61, 0x36, 0x0, 0xa3, 0xfe, 0xb1, 0xc3, 0x0,
+ 0xf2, 0x70, 0x40, 0x7, 0xc6, 0xa, 0x1, 0xf0,
+ 0x81, 0x80, 0x7d, 0x0, 0xa0, 0xb, 0x88, 0x4e,
+ 0xb1, 0xc0, 0x0, 0xdd, 0xcc, 0x11, 0x80,
+
+ /* U+43 "C" */
+ 0x0, 0x15, 0xff, 0xb1, 0x80, 0x24, 0xd5, 0x53,
+ 0x14, 0xc8, 0x1, 0x43, 0xf5, 0x3c, 0x6c, 0x6c,
+ 0x30, 0x20, 0x17, 0x84, 0xe8, 0x38, 0x6, 0x35,
+ 0x36, 0x11, 0x0, 0x75, 0x49, 0x18, 0x7, 0xff,
+ 0x40, 0x8c, 0x3, 0xf3, 0x8, 0x80, 0x3a, 0x63,
+ 0x41, 0xc0, 0x31, 0xb1, 0x30, 0xc0, 0x80, 0x50,
+ 0x12, 0x14, 0x3f, 0x32, 0xd4, 0x73, 0x4, 0xc5,
+ 0x76, 0x19, 0x80,
+
+ /* U+44 "D" */
+ 0x7f, 0xfb, 0xb1, 0x80, 0x3c, 0xae, 0xe1, 0x9d,
+ 0x10, 0xd, 0xf1, 0x3b, 0x25, 0x80, 0x1f, 0x99,
+ 0x84, 0xc0, 0x1f, 0xa0, 0x34, 0x3, 0xf0, 0x92,
+ 0x0, 0x7f, 0x8, 0x7, 0xf9, 0xc0, 0x40, 0x3f,
+ 0x38, 0x8, 0x7, 0xe1, 0x0, 0xfe, 0x12, 0x40,
+ 0xf, 0xd0, 0x1a, 0x1, 0xf3, 0xb1, 0xb0, 0x5,
+ 0xf1, 0x3b, 0x5, 0xa0, 0x19, 0x5d, 0xc3, 0x3a,
+ 0x20, 0x0,
+
+ /* U+45 "E" */
+ 0x3f, 0xff, 0xcc, 0x0, 0x26, 0x6f, 0x28, 0x1,
+ 0x26, 0x7c, 0x60, 0x1f, 0xfd, 0xe6, 0xff, 0xe8,
+ 0x0, 0x89, 0xdf, 0xb0, 0x2, 0x48, 0x8e, 0x40,
+ 0xf, 0xfe, 0xaa, 0x44, 0x79, 0x0, 0x4, 0xef,
+ 0xec,
+
+ /* U+46 "F" */
+ 0x2f, 0xff, 0xd2, 0x0, 0x26, 0x6f, 0x60, 0x1,
+ 0xe6, 0x7c, 0xa0, 0x1f, 0xfd, 0xe5, 0xff, 0xe9,
+ 0x0, 0x89, 0xdf, 0xb0, 0x2, 0x78, 0x8e, 0x50,
+ 0xf, 0xff, 0x38,
+
+ /* U+47 "G" */
+ 0x0, 0x8a, 0xff, 0xd8, 0xa0, 0x19, 0x35, 0x10,
+ 0xa5, 0x52, 0x1, 0x50, 0xed, 0xd7, 0x1b, 0x20,
+ 0x38, 0xc1, 0x0, 0x5e, 0x1e, 0x18, 0xe, 0x1,
+ 0x8e, 0x78, 0x14, 0x44, 0x1, 0xcc, 0xa0, 0x24,
+ 0x1, 0xff, 0xc2, 0x68, 0x89, 0xc0, 0x3d, 0xae,
+ 0xf4, 0x80, 0x90, 0x5, 0x7f, 0xe2, 0x0, 0x28,
+ 0x88, 0x3, 0xf6, 0x84, 0x80, 0x7e, 0x62, 0x74,
+ 0x0, 0x88, 0x80, 0x17, 0x8d, 0xda, 0x6f, 0x42,
+ 0x80, 0x5, 0xec, 0xac, 0xc7, 0xd4,
+
+ /* U+48 "H" */
+ 0x9f, 0x10, 0xc, 0x3f, 0x20, 0x1f, 0xff, 0x2e,
+ 0xff, 0xdc, 0x1, 0x99, 0xdf, 0x30, 0x6, 0x88,
+ 0xf0, 0x7, 0xff, 0xa0,
+
+ /* U+49 "I" */
+ 0x4f, 0xff, 0xc8, 0xcd, 0x80, 0xc, 0xd8, 0xa6,
+ 0x60, 0x19, 0x98, 0x80, 0x3f, 0xff, 0xe0, 0x1f,
+ 0xfc, 0xd2, 0x99, 0x80, 0x66, 0x62, 0x66, 0xc0,
+ 0x6, 0x6c,
+
+ /* U+4A "J" */
+ 0x0, 0xfd, 0x3e, 0x60, 0x1f, 0xff, 0xf0, 0xf,
+ 0xfe, 0x6b, 0xb0, 0x7, 0x18, 0x5, 0x52, 0x1,
+ 0xce, 0x6, 0x14, 0x12, 0x1, 0x39, 0x28, 0x1,
+ 0xcd, 0xb6, 0x72, 0xa, 0xc0, 0x2c, 0x80, 0x62,
+ 0x6c, 0x10,
+
+ /* U+4B "K" */
+ 0x4f, 0x80, 0xc, 0x9f, 0xa0, 0x1f, 0x15, 0x7,
+ 0x80, 0x7d, 0xc3, 0x44, 0x1, 0xe9, 0x36, 0x50,
+ 0xf, 0x2b, 0x14, 0x80, 0x78, 0xa8, 0x3c, 0x3,
+ 0xc3, 0xc1, 0x4, 0x1, 0xe6, 0x30, 0xa0, 0xf,
+ 0xc8, 0xa5, 0x0, 0x1e, 0x2a, 0xb1, 0x72, 0x0,
+ 0xe5, 0x11, 0x40, 0x70, 0x7, 0xe6, 0x33, 0x30,
+ 0x7, 0xee, 0x8, 0x10, 0xf, 0x89, 0xc6, 0xc0,
+ 0x3f, 0x41, 0x2a, 0x0,
+
+ /* U+4C "L" */
+ 0xf, 0xb0, 0xf, 0xff, 0xf8, 0x7, 0xff, 0xa9,
+ 0x62, 0x3c, 0xc0, 0x1, 0x77, 0xf6, 0x0,
+
+ /* U+4D "M" */
+ 0x8f, 0xd0, 0xd, 0x5f, 0x60, 0x2, 0x20, 0x4,
+ 0xa0, 0x1c, 0xa0, 0x5, 0x0, 0xe2, 0xb0, 0x7,
+ 0x88, 0x80, 0x24, 0x31, 0x5, 0x60, 0xd, 0xa0,
+ 0xea, 0x16, 0x1, 0x98, 0xb7, 0xc4, 0xc4, 0x3,
+ 0x2a, 0x2b, 0x80, 0x7a, 0xc0, 0x1a, 0x1, 0xc2,
+ 0x62, 0x24, 0x0, 0xf9, 0x98, 0x1, 0xfa, 0x20,
+ 0x1, 0xff, 0xd6,
+
+ /* U+4E "N" */
+ 0x9f, 0x70, 0xc, 0x7f, 0x20, 0x9, 0x0, 0xfe,
+ 0x17, 0x0, 0xfe, 0x90, 0xf, 0xca, 0x2e, 0x1,
+ 0xf7, 0xc, 0x80, 0x7c, 0xf0, 0x2c, 0x1, 0xf3,
+ 0xc, 0x0, 0x7e, 0x81, 0x60, 0xf, 0x98, 0x61,
+ 0xc0, 0x3e, 0x91, 0xe0, 0xf, 0x9c, 0x54, 0x3,
+ 0xf4, 0x80, 0x7f, 0x38, 0x80, 0x7f, 0x48, 0x0,
+
+ /* U+4F "O" */
+ 0x0, 0x1d, 0xff, 0xac, 0x80, 0x24, 0xc4, 0x33,
+ 0x26, 0x98, 0x2, 0x87, 0x73, 0x20, 0xd0, 0x61,
+ 0x92, 0x0, 0x1c, 0xb, 0x60, 0x30, 0x6, 0x60,
+ 0xc7, 0x11, 0x0, 0x61, 0x13, 0x91, 0x80, 0x78,
+ 0xcc, 0x2, 0x1, 0xf0, 0x80, 0x80, 0x7c, 0x24,
+ 0x60, 0x1e, 0x33, 0x38, 0x88, 0x3, 0x8, 0x9f,
+ 0x1, 0x80, 0x33, 0x6, 0x30, 0xc1, 0x80, 0xa,
+ 0x45, 0x82, 0x83, 0x2e, 0xda, 0x34, 0x0, 0x4d,
+ 0x44, 0xd8, 0x80,
+
+ /* U+50 "P" */
+ 0x2f, 0xfe, 0xe9, 0x10, 0xc, 0x4e, 0xf2, 0xb7,
+ 0x90, 0x4, 0xf1, 0x15, 0xc8, 0xc8, 0x7, 0xe6,
+ 0x24, 0x10, 0xf, 0xce, 0x6, 0x1, 0xf9, 0x80,
+ 0xc0, 0x3e, 0x53, 0x41, 0x0, 0x3c, 0x45, 0x74,
+ 0x32, 0x1, 0x13, 0xbc, 0xad, 0xe4, 0x1, 0x2f,
+ 0xfd, 0xd2, 0x20, 0x1f, 0xfe, 0xd0,
+
+ /* U+51 "Q" */
+ 0x0, 0x8e, 0xff, 0xd6, 0x60, 0x1c, 0x98, 0x86,
+ 0x64, 0xc4, 0x0, 0x86, 0xc7, 0x73, 0x1a, 0x36,
+ 0x20, 0x6, 0x8, 0x20, 0x1, 0x58, 0x30, 0x2,
+ 0xc1, 0x80, 0x32, 0x85, 0x80, 0xc, 0x80, 0x3c,
+ 0x46, 0x1, 0x30, 0x7, 0x98, 0x0, 0x20, 0x1f,
+ 0xe1, 0x10, 0x7, 0xf8, 0x40, 0xc, 0x1, 0xe6,
+ 0x0, 0x8c, 0x80, 0x3c, 0x46, 0x0, 0xb0, 0x50,
+ 0xc, 0xa1, 0x60, 0x6, 0xb, 0x20, 0x1, 0x58,
+ 0x30, 0x0, 0x6c, 0x76, 0xed, 0xa3, 0x42, 0x1,
+ 0x26, 0x22, 0x42, 0x1a, 0x1, 0xc7, 0x7f, 0xf1,
+ 0xbd, 0x0, 0x7e, 0x1c, 0x47, 0x10, 0xf, 0xeb,
+ 0xd1,
+
+ /* U+52 "R" */
+ 0x3f, 0xfe, 0xc6, 0x0, 0xe3, 0x77, 0x31, 0x4d,
+ 0x0, 0x64, 0x88, 0x4f, 0x1a, 0xa8, 0x3, 0xf7,
+ 0x87, 0x80, 0x7e, 0x20, 0x10, 0xf, 0xc4, 0x2,
+ 0x1, 0xfb, 0xc3, 0x80, 0x24, 0x88, 0x4f, 0x1b,
+ 0x20, 0x4, 0x6e, 0xe6, 0x19, 0x90, 0x6, 0x7f,
+ 0xf5, 0x7, 0x0, 0x7e, 0x51, 0x71, 0x0, 0xfd,
+ 0x0, 0xc0, 0x1f, 0x98, 0x64, 0x3, 0xfa, 0x45,
+ 0xc0, 0x3f, 0x30, 0x48, 0x0,
+
+ /* U+53 "S" */
+ 0x0, 0x1d, 0xf7, 0xe2, 0x80, 0x65, 0xc4, 0x55,
+ 0x15, 0x58, 0x0, 0x68, 0x76, 0xeb, 0x91, 0xe,
+ 0x8, 0xc, 0x40, 0x14, 0x85, 0x0, 0x42, 0x1,
+ 0x8a, 0x6c, 0x10, 0x19, 0x40, 0x33, 0x30, 0x6,
+ 0xc2, 0xb1, 0x84, 0x3, 0x93, 0x50, 0xe7, 0xa0,
+ 0x3, 0x8a, 0xfa, 0x5, 0xf4, 0x3, 0xc2, 0xfc,
+ 0xa5, 0x40, 0xac, 0x1, 0xd4, 0xa, 0x1d, 0x28,
+ 0x1, 0xfb, 0xc2, 0x44, 0x2, 0x70, 0x40, 0x47,
+ 0x2e, 0xa9, 0xc8, 0x19, 0x0, 0x45, 0xa2, 0x18,
+ 0x63, 0xc8, 0x0,
+
+ /* U+54 "T" */
+ 0x3f, 0xff, 0xf2, 0xb, 0x36, 0x0, 0x33, 0x71,
+ 0x4c, 0xe2, 0x19, 0x9c, 0x40, 0x1f, 0xff, 0xf0,
+ 0xf, 0xff, 0xc8,
+
+ /* U+55 "U" */
+ 0xaf, 0x10, 0xc, 0x5f, 0x20, 0x1f, 0xfc, 0x73,
+ 0x0, 0xff, 0xef, 0x18, 0x7, 0xff, 0x3c, 0xc0,
+ 0x40, 0x30, 0x81, 0xf8, 0x20, 0x6, 0x40, 0xf7,
+ 0x9, 0x20, 0x1, 0x48, 0x38, 0xd0, 0xed, 0x53,
+ 0x46, 0x84, 0x17, 0x11, 0x54, 0x98, 0xa0,
+
+ /* U+56 "V" */
+ 0x2f, 0xc0, 0xf, 0x6f, 0x89, 0x10, 0xc0, 0x38,
+ 0x48, 0xc4, 0x10, 0x14, 0x3, 0x38, 0x58, 0x3,
+ 0x43, 0x0, 0x36, 0x2, 0x0, 0x10, 0x1c, 0x3,
+ 0x20, 0x98, 0x4, 0xa2, 0x40, 0x3, 0x17, 0x0,
+ 0xde, 0x8, 0x0, 0xb0, 0xd0, 0xc, 0x81, 0xa0,
+ 0x4, 0x4, 0x0, 0xc2, 0x68, 0x2, 0x68, 0x1,
+ 0xeb, 0x4, 0x40, 0x68, 0x7, 0x94, 0x33, 0xc1,
+ 0xc0, 0x3c, 0x44, 0x54, 0x31, 0x0, 0xf9, 0x8,
+ 0x50, 0x3, 0xf6, 0x80, 0x2c, 0x3, 0xf2, 0x0,
+ 0x98, 0x6,
+
+ /* U+57 "W" */
+ 0x3f, 0x70, 0x5, 0xf8, 0x0, 0xfd, 0xc8, 0x38,
+ 0x0, 0xa0, 0x40, 0xc0, 0x42, 0x6, 0x2, 0x20,
+ 0x70, 0x30, 0x10, 0x16, 0x2, 0x0, 0x68, 0x70,
+ 0x30, 0x11, 0x1, 0x40, 0xc8, 0x4, 0x8, 0x18,
+ 0x43, 0xc9, 0x5c, 0x8, 0x40, 0x4, 0x2, 0x4f,
+ 0xe4, 0xc, 0x40, 0xe, 0x3, 0x52, 0x20, 0x11,
+ 0xb0, 0x0, 0x81, 0xc7, 0x54, 0x1c, 0x48, 0x0,
+ 0xe1, 0x80, 0xc2, 0x2c, 0xf, 0x0, 0x10, 0x38,
+ 0x18, 0x13, 0x81, 0x0, 0x4, 0x4, 0x80, 0xa,
+ 0x20, 0xc0, 0x11, 0x3, 0x0, 0x38, 0x0, 0x40,
+ 0x13, 0x1, 0x80, 0xc, 0x0, 0x20, 0x11, 0x7,
+ 0x0, 0x14, 0x8, 0x0,
+
+ /* U+58 "X" */
+ 0xc, 0xf5, 0x0, 0xc3, 0xfe, 0x10, 0xf0, 0x80,
+ 0xd, 0x61, 0x2, 0x6, 0xa4, 0xc0, 0x2, 0x51,
+ 0x70, 0xa, 0x2, 0x0, 0x12, 0x16, 0x1, 0x89,
+ 0xc5, 0xcd, 0xd, 0x40, 0x3a, 0x46, 0x7c, 0x3c,
+ 0x3, 0xc3, 0x2, 0x68, 0x60, 0x1f, 0x38, 0x3,
+ 0x80, 0x3f, 0x48, 0x2, 0x40, 0x3e, 0x17, 0x26,
+ 0x35, 0x0, 0xf5, 0x84, 0x40, 0x20, 0x3, 0x8d,
+ 0x49, 0x45, 0xc9, 0x80, 0x37, 0x84, 0x80, 0x24,
+ 0x20, 0x40, 0xa, 0x66, 0x40, 0x0, 0xb8, 0xc8,
+ 0x2, 0x3, 0xc0, 0x34, 0xb, 0x90,
+
+ /* U+59 "Y" */
+ 0x2f, 0xd0, 0xe, 0x1f, 0xe0, 0x24, 0x25, 0x0,
+ 0xd2, 0x12, 0x0, 0x80, 0x90, 0xc, 0xc0, 0xc0,
+ 0x3, 0x3c, 0x0, 0x61, 0x71, 0x0, 0xa0, 0x24,
+ 0x1, 0x61, 0x20, 0x19, 0x9, 0x45, 0x49, 0x84,
+ 0x3, 0xa0, 0x26, 0x41, 0x60, 0x1e, 0x52, 0x73,
+ 0x52, 0x0, 0xfa, 0xc0, 0x12, 0x1, 0xf9, 0x80,
+ 0xcc, 0x1, 0xff, 0xd6, 0x70, 0xf, 0xfe, 0x88,
+
+ /* U+5A "Z" */
+ 0xcf, 0xff, 0xc9, 0x6c, 0xde, 0x0, 0x33, 0xcc,
+ 0xf6, 0x2, 0x90, 0x7, 0xac, 0x2c, 0x3, 0xd0,
+ 0x30, 0x20, 0x1c, 0x4e, 0x4e, 0x1, 0xe9, 0x9,
+ 0x0, 0xf2, 0x21, 0x50, 0x3, 0xd2, 0x16, 0x1,
+ 0xe7, 0x28, 0x10, 0xe, 0x18, 0x27, 0x0, 0xf5,
+ 0x84, 0x0, 0x79, 0x15, 0x14, 0x3, 0xd0, 0x0,
+ 0x88, 0xf2, 0x8, 0x23, 0xbf, 0xb0,
+
+ /* U+5B "[" */
+ 0x68, 0x88, 0x2d, 0xde, 0x0, 0x17, 0xf8, 0x3,
+ 0xff, 0xfe, 0x0, 0x28, 0x80, 0x4, 0xee, 0x0,
+
+ /* U+5C "\\" */
+ 0x9f, 0x10, 0xe, 0xa0, 0x60, 0xe, 0x32, 0xa0,
+ 0xf, 0x51, 0x18, 0x7, 0x30, 0x58, 0x7, 0xa,
+ 0x30, 0x7, 0xb8, 0x50, 0x3, 0x94, 0x78, 0x3,
+ 0xce, 0xa2, 0x1, 0xd4, 0xe, 0x1, 0xc6, 0x54,
+ 0x1, 0xea, 0x32, 0x0, 0xe6, 0xa, 0x0, 0xe1,
+ 0x46, 0x0, 0xf7, 0xa, 0x0, 0x72, 0x87, 0x0,
+
+ /* U+5D "]" */
+ 0x8, 0x89, 0x81, 0xde, 0xb0, 0xff, 0x10, 0x7,
+ 0xff, 0xfc, 0x1, 0x10, 0x20, 0x3, 0xb8, 0x0,
+
+ /* U+5E "^" */
+ 0x0, 0xb7, 0x40, 0x1c, 0x64, 0x43, 0x0, 0xd4,
+ 0x0, 0xa0, 0xc, 0xca, 0xa6, 0x0, 0x98, 0x3b,
+ 0x80, 0xa0, 0xa, 0x14, 0x40, 0xc8, 0x11, 0xb0,
+ 0x1, 0x8c, 0xa8, 0x28, 0x1, 0x41, 0x40,
+
+ /* U+5F "_" */
+ 0x37, 0x7f, 0xc6, 0x91, 0x1f, 0x90,
+
+ /* U+60 "`" */
+ 0x57, 0x30, 0x4a, 0xe0, 0x1f, 0x39,
+
+ /* U+61 "a" */
+ 0x0, 0x26, 0x7f, 0x62, 0x80, 0x4d, 0x62, 0xee,
+ 0x3a, 0x60, 0x19, 0x2d, 0x89, 0xd0, 0x90, 0x4,
+ 0x48, 0x4, 0x48, 0x4, 0x2e, 0x80, 0x18, 0x40,
+ 0x21, 0x9d, 0xff, 0x94, 0x2, 0xc6, 0x4a, 0xbc,
+ 0x40, 0x3, 0x14, 0x4a, 0xa1, 0x88, 0x7, 0xe1,
+ 0x70, 0x3, 0x8c, 0x4b, 0xcf, 0x90, 0x8, 0xb1,
+ 0x5e, 0x16, 0x1c, 0x14,
+
+ /* U+62 "b" */
+ 0x4f, 0x80, 0xf, 0xfe, 0xe3, 0xef, 0xeb, 0x0,
+ 0x67, 0x87, 0x53, 0x97, 0x0, 0x87, 0x6a, 0x98,
+ 0x30, 0x20, 0x6, 0x20, 0x1, 0x48, 0x38, 0x7,
+ 0xc8, 0x1e, 0x1, 0xf0, 0x81, 0x80, 0x7c, 0x20,
+ 0x60, 0x1f, 0x28, 0x78, 0x1, 0x40, 0x35, 0x83,
+ 0x80, 0xb, 0x5d, 0xb0, 0xa0, 0x40, 0x10, 0xb3,
+ 0x21, 0x97, 0x0,
+
+ /* U+63 "c" */
+ 0x0, 0x1d, 0xf7, 0xea, 0x80, 0x49, 0x88, 0xec,
+ 0x15, 0x20, 0xa, 0xc, 0x99, 0x6a, 0x31, 0xa8,
+ 0xb9, 0x80, 0x5e, 0x4b, 0xa1, 0x80, 0x19, 0x35,
+ 0x84, 0x1c, 0x3, 0xe1, 0x7, 0x0, 0xfb, 0x43,
+ 0x0, 0x31, 0x42, 0x28, 0xb9, 0x0, 0x50, 0xee,
+ 0xa, 0xd, 0x98, 0xd5, 0x73, 0x4, 0xc4, 0x77,
+ 0xd, 0xc0, 0x0,
+
+ /* U+64 "d" */
+ 0x0, 0xfa, 0x3d, 0x0, 0x3f, 0xfa, 0x8b, 0xbf,
+ 0xce, 0x1, 0x9a, 0x89, 0x52, 0x1c, 0x0, 0x32,
+ 0x3b, 0x54, 0xd1, 0x0, 0x38, 0x31, 0x0, 0x9,
+ 0x80, 0x1e, 0x18, 0x1, 0xf1, 0x83, 0x80, 0x7c,
+ 0x60, 0xe0, 0x1f, 0x78, 0x60, 0x7, 0xce, 0xc,
+ 0x40, 0x1, 0x50, 0x0, 0xc8, 0xed, 0x53, 0xc8,
+ 0x2, 0x6a, 0x25, 0x46, 0x80, 0x0,
+
+ /* U+65 "e" */
+ 0x0, 0x15, 0x77, 0xe2, 0x80, 0x47, 0xaa, 0x8e,
+ 0x55, 0x0, 0xd, 0x1d, 0xa8, 0xe3, 0x72, 0x61,
+ 0x92, 0x0, 0xa4, 0x17, 0xc3, 0x26, 0x77, 0x87,
+ 0x18, 0x23, 0x36, 0x50, 0x30, 0x6, 0x7f, 0xfa,
+ 0xb4, 0x2c, 0x3, 0xe6, 0x7, 0x40, 0x8, 0xac,
+ 0x86, 0xc2, 0xea, 0x2b, 0x54, 0xc1, 0x35, 0x51,
+ 0xde, 0xf1,
+
+ /* U+66 "f" */
+ 0x0, 0xe2, 0x68, 0x74, 0x0, 0xe7, 0xd9, 0x78,
+ 0xb0, 0xc, 0x70, 0x57, 0xfe, 0xd0, 0xd, 0x61,
+ 0x8, 0x0, 0x20, 0xc, 0x20, 0xc0, 0x1d, 0x1f,
+ 0xe6, 0xc, 0xff, 0x90, 0x2e, 0x64, 0x60, 0xf3,
+ 0x32, 0x81, 0xb3, 0x14, 0x2d, 0x9a, 0x10, 0xf,
+ 0xff, 0xf8, 0x7, 0xff, 0x8,
+
+ /* U+67 "g" */
+ 0x0, 0x36, 0xff, 0x43, 0xfa, 0x3, 0xc8, 0x44,
+ 0xa4, 0x0, 0x6, 0x7, 0x1d, 0xd8, 0x60, 0x7,
+ 0x9, 0x10, 0x9, 0x0, 0x1e, 0x6, 0x1, 0xfc,
+ 0xe0, 0x1f, 0xce, 0x1, 0xf7, 0x86, 0x0, 0x7c,
+ 0xe0, 0xc4, 0x0, 0x16, 0x0, 0xc, 0x8e, 0xd5,
+ 0x3c, 0x40, 0x26, 0xa2, 0x57, 0x67, 0x0, 0xcb,
+ 0xbf, 0xb0, 0x40, 0xc1, 0xa, 0x1, 0x12, 0x91,
+ 0x0, 0xea, 0xe2, 0xb4, 0x24, 0x1, 0x72, 0xee,
+ 0x54, 0xc4, 0x0,
+
+ /* U+68 "h" */
+ 0x4f, 0x70, 0xf, 0xfe, 0xe1, 0xdf, 0xf4, 0x88,
+ 0x5, 0x78, 0xc, 0x6d, 0xa0, 0x11, 0x6d, 0xce,
+ 0x91, 0x98, 0x0, 0xc4, 0x1, 0x50, 0x28, 0x3,
+ 0xc0, 0x30, 0x80, 0x7f, 0x18, 0x7, 0xff, 0xa0,
+
+ /* U+69 "i" */
+ 0x0, 0xcd, 0xe8, 0x1, 0xf7, 0x1, 0x0, 0x7d,
+ 0x1c, 0xc0, 0x1f, 0x84, 0x3, 0xbf, 0xf9, 0x80,
+ 0x33, 0x34, 0x60, 0x1e, 0x99, 0xa8, 0x3, 0xff,
+ 0xed, 0x33, 0x50, 0x54, 0xc9, 0xc1, 0x9a, 0x30,
+ 0x36, 0x65, 0x0,
+
+ /* U+6A "j" */
+ 0x0, 0xd3, 0xc4, 0x1, 0x8c, 0x44, 0x1, 0xab,
+ 0x8c, 0x3, 0x84, 0x7, 0xff, 0x8c, 0x59, 0xa2,
+ 0x0, 0xa6, 0x65, 0x0, 0xff, 0xf9, 0x10, 0x7,
+ 0xa, 0x81, 0xc4, 0x27, 0xc2, 0x1, 0x5d, 0x8a,
+ 0x9c, 0x0,
+
+ /* U+6B "k" */
+ 0x4f, 0x80, 0xf, 0xff, 0x1a, 0xfe, 0x88, 0x7,
+ 0x92, 0x8b, 0x4, 0x3, 0x92, 0xc7, 0xc4, 0x3,
+ 0x8e, 0xc7, 0x8, 0x3, 0x8b, 0x42, 0xc8, 0x3,
+ 0xca, 0x21, 0x20, 0x1f, 0xad, 0x4e, 0x40, 0x3c,
+ 0xe9, 0x64, 0xca, 0x1, 0xf0, 0xf0, 0x51, 0x0,
+ 0x7c, 0x72, 0x1e, 0x1, 0xf9, 0x94, 0xa8, 0x0,
+
+ /* U+6C "l" */
+ 0xf, 0xfe, 0x60, 0xc, 0xcd, 0x18, 0x7, 0xa6,
+ 0x6a, 0x0, 0xff, 0xff, 0x80, 0x7f, 0xf4, 0xe6,
+ 0x6a, 0xa, 0x99, 0x38, 0x33, 0x46, 0x6, 0xcc,
+ 0xa0,
+
+ /* U+6D "m" */
+ 0x1f, 0x9b, 0xfd, 0x5b, 0xfd, 0x30, 0x9, 0xb1,
+ 0xca, 0x8a, 0xb, 0x80, 0x25, 0x78, 0x11, 0x4b,
+ 0xa9, 0x0, 0x46, 0x0, 0x33, 0x0, 0xc, 0x4,
+ 0x3, 0xff, 0xfe, 0x1, 0xfc,
+
+ /* U+6E "n" */
+ 0x4f, 0x54, 0xcf, 0xd9, 0x10, 0xb, 0xad, 0x98,
+ 0xd, 0xa0, 0x12, 0xed, 0x4e, 0x99, 0x88, 0x0,
+ 0xc4, 0x1, 0x58, 0x38, 0x3, 0xc0, 0x30, 0x81,
+ 0x80, 0x7f, 0xfc, 0x0,
+
+ /* U+6F "o" */
+ 0x0, 0x25, 0xff, 0xad, 0x0, 0x26, 0xb5, 0x66,
+ 0x2d, 0xb0, 0x14, 0x97, 0xcc, 0xbc, 0xa4, 0xa8,
+ 0x2c, 0x40, 0x3, 0x61, 0x46, 0xe, 0x1, 0x90,
+ 0xd, 0xc0, 0x40, 0x31, 0x3, 0xb8, 0x4, 0x3,
+ 0x8, 0x39, 0x82, 0x0, 0x64, 0x3, 0xa0, 0x81,
+ 0x0, 0xc, 0x5, 0x14, 0x97, 0xcc, 0xbc, 0xa4,
+ 0x81, 0xac, 0x99, 0x85, 0x6c, 0x0,
+
+ /* U+70 "p" */
+ 0x4f, 0x67, 0xdf, 0xd6, 0x0, 0xd1, 0x2e, 0xa5,
+ 0x2e, 0x1, 0x1f, 0xd5, 0x30, 0x20, 0x40, 0xa,
+ 0x20, 0x3, 0x70, 0x70, 0x7, 0x80, 0x6c, 0xe,
+ 0x0, 0xf9, 0xc0, 0x40, 0x3e, 0x70, 0x10, 0xf,
+ 0xb0, 0x34, 0x1, 0x60, 0x11, 0x30, 0x20, 0x0,
+ 0xf6, 0x65, 0xa3, 0x2, 0x0, 0x75, 0x76, 0x29,
+ 0x70, 0xb, 0xe3, 0xbf, 0x58, 0x3, 0xff, 0xa8,
+
+ /* U+71 "q" */
+ 0x0, 0x2e, 0xff, 0x4c, 0x7a, 0x3, 0xd0, 0x4c,
+ 0x2b, 0x80, 0x6, 0x7, 0x19, 0x98, 0x80, 0x7,
+ 0x9, 0x10, 0x8, 0xc0, 0x1e, 0x6, 0x1, 0xfc,
+ 0xe0, 0x1f, 0xce, 0x1, 0xf7, 0x86, 0x0, 0x7c,
+ 0xe0, 0xc4, 0x0, 0x15, 0x0, 0xc, 0xe, 0x4c,
+ 0xbc, 0x80, 0x27, 0xa3, 0x67, 0x67, 0x0, 0xcb,
+ 0xbf, 0xd0, 0x1, 0xff, 0xd5,
+
+ /* U+72 "r" */
+ 0xcf, 0x6, 0xdf, 0xe5, 0x0, 0x4c, 0x88, 0x82,
+ 0x20, 0x3, 0xdf, 0xef, 0xa0, 0x2, 0xd0, 0x3,
+ 0xca, 0x1, 0xff, 0xe9,
+
+ /* U+73 "s" */
+ 0x0, 0x1d, 0xf7, 0xeb, 0x80, 0x49, 0x8a, 0xec,
+ 0x11, 0x60, 0x9, 0xf, 0x99, 0x6a, 0x24, 0x1,
+ 0x8, 0x5, 0x34, 0xc1, 0x61, 0xce, 0x60, 0x4a,
+ 0x40, 0xd6, 0xb1, 0x9f, 0x44, 0x1, 0x25, 0xfd,
+ 0xb2, 0xe0, 0x93, 0xa0, 0x1, 0x26, 0x42, 0xc7,
+ 0x12, 0x20, 0x10, 0x80, 0x8a, 0xb, 0xe6, 0x2e,
+ 0x9, 0x81, 0xe9, 0x59, 0xd9, 0xf0, 0x0,
+
+ /* U+74 "t" */
+ 0x0, 0x99, 0xc0, 0x3f, 0x5c, 0x0, 0x7f, 0xf0,
+ 0xe7, 0xfc, 0x41, 0xff, 0x83, 0x66, 0x42, 0x13,
+ 0x38, 0x11, 0x98, 0x60, 0xcd, 0x80, 0x3f, 0xfd,
+ 0x4c, 0x8, 0x1, 0xf7, 0x5, 0xd4, 0xd9, 0x80,
+ 0x4b, 0x44, 0xac, 0xe0,
+
+ /* U+75 "u" */
+ 0x3f, 0x80, 0xd, 0x1e, 0x80, 0x1f, 0xfe, 0x81,
+ 0x0, 0xf8, 0x40, 0x3f, 0x88, 0x1c, 0x3, 0x28,
+ 0x4, 0xe3, 0x6c, 0xfa, 0x60, 0x14, 0x41, 0x66,
+ 0xae, 0x0, 0x0,
+
+ /* U+76 "v" */
+ 0xd, 0xf0, 0xe, 0x1f, 0xc0, 0xa0, 0x50, 0xc,
+ 0xe1, 0x40, 0xc1, 0xc0, 0x1a, 0x81, 0x80, 0x55,
+ 0x4, 0x0, 0x26, 0xc0, 0x17, 0x3, 0x0, 0x18,
+ 0x28, 0x2, 0x42, 0xa0, 0x5, 0x11, 0x80, 0x6a,
+ 0x22, 0xd4, 0x1, 0xcc, 0x15, 0x40, 0x60, 0xe,
+ 0x14, 0x65, 0x50, 0x80, 0x7b, 0xc4, 0xb8, 0x3,
+ 0xe4, 0x11, 0x20, 0x4,
+
+ /* U+77 "w" */
+ 0x6f, 0x20, 0x5, 0x58, 0x5, 0xf0, 0xa0, 0xe0,
+ 0x4, 0x40, 0x0, 0xc3, 0x4c, 0x34, 0x8, 0x40,
+ 0xc1, 0x41, 0x0, 0x88, 0xe, 0x24, 0x81, 0xc2,
+ 0x20, 0x47, 0xc, 0x57, 0xc0, 0x35, 0x0, 0x79,
+ 0x2, 0x66, 0x14, 0x14, 0xc0, 0xa, 0x8, 0x48,
+ 0x81, 0x31, 0xc0, 0x1, 0x87, 0x1, 0x90, 0xd0,
+ 0x28, 0x4, 0x6a, 0x80, 0x4, 0x71, 0x10, 0x4,
+ 0xa1, 0x80, 0xc, 0x15, 0x0, 0xde, 0x6, 0x0,
+ 0x40, 0xc0, 0x0,
+
+ /* U+78 "x" */
+ 0x7f, 0x90, 0xc, 0xff, 0x40, 0xe8, 0xca, 0x0,
+ 0x38, 0x2a, 0x0, 0x50, 0xd8, 0x87, 0x7, 0x0,
+ 0x43, 0x43, 0x52, 0x50, 0x60, 0x19, 0x1d, 0x19,
+ 0x1c, 0x3, 0xd2, 0x0, 0xf0, 0xf, 0xac, 0x1,
+ 0x20, 0x1e, 0x65, 0x54, 0x94, 0x80, 0x62, 0x91,
+ 0xa6, 0x46, 0x40, 0xb, 0x83, 0x40, 0x14, 0x34,
+ 0x21, 0x6, 0xe6, 0x0, 0x1b, 0x1a, 0x0,
+
+ /* U+79 "y" */
+ 0x1f, 0xe0, 0xf, 0x77, 0x88, 0x94, 0x54, 0x3,
+ 0x28, 0xa8, 0x84, 0x87, 0x0, 0x6e, 0x9, 0x0,
+ 0x19, 0x90, 0x80, 0x2, 0x86, 0x60, 0xa, 0x42,
+ 0xc0, 0xc, 0x12, 0x1, 0x94, 0x98, 0x1, 0x22,
+ 0xa0, 0x1d, 0x60, 0xc8, 0x32, 0x1, 0xe6, 0x1b,
+ 0xe0, 0x60, 0xf, 0x98, 0x95, 0x84, 0x3, 0xe9,
+ 0x0, 0x58, 0x7, 0xe1, 0x12, 0x10, 0x7, 0xe7,
+ 0x1f, 0x0, 0xfc, 0x50, 0x48, 0x1, 0xe3, 0xac,
+ 0xe, 0x0, 0xf9, 0x54, 0x76, 0x60, 0x1e,
+
+ /* U+7A "z" */
+ 0x5f, 0xff, 0xc6, 0xef, 0xe5, 0x0, 0x11, 0x22,
+ 0x39, 0xc2, 0x84, 0x3, 0xa8, 0x9d, 0x40, 0x39,
+ 0x94, 0xe0, 0x3, 0x8e, 0x47, 0x40, 0x38, 0x74,
+ 0x34, 0x40, 0x3a, 0x86, 0x4c, 0x3, 0xa1, 0x15,
+ 0x80, 0x39, 0x1c, 0x9, 0xdf, 0x90, 0x80, 0xf,
+ 0x11, 0xda,
+
+ /* U+7B "{" */
+ 0x0, 0xc9, 0x92, 0x1, 0x1d, 0xb5, 0x80, 0x50,
+ 0x14, 0x40, 0x12, 0x20, 0x3, 0x8, 0x7, 0xe1,
+ 0x0, 0xc6, 0x1, 0xe4, 0xd, 0x0, 0x13, 0x41,
+ 0x30, 0x3, 0xe4, 0xf0, 0x40, 0x12, 0xc5, 0x40,
+ 0x12, 0x4c, 0x22, 0x80, 0x64, 0xc, 0x0, 0xc4,
+ 0x6, 0x1, 0xe1, 0x0, 0xc2, 0xe, 0x1, 0xc6,
+ 0x60, 0xe, 0x80, 0x90, 0xc, 0x94, 0xd4, 0x1,
+ 0x97, 0xec,
+
+ /* U+7C "|" */
+ 0xbb, 0x0, 0x7f, 0xf6, 0x0,
+
+ /* U+7D "}" */
+ 0xac, 0x30, 0xd, 0xf, 0x86, 0x1, 0x15, 0x4,
+ 0x80, 0x61, 0x24, 0x0, 0xe1, 0x10, 0x7, 0xff,
+ 0x1, 0xc0, 0x40, 0x31, 0x82, 0x80, 0x69, 0x1a,
+ 0x52, 0x0, 0xe, 0x5, 0x48, 0x5, 0xc2, 0xfe,
+ 0x0, 0x73, 0x98, 0x40, 0x6, 0x3, 0x80, 0x67,
+ 0x1, 0x0, 0xff, 0x84, 0x40, 0x18, 0x49, 0x40,
+ 0x35, 0x4, 0x0, 0x58, 0xb6, 0x60, 0x16, 0xf2,
+ 0x0, 0x60,
+
+ /* U+7E "~" */
+ 0x3, 0xdf, 0xd5, 0x0, 0xcc, 0x63, 0xa6, 0xa7,
+ 0x52, 0x0, 0x29, 0x57, 0x1f, 0xae, 0x56, 0xea,
+ 0xc1, 0x64, 0xa1, 0x0, 0x54, 0x9a, 0x96, 0x0
+};
+
+/*---------------------
+ * 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 = 192, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 0, .adv_w = 192, .box_w = 3, .box_h = 15, .ofs_x = 4, .ofs_y = 0},
+ {.bitmap_index = 13, .adv_w = 192, .box_w = 6, .box_h = 5, .ofs_x = 3, .ofs_y = 10},
+ {.bitmap_index = 26, .adv_w = 192, .box_w = 12, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 110, .adv_w = 192, .box_w = 10, .box_h = 19, .ofs_x = 1, .ofs_y = -2},
+ {.bitmap_index = 193, .adv_w = 192, .box_w = 12, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 269, .adv_w = 192, .box_w = 11, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 346, .adv_w = 192, .box_w = 3, .box_h = 5, .ofs_x = 4, .ofs_y = 10},
+ {.bitmap_index = 353, .adv_w = 192, .box_w = 6, .box_h = 22, .ofs_x = 3, .ofs_y = -5},
+ {.bitmap_index = 413, .adv_w = 192, .box_w = 6, .box_h = 22, .ofs_x = 3, .ofs_y = -5},
+ {.bitmap_index = 472, .adv_w = 192, .box_w = 10, .box_h = 10, .ofs_x = 1, .ofs_y = 5},
+ {.bitmap_index = 518, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 1},
+ {.bitmap_index = 543, .adv_w = 192, .box_w = 4, .box_h = 6, .ofs_x = 3, .ofs_y = -4},
+ {.bitmap_index = 555, .adv_w = 192, .box_w = 8, .box_h = 2, .ofs_x = 2, .ofs_y = 6},
+ {.bitmap_index = 561, .adv_w = 192, .box_w = 4, .box_h = 3, .ofs_x = 4, .ofs_y = 0},
+ {.bitmap_index = 567, .adv_w = 192, .box_w = 9, .box_h = 16, .ofs_x = 2, .ofs_y = -1},
+ {.bitmap_index = 617, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 689, .adv_w = 192, .box_w = 6, .box_h = 15, .ofs_x = 2, .ofs_y = 0},
+ {.bitmap_index = 708, .adv_w = 192, .box_w = 11, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 774, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 841, .adv_w = 192, .box_w = 11, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 893, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 957, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1027, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1078, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1150, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1220, .adv_w = 192, .box_w = 4, .box_h = 11, .ofs_x = 5, .ofs_y = 0},
+ {.bitmap_index = 1237, .adv_w = 192, .box_w = 5, .box_h = 15, .ofs_x = 4, .ofs_y = -4},
+ {.bitmap_index = 1265, .adv_w = 192, .box_w = 9, .box_h = 10, .ofs_x = 1, .ofs_y = 1},
+ {.bitmap_index = 1305, .adv_w = 192, .box_w = 10, .box_h = 6, .ofs_x = 1, .ofs_y = 4},
+ {.bitmap_index = 1322, .adv_w = 192, .box_w = 10, .box_h = 10, .ofs_x = 1, .ofs_y = 1},
+ {.bitmap_index = 1365, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1424, .adv_w = 192, .box_w = 12, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1513, .adv_w = 192, .box_w = 12, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1585, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1648, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1707, .adv_w = 192, .box_w = 11, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1765, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1798, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1825, .adv_w = 192, .box_w = 11, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1895, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1915, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 1941, .adv_w = 192, .box_w = 11, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 1975, .adv_w = 192, .box_w = 11, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 2035, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 2050, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 2101, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 2149, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 2216, .adv_w = 192, .box_w = 11, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 2262, .adv_w = 192, .box_w = 12, .box_h = 18, .ofs_x = 0, .ofs_y = -3},
+ {.bitmap_index = 2351, .adv_w = 192, .box_w = 11, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 2412, .adv_w = 192, .box_w = 11, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 2487, .adv_w = 192, .box_w = 12, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 2506, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 2545, .adv_w = 192, .box_w = 12, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 2619, .adv_w = 192, .box_w = 12, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 2711, .adv_w = 192, .box_w = 12, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 2789, .adv_w = 192, .box_w = 12, .box_h = 15, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 2845, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 2899, .adv_w = 192, .box_w = 5, .box_h = 20, .ofs_x = 4, .ofs_y = -3},
+ {.bitmap_index = 2915, .adv_w = 192, .box_w = 8, .box_h = 16, .ofs_x = 2, .ofs_y = -1},
+ {.bitmap_index = 2963, .adv_w = 192, .box_w = 5, .box_h = 20, .ofs_x = 3, .ofs_y = -3},
+ {.bitmap_index = 2979, .adv_w = 192, .box_w = 8, .box_h = 8, .ofs_x = 2, .ofs_y = 7},
+ {.bitmap_index = 3010, .adv_w = 192, .box_w = 10, .box_h = 2, .ofs_x = 1, .ofs_y = -1},
+ {.bitmap_index = 3016, .adv_w = 192, .box_w = 4, .box_h = 3, .ofs_x = 4, .ofs_y = 12},
+ {.bitmap_index = 3022, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 3074, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 3125, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 3176, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 3230, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 3280, .adv_w = 192, .box_w = 11, .box_h = 16, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 3325, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = -4},
+ {.bitmap_index = 3392, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 3424, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 3459, .adv_w = 192, .box_w = 7, .box_h = 19, .ofs_x = 2, .ofs_y = -4},
+ {.bitmap_index = 3493, .adv_w = 192, .box_w = 11, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 3541, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 3566, .adv_w = 192, .box_w = 12, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 3595, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 3623, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 3677, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = -4},
+ {.bitmap_index = 3733, .adv_w = 192, .box_w = 10, .box_h = 15, .ofs_x = 1, .ofs_y = -4},
+ {.bitmap_index = 3786, .adv_w = 192, .box_w = 8, .box_h = 11, .ofs_x = 3, .ofs_y = 0},
+ {.bitmap_index = 3806, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 3861, .adv_w = 192, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 3897, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 3924, .adv_w = 192, .box_w = 11, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 3976, .adv_w = 192, .box_w = 12, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
+ {.bitmap_index = 4043, .adv_w = 192, .box_w = 11, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 4098, .adv_w = 192, .box_w = 12, .box_h = 15, .ofs_x = 0, .ofs_y = -4},
+ {.bitmap_index = 4169, .adv_w = 192, .box_w = 10, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
+ {.bitmap_index = 4211, .adv_w = 192, .box_w = 7, .box_h = 20, .ofs_x = 3, .ofs_y = -4},
+ {.bitmap_index = 4269, .adv_w = 192, .box_w = 2, .box_h = 19, .ofs_x = 5, .ofs_y = -4},
+ {.bitmap_index = 4274, .adv_w = 192, .box_w = 7, .box_h = 20, .ofs_x = 3, .ofs_y = -4},
+ {.bitmap_index = 4332, .adv_w = 192, .box_w = 12, .box_h = 4, .ofs_x = 0, .ofs_y = 4}
+};
+
+/*---------------------
+ * CHARACTER MAPPING
+ *--------------------*/
+
+/*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
+ }
+};
+
+/*--------------------
+ * ALL CUSTOM DATA
+ *--------------------*/
+
+/*Store all the custom data of the font*/
+static lv_font_fmt_txt_dsc_t font_dsc = {
+ .glyph_bitmap = gylph_bitmap,
+ .glyph_dsc = glyph_dsc,
+ .cmaps = cmaps,
+ .kern_dsc = NULL,
+ .kern_scale = 0,
+ .cmap_num = 1,
+ .bpp = 4,
+ .kern_classes = 0,
+ .bitmap_format = 1
+};
+
+/*-----------------
+ * PUBLIC FONT
+ *----------------*/
+
+/*Initialize a public general font descriptor*/
+lv_font_t font_3 = {
+ .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 = 22, /*The maximum line height required by the font*/
+ .base_line = 5, /*Baseline measured from the bottom of the line*/
+#if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0)
+ .subpx = LV_FONT_SUBPX_NONE,
+#endif
+ .dsc = &font_dsc /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
+};
+
+#endif /*#if FONT_3*/
diff --git a/src/libs/lvgl/tests/lv_test_main.c b/src/libs/lvgl/tests/lv_test_main.c
new file mode 100644
index 00000000..c590c62f
--- /dev/null
+++ b/src/libs/lvgl/tests/lv_test_main.c
@@ -0,0 +1,145 @@
+#include "../lvgl.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include "lv_test_core/lv_test_core.h"
+#include "lv_test_widgets/lv_test_label.h"
+
+#if LV_BUILD_TEST
+#include <sys/time.h>
+
+static void hal_init(void);
+static void dummy_flush_cb(lv_disp_drv_t * disp_drv, const lv_area_t * area, lv_color_t * color_p);
+
+lv_color_t test_fb[LV_HOR_RES_MAX * LV_VER_RES_MAX];
+
+int main(void)
+{
+ printf("Call lv_init...\n");
+ lv_init();
+
+ hal_init();
+
+ lv_test_core();
+ lv_test_label();
+
+ printf("Exit with success!\n");
+ return 0;
+}
+
+#if LV_USE_FILESYSTEM
+static lv_fs_res_t open_cb(struct _lv_fs_drv_t * drv, void * file_p, const char * path, lv_fs_mode_t mode)
+{
+ (void) drv;
+ (void) mode;
+
+ FILE * fp = fopen(path, "rb"); // only reading is supported
+
+ *((FILE **)file_p) = fp;
+ return NULL == fp ? LV_FS_RES_UNKNOWN : LV_FS_RES_OK;
+}
+
+static lv_fs_res_t close_cb(struct _lv_fs_drv_t * drv, void * file_p)
+{
+ (void) drv;
+
+ FILE * fp = *((FILE **) file_p);
+ fclose(fp);
+ return LV_FS_RES_OK;
+}
+
+static lv_fs_res_t read_cb(struct _lv_fs_drv_t * drv, void * file_p, void * buf, uint32_t btr, uint32_t * br)
+{
+ (void) drv;
+
+ FILE * fp = *((FILE **) file_p);
+ *br = fread(buf, 1, btr, fp);
+ return (*br <= 0) ? LV_FS_RES_UNKNOWN : LV_FS_RES_OK;
+}
+
+static lv_fs_res_t seek_cb(struct _lv_fs_drv_t * drv, void * file_p, uint32_t pos)
+{
+ (void) drv;
+
+ FILE * fp = *((FILE **) file_p);
+ fseek (fp, pos, SEEK_SET);
+
+ return LV_FS_RES_OK;
+}
+
+static lv_fs_res_t tell_cb(struct _lv_fs_drv_t * drv, void * file_p, uint32_t * pos_p)
+{
+ (void) drv;
+
+ FILE * fp = *((FILE **) file_p);
+ *pos_p = ftell(fp);
+
+ return LV_FS_RES_OK;
+}
+
+static bool ready_cb(struct _lv_fs_drv_t * drv)
+{
+ (void) drv;
+ return true;
+}
+#endif
+
+static void hal_init(void)
+{
+ static lv_disp_buf_t disp_buf;
+ lv_color_t * disp_buf1 = (lv_color_t *)malloc(LV_HOR_RES * LV_VER_RES * sizeof(lv_color_t));
+
+ lv_disp_buf_init(&disp_buf, disp_buf1, NULL, LV_HOR_RES * LV_VER_RES);
+
+ lv_disp_drv_t disp_drv;
+ lv_disp_drv_init(&disp_drv);
+ disp_drv.buffer = &disp_buf;
+ disp_drv.flush_cb = dummy_flush_cb;
+ lv_disp_drv_register(&disp_drv);
+
+#if LV_USE_FILESYSTEM
+ lv_fs_drv_t drv;
+ lv_fs_drv_init(&drv); /*Basic initialization*/
+
+ drv.letter = 'f'; /*An uppercase letter to identify the drive */
+ drv.file_size = sizeof(FILE *); /*Size required to store a file object*/
+ drv.ready_cb = ready_cb; /*Callback to tell if the drive is ready to use */
+ drv.open_cb = open_cb; /*Callback to open a file */
+ drv.close_cb = close_cb; /*Callback to close a file */
+ drv.read_cb = read_cb; /*Callback to read a file */
+ drv.seek_cb = seek_cb; /*Callback to seek in a file (Move cursor) */
+ drv.tell_cb = tell_cb; /*Callback to tell the cursor position */
+
+ lv_fs_drv_register(&drv); /*Finally register the drive*/
+#endif
+}
+#include <stdio.h>
+
+static void dummy_flush_cb(lv_disp_drv_t * disp_drv, const lv_area_t * area, lv_color_t * color_p)
+{
+ LV_UNUSED(area);
+ LV_UNUSED(color_p);
+
+ memcpy(test_fb, color_p, lv_area_get_size(area) * sizeof(lv_color_t));
+
+ lv_disp_flush_ready(disp_drv);
+}
+
+uint32_t custom_tick_get(void)
+{
+ static uint64_t start_ms = 0;
+ if(start_ms == 0) {
+ struct timeval tv_start;
+ gettimeofday(&tv_start, NULL);
+ start_ms = (tv_start.tv_sec * 1000000 + tv_start.tv_usec) / 1000;
+ }
+
+ struct timeval tv_now;
+ gettimeofday(&tv_now, NULL);
+ uint64_t now_ms;
+ now_ms = (tv_now.tv_sec * 1000000 + tv_now.tv_usec) / 1000;
+
+ uint32_t time_ms = now_ms - start_ms;
+ return time_ms;
+}
+
+#endif
diff --git a/src/libs/lvgl/tests/lv_test_ref_imgs/lv_test_img32_label_1.png b/src/libs/lvgl/tests/lv_test_ref_imgs/lv_test_img32_label_1.png
new file mode 100644
index 00000000..29c84d08
--- /dev/null
+++ b/src/libs/lvgl/tests/lv_test_ref_imgs/lv_test_img32_label_1.png
Binary files differ
diff --git a/src/libs/lvgl/tests/lv_test_widgets/lv_test_label.c b/src/libs/lvgl/tests/lv_test_widgets/lv_test_label.c
new file mode 100644
index 00000000..586ebd28
--- /dev/null
+++ b/src/libs/lvgl/tests/lv_test_widgets/lv_test_label.c
@@ -0,0 +1,69 @@
+/**
+ * @file lv_test_label.c
+ *
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+#include "../../lvgl.h"
+#include "../lv_test_assert.h"
+#include "lv_test_label.h"
+
+#if LV_BUILD_TEST
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+static void create_copy(void);
+
+/**********************
+ * STATIC VARIABLES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+void lv_test_label(void)
+{
+ lv_test_print("");
+ lv_test_print("===================");
+ lv_test_print("Start lv_label tests");
+ lv_test_print("===================");
+
+#if LV_USE_LABEL
+ create_copy();
+#else
+ lv_test_print("Skip label test: LV_USE_LABEL == 0");
+#endif
+}
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+static void create_copy(void)
+{
+ lv_test_print("");
+ lv_test_print("Create a label");
+ lv_test_print("---------------------------");
+
+ lv_label_create(lv_scr_act(), NULL);
+#if LV_COLOR_DEPTH == 32
+ lv_test_assert_img_eq("lv_test_img32_label_1.png", "Create a label and leave the default settings");
+#endif
+}
+#endif
diff --git a/src/libs/lvgl/tests/lv_test_widgets/lv_test_label.h b/src/libs/lvgl/tests/lv_test_widgets/lv_test_label.h
new file mode 100644
index 00000000..36aac4e5
--- /dev/null
+++ b/src/libs/lvgl/tests/lv_test_widgets/lv_test_label.h
@@ -0,0 +1,38 @@
+/**
+ * @file lv_test_label.h
+ *
+ */
+
+#ifndef LV_TEST_LABEL_H
+#define LV_TEST_LABEL_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*********************
+ * INCLUDES
+ *********************/
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+void lv_test_label(void);
+
+/**********************
+ * MACROS
+ **********************/
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*LV_TEST_CONT_H*/